From e497a05ce312d26864b0c23cad97da9eb32c2cc1 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 10 Nov 2021 16:01:34 +0800 Subject: [PATCH] Merge branch 'score-shop' of http://120.27.238.55:7000/r/xzx into score-shop --- gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletions(-) diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java index 1173d7d..20729e4 100644 --- a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java +++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java @@ -229,7 +229,33 @@ throw new RestException(-3, "积分不足"); } - BigDecimal totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); + BigDecimal totalPrice = BigDecimal.ZERO; + if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) { + //限购数量 + Integer quotaTime = goods.getQuotaTime() == null ? 0:goods.getQuotaTime(); + //抢购时间内,用户购买该商品的数量 + Integer sumCnt = scoreOrderMapper.selectGoodsQuotaTime(addGoodsOrderDto.getUserId(),goods.getId(),goods.getQgStartTime(),goods.getQgEndTime()); + //剩余限购数量 + quotaTime = quotaTime-sumCnt; + if(goods.getQgStartTime().before(new Date()) && goods.getQgEndTime().after(new Date())){ + if(addGoodsOrderDto.getCnt() <= quotaTime){ + totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(quotaTime)); + }else{ + if(quotaTime > 0){ + totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(quotaTime)).add( + sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()-quotaTime))); + }else{ + totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); + } + } + }else{ + //开启抢购,不再时间内,直接原价* 数量 + totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); + } + }else{ + //没有开启抢购,直接现价* 数量 + totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); + } BigDecimal score = new BigDecimal(accountInfo.getCollectScore()); if (score.compareTo(totalPrice) < 0) { throw new RestException(-3, "积分不足"); -- Gitblit v1.9.1