From 9104a1017eaa005078aa2038e717a5a9417a84d1 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 28 Nov 2024 15:35:17 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E4=BF=AE=E6=94=B9=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8=E8=8C=83=E5=9B=B4=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=95=86?= =?UTF-8?q?=E5=93=81=E9=80=89=E9=A1=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit c1157273 --- .../modules/common/entity/CouponEntity.java | 4 +- .../service/impl/CouponServiceImpl.java | 64 ++++++++----------- 2 files changed, 29 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/peanut/modules/common/entity/CouponEntity.java b/src/main/java/com/peanut/modules/common/entity/CouponEntity.java index 31c5e0c4..b3c86945 100644 --- a/src/main/java/com/peanut/modules/common/entity/CouponEntity.java +++ b/src/main/java/com/peanut/modules/common/entity/CouponEntity.java @@ -20,10 +20,10 @@ public class CouponEntity { //优惠券类型 0现金 1折扣 private Integer couponType; - //优惠卷范围 0无限制 1课程卷 2课程品类卷 3全部课程 4商品 5全部商品 + //优惠卷范围 0无限制 1课程卷 2课程品类卷 private Integer couponRange; - //范围详情(课程卷是课程id,分割 课程品类卷是课程分类根id,分割;商品id,分割) + //范围详情(课程卷是课程id,分割;课程品类卷是课程分类根id) private String rangeInfo; //优惠券名称 diff --git a/src/main/java/com/peanut/modules/common/service/impl/CouponServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/CouponServiceImpl.java index 67c51461..cf2899d4 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/CouponServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/CouponServiceImpl.java @@ -18,7 +18,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; -import java.util.stream.Collectors; @Slf4j @Service("commonCouponService") @@ -62,8 +61,12 @@ public class CouponServiceImpl extends ServiceImpl impl list.add(courseMedicineDao.selectOne(new LambdaQueryWrapper() .eq(CourseMedicine::getId,Integer.parseInt(str)) .select(CourseMedicine::getId,CourseMedicine::getTitle))); - }else if(couponEntity.getCouponRange()==4){ - list.add(shopProductDao.selectById(Integer.parseInt(str))); + }else if(couponEntity.getCouponRange()==3){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.leftJoin(CourseEntity.class,CourseEntity::getId,CourseToMedicine::getCourseId); + wrapper.selectAll(CourseEntity.class); + wrapper.select(CourseEntity::getId,CourseEntity::getTitle,CourseEntity::getImage); + list.addAll(courseToMedicineDao.selectJoinList(CourseEntity.class,wrapper)); } } } @@ -132,36 +135,32 @@ public class CouponServiceImpl extends ServiceImpl impl couponHistory.setCanUseReason("优惠券使用时间未到"); } } - Set allProductIds = new HashSet<>(); - //校验订单门槛 - BigDecimal totalAmount = new BigDecimal(0); - //"shopProductInfos":"1:69:1,2:79:1"//商品id:价格:数量 - String shopProductInfos = params.get("shopProductInfos").toString(); - String[] infos = shopProductInfos.split(","); - for (String shopProductInfo : infos) { - String[] info = shopProductInfo.split(":"); - allProductIds.add(Integer.parseInt(info[0])); - BigDecimal amount = new BigDecimal(info[1]).multiply(new BigDecimal(info[2])); - totalAmount = totalAmount.add(amount); - } - if (new BigDecimal(couponEntity.getUseLevel()).compareTo(totalAmount)>0){ - couponHistory.setCanUse(0); - couponHistory.setCanUseReason("优惠券未到使用门槛"); - } - if (couponEntity.getCouponAmount().compareTo(totalAmount)>0){ - couponHistory.setCanUse(0); - couponHistory.setCanUseReason("优惠券面额大于商品价值"); - } couponHistory.setCouponEntity(couponEntity); if (couponEntity.getCouponRange()==0){ //无限制 res.add(couponHistory); }else { - //通过优惠卷获取商品 - Set set = getShopProductByCoupon(couponEntity); - //比对用户优惠卷是否有此商品 - if(!set.addAll(allProductIds)){ - res.add(couponHistory); + //课程券和课程分类券 + //"shopProductInfos":"1:69:1,2:79:1"//商品id:价格:数量 + String shopProductInfos = params.get("shopProductInfos").toString(); + String[] infos = shopProductInfos.split(","); + for (String shopProductInfo : infos) { + String[] info = shopProductInfo.split(":"); + //通过优惠卷获取商品 + Set set = getShopProductByCoupon(couponEntity); + //比对用户优惠卷是否有此商品 + if(!set.add(Integer.parseInt(info[0]))){ + BigDecimal totalAmount = new BigDecimal(info[1]).multiply(new BigDecimal(info[2])); + if (new BigDecimal(couponEntity.getUseLevel()).compareTo(totalAmount)>0){ + couponHistory.setCanUse(0); + couponHistory.setCanUseReason("优惠券未到使用门槛"); + } + if (couponEntity.getCouponAmount().compareTo(totalAmount)>0){ + couponHistory.setCanUse(0); + couponHistory.setCanUseReason("优惠券面额大于商品价值"); + } + res.add(couponHistory); + } } } } @@ -202,15 +201,6 @@ public class CouponServiceImpl extends ServiceImpl impl for (ShopProductCourseEntity shopProductCourseEntity : shopProductCourseList) { set.add(shopProductCourseEntity.getProductId()); } - }else if (couponEntity.getCouponRange()==4) { - //4商品 - String[] productIds = couponEntity.getRangeInfo().split(","); - for (String productId : productIds) { - set.add(Integer.parseInt(productId)); - } - }else if (couponEntity.getCouponRange()==5) { - //5全部商品 - set.addAll(shopProductDao.selectList(new LambdaQueryWrapper<>()).stream().map(ShopProduct::getProductId).collect(Collectors.toList())); } return set; }