xiaoyong931011
2021-11-11 f304d0d023e34bda1250d93c68d42ffbf217c4e2
gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
@@ -230,6 +230,7 @@
        }
        BigDecimal totalPrice = BigDecimal.ZERO;
        BigDecimal unitPrice = BigDecimal.ZERO;
        if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) {
            //限购数量
            Integer quotaTime = goods.getQuotaTime() == null ? 0:goods.getQuotaTime();
@@ -240,21 +241,26 @@
            if(goods.getQgStartTime().before(new Date()) && goods.getQgEndTime().after(new Date())){
                if(addGoodsOrderDto.getCnt() <= quotaTime){
                    totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(quotaTime));
                    unitPrice = sku.getPresentPrice();
                }else{
                    if(quotaTime > 0){
                        totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(quotaTime)).add(
                                sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()-quotaTime)));
                        unitPrice = totalPrice.divide(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
                    }else{
                        totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
                        unitPrice = sku.getOriginalPrice();
                    }
                }
            }else{
                //开启抢购,不再时间内,直接原价* 数量
                totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
                unitPrice = sku.getOriginalPrice();
            }
        }else{
            //没有开启抢购,直接现价* 数量
            totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
            unitPrice = sku.getPresentPrice();
        }
        BigDecimal score = new BigDecimal(accountInfo.getCollectScore());
        if (score.compareTo(totalPrice) < 0) {
@@ -279,7 +285,8 @@
        orderDetails.setOrderId(order.getId());
        orderDetails.setCnt(addGoodsOrderDto.getCnt());
        orderDetails.setTotalPrice(totalPrice);
        orderDetails.setUnitPrice(sku.getPresentPrice());
//        orderDetails.setUnitPrice(sku.getPresentPrice());
        orderDetails.setUnitPrice(unitPrice);
        orderDetails.setGoodsId(goods.getId());
        orderDetails.setSkuId(sku.getId());
        orderDetails.setThumb(goods.getThumb());