package logic import ( se "app.yhyue.com/moapp/jybase/encrypt" "context" "fmt" jycommon "jyInfo/rpc/manager/common" IC "jyInfo/rpc/manager/init" md "jyInfo/rpc/model" model "jyInfo/rpc/model/es" "jyInfo/rpc/util" "time" "app.yhyue.com/moapp/jybase/common" "app.yhyue.com/moapp/jybase/redis" "jyInfo/rpc/manager/internal/svc" "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), } } // 信息审核 func (l *InfoExamineLogic) InfoExamine(in *manager.InfoExamineReq) (*manager.InfoExamineResp, error) { // todo: add your logic here and delete this line var resp manager.InfoExamineResp msgId := se.SE.DecodeString(in.MsgId) //信息id解密 switch in.ReviewStatus { case 3: query := make(map[string]interface{}) query["id"] = msgId query["app_id"] = in.AppId upData := make(map[string]interface{}) upData["status"] = -2 upData["review_desc"] = in.ReviewDetail upData["review_time"] = time.Now().Format("2006-01-02 15:04:05") if in.MsgType == 1 || in.MsgType == 2 { var info jycommon.Information db := IC.DB.Where(query).First(&info).Update(upData) if db.Error != nil { resp.ErrCode = -1 resp.ErrMsg = "审核不通过,更新数据失败" } } else if in.MsgType == 3 { var info jycommon.SupplyInfo db := IC.DB.Where(query).First(&info) if db.Error != nil { resp.ErrCode = -1 resp.ErrMsg = "审核不通过,供应信息数据查询失败" } else { //TODO 释放供应信息点数 //if err := ResourcePowerRelease(md.ResourceCenterRpc, common.Int64All(info.EntId), common.Int64All(info.UserId), md.FuncCode, common.InterfaceToStr(info.AppId)); err != nil { // resp.ErrCode = -1 // resp.ErrMsg = err.Error() // break //} if db.Update(upData) != nil { resp.ErrCode = -1 resp.ErrMsg = "审核不通过,供应信息更新失败" } } } else { resp.ErrCode = -1 resp.ErrMsg = "信息类型有误" } case 2: query := make(map[string]interface{}) query["id"] = msgId query["app_id"] = in.AppId upData := make(map[string]interface{}) upData["review_desc"] = in.ReviewDetail upData["status"] = 4 upData["review_time"] = time.Now().Format("2006-01-02 15:04:05") if in.MsgType == 1 || in.MsgType == 2 { var info jycommon.Information db := IC.DB.Where(query).First(&info) if db.Error != nil { fmt.Println(db.Error) resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,获取信息失败" break } else { //nsq发布信息 appInfo := common.StructToMapMore(info) nsq, err := util.NewNsqInfo(md.NsqConfig.Ip, md.NsqConfig.Topic, in.MsgId, common.InterfaceToStr(info.Type), "2", false, appInfo) if err != nil || nsq.NsqPushInfo() != nil { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,调用nsq失败" break } if db.Update(upData).Error != nil { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,nsq发布成功,更新信息失败" } } } else if in.MsgType == 3 { var info jycommon.SupplyInfo db := IC.DB.Where(query).First(&info) if db.Error != nil { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,获取供应信息数据失败" } else { // 供应信息生成索引 upData["publish_time"] = time.Now().Format("2006-01-02 15:04:05") upData["published"] = 2 entNameKye := fmt.Sprintf("userEntName_%s_%s_%d", info.UserId, in.MsgId, in.MsgType) entName := redis.GetStr("other", entNameKye) supInfo := make(map[string]interface{}) supInfo["id"] = info.Id supInfo["title"] = info.Title supInfo["detail"] = info.Detail supInfo["province"] = info.Province supInfo["city"] = info.City if !model.SaveSupplyInfo(entName, supInfo) { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,信息发布调用失败" break } if db.Update(upData).Error != nil { resp.ErrCode = -1 resp.ErrMsg = "人工审核通过,供应信息发布调用成功,更新信息状态失败" } } } else { resp.ErrCode = -1 resp.ErrMsg = "信息类型有误" } default: resp.ErrCode = -1 resp.ErrMsg = "审批状态有误" } return &resp, nil }