diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/CouponDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/CouponDto.java index 4fae54c4..9feaf698 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/CouponDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/CouponDto.java @@ -2,6 +2,8 @@ package cn.ysk.cashier.dto; import lombok.Data; +import java.math.BigDecimal; + @Data public class CouponDto { private Integer shopId; @@ -9,4 +11,5 @@ public class CouponDto { //-1已过期 1未使用 2已使用 private Integer status; private Integer orderId; + private BigDecimal amount; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopCouponServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopCouponServiceImpl.java index 4bcf236e..023a6d64 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopCouponServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopCouponServiceImpl.java @@ -235,70 +235,24 @@ public class TbShopCouponServiceImpl extends ServiceImpl find(CouponDto param) { TbShopUser tbShopUser = shopUserRepository.selectByUserIdAndShopId(param.getUserId().toString(), param.getShopId().toString()); if (param.getOrderId() != null) { - TbOrderInfo tbOrderInfo = orderInfoRepository.findById(param.getOrderId()).orElse(null); - if (tbOrderInfo != null) { - List tbOrderDetails = orderDetailRepository.searchDetailByOrderId(param.getOrderId()); - Set pros = tbOrderDetails.stream().map(TbOrderDetail::getProductId).collect(Collectors.toSet()); - if (CollectionUtil.isNotEmpty(tbOrderDetails)) { - List tbUserCouponVos = inRecordMapper.queryByVipIdAndShopId(tbShopUser.getId(), param.getShopId()); - if (CollectionUtil.isNotEmpty(tbUserCouponVos)) { - String week = DateUtil.dayOfWeekEnum(new Date()).toChinese("周"); - LocalTime now = LocalTime.now(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); + List tbUserCouponVos = inRecordMapper.queryByVipIdAndShopId(tbShopUser.getId(), param.getShopId()); + if (CollectionUtil.isNotEmpty(tbUserCouponVos)) { + String week = DateUtil.dayOfWeekEnum(new Date()).toChinese("周"); + LocalTime now = LocalTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); - //券id 券使用描述 - Map coupons = new HashMap<>(); - for (TbUserCouponVo tbUserCouponVo : tbUserCouponVos) { - if (!coupons.containsKey(tbUserCouponVo.getCouponId())) { - JsonObject json = new JsonObject(); - boolean isUse = true; - TbShopCoupon tbShopCoupon = tbShopCouponmapper.selectById(tbUserCouponVo.getCouponId()); - StringBuilder useRestrictions = new StringBuilder("每天 "); - if (tbShopCoupon.getType().equals(1)) { - if (tbOrderInfo.getOrderAmount().compareTo(tbShopCoupon.getFullAmount()) < 0) { - isUse = false; - } - } - if (StringUtils.isNotBlank(tbShopCoupon.getUserDays())) { - String[] split = tbShopCoupon.getUserDays().split(","); - if (split.length != 7) { - useRestrictions = new StringBuilder(tbShopCoupon.getUserDays() + " "); - } - if (!tbShopCoupon.getUserDays().contains(week)) { - isUse = false; - } - } - if (tbShopCoupon.getUseTimeType().equals("custom")) { - if (now.isBefore(tbShopCoupon.getUseStartTime()) || now.isAfter(tbShopCoupon.getUseEndTime())) { - isUse = false; - } - useRestrictions.append( - tbShopCoupon.getUseStartTime().format(formatter) - + "-" - + tbShopCoupon.getUseEndTime().format(formatter)); - } else { - useRestrictions.append("全时段"); - } - useRestrictions.append(" 可用"); - json.addProperty("isUse", isUse); - json.addProperty("useRestrictions", useRestrictions.toString()); - - coupons.put(tbUserCouponVo.getCouponId(), json); - } - JsonObject couponJson = coupons.get(tbUserCouponVo.getCouponId()); - tbUserCouponVo.setUseRestrictions(couponJson.get("useRestrictions").toString()); - if (tbUserCouponVo.getType().equals(1)) { - tbUserCouponVo.setUse(couponJson.get("isUse").getAsBoolean()); - } else if (tbUserCouponVo.getType().equals(2) && couponJson.get("isUse").getAsBoolean()) { - if (!pros.contains(tbUserCouponVo.getProId())) { - tbUserCouponVo.setUse(false); - } - } - } - tbUserCouponVos.sort(Comparator.comparing(TbUserCouponVo::isUse).reversed().thenComparing(TbUserCouponVo::getExpireTime)); - return new ResponseEntity<>(tbUserCouponVos, HttpStatus.OK); + //券id 券使用描述 + Map coupons = new HashMap<>(); + for (TbUserCouponVo tbUserCouponVo : tbUserCouponVos) { + if (!coupons.containsKey(tbUserCouponVo.getCouponId())) { + setCouponInfo(coupons, tbUserCouponVo, null, week ,now, formatter); } + JsonObject couponJson = coupons.get(tbUserCouponVo.getCouponId()); + tbUserCouponVo.setUseRestrictions(couponJson.get("useRestrictions").toString()); + tbUserCouponVo.setUse(couponJson.get("isUse").getAsBoolean()); } + tbUserCouponVos.sort(Comparator.comparing(TbUserCouponVo::isUse).reversed().thenComparing(TbUserCouponVo::getExpireTime)); + return new ResponseEntity<>(tbUserCouponVos, HttpStatus.OK); } } return new ResponseEntity<>(HttpStatus.OK); @@ -321,7 +275,7 @@ public class TbShopCouponServiceImpl extends ServiceImpl(){{ + return new HashMap() {{ put("fullReductionCoupon", fullReductionCoupon); put("productCoupon", productCoupon); }};