calendar_meeting_user.go 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. package roadshow
  2. import (
  3. "encoding/json"
  4. "hongze/hz_crm_api/controllers"
  5. "hongze/hz_crm_api/models"
  6. "hongze/hz_crm_api/models/cygx"
  7. "hongze/hz_crm_api/models/roadshow"
  8. "strconv"
  9. "strings"
  10. "time"
  11. )
  12. // 日历参会名单
  13. type CalendarMeetingUserController struct {
  14. controllers.BaseAuthController
  15. }
  16. // @Title 新增路演活动参会名单接口
  17. // @Description 新增路演活动参会名单接口
  18. // @Param request body roadshow.AddRsCalendarMeetingUserReq true "type json string"
  19. // @Success Ret=200 保存成功
  20. // @router /rs_calendar_meeting_user/add [post]
  21. func (this *CalendarMeetingUserController) Add() {
  22. br := new(models.BaseResponse).Init()
  23. defer func() {
  24. this.Data["json"] = br
  25. this.ServeJSON()
  26. }()
  27. sysUser := this.SysUser
  28. if sysUser == nil {
  29. br.Msg = "请登录"
  30. br.ErrMsg = "请登录,SysUser Is Empty"
  31. br.Ret = 408
  32. return
  33. }
  34. var req roadshow.AddRsCalendarMeetingUserReq
  35. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  36. if err != nil {
  37. br.Msg = "参数解析异常!"
  38. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  39. return
  40. }
  41. rsCalendarId := req.RsCalendarId
  42. userIds := req.UserId
  43. tagList := req.TagList
  44. if rsCalendarId == 0 {
  45. br.Msg = "路演信息错误!"
  46. return
  47. }
  48. var itemsGroup []*roadshow.RsCalendarMeetingLabelGroup
  49. for _, v := range tagList {
  50. itemGroup := new(roadshow.RsCalendarMeetingLabelGroup)
  51. itemGroup.RsCalendarId = rsCalendarId
  52. itemGroup.TagType = v.TagType
  53. itemGroup.TagId = v.TagId
  54. itemGroup.AdminId = sysUser.AdminId
  55. itemGroup.AdminName = sysUser.RealName
  56. itemGroup.CreateTime = time.Now()
  57. itemGroup.ModifyTime = time.Now()
  58. itemsGroup = append(itemsGroup, itemGroup)
  59. }
  60. err = roadshow.AddRsCalendarMeetingLabelGroupMulti(itemsGroup, rsCalendarId)
  61. if err != nil {
  62. br.Msg = "获取信息失败!"
  63. br.ErrMsg = "获取信息失败-AddRsCalendarMeetingLabelGroupMulti!Err:" + err.Error()
  64. return
  65. }
  66. if len(userIds) > 0 {
  67. var userIdsStr []string
  68. for _, v := range userIds {
  69. userIdsStr = append(userIdsStr, strconv.Itoa(v))
  70. }
  71. listUser, err := models.GetWxUserListByUserIdsHaveCompany(strings.Join(userIdsStr, ","))
  72. if err != nil {
  73. br.Msg = "获取用户信息失败!"
  74. br.ErrMsg = "获取用户信息失败-GetWxUserListByUserIdsHaveCompany!Err:" + err.Error()
  75. return
  76. }
  77. var items []*roadshow.RsCalendarMeetingUser
  78. for _, v := range listUser {
  79. item := new(roadshow.RsCalendarMeetingUser)
  80. item.RsCalendarId = rsCalendarId
  81. item.UserId = v.UserId
  82. item.Mobile = v.Mobile
  83. item.Email = v.Email
  84. item.CompanyId = v.CompanyId
  85. item.CompanyName = v.CompanyName
  86. item.RealName = v.RealName
  87. item.Position = v.Position
  88. item.AdminId = sysUser.AdminId
  89. item.AdminName = sysUser.RealName
  90. item.CreateTime = time.Now()
  91. item.ModifyTime = time.Now()
  92. items = append(items, item)
  93. }
  94. err = roadshow.MultiAddRsCalendarMeetingUser(items)
  95. if err != nil {
  96. br.Msg = "操作失败!"
  97. br.ErrMsg = "操作失败-MultiAddRsCalendarMeetingUser!Err:" + err.Error()
  98. return
  99. }
  100. }
  101. br.Ret = 200
  102. br.Success = true
  103. br.Msg = "添加成功"
  104. br.IsAddLog = true
  105. }
  106. // @Title 路演活动参会名单列表接口
  107. // @Description 路演活动参会名单列表接口
  108. // @Param RsCalendarId query int true "路演活动id"
  109. // @Success 200 {object} roadshow.CalendarListResp
  110. // @router /rs_calendar_meeting_user/list [get]
  111. func (this *CalendarMeetingUserController) List() {
  112. br := new(models.BaseResponse).Init()
  113. defer func() {
  114. this.Data["json"] = br
  115. this.ServeJSON()
  116. }()
  117. sysUser := this.SysUser
  118. if sysUser == nil {
  119. br.Msg = "请登录"
  120. br.ErrMsg = "请登录,SysUser Is Empty"
  121. br.Ret = 408
  122. return
  123. }
  124. rsCalendarId, _ := this.GetInt("RsCalendarId")
  125. resp := new(roadshow.RsCalendarMeetingUserListResp)
  126. list, err := roadshow.GetRsCalendarMeetingUserListByRsCalendarId(rsCalendarId)
  127. if err != nil {
  128. br.Msg = "获取失败!"
  129. br.ErrMsg = "操作失败-GetRsCalendarMeetingUserListByRsCalendarId!Err:" + err.Error()
  130. return
  131. }
  132. totalGroup, err := roadshow.GetRsCalendarMeetingLabelGroupByRsCalendarId(rsCalendarId)
  133. if err != nil {
  134. br.Msg = "获取信息失败!"
  135. br.ErrMsg = "获取用户信息失败-GetRsCalendarMeetingLabelGroupByRsCalendarId!Err:" + err.Error()
  136. return
  137. }
  138. var lebelDetail []*cygx.RaiServeTagResp
  139. if totalGroup > 0 {
  140. listGroup, err := roadshow.GetRsCalendarMeetingLabelGroupListByRsCalendarId(rsCalendarId)
  141. if err != nil {
  142. br.Msg = "获取信息失败!"
  143. br.ErrMsg = "获取用户信息失败-GetRsCalendarMeetingLabelGroupListByRsCalendarId!Err:" + err.Error()
  144. return
  145. }
  146. var industrialManagementIds []int
  147. var industrialSubjectIds []int
  148. mapindustrialManagementName := make(map[int]string)
  149. mapindustrialSubjectName := make(map[int]string)
  150. mapCelueName := make(map[int]string)
  151. for _, v := range listGroup {
  152. switch v.TagType {
  153. case 1:
  154. industrialManagementIds = append(industrialManagementIds, v.TagId)
  155. case 2:
  156. industrialSubjectIds = append(industrialSubjectIds, v.TagId)
  157. case 3:
  158. mapCelueName[v.TagId] = "策略"
  159. }
  160. }
  161. if len(industrialManagementIds) > 0 {
  162. IndustryList, err := cygx.GetIndustryListByConditionByIds(industrialManagementIds)
  163. if err != nil {
  164. br.Msg = "获取信息失败!"
  165. br.ErrMsg = "获取用户信息失败-GetIndustryListByConditionByIds!Err:" + err.Error()
  166. return
  167. }
  168. for _, v := range IndustryList {
  169. mapindustrialManagementName[v.IndustrialManagementId] = v.IndustryName
  170. }
  171. }
  172. if len(industrialSubjectIds) > 0 {
  173. SubjectList, err := cygx.GetIndustrialSubjectDetailByIds(industrialSubjectIds)
  174. if err != nil {
  175. br.Msg = "获取信息失败!"
  176. br.ErrMsg = "获取用户信息失败-GetIndustryListByConditionByIds!Err:" + err.Error()
  177. return
  178. }
  179. for _, v := range SubjectList {
  180. mapindustrialSubjectName[v.IndustrialSubjectId] = v.SubjectName
  181. }
  182. }
  183. for _, v := range listGroup {
  184. item := new(cygx.RaiServeTagResp)
  185. item.TagType = v.TagType
  186. item.TagId = v.TagId
  187. switch v.TagType {
  188. case 1:
  189. item.TagName = mapindustrialManagementName[v.TagId]
  190. case 2:
  191. item.TagName = mapindustrialSubjectName[v.TagId]
  192. case 3:
  193. item.TagName = mapCelueName[v.TagId]
  194. }
  195. lebelDetail = append(lebelDetail, item)
  196. }
  197. }
  198. if len(list) == 0 {
  199. list = make([]*roadshow.RsCalendarMeetingUserResp, 0)
  200. }
  201. resp.List = list
  202. resp.ListLebel = lebelDetail
  203. br.Ret = 200
  204. br.Success = true
  205. br.Data = resp
  206. br.Msg = "获取成功"
  207. }
  208. // @Title 路演活动参会删除接口
  209. // @Description 路演活动参会删除接口
  210. // @Param RsCalendarMeetingUserId query int true "参会名单主键ID"
  211. // @Success Ret=200 删除成功
  212. // @router /rs_calendar_meeting_user/delete [post]
  213. func (this *CalendarMeetingUserController) Delete() {
  214. br := new(models.BaseResponse).Init()
  215. defer func() {
  216. this.Data["json"] = br
  217. this.ServeJSON()
  218. }()
  219. sysUser := this.SysUser
  220. if sysUser == nil {
  221. br.Msg = "请登录"
  222. br.ErrMsg = "请登录,SysUser Is Empty"
  223. br.Ret = 408
  224. return
  225. }
  226. var req roadshow.DeleteRsCalendarMeetingUserReq
  227. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  228. if err != nil {
  229. br.Msg = "参数解析异常!"
  230. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  231. return
  232. }
  233. rsCalendarMeetingUserId := req.RsCalendarMeetingUserId
  234. err = roadshow.DeleteRsCalendarMeetingUser(rsCalendarMeetingUserId)
  235. if err != nil {
  236. br.Msg = "删除失败!"
  237. br.ErrMsg = "删除失败-DeleteRsCalendarMeetingUser!Err:" + err.Error()
  238. return
  239. }
  240. br.Ret = 200
  241. br.Success = true
  242. br.Msg = "删除成功"
  243. br.IsAddLog = true
  244. }