calendar.go 39 KB

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