From 0561b12e8c5570a0f7e812543cc3460f80fee416 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 11 Nov 2021 10:29:28 +0800 Subject: [PATCH] 20211108 --- gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java | 53 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 40 insertions(+), 13 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 dd4d79c..cadc24b 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 @@ -65,9 +65,10 @@ String name = StrUtil.isEmpty(model.getName())?model.getName():StringUtils.encode(model.getName()); String orderNo = model.getOrderNo(); List<Integer> status = new ArrayList<>(); - if(CollUtil.isNotEmpty(status)){ + if(CollUtil.isNotEmpty(model.getStatus())){ status = model.getStatus(); - }else{ + } + if(CollUtil.isEmpty(model.getStatus())){ status.add(1); status.add(2); status.add(3); @@ -209,15 +210,15 @@ throw new RestException(-3, "商品不存在或已下架"); } - if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) { - if (new Date().before(goods.getQgStartTime())) { - throw new RestException(-3, "抢购未开始"); - } - - if (new Date().after(goods.getQgEndTime())) { - throw new RestException(-3, "抢购已结束"); - } - } +// if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) { +// if (new Date().before(goods.getQgStartTime())) { +// throw new RestException(-3, "抢购未开始"); +// } +// +// if (new Date().after(goods.getQgEndTime())) { +// throw new RestException(-3, "抢购已结束"); +// } +// } if (addGoodsOrderDto.getCnt() > sku.getStock()) { throw new RestException(-3, "库存不足"); @@ -228,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, "积分不足"); @@ -270,8 +297,8 @@ if (StrUtil.isNotBlank(addressInfo.getTagName())) { address.append(StrUtil.isNotBlank(addressInfo.getHouseName()) ? addressInfo.getHouseName() : ""); if (Constants.ADDRESS_TYPE_HOME.equals(addressInfo.getTagName())) { - address.append(StrUtil.isNotBlank(addressInfo.getHouseNumber()) ? addressInfo.getHouseNumber() : ""); address.append(StrUtil.isNotBlank(addressInfo.getUnitName()) ? addressInfo.getUnitName() : ""); + address.append(StrUtil.isNotBlank(addressInfo.getHouseNumber()) ? addressInfo.getHouseNumber() : ""); } } expressInfo.setAddress(address.toString()); -- Gitblit v1.9.1