calendar.go 26 KB

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