|
- package svc
-
- import (
- "applet/app/db"
- "applet/app/db/model"
- "applet/app/md"
- "applet/app/utils"
- "applet/app/utils/cache"
- "fmt"
- "time"
- )
-
- func LifeOrderSettle(arg map[string]string) {
- day := time.Now().Day()
- if day < 20 {
- return
- }
-
- order := db.GetLifeOrderList(arg)
- if len(order) == 0 {
- return
- }
- fmt.Println(utils.SerializeStr(order))
- platformMap := md.SettlePvd
- for _, v := range order {
- fmt.Println("=================00")
- // 加锁 防止并发提取
- mutexKey := fmt.Sprintf("life_order_settle3:%d", v.Id)
- withdrawAvailable, err := cache.Do("SET", mutexKey, 1, "EX", 1800, "NX")
- if err != nil {
- fmt.Println("=================0")
-
- fmt.Println(err)
- continue
- }
- if withdrawAvailable != "OK" {
- fmt.Println("=================1")
-
- continue
- }
- if v.SettleTime > 0 {
- fmt.Println("=================2")
-
- continue
- }
- //加到上月结算
- if v.Uid == 0 {
- fmt.Println("=================3")
-
- continue
- }
- masterDb := db.MasterDb{}
- masterDb.Set()
- master := masterDb.GetMaster(utils.IntToStr(v.Uid))
- if master == nil {
- fmt.Println("=================4")
-
- continue
- }
- masterAmountDb := db.MasterAmountDb{}
- masterAmountDb.Set()
- amount := masterAmountDb.GetMasterAmountByExtendUid(utils.IntToStr(master.Id), utils.IntToStr(v.ExtendUid), "playlet")
- if amount == nil {
- fmt.Println("=================5")
- continue
- }
- if utils.StrToFloat64(v.RealCommission) <= 0 {
- v.SettleTime = int(time.Now().Unix())
- db.ZhimengDb.Where("id=?", v.Id).Update(&v)
- continue
- }
- oldAmount := amount.LastMonthAmount
- amount.LastMonthAmount = utils.Float64ToStr(utils.StrToFloat64(amount.LastMonthAmount) + utils.StrToFloat64(v.RealCommission))
- update := masterAmountDb.MasterAmountUpdate(amount.Id, amount)
- if update == false {
- fmt.Println("=================7")
-
- continue
- }
- var tmp = model.MasterLastMonthAmountFlow{
- Uid: utils.IntToStr(master.Id),
- Time: time.Now(),
- BeforeAmount: oldAmount,
- Amount: v.RealCommission,
- AfterAmount: amount.LastMonthAmount,
- Platform: v.Pvd,
- Oid: utils.Int64ToStr(v.Oid),
- Title: platformMap[v.Pvd] + "结算",
- FlowType: v.Pvd + "_settle",
- ExtendUid: utils.IntToStr(v.ExtendUid),
- }
- masterLastMonthAmountFlowDb := db.MasterLastMonthAmountFlowDb{}
- masterLastMonthAmountFlowDb.Set()
- masterLastMonthAmountFlowDb.MasterLastMonthAmountFlowInsert(&tmp)
- v.SettleTime = int(time.Now().Unix())
- db.ZhimengDb.Where("id=?", v.Id).Update(&v)
- }
- return
- }
|