| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | package userimport (	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()		//生成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)}
 |