publishinfologic.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package logic
  2. import (
  3. "app.yhyue.com/moapp/jyInfo/rpc/consumer/consumer"
  4. "app.yhyue.com/moapp/jyInfo/rpc/consumer/internal/svc"
  5. "app.yhyue.com/moapp/jyInfo/rpc/model"
  6. "app.yhyue.com/moapp/jyInfo/rpc/util"
  7. "context"
  8. "fmt"
  9. "log"
  10. "strings"
  11. "time"
  12. se "app.yhyue.com/moapp/jybase/encrypt"
  13. mc "app.yhyue.com/moapp/jybase/common"
  14. "app.yhyue.com/moapp/jybase/redis"
  15. "github.com/zeromicro/go-zero/core/logx"
  16. )
  17. type PublishInfoLogic struct {
  18. ctx context.Context
  19. svcCtx *svc.ServiceContext
  20. logx.Logger
  21. }
  22. func NewPublishInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PublishInfoLogic {
  23. return &PublishInfoLogic{
  24. ctx: ctx,
  25. svcCtx: svcCtx,
  26. Logger: logx.WithContext(ctx),
  27. }
  28. }
  29. // 发布信息
  30. func (l *PublishInfoLogic) PublishInfo(in *consumer.PublishInfoReq) (*consumer.PublishInfoResp, error) {
  31. // todo: add your logic here and delete this line
  32. res := consumer.PublishInfoResp{}
  33. var id int64
  34. //信息类型1:招标信息 2:采购信息 3:供应信息
  35. publishData := make(map[string]interface{})
  36. publishData["user_id"] = in.UserId //发布人用户ID
  37. publishData["phone"] = in.Phone //注册手机号
  38. publishData["title"] = in.Title //信息标题
  39. publishData["province"] = in.Province //项目省份
  40. publishData["city"] = in.City //项目城市
  41. publishData["detail"] = in.Detail //正文信息
  42. publishData["create_time"] = time.Now().Format("2006-01-02 15:04:05") //申请时间
  43. publishData["attach"] = in.Attach //附件(多个附件逗号分割)
  44. publishData["contact_person"] = in.Contact.Person //联系人
  45. publishData["contact_phone"] = in.Contact.Phone //联系人电话
  46. publishData["contact_overt"] = in.Contact.Overt //是否公开
  47. publishData["is_del"] = 1 // 0:全部;1:未删除;-1:删除
  48. publishData["published"] = 1 // 0:全部;1:未发布;2:已发布
  49. publishData["type"] = mc.IntAll(in.MsgType) //1:招标信息|2:采购信息|3:供应信息
  50. publishData["ent_id"] = mc.IntAll(in.EntId)
  51. publishData["app_id"] = in.AppId
  52. // 0:全部;1:待审核;2:待人工审核(敏感词审核不通过||敏感词审核通过);3:自动审核通过;4:人工审核通过;-1:自动审核不通过(机构冻结);-2:人工审核不通过;
  53. publishData["status"] = 1
  54. log.Println(in.MsgType, "-------------------")
  55. switch in.MsgType {
  56. case 1, 2:
  57. publishData["related_id"] = mc.IntAll(in.RelatedId) //关联公告id
  58. publishData["project_code"] = in.Code //项目编号
  59. publishData["industry"] = strings.Join(in.Industry, ",") //项目行业,多个逗号分隔
  60. publishData["buyer"] = in.Buyer //采购单位
  61. publishData["budget"] = in.Budget // 预算单位元
  62. publishData["winner"] = in.Winner //中标单位
  63. publishData["amount"] = in.Amount //中标金额
  64. id = model.Mysql.Insert("information", publishData)
  65. case 3:
  66. publishData["validity_time"] = in.Deadline //信息有效期
  67. id = model.Mysql.Insert("supply_info", publishData)
  68. default:
  69. res.ErrCode = -1
  70. res.ErrMsg = "数据类型有误"
  71. return &res, nil
  72. }
  73. log.Println("id:", id)
  74. if id < 1 {
  75. res.ErrCode = -1
  76. res.ErrMsg = fmt.Sprintf("data %s mysql memory errors", in.MsgType)
  77. return &res, nil
  78. }
  79. var InfoId consumer.PublishId
  80. InfoId.InformationId = se.SE.EncodeString(mc.InterfaceToStr(id)) //信息id加密
  81. res.PublishId = &InfoId
  82. appendInfo := make(map[string]interface{})
  83. if in.Title != "" {
  84. appendInfo["title"] = in.Title
  85. }
  86. if in.Detail != "" {
  87. appendInfo["detail"] = in.Detail
  88. }
  89. if in.Attach != "" {
  90. appendInfo["attach"] = mc.StringToMap(in.Attach)
  91. }
  92. nsq, err := util.NewNsqInfo(model.NsqConfig.Ip, model.NsqConfig.Topic, mc.InterfaceToStr(id), "1", mc.InterfaceToStr(in.MsgType), false, appendInfo)
  93. if err != nil || nsq.NsqPushInfo() != nil {
  94. res.ErrCode = -1
  95. res.ErrMsg = fmt.Sprintf("添加nsq失败;%s", err.Error())
  96. }
  97. entNameKye := fmt.Sprintf("userEntName_%s_%d_%s", in.UserId, id, in.MsgType)
  98. redis.Put("other", entNameKye, in.EntName, 3*24*60*60)
  99. return &res, nil
  100. }