xzs_choose_send.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type CygxXzsChooseSend struct {
  7. Id int `orm:"column(id);pk"`
  8. UserId int `description:"用户ID"`
  9. Mobile string `description:"手机号"`
  10. Email string `description:"邮箱"`
  11. CompanyId int `description:"公司id"`
  12. CompanyName string `description:"公司名称"`
  13. RealName string `description:"用户实际名称"`
  14. IsRefuse int `description:"是否拒绝推送,0否、1是 如果为1 则不做任何推送"`
  15. IsSubjective int `description:"是否选择主观推送, 1 是 、 0否"`
  16. IsObjective int `description:"是否选择客观推送, 1 是 、 0否"`
  17. CreateTime time.Time `description:"创建时间"`
  18. ModifyTime time.Time `description:"更新时间"`
  19. }
  20. type CygxXzsChooseSendResp struct {
  21. IsRefuse int `description:"是否拒绝推送,0否、1是 如果为1 则不做任何推送"`
  22. IsSubjective int `description:"是否选择主观推送, 1 是 、 0否"`
  23. IsObjective int `description:"是否选择客观推送, 1 是 、 0否"`
  24. List []*ChartPermissionResp
  25. }
  26. type SubmitChooseSendResp struct {
  27. IsRefuse int `description:"是否拒绝推送,0否、1是 如果为1 则不做任何推送"`
  28. IsSubjective int `description:"是否选择主观推送, 1 是 、 0否"`
  29. IsObjective int `description:"是否选择客观推送, 1 是 、 0否"`
  30. IndustrialManagementIds []*IndustrialManagementIdResp
  31. }
  32. type IndustrialManagementIdResp struct {
  33. IndustrialManagementIds string `description:"产业ID 多个用 ,隔开"`
  34. ChartPermissionId int `description:"权限id"`
  35. }
  36. //添加
  37. func AddCygxXzsChooseSend(item *CygxXzsChooseSend, itemsFllow []*CygxIndustryFllow, itemsCategory []*CygxXzsChooseCategory) (err error) {
  38. o, err := orm.NewOrm().Begin()
  39. if err != nil {
  40. return
  41. }
  42. defer func() {
  43. if err == nil {
  44. o.Commit()
  45. } else {
  46. o.Rollback()
  47. }
  48. }()
  49. //如果用户选择不做任何推送,则之前的关注信息不做任何改动
  50. if item.IsRefuse == 0 {
  51. //删除原有的关注记录
  52. sql := `DELETE FROM cygx_industry_fllow WHERE mobile = ?`
  53. _, err = o.Raw(sql, item.Mobile).Exec()
  54. if err != nil {
  55. return err
  56. }
  57. if len(itemsFllow) > 0 {
  58. //批量添加新的关注记录
  59. _, err = o.InsertMulti(len(itemsFllow), itemsFllow)
  60. if err != nil {
  61. return err
  62. }
  63. }
  64. //删除原有策略报告的关注记录
  65. sql = `DELETE FROM cygx_xzs_choose_category WHERE mobile = ?`
  66. _, err = o.Raw(sql, item.Mobile).Exec()
  67. if err != nil {
  68. return err
  69. }
  70. if len(itemsCategory) > 0 {
  71. //批量添加新的关注记录
  72. _, err = o.InsertMulti(len(itemsCategory), itemsCategory)
  73. if err != nil {
  74. return err
  75. }
  76. }
  77. }
  78. //添加所勾选的消息类型
  79. _, err = o.Insert(item)
  80. return
  81. }
  82. //获取数量
  83. func GetXzsChooseSendCountByMobile(mobile string) (count int, err error) {
  84. sql := ` SELECT COUNT(1) AS count FROM cygx_xzs_choose_send WHERE mobile = ? `
  85. o := orm.NewOrm()
  86. err = o.Raw(sql, mobile).QueryRow(&count)
  87. return
  88. }
  89. //添加
  90. func UpdateCygxXzsChooseSend(item *CygxXzsChooseSend, itemsFllow []*CygxIndustryFllow, itemsCategory []*CygxXzsChooseCategory) (err error) {
  91. o, err := orm.NewOrm().Begin()
  92. if err != nil {
  93. return
  94. }
  95. defer func() {
  96. if err == nil {
  97. o.Commit()
  98. } else {
  99. o.Rollback()
  100. }
  101. }()
  102. //如果用户选择不做任何推送,则之前的关注信息不做任何改动
  103. if item.IsRefuse == 0 {
  104. //删除原有的关注记录
  105. sql := `DELETE FROM cygx_industry_fllow WHERE mobile = ?`
  106. _, err = o.Raw(sql, item.Mobile).Exec()
  107. if err != nil {
  108. return err
  109. }
  110. if len(itemsFllow) > 0 {
  111. //批量添加新的关注记录
  112. _, err = o.InsertMulti(len(itemsFllow), itemsFllow)
  113. if err != nil {
  114. return err
  115. }
  116. }
  117. //删除原有策略报告的关注记录
  118. sql = `DELETE FROM cygx_xzs_choose_category WHERE mobile = ?`
  119. _, err = o.Raw(sql, item.Mobile).Exec()
  120. if err != nil {
  121. return err
  122. }
  123. if len(itemsCategory) > 0 {
  124. //批量添加新的关注记录
  125. _, err = o.InsertMulti(len(itemsCategory), itemsCategory)
  126. if err != nil {
  127. return err
  128. }
  129. }
  130. }
  131. //修改现有的类型
  132. updateParams := make(map[string]interface{})
  133. updateParams["UserId"] = item.UserId
  134. updateParams["Mobile"] = item.Mobile
  135. updateParams["Email"] = item.Email
  136. updateParams["CompanyId"] = item.CompanyId
  137. updateParams["CompanyName"] = item.CompanyName
  138. updateParams["RealName"] = item.RealName
  139. updateParams["ModifyTime"] = time.Now()
  140. updateParams["IsRefuse"] = item.IsRefuse
  141. updateParams["IsSubjective"] = item.IsSubjective
  142. updateParams["IsObjective"] = item.IsObjective
  143. whereParam := map[string]interface{}{"mobile": item.Mobile}
  144. err = UpdateByExpr(CygxXzsChooseSend{}, whereParam, updateParams)
  145. return
  146. }
  147. //根据用户openid获取token
  148. func GetCygxXzsChooseSendByMobile(mobile string) (item *CygxXzsChooseSend, err error) {
  149. sql := `SELECT * FROM cygx_xzs_choose_send WHERE mobile=? LIMIT 1 `
  150. o := orm.NewOrm()
  151. err = o.Raw(sql, mobile).QueryRow(&item)
  152. return
  153. }