Merge branch 'main' of https://cnb.cool/blzing/blazing
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
昔念
2026-03-13 22:21:01 +08:00
21 changed files with 251 additions and 64 deletions

View File

@@ -15,10 +15,8 @@ const TableNamePlayerPVP = "player_pvp"
type PVP struct {
*cool.Model
PlayerID uint64 `gorm:"not null;index:idx_pvp_player_id;comment:'所属玩家ID'" json:"player_id"`
SeasonData []PVPRankInfo `gorm:"type:jsonb;not null;comment:'赛季核心数据'" json:"season_data"`
RankInfo PVPRankInfo `gorm:"type:jsonb;not null;comment:'本赛季排名信息'" json:"rank_info"`
//本赛季排名信息'通过下标来确认当前赛季
RankInfo []PVPRankInfo `gorm:"type:jsonb;not null;comment:'赛季核心数据'" json:"season_data"`
}
func (u *PVP) Key() uint32 {
@@ -27,10 +25,10 @@ func (u *PVP) Key() uint32 {
// 如果分数不对的话,就按时间排序
func (u *PVP) Less(than *PVP) bool {
if u.RankInfo.Score == than.RankInfo.Score {
return u.RankInfo.LastMatchTime.Unix() < than.RankInfo.LastMatchTime.Unix()
if u.RankInfo[len(u.RankInfo)-1].Score == than.RankInfo[len(u.RankInfo)-1].Score {
return u.RankInfo[len(u.RankInfo)-1].LastMatchTime.Unix() < than.RankInfo[len(u.RankInfo)-1].LastMatchTime.Unix()
}
return u.RankInfo.Score < than.RankInfo.Score
return u.RankInfo[len(u.RankInfo)-1].Score < than.RankInfo[len(u.RankInfo)-1].Score
}
func NewPVP() *PVP {
return &PVP{

View File

@@ -2,6 +2,7 @@ package service
import (
"blazing/common/data/share"
"blazing/common/utils"
"blazing/cool"
"blazing/modules/config/service"
"blazing/modules/player/model"
@@ -93,7 +94,7 @@ func (s *InfoService) GetLogin() *model.PlayerInfo {
}
if !IsToday(tt.LastResetTime) && cool.Config.ServerInfo.IsVip == 0 { //判断是否是今天
if !utils.IsToday(tt.LastResetTime) && cool.Config.ServerInfo.IsVip == 0 { //判断是否是今天
//每天login时候检查重置时间然后把电池任务挖矿重置
//挖矿需要单独存,因为防止多开挖矿

View File

@@ -1,6 +1,7 @@
package service
import (
"blazing/common/utils"
"blazing/cool"
basemodel "blazing/modules/base/model"
"blazing/modules/base/service"
@@ -56,7 +57,11 @@ func (s *PetService) UPdatePrice(ctime uint32, Price uint32, is_sale uint32) err
return fmt.Errorf("精灵数量已满")
}
}
var p model.Pet
s.dbm(s.Model).Where("catch_time", ctime).Scan(&p)
if p.SalePrice!=0&&p.SalePrice != Price && utils.IsToday(p.UpdateTime) { //说明要修改价格
return fmt.Errorf("一天只允许改价一次")
}
res0, err := s.dbm(s.Model).
Where("catch_time", ctime). // 限定 ctime避免全表更新
Where("sale_price = ?", 0). // 只筛选 sale_price=0 的记录
@@ -147,6 +152,7 @@ RETURNING max_ts;
player.Data = tt.Data
player.CatchTime = tt.CatchTime
player.Free = 0
player.SalePrice = tt.SalePrice
player.SaleCount = tt.SaleCount + 1
player.IsVip = cool.Config.ServerInfo.IsVip

View File

@@ -1,6 +1,7 @@
package service
import (
"blazing/common/utils"
"blazing/cool"
config "blazing/modules/config/service"
"blazing/modules/player/model"
@@ -35,7 +36,7 @@ func (s *TalkService) Cheak(mapid uint32, flag int) (int, bool) {
}
//因为这个是挖一次更新一次,而且是实时更新的,如果更新日期是今天,那么就可以确认不用再重置,否则就需要重置挖矿记录
if !IsToday(talks.UpdateTime) {
if !utils.IsToday(talks.UpdateTime) {
talks.Count = 0
m1.Save(talks)

View File

@@ -65,21 +65,6 @@ func (s *TaskService) Exec(id uint32, t func(*model.Task) bool) {
}
// IsToday 判断给定时间是否是今天
func IsToday(t1 *gtime.Time) bool {
if t1 == nil {
return false
}
t := t1.Time
// 获取当前时间
now := time.Now()
// 比较年、月、日是否相同
return t.Year() == now.Year() &&
t.Month() == now.Month() &&
t.Day() == now.Day()
}
func IsWEEK(t1 *gtime.Time) bool {
if t1 == nil {
return false