activity_points_set.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package cygx
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_task/models"
  6. "hongze/hongze_task/models/data_manage"
  7. "hongze/hongze_task/services/alarm_msg"
  8. "hongze/hongze_task/utils"
  9. "strconv"
  10. "strings"
  11. "time"
  12. )
  13. type YanXuanActivityPointsRedis struct {
  14. UserId int `description:"用户ID"`
  15. ComapnyId int `description:"公司ID"`
  16. ActivityId int `description:"活动ID"`
  17. PublishStatus int `description:"发布状态 1已发布,0未发布"`
  18. SourceType int `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会、6 研选审批通过的时候研选扣点更新。"`
  19. AdminId int `description:"管理员、销售ID"`
  20. Source int `description:" 来源,1客户端,2后台添加, 3开发人员手动添加、4定时任务"`
  21. RegisterPlatform int `description:"来源 1小程序,2:网页"`
  22. CreateTime time.Time `description:"创建时间"`
  23. }
  24. //func init(){
  25. // log := &YanXuanActivityPointsRedis{ComapnyId: 16, SourceType: 7, Source: 4, CreateTime: time.Now()}
  26. // if utils.Re == nil {
  27. // err := utils.Rc.LPush(utils.CYGX_YANXUAN_POINTS_KEY, log)
  28. // if err != nil {
  29. // fmt.Println("YanXuanActivityPointsRedis LPush Err:" + err.Error())
  30. // }
  31. // }
  32. //}
  33. // 6 研选审批通过的时候研选扣点更新
  34. func YanXuanCompanyApproval(comapnyId int) (err error) {
  35. defer func() {
  36. if err != nil {
  37. fmt.Println(err)
  38. msg := fmt.Sprint("comapnyId:", comapnyId)
  39. go alarm_msg.SendAlarmMsg("研选审批通过的时候研选扣点更新,写入Redis队列消息失败:"+err.Error()+msg, 2)
  40. }
  41. }()
  42. //SourceType int `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。6 研选审批通过的时候研选扣点更新。7,正式专试用定时任务更新"`
  43. log := &YanXuanActivityPointsRedis{ComapnyId: comapnyId, SourceType: 6, Source: 2, CreateTime: time.Now()}
  44. if utils.Re == nil {
  45. err := utils.Rc.LPush(utils.CYGX_YANXUAN_POINTS_KEY, log)
  46. if err != nil {
  47. fmt.Println("YanXuanActivityPointsRedis LPush Err:" + err.Error())
  48. }
  49. }
  50. return
  51. }
  52. // 7 正式专试用定时任务更新研选扣点
  53. func YanXuanCompanyCompanyTryOut(comapnyId int) (err error) {
  54. defer func() {
  55. if err != nil {
  56. fmt.Println(err)
  57. msg := fmt.Sprint("comapnyId:", comapnyId)
  58. go alarm_msg.SendAlarmMsg("正式专试用定时任务更新研选扣点,写入Redis队列消息失败:"+err.Error()+msg, 2)
  59. }
  60. }()
  61. //SourceType int `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。6 研选审批通过的时候研选扣点更新。7,正式专试用定时任务更新"`
  62. log := &YanXuanActivityPointsRedis{ComapnyId: comapnyId, SourceType: 7, Source: 4, CreateTime: time.Now()}
  63. if utils.Re == nil {
  64. err := utils.Rc.LPush(utils.CYGX_YANXUAN_POINTS_KEY, log)
  65. if err != nil {
  66. fmt.Println("YanXuanActivityPointsRedis LPush Err:" + err.Error())
  67. }
  68. }
  69. return
  70. }
  71. // 审批通过的时候专项调研次数更新
  72. func ActivitySpecialCompanyApproval(companyId int) (err error) {
  73. comapny, e := models.GetCompanyById(companyId)
  74. if e != nil {
  75. err = errors.New("GetCompanyById err:" + e.Error())
  76. return
  77. }
  78. // 获取继承点数
  79. inheritList, e := data_manage.GetCygxActivitySpecialInheritPointsByCompanyId(companyId)
  80. if e != nil && e.Error() != utils.ErrNoRow() {
  81. err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
  82. }
  83. chartNameMap := map[string]int{utils.YI_YAO_NAME: 0, utils.XIAO_FEI_NAME: 0, utils.KE_JI_NAME: 0, utils.ZHI_ZAO_NAME: 0}
  84. userType, packageType, _, _, _ := GetUserType(companyId)
  85. itemBill := new(data_manage.CygxActivitySpecialTripBill)
  86. itemBill.CreateTime = time.Now()
  87. itemBill.CompanyId = companyId
  88. itemBill.CompanyName = comapny.CompanyName
  89. itemBill.Source = 2
  90. itemBill.DoType = 2
  91. itemBill.Way = 3
  92. if userType == 2{
  93. packageTypeMap := map[int]int{1: 16, 2: 10}
  94. totalTrip := packageTypeMap[packageType]
  95. if len(inheritList) > 0 {
  96. for _, v := range inheritList {
  97. if v.ChartPermissionId == 0 {
  98. itemBill.BillDetailed = totalTrip + v.Points
  99. } else {
  100. itemBill.BillDetailed = totalTrip
  101. }
  102. }
  103. } else {
  104. itemBill.BillDetailed = totalTrip
  105. }
  106. itemBill.Total = strconv.Itoa(itemBill.BillDetailed) + "次"
  107. if totalTrip == 10 {
  108. itemBill.Content = "45w大套餐转正"
  109. } else {
  110. itemBill.Content = "70w大套餐转正"
  111. }
  112. } else {
  113. list, e := GetCompanyReportPermissionUpgrade(companyId, 2)
  114. if e != nil && e.Error() != utils.ErrNoRow() {
  115. err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
  116. }
  117. if len(list) == 0 {
  118. return
  119. }
  120. var chartPermissionIdSlice []string
  121. mapChartName := make(map[string]int)
  122. mapInheritChartName := make(map[string]int)
  123. mapPermissionNameTrip := make(map[string]int)
  124. //mapPermissionName := make(map[int]string)
  125. for _, v := range list {
  126. chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
  127. }
  128. chartList, e := models.GetChartPermissionByIds(chartPermissionIdSlice)
  129. if e != nil {
  130. err = errors.New("获取品种信息失败, Err:" + e.Error())
  131. return
  132. }
  133. // 10.9.1本身升级套餐没有也可能通过继承获得
  134. //if len(chartList) == 0 {
  135. // return
  136. //}
  137. for _, v := range chartList {
  138. mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
  139. }
  140. for _, v := range inheritList {
  141. mapInheritChartName[v.ChartPermissionName] = v.Points
  142. }
  143. for k, _ := range chartNameMap {
  144. if _, ok := mapChartName[k]; ok {
  145. if inherit, ok2 := mapInheritChartName[k]; ok2 {
  146. mapChartName[k] += inherit
  147. }
  148. }
  149. }
  150. for k, v := range mapChartName {
  151. if v > 0 {
  152. itemBill.BillDetailed += v
  153. itemBill.Total += k + strconv.Itoa(v) + "次+"
  154. }
  155. }
  156. itemBill.Content = "行业升级套餐转正"
  157. itemBill.Total = strings.TrimRight(itemBill.Total, "+")
  158. }
  159. err = data_manage.AddCygxActivitySpecialTripBill(itemBill)
  160. if err != nil {
  161. return
  162. }
  163. return
  164. }