From cb4e092579de93dae99b39bd104410b7e58040d4 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 14 一月 2025 11:23:58 +0800 Subject: [PATCH] 12.18 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java | 50 +++++++++++++++++++++++++++----------------------- 1 files changed, 27 insertions(+), 23 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java index 97fa4c6..549f8b3 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java @@ -1,8 +1,9 @@ package com.ruoyi.account.service.impl; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.account.api.vo.CouponInfoVo; +import com.ruoyi.account.api.vo.PaymentUserCouponVo; import com.ruoyi.account.mapper.UserCouponMapper; import com.ruoyi.account.api.model.UserCoupon; import com.ruoyi.account.service.UserCouponService; @@ -11,11 +12,14 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.math.BigDecimal; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; + +import static org.aspectj.util.LangUtil.split; /** * <p> @@ -36,46 +40,46 @@ /** * 获取支付页面的优惠券列表数据 * @param userId - * @param orderMoney * @return */ @Override - public List<CouponInfoVo> getUserCoupon(Long userId, BigDecimal orderMoney, Integer type) { + public List<PaymentUserCouponVo> getUserCoupon(Long userId, Integer type) { List<UserCoupon> list = this.list(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getAppUserId, userId).eq(UserCoupon::getDelFlag, 0) - .last(" and now() between start_time and end_time")); + .isNull(UserCoupon::getUseTime).gt(UserCoupon::getEndTime, LocalDateTime.now()).last(" and now() between start_time and end_time")); List<Integer> couponIds = list.stream().map(UserCoupon::getCouponId).collect(Collectors.toList()); if(couponIds.size() == 0){ return null; } List<CouponInfo> couponInfoList = couponInfoClient.getCouponInfoList(couponIds).getData(); //构建返回数据 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - List<CouponInfoVo> infoVoList = new ArrayList<>(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + List<PaymentUserCouponVo> infoVoList = new ArrayList<>(); for (UserCoupon userCoupon : list) { CouponInfo couponInfo = couponInfoList.stream().filter(s -> s.getId().equals(userCoupon.getCouponId())).findFirst().get(); - CouponInfoVo couponInfoVo = new CouponInfoVo(); - couponInfoVo.setId(userCoupon.getId()); + //排除商品券(商品券线下领取) + if(4 == couponInfo.getCouponType()){ + continue; + } + PaymentUserCouponVo couponInfoVo = new PaymentUserCouponVo(); + couponInfoVo.setId(userCoupon.getId().toString()); couponInfoVo.setName(couponInfo.getCouponName()); couponInfoVo.setCouponType(couponInfo.getCouponType()); couponInfoVo.setConditionAmount(couponInfo.getConditionAmount()); couponInfoVo.setDiscountAmount(couponInfo.getDiscountAmount()); couponInfoVo.setMoneyAmount(couponInfo.getMoneyAmount()); couponInfoVo.setDiscount(couponInfo.getDiscount()); - couponInfoVo.setPeriodEndTime(couponInfo.getPeriodStartTime().format(formatter)); - couponInfoVo.setPeriodEndTime(couponInfo.getPeriodEndTime().format(formatter)); + if(null != couponInfo.getPeriodStartTime()){ + couponInfoVo.setPeriodStartTime(couponInfo.getPeriodStartTime().atTime(0, 0, 0).format(formatter)); + couponInfoVo.setPeriodEndTime(couponInfo.getPeriodEndTime().atTime(23, 59, 59).format(formatter)); + } + String forGoodIds = couponInfo.getForGoodIds(); + String[] split = forGoodIds.split(","); + if("-1".equals(forGoodIds)){ + couponInfoVo.setForGoodIds(null); + }else{ + couponInfoVo.setForGoodIds(Arrays.asList(split)); + } couponInfoVo.setAvailable(false); - //满减券 - if(1 == couponInfo.getCouponType() && orderMoney.compareTo(couponInfo.getConditionAmount()) >= 0){ - couponInfoVo.setAvailable(true); - } - //代金券和折扣券 - if(2 == couponInfo.getCouponType() || 3 == couponInfo.getCouponType()){ - couponInfoVo.setAvailable(true); - } - //商品券 - if(4 == couponInfo.getCouponType() && 2 == type){ - couponInfoVo.setAvailable(true); - } infoVoList.add(couponInfoVo); } return infoVoList; -- Gitblit v1.7.1