huangjiajun vor 7 Monaten
Ursprung
Commit
5157cedd0a
10 geänderte Dateien mit 348 neuen und 27 gelöschten Zeilen
  1. +1
    -1
      app/hdl/hdl_file_upload.go
  2. +5
    -3
      app/hdl/zhimeng_platform/hdl_guide_order_list.go
  3. +10
    -6
      app/svc/platform/svc_guide_order_list.go
  4. +7
    -14
      app/task/init.go
  5. +2
    -0
      app/task/md/cron_key.go
  6. +45
    -0
      app/task/svc/svc_kuaishou_auth.go
  7. +231
    -0
      app/task/svc/svc_kuaishou_order.go
  8. +5
    -3
      app/task/svc/svc_tik_tok_local_life_order_settle.go
  9. +21
    -0
      app/task/task_kuaishou_auth.go
  10. +21
    -0
      app/task/task_kuaishou_order.go

+ 1
- 1
app/hdl/hdl_file_upload.go
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


+ 5
- 3
app/hdl/zhimeng_platform/hdl_guide_order_list.go Datei anzeigen

@@ -14,9 +14,11 @@ func GuideOrderList(c *gin.Context) {
return
}
platformMap := map[string]string{
"tikTok_life": "抖音本地生活",
"csjp": "穿山甲抖音",
"csjp_live": "穿山甲抖音直播商品",
"tikTok_life": "抖音本地生活",
"csjp": "穿山甲抖音",
"csjp_live": "穿山甲抖音直播商品",
"kuaishou": "快手",
"kuaishou_live": "快手直播商品",
}

data, total := platform.GuideOrderList(c, args)


+ 10
- 6
app/svc/platform/svc_guide_order_list.go Datei anzeigen

