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)