user_rai_label.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. package cygx
  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. "hongze/hz_crm_api/utils"
  9. "strconv"
  10. "time"
  11. )
  12. // 权益用户标签
  13. type UserRaiLabelController struct {
  14. controllers.BaseAuthController
  15. }
  16. // @Title 销售输入标签
  17. // @Description 销售输入标签接口
  18. // @Param request body cygx.WxUserRaiLabelAddReq true "type json string"
  19. // @Success 200 {object} "保存成功"
  20. // @router /use_rai_label/add [post]
  21. func (this *UserRaiLabelController) Add() {
  22. br := new(models.BaseResponse).Init()
  23. defer func() {
  24. this.Data["json"] = br
  25. this.ServeJSON()
  26. }()
  27. AdminUser := this.SysUser
  28. if AdminUser == nil {
  29. br.Msg = "请登录"
  30. br.ErrMsg = "请登录,SysUser Is Empty"
  31. br.Ret = 408
  32. return
  33. }
  34. var req cygx.WxUserRaiLabelAddReq
  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. userId := req.UserId
  42. label := req.Label
  43. wxUser, err := models.GetWxUserItemByUserId(userId)
  44. if err != nil {
  45. br.Msg = "获取失败"
  46. br.ErrMsg = "获取失败, GetWxUserItemByUserId Err:" + err.Error()
  47. return
  48. }
  49. item := new(cygx.WxUserRaiLabel)
  50. item.UserId = wxUser.UserId
  51. item.RealName = wxUser.RealName
  52. item.Mobile = wxUser.Mobile
  53. item.Email = wxUser.Email
  54. item.CompanyId = wxUser.CompanyId
  55. item.CompanyName = wxUser.CompanyName
  56. item.Label = label
  57. item.SysUserId = AdminUser.AdminId
  58. item.SysUserRealName = AdminUser.RealName
  59. item.SourceType = 6
  60. item.CreateTime = time.Now()
  61. item.ModifyTime = time.Now()
  62. err = cygx.AddWxUserRaiLabel(item)
  63. if err != nil {
  64. br.Msg = "保存失败"
  65. br.ErrMsg = "保存失败,Err:" + err.Error()
  66. return
  67. }
  68. br.Ret = 200
  69. br.Success = true
  70. br.IsAddLog = true
  71. br.Msg = "操作成功"
  72. }
  73. // @Title 删除销售输入标签
  74. // @Description 删除销售输入标签接口
  75. // @Param request body cygx.WxUserRaiLabelAddReq true "type json string"
  76. // @Success 200 {object} "保存成功"
  77. // @router /use_rai_label/delte [post]
  78. func (this *UserRaiLabelController) Delte() {
  79. br := new(models.BaseResponse).Init()
  80. defer func() {
  81. this.Data["json"] = br
  82. this.ServeJSON()
  83. }()
  84. AdminUser := this.SysUser
  85. if AdminUser == nil {
  86. br.Msg = "请登录"
  87. br.ErrMsg = "请登录,SysUser Is Empty"
  88. br.Ret = 408
  89. return
  90. }
  91. var req cygx.WxUserRaiLabelIdReq
  92. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  93. if err != nil {
  94. br.Msg = "参数解析异常!"
  95. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  96. return
  97. }
  98. raiLabelId := req.RaiLabelId
  99. err = cygx.DeleteWxUserRaiLabel(raiLabelId)
  100. if err != nil {
  101. br.Msg = "删除失败"
  102. br.ErrMsg = "删除失败,Err:" + err.Error()
  103. return
  104. }
  105. br.Ret = 200
  106. br.Success = true
  107. br.IsAddLog = true
  108. br.Msg = "操作成功"
  109. }
  110. // @Title 标签详情
  111. // @Description 获取标签详情接口
  112. // @Param RaiLabelId query int true "标签ID"
  113. // @Success Ret=200 {object} cygx.ActivityDetail
  114. // @router /use_rai_label/detail [get]
  115. func (this *UserRaiLabelController) Detail() {
  116. br := new(models.BaseResponse).Init()
  117. defer func() {
  118. this.Data["json"] = br
  119. this.ServeJSON()
  120. }()
  121. AdminUser := this.SysUser
  122. if AdminUser == nil {
  123. br.Msg = "请登录"
  124. br.ErrMsg = "请登录,用户信息为空"
  125. br.Ret = 408
  126. return
  127. }
  128. raiLabelId, _ := this.GetInt("RaiLabelId")
  129. detail, err := cygx.GetWxUserRaiLabelDetailById(raiLabelId)
  130. if err != nil {
  131. br.Msg = "获取失败"
  132. br.ErrMsg = "获取失败,标签不存在Err:" + err.Error() + "RaiLabelId:" + strconv.Itoa(raiLabelId)
  133. return
  134. }
  135. resp := new(cygx.WxUserRaiLabelDetailResp)
  136. sourceType := detail.SourceType
  137. sourceId := detail.SourceId
  138. //来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签
  139. switch sourceType {
  140. case 1:
  141. item := new(cygx.WxUserRaiLabelKeyWordResp)
  142. item.Label = detail.Label
  143. item.CreateTime = detail.CreateTime.Format(utils.FormatDateTime)
  144. resp.KeyWord = item
  145. case 2, 4:
  146. item := new(cygx.WxUserRaiLabelActivityResp)
  147. activityInfo, errInfo := cygx.GetAddActivityInfoById(sourceId)
  148. if activityInfo == nil {
  149. br.Msg = "操作失败"
  150. br.ErrMsg = "活动ID错误,不存在activityId:" + strconv.Itoa(sourceId)
  151. return
  152. }
  153. if errInfo != nil {
  154. br.Msg = "操作失败"
  155. br.ErrMsg = "操作失败,Err:" + errInfo.Error()
  156. return
  157. }
  158. item.ActivityName = activityInfo.ActivityName
  159. item.ActivityTypeName = activityInfo.ActivityTypeName
  160. item.ActivityTime = activityInfo.ActivityTime
  161. item.Duration = "5'30''"
  162. item.Label = detail.Label
  163. resp.Activity = item
  164. case 3, 5:
  165. item := new(cygx.WxUserRaiLabelRoadShowResp)
  166. rsCalendarItem, err := roadshow.GetRsCalendarById(sourceId)
  167. if err != nil {
  168. br.Msg = "获取数据失败!"
  169. br.ErrMsg = "获取数据失败!GetRsCalendarById:" + err.Error()
  170. return
  171. }
  172. if rsCalendarItem == nil {
  173. br.Msg = "保存失败!"
  174. br.ErrMsg = "获取数据失败!GetRsCalendarById:" + err.Error()
  175. return
  176. }
  177. rsCalendarResearcherList, tmpErr := roadshow.GetRsCalendarResearcherListByRsCalendarId(sourceId)
  178. if tmpErr != nil {
  179. br.Msg = "获取数据失败!"
  180. br.ErrMsg = "获取数据失败!GetRsCalendarResearcherListByRsCalendarId:" + tmpErr.Error()
  181. return
  182. }
  183. for _, v := range rsCalendarResearcherList {
  184. item.ResearcherName = v.ResearcherName
  185. item.RoadShowTime = v.StartDate + " " + v.StartTime
  186. }
  187. item.Theme = rsCalendarItem.Theme
  188. item.Label = detail.Label
  189. resp.RoadShow = item
  190. case 6:
  191. item := new(cygx.WxUserRaiLabelSellerResp)
  192. item.Label = detail.Label
  193. item.SysUserRealName = detail.SysUserRealName
  194. item.CreateTime = detail.CreateTime.Format(utils.FormatDateTime)
  195. resp.Seller = item
  196. case 7, 8:
  197. detailArticle, err := cygx.GetArticleIdInfoByArticleId(sourceId)
  198. if err != nil {
  199. br.Msg = "内容不存在"
  200. br.ErrMsg = "操作失败,Err:" + err.Error()
  201. return
  202. }
  203. item := new(cygx.WxUserRaiLabelArticleResp)
  204. item.Title = detailArticle.Title
  205. item.PublishDate = detailArticle.PublishDate
  206. item.CreateTime = detail.CreateTime.Format(utils.FormatDateTime)
  207. item.SourceText = "查研观向小程序"
  208. item.StopTime = "2:30"
  209. item.Label = detail.Label
  210. resp.Article = item
  211. }
  212. resp.SourceType = detail.SourceType
  213. br.Ret = 200
  214. br.Success = true
  215. br.Msg = "获取成功"
  216. br.Data = resp
  217. }
  218. // @Title 标签详情
  219. // @Description 获取标签详情接口
  220. // @Param UserId query int true "用户ID"
  221. // @Success Ret=200 {object} cygx.ActivityDetail
  222. // @router /use_rai_label/list [get]
  223. func (this *UserRaiLabelController) List() {
  224. br := new(models.BaseResponse).Init()
  225. defer func() {
  226. this.Data["json"] = br
  227. this.ServeJSON()
  228. }()
  229. AdminUser := this.SysUser
  230. if AdminUser == nil {
  231. br.Msg = "请登录"
  232. br.ErrMsg = "请登录,用户信息为空"
  233. br.Ret = 408
  234. return
  235. }
  236. userId, _ := this.GetInt("UserId")
  237. resp := new(cygx.WxUserRaiLabelList)
  238. list, err := cygx.GetWxUserRaiLabelListByUserId(userId)
  239. if err != nil {
  240. br.Msg = "获取失败"
  241. br.ErrMsg = "获取失败,Err:" + err.Error() + "userId:" + strconv.Itoa(userId)
  242. return
  243. }
  244. if len(list) == 0 {
  245. list = make([]*cygx.WxUserRaiLabelListResp, 0)
  246. }
  247. resp.List = list
  248. br.Ret = 200
  249. br.Success = true
  250. br.Msg = "获取成功"
  251. br.Data = resp
  252. }