智盟项目
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

124 行
3.4 KiB

  1. package svc
  2. import (
  3. "applet/app/cfg"
  4. "applet/app/db"
  5. "applet/app/db/model"
  6. offical "applet/app/db/official"
  7. "applet/app/utils"
  8. "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/thirdParty/ali1688"
  9. "fmt"
  10. "github.com/tidwall/gjson"
  11. "strings"
  12. "time"
  13. )
  14. func Ali1688Order(timeType string) {
  15. var (
  16. beginTime int64 = 0
  17. endTime int64 = 0
  18. pageNo int = 1
  19. pageSize int = 50
  20. )
  21. today := utils.GetTimeRange("today")
  22. beginTime = today["start"]
  23. endTime = today["end"]
  24. unionData := offical.SysCfgByKeyStr("ali1688_data")
  25. for {
  26. count := 0
  27. count, _ = OrdersAli1688Get(pageNo, pageSize, beginTime, endTime, timeType, 1, unionData)
  28. if count == 0 {
  29. break
  30. }
  31. // 判断是否分页已经全部取完了
  32. if count <= pageSize {
  33. pageNo++
  34. fmt.Println("========下一页========" + utils.IntToStr(pageNo))
  35. count = 0
  36. continue
  37. }
  38. }
  39. return
  40. }
  41. func OrdersAli1688Get(p int, pageSize int, sTime, eTime int64, timeType string, pvd int, unionData string) (int, string) {
  42. args := map[string]string{
  43. "queryOrderType": "orderAll",
  44. "queryStartTime": time.Unix(sTime, 0).Format("2006-01-02"),
  45. "queryEndTime": time.Unix(eTime, 0).Format("2006-01-02"),
  46. "pageNo": utils.IntToStr(p),
  47. "pageSize": utils.IntToStr(pageSize),
  48. "queryTimeType": timeType,
  49. }
  50. key := gjson.Get(unionData, "key").String()
  51. secret := gjson.Get(unionData, "secret").String()
  52. token := gjson.Get(unionData, "token").String()
  53. order := ali1688.AliGoodsOrder(key, secret, token, args)
  54. if order == nil || len(order) == 0 {
  55. return 0, ""
  56. }
  57. count := len(order)
  58. stateArr := map[int]string{
  59. 20: "订单付款",
  60. 50: "订单完成",
  61. 80: "订单失败",
  62. }
  63. for _, v := range order {
  64. if v.OrderState == 10 {
  65. continue
  66. }
  67. status := stateArr[v.OrderState]
  68. ex := strings.Split(v.Ext, "_")
  69. if strings.Contains(utils.AnyToString(v.Ext), "zhiying") == false {
  70. continue
  71. }
  72. if strings.Contains(utils.AnyToString(v.Ext), "dev") && cfg.Prd {
  73. continue
  74. }
  75. if strings.Contains(utils.AnyToString(v.Ext), "prd") && cfg.Prd == false {
  76. continue
  77. }
  78. var ord = &model.GuideOrder{
  79. Oid: utils.StrToInt64(utils.OrderUUID(utils.StrToInt(ex[3]))),
  80. Uid: utils.StrToInt(ex[2]),
  81. StationUid: utils.StrToInt(ex[3]),
  82. PvdOid: utils.Int64ToStr(v.BizSubId),
  83. Status: status,
  84. UpdateTime: int(time.Now().Unix()),
  85. Title: utils.AnyToString(v.Name),
  86. Payment: utils.Float64ToStr(v.TradeAmount),
  87. Pvd: "ali1688",
  88. IsShare: utils.StrToInt(ex[4]),
  89. ThreeType: "ali1688",
  90. PvdParentOid: utils.Int64ToStr(v.BizId),
  91. CreateTime: int(utils.TimeStdParseUnix(v.CreateTime)),
  92. }
  93. if v.SettleState == 1 {
  94. ord.Status = "订单结算"
  95. ord.PlatformSettleTime = int(utils.TimeStdParseUnix(v.SettleTime))
  96. }
  97. if v.RightsState == 30 {
  98. ord.Status = "订单失败"
  99. }
  100. ord.Commission = utils.Float64ToStr(v.Commission)
  101. ord.RealCommission = utils.Float64ToStr(v.Commission)
  102. one := db.GetGuideOrderByOid(utils.AnyToString(v.BizSubId), "ali1688")
  103. if one == nil {
  104. insertOne, err := db.ZhimengDb.InsertOne(ord)
  105. fmt.Println(insertOne)
  106. fmt.Println(err)
  107. } else {
  108. ord.SettleTime = one.SettleTime
  109. if one.PlatformSettleTime > 0 {
  110. ord.PlatformSettleTime = one.PlatformSettleTime
  111. }
  112. if one.Status == "违规订单" {
  113. ord.Status = "违规订单"
  114. }
  115. db.ZhimengDb.Where("id=?", one.Id).AllCols().Update(ord)
  116. }
  117. }
  118. return count, ""
  119. }