package svc import ( "applet/app/db" "applet/app/db/model" offical "applet/app/db/official" "applet/app/utils" "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md/csjp" "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/tik_tok" "fmt" "strings" "time" ) func CsjpLocalLifeOrder() { p := "" for true { _, curor, hasMore := GetCsjpLocalLifeOrder(p) if hasMore == false { break } p = curor } } func GetCsjpLocalLifeOrder(p string) (int, string, bool) { endTime := time.Now().Unix() startTime := endTime - 3600 tikTokCsjpAppId := offical.SysCfgByKeyStr("tik_tok_csjp_life_app_id") tikTokCsjpAppSecret := offical.SysCfgByKeyStr("tik_tok_csjp_life_app_secret") param := map[string]string{ "cursor": p, "count": "50", "update_time_begin": utils.Int64ToStr(startTime), "update_time_end": utils.Int64ToStr(endTime), } param["app_id"] = tikTokCsjpAppId param["app_secret"] = tikTokCsjpAppSecret data, cursor, hasMore := tik_tok.CsjpLifeGetOrder(param) count := 0 if data != nil { for _, v := range *data { AddCsjpLocalLifeOrder(v) } return count, utils.Int64ToStr(cursor), hasMore } return count, "", false } func AddCsjpLocalLifeOrder(order csjp.CsjpOrder) { statusArr := map[int]string{1: "订单付款", 2: "订单退款", 3: "订单成功", 4: "部分核销", 5: "部分退款"} userId := order.CommandExternalInfo isShare := 0 if strings.Contains(utils.AnyToString(userId), "s") { isShare = 1 } split := strings.Split(utils.AnyToString(userId), "_") if len(split) < 3 { return } mid := split[2] puid := "" if len(split) == 4 { puid = split[2] } uid := split[1] title := "" img := "" if len(order.ProductList) > 0 { title = order.ProductList[0].Name img = order.ProductList[0].Img } var ord = &model.GuideOrder{ Oid: utils.StrToInt64(utils.OrderUUID(utils.StrToInt(uid))), Uid: utils.StrToInt(mid), ExtendUid: utils.StrToInt(puid), StationUid: utils.StrToInt(uid), PvdOid: order.OrderId, PvdParentOid: order.RootOrderId, Status: statusArr[order.Status], CreateTime: order.PayTime, UpdateTime: int(time.Now().Unix()), Commission: utils.Float64ToStr(float64(order.CommissionAmount) / 100), Title: title, Payment: utils.Float64ToStr(float64(order.PayAmount) / 100), Pvd: "tikTok_life", Img: img, IsShare: isShare, } if order.SettleFinish || order.Status != 2 { var amount int64 = 0 isEnd := 1 var endTime int64 = 0 settleOrders, ok := order.SettleOrders.([]interface{}) if ok { for _, v := range settleOrders { tmp, ok := v.(map[string]interface{}) if ok == false || utils.AnyToInt64(tmp["status"]) < 3 { isEnd = 0 } if ok && utils.AnyToInt64(tmp["status"]) == 3 { endTime = utils.AnyToInt64(tmp["settle_time"]) amount += utils.AnyToInt64(tmp["settle_amount"]) } } } if ok == false || len(settleOrders) == 0 { isEnd = 0 } if isEnd == 1 { ord.Status = "订单结算" if order.Status == 5 { ord.Status = "部分结算" } ord.PlatformSettleTime = int(endTime) if ord.PlatformSettleTime == 0 { ord.PlatformSettleTime = ord.UpdateTime } ord.RealCommission = utils.Float64ToStr(float64(amount) / 100) } } one := db.GetGuideOrderByOne(ord.PvdOid, utils.IntToStr(ord.Uid), ord.Pvd) if one == nil { insertOne, err := db.ZhimengDb.InsertOne(ord) fmt.Println(insertOne) fmt.Println(err) } else { ord.SettleTime = one.SettleTime if one.PlatformSettleTime > 0 { ord.PlatformSettleTime = one.PlatformSettleTime } db.ZhimengDb.Where("id=?", one.Id).AllCols().Update(ord) } return }