package controller import ( . "app.yhyue.com/moapp/jybase/api" "app.yhyue.com/moapp/jybase/encrypt" "app.yhyue.com/moapp/jybase/mongodb" "encoding/json" "fmt" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/util/gconv" "github.com/pkg/errors" "jyOrderManager/internal/jyutil" "time" ) func GetHelpUserCreateOrderParamHandler(r *ghttp.Request) { rData, err := func() (interface{}, error) { rj, err := r.GetJson() if err != nil { return nil, errors.Wrap(err, "请求参数格式异常") } var ( phone = rj.Get("phone").String() cycleUnit = rj.Get("cycleUnit").String() //1:天、2:月 cycleCount = rj.Get("cycleCount").String() ctx = r.Context() token string uMsg = jyutil.GetUserMsgFromCtx(ctx) ) if uMsg == nil { return nil, errors.New("登陆身份异常") } uId, eMsg := func() (userId, errMsg string) { if len(phone) != 11 { return "", "手机号异常" } //查询当前销售是否有权限操作改用户 if g.Cfg("global").MustGet(ctx, "helpUserOrder.open", true).Bool() { //测试环境不校验 if err := jyutil.SellerCheck(ctx, uMsg.PositionId, phone); err != nil { g.Log().Info(ctx, "代用户下单异常:%s %v\n", phone, err) return "", "不满足代用户下单条件,不支持下单" } } uData, _, _, err := jyutil.GetCreateUserData(phone, "", false) if err != nil { return "", "获取用户异常" } return mongodb.BsonIdToSId(uData["_id"]), "" }() deptId, deptName, name, err := jyutil.JyDepartmentManager.GetDeptInfoByEntId(ctx, gconv.Int(uMsg.EntUserId)) if err != nil { eMsg = err.Error() } if uId != "" { token = GetSellerToken(uId, name, fmt.Sprint(uMsg.EntUserId), map[string]interface{}{ "tt": cycleUnit, "tn": cycleCount, "ts": deptName, "ti": deptId, }) } return map[string]interface{}{ "tip": eMsg, "token": token, }, nil }() if err != nil { g.Log().Errorf(r.Context(), "待用户下单获取下单参数异常 %v", err) } r.Response.WriteJson(NewResult(rData, err)) } func GetSellerToken(uId, sName string, sid string, desc map[string]interface{}) (token string) { bytes, _ := json.Marshal(desc) return encrypt.SE.Encode2Hex(fmt.Sprintf("uid=%s&sName=%s&sid=%s&desc=%s&t=%d", uId, sName, sid, string(bytes), time.Now().Unix())) }