|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package svc
-
- import (
- "applet/app/db"
- "applet/app/db/model"
- "applet/app/utils"
- "applet/app/utils/cache"
- "fmt"
- "time"
- )
-
- func HwOrderSettle() {
- day := time.Now().Day()
- if day < 20 {
- return
- }
- month := utils.GetTimeRange("current_month")
- fmt.Println(month)
- arg := map[string]string{
- "status": "订单成功",
- "sort": "id desc",
- "is_to_settle": "1",
- "is_commission": "1",
- "to_settle_time": utils.Int64ToStr(month["start"]),
- "p": "1",
- "size": "100",
- }
- order := db.GetHwOrderList(arg)
- if len(order) == 0 {
- return
- }
- fmt.Println(utils.SerializeStr(order))
- platformMap := map[string]string{
- "starbucks": "星巴克", "movie": "电影", "mcdonald": "麦当劳", "nayuki": "奈雪", "luckin": "瑞幸咖啡", "pizza": "必胜客",
- "pagoda": "百果园", "burger_king": "汉堡王", "heytea": "喜茶", "to_kfc": "肯德基", "wallace": "华莱士", "flowerCake": "鲜花", "delivery": "比价寄", "tourism": "出游",
- }
- for _, v := range order {
- fmt.Println("=================00")
- // 加锁 防止并发提取
- mutexKey := fmt.Sprintf("hw_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), v.ExtendUid, "playlet")
- if amount == nil {
- fmt.Println("=================5")
- continue
- }
- if v.Commission <= 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) + v.Commission)
- 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: utils.Float64ToStr(v.Commission),
- AfterAmount: amount.LastMonthAmount,
- Platform: v.Type,
- Oid: v.Oid,
- Title: platformMap[v.Type] + "结算",
- FlowType: v.Type + "_settle",
- ExtendUid: 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
- }
|