- 调整所有Go文件中的import语句顺序,使其符合标准库、第三方库、内部库的分类- 统一import语句的格式,去除多余的空行 - 确保所有文件中的import语句按照字母顺序和逻辑分组排列-修复部分文件中import语句缺失或重复的问题 -优化import语句的可读性和维护性
87 lines
2.6 KiB
Go
87 lines
2.6 KiB
Go
package cron
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"kami/internal/dao"
|
|
"kami/internal/model/entity"
|
|
"kami/utility/config"
|
|
"net/url"
|
|
|
|
"github.com/duke-git/lancet/v2/slice"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/net/gclient"
|
|
"github.com/gogf/gf/v2/os/glog"
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
)
|
|
|
|
type TMallGameDataSyncRes struct {
|
|
ShopData []*entity.V1RechargeTMallShop `json:"shopData"`
|
|
OrderData []*entity.V1RechargeTMallOrder `json:"orderData"`
|
|
OrderHistory []*entity.V1RechargeTMallOrderHistory `json:"orderHistory"`
|
|
AccountData []*entity.V1RechargeTMallAccount `json:"accountData"`
|
|
ShopHistory []*entity.V1RechargeTMallShopHistory `json:"shopHistory"`
|
|
}
|
|
|
|
type CommonRes struct {
|
|
Code int `json:"code"`
|
|
Data TMallGameDataSyncRes `json:"data"`
|
|
}
|
|
|
|
func SyncTMallGameData(ctx context.Context) {
|
|
client := gclient.New()
|
|
client.Timeout(gtime.S * 5)
|
|
cfg := config.NewConfig(ctx)
|
|
syncCfg := cfg.GetTMallSync()
|
|
if syncCfg.ServerId == "" {
|
|
return
|
|
}
|
|
reqUrl, _ := url.JoinPath(syncCfg.BaseUrl, "/api/recharge/tMallGame/data/sync")
|
|
result, err := client.Post(ctx, reqUrl, g.Map{
|
|
"channelName": syncCfg.ServerId,
|
|
"duration": syncCfg.Interval + 20,
|
|
})
|
|
if err != nil {
|
|
glog.Error(ctx, "请求失败", err)
|
|
return
|
|
}
|
|
data := CommonRes{}
|
|
err = json.Unmarshal(result.ReadAll(), &data)
|
|
if err != nil {
|
|
glog.Error(ctx, "请求失败", err)
|
|
return
|
|
}
|
|
if len(data.Data.AccountData) > 0 {
|
|
if _, err2 := dao.V1RechargeTMallAccount.Ctx(ctx).DB(config.GetDatabaseV1()).Save(data.Data.AccountData); err2 != nil {
|
|
glog.Error(ctx, "保存账号失败", err2)
|
|
}
|
|
}
|
|
if len(data.Data.ShopData) > 0 {
|
|
if _, err2 := dao.V1RechargeTMallShop.Ctx(ctx).DB(config.GetDatabaseV1()).
|
|
Save(data.Data.ShopData); err2 != nil {
|
|
glog.Error(ctx, "保存店铺失败", err2)
|
|
}
|
|
}
|
|
if len(data.Data.OrderData) > 0 {
|
|
slice.ForEach(data.Data.OrderData, func(index int, item *entity.V1RechargeTMallOrder) {
|
|
data.Data.OrderData[index].CallbackUrl = ""
|
|
})
|
|
if _, err2 := dao.V1RechargeTMallOrder.Ctx(ctx).DB(config.GetDatabaseV1()).
|
|
Save(data.Data.OrderData); err2 != nil {
|
|
glog.Error(ctx, "保存订单失败", err2)
|
|
}
|
|
}
|
|
if len(data.Data.OrderHistory) > 0 {
|
|
if _, err2 := dao.V1RechargeTMallOrderHistory.Ctx(ctx).DB(config.GetDatabaseV1()).
|
|
Save(data.Data.OrderHistory); err2 != nil {
|
|
glog.Error(ctx, "保存订单历史失败", err2)
|
|
}
|
|
}
|
|
if len(data.Data.ShopHistory) > 0 {
|
|
if _, err2 := dao.V1RechargeTMallShopHistory.Ctx(ctx).DB(config.GetDatabaseV1()).
|
|
Save(data.Data.ShopHistory); err2 != nil {
|
|
glog.Error(ctx, "保存订单历史失败", err2)
|
|
}
|
|
}
|
|
}
|