|
@@ -0,0 +1,114 @@
|
|
|
+package report
|
|
|
+
|
|
|
+import "duoduo/models/mysql"
|
|
|
+
|
|
|
+//定时任务查询数据库
|
|
|
+//计算可体现金额
|
|
|
+//10分钟一次
|
|
|
+
|
|
|
+func AvailableAmount() {
|
|
|
+ var orderInfoList mysql.Order
|
|
|
+
|
|
|
+ orderInfo, _, err := orderInfoList.GetOrderInfoList()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //遍历 计算结算金额 用户钱包重新计算 结款 一级 二级 三级
|
|
|
+ for i := 0; i < len(orderInfo); i++ {
|
|
|
+
|
|
|
+ //一级
|
|
|
+ if orderInfo[i].OpenId != "" && orderInfo[i].PID != "" { //open id 不为0 进行计算并且更新用户钱包
|
|
|
+ var orderAmount mysql.Order
|
|
|
+ var wallet mysql.Wallet
|
|
|
+ var trans mysql.TransRecords
|
|
|
+ orderAmount.OpenId = orderInfo[i].OpenId
|
|
|
+ orderWallet, _ := orderAmount.GetAvailableAmount()
|
|
|
+ //总金额减去提现金额
|
|
|
+ trans.OpenID = orderInfo[i].OpenId
|
|
|
+ trans.Pid = orderInfo[i].PID
|
|
|
+ trans.PidStatus = 1 //拼多多 订单
|
|
|
+
|
|
|
+ transInfo, err := trans.GetTrans()
|
|
|
+ if err != nil && err.Error() != "record not found" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新钱包 钱包总和为 123级总和减去提现总额
|
|
|
+ wallet.AvailableAmount = orderWallet.Amount.Add(orderWallet.Amount1.Add(orderWallet.Amount2)).Sub(transInfo.Amount)
|
|
|
+ wallet.OpenID = orderInfo[i].OpenId
|
|
|
+ wallet.Pid = orderInfo[i].PID
|
|
|
+ wallet.UpdateAvailable()
|
|
|
+
|
|
|
+ }
|
|
|
+ //二级
|
|
|
+ if orderInfo[i].OpenId1 != "" { //
|
|
|
+ var orderAmount mysql.Order
|
|
|
+ var wallet mysql.Wallet
|
|
|
+ var pid mysql.Pid
|
|
|
+ var trans mysql.TransRecords
|
|
|
+
|
|
|
+ pid.OpenID = orderInfo[i].OpenId1
|
|
|
+ pid.PidStatus = 1 //拼多多用户
|
|
|
+ pidInfo, err := pid.Get()
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ trans.OpenID = orderInfo[i].OpenId1
|
|
|
+ trans.Pid = pidInfo.Pid
|
|
|
+ trans.PidStatus = 1 //拼多多 订单
|
|
|
+
|
|
|
+ transInfo, err := trans.GetTrans()
|
|
|
+ if err != nil && err.Error() != "record not found" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ orderAmount.OpenId = orderInfo[i].OpenId1
|
|
|
+ orderWallet, _ := orderAmount.GetAvailableAmount()
|
|
|
+
|
|
|
+ //更新钱包
|
|
|
+ wallet.AvailableAmount = orderWallet.Amount.Add(orderWallet.Amount1.Add(orderWallet.Amount2)).Sub(transInfo.Amount)
|
|
|
+ wallet.OpenID = orderInfo[i].OpenId1
|
|
|
+ wallet.Pid = pidInfo.Pid
|
|
|
+ wallet.UpdateAvailable()
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //三级
|
|
|
+ if orderInfo[i].OpenId2 != "" { //
|
|
|
+ var orderAmount mysql.Order
|
|
|
+ var wallet mysql.Wallet
|
|
|
+ var pid mysql.Pid
|
|
|
+ var trans mysql.TransRecords
|
|
|
+
|
|
|
+ pid.OpenID = orderInfo[i].OpenId2
|
|
|
+ pid.PidStatus = 1 //拼多多用户
|
|
|
+ pidInfo, err := pid.Get()
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ trans.OpenID = orderInfo[i].OpenId2
|
|
|
+ trans.Pid = pidInfo.Pid
|
|
|
+ trans.PidStatus = 1 //拼多多 订单
|
|
|
+
|
|
|
+ transInfo, err := trans.GetTrans()
|
|
|
+ if err != nil && err.Error() != "record not found" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ orderAmount.OpenId = orderInfo[i].OpenId2
|
|
|
+ orderWallet, _ := orderAmount.GetAvailableAmount()
|
|
|
+
|
|
|
+ //更新钱包
|
|
|
+ wallet.AvailableAmount = orderWallet.Amount.Add(orderWallet.Amount1.Add(orderWallet.Amount2)).Sub(transInfo.Amount)
|
|
|
+ wallet.OpenID = orderInfo[i].OpenId2
|
|
|
+ wallet.Pid = pidInfo.Pid
|
|
|
+ wallet.UpdateAvailable()
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|