From 5280158e29fc5c3b0fd5e764410a87de1a996725 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期二, 03 九月 2024 10:00:58 +0800
Subject: [PATCH] 1.优惠券-返回字段添加 2.优惠券-会员定时任务
---
src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java | 3 +
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplatePointVO.java | 44 +++++++++++++-
src/main/java/com/mzl/flower/schedule/ScheduleService.java | 12 ++++
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java | 26 ++++++++
src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java | 35 ++++++++++-
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateUserVO.java | 27 +++++++++
6 files changed, 141 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplatePointVO.java b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplatePointVO.java
index 96d57a3..b2d167c 100644
--- a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplatePointVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplatePointVO.java
@@ -1,15 +1,12 @@
package com.mzl.flower.dto.response.coupon;
-import com.fasterxml.jackson.annotation.JsonFormat;
import com.mzl.flower.base.AbstractTransDTO;
import com.mzl.flower.base.annotation.DictTrans;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
-import java.time.LocalDateTime;
@Data
@ApiModel("积分记录")
@@ -87,4 +84,45 @@
+ /**
+ * 领取后有效类型(COUPON_usage_time_type)天、小时、分钟
+ */
+ @ApiModelProperty(value = "领取后有效类型(COUPON_USAGE_TIME_TYPE)")
+ @DictTrans(target = "usageTimeTypeName",codeType = "COUPON_USAGE_TIME_TYPE")
+ private String usageTimeType;
+
+ /**
+ * 领取后有效时间整数,比如90(天,小时,分钟)
+ */
+ @ApiModelProperty(value = "领取后有效时间整数")
+ private Integer usageTimeNum;
+
+ @ApiModelProperty(value = "使用时间类型(COUPON_USAGE_TYPE)")
+ @DictTrans(target = "usageTypeName",codeType = "COUPON_USAGE_TYPE")
+ private String usageType;
+
+ @ApiModelProperty(value = "使用时间类型")
+ private String usageTypeName;
+
+ @ApiModelProperty(value = "领取后有效类型名称")
+ private String usageTimeTypeName;
+
+ @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
+ @DictTrans(target = "getTypeName",codeType = "COUPON_GET_TYPE")
+ private String getType;
+
+ /**
+ * 领取渠道(COUPON_GET_TYPE)首页弹窗、活动入口、领券中心
+ */
+ @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
+ private String getTypeName;
+
+ /**
+ * 每人限领
+ */
+ @ApiModelProperty(value = "每人限领")
+ private Integer getLimit;
+
+
+
}
diff --git a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateUserVO.java b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateUserVO.java
index b7d4179..b7e4be7 100644
--- a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateUserVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateUserVO.java
@@ -113,4 +113,31 @@
@ApiModelProperty(value = "领取后有效时间整数")
private Integer usageTimeNum;
+
+ @ApiModelProperty(value = "使用时间类型(COUPON_USAGE_TYPE)")
+ @DictTrans(target = "usageTypeName",codeType = "COUPON_USAGE_TYPE")
+ private String usageType;
+
+ @ApiModelProperty(value = "使用时间类型")
+ private String usageTypeName;
+
+ @ApiModelProperty(value = "领取后有效类型名称")
+ private String usageTimeTypeName;
+
+ @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
+ @DictTrans(target = "getTypeName",codeType = "COUPON_GET_TYPE")
+ private String getType;
+
+ /**
+ * 领取渠道(COUPON_GET_TYPE)首页弹窗、活动入口、领券中心
+ */
+ @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
+ private String getTypeName;
+
+ /**
+ * 每人限领
+ */
+ @ApiModelProperty(value = "每人限领")
+ private Integer getLimit;
+
}
diff --git a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java
index c1b88d8..7ed7135 100644
--- a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java
@@ -121,4 +121,30 @@
@ApiModelProperty(value = "会员等级对象")
private Member member;
+
+
+ @ApiModelProperty(value = "使用时间类型(COUPON_USAGE_TYPE)")
+ @DictTrans(target = "usageTypeName",codeType = "COUPON_USAGE_TYPE")
+ private String usageType;
+
+ @ApiModelProperty(value = "使用时间类型")
+ private String usageTypeName;
+
+
+ @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
+ @DictTrans(target = "getTypeName",codeType = "COUPON_GET_TYPE")
+ private String getType;
+
+ /**
+ * 领取渠道(COUPON_GET_TYPE)首页弹窗、活动入口、领券中心
+ */
+ @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
+ private String getTypeName;
+
+ /**
+ * 每人限领
+ */
+ @ApiModelProperty(value = "每人限领")
+ private Integer getLimit;
+
}
diff --git a/src/main/java/com/mzl/flower/schedule/ScheduleService.java b/src/main/java/com/mzl/flower/schedule/ScheduleService.java
index eea6f6f..2a0c3f6 100644
--- a/src/main/java/com/mzl/flower/schedule/ScheduleService.java
+++ b/src/main/java/com/mzl/flower/schedule/ScheduleService.java
@@ -9,6 +9,7 @@
import com.mzl.flower.mapper.flower.FlowerCategoryMapper;
import com.mzl.flower.mapper.partner.PartnerMapper;
import com.mzl.flower.mapper.payment.OrderMapper;
+import com.mzl.flower.service.coupon.CouponRecordService;
import com.mzl.flower.service.flower.FlowerCategoryService;
import com.mzl.flower.service.flower.FlowerService;
import com.mzl.flower.service.payment.*;
@@ -56,6 +57,9 @@
@Autowired
private OrderItemSettlementService orderItemSettlementService;
+
+ @Autowired
+ private CouponRecordService couponRecordService;
@Scheduled(cron = "1 0/20 * * * ?")
public void calculateAvePrice() {
@@ -185,4 +189,12 @@
billService.generateBill(date.plusDays(-1));
log.info("账单结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
}
+
+ @Scheduled(cron = "0 30 0 1 * ?")
+ public void grantVipCouponRecordList() {
+ log.info("会员优惠券开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
+ couponRecordService.grantVipCouponRecordList();
+ log.info("会员优惠券结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
+ }
+
}
diff --git a/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java b/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
index 76e6ee8..bc3a84e 100644
--- a/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
+++ b/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
@@ -6,6 +6,7 @@
import com.mzl.flower.dto.response.coupon.CouponRecordVO;
import com.mzl.flower.entity.coupon.CouponRecordDO;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -72,5 +73,7 @@
*/
void checkCouponExpired(QueryMineCouponRecordDTO dto);
+ boolean checkCurMonVipCouponExists(String couponId, Long customId, LocalDateTime startDateTime,LocalDateTime endDateTime);
+
}
diff --git a/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
index 2de8630..71f0bc9 100644
--- a/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
@@ -32,6 +32,7 @@
import java.time.LocalDateTime;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
+import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -271,11 +272,16 @@
couponRecordDO.setEffectiveStart(firstDayStart);
couponRecordDO.setEffectiveEnd(lastDayEnd);
couponRecordDO.setMemberId(couponTemplateDO.getMemberId());
-
// 创建信息
couponRecordDO.create();
- return couponRecordDO;
- }).collect(Collectors.toList());
+ if(!checkCurMonVipCouponExists(couponRecordDO.getCouponId(),couponRecordDO.getCustomerId(),firstDayStart,lastDayEnd)){
+ return couponRecordDO;
+ }else{
+ return null;
+ }
+
+ }).filter(Objects::nonNull)
+ .collect(Collectors.toList());
// 批量保存等级下的优惠券信息
saveBatch(gradeCouponRecordList);
@@ -395,4 +401,27 @@
// 将未使用的优惠券直接过期
couponRecordMapperCustom.checkCouponExpired(dto);
}
+
+ @Override
+ public boolean checkCurMonVipCouponExists(String couponId, Long customId, LocalDateTime startDateTime, LocalDateTime endDateTime) {
+
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime firstDayStart = now.with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0).withNano(0);
+ LocalDateTime lastDayEnd = now.with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59).withNano(0);
+ if(null==startDateTime){
+ startDateTime=firstDayStart;
+ }
+ if(null==endDateTime){
+ endDateTime=lastDayEnd;
+ }
+
+ QueryWrapper<CouponRecordDO> queryWrapper=new QueryWrapper<>();
+ queryWrapper.lambda().eq(CouponRecordDO::getDeleted,TrueOrFalseEnum.FALSE.isFlag())
+ .eq(CouponRecordDO::getCouponId,couponId)
+ .eq(CouponRecordDO::getCustomerId,customId)
+ .eq(CouponRecordDO::getEffectiveStart,startDateTime)
+ .eq(CouponRecordDO::getEffectiveEnd,endDateTime);
+ return baseMapper.selectCount(queryWrapper)>0;
+
+ }
}
--
Gitblit v1.9.3