feat(cron): 添加角色配装信息刷新任务并优化神器数据同步功能

- 新增每5天执行一次的角色配装信息刷新任务
- 重构神器数据同步功能,优化数据处理和保存逻辑- 添加神器图片URL获取和上传逻辑
- 更新相关测试用例
This commit is contained in:
hxt
2025-07-26 16:22:12 +08:00
parent fc41c5ca73
commit 707b3cb347
6 changed files with 145 additions and 69 deletions

View File

@@ -35,6 +35,19 @@ func (l *Logic) GetHeroByCode(ctx context.Context, code string) (*entity.EpicHer
// 2. 缓存未命中,查数据库
var hero *entity.EpicHeroInfo
err := dao.EpicHeroInfo.Ctx(ctx).
Fields(
dao.EpicHeroInfo.Columns().Id,
dao.EpicHeroInfo.Columns().HeroName,
dao.EpicHeroInfo.Columns().HeroCode,
dao.EpicHeroInfo.Columns().HeroAttrLv60,
dao.EpicHeroInfo.Columns().NickName,
dao.EpicHeroInfo.Columns().Rarity,
dao.EpicHeroInfo.Columns().Role,
dao.EpicHeroInfo.Columns().Zodiac,
dao.EpicHeroInfo.Columns().HeadImgUrl,
dao.EpicHeroInfo.Columns().Attribute,
dao.EpicHeroInfo.Columns().Remark,
).
Where(dao.EpicHeroInfo.Columns().HeroCode, code).
Scan(&hero)
if err != nil {
@@ -58,7 +71,19 @@ func (l *Logic) GetHeroList(ctx context.Context) ([]*v1.EpicHeroVO, error) {
// 2. 缓存未命中,查数据库
err := dao.EpicHeroInfo.Ctx(ctx).
OrderDesc(dao.EpicHeroInfo.Columns().CreateTime). // 按创建时间倒序
Fields(
dao.EpicHeroInfo.Columns().Id,
dao.EpicHeroInfo.Columns().HeroName,
dao.EpicHeroInfo.Columns().HeroCode,
dao.EpicHeroInfo.Columns().HeroAttrLv60,
dao.EpicHeroInfo.Columns().NickName,
dao.EpicHeroInfo.Columns().Rarity,
dao.EpicHeroInfo.Columns().Role,
dao.EpicHeroInfo.Columns().Zodiac,
dao.EpicHeroInfo.Columns().HeadImgUrl,
dao.EpicHeroInfo.Columns().Attribute,
dao.EpicHeroInfo.Columns().Remark,
).OrderDesc(dao.EpicHeroInfo.Columns().CreateTime).
Scan(&doList)
if err != nil {
return nil, err
@@ -102,6 +127,19 @@ func (l *Logic) GetHeroDetailByCode(ctx context.Context, code string) (*v1.HeroD
)
err = dao.EpicHeroInfo.Ctx(ctx).
Fields(
dao.EpicHeroInfo.Columns().Id,
dao.EpicHeroInfo.Columns().HeroName,
dao.EpicHeroInfo.Columns().HeroCode,
dao.EpicHeroInfo.Columns().HeroAttrLv60,
dao.EpicHeroInfo.Columns().NickName,
dao.EpicHeroInfo.Columns().Rarity,
dao.EpicHeroInfo.Columns().Role,
dao.EpicHeroInfo.Columns().Zodiac,
dao.EpicHeroInfo.Columns().HeadImgUrl,
dao.EpicHeroInfo.Columns().Attribute,
dao.EpicHeroInfo.Columns().Remark,
).
Where(dao.EpicHeroInfo.Columns().HeroCode, code).
Scan(&epicHeroInfo)