| | |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.convert.Convert; |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.fasterxml.jackson.databind.DeserializationFeature; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | |
| | | } |
| | | // scoreOrder.setStatus(ScoreOrder.STATUS_DONE); |
| | | scoreOrder.setIsFinish(ScoreOrder.ISFINISH_YES); |
| | | scoreOrder.setIsFinishTime(new Date()); |
| | | scoreOrder.setVoucherImg(CollUtil.join(model.getVoucherImgs(),",")); |
| | | scoreOrderMapper.updateByPrimaryKeySelective(scoreOrder); |
| | | return scoreOrder.getId(); |
| | |
| | | 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)); |
| | | 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 = sku.getOriginalPrice(); |
| | | }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{ |
| | | //没有开启抢购,直接现价* 数量 |
| | |
| | | statisticsVo.setTotalBuyCnt(Integer.parseInt(allData.get("totalBuy").toString())); |
| | | return statisticsVo; |
| | | } |
| | | |
| | | public void autoConfirmReceipt() { |
| | | //获取七天之前后台点击确认提货的订单 |
| | | DateTime dateTime = DateUtil.offsetDay(new Date(), -7); |
| | | // |
| | | List<ScoreOrder> orders = scoreOrderMapper.selectOrderByIsFinish(dateTime); |
| | | if(CollUtil.isNotEmpty(orders)){ |
| | | for(ScoreOrder order : orders){ |
| | | scoreOrderMapper.updateOrderStatusToDone(order.getId()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | // public static void main(String[] args) { |
| | | // DateTime dateTime = DateUtil.offsetDay(new Date(), -7); |
| | | // System.out.println(dateTime); |
| | | // } |
| | | |
| | | } |