infoexaminelogic.go 4.2 KB

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