Files
kami_backend/utility/cron/t_mall_game_data_sync.go
danial c61206ecc3 style(import):重新排序和整理Go语言的import语句
- 调整所有Go文件中的import语句顺序,使其符合标准库、第三方库、内部库的分类- 统一import语句的格式,去除多余的空行
- 确保所有文件中的import语句按照字母顺序和逻辑分组排列-修复部分文件中import语句缺失或重复的问题
-优化import语句的可读性和维护性
2025-10-04 16:11:25 +08:00

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)
}
}
}