package logic import ( "app.yhyue.com/moapp/jyInfo/rpc/model" "app.yhyue.com/moapp/jyInfo/rpc/util" "context" "log" "time" "app.yhyue.com/moapp/jyInfo/rpc/common/commoninfo" "app.yhyue.com/moapp/jyInfo/rpc/common/internal/svc" mc "app.yhyue.com/moapp/jybase/common" "github.com/zeromicro/go-zero/core/logx" ) type StateMethodLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewStateMethodLogic(ctx context.Context, svcCtx *svc.ServiceContext) *StateMethodLogic { return &StateMethodLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } //数据组 rpc回调 修改信息发布状态 func (l *StateMethodLogic) StateMethod(in *commoninfo.StateRequest) (*commoninfo.StateResponse, error) { var ( resp commoninfo.StateResponse ) log.Println("信息发布回调StateMethod", in) query := make(map[string]interface{}) query["id"] = in.Id upData := make(map[string]interface{}) upData["published"] = 2 upData["publish_id"] = in.PublishId upData["publish_time"] = time.Now().Format("2006-01-02 15:04:05") data := model.Mysql.FindOne("information", query, "", "") if data == nil || len(*data) < 1 { log.Println("nsq回调发布状态,获取信息失败", in.Id) resp.ErrCode = -1 resp.ErrMsg = "nsq回调发布状态,获取信息失败" return &resp, nil } //处理对于发布删除冲突问题,在回调发布后查看是否已删除,如已删除在回调删除nsq 未删除继续正常发布流程 if mc.IntAll((*data)["is_de"]) == -1 { nsq, err := util.NewNsqInfo(model.NsqConfig.Ip, model.NsqConfig.Topic, mc.InterfaceToStr((*data)["id"]), "3", mc.InterfaceToStr((*data)["type"]), false, upData) if err != nil || nsq.NsqPushInfo() != nil { log.Println("信息已删除,同步删除信息失败", model.NsqConfig, upData) resp.ErrCode = -1 resp.ErrMsg = "信息已删除,同步删除信息失败" } return &resp, nil } if !model.Mysql.Update("information", query, upData) { log.Println("nsq回调发布状态,更新信息状态失败", query, upData) resp.ErrCode = -1 resp.ErrMsg = "nsq回调发布状态,更新信息状态失败" } else { //信息审核通过后 留资信息 go PublishSales(in.PublishId, *data) } return &resp, nil } //PublishSales 信息审核通过后 留资信息 func PublishSales(id string, data map[string]interface{}) { //选择了“我需要”,则信息审核通过后,生成1条留资信息 if mc.IntAll(data["recommended_service"]) == 1 { _d := map[string]interface{}{ "userid": data["user_id"], "source": "info_supplier_recom", "company": data["ent_name"], "name": data["contact_person"], "phone": data["contact_phone"], "publish_id": id, "createtime": time.Now().Unix(), } model.Mgo.Save("saleLeads", _d) } }