calendar_meeting_user.go 7.6 KB

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