calendar.go 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036
  1. package roadshow
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "hongze/hz_crm_api/models/company"
  7. "hongze/hz_crm_api/models/system"
  8. "hongze/hz_crm_api/utils"
  9. "strings"
  10. "time"
  11. )
  12. type AddActivityReq struct {
  13. ActivityType string `description:"活动类型"`
  14. RoadshowType string `description:"路演形式"`
  15. RoadshowPlatform string `description:"路演平台"`
  16. CompanyId int `description:"客户id"`
  17. CompanyName string `description:"客户名称"`
  18. Province string `description:"省"`
  19. ProvinceCode string `description:"省编码"`
  20. City string `description:"市"`
  21. CityCode string `description:"市编码"`
  22. District string `description:"区"`
  23. Theme string `description:"会议主题"`
  24. CooperationName string `description:"合作方名称"`
  25. ActivityCategory string `description:"活动类别"`
  26. ResearcherList []*CalendarResearcher
  27. EnglishCompany int `description:"是否为英文客户"`
  28. }
  29. type AddActivityResp struct {
  30. Points int `description:"点数"`
  31. AddType int `description:"添加类型,1成功(扣点数),2成功(不扣点数),3失败"`
  32. }
  33. type CalendarResearcher struct {
  34. ResearcherId int `description:"研究员id"`
  35. ResearcherName string `description:"研究员名称"`
  36. StartDate string `description:"开始日期"`
  37. EndDate string `description:"结束日期"`
  38. StartTime string `description:"开始时间"`
  39. EndTime string `description:"结束时间"`
  40. StartWeek string `description:"开始日期对应周"`
  41. EndWeek string `description:"结束日期对应周"`
  42. }
  43. type RsCalendar struct {
  44. RsCalendarId int `orm:"column(rs_calendar_id);pk"`
  45. SysUserId int `description:"创建人id"`
  46. SysUserRealName string `description:"创建人名称"`
  47. ActivityType string `description:"活动类型"`
  48. RoadshowType string `description:"路演形式"`
  49. RoadshowPlatform string `description:"路演平台"`
  50. CompanyId int `description:"客户id"`
  51. CompanyName string `description:"客户名称"`
  52. Province string `description:"省"`
  53. ProvinceCode string `description:"省编码"`
  54. City string `description:"市"`
  55. CityCode string `description:"市编码"`
  56. District string `description:"区"`
  57. Theme string `description:"会议主题"`
  58. CooperationName string `description:"合作方名称"`
  59. Title string `description:"展示在日历的标题"`
  60. Source int8 `description:"来源,0:自系统,1:上海方的"`
  61. CreateTime time.Time
  62. ModifyTime time.Time
  63. ActivityCategory string `description:"活动类别"`
  64. IsSynced int `description:"是否与上海同步 0:未同步 1:已同步"`
  65. UnionCode string `description:"公开会议联合编码"`
  66. EnglishCompany int `description:"是否为英文客户: 0-否; 1-是"`
  67. SellerId int `description:"销售id"`
  68. ShareSellerId int `description:"共享销售员id"`
  69. CompanyStatus string `description:"客户状态:'试用','永续','冻结','流失','正式','潜在'"`
  70. }
  71. type RsCalendarResearcher struct {
  72. RsCalendarResearcherId int `orm:"column(rs_calendar_researcher_id);pk"`
  73. RsCalendarId int `description:"日历活动id"`
  74. ResearcherId int `description:"研究员id"`
  75. ResearcherName string `description:"研究员名称"`
  76. StartDate string `description:"开始日期"`
  77. EndDate string `description:"结束日期"`
  78. StartTime string `description:"开始时间"`
  79. EndTime string `description:"结束时间"`
  80. StartWeek string `description:"开始日期对应周"`
  81. EndWeek string `description:"结束日期对应周"`
  82. CreateTime time.Time
  83. ModifyTime time.Time
  84. Status int `description:"状态:1:待接受,2:已接受,3:已拒绝,4:已删除,5:已撤回,6:已结束"`
  85. RefuseReason string `description:"拒绝理由"`
  86. RefuseTime time.Time `description:"拒绝时间"`
  87. DeleteReason string `description:"删除理由"`
  88. DeleteTime time.Time `description:"删除时间"`
  89. ApproveTime time.Time `description:"接受时间"`
  90. IsSynced int `description:"是否与上海同步 0:未同步 1:已同步"`
  91. ResearcherSort int `description:"研究员新增排序"`
  92. UnionCode string `description:"公开会议联合编码"`
  93. CompanyIndustry string `description:"客户行业"`
  94. CompanyClassify string `description:"客户分类"`
  95. QuestionStatus int `description:"问答状态:0-未填写;1-已填写"`
  96. QuestionMsgStatus int `description:"问答模板消息:0-未发送;1-已发送"`
  97. }
  98. func GetRsCalendarById(rsCalendarId int) (item *RsCalendar, err error) {
  99. o := orm.NewOrm()
  100. sql := `SELECT * FROM rs_calendar WHERE rs_calendar_id=? `
  101. err = o.Raw(sql, rsCalendarId).QueryRow(&item)
  102. return
  103. }
  104. func GetRsCalendarResearcherById(rsCalendarResearcherId int) (item *RsCalendarResearcher, err error) {
  105. o := orm.NewOrm()
  106. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_researcher_id=? `
  107. err = o.Raw(sql, rsCalendarResearcherId).QueryRow(&item)
  108. return
  109. }
  110. // Update 更新路演用户信息
  111. func (item *RsCalendarResearcher) Update(cols []string) (err error) {
  112. o := orm.NewOrm()
  113. _, err = o.Update(item, cols...)
  114. return
  115. }
  116. func GetRsCalendarResearcherListById(rsCalendarId int) (item []*RsCalendarResearcher, err error) {
  117. o := orm.NewOrm()
  118. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  119. _, err = o.Raw(sql, rsCalendarId).QueryRows(&item)
  120. return
  121. }
  122. // 根据多个路演ID获取研究员信息
  123. func GetRsCalendarResearcherListByIds(rsCalendarIds []int) (item []*RsCalendarResearcher, err error) {
  124. if len(rsCalendarIds) == 0 {
  125. return
  126. }
  127. o := orm.NewOrm()
  128. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id IN (` + utils.GetOrmInReplace(len(rsCalendarIds)) + `) `
  129. _, err = o.Raw(sql, rsCalendarIds).QueryRows(&item)
  130. return
  131. }
  132. func GetRsCalendarResearcherListByCalendarResearcherId(rsCalendarResearcherId int) (item []*RsCalendarResearcher, err error) {
  133. o := orm.NewOrm()
  134. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_researcher_id=? `
  135. _, err = o.Raw(sql, rsCalendarResearcherId).QueryRows(&item)
  136. return
  137. }
  138. // 添加RsCalendar
  139. func AddRsCalendar(item *RsCalendar) (lastId int64, err error) {
  140. o := orm.NewOrm()
  141. lastId, err = o.Insert(item)
  142. return
  143. }
  144. // 添加RsCalendarResearcher
  145. func AddRsCalendarResearcher(item *RsCalendarResearcher) (lastId int64, err error) {
  146. o := orm.NewOrm()
  147. lastId, err = o.Insert(item)
  148. return
  149. }
  150. // 添加RsCalendarResearcher
  151. func AddRsCalendarResearcherFromSH(item *RsCalendarResearcher) (bool bool, id int64, err error) {
  152. o := orm.NewOrm()
  153. bool, id, err = o.ReadOrCreate(item, "rs_calendar_id")
  154. return
  155. }
  156. type Researcher struct {
  157. AdminId int `description:"研究员id"`
  158. RealName string `description:"研究员名称"`
  159. GroupId int `description:"分组id"`
  160. GroupName string `description:"分组名称"`
  161. RoleTypeCode string `description:"角色编码"`
  162. }
  163. type ResearcherIds struct {
  164. AdminIds string `description:"研究员id"`
  165. }
  166. type ResearcherGroup struct {
  167. GroupId int `description:"分组id"`
  168. GroupName string `description:"分组名称"`
  169. AdminId int `description:"研究员id"`
  170. RealName string `description:"研究员名称"`
  171. RoleTypeCode string `description:"角色编码"`
  172. ResearcherList []*ResearcherGroup
  173. }
  174. func GetResearcherGroup() (list []*ResearcherGroup, err error) {
  175. o := orm.NewOrm()
  176. sql := ` SELECT group_id,group_name FROM admin AS a
  177. WHERE a.role_type_code IN('researcher','ficc_researcher','ficc_admin')
  178. AND a.enabled=1
  179. AND a.group_id>0
  180. AND a.group_name<>'无'
  181. GROUP BY a.group_id
  182. ORDER BY a.group_id ASC `
  183. _, err = o.Raw(sql).QueryRows(&list)
  184. return
  185. }
  186. func GetResearcher() (list []*ResearcherGroup, err error) {
  187. o := orm.NewOrm()
  188. sql := ` SELECT * FROM admin AS a
  189. WHERE a.role_type_code IN('researcher','rai_researcher','ficc_researcher','ficc_admin')
  190. AND a.enabled=1 AND a.real_name<>'于菲' `
  191. _, err = o.Raw(sql).QueryRows(&list)
  192. return
  193. }
  194. func GetChoiceResearcher(adminIds string) (list []*Researcher, err error) {
  195. o := orm.NewOrm()
  196. sql := ` SELECT * FROM admin WHERE admin_id IN ( ` + adminIds + ` ); `
  197. _, err = o.Raw(sql).QueryRows(&list)
  198. return
  199. }
  200. // GetResearcherV2 获取研究员列表(冻结的也要)
  201. func GetResearcherV2() (list []*ResearcherGroup, err error) {
  202. o := orm.NewOrm()
  203. sql := ` SELECT * FROM admin AS a
  204. WHERE a.role_type_code IN('researcher','rai_researcher','ficc_researcher','ficc_admin')
  205. AND a.enabled=1 and admin_id !=92 `
  206. _, err = o.Raw(sql).QueryRows(&list)
  207. return
  208. }
  209. // GetSellerGroup 获取销售分组
  210. func GetSellerGroup() (list []*ResearcherGroup, err error) {
  211. o := orm.NewOrm()
  212. sql := ` SELECT group_id,group_name FROM admin AS a
  213. WHERE a.role_type_code IN('ficc_seller','ficc_group')
  214. AND a.enabled=1
  215. AND a.group_id>0
  216. AND a.group_name<>'无'
  217. GROUP BY a.group_id
  218. ORDER BY a.group_id ASC `
  219. _, err = o.Raw(sql).QueryRows(&list)
  220. return
  221. }
  222. // GetSellerList 获取销售列表(冻结的也要)
  223. func GetSellerList(roleTypeCode string, groupIds string) (list []*Researcher, err error) {
  224. o := orm.NewOrm()
  225. sql := ` SELECT * FROM admin AS a
  226. WHERE a.role_type_code IN ` + roleTypeCode + `
  227. AND a.enabled=1 `
  228. if groupIds != "" {
  229. sql += "and group_id in " + groupIds
  230. }
  231. _, err = o.Raw(sql).QueryRows(&list)
  232. return
  233. }
  234. // GetRaiSellerList 获取权益销售列表(冻结的也要)
  235. func GetRaiSellerList(roleTypeCode string, groupIds string) (list []*Researcher, err error) {
  236. o := orm.NewOrm()
  237. sql := ` SELECT * FROM admin AS a
  238. WHERE a.role_type_code IN ` + roleTypeCode + `
  239. AND a.enabled=1 `
  240. if groupIds != "" {
  241. sql += "and group_id in " + groupIds
  242. }
  243. _, err = o.Raw(sql).QueryRows(&list)
  244. return
  245. }
  246. type CalendarListView struct {
  247. RsCalendarId int `orm:"column(rs_calendar_id);pk"`
  248. SysUserId int `description:"创建人id"`
  249. SysUserRealName string `description:"创建人名称"`
  250. ActivityType string `description:"活动类型"`
  251. RoadshowType string `description:"路演形式"`
  252. RoadshowPlatform string `description:"路演平台"`
  253. CompanyId int `description:"客户id"`
  254. CompanyName string `description:"客户名称"`
  255. RsCalendarResearcherId int `description:"活动研究员id"`
  256. ResearcherId string `description:"研究员id"`
  257. ResearcherName string `description:"研究员名称"`
  258. StartDate string `description:"开始日期"`
  259. EndDate string `description:"结束日期"`
  260. StartTime string `description:"开始时间"`
  261. EndTime string `description:"结束时间"`
  262. StartWeek string `description:"开始日期对应周"`
  263. EndWeek string `description:"结束日期对应周"`
  264. CreateTime string
  265. ModifyTime string
  266. Status int `description:"状态:1:待接受,2:已接受,3:已拒绝,4:已删除,5:已撤回,6:已结束"`
  267. RefuseReason string `description:"拒绝理由"`
  268. RefuseTime string `description:"拒绝时间"`
  269. DeleteReason string `description:"删除原因"`
  270. Province string `description:"省"`
  271. ProvinceCode string `description:"省编码"`
  272. City string `description:"市"`
  273. CityCode string `description:"市编码"`
  274. District string `description:"区"`
  275. Theme string `description:"会议主题"`
  276. CooperationName string `description:"合作方名称"`
  277. ActivityCategory string `description:"活动类别"`
  278. Source int `description:"来源,0:自系统,1:上海方的"`
  279. Title string `description:"日历展示标题"`
  280. CompanyStatus string `description:"新增客户状态"`
  281. UnionCode string `description:"公开会议联合编码"`
  282. EnglishCompany int `description:"是否为英文客户: 0-否; 1-是"`
  283. EnglishCountry string `description:"英文客户-国家"`
  284. EnglishViewTotal int `description:"英文客户-累计点击量"`
  285. SubmitButton bool `description:"提交按钮是否展示"`
  286. ViewButton bool `description:"查看按钮是否展示"`
  287. EditButton bool `description:"修改按钮是否展示"`
  288. CompanyIndustry string `description:"客户行业"`
  289. CompanyClassify string `description:"客户分类"`
  290. QuestionStatus int `description:"问答状态:0-未填写;1-已填写"`
  291. QuestionMsgStatus int `description:"问答模板消息:0-未发送;1-已发送"`
  292. }
  293. type CalendarListResp struct {
  294. Paging *paging.PagingItem
  295. List []*CalendarListView
  296. }
  297. func GetCalendarListCount(condition string, pars []interface{}, calendarType int) (count int, err error) {
  298. o := orm.NewOrm()
  299. if calendarType == 3 || calendarType == 4 {
  300. sql := `SELECT COUNT(1) AS count FROM(SELECT COUNT(1) AS count
  301. FROM rs_calendar AS a
  302. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  303. WHERE 1=1 `
  304. if condition != "" {
  305. sql += condition
  306. }
  307. sql += ` GROUP BY a.rs_calendar_id ) AS t `
  308. err = o.Raw(sql, pars).QueryRow(&count)
  309. } else {
  310. sql := `SELECT COUNT(1) AS count FROM rs_calendar AS a
  311. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  312. WHERE 1=1 `
  313. if condition != "" {
  314. sql += condition
  315. }
  316. err = o.Raw(sql, pars).QueryRow(&count)
  317. }
  318. return
  319. }
  320. func GetCalendarList(condition string, pars []interface{}, startSize, pageSize, calendarType int) (list []*CalendarListView, err error) {
  321. o := orm.NewOrm()
  322. if calendarType == 3 || calendarType == 4 {
  323. sql := ` SELECT a.rs_calendar_id,a.activity_type,a.roadshow_type,a.activity_category,a.roadshow_platform,b.create_time,a.district,
  324. b.modify_time,GROUP_CONCAT(b.researcher_id ORDER BY researcher_sort ASC) AS researcher_id,GROUP_CONCAT(b.researcher_name ORDER BY researcher_sort ASC) AS researcher_name,
  325. b.rs_calendar_researcher_id,b.start_date,
  326. b.end_date,b.start_time,b.end_time,b.start_week,b.end_week,b.status,b.refuse_reason,b.refuse_time,
  327. b.delete_reason,a.sys_user_real_name,a.city,a.province,a.company_name,a.company_id,
  328. a.cooperation_name,a.theme,a.activity_category,a.english_company,
  329. b.company_industry,b.company_classify,b.question_status,b.question_msg_status
  330. FROM rs_calendar AS a
  331. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  332. WHERE 1=1
  333. `
  334. if condition != "" {
  335. sql += condition
  336. }
  337. if calendarType == 1 {
  338. sql += ` GROUP BY a.rs_calendar_id
  339. ORDER BY b.create_time ASC LIMIT ?,? `
  340. } else {
  341. sql += ` GROUP BY a.rs_calendar_id
  342. ORDER BY b.create_time DESC LIMIT ?,? `
  343. }
  344. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
  345. } else {
  346. sql := `SELECT a.rs_calendar_id,a.activity_type,a.roadshow_type,a.activity_category,a.roadshow_platform,b.create_time,a.district,a.sys_user_id,
  347. b.modify_time,b.researcher_id,b.researcher_name,
  348. b.rs_calendar_researcher_id,b.start_date,
  349. b.end_date,b.start_time,b.end_time,b.start_week,b.end_week,b.status,b.refuse_reason,b.refuse_time,
  350. b.delete_reason,a.sys_user_real_name,a.city,a.province,a.company_name,a.company_id,a.cooperation_name,a.theme,a.activity_category,a.english_company,
  351. b.company_industry,b.company_classify,b.question_status,b.question_msg_status
  352. FROM rs_calendar AS a
  353. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  354. WHERE 1=1 `
  355. if condition != "" {
  356. sql += condition
  357. }
  358. if calendarType == 1 {
  359. sql += ` ORDER BY b.create_time ASC LIMIT ?,? `
  360. } else {
  361. //sql += ` ORDER BY b.create_time DESC LIMIT ?,? `
  362. sql += ` ORDER BY b.start_date DESC , b.start_time DESC LIMIT ?,? ` // 已处理申请,按照活动开始时间倒序(包括ficc的)
  363. }
  364. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
  365. }
  366. return
  367. }
  368. type AcceptReq struct {
  369. RsCalendarId int `description:"日历活动id"`
  370. RsCalendarResearcherId int `description:"活动研究员id"`
  371. }
  372. type DeleteReq struct {
  373. RsCalendarId int `description:"日历活动id"`
  374. RsCalendarResearcherId int `description:"活动研究员id"`
  375. DeleteReason string `description:"删除原因"`
  376. }
  377. type RefuseReq struct {
  378. RsCalendarId int `description:"日历活动id"`
  379. RsCalendarResearcherId int `description:"活动研究员id"`
  380. RefuseReason string `description:"拒绝原因"`
  381. }
  382. // 更新
  383. func UpdateCalendarResearcher(where, updateParams map[string]interface{}) error {
  384. o := orm.NewOrm()
  385. ptrStructOrTableName := "rs_calendar_researcher"
  386. qs := o.QueryTable(ptrStructOrTableName)
  387. for expr, exprV := range where {
  388. qs = qs.Filter(expr, exprV)
  389. }
  390. _, err := qs.Update(updateParams)
  391. return err
  392. }
  393. // 更新
  394. func UpdateCalendarResearcherFromSH(item *RsCalendarResearcher) error {
  395. o := orm.NewOrm()
  396. _, err := o.Update(item, "")
  397. return err
  398. }
  399. type AddMattersReq struct {
  400. StartDate string `description:"开始日期"`
  401. EndDate string `description:"结束日期"`
  402. StartTime string `description:"开始时间"`
  403. EndTime string `description:"结束时间"`
  404. StartWeek string `description:"开始日期周"`
  405. EndWeek string `description:"结束日期周"`
  406. MatterContent string `description:"事项内容"`
  407. }
  408. type RsMatters struct {
  409. RsMattersId int `orm:"column(rs_matters_id);pk"`
  410. SysUserId int `description:"添加事项人id"`
  411. SysUserRealName string `description:"创建人姓名"`
  412. StartDate string `description:"开始日期"`
  413. EndDate string `description:"结束日期"`
  414. StartTime string `description:"开始时间"`
  415. EndTime string `description:"结束时间"`
  416. StartWeek string `description:"开始日期周"`
  417. EndWeek string `description:"结束日期周"`
  418. MatterContent string `description:"事项内容"`
  419. Status int8 `description:"状态:1:进行中,6:已结束"`
  420. CreateTime time.Time `description:"创建时间"`
  421. ModifyTime time.Time `description:"修改时间"`
  422. IsSynced int `description:"是否与上海同步 0:未同步 1:已同步"`
  423. EditReason string `description:"修改原因"`
  424. IsSeller int `description:"是否为销售事项: 0-否; 1-是"`
  425. }
  426. // 添加RsCalendarResearcher
  427. func AddRsMatters(item *RsMatters) (id int64, err error) {
  428. o := orm.NewOrm()
  429. id, err = o.Insert(item)
  430. return
  431. }
  432. type UpdateMattersReq struct {
  433. RsMattersId int `orm:"column(rs_matters_id);pk"`
  434. StartDate string `description:"开始日期"`
  435. EndDate string `description:"结束日期"`
  436. StartTime string `description:"开始时间"`
  437. EndTime string `description:"结束时间"`
  438. StartWeek string `description:"开始日期周"`
  439. EndWeek string `description:"结束日期周"`
  440. MatterContent string `description:"事项内容"`
  441. EditReason string `description:"修改原因"`
  442. }
  443. // 更新
  444. func UpdateRsMatters(where, updateParams map[string]interface{}) error {
  445. o := orm.NewOrm()
  446. ptrStructOrTableName := "rs_matters"
  447. qs := o.QueryTable(ptrStructOrTableName)
  448. for expr, exprV := range where {
  449. qs = qs.Filter(expr, exprV)
  450. }
  451. _, err := qs.Update(updateParams)
  452. return err
  453. }
  454. type DeleteMattersReq struct {
  455. RsMattersId int `description:"事项id"`
  456. }
  457. // 删除事项
  458. func DeleteRsMatters(rsMattersId int) (err error) {
  459. o := orm.NewOrm()
  460. sql := ` DELETE FROM rs_matters WHERE rs_matters_id=? `
  461. _, err = o.Raw(sql, rsMattersId).Exec()
  462. return err
  463. }
  464. type RsMattersView struct {
  465. RsMattersId int `orm:"column(rs_matters_id);pk"`
  466. SysUserId int `description:"添加事项人id"`
  467. SysUserRealName string `description:"创建人姓名"`
  468. StartDate string `description:"开始日期"`
  469. EndDate string `description:"结束日期"`
  470. StartTime string `description:"开始时间"`
  471. EndTime string `description:"结束时间"`
  472. StartWeek string `description:"开始日期周"`
  473. EndWeek string `description:"结束日期周"`
  474. MatterContent string `description:"事项内容"`
  475. Status int8 `description:"状态:1:进行中,6:已结束"`
  476. CreateTime string `description:"创建时间"`
  477. ModifyTime string `description:"修改时间"`
  478. IsSynced int `description:"是否与上海同步 0:未同步 1:已同步"`
  479. EditReason string `description:"修改原因"`
  480. ButtonAuth RsMatterButton `description:"按钮权限"`
  481. }
  482. // RsMatterButton
  483. type RsMatterButton struct {
  484. EditDisabled bool `description:"禁用编辑"`
  485. RemoveDisabled bool `description:"禁用删除"`
  486. }
  487. func GetCalendarDetailList(condition string, pars []interface{}) (list []*CalendarListView, err error) {
  488. o := orm.NewOrm()
  489. sql := `SELECT a.*,b.*,c.status AS company_status FROM rs_calendar AS a
  490. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  491. LEFT JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
  492. WHERE 1=1 `
  493. if condition != "" {
  494. sql += condition
  495. }
  496. sql += ` ORDER BY a.create_time DESC `
  497. _, err = o.Raw(sql, pars).QueryRows(&list)
  498. return
  499. }
  500. func GetRsMattersList(startDate, endDate string, researcherId int) (list []*RsMatters, err error) {
  501. o := orm.NewOrm()
  502. //sql := `SELECT * FROM rs_matters AS a WHERE a.start_date>=? AND a.end_date<=? AND sys_user_id=? `
  503. sql := `SELECT * FROM rs_matters AS a WHERE sys_user_id=? `
  504. sql += ` ORDER BY a.create_time DESC `
  505. //_, err = o.Raw(sql, startDate, endDate, researcherId).QueryRows(&list)
  506. _, err = o.Raw(sql, researcherId).QueryRows(&list)
  507. return
  508. }
  509. type CalendarDetailResp struct {
  510. CalendarList []*CalendarListView
  511. RsMattersList []*RsMatters
  512. }
  513. type EditActivityReq struct {
  514. EditType int `description:"修改方式: 1:修改,2:修改重提"`
  515. RsCalendarId int `description:"路演活动id"`
  516. RsCalendarResearcherId int `description:"活动研究员id"`
  517. ActivityType string `description:"活动类型"`
  518. RoadshowType string `description:"路演形式"`
  519. RoadshowPlatform string `description:"路演平台"`
  520. CompanyId int `description:"客户id"`
  521. CompanyName string `description:"客户名称"`
  522. Province string `description:"省"`
  523. ProvinceCode string `description:"省编码"`
  524. City string `description:"市"`
  525. CityCode string `description:"市编码"`
  526. District string `description:"区"`
  527. Theme string `description:"会议主题"`
  528. CooperationName string `description:"合作方名称"`
  529. ActivityCategory string `description:"活动类别"`
  530. ResearcherList []*CalendarResearcher
  531. EnglishCompany int `description:"是否为英文客户"`
  532. }
  533. // 更新活动信息
  534. func UpdateRsCalendar(where, updateParams map[string]interface{}) error {
  535. o := orm.NewOrm()
  536. ptrStructOrTableName := "rs_calendar"
  537. qs := o.QueryTable(ptrStructOrTableName)
  538. for expr, exprV := range where {
  539. qs = qs.Filter(expr, exprV)
  540. }
  541. _, err := qs.Update(updateParams)
  542. return err
  543. }
  544. func GetMattersListCount(condition string, pars []interface{}) (count int, err error) {
  545. o := orm.NewOrm()
  546. sql := `SELECT COUNT(1) AS count FROM rs_matters AS a
  547. WHERE 1=1 `
  548. if condition != "" {
  549. sql += condition
  550. }
  551. err = o.Raw(sql, pars).QueryRow(&count)
  552. return
  553. }
  554. func GetMattersList(condition string, pars []interface{}, pageLimit ...int) (list []*RsMattersView, err error) {
  555. o := orm.NewOrm()
  556. sql := `SELECT * FROM rs_matters AS a
  557. WHERE 1=1 `
  558. if condition != "" {
  559. sql += condition
  560. }
  561. sql += ` ORDER BY a.create_time DESC LIMIT ?,? `
  562. _, err = o.Raw(sql, pars, pageLimit).QueryRows(&list)
  563. return
  564. }
  565. type MattersListResp struct {
  566. Paging *paging.PagingItem
  567. List []*RsMattersView
  568. }
  569. // 删除
  570. func DeleteCalendar(rsCalendarId, rsCalendarResearcherId int) (err error) {
  571. o := orm.NewOrm()
  572. sql := ` DELETE FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  573. _, err = o.Raw(sql, rsCalendarId).Exec()
  574. if err != nil {
  575. return err
  576. }
  577. //var count int
  578. //sql = ` SELECT COUNT(1) AS count FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  579. //err = o.Raw(sql, rsCalendarId).QueryRow(&count)
  580. //if err != nil && err.Error() != utils.ErrNoRow() {
  581. // return err
  582. //}
  583. //if count <= 0 {
  584. // sql := ` DELETE FROM rs_calendar WHERE rs_calendar_id=? `
  585. // _, err = o.Raw(sql, rsCalendarId).Exec()
  586. // if err != nil {
  587. // return err
  588. // }
  589. //}
  590. sql = ` DELETE FROM rs_calendar WHERE rs_calendar_id=? `
  591. _, err = o.Raw(sql, rsCalendarId).Exec()
  592. return err
  593. }
  594. // 删除
  595. func DeleteRsCalendarResearcher(rsCalendarId int) (err error) {
  596. o := orm.NewOrm()
  597. sql := ` DELETE FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  598. _, err = o.Raw(sql, rsCalendarId).Exec()
  599. return err
  600. }
  601. func CheckMattersCount(condition string, pars []interface{}) (count int, err error) {
  602. o := orm.NewOrm()
  603. sql := `SELECT COUNT(1) AS count FROM rs_matters AS a
  604. WHERE 1=1 `
  605. if condition != "" {
  606. sql += condition
  607. }
  608. err = o.Raw(sql, pars).QueryRow(&count)
  609. return
  610. }
  611. func CheckCalendarResearcherCount(condition string, pars []interface{}) (count int, err error) {
  612. o := orm.NewOrm()
  613. sql := `SELECT COUNT(1) AS count FROM rs_calendar_researcher AS a
  614. WHERE 1=1 `
  615. if condition != "" {
  616. sql += condition
  617. }
  618. err = o.Raw(sql, pars).QueryRow(&count)
  619. return
  620. }
  621. func GetResearcherFromAdmin(condition string, pars []interface{}) (lists []*system.Admin, err error) {
  622. o := orm.NewOrm()
  623. sql := `SELECT * FROM admin WHERE 1=1 `
  624. if condition != "" {
  625. sql += condition
  626. }
  627. _, err = o.Raw(sql, pars).QueryRows(&lists)
  628. return
  629. }
  630. func GetCreditCodeFromCompany(companyId int) (creditCode string, err error) {
  631. o := orm.NewOrm()
  632. companyItem := company.Company{CompanyId: companyId}
  633. err = o.Read(&companyItem)
  634. if err != nil {
  635. return "", err
  636. }
  637. creditCode = companyItem.CreditCode
  638. return
  639. }
  640. type SHCalendar struct {
  641. CalendarId int `description:"日历id"`
  642. UserPhone string `description:"创建人手机号"`
  643. ResearcherPhone string `description:"研究员手机号"`
  644. IndustryName string `description:"行业名称"`
  645. CreditCode string `description:"社会信用码"`
  646. content string `description:"日历内容"`
  647. StartTime string `description:"开始时间"`
  648. EndTime string `description:"结束时间"`
  649. }
  650. func GetRsCalendarResearcherByRsCalendarIdAndResearcherId(rsCalendarId, researcherId int) (item *RsCalendarResearcher, err error) {
  651. o := orm.NewOrm()
  652. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id=? AND researcher_id=? `
  653. err = o.Raw(sql, rsCalendarId, researcherId).QueryRow(&item)
  654. return
  655. }
  656. // GetRsCalendarResearcherListByRsCalendarId 根据路演id获取路演研究员列表
  657. func GetRsCalendarResearcherListByRsCalendarId(rsCalendarId int) (items []*RsCalendarResearcher, err error) {
  658. o := orm.NewOrm()
  659. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  660. _, err = o.Raw(sql, rsCalendarId).QueryRows(&items)
  661. return
  662. }
  663. func GetMattersById(rsMatters int) (item *RsMatters, err error) {
  664. o := orm.NewOrm()
  665. sql := `SELECT * FROM rs_matters
  666. WHERE rs_matters_id=? `
  667. err = o.Raw(sql, rsMatters).QueryRow(&item)
  668. return
  669. }
  670. func GetRsCalendarResearcherExist(rsCalendarResearcherId, rsCalendarId, researcherId int) (count int, err error) {
  671. o := orm.NewOrm()
  672. sql := `SELECT COUNT(1) AS count FROM rs_calendar_researcher WHERE rs_calendar_researcher_id=? AND rs_calendar_id=? AND researcher_id=? `
  673. err = o.Raw(sql, rsCalendarResearcherId, rsCalendarId, researcherId).QueryRow(&count)
  674. return
  675. }
  676. func GetRsCalendarResearcherByCalendarId(rsCalendarId int) (item []*RsCalendarResearcher, err error) {
  677. o := orm.NewOrm()
  678. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  679. _, err = o.Raw(sql, rsCalendarId).QueryRows(&item)
  680. return
  681. }
  682. type PublicMeetingDetailResp struct {
  683. Group []*PublicMeetingGroup
  684. }
  685. type PublicMeetingGroup struct {
  686. UnionCode string
  687. MinTime string
  688. MaxTime string
  689. CalendarList []*CalendarListView
  690. }
  691. func GetPublicCalendarDetailList(condition string, pars []interface{}) (list []*CalendarListView, err error) {
  692. o := orm.NewOrm()
  693. sql := `SELECT a.*,b.*,c.status AS company_status FROM rs_calendar AS a
  694. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  695. LEFT JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
  696. INNER JOIN admin AS d ON b.researcher_id=d.admin_id
  697. WHERE 1=1 AND d.enabled=1 `
  698. if condition != "" {
  699. sql += condition
  700. }
  701. sql += ` ORDER BY a.create_time DESC `
  702. _, err = o.Raw(sql, pars).QueryRows(&list)
  703. return
  704. }
  705. type AdminInfo struct {
  706. AdminId int
  707. RealName string
  708. }
  709. func GetOverseaCustomCalendarSellerList() (list []*AdminInfo, err error) {
  710. o := orm.NewOrm()
  711. sql1 := `SELECT a.sys_user_id FROM rs_calendar AS a
  712. INNER JOIN rs_report_record AS b ON a.rs_calendar_id=b.rs_calendar_id
  713. JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
  714. JOIN company AS d ON c.company_id=d.company_id
  715. INNER JOIN overseas_custom_seller AS f ON c.seller_id=f.seller_id
  716. where c.is_overseas = 0 and a.english_company= 0 AND a.source = 0 AND b.rs_calendar_researcher_status=2 AND a.sys_user_id != 0 `
  717. sql2 := `SELECT aa.sys_user_id FROM rs_calendar AS aa
  718. INNER JOIN rs_report_record AS bb ON aa.rs_calendar_id=bb.rs_calendar_id
  719. where aa.english_company= 1 AND aa.source = 0 AND bb.rs_calendar_researcher_status=2 AND aa.sys_user_id != 0`
  720. sql := `SELECT n.admin_id,n.real_name FROM (` + sql1 + ` UNION ALL ` + sql2
  721. sql += ` ) AS m
  722. JOIN admin n on m.sys_user_id=n.admin_id
  723. WHERE 1=1 Group by sys_user_id order by sys_user_id asc`
  724. _, err = o.Raw(sql).QueryRows(&list)
  725. return
  726. }
  727. func GetOverseaCustomCalendarResearcherList() (list []*AdminInfo, err error) {
  728. o := orm.NewOrm()
  729. sql1 := `SELECT b.researcher_id FROM rs_calendar AS a
  730. INNER JOIN rs_report_record AS b ON a.rs_calendar_id=b.rs_calendar_id
  731. JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
  732. JOIN company AS d ON c.company_id=d.company_id
  733. INNER JOIN overseas_custom_seller AS f ON c.seller_id=f.seller_id
  734. where c.is_overseas = 0 and a.english_company= 0 AND a.source = 0 AND b.rs_calendar_researcher_status=2 AND b.researcher_id != 0`
  735. sql2 := `SELECT bb.researcher_id FROM rs_calendar AS aa
  736. INNER JOIN rs_report_record AS bb ON aa.rs_calendar_id=bb.rs_calendar_id
  737. where aa.english_company= 1 AND aa.source = 0 AND bb.rs_calendar_researcher_status=2 AND bb.researcher_id != 0 `
  738. sql := `SELECT n.admin_id,n.real_name FROM (` + sql1 + ` UNION ALL ` + sql2
  739. sql += ` ) AS m
  740. JOIN admin n on m.researcher_id=n.admin_id
  741. WHERE 1=1 Group by researcher_id order by researcher_id asc`
  742. _, err = o.Raw(sql).QueryRows(&list)
  743. return
  744. }
  745. type OverseaCustomRecordInfoResp struct {
  746. Paging *paging.PagingItem
  747. List []*OverseaCustomRecordInfo
  748. }
  749. type OverseaCustomRecordInfo struct {
  750. RsCalendarId int
  751. CompanyId int
  752. Source int
  753. RoadshowType string
  754. RoadshowPlatform string
  755. SellerName string
  756. ResearcherName string
  757. CompanyName string
  758. CompanyStatus string
  759. StartDate string
  760. }
  761. func GetOverseaCustomCalendarList(keyword, sellerId, researcherId, startDate, endDate, companyStatus, sortField, sortDesc string, startSize, pageSize int) (total int, list []*OverseaCustomRecordInfo, err error) {
  762. var databaseName string
  763. if utils.RunMode == "debug" {
  764. databaseName = "test_v2_hongze_rddp"
  765. } else {
  766. databaseName = "hongze_rddp"
  767. }
  768. companyStatusList := make([]string, 0)
  769. if companyStatus != "" {
  770. companyStatusList = strings.Split(companyStatus, ",")
  771. }
  772. lenCompanyStatusList := len(companyStatusList)
  773. o := orm.NewOrm()
  774. pars := make([]interface{}, 0)
  775. sql1 := `SELECT d.company_name,d.overseas_status company_status,b.start_date,a.rs_calendar_id,a.roadshow_type,a.roadshow_platform,a.sys_user_real_name seller_name,b.researcher_name as base_researcher_name,2 AS source,d.company_id FROM rs_calendar AS a
  776. INNER JOIN rs_report_record AS b ON a.rs_calendar_id=b.rs_calendar_id
  777. JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
  778. JOIN company AS d ON c.company_id=d.company_id
  779. INNER JOIN overseas_custom_seller AS f ON c.seller_id=f.seller_id
  780. where c.is_overseas = 0 and a.english_company= 0 AND a.source = 0 AND b.rs_calendar_researcher_status=2 AND b.researcher_id != 0`
  781. if keyword != "" {
  782. sql1 += ` AND d.company_name like ? `
  783. pars = utils.GetLikeKeywordPars(pars, keyword, 1)
  784. }
  785. if sellerId != "" {
  786. sql1 += fmt.Sprintf(` AND a.sys_user_id in (%s) `, sellerId)
  787. }
  788. if startDate != "" {
  789. sql1 += ` AND b.start_date >= ? `
  790. pars = append(pars, startDate)
  791. }
  792. if endDate != "" {
  793. sql1 += ` AND b.start_date <= ? `
  794. pars = append(pars, endDate)
  795. }
  796. if lenCompanyStatusList > 0 {
  797. sql1 += ` AND d.overseas_status in (` + utils.GetOrmInReplace(lenCompanyStatusList) + ") "
  798. pars = append(pars, companyStatusList)
  799. }
  800. sql2 := fmt.Sprintf(`SELECT cc.company_name,cc.overseas_status company_status,bb.start_date,aa.rs_calendar_id,aa.roadshow_type,aa.roadshow_platform,aa.sys_user_real_name seller_name,bb.researcher_name as base_researcher_name,1 AS source,cc.company_id+10000000 FROM rs_calendar AS aa
  801. INNER JOIN rs_report_record AS bb ON aa.rs_calendar_id=bb.rs_calendar_id
  802. INNER JOIN %s.english_company AS cc ON aa.company_id=cc.company_id
  803. where aa.english_company= 1 AND aa.source = 0 AND cc.is_deleted=0 AND bb.rs_calendar_researcher_status=2 AND bb.researcher_id != 0 `, databaseName)
  804. if keyword != "" {
  805. sql2 += ` AND cc.company_name like ? `
  806. pars = utils.GetLikeKeywordPars(pars, keyword, 1)
  807. }
  808. if sellerId != "" {
  809. sql2 += fmt.Sprintf(` AND aa.sys_user_id in (%s) `, sellerId)
  810. }
  811. if startDate != "" {
  812. sql2 += ` AND bb.start_date >= ? `
  813. pars = append(pars, startDate)
  814. }
  815. if endDate != "" {
  816. sql2 += ` AND bb.start_date <= ? `
  817. pars = append(pars, endDate)
  818. }
  819. if lenCompanyStatusList > 0 {
  820. sql2 += ` AND cc.overseas_status in (` + utils.GetOrmInReplace(lenCompanyStatusList) + ") "
  821. pars = append(pars, companyStatusList)
  822. }
  823. rsCalendarIdList := make([]int, 0)
  824. if researcherId != `` {
  825. rsCalendarIdSql := fmt.Sprintf("select rs_calendar_id from rs_calendar_researcher where researcher_id in (%s) group by rs_calendar_id", researcherId)
  826. _, err = o.Raw(rsCalendarIdSql).QueryRows(&rsCalendarIdList)
  827. if err != nil {
  828. return
  829. }
  830. }
  831. rsCalendarIdNum := len(rsCalendarIdList)
  832. // 汇总数据
  833. totalSql := `SELECT COUNT(1) FROM (SELECT rs_calendar_id FROM (` + sql1 + ` UNION ALL ` + sql2
  834. totalSql += ` ) AS m WHERE 1=1 `
  835. if rsCalendarIdNum > 0 {
  836. totalSql += fmt.Sprintf(` AND rs_calendar_id IN (` + utils.GetOrmInReplace(rsCalendarIdNum) + `)`)
  837. pars = append(pars, rsCalendarIdList)
  838. }
  839. totalSql += ` Group by rs_calendar_id) fff`
  840. err = o.Raw(totalSql, pars).QueryRow(&total)
  841. if err != nil {
  842. return
  843. }
  844. // 列表数据
  845. sql := `SELECT m.*,GROUP_CONCAT(DISTINCT base_researcher_name ORDER BY rs_calendar_id ASC SEPARATOR ',') AS researcher_name FROM (` + sql1 + ` UNION ALL ` + sql2
  846. sql += ` ) AS m WHERE 1=1 `
  847. if rsCalendarIdNum > 0 {
  848. sql += fmt.Sprintf(` AND rs_calendar_id IN (` + utils.GetOrmInReplace(rsCalendarIdNum) + `)`)
  849. }
  850. sql += fmt.Sprintf(` Group by rs_calendar_id order by %s %s `, sortField, sortDesc)
  851. sql += ` LIMIT ?,? `
  852. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
  853. return
  854. }
  855. func GetOverseaCustomCalendarList2(sellerId, researcherId, startDate, endDate, companyStatus string) (list []*RsReportRecordList, err error) {
  856. var databaseName string
  857. if utils.RunMode == "debug" {
  858. databaseName = "test_v2_hongze_rddp"
  859. } else {
  860. databaseName = "hongze_rddp"
  861. }
  862. companyStatusList := make([]string, 0)
  863. if companyStatus != "" {
  864. companyStatusList = strings.Split(companyStatus, ",")
  865. }
  866. lenCompanyStatusList := len(companyStatusList)
  867. o := orm.NewOrm()
  868. pars := make([]interface{}, 0)
  869. sql1 := `SELECT b.start_date,b.end_date,b.start_time,b.end_time,a.rs_calendar_id,b.seller_id,b.seller_name,b.researcher_name,b.company_name,b.company_id,d.overseas_status as company_status,b.roadshow_type,a.theme,a.roadshow_platform,a.province as province,a.city as city ,a.english_company FROM rs_calendar AS a
  870. INNER JOIN rs_report_record AS b ON a.rs_calendar_id=b.rs_calendar_id
  871. JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
  872. JOIN company AS d ON c.company_id=d.company_id
  873. INNER JOIN overseas_custom_seller AS f ON c.seller_id=f.seller_id
  874. where c.is_overseas = 0 and a.english_company= 0 AND a.source = 0 AND b.rs_calendar_researcher_status=2 AND b.researcher_id != 0`
  875. if startDate != "" {
  876. sql1 += ` AND b.start_date >= ? `
  877. pars = append(pars, startDate)
  878. }
  879. if endDate != "" {
  880. sql1 += ` AND b.start_date <= ? `
  881. pars = append(pars, endDate)
  882. }
  883. if lenCompanyStatusList > 0 {
  884. sql1 += ` AND d.overseas_status in (` + utils.GetOrmInReplace(lenCompanyStatusList) + ") "
  885. pars = append(pars, companyStatusList)
  886. }
  887. if sellerId != "" {
  888. sql1 += fmt.Sprintf(` AND b.seller_id in (%s) `, sellerId)
  889. }
  890. if researcherId != "" {
  891. sql1 += fmt.Sprintf(` AND b.researcher_id in (%s) `, researcherId)
  892. }
  893. sql2 := fmt.Sprintf(`SELECT bb.start_date,bb.end_date,bb.start_time,bb.end_time,aa.rs_calendar_id,bb.seller_id,bb.seller_name,bb.researcher_name,aa.company_name,aa.company_id,cc.overseas_status as company_status,bb.roadshow_type,aa.theme,aa.roadshow_platform,aa.province as province,aa.city as city ,aa.english_company FROM rs_calendar AS aa
  894. INNER JOIN rs_report_record AS bb ON aa.rs_calendar_id=bb.rs_calendar_id
  895. INNER JOIN %s.english_company AS cc ON aa.company_id=cc.company_id
  896. where aa.english_company= 1 AND aa.source = 0 AND cc.is_deleted=0 AND bb.rs_calendar_researcher_status=2 AND bb.researcher_id != 0 `, databaseName)
  897. if startDate != "" {
  898. sql2 += ` AND bb.start_date >= ? `
  899. pars = append(pars, startDate)
  900. }
  901. if endDate != "" {
  902. sql2 += ` AND bb.start_date <= ? `
  903. pars = append(pars, endDate)
  904. }
  905. if lenCompanyStatusList > 0 {
  906. sql2 += ` AND cc.overseas_status in (` + utils.GetOrmInReplace(lenCompanyStatusList) + ") "
  907. pars = append(pars, companyStatusList)
  908. }
  909. if sellerId != "" {
  910. sql2 += fmt.Sprintf(` AND bb.seller_id in (%s) `, sellerId)
  911. }
  912. if researcherId != "" {
  913. sql2 += fmt.Sprintf(` AND bb.researcher_id in (%s) `, researcherId)
  914. }
  915. // 列表数据
  916. sql := `SELECT m.* FROM (` + sql1 + ` UNION ALL ` + sql2
  917. sql += ` ) AS m WHERE 1=1 `
  918. sql += ` Group by rs_calendar_id `
  919. _, err = o.Raw(sql, pars).QueryRows(&list)
  920. return
  921. }
  922. func GetRsCalendarResearcherListInit16_2() (item []*RsCalendar, err error) {
  923. o := orm.NewOrm()
  924. sql := `SELECT * FROM rs_calendar WHERE activity_type = '路演' AND company_id > 0 AND sys_user_id IN (SELECT admin_id FROM admin WHERE role_type_code IN ('rai_seller','rai_group','rai_admin') ) AND seller_id = 0 `
  925. _, err = o.Raw(sql).QueryRows(&item)
  926. return
  927. }
  928. // 修改可见范围
  929. func UpdateRsCalendarSeller(seller_id, share_seller_id, rs_calendar_id int) (err error) {
  930. o := orm.NewOrm()
  931. sql := `UPDATE rs_calendar SET seller_id=?, share_seller_id= ? WHERE rs_calendar_id =? `
  932. _, err = o.Raw(sql, seller_id, share_seller_id, rs_calendar_id).Exec()
  933. return
  934. }