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

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