|
@@ -0,0 +1,92 @@
|
|
|
+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
|
|
|
+ err := c.ShouldBindJSON(&inData)
|
|
|
+ if err != nil {
|
|
|
+ app.Error(c, 400, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlData.OpenID = inData.OpenId
|
|
|
+ val, err := sqlData.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
|
|
|
+ //更新pid
|
|
|
+ sqlData.Pid = outData.Pid
|
|
|
+ sqlData.OpenID = inData.OpenId
|
|
|
+ sqlData.Update()
|
|
|
+
|
|
|
+ } else {
|
|
|
+ outData.Pid = val.Pid
|
|
|
+ }
|
|
|
+
|
|
|
+ app.OK(c, outData, app.Success)
|
|
|
+
|
|
|
+}
|