diff --git a/modules/player/controller/admin/pet.go b/modules/player/controller/admin/pet.go index d3a37d8ba..97f273d39 100644 --- a/modules/player/controller/admin/pet.go +++ b/modules/player/controller/admin/pet.go @@ -110,7 +110,7 @@ func (c *PetBagController) BuyPet(ctx context.Context, req *BuyPetReq) (res *coo res = &cool.BaseRes{} - service.NewPetService(uint32(admin.UserId)).BuyPet(req.Cid) + err = service.NewPetService(uint32(admin.UserId)).BuyPet(req.Cid) return diff --git a/modules/player/service/pet.go b/modules/player/service/pet.go index eb904d6a5..1b978f1ca 100644 --- a/modules/player/service/pet.go +++ b/modules/player/service/pet.go @@ -6,6 +6,8 @@ import ( "blazing/modules/player/model" "context" "fmt" + + "github.com/gogf/gf/v2/os/gtime" ) // 获取精灵信息 0是仓库,1是放生 @@ -65,14 +67,18 @@ func (s *PetService) BuyPet(pid uint32) error { if tt.SalePrice == 0 { return fmt.Errorf("未设置价格") } + if !tt.UpdateTime.AddDate(0, 0, 1).Before(gtime.Now()) { + return fmt.Errorf("数据异常") + } if service.NewBaseSysUserService().GetGold(uint(s.userid)) < int64(tt.SalePrice)*102 { return fmt.Errorf("余额不足") } - service.NewBaseSysUserService().UpdateGold(tt.PlayerID, int64(tt.SalePrice)*98) + service.NewBaseSysUserService().UpdateGold(s.userid, -int64(tt.SalePrice)*102) - s.PetAdd(&tt.Data) NewPetService(tt.PlayerID).Pet_del(tt.CatchTime) + service.NewBaseSysUserService().UpdateGold(tt.PlayerID, int64(tt.SalePrice)*98) + s.PetAdd(&tt.Data) return nil