morning_meeting.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package cygx
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hz_crm_api/models"
  6. "hongze/hz_crm_api/models/cygx"
  7. "hongze/hz_crm_api/services"
  8. "hongze/hz_crm_api/services/alarm_msg"
  9. "hongze/hz_crm_api/utils"
  10. "strconv"
  11. "time"
  12. )
  13. //func init() {
  14. // fmt.Println(GetCygxMorningMeetingReviewChapterHistoryPvUvMap([]int{111}))
  15. //}
  16. // 根据ID获取pvUv
  17. func GetCygxMorningMeetingReviewChapterHistoryPvUvMap(articleIdArr []int) (mapPvResp, mapUvResp map[int]int) {
  18. lenArr := len(articleIdArr)
  19. if lenArr == 0 {
  20. return
  21. }
  22. var err error
  23. defer func() {
  24. if err != nil {
  25. fmt.Println(err)
  26. go alarm_msg.SendAlarmMsg("根据文章ID获取文章行业分类,信息失败,GetCygxArticlePerssionNameListMap Err:"+err.Error(), 3)
  27. }
  28. }()
  29. var condition string
  30. var pars []interface{}
  31. condition = ` AND meeting_id IN (` + utils.GetOrmInReplace(lenArr) + `)`
  32. pars = append(pars, articleIdArr)
  33. list, e := cygx.GetCygxMorningMeetingReviewChapterHistoryPvUv(condition, pars)
  34. if e != nil && e.Error() != utils.ErrNoRow() {
  35. err = errors.New("GetArticlList, Err: " + e.Error())
  36. return
  37. }
  38. mapPvResp = make(map[int]int, 0)
  39. mapUvResp = make(map[int]int, 0)
  40. for _, v := range list {
  41. mapPvResp[v.ArticleId] = v.Pv
  42. mapUvResp[v.ArticleId] = v.Uv
  43. }
  44. return
  45. }
  46. // 添加晨会精华操作日志
  47. func AddCygxMorningMeetingReviewLog(itemReq *cygx.CygxMorningMeetingReviewChapter, operate, opUserName string, opUserId, status int) {
  48. var err error
  49. defer func() {
  50. if err != nil {
  51. fmt.Println(err)
  52. go alarm_msg.SendAlarmMsg("添加晨会精华操作日志 失败,AddCygxMorningMeetingReviewLog Err:"+err.Error(), 3)
  53. }
  54. }()
  55. item := new(cygx.CygxMorningMeetingReviewLog)
  56. item.MeetingTime = itemReq.MeetingTime
  57. item.CreateTime = time.Now()
  58. item.ModifyTime = time.Now()
  59. item.IndustryId = itemReq.IndustryId
  60. item.IndustryName = itemReq.IndustryName
  61. item.ChartPermissionName = itemReq.ChartPermissionName
  62. item.ChartPermissionId = itemReq.ChartPermissionId
  63. item.IndustrialSubjectIds = itemReq.IndustrialSubjectIds
  64. item.MeetingId = int(itemReq.MeetingId)
  65. item.Content = itemReq.Content
  66. item.ReportLink = itemReq.ReportLink
  67. item.LinkArticleId = itemReq.LinkArticleId
  68. item.Title = itemReq.Title
  69. //item.Remark = remark
  70. item.Operate = operate
  71. item.OpUserName = opUserName
  72. item.OpUserId = opUserId
  73. newId, e := cygx.AddCygxMorningMeetingReviewLog(item)
  74. if e != nil {
  75. err = errors.New("AddCygxMorningMeetingReviewLog, Err: " + e.Error())
  76. return
  77. }
  78. if status == 2 {
  79. SendWxMsgMorningMeetingApproveSubmit(int(newId))
  80. }
  81. return
  82. }
  83. // 晨会点评提交新内容审核时,给合规(指定手机号15721524062、15221002612)发送模板消息
  84. func SendWxMsgMorningMeetingApproveSubmit(logId int) (err error) {
  85. defer func() {
  86. if err != nil {
  87. go alarm_msg.SendAlarmMsg(fmt.Sprint("晨会点评内容完成审核时,给提交人发送模板消息失败 logId ", logId, err.Error()), 2)
  88. }
  89. }()
  90. time.Sleep(1 * time.Second) // 延迟1秒
  91. var first string
  92. var keyword1 string
  93. var keyword2 string
  94. var keyword3 string
  95. var keyword4 string
  96. var remark string
  97. logDetail, e := cygx.GetCygxMorningMeetingReviewLogByLogId(logId)
  98. if e != nil {
  99. err = errors.New("GetCygxMorningMeetingReviewLogByLogId, Err: " + e.Error())
  100. return
  101. }
  102. meetingId := logDetail.MeetingId
  103. keyword1 = logDetail.OpUserName
  104. keyword2 = "--"
  105. keyword3 = time.Now().Format(utils.FormatDateTime)
  106. keyword4 = "提交了晨会点评待审核"
  107. configCode := "cygx_morning_meeting_mobile"
  108. detailConfig, e := cygx.GetConfigByCode(configCode)
  109. if e != nil {
  110. err = errors.New("GetConfigByCode, Err: " + e.Error())
  111. return
  112. }
  113. mobile := detailConfig.ConfigValue
  114. openIdList, e := models.GetWxOpenIdByMobileList(mobile)
  115. if e != nil {
  116. err = errors.New("GetWxOpenIdByMobileList, Err: " + e.Error())
  117. return
  118. }
  119. if len(openIdList) == 0 {
  120. return
  121. }
  122. openIdArr := make([]string, 0)
  123. for _, v := range openIdList {
  124. openIdArr = append(openIdArr, v.OpenId)
  125. }
  126. redirectUrl := ""
  127. redirectUrl = utils.WX_MSG_PATH_MORNING_MEETING_LOG_DETAIL + strconv.Itoa(logId)
  128. if utils.RunMode != "release" {
  129. redirectUrl = ""
  130. }
  131. sendInfo := new(services.SendWxTemplate)
  132. sendInfo.First = first
  133. sendInfo.Keyword1 = keyword1
  134. sendInfo.Keyword2 = keyword2
  135. sendInfo.Keyword3 = keyword3
  136. sendInfo.Keyword4 = keyword4
  137. sendInfo.Remark = remark
  138. sendInfo.TemplateId = utils.WxMsgTemplateIdAskByUser
  139. sendInfo.RedirectUrl = redirectUrl
  140. sendInfo.RedirectTarget = 3
  141. sendInfo.Resource = strconv.Itoa(meetingId)
  142. sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
  143. sendInfo.OpenIdArr = openIdArr
  144. err = services.SendTemplateMsg(sendInfo)
  145. return
  146. }