available.amount.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package report
  2. import "duoduo/models/mysql"
  3. //定时任务查询数据库
  4. //计算可体现金额
  5. //10分钟一次
  6. func AvailableAmount() {
  7. var orderInfoList mysql.Order
  8. orderInfo, _, err := orderInfoList.GetOrderInfoList()
  9. if err != nil {
  10. return
  11. }
  12. //遍历 计算结算金额 用户钱包重新计算 结款 一级 二级 三级
  13. for i := 0; i < len(orderInfo); i++ {
  14. //一级
  15. if orderInfo[i].OpenId != "" && orderInfo[i].PID != "" { //open id 不为0 进行计算并且更新用户钱包
  16. var orderAmount mysql.Order
  17. var wallet mysql.Wallet
  18. var trans mysql.TransRecords
  19. orderAmount.OpenId = orderInfo[i].OpenId
  20. orderWallet, _ := orderAmount.GetAvailableAmount()
  21. //总金额减去提现金额
  22. trans.OpenID = orderInfo[i].OpenId
  23. trans.Pid = orderInfo[i].PID
  24. trans.PidStatus = 1 //拼多多 订单
  25. transInfo, err := trans.GetTrans()
  26. if err != nil && err.Error() != "record not found" {
  27. continue
  28. }
  29. //更新钱包 钱包总和为 123级总和减去提现总额
  30. wallet.AvailableAmount = orderWallet.Amount.Add(orderWallet.Amount1.Add(orderWallet.Amount2)).Sub(transInfo.Amount)
  31. wallet.OpenID = orderInfo[i].OpenId
  32. wallet.Pid = orderInfo[i].PID
  33. wallet.UpdateAvailable()
  34. }
  35. //二级
  36. if orderInfo[i].OpenId1 != "" { //
  37. var orderAmount mysql.Order
  38. var wallet mysql.Wallet
  39. var pid mysql.Pid
  40. var trans mysql.TransRecords
  41. pid.OpenID = orderInfo[i].OpenId1
  42. pid.PidStatus = 1 //拼多多用户
  43. pidInfo, err := pid.Get()
  44. if err != nil {
  45. continue
  46. }
  47. trans.OpenID = orderInfo[i].OpenId1
  48. trans.Pid = pidInfo.Pid
  49. trans.PidStatus = 1 //拼多多 订单
  50. transInfo, err := trans.GetTrans()
  51. if err != nil && err.Error() != "record not found" {
  52. continue
  53. }
  54. orderAmount.OpenId = orderInfo[i].OpenId1
  55. orderWallet, _ := orderAmount.GetAvailableAmount()
  56. //更新钱包
  57. wallet.AvailableAmount = orderWallet.Amount.Add(orderWallet.Amount1.Add(orderWallet.Amount2)).Sub(transInfo.Amount)
  58. wallet.OpenID = orderInfo[i].OpenId1
  59. wallet.Pid = pidInfo.Pid
  60. wallet.UpdateAvailable()
  61. }
  62. //三级
  63. if orderInfo[i].OpenId2 != "" { //
  64. var orderAmount mysql.Order
  65. var wallet mysql.Wallet
  66. var pid mysql.Pid
  67. var trans mysql.TransRecords
  68. pid.OpenID = orderInfo[i].OpenId2
  69. pid.PidStatus = 1 //拼多多用户
  70. pidInfo, err := pid.Get()
  71. if err != nil {
  72. continue
  73. }
  74. trans.OpenID = orderInfo[i].OpenId2
  75. trans.Pid = pidInfo.Pid
  76. trans.PidStatus = 1 //拼多多 订单
  77. transInfo, err := trans.GetTrans()
  78. if err != nil && err.Error() != "record not found" {
  79. continue
  80. }
  81. orderAmount.OpenId = orderInfo[i].OpenId2
  82. orderWallet, _ := orderAmount.GetAvailableAmount()
  83. //更新钱包
  84. wallet.AvailableAmount = orderWallet.Amount.Add(orderWallet.Amount1.Add(orderWallet.Amount2)).Sub(transInfo.Amount)
  85. wallet.OpenID = orderInfo[i].OpenId2
  86. wallet.Pid = pidInfo.Pid
  87. wallet.UpdateAvailable()
  88. }
  89. }
  90. }