@@ -13,9 +13,11 @@ func GuideOrderList(c *gin.Context, args map[string]string) ([]map[string]string
list, total := db.GetGuideOrderListTotal(args)
var data = make([]map[string]string, 0)
platformMap := map[string]string{
"tikTok_life": "抖音本地生活",
"csjp": "穿山甲抖音",
"csjp_live": "穿山甲抖音直播商品",
"tikTok_life": "抖音本地生活",
"csjp": "穿山甲抖音",
"csjp_live": "穿山甲抖音直播商品",
"kuaishou": "快手",
"kuaishou_live": "快手直播商品",
}
if len(list) > 0 {
for _, v := range list {
@@ -72,9 +74,11 @@ func GuideOrderOutput(c *gin.Context, args map[string]string) (string, map[strin
"I1": "实际佣金",
}
platformMap := map[string]string{
"tikTok_life": "抖音本地生活",
"csjp": "穿山甲抖音",
"csjp_live": "穿山甲抖音直播商品",
"tikTok_life": "抖音本地生活",
"csjp": "穿山甲抖音",
"csjp_live": "穿山甲抖音直播商品",
"kuaishou": "快手",
"kuaishou_live": "快手直播商品",
}

list, _ := db.GetGuideOrderListTotal(args)


+ 7
- 14
app/task/init.go Datei anzeigen

@@ -85,7 +85,6 @@ func doTask(fnName string) func() {
func initTasks() {
jobs[taskMd.ZhimengCronPLayletBihaiOrder] = taskPlayletBihaiOrder //

//jobs[taskMd.ZhimengCronCinema5bms] = taskCinema5bms //
jobs[taskMd.ZhimengCronCinema5bmsOrder] = taskCinema5bmsOrder //
jobs[taskMd.ZhimengCronCinema5bmsYesterOrder] = taskCinema5bmsYesterOrder //

@@ -93,19 +92,11 @@ func initTasks() {
jobs[taskMd.ZhimengCronTikTokCsjpActivity] = taskTikTokCsjpActivity //
jobs[taskMd.ZhimengCronTikTokCsjpLive] = taskTikTokCsjpLive //

jobs[taskMd.ZhimengCronTikTokTask] = taskTikTokTask //
jobs[taskMd.ZhimengCronTikTokTaskRelate] = taskTikTokTaskRelate //
jobs[taskMd.ZhimengCronTikTokTaskMoney] = taskTikTokTaskMoney //
jobs[taskMd.ZhimengCronTikTokTaskMoneyByYestday] = taskTikTokTaskMoneyByYestday //
jobs[taskMd.ZhimengCronDianzhongKuaishouMoney] = taskDianzhongKuaishouMoney //
//jobs[taskMd.ZhimengCronPlayletVideoOrder] = taskPlayletVideoOrder //
//jobs[taskMd.ZhimengCronPlayletVideoOrderYesterDay] = taskPlayletVideoOrderYesterday //
//jobs[taskMd.ZhimengCronPlayletVideoOrderMonth] = taskPlayletVideoOrderMonth //
//jobs[taskMd.ZhimengCronPlayletAdvOrderMonth] = taskPlayletAdvOrderMonth //
//jobs[taskMd.ZhimengCronPlayletAdvOrder] = taskPlayletAdvOrder //
//jobs[taskMd.ZhimengCronPlayletAdvOrderYesterDay] = taskPlayletAdvOrderYesterday //
//jobs[taskMd.ZhimengCronPlayletAdvOrderYesterDayToMoney] = taskPlayletAdvOrderYesterdayToMoney //
//jobs[taskMd.ZhimengCronPlayletGoods] = taskPlayletGoods //
jobs[taskMd.ZhimengCronTikTokTask] = taskTikTokTask //
jobs[taskMd.ZhimengCronTikTokTaskRelate] = taskTikTokTaskRelate //
jobs[taskMd.ZhimengCronTikTokTaskMoney] = taskTikTokTaskMoney //
jobs[taskMd.ZhimengCronTikTokTaskMoneyByYestday] = taskTikTokTaskMoneyByYestday //
jobs[taskMd.ZhimengCronDianzhongKuaishouMoney] = taskDianzhongKuaishouMoney //
jobs[taskMd.ZhimengCronPlayletOrderSettle] = taskPlayletOrderSettle //
jobs[taskMd.ZhimengCronHwOrderSettle] = taskHwOrderSettle //
jobs[taskMd.ZhimengCronMasterMonthSettle] = taskMasterMonthSettle //
@@ -125,5 +116,7 @@ func initTasks() {
jobs[taskMd.ZhimengCronHwTourismOrder] = taskHwTourismOrder //
jobs[taskMd.ZhimengCronTikTokLocalLifeOrder] = taskTikTokLocalLifeOrder //
jobs[taskMd.ZhimengCronTikTokLocalLifeOrderSettle] = taskTikTokLocalLifeOrderSettle //
jobs[taskMd.ZhimengCronKuaishouOrder] = taskKuaishouOrder //
jobs[taskMd.ZhimengCronKuaishouAuth] = taskKuaishouAuth //

}

+ 2
- 0
app/task/md/cron_key.go Datei anzeigen

@@ -39,6 +39,8 @@ const (
ZhimengCronHwFlowerCakeOrder = "zhimeng_cron_hw_flowerCake_order"
ZhimengCronHwDeliveryOrder = "zhimeng_cron_hw_delivery_order"
ZhimengCronHwTourismOrder = "zhimeng_cron_hw_tourism_order"
ZhimengCronKuaishouOrder = "zhimeng_cron_kuaishou_order"
ZhimengCronKuaishouAuth = "zhimeng_cron_kuaishou_auth"
ZhimengCronTikTokLocalLifeOrder = "zhimeng_cron_tik_tok_local_life_order"
ZhimengCronTikTokLocalLifeOrderSettle = "zhimeng_cron_tik_tok_local_life_order_settle"
)

+ 45
- 0
app/task/svc/svc_kuaishou_auth.go Datei anzeigen

@@ -0,0 +1,45 @@
package svc

import (
"applet/app/db"
offical "applet/app/db/official"
"applet/app/utils"
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/kuaishou"
"github.com/tidwall/gjson"
"time"
)

func KuaishouAuth() {
kuaishouAppkey := offical.MasterListCfgGetOneData("0", "kuaishou_kfx_appkey")
kuaishouAppSecret := offical.MasterListCfgGetOneData("0", "kuaishou_kfx_app_secret")
kuaishou_official_expires_in := db.MasterListCfgGetOneData("0", "kuaishou_official_expires_in")
kuaishou_official_refresh_token := db.MasterListCfgGetOneData("0", "kuaishou_official_refresh_token")
if utils.StrToInt64(kuaishou_official_expires_in) < time.Now().Unix() {
args := map[string]string{
"app_id": kuaishouAppkey,
"grant_type": "refresh_token",
"refresh_token": kuaishou_official_refresh_token,
"app_secret": kuaishouAppSecret,
}
token, _ := kuaishou.GetKuaishouRefreshToken(args)
if token == "" {
return
}
accessToken := gjson.Get(token, "access_token").String()
if accessToken == "" {
return
}
teamAccessRefreshToken := gjson.Get(token, "refresh_token").String()
teamAccessTime := time.Now().Unix() + gjson.Get(token, "expires_in").Int() - 60
db.MasterListCfgSave("0", "kuaishou_official_access_token", accessToken)
db.MasterListCfgSave("0", "kuaishou_official_expires_in", utils.Int64ToStr(teamAccessTime))
db.MasterListCfgSave("0", "kuaishou_official_refresh_token", teamAccessRefreshToken)
args1 := map[string]interface{}{
"accessToken": accessToken,
"teamAccessTime": utils.Int64ToStr(teamAccessTime),
"teamAccessRefreshToken": teamAccessRefreshToken,
}
utils.CurlPost("http://izhim.com/?mod=api&act=kuaishou&ctrl=auth", args1, nil)
}

}

+ 231
- 0
app/task/svc/svc_kuaishou_order.go Datei anzeigen

@@ -0,0 +1,231 @@
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/kuaishou"
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md"
"encoding/json"
"fmt"
"github.com/tidwall/gjson"
"strings"
"time"
)

func KuaishouOrder() {
pvdTimeKey := "kuaishou_time"

// 获得最后时间
latest := offical.SysCfgByKey(pvdTimeKey)
if latest == nil {
offical.DbsSysCfgInserts(pvdTimeKey, time.Now().String())
latest = offical.SysCfgByKey(pvdTimeKey)
}
// 所有时间都是在操作秒数
now := time.Now().Unix()
strs := strings.Split(latest.V, ":")
timeStr := latest.V
if len(strs) == 3 {
timeStr = strs[0] + ":" + strs[1] + ":00"
}
fmt.Println(timeStr)
past := utils.TimeParseStd(timeStr).Unix()
// 如果上次记录超过30天或者 过去时间大于当前时间戳, 把时间设置为此前20分钟
if past < now-180*86400 || past > now {
past = now
}
var (
beginTime int64 = 0
endTime int64 = 0
pageNo int = 1
pageSize int = 50
nextPositionIndex string = ""
)

//怕时间不是走最新的
leave := now - past
if leave > 500 {
leave = 0
}
past = past + leave
beginTime = past - 300
endTime = past

if endTime > now {
endTime = now
}

for {
count := 0
var positionIndex = ""
if pageNo == 1 {
nextPositionIndex = "0"
}
if nextPositionIndex != "" {
count, positionIndex = OrdersKuaishouGet(nextPositionIndex, pageSize, beginTime, endTime, "update", 0)
}
if count == 0 {
nextPositionIndex = ""
goto ChkArg
}
// 判断是否分页已经全部取完了
if count <= pageSize {
nextPositionIndex = positionIndex
pageNo++
fmt.Println("========下一页========" + utils.IntToStr(pageNo))
count = 0
continue
}
ChkArg:
nextPositionIndex = ""

// 查询完后重置时间, 最后查询时间
if endTime < now {
pageNo = 1
offical.DbsSysCfgUpdate(pvdTimeKey, utils.TimeToStr(endTime))
beginTime = endTime
endTime = endTime + 300
if endTime > now {
endTime = now
}
count = 0
continue
}
count = 0
break
}
}

func OrdersKuaishouGet(nextPositionIndex string, pageSize int, sTime, eTime int64, timeType string, pvd int) (int, string) {

arg := map[string]interface{}{
"cpsOrderStatus": 0,
"pageSize": pageSize,
"sortType": 2, //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序]
"queryType": 2, //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询]
"beginTime": time.Unix(sTime, 0).Unix() * 1000,
"endTime": time.Unix(eTime, 0).Unix() * 1000,
"pcursor": nextPositionIndex,
}
param, kuaishouData := GetKuaishouKey()
param["param"] = utils.SerializeStr(arg)
data, err := kuaishou.GetKuishouCpsOrder(kuaishouData["sign_secret"], param)
goods := gjson.Get(data, "data.orderList").String()
newPcursor := gjson.Get(data, "data.pcursor").String()
if goods == "" || err != nil {
return 0, ""
}
var list = make([]md.KuaishouCpsOrder, 0)
err = json.Unmarshal([]byte(goods), &list)
if err != nil {
return 0, ""
}
var kuaishouState = map[int]string{
30: "订单付款",
50: "订单完成",
80: "订单失效",
60: "订单结算",
}
for _, v := range list {
var res = model.GuideOrder{
PvdParentOid: utils.IntToStr(v.Oid),
Pvd: "kuaishou",
Status: kuaishouState[v.CpsOrderStatus],
CreateTime: v.OrderCreateTime / 1000,
}
if v.SettlementSuccessTime > 0 {
res.PlatformSettleTime = int(v.SettlementSuccessTime / 1000)
}
for _, v1 := range v.CpsKwaimoneyOrderProductView {
resNew := res
if v1.CpsType == 3 {
resNew.Pvd = "kuaishou_live"
}
if strings.Contains(v1.Comments, "official_") == false {
continue
}
v1.Comments = strings.ReplaceAll(v1.Comments, "official_", "")
ex := strings.Split(v1.Comments, "_")
if len(ex) < 3 {
continue
}
orderType := 0
if ex[0] == "s" {
orderType = 1
}
// 判断免单
if ex[0] == "f" {
orderType = 2
}
if ex[0] == "cloud" {
orderType = 10
}
if ex[0] == "sef" {
orderType = 11
}
if ex[0] == "shareSeFree" {
orderType = 12
}
if ex[0] == "moref" {
orderType = 13
}
resNew.Oid = utils.StrToInt64(utils.OrderUUID(utils.StrToInt(ex[1])))
resNew.PvdOid = utils.IntToStr(v1.Oid)
resNew.Uid = utils.StrToInt(ex[2])
resNew.StationUid = utils.StrToInt(ex[1])
resNew.UpdateTime = int(time.Now().Unix())
resNew.Commission = utils.Float64ToStr(float64(v1.EstimatedIncome) / 100)
resNew.RealCommission = utils.Float64ToStr(float64(v1.EstimatedIncome) / 100)
resNew.Title = v1.ItemTitle
resNew.Img = v1.ItemPicUrl
resNew.Gid = utils.IntToStr(v1.ItemId)
resNew.IsShare = orderType
resNew.Payment = utils.Float64ToStr(float64(v1.PaymentFee) / 100)
one := db.GetGuideOrderByOne(resNew.PvdOid, utils.IntToStr(resNew.Uid), resNew.Pvd)
if one == nil {
insertOne, err := db.ZhimengDb.InsertOne(&resNew)
fmt.Println(insertOne)
fmt.Println(err)
} else {
resNew.SettleTime = one.SettleTime
if one.PlatformSettleTime > 0 {
resNew.PlatformSettleTime = one.PlatformSettleTime
}
db.ZhimengDb.Where("id=?", one.Id).AllCols().Update(&resNew)
}
}
}
return len(list), newPcursor
}
func GetKuaishouKey() (map[string]string, map[string]string) {
kuaishouData := CommKuaishou()
param := map[string]string{
"appkey": kuaishouData["appkey"],
"access_token": kuaishouData["token"],
}

return param, kuaishouData
}
func CommKuaishou() map[string]string {
res := OfficialCommKuaishou()
return res
}
func OfficialCommKuaishou() map[string]string {
kuaishouAppkey := offical.MasterListCfgGetOneData("0", "kuaishou_kfx_appkey")
kuaishouAppSecret := offical.MasterListCfgGetOneData("0", "kuaishou_kfx_app_secret")
kuaishouSignSecret := offical.MasterListCfgGetOneData("0", "kuaishou_kfx_sign_secret")
authType := "0"
kuaishouToken := db.MasterListCfgGetOneData("0", "kuaishou_official_access_token")
kuaishouPid := offical.MasterListCfgGetOneData("0", "kuaishou_official_pid")
res := map[string]string{
"pid": kuaishouPid,
"authType": authType,
"appkey": kuaishouAppkey,
"token": kuaishouToken,
"app_secret": kuaishouAppSecret,
"sign_secret": kuaishouSignSecret,
}
return res
}

+ 5
- 3
app/task/svc/svc_tik_tok_local_life_order_settle.go Datei anzeigen

@@ -31,9 +31,11 @@ func TikTokLocalLifeOrderSettle() {
}
fmt.Println(utils.SerializeStr(order))
platformMap := map[string]string{
"tikTok_life": "抖音本地生活",
"csjp": "穿山甲抖音",
"csjp_live": "穿山甲抖音直播商品",
"tikTok_life": "抖音本地生活",
"csjp": "穿山甲抖音",
"csjp_live": "穿山甲抖音直播商品",
"kuaishou": "快手",
"kuaishou_live": "快手直播商品",
}
for _, v := range order {
fmt.Println("=================00")


+ 21
- 0
app/task/task_kuaishou_auth.go Datei anzeigen

@@ -0,0 +1,21 @@
package task

import (
"applet/app/task/svc"
"math/rand"
"time"
)

func taskKuaishouAuth() {
for {
if len(ch) > workerNum {
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000)))
} else {
goto START
}
}
START:
ch <- 1
svc.KuaishouAuth()
<-ch
}

+ 21
- 0
app/task/task_kuaishou_order.go Datei anzeigen

@@ -0,0 +1,21 @@
package task

import (
"applet/app/task/svc"
"math/rand"
"time"
)

func taskKuaishouOrder() {
for {
if len(ch) > workerNum {
time.Sleep(time.Millisecond * time.Duration(rand.Intn(1000)))
} else {
goto START
}
}
START:
ch <- 1
svc.KuaishouOrder()
<-ch
}

Laden…
Abbrechen
Speichern