| | |
| | | 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(addGoodsOrderDto.getCnt())); |
| | | 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(); |
| | | } |
| | | } |
| | | //不限购 |
| | | if(quotaTime == 0){ |
| | | totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); |
| | | unitPrice = sku.getPresentPrice(); |
| | | }else{ |
| | | //开启抢购,不再时间内,直接原价* 数量 |
| | | totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); |
| | | unitPrice = sku.getOriginalPrice(); |
| | | //抢购时间内,用户购买该商品的数量 |
| | | 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(addGoodsOrderDto.getCnt())); |
| | | 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{ |
| | | //没有开启抢购,直接现价* 数量 |