From efb6f9d656f72c3016d738f079c92de021b9f14f Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期三, 04 十二月 2024 10:04:41 +0800 Subject: [PATCH] 1.常规配置-基本配置 2.分类-修改分类名称批量修改商品名称 --- src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java | 62 ++++++++++++++++++++++++++++--- 1 files changed, 56 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java b/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java index aebc889..b09c467 100644 --- a/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java +++ b/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java @@ -40,6 +40,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -264,6 +265,7 @@ List<CouponRecordDO> couponUsageDOList = couponTemplateCustomerDOList.stream().map(pointCustomRe -> { CouponRecordDO couponRecordDO = new CouponRecordDO(); + couponRecordDO.setId(IdUtil.simpleUUID()); couponRecordDO.setCouponId(pointCustomRe.getCouponId()); couponRecordDO.setCustomerId(pointCustomRe.getCustomId()); @@ -290,7 +292,9 @@ couponRecordDO.setCouponDiscountType(couponTemplateDO.getCouponDiscountType()); couponRecordDO.setGetUserType(couponTemplateDO.getGetUserType()); couponRecordDO.setPoint(couponTemplateDO.getPoint()); - couponRecordDO.setMemberId(couponRecordDO.getMemberId()); + couponRecordDO.setMemberId(couponTemplateDO.getMemberId()); + couponRecordDO.setImageUrl(couponTemplateDO.getImageUrl()); + couponRecordDO.setCouponDescription(couponTemplateDO.getCouponDescription()); // 创建相关信息 couponRecordDO.create(SecurityUtils.getUserId()); @@ -419,7 +423,9 @@ if(couponTemplateDO==null){ throw new ValidationException("优惠券不存在"); } - + if(couponTemplateDO.getCouponAmount()<=0 ){ + throw new ValidationException("优惠券已兑换完"); + } CustomerPoint cp = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>() .eq(CustomerPoint::getUserId, SecurityUtils.getUserId())); if(cp == null || (cp.getTotalPoint()-cp.getUsedPoint()-cp.getExpiredPoint()- cp.getExpiredPoint()) < couponTemplateDO.getPoint() * dto.getNum()){ @@ -437,6 +443,10 @@ recordDTO.setCustomerId(customer.getId()); couponRecordService.createCouponRecord(recordDTO); +// //更新优惠券数量 +// couponTemplateDO.setCouponAmount(couponTemplateDO.getCouponAmount()-dto.getNum()); +// couponTemplateService.updateById(couponTemplateDO); + //更新积分汇总 cp.setUsedPoint(cp.getUsedPoint()+couponTemplateDO.getPoint()); customerPointMapper.updateById(cp); @@ -452,8 +462,6 @@ detail.setRemarks(couponTemplateDO.getCouponName()); detail.create(SecurityUtils.getUserId()); customerPointDetailMapper.insert(detail); - }catch (Exception e){ - throw new ValidationException("兑换失败"); }finally { lockService.releaseObjectLock(key,""); } @@ -483,9 +491,51 @@ } @Override - public List<CouponTemplateVO> getActivityEffectList(QueryActivityEffectCouponDTO dto) { + public boolean expireActivityCouponTemplateAll() { - return couponTemplateMapperCustom.getActivityEffectList(dto); + return couponTemplateMapperCustom.expireActivityCouponTemplateAll()>0; + } + + @Override + public List<CouponTemplateVO> getActivityEffectListWithMine(QueryActivityEffectCouponDTO dto) { + // 1.点击领取,优惠券状态变成灰色+已领取(根据web端优惠券限领次数判断) + //2.把已领取的优惠券按照领取时间排列到最下面 + List<CouponTemplateVO> list= couponTemplateMapperCustom.getActivityEffectListWithMine(dto); + + // 将列表分为已经领取和未领取的,根据getYetFlag来判断,下面的所有操作都要判空 + if(CollectionUtils.isNotEmpty(list)){ + // 遍历列表,查看当前的优惠券是否已经达到领取次数,如果是则为true,不是为false + list.forEach(item->{ + if (item != null) { + item.setGetYetFlag(false); + if (null != item.getGetNum() && null != item.getGetLimit() && item.getGetNum() >= item.getGetLimit()) { + item.setGetYetFlag(true); + } + } + }); + List<CouponTemplateVO> getYetList = list.stream().filter(item->item.getGetYetFlag()).collect(Collectors.toList()); + List<CouponTemplateVO> getNotYetList = list.stream().filter(item->!item.getGetYetFlag()).collect(Collectors.toList()); + list.clear(); + if(CollectionUtils.isNotEmpty(getNotYetList)){ + // 将未领取的根据create_time 倒序排序 + getNotYetList.sort(Comparator.comparing(CouponTemplateVO::getCreateTime).reversed()); + // 将未领取和已领取的合并成新list返回 + list.addAll(getNotYetList); + } + if(CollectionUtils.isNotEmpty(getYetList)){ + // 将已经领取的根据recordCreateTime 时间正序排 + getYetList.sort(Comparator.comparing(CouponTemplateVO::getRecordCreateTime)); + list.addAll(getYetList); + } + return list; + } + + return new ArrayList<>(); + } + + @Override + public List<CouponTemplateVO> getActivityEffectList(QueryActivityEffectCouponDTO dto) { + return couponTemplateMapperCustom.getActivityEffectListWithMine(dto); } } -- Gitblit v1.9.3