package logic import ( md "app.yhyue.com/moapp/jyInfo/rpc/model" model "app.yhyue.com/moapp/jyInfo/rpc/model/es" "app.yhyue.com/moapp/jyInfo/rpc/util" se "app.yhyue.com/moapp/jybase/encrypt" "context" "fmt" "log" "time" "app.yhyue.com/moapp/jybase/common" "app.yhyue.com/moapp/jybase/redis" "app.yhyue.com/moapp/jyInfo/rpc/manager/internal/svc" "app.yhyue.com/moapp/jyInfo/rpc/manager/type/manager" "github.com/zeromicro/go-zero/core/logx" ) type InfoExamineLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewInfoExamineLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InfoExamineLogic { return &InfoExamineLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } //InfoExamine 信息审核 func (l *InfoExamineLogic) InfoExamine(in *manager.InfoExamineReq) (*manager.InfoExamineResp, error) { // todo: add your logic here and delete this line var resp manager.InfoExamineResp query := make(map[string]interface{}) upData := make(map[string]interface{}) msgId := se.SE.DecodeString(in.MsgId) //信息id解密 log.Println("信息审核参数:", in) switch in.ReviewStatus { case 3: query["id"] = msgId query["app_id"] = in.AppId upData["status"] = -2 upData["review_desc"] = in.ReviewDetail upData["review_name"] = in.ReviewName upData["review_time"] = time.Now().Format("2006-01-02 15:04:05") switch in.MsgType { case 1, 2, 4, 5, 6: if !md.Mysql.Update("information", query, upData) { resp.ErrCode = -1 resp.ErrMsg = "审核不通过,更新数据失败" } case 3: if !md.Mysql.Update("supply_info", query, upData) { resp.ErrCode = -1 resp.ErrMsg = "审核不通过,更新数据失败" } default: resp.ErrCode = -1 resp.ErrMsg = "信息类型有误" } case 2: query["id"] = msgId query["app_id"] = in.AppId upData["review_name"] = in.ReviewName upData["review_desc"] = in.ReviewDetail upData["status"] = 4 upData["review_time"] = time.Now().Format("2006-01-02 15:04:05") switch in.MsgType { case 1, 2, 4, 5, 6: data := md.Mysql.FindOne("information", query, "", "") if data == nil || len(*data) < 1 { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,获取信息失败" break } else { //nsq发布信息 nsq, err := util.NewNsqInfo(md.NsqConfig.Ip, md.NsqConfig.Topic, msgId, "2", common.InterfaceToStr(in.MsgType), false, *data) if err != nil || nsq.NsqPushInfo() != nil { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,调用nsq失败" break } if !md.Mysql.Update("information", query, upData) { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,nsq发布成功,更新信息失败" } } case 3: data := md.Mysql.FindOne("supply_info", query, "", "") if data == nil || len(*data) < 1 { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,获取信息失败" break } else { // 供应信息生成索引 upData["publish_time"] = time.Now().Format("2006-01-02 15:04:05") upData["published"] = 2 entNameKye := fmt.Sprintf("userEntName_%s_%s_%d", common.InterfaceToStr((*data)["user_id"]), in.MsgId, in.MsgType) entName := redis.GetStr("other", entNameKye) supInfo := make(map[string]interface{}) supInfo["id"] = (*data)["id"] supInfo["title"] = (*data)["title"] supInfo["detail"] = (*data)["detail"] supInfo["province"] = (*data)["province"] supInfo["city"] = (*data)["city"] supInfo["ent_id"] = (*data)["ent_id"] validityTime := time.Now().Unix() if (*data)["validity_time"] != nil && (*data)["validity_time"] != "" { validity, _ := time.ParseInLocation("2006-01-02 15:04:05", common.InterfaceToStr((*data)["validity_time"]), time.Local) validityTime = validity.Unix() } supInfo["validity_time"] = validityTime if !model.SaveSupplyInfo(entName, supInfo) { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,信息发布调用失败" break } if !md.Mysql.Update("supply_info", query, upData) { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,nsq发布成功,更新信息失败" } } default: resp.ErrCode = -1 resp.ErrMsg = "信息类型有误" } default: resp.ErrCode = -1 resp.ErrMsg = "审批状态有误" } if resp.ErrCode == -1 { log.Println("审核错误:ErrMsg=", resp.ErrMsg, query, upData) } return &resp, nil }