package user import ( pdd2 "duoduo/apis/pdd" "duoduo/conf" "duoduo/models/mysql" "duoduo/models/pdd" "duoduo/models/user" "duoduo/tools" "duoduo/tools/app" "fmt" "github.com/gin-gonic/gin" "time" ) func PidGet(c *gin.Context) { var inData user.PidGetRequest var outData user.PidGetResponse //var sqlData mysql.User //var wallet mysql.Wallet var pid mysql.Pid err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } pid.PidStatus = 1 pid.OpenID = inData.OpenId //sqlData.OpenID = inData.OpenId val, err := pid.Get() if err != nil { app.Error(c, 500, err, err.Error()) return } //创建pid if val.Pid == "" { var pidCreate pdd.PddDdkGoodsPidGenerateRequest var pidOut pdd.PddDdkGoodsPidGenerateResponse var pddErr pdd.ErrorPddResponse confIni, err := conf.ConnIni() if err != nil { app.Error(c, 400, err, err.Error()) return } pidCreate.ClientId = confIni.MustValue("pdd", "client_id") pidCreate.Type = "pdd.ddk.goods.pid.generate" pidCreate.Timestamp = fmt.Sprintf("%d", time.Now().Unix()) pidCreate.DataType = "JSON" pidCreate.Sign = "sign" pidCreate.Number = "1" sign, err := pdd2.DDKSign(pidCreate) if err != nil { app.Error(c, 400, err, err.Error()) return } pidCreate.Sign = sign val, err := pdd2.PostDDk(pidCreate, nil) if err != nil { app.Error(c, 400, err, err.Error()) return } err = tools.JsonUnmarshal(val, &pddErr) if err != nil { app.Error(c, 500, err, err.Error()) return } if pddErr.ErrorResponse.ErrorCode != 0 { app.Error(c, 500, err, pddErr.ErrorResponse.ErrorMsg) return } err = tools.JsonUnmarshal(val, &pidOut) if err != nil { app.Error(c, 500, err, err.Error()) return } outData.Pid = pidOut.PIDGenerateResponse.PIDList[0].PID //sqlData.Pid = outData.Pid //sqlData.OpenID = inData.OpenId //sqlData.Update() //插入pid pid.OpenID = inData.OpenId pid.PidStatus = 1 //拼多多 pid.UpdateTime = tools.GetCurrntTimeStr() pid.CreateTime = tools.GetCurrntTimeStr() pid.Create() //wallet.OpenID = inData.OpenId //wallet.Pid = outData.Pid //wallet.Update() } else { outData.Pid = val.Pid } app.OK(c, outData, app.Success) }