infoexaminelogic.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package logic
  2. import (
  3. md "app.yhyue.com/moapp/jyInfo/rpc/model"
  4. model "app.yhyue.com/moapp/jyInfo/rpc/model/es"
  5. "app.yhyue.com/moapp/jyInfo/rpc/util"
  6. se "app.yhyue.com/moapp/jybase/encrypt"
  7. "context"
  8. "fmt"
  9. "log"
  10. "time"
  11. "app.yhyue.com/moapp/jybase/common"
  12. "app.yhyue.com/moapp/jybase/redis"
  13. "app.yhyue.com/moapp/jyInfo/rpc/manager/internal/svc"
  14. "app.yhyue.com/moapp/jyInfo/rpc/manager/type/manager"
  15. "github.com/zeromicro/go-zero/core/logx"
  16. )
  17. type InfoExamineLogic struct {
  18. ctx context.Context
  19. svcCtx *svc.ServiceContext
  20. logx.Logger
  21. }
  22. func NewInfoExamineLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InfoExamineLogic {
  23. return &InfoExamineLogic{
  24. ctx: ctx,
  25. svcCtx: svcCtx,
  26. Logger: logx.WithContext(ctx),
  27. }
  28. }
  29. //InfoExamine 信息审核
  30. func (l *InfoExamineLogic) InfoExamine(in *manager.InfoExamineReq) (*manager.InfoExamineResp, error) {
  31. // todo: add your logic here and delete this line
  32. var resp manager.InfoExamineResp
  33. query := make(map[string]interface{})
  34. upData := make(map[string]interface{})
  35. msgId := se.SE.DecodeString(in.MsgId) //信息id解密
  36. log.Println("信息审核参数:", in)
  37. switch in.ReviewStatus {
  38. case 3:
  39. query["id"] = msgId
  40. query["app_id"] = in.AppId
  41. upData["status"] = -2
  42. upData["review_desc"] = in.ReviewDetail
  43. upData["review_name"] = in.ReviewName
  44. upData["review_time"] = time.Now().Format("2006-01-02 15:04:05")
  45. switch in.MsgType {
  46. case 1, 2, 4, 5, 6:
  47. if !md.Mysql.Update("information", query, upData) {
  48. resp.ErrCode = -1
  49. resp.ErrMsg = "审核不通过,更新数据失败"
  50. }
  51. case 3:
  52. if !md.Mysql.Update("supply_info", query, upData) {
  53. resp.ErrCode = -1
  54. resp.ErrMsg = "审核不通过,更新数据失败"
  55. }
  56. default:
  57. resp.ErrCode = -1
  58. resp.ErrMsg = "信息类型有误"
  59. }
  60. case 2:
  61. query["id"] = msgId
  62. query["app_id"] = in.AppId
  63. upData["review_name"] = in.ReviewName
  64. upData["review_desc"] = in.ReviewDetail
  65. upData["status"] = 4
  66. upData["review_time"] = time.Now().Format("2006-01-02 15:04:05")
  67. switch in.MsgType {
  68. case 1, 2, 4, 5, 6:
  69. data := md.Mysql.FindOne("information", query, "", "")
  70. if data == nil || len(*data) < 1 {
  71. resp.ErrCode = -1
  72. resp.ErrMsg = "人工审核通过,获取信息失败"
  73. break
  74. } else {
  75. //nsq发布信息
  76. nsq, err := util.NewNsqInfo(md.NsqConfig.Ip, md.NsqConfig.Topic, msgId, "2", common.InterfaceToStr(in.MsgType), false, *data)
  77. if err != nil || nsq.NsqPushInfo() != nil {
  78. resp.ErrCode = -1
  79. resp.ErrMsg = "人工审核通过,调用nsq失败"
  80. break
  81. }
  82. if !md.Mysql.Update("information", query, upData) {
  83. resp.ErrCode = -1
  84. resp.ErrMsg = "人工审核通过,nsq发布成功,更新信息失败"
  85. }
  86. }
  87. case 3:
  88. data := md.Mysql.FindOne("supply_info", query, "", "")
  89. if data == nil || len(*data) < 1 {
  90. resp.ErrCode = -1
  91. resp.ErrMsg = "人工审核通过,获取信息失败"
  92. break
  93. } else {
  94. // 供应信息生成索引
  95. upData["publish_time"] = time.Now().Format("2006-01-02 15:04:05")
  96. upData["published"] = 2
  97. entNameKye := fmt.Sprintf("userEntName_%s_%s_%d", common.InterfaceToStr((*data)["user_id"]), in.MsgId, in.MsgType)
  98. entName := redis.GetStr("other", entNameKye)
  99. supInfo := make(map[string]interface{})
  100. supInfo["id"] = (*data)["id"]
  101. supInfo["title"] = (*data)["title"]
  102. supInfo["detail"] = (*data)["detail"]
  103. supInfo["province"] = (*data)["province"]
  104. supInfo["city"] = (*data)["city"]
  105. supInfo["ent_id"] = (*data)["ent_id"]
  106. validityTime := time.Now().Unix()
  107. if (*data)["validity_time"] != nil && (*data)["validity_time"] != "" {
  108. validity, _ := time.ParseInLocation("2006-01-02 15:04:05", common.InterfaceToStr((*data)["validity_time"]), time.Local)
  109. validityTime = validity.Unix()
  110. }
  111. supInfo["validity_time"] = validityTime
  112. if !model.SaveSupplyInfo(entName, supInfo) {
  113. resp.ErrCode = -1
  114. resp.ErrMsg = "人工审核通过,信息发布调用失败"
  115. break
  116. }
  117. if !md.Mysql.Update("supply_info", query, upData) {
  118. resp.ErrCode = -1
  119. resp.ErrMsg = "人工审核通过,nsq发布成功,更新信息失败"
  120. }
  121. }
  122. default:
  123. resp.ErrCode = -1
  124. resp.ErrMsg = "信息类型有误"
  125. }
  126. default:
  127. resp.ErrCode = -1
  128. resp.ErrMsg = "审批状态有误"
  129. }
  130. if resp.ErrCode == -1 {
  131. log.Println("审核错误:ErrMsg=", resp.ErrMsg, query, upData)
  132. }
  133. return &resp, nil
  134. }