1
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
昔念
2026-02-14 23:14:43 +08:00
parent 3b271e7c41
commit e1f910848f
23 changed files with 58 additions and 44 deletions

View File

@@ -11,7 +11,7 @@ const (
// ItemGift 物品奖励基础配置模型(与数据库表 item_gift 字段一一对应,核心存储结构)
type ItemGift struct {
*BaseConfig
*cool.Model // 保留通用ModelID/创建时间/更新时间等)
// 核心业务字段按需求实现物品id、备注、是否启用、是否为扭蛋、物品数量
ItemID int64 `gorm:"not null;default:0;comment:'物品ID关联物品配置表主键'" json:"item_id"`
@@ -20,6 +20,7 @@ type ItemGift struct {
ItemMinCount int64 `gorm:"column:item_min_count;not null;comment:单次采集最小产出数量" json:"item_min_count"`
// ItemMaxCount 单次采集最大产出数量
ItemMaxCount uint32 `gorm:"column:item_max_count;not null;comment:单次采集最大产出数量" json:"item_max_count"`
Remark string `gorm:"type:varchar(255);default:'';comment:'性别配置备注(如:默认性别规则)'" json:"remark"` // 调整注释
}
// TableName 指定ItemGift对应的数据库表名遵循现有代码规范
@@ -35,7 +36,7 @@ func (*ItemGift) GroupName() string {
// NewItemGift 创建一个新的ItemGift实例初始化通用Model字段+默认值,与现有实例创建逻辑一致)
func NewItemGift() *ItemGift {
return &ItemGift{
BaseConfig: NewBaseConfig(),
Model: cool.NewModel(),
}
}

View File

@@ -11,15 +11,16 @@ const (
// PetReward 精灵奖励基础配置模型(核心存储结构,与数据库表字段一一对应)
type PetReward struct {
*BaseConfig
*cool.Model // 保留通用ModelID/创建时间/更新时间等)
MonID int32 `gorm:"not null;comment:'BOSS对应的精灵ID'" json:"mon_id"`
DV int32 `gorm:"not null;default:0;comment:'成长值'" json:"dv"`
Nature int32 `gorm:"not null;default:0;comment:'BOSS属性-性格'" json:"nature"`
Effect int32 `gorm:"not null;comment:'BOSS特性'" json:"effect"`
Lv int32 `gorm:"not null;comment:'BOSS等级LvHpMatchUser非0时此配置无效'" json:"lv"`
IsEgg uint32 `gorm:"not null;default:0;comment:'是否蛋'" json:"is_egg"` //奖励是否为扭蛋奖励
IsLight uint32 `gorm:"not null;default:0;comment:'是否擦灯'" json:"is_light"` //奖励是否为光之子``
IsEgg uint32 `gorm:"not null;default:0;comment:'是否蛋'" json:"is_egg"` //奖励是否为扭蛋奖励
IsLight uint32 `gorm:"not null;default:0;comment:'是否擦灯'" json:"is_light"` //奖励是否为光之子``
Remark string `gorm:"type:varchar(255);default:'';comment:'性别配置备注(如:默认性别规则)'" json:"remark"` // 调整注释
}
// TableName 指定PetReward对应的数据库表名遵循现有代码规范
@@ -35,7 +36,7 @@ func (*PetReward) GroupName() string {
// NewPetReward 创建一个新的PetReward实例初始化通用Model字段+所有字段默认值与NewBossConfig保持一致
func NewPetReward() *PetReward {
return &PetReward{
BaseConfig: NewBaseConfig(),
Model: cool.NewModel(),
}
}

View File

@@ -7,7 +7,7 @@ import (
)
// /取消redis空节点的强制缓存
func dbm(m cool.IModel) *gdb.Model {
func dbm_enable(m cool.IModel) *gdb.Model {
ret := cool.DBM(m)
if cool.Config.ServerInfo.IsVip == 0 { //正式服启动缓存
ret = ret.Where("is_enable", 1)
@@ -20,7 +20,7 @@ func dbm(m cool.IModel) *gdb.Model {
}
return ret
}
func dbm_fix(m cool.IModel) *gdb.Model {
func dbm_notenable(m cool.IModel) *gdb.Model {
ret := cool.DBM(m).Cache(gdb.CacheOption{
Force: false,
})
@@ -40,3 +40,8 @@ func dbm_nocache(m cool.IModel) *gdb.Model {
// }
return ret
}
func dbm_nocache_noenable(m cool.IModel) *gdb.Model {
ret := cool.DBM(m)
return ret
}

View File

@@ -25,7 +25,7 @@ func (s *BossService) Get(id uint32) *model.BossConfig {
return nil
}
var item *model.BossConfig
dbm_fix(s.Model).Where("id", id).Scan(&item)
dbm_notenable(s.Model).Where("id", id).Scan(&item)
return item

View File

@@ -40,7 +40,7 @@ func NewCdkService() *CdkService {
}
func (s *CdkService) Get(id string) *model.CDKConfig {
var item *model.CDKConfig
dbm_fix(s.Model).Where("cdk_code", id).WhereNot("exchange_remain_count", 0).Scan(&item)
dbm_notenable(s.Model).Where("cdk_code", id).WhereNot("exchange_remain_count", 0).Scan(&item)
return item

View File

@@ -10,7 +10,7 @@ type EffectService struct {
}
func (s *EffectService) Args(id uint32) (int, []int) {
m := dbm_fix(s.Model).Where("se_idx", id)
m := dbm_notenable(s.Model).Where("se_idx", id)
var tt model.PlayerPetSpecialEffect
m.Scan(&tt)

View File

@@ -23,7 +23,7 @@ func NewEggService() *EggService {
func (s *EggService) GetData(p1 uint32) []int32 {
//cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":")
m := dbm(s.Model)
m := dbm_enable(s.Model)
var pet []model.Egg //一个特性应该是唯一的,但是我们要获取默认随机特性
m.Wheref(`male_pet_ids @> ARRAY[?]::integer[]`, p1).Scan(&pet)
@@ -37,7 +37,7 @@ func (s *EggService) GetData(p1 uint32) []int32 {
}
func (s *EggService) GetResult(m, f uint32) uint32 {
//cacheKey := strings.Join([]string{fmt.Sprintf("%d", p1), fmt.Sprintf("%d", p2)}, ":")
md := dbm(s.Model)
md := dbm_enable(s.Model)
var pet *model.Egg //一个特性应该是唯一的,但是我们要获取默认随机特性
md.Wheref(`male_pet_ids @> ARRAY[?]::integer[]`, m).

View File

@@ -17,14 +17,14 @@ type ItemService struct {
func (s *ItemService) GetItem(id uint32) *model.ItemGift {
var item *model.ItemGift
dbm(s.Model).Where("id", id).Scan(&item)
dbm_notenable(s.Model).Where("id", id).Scan(&item)
return item
}
func (s *ItemService) GetItemCount(id uint32) data.ItemInfo {
var item model.ItemGift
var res data.ItemInfo
dbm(s.Model).Where("id", id).Scan(&item)
dbm_notenable(s.Model).Where("id", id).Scan(&item)
if item.ItemID == 0 {
@@ -41,7 +41,7 @@ func (s *ItemService) GetItemCount(id uint32) data.ItemInfo {
}
func (s *ItemService) GetEgg(count int64) []data.ItemInfo {
var item []model.ItemGift
dbm(s.Model).Where("is_egg", 1).Scan(&item)
dbm_notenable(s.Model).Where("is_egg", 1).Scan(&item)
rr := utils.RandomSlice(item, int(count))
var res = make([]data.ItemInfo, len(rr))

View File

@@ -23,7 +23,7 @@ func NewPetRewardService() *PetRewardService {
}
func (s *PetRewardService) GetEgg() model.PetReward {
var item model.PetReward
dbm_nocache(s.Model).Where("is_egg", 1).OrderRandom().Limit(1).Scan(&item)
dbm_nocache_noenable(s.Model).Where("is_egg", 1).OrderRandom().Limit(1).Scan(&item)
return item
@@ -33,7 +33,7 @@ func (s *PetRewardService) Get(id uint32) *model.PetReward {
return nil
}
var item *model.PetReward
dbm(s.Model).Where("id", id).Scan(&item)
dbm_notenable(s.Model).Where("id", id).Scan(&item)
return item

View File

@@ -43,7 +43,7 @@ func (s *PetFusionMaterialService) Data(Material1 [4]uint32) int32 {
}
}
m := dbm(s.Model)
m := dbm_enable(s.Model)
var effect *model.PetFusionMaterial //一个特性应该是唯一的,但是我们要获取默认随机特性
condition := g.Map{

View File

@@ -64,7 +64,7 @@ func (s *PetFusionService) Data(p1, p2, rand uint32) uint32 {
func (s *PetFusionService) getData(p1, p2 uint32) []model.PetFusion {
var pet []model.PetFusion //一个特性应该是唯一的,但是我们要获取默认随机特性
dbm(s.Model).Where("main_pet_id", p1).Wheref(`sub_pet_ids @> ARRAY[?]::integer[]`, p2).Scan(&pet)
dbm_enable(s.Model).Where("main_pet_id", p1).Wheref(`sub_pet_ids @> ARRAY[?]::integer[]`, p2).Scan(&pet)
return pet
@@ -73,7 +73,7 @@ func (s *PetFusionService) getData(p1, p2 uint32) []model.PetFusion {
func (s *PetFusionService) def() []model.PetFusion {
var pets []model.PetFusion
dbm(s.Model).Where("is_default", 1).Scan(&pets)
dbm_enable(s.Model).Where("is_default", 1).Scan(&pets)
return pets
// return ret.Interface().([]model.PetFusion)

View File

@@ -46,7 +46,7 @@ func (s *ShinyService) RandShiny(id uint32) *model.ColorfulSkin {
var ret []model.ColorfulSkin
// 执行 Raw SQL 并扫描返回值
dbm(s.Model).
dbm_enable(s.Model).
Wheref(`bind_elf_ids @> ?::jsonb`, id).
Wheref(`jsonb_typeof(bind_elf_ids) = ?`, "array").Scan(&ret)
@@ -73,7 +73,7 @@ func (s *ShinyService) FixShiny(id uint32) *model.ColorfulSkin {
var ret []model.ColorfulSkin
// 执行 Raw SQL 并扫描返回值
dbm(s.Model).
dbm_enable(s.Model).
Wheref(`bind_elf_ids @> ?::jsonb`, id).
Wheref(`jsonb_typeof(bind_elf_ids) = ?`, "array").Scan(&ret)
if len(ret) == 0 {
@@ -93,7 +93,7 @@ func (s *ShinyService) GetShiny(id int) *data.GlowFilter {
var ret []model.ColorfulSkin
// 执行 Raw SQL 并扫描返回值
dbm(s.Model).
dbm_enable(s.Model).
Where("id", id).Scan(&ret)
if len(ret) == 0 {
return nil

View File

@@ -21,7 +21,7 @@ func NewShopService() *ShopService {
}
}
func (s *ShopService) Get(product_id uint32) *model.ShopConfig {
m := dbm(s.Model).Where("product_id", product_id)
m := dbm_enable(s.Model).Where("product_id", product_id)
var tt *model.ShopConfig
m.Scan(&tt)

View File

@@ -21,7 +21,7 @@ func NewTalkConfigService() *TalkConfigService {
func (s *TalkConfigService) GetCache(flag int) model.MineralCollectionConfig {
var config model.MineralCollectionConfig
dbm(s.Model).Where("type", flag).Scan(&config)
dbm_enable(s.Model).Where("type", flag).Scan(&config)
return config
}

View File

@@ -25,7 +25,7 @@ func NewTaskService() *TaskService {
}
func (s *TaskService) Get(id, os int) *model.TaskConfig {
var item []model.TaskConfig
dbm(s.Model).Where("task_id", id).Scan(&item)
dbm_enable(s.Model).Where("task_id", id).Scan(&item)
var res *model.TaskConfig
for _, v := range item {
if v.OutState == os {
@@ -40,7 +40,7 @@ func (s *TaskService) Get(id, os int) *model.TaskConfig {
}
func (s *TaskService) GetDaily() []model.TaskConfig {
var item []model.TaskConfig
dbm(s.Model).Where("task_type", 1).Scan(&item)
dbm_enable(s.Model).Where("task_type", 1).Scan(&item)
return item

View File

@@ -68,7 +68,7 @@ func (m *UnifiedTowerModel) GroupName() string {
// Boss 根据塔等级获取对应的Boss配置统一入口
func (s *TowerService) Boss(towerLevel uint32) *model.BaseTowerConfig {
// 构建基础查询条件
query := dbm(s.Model).Where("tower_level = ?", towerLevel)
query := dbm_enable(s.Model).Where("tower_level = ?", towerLevel)
// 600塔专属的缓存配置
var config model.BaseTowerConfig