From fc620d668f041c338eb47bc085cfa8378ff1ec54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:05:43 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(player):=20=E5=AE=A0=E7=89=A9?= =?UTF-8?q?=E8=B4=AD=E4=B9=B0=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用PetInfo_One_ID方法替代直接数据库查询 - 调整宠物购买时的价格计算逻辑,买入价格从*100调整为*102 - 卖出价格从*100调整为*98,买入扣款也相应调整为*102 - 删除宠物时使用Pet_del方法替代直接数据库删除操作 - 新增PetInfo_One_ID方法 --- modules/player/service/pet.go | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/modules/player/service/pet.go b/modules/player/service/pet.go index 479b8c98..eb904d6a 100644 --- a/modules/player/service/pet.go +++ b/modules/player/service/pet.go @@ -50,9 +50,9 @@ func (s *PetService) UPdatePrice(ctime uint32, Price float32) { } func (s *PetService) BuyPet(pid uint32) error { - var tt *model.Pet - s.dbm(s.Model).Where("id", pid).Scan(&tt) + tt := NewPetService(0).PetInfo_One_ID(pid) + if tt == nil { return fmt.Errorf("没有此精灵") } @@ -66,13 +66,13 @@ func (s *PetService) BuyPet(pid uint32) error { return fmt.Errorf("未设置价格") } - if service.NewBaseSysUserService().GetGold(uint(s.userid)) < int64(tt.SalePrice)*100 { + if service.NewBaseSysUserService().GetGold(uint(s.userid)) < int64(tt.SalePrice)*102 { return fmt.Errorf("余额不足") } - service.NewBaseSysUserService().UpdateGold(tt.PlayerID, int64(tt.SalePrice)*100) - service.NewBaseSysUserService().UpdateGold(s.userid, -int64(tt.SalePrice)*100) + service.NewBaseSysUserService().UpdateGold(tt.PlayerID, int64(tt.SalePrice)*98) + service.NewBaseSysUserService().UpdateGold(s.userid, -int64(tt.SalePrice)*102) s.PetAdd(&tt.Data) - s.dbm(s.Model).Where("id", pid).Delete() //删除旧精灵 + NewPetService(tt.PlayerID).Pet_del(tt.CatchTime) return nil @@ -104,6 +104,19 @@ func (s *PetService) PetInfo_One(cachetime uint32) *model.Pet { tt.Data.CatchTime = tt.CatchTime return tt } +func (s *PetService) PetInfo_One_ID(Pid uint32) *model.Pet { + + m := s.dbm(s.Model).Where("id", Pid) + var tt *model.Pet + + m.Scan(&tt) + if tt == nil { + return nil + } + + tt.Data.CatchTime = tt.CatchTime + return tt +} func (s *PetService) PetInfo_One_ohter(userid, cachetime uint32) model.Pet { m := s.dbm(s.Model).Where("catch_time", cachetime)