infoexaminelogic.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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. if in.MsgType == 1 || in.MsgType == 2 {
  46. if !md.Mysql.Update("information", query, upData) {
  47. resp.ErrCode = -1
  48. resp.ErrMsg = "审核不通过,更新数据失败"
  49. }
  50. } else if in.MsgType == 3 {
  51. if !md.Mysql.Update("supply_info", query, upData) {
  52. resp.ErrCode = -1
  53. resp.ErrMsg = "审核不通过,更新数据失败"
  54. }
  55. } else {
  56. resp.ErrCode = -1
  57. resp.ErrMsg = "信息类型有误"
  58. }
  59. case 2:
  60. query["id"] = msgId
  61. query["app_id"] = in.AppId
  62. upData["review_name"] = in.ReviewName
  63. upData["review_desc"] = in.ReviewDetail
  64. upData["status"] = 4
  65. upData["review_time"] = time.Now().Format("2006-01-02 15:04:05")
  66. if in.MsgType == 1 || in.MsgType == 2 {
  67. data := md.Mysql.FindOne("information", query, "", "")
  68. if data == nil || len(*data) < 1 {
  69. resp.ErrCode = -1
  70. resp.ErrMsg = "人工审核通过,获取信息失败"
  71. break
  72. } else {
  73. //nsq发布信息
  74. nsq, err := util.NewNsqInfo(md.NsqConfig.Ip, md.NsqConfig.Topic, msgId, "2", common.InterfaceToStr(in.MsgType), false, *data)
  75. if err != nil || nsq.NsqPushInfo() != nil {
  76. resp.ErrCode = -1
  77. resp.ErrMsg = "人工审核通过,调用nsq失败"
  78. break
  79. }
  80. if !md.Mysql.Update("information", query, upData) {
  81. resp.ErrCode = -1
  82. resp.ErrMsg = "人工审核通过,nsq发布成功,更新信息失败"
  83. }
  84. }
  85. } else if in.MsgType == 3 {
  86. data := md.Mysql.FindOne("supply_info", query, "", "")
  87. if data == nil || len(*data) < 1 {
  88. resp.ErrCode = -1
  89. resp.ErrMsg = "人工审核通过,获取信息失败"
  90. break
  91. } else {
  92. // 供应信息生成索引
  93. upData["publish_time"] = time.Now().Format("2006-01-02 15:04:05")
  94. upData["published"] = 2
  95. entNameKye := fmt.Sprintf("userEntName_%s_%s_%d", common.InterfaceToStr((*data)["user_id"]), in.MsgId, in.MsgType)
  96. entName := redis.GetStr("other", entNameKye)
  97. supInfo := make(map[string]interface{})
  98. supInfo["id"] = (*data)["id"]
  99. supInfo["title"] = (*data)["title"]
  100. supInfo["detail"] = (*data)["detail"]
  101. supInfo["province"] = (*data)["province"]
  102. supInfo["city"] = (*data)["city"]
  103. validityTime := time.Now().Unix()
  104. if (*data)["validity_time"] != nil && (*data)["validity_time"] != "" {
  105. validity, _ := time.ParseInLocation("2006-01-02 15:04:05", common.InterfaceToStr((*data)["validity_time"]), time.Local)
  106. validityTime = validity.Unix()
  107. }
  108. supInfo["validityTime"] = validityTime
  109. if !model.SaveSupplyInfo(entName, supInfo) {
  110. resp.ErrCode = -1
  111. resp.ErrMsg = "人工审核通过,信息发布调用失败"
  112. break
  113. }
  114. if !md.Mysql.Update("supply_info", query, upData) {
  115. resp.ErrCode = -1
  116. resp.ErrMsg = "人工审核通过,nsq发布成功,更新信息失败"
  117. }
  118. }
  119. } else {
  120. resp.ErrCode = -1
  121. resp.ErrMsg = "信息类型有误"
  122. }
  123. default:
  124. resp.ErrCode = -1
  125. resp.ErrMsg = "审批状态有误"
  126. }
  127. if resp.ErrCode == -1 {
  128. log.Println("审核错误:ErrMsg=", resp.ErrMsg, query, upData)
  129. }
  130. return &resp, nil
  131. }