From b676641e11008cb05b4e595850dbbf617fb7da56 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期四, 29 八月 2024 17:37:06 +0800
Subject: [PATCH] 1.积分优惠券-获取全部已发布的优惠券
---
src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java | 11 +++++
src/main/java/com/mzl/flower/web/v2/coupon/CouponRecordController.java | 4 +-
src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java | 36 ++++++++++++++---
src/main/java/com/mzl/flower/dto/request/coupon/QueryExistCouponDTO.java | 19 +++++++++
src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplatePointController.java | 10 +++++
src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponDTO.java | 3 +
src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml | 13 ++++--
7 files changed, 81 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponDTO.java b/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponDTO.java
index 105e331..1ea37c0 100644
--- a/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponDTO.java
@@ -26,4 +26,7 @@
@ApiModelProperty(value = "优惠券种类(活动优惠券、用户优惠券、会员优惠券,积分优惠券)")
private String category;
+ @ApiModelProperty(value = "优惠券状态")
+ private String status;
+
}
diff --git a/src/main/java/com/mzl/flower/dto/request/coupon/QueryExistCouponDTO.java b/src/main/java/com/mzl/flower/dto/request/coupon/QueryExistCouponDTO.java
new file mode 100644
index 0000000..bc9145b
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/QueryExistCouponDTO.java
@@ -0,0 +1,19 @@
+package com.mzl.flower.dto.request.coupon;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class QueryExistCouponDTO {
+
+ @ApiModelProperty(value = "优惠券ID")
+ private String customerId;
+
+ @ApiModelProperty(value = "优惠券ID")
+ private String couponId;
+
+ @ApiModelProperty(value = "优惠券种类(活动优惠券、用户优惠券、会员优惠券,积分优惠券)")
+ private String category;
+
+}
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 a4b5162..8ae3a4d 100644
--- a/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
+++ b/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
@@ -1,12 +1,13 @@
package com.mzl.flower.service.coupon;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
import com.mzl.flower.dto.request.coupon.CreateCouponRecordDTO;
import com.mzl.flower.dto.request.coupon.QueryCouponRecordDTO;
import com.mzl.flower.dto.request.coupon.QueryCouponStatisticsBO;
+import com.mzl.flower.dto.request.coupon.QueryExistCouponDTO;
import com.mzl.flower.dto.response.coupon.CouponRecordVO;
import com.mzl.flower.entity.coupon.CouponRecordDO;
-import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -49,4 +50,12 @@
int statisCouponTemplateCurMonCount(QueryCouponStatisticsBO queryCouponStatisticsBO);
int statisCouponPointCurMonPontAmonut(QueryCouponStatisticsBO queryCouponStatisticsBO);
+
+ /**
+ * 根据优惠券种类,优惠券ID,用户的ID查找优惠券的记录数量
+ * @param queryExistCouponDTO
+ * @return
+ */
+ int getExistCouponAmount(QueryExistCouponDTO queryExistCouponDTO);
+
}
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 de6d5f1..222f64b 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
@@ -9,15 +9,13 @@
import com.mzl.flower.dto.request.coupon.CreateCouponRecordDTO;
import com.mzl.flower.dto.request.coupon.QueryCouponRecordDTO;
import com.mzl.flower.dto.request.coupon.QueryCouponStatisticsBO;
+import com.mzl.flower.dto.request.coupon.QueryExistCouponDTO;
import com.mzl.flower.dto.response.coupon.CouponRecordVO;
import com.mzl.flower.entity.coupon.CouponRecordDO;
import com.mzl.flower.entity.coupon.CouponTemplateDO;
import com.mzl.flower.entity.customer.Customer;
import com.mzl.flower.entity.system.User;
-import com.mzl.flower.enums.CouponCategoryEnum;
-import com.mzl.flower.enums.CouponUsageTimeTypeEnum;
-import com.mzl.flower.enums.CouponUsageTypeEnum;
-import com.mzl.flower.enums.CouponUsedStatusEnum;
+import com.mzl.flower.enums.*;
import com.mzl.flower.mapper.coupon.CouponRecordMapper;
import com.mzl.flower.mapper.coupon.CouponRecordMapperCustom;
import com.mzl.flower.mapper.customer.CustomerMapper;
@@ -74,14 +72,27 @@
throw new ValidationException("商户信息不存在");
}
+ final CouponTemplateDO couponTemplateDO = couponTemplateService.getById(dto.getCouponId());
+
+ // TODO 活动优惠券和积分优惠券需要根据库存来控制- 根据优惠券的发放数量来控制有没有超发
+
+
+ // TODO 根据用户领取设置的getLimit 查看当前用户是否已经超领优惠券
+
+
CouponRecordDO couponRecordDO=new CouponRecordDO();
BeanUtils.copyProperties(dto,couponRecordDO);
couponRecordDO.create(SecurityUtils.getUserId());
// 设置为待使用状态
couponRecordDO.setStatus(CouponUsedStatusEnum.UNUSED.getType());
+ // 根据商户设置用户id
+ if(StringUtils.isBlank(dto.getUserId()) && StringUtils.isNotBlank(customer.getUserId())){
+ couponRecordDO.setUserId(customer.getUserId());
+ }
+
// 优惠券字段冗余
- final CouponTemplateDO couponTemplateDO = couponTemplateService.getById(dto.getCouponId());
+
if(null!=couponTemplateDO){
couponRecordDO.setCategory(couponTemplateDO.getGetUserType());
couponRecordDO.setCouponCode(couponTemplateDO.getCouponCode());
@@ -125,11 +136,11 @@
}
if (couponTemplateDO.getUsageTimeType().equals(CouponUsageTimeTypeEnum.HOUR.getType())) {
// 小时
- couponRecordDO.setEffectiveEnd(currentTime.plusDays(couponTemplateDO.getUsageTimeNum()));
+ couponRecordDO.setEffectiveEnd(currentTime.plusHours(couponTemplateDO.getUsageTimeNum()));
}
if (couponTemplateDO.getUsageTimeType().equals(CouponUsageTimeTypeEnum.MINUTE.getType())) {
// 分钟
- couponRecordDO.setEffectiveEnd(currentTime.plusDays(couponTemplateDO.getUsageTimeNum()));
+ couponRecordDO.setEffectiveEnd(currentTime.plusMinutes(couponTemplateDO.getUsageTimeNum()));
}
}
@@ -285,4 +296,15 @@
public int statisCouponPointCurMonPontAmonut(QueryCouponStatisticsBO queryCouponStatisticsBO) {
return couponRecordMapperCustom.statisCouponPointCurMonPointAmonut(queryCouponStatisticsBO);
}
+
+ @Override
+ public int getExistCouponAmount(QueryExistCouponDTO dto) {
+ QueryWrapper<CouponRecordDO> queryWrapper=new QueryWrapper<>();
+ queryWrapper.lambda().eq(CouponRecordDO::getDeleted, TrueOrFalseEnum.FALSE.isFlag())
+ .eq(StringUtils.isNotBlank(dto.getCouponId()), CouponRecordDO::getCouponId,dto.getCouponId())
+ .eq(StringUtils.isNotBlank(dto.getCustomerId()),CouponRecordDO::getCustomerId,dto.getCustomerId())
+ .eq(StringUtils.isNotBlank(dto.getCategory()),CouponRecordDO::getCategory,dto.getCategory());
+
+ return baseMapper.selectCount(queryWrapper);
+ }
}
diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponRecordController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponRecordController.java
index 8a137ef..9cd7758 100644
--- a/src/main/java/com/mzl/flower/web/v2/coupon/CouponRecordController.java
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponRecordController.java
@@ -52,10 +52,10 @@
throw new ValidationException("优惠券不存在");
}
- if(StringUtils.isNotBlank(couponTemplateDO.getStatus()) && !couponTemplateDO.getStatus().equals(CouponStatusEnum.INACTIVE.getStatus())){
+ if(StringUtils.isNotBlank(couponTemplateDO.getStatus()) && couponTemplateDO.getStatus().equals(CouponStatusEnum.INACTIVE.getStatus())){
throw new ValidationException("优惠券还未发布");
}
- if(StringUtils.isNotBlank(couponTemplateDO.getStatus()) && !couponTemplateDO.getStatus().equals(CouponStatusEnum.EXPIRED.getStatus())){
+ if(StringUtils.isNotBlank(couponTemplateDO.getStatus()) && couponTemplateDO.getStatus().equals(CouponStatusEnum.EXPIRED.getStatus())){
throw new ValidationException("优惠券已下架");
}
diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplatePointController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplatePointController.java
index 5fbb65b..2d943f5 100644
--- a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplatePointController.java
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplatePointController.java
@@ -11,6 +11,7 @@
import com.mzl.flower.dto.response.coupon.CouponTemplateVO;
import com.mzl.flower.entity.coupon.CouponTemplateDO;
import com.mzl.flower.enums.CouponCategoryEnum;
+import com.mzl.flower.enums.CouponStatusEnum;
import com.mzl.flower.enums.CouponTypeEnum;
import com.mzl.flower.enums.CouponUsageTypeEnum;
import com.mzl.flower.service.coupon.CouponTemplateService2;
@@ -190,6 +191,15 @@
return returnData(R.SUCCESS.getCode(), ConverterUtil.transObject(couponTemplateVO, CouponTemplatePointVO.class));
}
+ @GetMapping("/active/list")
+ @ApiOperation(value = "查询-全部", notes = "查询-全部")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> activelist() {
+ // 设置只查询积分优惠券的
+ QueryCouponDTO dto=new QueryCouponDTO();
+ dto.setCategory(CouponCategoryEnum.POINT.getStatus());
+ dto.setStatus(CouponStatusEnum.ACTIVE.getStatus());
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponTemplateService.getList(dto), CouponTemplatePointVO.class));
+ }
private void valid(CreateCouponTemplatePointDTO dto){
diff --git a/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml b/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
index 62f1f26..11af393 100644
--- a/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
+++ b/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
@@ -70,11 +70,11 @@
create_by_user.nick_name as createByName,
IFNULL(get_num.cnt, 0) as getNum,
IFNULL(t.coupon_amount, 0) - IFNULL(get_num.cnt, 0) as unGetNum
- from t_coupon_template t
- left join t_user create_by_user
- on t.create_by =create_by_user.id
- left join (select coupon_template_id,count(1) as cnt from t_coupon_usage where deleted=0 group by coupon_template_id) get_num
- on t.id=get_num.coupon_template_id
+ from t_coupon_template t
+ left join t_user create_by_user
+ on t.create_by =create_by_user.id
+ left join (select coupon_id,count(1) as cnt from t_coupon_record where deleted=0 group by coupon_id) get_num
+ on t.id=get_num.coupon_id
) t
where t.deleted=0
<if test="param.name != null and param.name != ''">
@@ -95,6 +95,9 @@
<if test="param.category != null and param.category != ''">
AND t.category = #{param.category}
</if>
+ <if test="param.status != null and param.status != ''">
+ AND t.status = #{param.status}
+ </if>
order by t.create_time desc
</sql>
--
Gitblit v1.9.3