diff --git a/modules/shop/api_buy.go b/modules/shop/api_buy.go index 878f5e912..941e3aad6 100644 --- a/modules/shop/api_buy.go +++ b/modules/shop/api_buy.go @@ -115,12 +115,24 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ShopBuyReq) (errdata return } } - need = make([]*cfg.Gameatn, len(conf.Need)) - for i, v := range conf.Need { - need[i] = &cfg.Gameatn{ - A: v.A, - T: v.T, - N: int32(math.Ceil(float64(v.N)*float64(conf.Sale)/float64(1000))) * req.BuyNum, + + if egood, ok := record.Preview[good.Id]; ok { + need = make([]*cfg.Gameatn, len(conf.Need)) + for i, v := range egood.Need { + need[i] = &cfg.Gameatn{ + A: v.A, + T: v.T, + N: v.N, + } + } + } else { + need = make([]*cfg.Gameatn, len(conf.Need)) + for i, v := range conf.Need { + need[i] = &cfg.Gameatn{ + A: v.A, + T: v.T, + N: int32(math.Ceil(float64(v.N)*float64(conf.Sale)/float64(1000))) * req.BuyNum, + } } }