user.pid.get.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package user
  2. import (
  3. pdd2 "duoduo/apis/pdd"
  4. "duoduo/conf"
  5. "duoduo/models/mysql"
  6. "duoduo/models/pdd"
  7. "duoduo/models/user"
  8. "duoduo/tools"
  9. "duoduo/tools/app"
  10. "fmt"
  11. "github.com/gin-gonic/gin"
  12. "time"
  13. )
  14. func PidGet(c *gin.Context) {
  15. var inData user.PidGetRequest
  16. var outData user.PidGetResponse
  17. //var sqlData mysql.User
  18. //var wallet mysql.Wallet
  19. var pid mysql.Pid
  20. err := c.ShouldBindJSON(&inData)
  21. if err != nil {
  22. app.Error(c, 400, err, err.Error())
  23. return
  24. }
  25. pid.PidStatus = 1
  26. pid.OpenID = inData.OpenId
  27. //sqlData.OpenID = inData.OpenId
  28. val, err := pid.Get()
  29. if err != nil {
  30. app.Error(c, 500, err, err.Error())
  31. return
  32. }
  33. //创建pid
  34. if val.Pid == "" {
  35. var pidCreate pdd.PddDdkGoodsPidGenerateRequest
  36. var pidOut pdd.PddDdkGoodsPidGenerateResponse
  37. var pddErr pdd.ErrorPddResponse
  38. confIni, err := conf.ConnIni()
  39. if err != nil {
  40. app.Error(c, 400, err, err.Error())
  41. return
  42. }
  43. pidCreate.ClientId = confIni.MustValue("pdd", "client_id")
  44. pidCreate.Type = "pdd.ddk.goods.pid.generate"
  45. pidCreate.Timestamp = fmt.Sprintf("%d", time.Now().Unix())
  46. pidCreate.DataType = "JSON"
  47. pidCreate.Sign = "sign"
  48. pidCreate.Number = "1"
  49. sign, err := pdd2.DDKSign(pidCreate)
  50. if err != nil {
  51. app.Error(c, 400, err, err.Error())
  52. return
  53. }
  54. pidCreate.Sign = sign
  55. val, err := pdd2.PostDDk(pidCreate, nil)
  56. if err != nil {
  57. app.Error(c, 400, err, err.Error())
  58. return
  59. }
  60. err = tools.JsonUnmarshal(val, &pddErr)
  61. if err != nil {
  62. app.Error(c, 500, err, err.Error())
  63. return
  64. }
  65. if pddErr.ErrorResponse.ErrorCode != 0 {
  66. app.Error(c, 500, err, pddErr.ErrorResponse.ErrorMsg)
  67. return
  68. }
  69. err = tools.JsonUnmarshal(val, &pidOut)
  70. if err != nil {
  71. app.Error(c, 500, err, err.Error())
  72. return
  73. }
  74. outData.Pid = pidOut.PIDGenerateResponse.PIDList[0].PID
  75. //sqlData.Pid = outData.Pid
  76. //sqlData.OpenID = inData.OpenId
  77. //sqlData.Update()
  78. //插入pid
  79. pid.OpenID = inData.OpenId
  80. pid.PidStatus = 1 //拼多多
  81. pid.UpdateTime = tools.GetCurrntTimeStr()
  82. pid.CreateTime = tools.GetCurrntTimeStr()
  83. pid.Create()
  84. //wallet.OpenID = inData.OpenId
  85. //wallet.Pid = outData.Pid
  86. //wallet.Update()
  87. } else {
  88. outData.Pid = val.Pid
  89. }
  90. app.OK(c, outData, app.Success)
  91. }