calendar.go 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  1. package roadshow
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. "hongze/hz_crm_api/models/company"
  6. "hongze/hz_crm_api/models/system"
  7. "time"
  8. )
  9. type AddActivityReq struct {
  10. ActivityType string `description:"活动类型"`
  11. RoadshowType string `description:"路演形式"`
  12. RoadshowPlatform string `description:"路演平台"`
  13. CompanyId int `description:"客户id"`
  14. CompanyName string `description:"客户名称"`
  15. Province string `description:"省"`
  16. ProvinceCode string `description:"省编码"`
  17. City string `description:"市"`
  18. CityCode string `description:"市编码"`
  19. District string `description:"区"`
  20. Theme string `description:"会议主题"`
  21. CooperationName string `description:"合作方名称"`
  22. ActivityCategory string `description:"活动类别"`
  23. ResearcherList []*CalendarResearcher
  24. EnglishCompany int `description:"是否为英文客户"`
  25. }
  26. type CalendarResearcher struct {
  27. ResearcherId int `description:"研究员id"`
  28. ResearcherName string `description:"研究员名称"`
  29. StartDate string `description:"开始日期"`
  30. EndDate string `description:"结束日期"`
  31. StartTime string `description:"开始时间"`
  32. EndTime string `description:"结束时间"`
  33. StartWeek string `description:"开始日期对应周"`
  34. EndWeek string `description:"结束日期对应周"`
  35. }
  36. type RsCalendar struct {
  37. RsCalendarId int `orm:"column(rs_calendar_id);pk"`
  38. SysUserId int `description:"创建人id"`
  39. SysUserRealName string `description:"创建人名称"`
  40. ActivityType string `description:"活动类型"`
  41. RoadshowType string `description:"路演形式"`
  42. RoadshowPlatform string `description:"路演平台"`
  43. CompanyId int `description:"客户id"`
  44. CompanyName string `description:"客户名称"`
  45. Province string `description:"省"`
  46. ProvinceCode string `description:"省编码"`
  47. City string `description:"市"`
  48. CityCode string `description:"市编码"`
  49. District string `description:"区"`
  50. Theme string `description:"会议主题"`
  51. CooperationName string `description:"合作方名称"`
  52. Title string `description:"展示在日历的标题"`
  53. Source int8 `description:"来源,0:自系统,1:上海方的"`
  54. CreateTime time.Time
  55. ModifyTime time.Time
  56. ActivityCategory string `description:"活动类别"`
  57. IsSynced int `description:"是否与上海同步 0:未同步 1:已同步"`
  58. UnionCode string `description:"公开会议联合编码"`
  59. EnglishCompany int `description:"是否为英文客户: 0-否; 1-是"`
  60. }
  61. type RsCalendarResearcher struct {
  62. RsCalendarResearcherId int `orm:"column(rs_calendar_researcher_id);pk"`
  63. RsCalendarId int `description:"日历活动id"`
  64. ResearcherId int `description:"研究员id"`
  65. ResearcherName string `description:"研究员名称"`
  66. StartDate string `description:"开始日期"`
  67. EndDate string `description:"结束日期"`
  68. StartTime string `description:"开始时间"`
  69. EndTime string `description:"结束时间"`
  70. StartWeek string `description:"开始日期对应周"`
  71. EndWeek string `description:"结束日期对应周"`
  72. CreateTime time.Time
  73. ModifyTime time.Time
  74. Status int `description:"状态:1:待接受,2:已接受,3:已拒绝,4:已删除,5:已撤回,6:已结束"`
  75. RefuseReason string `description:"拒绝理由"`
  76. RefuseTime time.Time `description:"拒绝时间"`
  77. DeleteReason string `description:"删除理由"`
  78. DeleteTime time.Time `description:"删除时间"`
  79. ApproveTime time.Time `description:"接受时间"`
  80. IsSynced int `description:"是否与上海同步 0:未同步 1:已同步"`
  81. ResearcherSort int `description:"研究员新增排序"`
  82. UnionCode string `description:"公开会议联合编码"`
  83. }
  84. func GetRsCalendarById(rsCalendarId int) (item *RsCalendar, err error) {
  85. o := orm.NewOrm()
  86. sql := `SELECT * FROM rs_calendar WHERE rs_calendar_id=? `
  87. err = o.Raw(sql, rsCalendarId).QueryRow(&item)
  88. return
  89. }
  90. func GetRsCalendarResearcherById(rsCalendarResearcherId int) (item *RsCalendarResearcher, err error) {
  91. o := orm.NewOrm()
  92. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_researcher_id=? `
  93. err = o.Raw(sql, rsCalendarResearcherId).QueryRow(&item)
  94. return
  95. }
  96. // Update 更新路演用户信息
  97. func (item *RsCalendarResearcher) Update(cols []string) (err error) {
  98. o := orm.NewOrm()
  99. _, err = o.Update(item, cols...)
  100. return
  101. }
  102. func GetRsCalendarResearcherListById(rsCalendarId int) (item []*RsCalendarResearcher, err error) {
  103. o := orm.NewOrm()
  104. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  105. _, err = o.Raw(sql, rsCalendarId).QueryRows(&item)
  106. return
  107. }
  108. func GetRsCalendarResearcherListByCalendarResearcherId(rsCalendarResearcherId int) (item []*RsCalendarResearcher, err error) {
  109. o := orm.NewOrm()
  110. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_researcher_id=? `
  111. _, err = o.Raw(sql, rsCalendarResearcherId).QueryRows(&item)
  112. return
  113. }
  114. // 添加RsCalendar
  115. func AddRsCalendar(item *RsCalendar) (lastId int64, err error) {
  116. o := orm.NewOrm()
  117. lastId, err = o.Insert(item)
  118. return
  119. }
  120. // 添加RsCalendarResearcher
  121. func AddRsCalendarResearcher(item *RsCalendarResearcher) (lastId int64, err error) {
  122. o := orm.NewOrm()
  123. lastId, err = o.Insert(item)
  124. return
  125. }
  126. // 添加RsCalendarResearcher
  127. func AddRsCalendarResearcherFromSH(item *RsCalendarResearcher) (bool bool, id int64, err error) {
  128. o := orm.NewOrm()
  129. bool, id, err = o.ReadOrCreate(item, "rs_calendar_id")
  130. return
  131. }
  132. type Researcher struct {
  133. AdminId int `description:"研究员id"`
  134. RealName string `description:"研究员名称"`
  135. GroupId int `description:"分组id"`
  136. GroupName string `description:"分组名称"`
  137. RoleTypeCode string `description:"角色编码"`
  138. }
  139. type ResearcherIds struct {
  140. AdminIds string `description:"研究员id"`
  141. }
  142. type ResearcherGroup struct {
  143. GroupId int `description:"分组id"`
  144. GroupName string `description:"分组名称"`
  145. AdminId int `description:"研究员id"`
  146. RealName string `description:"研究员名称"`
  147. RoleTypeCode string `description:"角色编码"`
  148. ResearcherList []*ResearcherGroup
  149. }
  150. func GetResearcherGroup() (list []*ResearcherGroup, err error) {
  151. o := orm.NewOrm()
  152. sql := ` SELECT group_id,group_name FROM admin AS a
  153. WHERE a.role_type_code IN('researcher','ficc_researcher','ficc_admin')
  154. AND a.enabled=1
  155. AND a.group_id>0
  156. AND a.group_name<>'无'
  157. GROUP BY a.group_id
  158. ORDER BY a.group_id ASC `
  159. _, err = o.Raw(sql).QueryRows(&list)
  160. return
  161. }
  162. func GetResearcher() (list []*Researcher, err error) {
  163. o := orm.NewOrm()
  164. sql := ` SELECT * FROM admin AS a
  165. WHERE a.role_type_code IN('researcher','rai_researcher','ficc_researcher','ficc_admin')
  166. AND a.enabled=1 AND a.real_name<>'于菲' `
  167. _, err = o.Raw(sql).QueryRows(&list)
  168. return
  169. }
  170. func GetChoiceResearcher(adminIds string) (list []*Researcher, err error) {
  171. o := orm.NewOrm()
  172. sql := ` SELECT * FROM admin WHERE admin_id IN ( ` + adminIds + ` ); `
  173. _, err = o.Raw(sql).QueryRows(&list)
  174. return
  175. }
  176. // GetResearcherV2 获取研究员列表(冻结的也要)
  177. func GetResearcherV2() (list []*Researcher, err error) {
  178. o := orm.NewOrm()
  179. sql := ` SELECT * FROM admin AS a
  180. WHERE a.role_type_code IN('researcher','rai_researcher','ficc_researcher','ficc_admin')
  181. AND a.enabled=1 and admin_id !=92 `
  182. _, err = o.Raw(sql).QueryRows(&list)
  183. return
  184. }
  185. // GetSellerGroup 获取销售分组
  186. func GetSellerGroup() (list []*ResearcherGroup, err error) {
  187. o := orm.NewOrm()
  188. sql := ` SELECT group_id,group_name FROM admin AS a
  189. WHERE a.role_type_code IN('ficc_seller','ficc_group')
  190. AND a.enabled=1
  191. AND a.group_id>0
  192. AND a.group_name<>'无'
  193. GROUP BY a.group_id
  194. ORDER BY a.group_id ASC `
  195. _, err = o.Raw(sql).QueryRows(&list)
  196. return
  197. }
  198. // GetSellerList 获取销售列表(冻结的也要)
  199. func GetSellerList(roleTypeCode string, groupIds string) (list []*Researcher, err error) {
  200. o := orm.NewOrm()
  201. sql := ` SELECT * FROM admin AS a
  202. WHERE a.role_type_code IN ` + roleTypeCode + `
  203. AND a.enabled=1 `
  204. if groupIds != "" {
  205. sql += "and group_id in " + groupIds
  206. }
  207. _, err = o.Raw(sql).QueryRows(&list)
  208. return
  209. }
  210. // GetRaiSellerList 获取权益销售列表(冻结的也要)
  211. func GetRaiSellerList(roleTypeCode string, groupIds string) (list []*Researcher, err error) {
  212. o := orm.NewOrm()
  213. sql := ` SELECT * FROM admin AS a
  214. WHERE a.role_type_code IN ` + roleTypeCode + `
  215. AND a.enabled=1 `
  216. if groupIds != "" {
  217. sql += "and group_id in " + groupIds
  218. }
  219. _, err = o.Raw(sql).QueryRows(&list)
  220. return
  221. }
  222. type CalendarListView struct {
  223. RsCalendarId int `orm:"column(rs_calendar_id);pk"`
  224. SysUserId int `description:"创建人id"`
  225. SysUserRealName string `description:"创建人名称"`
  226. ActivityType string `description:"活动类型"`
  227. RoadshowType string `description:"路演形式"`
  228. RoadshowPlatform string `description:"路演平台"`
  229. CompanyId int `description:"客户id"`
  230. CompanyName string `description:"客户名称"`
  231. RsCalendarResearcherId int `description:"活动研究员id"`
  232. ResearcherId string `description:"研究员id"`
  233. ResearcherName string `description:"研究员名称"`
  234. StartDate string `description:"开始日期"`
  235. EndDate string `description:"结束日期"`
  236. StartTime string `description:"开始时间"`
  237. EndTime string `description:"结束时间"`
  238. StartWeek string `description:"开始日期对应周"`
  239. EndWeek string `description:"结束日期对应周"`
  240. CreateTime string
  241. ModifyTime string
  242. Status int `description:"状态:1:待接受,2:已接受,3:已拒绝,4:已删除,5:已撤回,6:已结束"`
  243. RefuseReason string `description:"拒绝理由"`
  244. RefuseTime string `description:"拒绝时间"`
  245. DeleteReason string `description:"删除原因"`
  246. Province string `description:"省"`
  247. ProvinceCode string `description:"省编码"`
  248. City string `description:"市"`
  249. CityCode string `description:"市编码"`
  250. District string `description:"区"`
  251. Theme string `description:"会议主题"`
  252. CooperationName string `description:"合作方名称"`
  253. ActivityCategory string `description:"活动类别"`
  254. Source int `description:"来源,0:自系统,1:上海方的"`
  255. Title string `description:"日历展示标题"`
  256. CompanyStatus string `description:"新增客户状态"`
  257. UnionCode string `description:"公开会议联合编码"`
  258. EnglishCompany int `description:"是否为英文客户: 0-否; 1-是"`
  259. EnglishCountry string `description:"英文客户-国家"`
  260. EnglishViewTotal int `description:"英文客户-累计点击量"`
  261. }
  262. type CalendarListResp struct {
  263. Paging *paging.PagingItem
  264. List []*CalendarListView
  265. }
  266. func GetCalendarListCount(condition string, pars []interface{}, calendarType int) (count int, err error) {
  267. o := orm.NewOrm()
  268. if calendarType == 3 || calendarType == 4 {
  269. sql := `SELECT COUNT(1) AS count FROM(SELECT COUNT(1) AS count
  270. FROM rs_calendar AS a
  271. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  272. WHERE 1=1 `
  273. if condition != "" {
  274. sql += condition
  275. }
  276. sql += ` GROUP BY a.rs_calendar_id ) AS t `
  277. err = o.Raw(sql, pars).QueryRow(&count)
  278. } else {
  279. sql := `SELECT COUNT(1) AS count FROM rs_calendar AS a
  280. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  281. WHERE 1=1 `
  282. if condition != "" {
  283. sql += condition
  284. }
  285. err = o.Raw(sql, pars).QueryRow(&count)
  286. }
  287. return
  288. }
  289. func GetCalendarList(condition string, pars []interface{}, startSize, pageSize, calendarType int) (list []*CalendarListView, err error) {
  290. o := orm.NewOrm()
  291. if calendarType == 3 || calendarType == 4 {
  292. sql := ` SELECT a.rs_calendar_id,a.activity_type,a.roadshow_type,a.activity_category,a.roadshow_platform,b.create_time,a.district,
  293. 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,
  294. b.rs_calendar_researcher_id,b.start_date,
  295. b.end_date,b.start_time,b.end_time,b.start_week,b.end_week,b.status,b.refuse_reason,b.refuse_time,
  296. b.delete_reason,a.sys_user_real_name,a.city,a.province,a.company_name,a.company_id,
  297. a.cooperation_name,a.theme,a.activity_category,a.english_company
  298. FROM rs_calendar AS a
  299. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  300. WHERE 1=1
  301. `
  302. if condition != "" {
  303. sql += condition
  304. }
  305. if calendarType == 1 {
  306. sql += ` GROUP BY a.rs_calendar_id
  307. ORDER BY b.create_time ASC LIMIT ?,? `
  308. } else {
  309. sql += ` GROUP BY a.rs_calendar_id
  310. ORDER BY b.create_time DESC LIMIT ?,? `
  311. }
  312. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
  313. } else {
  314. sql := `SELECT a.rs_calendar_id,a.activity_type,a.roadshow_type,a.activity_category,a.roadshow_platform,b.create_time,a.district,
  315. b.modify_time,b.researcher_id,b.researcher_name,
  316. b.rs_calendar_researcher_id,b.start_date,
  317. b.end_date,b.start_time,b.end_time,b.start_week,b.end_week,b.status,b.refuse_reason,b.refuse_time,
  318. 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
  319. FROM rs_calendar AS a
  320. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  321. WHERE 1=1 `
  322. if condition != "" {
  323. sql += condition
  324. }
  325. if calendarType == 1 {
  326. sql += ` ORDER BY b.create_time ASC LIMIT ?,? `
  327. } else {
  328. sql += ` ORDER BY b.create_time DESC LIMIT ?,? `
  329. }
  330. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
  331. }
  332. return
  333. }
  334. type AcceptReq struct {
  335. RsCalendarId int `description:"日历活动id"`
  336. RsCalendarResearcherId int `description:"活动研究员id"`
  337. }
  338. type DeleteReq struct {
  339. RsCalendarId int `description:"日历活动id"`
  340. RsCalendarResearcherId int `description:"活动研究员id"`
  341. DeleteReason string `description:"删除原因"`
  342. }
  343. type RefuseReq struct {
  344. RsCalendarId int `description:"日历活动id"`
  345. RsCalendarResearcherId int `description:"活动研究员id"`
  346. RefuseReason string `description:"拒绝原因"`
  347. }
  348. // 更新
  349. func UpdateCalendarResearcher(where, updateParams map[string]interface{}) error {
  350. o := orm.NewOrm()
  351. ptrStructOrTableName := "rs_calendar_researcher"
  352. qs := o.QueryTable(ptrStructOrTableName)
  353. for expr, exprV := range where {
  354. qs = qs.Filter(expr, exprV)
  355. }
  356. _, err := qs.Update(updateParams)
  357. return err
  358. }
  359. // 更新
  360. func UpdateCalendarResearcherFromSH(item *RsCalendarResearcher) error {
  361. o := orm.NewOrm()
  362. _, err := o.Update(item, "")
  363. return err
  364. }
  365. type AddMattersReq struct {
  366. StartDate string `description:"开始日期"`
  367. EndDate string `description:"结束日期"`
  368. StartTime string `description:"开始时间"`
  369. EndTime string `description:"结束时间"`
  370. StartWeek string `description:"开始日期周"`
  371. EndWeek string `description:"结束日期周"`
  372. MatterContent string `description:"事项内容"`
  373. }
  374. type RsMatters struct {
  375. RsMattersId int `orm:"column(rs_matters_id);pk"`
  376. SysUserId int `description:"添加事项人id"`
  377. SysUserRealName string `description:"创建人姓名"`
  378. StartDate string `description:"开始日期"`
  379. EndDate string `description:"结束日期"`
  380. StartTime string `description:"开始时间"`
  381. EndTime string `description:"结束时间"`
  382. StartWeek string `description:"开始日期周"`
  383. EndWeek string `description:"结束日期周"`
  384. MatterContent string `description:"事项内容"`
  385. Status int8 `description:"状态:1:进行中,6:已结束"`
  386. CreateTime time.Time `description:"创建时间"`
  387. ModifyTime time.Time `description:"修改时间"`
  388. IsSynced int `description:"是否与上海同步 0:未同步 1:已同步"`
  389. EditReason string `description:"修改原因"`
  390. IsSeller int `description:"是否为销售事项: 0-否; 1-是"`
  391. }
  392. // 添加RsCalendarResearcher
  393. func AddRsMatters(item *RsMatters) (id int64, err error) {
  394. o := orm.NewOrm()
  395. id, err = o.Insert(item)
  396. return
  397. }
  398. type UpdateMattersReq struct {
  399. RsMattersId int `orm:"column(rs_matters_id);pk"`
  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. EditReason string `description:"修改原因"`
  408. }
  409. // 更新
  410. func UpdateRsMatters(where, updateParams map[string]interface{}) error {
  411. o := orm.NewOrm()
  412. ptrStructOrTableName := "rs_matters"
  413. qs := o.QueryTable(ptrStructOrTableName)
  414. for expr, exprV := range where {
  415. qs = qs.Filter(expr, exprV)
  416. }
  417. _, err := qs.Update(updateParams)
  418. return err
  419. }
  420. type DeleteMattersReq struct {
  421. RsMattersId int `description:"事项id"`
  422. }
  423. // 删除事项
  424. func DeleteRsMatters(rsMattersId int) (err error) {
  425. o := orm.NewOrm()
  426. sql := ` DELETE FROM rs_matters WHERE rs_matters_id=? `
  427. _, err = o.Raw(sql, rsMattersId).Exec()
  428. return err
  429. }
  430. type RsMattersView struct {
  431. RsMattersId int `orm:"column(rs_matters_id);pk"`
  432. SysUserId int `description:"添加事项人id"`
  433. SysUserRealName string `description:"创建人姓名"`
  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. Status int8 `description:"状态:1:进行中,6:已结束"`
  442. CreateTime string `description:"创建时间"`
  443. ModifyTime string `description:"修改时间"`
  444. IsSynced int `description:"是否与上海同步 0:未同步 1:已同步"`
  445. EditReason string `description:"修改原因"`
  446. ButtonAuth RsMatterButton `description:"按钮权限"`
  447. }
  448. // RsMatterButton
  449. type RsMatterButton struct {
  450. EditDisabled bool `description:"禁用编辑"`
  451. RemoveDisabled bool `description:"禁用删除"`
  452. }
  453. func GetCalendarDetailList(condition string, pars []interface{}) (list []*CalendarListView, err error) {
  454. o := orm.NewOrm()
  455. sql := `SELECT a.*,b.*,c.status AS company_status FROM rs_calendar AS a
  456. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  457. LEFT JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
  458. WHERE 1=1 `
  459. if condition != "" {
  460. sql += condition
  461. }
  462. sql += ` ORDER BY a.create_time DESC `
  463. _, err = o.Raw(sql, pars).QueryRows(&list)
  464. return
  465. }
  466. func GetRsMattersList(startDate, endDate string, researcherId int) (list []*RsMatters, err error) {
  467. o := orm.NewOrm()
  468. //sql := `SELECT * FROM rs_matters AS a WHERE a.start_date>=? AND a.end_date<=? AND sys_user_id=? `
  469. sql := `SELECT * FROM rs_matters AS a WHERE sys_user_id=? `
  470. sql += ` ORDER BY a.create_time DESC `
  471. //_, err = o.Raw(sql, startDate, endDate, researcherId).QueryRows(&list)
  472. _, err = o.Raw(sql, researcherId).QueryRows(&list)
  473. return
  474. }
  475. type CalendarDetailResp struct {
  476. CalendarList []*CalendarListView
  477. RsMattersList []*RsMatters
  478. }
  479. type EditActivityReq struct {
  480. EditType int `description:"修改方式: 1:修改,2:修改重提"`
  481. RsCalendarId int `description:"路演活动id"`
  482. RsCalendarResearcherId int `description:"活动研究员id"`
  483. ActivityType string `description:"活动类型"`
  484. RoadshowType string `description:"路演形式"`
  485. RoadshowPlatform string `description:"路演平台"`
  486. CompanyId int `description:"客户id"`
  487. CompanyName string `description:"客户名称"`
  488. Province string `description:"省"`
  489. ProvinceCode string `description:"省编码"`
  490. City string `description:"市"`
  491. CityCode string `description:"市编码"`
  492. District string `description:"区"`
  493. Theme string `description:"会议主题"`
  494. CooperationName string `description:"合作方名称"`
  495. ActivityCategory string `description:"活动类别"`
  496. ResearcherList []*CalendarResearcher
  497. EnglishCompany int `description:"是否为英文客户"`
  498. }
  499. // 更新活动信息
  500. func UpdateRsCalendar(where, updateParams map[string]interface{}) error {
  501. o := orm.NewOrm()
  502. ptrStructOrTableName := "rs_calendar"
  503. qs := o.QueryTable(ptrStructOrTableName)
  504. for expr, exprV := range where {
  505. qs = qs.Filter(expr, exprV)
  506. }
  507. _, err := qs.Update(updateParams)
  508. return err
  509. }
  510. func GetMattersListCount(condition string, pars []interface{}) (count int, err error) {
  511. o := orm.NewOrm()
  512. sql := `SELECT COUNT(1) AS count FROM rs_matters AS a
  513. WHERE 1=1 `
  514. if condition != "" {
  515. sql += condition
  516. }
  517. err = o.Raw(sql, pars).QueryRow(&count)
  518. return
  519. }
  520. func GetMattersList(condition string, pars []interface{}, pageLimit ...int) (list []*RsMattersView, err error) {
  521. o := orm.NewOrm()
  522. sql := `SELECT * FROM rs_matters AS a
  523. WHERE 1=1 `
  524. if condition != "" {
  525. sql += condition
  526. }
  527. sql += ` ORDER BY a.create_time DESC LIMIT ?,? `
  528. _, err = o.Raw(sql, pars, pageLimit).QueryRows(&list)
  529. return
  530. }
  531. type MattersListResp struct {
  532. Paging *paging.PagingItem
  533. List []*RsMattersView
  534. }
  535. // 删除
  536. func DeleteCalendar(rsCalendarId, rsCalendarResearcherId int) (err error) {
  537. o := orm.NewOrm()
  538. sql := ` DELETE FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  539. _, err = o.Raw(sql, rsCalendarId).Exec()
  540. if err != nil {
  541. return err
  542. }
  543. //var count int
  544. //sql = ` SELECT COUNT(1) AS count FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  545. //err = o.Raw(sql, rsCalendarId).QueryRow(&count)
  546. //if err != nil && err.Error() != utils.ErrNoRow() {
  547. // return err
  548. //}
  549. //if count <= 0 {
  550. // sql := ` DELETE FROM rs_calendar WHERE rs_calendar_id=? `
  551. // _, err = o.Raw(sql, rsCalendarId).Exec()
  552. // if err != nil {
  553. // return err
  554. // }
  555. //}
  556. sql = ` DELETE FROM rs_calendar WHERE rs_calendar_id=? `
  557. _, err = o.Raw(sql, rsCalendarId).Exec()
  558. return err
  559. }
  560. // 删除
  561. func DeleteRsCalendarResearcher(rsCalendarId int) (err error) {
  562. o := orm.NewOrm()
  563. sql := ` DELETE FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  564. _, err = o.Raw(sql, rsCalendarId).Exec()
  565. return err
  566. }
  567. func CheckMattersCount(condition string, pars []interface{}) (count int, err error) {
  568. o := orm.NewOrm()
  569. sql := `SELECT COUNT(1) AS count FROM rs_matters AS a
  570. WHERE 1=1 `
  571. if condition != "" {
  572. sql += condition
  573. }
  574. err = o.Raw(sql, pars).QueryRow(&count)
  575. return
  576. }
  577. func CheckCalendarResearcherCount(condition string, pars []interface{}) (count int, err error) {
  578. o := orm.NewOrm()
  579. sql := `SELECT COUNT(1) AS count FROM rs_calendar_researcher AS a
  580. WHERE 1=1 `
  581. if condition != "" {
  582. sql += condition
  583. }
  584. err = o.Raw(sql, pars).QueryRow(&count)
  585. return
  586. }
  587. func GetResearcherFromAdmin(condition string, pars []interface{}) (lists []*system.Admin, err error) {
  588. o := orm.NewOrm()
  589. sql := `SELECT * FROM admin WHERE 1=1 `
  590. if condition != "" {
  591. sql += condition
  592. }
  593. _, err = o.Raw(sql, pars).QueryRows(&lists)
  594. return
  595. }
  596. func GetCreditCodeFromCompany(companyId int) (creditCode string, err error) {
  597. o := orm.NewOrm()
  598. companyItem := company.Company{CompanyId: companyId}
  599. err = o.Read(&companyItem)
  600. if err != nil {
  601. return "", err
  602. }
  603. creditCode = companyItem.CreditCode
  604. return
  605. }
  606. type SHCalendar struct {
  607. CalendarId int `description:"日历id"`
  608. UserPhone string `description:"创建人手机号"`
  609. ResearcherPhone string `description:"研究员手机号"`
  610. IndustryName string `description:"行业名称"`
  611. CreditCode string `description:"社会信用码"`
  612. content string `description:"日历内容"`
  613. StartTime string `description:"开始时间"`
  614. EndTime string `description:"结束时间"`
  615. }
  616. func GetRsCalendarResearcherByRsCalendarIdAndResearcherId(rsCalendarId, researcherId int) (item *RsCalendarResearcher, err error) {
  617. o := orm.NewOrm()
  618. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id=? AND researcher_id=? `
  619. err = o.Raw(sql, rsCalendarId, researcherId).QueryRow(&item)
  620. return
  621. }
  622. // GetRsCalendarResearcherListByRsCalendarId 根据路演id获取路演研究员列表
  623. func GetRsCalendarResearcherListByRsCalendarId(rsCalendarId int) (items []*RsCalendarResearcher, err error) {
  624. o := orm.NewOrm()
  625. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  626. _, err = o.Raw(sql, rsCalendarId).QueryRows(&items)
  627. return
  628. }
  629. func GetMattersById(rsMatters int) (item *RsMatters, err error) {
  630. o := orm.NewOrm()
  631. sql := `SELECT * FROM rs_matters
  632. WHERE rs_matters_id=? `
  633. err = o.Raw(sql, rsMatters).QueryRow(&item)
  634. return
  635. }
  636. func GetRsCalendarResearcherExist(rsCalendarResearcherId, rsCalendarId, researcherId int) (count int, err error) {
  637. o := orm.NewOrm()
  638. sql := `SELECT COUNT(1) AS count FROM rs_calendar_researcher WHERE rs_calendar_researcher_id=? AND rs_calendar_id=? AND researcher_id=? `
  639. err = o.Raw(sql, rsCalendarResearcherId, rsCalendarId, researcherId).QueryRow(&count)
  640. return
  641. }
  642. func GetRsCalendarResearcherByCalendarId(rsCalendarId int) (item []*RsCalendarResearcher, err error) {
  643. o := orm.NewOrm()
  644. sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id=? `
  645. _, err = o.Raw(sql, rsCalendarId).QueryRows(&item)
  646. return
  647. }
  648. type PublicMeetingDetailResp struct {
  649. Group []*PublicMeetingGroup
  650. }
  651. type PublicMeetingGroup struct {
  652. UnionCode string
  653. MinTime string
  654. MaxTime string
  655. CalendarList []*CalendarListView
  656. }
  657. func GetPublicCalendarDetailList(condition string, pars []interface{}) (list []*CalendarListView, err error) {
  658. o := orm.NewOrm()
  659. sql := `SELECT a.*,b.*,c.status AS company_status FROM rs_calendar AS a
  660. INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
  661. LEFT JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
  662. INNER JOIN admin AS d ON b.researcher_id=d.admin_id
  663. WHERE 1=1 AND d.enabled=1 `
  664. if condition != "" {
  665. sql += condition
  666. }
  667. sql += ` ORDER BY a.create_time DESC `
  668. _, err = o.Raw(sql, pars).QueryRows(&list)
  669. return
  670. }