1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- 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()))
- }
|