pdd.ddk.order.list.increment.get.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package pdd
  2. import (
  3. "duoduo/conf"
  4. "duoduo/models/mysql"
  5. "duoduo/models/pdd"
  6. "duoduo/tools"
  7. "duoduo/tools/app"
  8. "fmt"
  9. "github.com/gin-gonic/gin"
  10. "time"
  11. )
  12. func PddDdkOrderListIncrementGet(c *gin.Context) {
  13. var inData pdd.PddDdkOrderListIncrementGetRequest
  14. var outData pdd.PddDdkOrderListIncrementGetResponse
  15. var pddErr pdd.ErrorPddResponse
  16. var sqlData mysql.Order
  17. var pag int
  18. confIni, err := conf.ConnIni()
  19. if err != nil {
  20. app.Error(c, 400, err, err.Error())
  21. return
  22. }
  23. err = c.ShouldBindJSON(&inData)
  24. if err != nil {
  25. app.Error(c, 400, err, err.Error())
  26. return
  27. }
  28. pag = 0
  29. for {
  30. pag++
  31. inData.ClientId = confIni.MustValue("pdd", "client_id")
  32. inData.Type = "pdd.ddk.order.list.increment.get"
  33. inData.Timestamp = fmt.Sprintf("%d", time.Now().Unix())
  34. inData.DataType = "JSON"
  35. inData.Page = fmt.Sprintf("%d", pag)
  36. inData.PageSize = "50"
  37. startTm, _ := tools.GetTimeStamp(inData.StartUpdateTime)
  38. inData.StartUpdateTime = fmt.Sprintf("%d", startTm)
  39. endTm, _ := tools.GetTimeStamp(inData.EndUpdateTime)
  40. inData.EndUpdateTime = fmt.Sprintf("%d", endTm)
  41. inData.Sign = "sign"
  42. sign, err := DDKSign(inData)
  43. if err != nil {
  44. app.Error(c, 400, err, err.Error())
  45. return
  46. }
  47. inData.Sign = sign
  48. val, err := PostDDk(inData, nil)
  49. if err != nil {
  50. app.Error(c, 400, err, err.Error())
  51. return
  52. }
  53. err = tools.JsonUnmarshal(val, &pddErr)
  54. if err != nil {
  55. app.Error(c, 500, err, err.Error())
  56. return
  57. }
  58. err = tools.JsonUnmarshal(val, &outData)
  59. if err != nil {
  60. app.Error(c, 500, nil, err.Error())
  61. return
  62. }
  63. if pddErr.ErrorResponse.ErrorCode != 0 {
  64. app.Error(c, 500, nil, pddErr.ErrorResponse.SubMsg)
  65. return
  66. }
  67. //同步订单信息
  68. for i := 0; i < len(outData.OrderListGetResponse.OrderList); i++ {
  69. sqlData.OrderID = outData.OrderListGetResponse.OrderList[i].OrderID
  70. sqlData.PID = outData.OrderListGetResponse.OrderList[i].PID
  71. sqlData.UpdateTime = tools.GetCurrntTimeStr()
  72. sqlData.OrderStatus = outData.OrderListGetResponse.OrderList[i].OrderStatus
  73. sqlData.GoodsName = outData.OrderListGetResponse.OrderList[i].GoodsName
  74. sqlData.GoodsThumbnailURL = outData.OrderListGetResponse.OrderList[i].GoodsThumbnailURL
  75. sqlData.OrderGroupSuccessTime = tools.TimeToStr(outData.OrderListGetResponse.OrderList[i].OrderGroupSuccessTime)
  76. sqlData.OrderStatusDesc = outData.OrderListGetResponse.OrderList[i].OrderStatusDesc
  77. sqlData.PromotionAmount = outData.OrderListGetResponse.OrderList[i].PromotionAmount
  78. sqlData.JSONData, _ = tools.JsonMarshal(&outData.OrderListGetResponse.OrderList[i])
  79. count := sqlData.GetNum()
  80. if count <= 0 {
  81. sqlData.CreateTime = tools.GetCurrntTimeStr()
  82. _, err = sqlData.Create()
  83. if err != nil {
  84. app.Error(c, 500, nil, err.Error())
  85. return
  86. }
  87. } else {
  88. _, err = sqlData.Update(sqlData.OrderID)
  89. if err != nil {
  90. app.Error(c, 500, nil, err.Error())
  91. return
  92. }
  93. }
  94. }
  95. if outData.OrderListGetResponse.TotalCount < 50 {
  96. break
  97. }
  98. }
  99. app.OK(c, nil, app.Success)
  100. }