| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | 
							- 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 && err.Error() != "record not found" {
 
- 		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.Pid = pidOut.PIDGenerateResponse.PIDList[0].PID
 
- 		pid.UpdateTime = tools.GetCurrntTimeStr()
 
- 		pid.CreateTime = tools.GetCurrntTimeStr()
 
- 		pid.Create()
 
- 		//生成pid 成功 创建钱包
 
- 		var wallet mysql.Wallet
 
- 		wallet.Pid = pidOut.PIDGenerateResponse.PIDList[0].PID
 
- 		wallet.OpenID = inData.OpenId
 
- 		wallet.CreateTime = tools.GetCurrntTimeStr()
 
- 		wallet.UpdateTime = tools.GetCurrntTimeStr()
 
- 		_, err = wallet.Create()
 
- 		if err != nil {
 
- 			app.Error(c, 500, err, "创建钱包失败")
 
- 			return
 
- 		}
 
- 	} else {
 
- 		outData.Pid = val.Pid
 
- 	}
 
- 	app.OK(c, outData, app.Success)
 
- }
 
 
  |