From b1bb9bcbe6a451855a298478a6d9690183e2e991 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期五, 30 八月 2024 14:33:50 +0800
Subject: [PATCH] 1.优惠券customerId 改成Long
---
src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java | 11 ++
src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponDTO.java | 4
src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateUserDTO.java | 2
src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponVipDTO.java | 2
src/main/java/com/mzl/flower/dto/request/coupon/QueryActivityEffectCouponDTO.java | 29 +++++++
src/main/java/com/mzl/flower/service/coupon/CouponTemplateService2.java | 9 ++
src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java | 53 ++++++++++++-
src/main/java/com/mzl/flower/dto/request/coupon/QueryExistCouponDTO.java | 4
src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateAppController.java | 77 +++++++++++++++++++
src/main/java/com/mzl/flower/enums/CouponGetTypeEnum.java | 27 ++++++
src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java | 3
src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java | 6 +
src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml | 5 +
13 files changed, 220 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateUserDTO.java b/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateUserDTO.java
index 01a29b8..5d34ca0 100644
--- a/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateUserDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateUserDTO.java
@@ -72,6 +72,6 @@
@ApiModelProperty(value = "指定的用户列表id")
@NotNull(message = "指定的用户列表id不能为空")
- private List<String> pointCostomIdList;
+ private List<Long> pointCostomIdList;
}
diff --git a/src/main/java/com/mzl/flower/dto/request/coupon/QueryActivityEffectCouponDTO.java b/src/main/java/com/mzl/flower/dto/request/coupon/QueryActivityEffectCouponDTO.java
new file mode 100644
index 0000000..a309696
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/QueryActivityEffectCouponDTO.java
@@ -0,0 +1,29 @@
+package com.mzl.flower.dto.request.coupon;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+@ApiModel("App活动优惠券实体类")
+public class QueryActivityEffectCouponDTO {
+
+
+ @ApiModelProperty(value = "优惠券类型(COUPON_TYPE)" ,hidden = true)
+ private String couponDiscountType;
+
+ @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)",hidden = true)
+ private String getType;
+
+ @ApiModelProperty(value = "领取用户类型(COUPON_GET_USER_TYPE)",hidden = true)
+ private String getUserType;
+
+ @ApiModelProperty(value = "优惠券种类(COUPON_CATEGORY)",hidden = true)
+ private String category;
+
+ @ApiModelProperty(value = "优惠券状态(COUPON_STATUS)",hidden = true)
+ private String status;
+
+
+}
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 1ea37c0..7f473a7 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
@@ -5,7 +5,7 @@
@Data
-public class QueryCouponDTO extends QueryCouponVipDTO {
+public class QueryCouponDTO {
@ApiModelProperty(value = "id")
@@ -29,4 +29,6 @@
@ApiModelProperty(value = "优惠券状态")
private String status;
+
+
}
diff --git a/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponVipDTO.java b/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponVipDTO.java
index 9abcb4c..76fb073 100644
--- a/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponVipDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponVipDTO.java
@@ -13,9 +13,7 @@
@ApiModelProperty(value = "优惠券类型")
private String couponDiscountType;
-
@ApiModelProperty(value = "id")
private String id;
-
}
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
index bc9145b..8c3d62a 100644
--- a/src/main/java/com/mzl/flower/dto/request/coupon/QueryExistCouponDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/QueryExistCouponDTO.java
@@ -7,8 +7,8 @@
@Data
public class QueryExistCouponDTO {
- @ApiModelProperty(value = "优惠券ID")
- private String customerId;
+ @ApiModelProperty(value = "商户ID")
+ private Long customerId;
@ApiModelProperty(value = "优惠券ID")
private String couponId;
diff --git a/src/main/java/com/mzl/flower/enums/CouponGetTypeEnum.java b/src/main/java/com/mzl/flower/enums/CouponGetTypeEnum.java
new file mode 100644
index 0000000..918f2a5
--- /dev/null
+++ b/src/main/java/com/mzl/flower/enums/CouponGetTypeEnum.java
@@ -0,0 +1,27 @@
+package com.mzl.flower.enums;
+
+import lombok.Getter;
+
+/**
+ * 优惠券领取渠道
+ */
+public enum CouponGetTypeEnum {
+
+
+ HOME("home","首页弹框"),
+ ACTIVITY("activity","活动入口"),
+ CENTER("center","领券中心"),
+
+
+ ;
+
+ @Getter
+ private String type;
+
+ private String desc;
+ private CouponGetTypeEnum(String type, String desc){
+ this.type=type;
+ this.desc=desc;
+ }
+
+}
diff --git a/src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java b/src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java
index 5122677..142bbfa 100644
--- a/src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java
+++ b/src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.dto.request.coupon.BatchCouponTemplateDTO;
import com.mzl.flower.dto.request.coupon.QueryActivePointCouponDTO;
+import com.mzl.flower.dto.request.coupon.QueryActivityEffectCouponDTO;
import com.mzl.flower.dto.request.coupon.QueryCouponDTO;
import com.mzl.flower.dto.response.coupon.CouponTemplateVO;
import com.mzl.flower.entity.coupon.CouponTemplateDO;
@@ -46,4 +47,6 @@
List<CouponTemplateVO> getCouponPointList(@Param("param") QueryActivePointCouponDTO dto);
Page<CouponTemplateVO> getPointPage(Page page,@Param("param") QueryActivePointCouponDTO dto);
+
+ List<CouponTemplateVO> getActivityEffectList(@Param("param") QueryActivityEffectCouponDTO dto);
}
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 28a7355..46fe72b 100644
--- a/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
+++ b/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
@@ -56,6 +56,15 @@
* @param queryExistCouponDTO
* @return
*/
- int getExistCouponAmount(QueryExistCouponDTO queryExistCouponDTO);
+ Integer getExistCouponAmount(QueryExistCouponDTO queryExistCouponDTO);
+
+ /**
+ * 根据优惠券的ID来查找已经领取的优惠券的数量
+ * @param couponId
+ * @return
+ */
+ Integer getExistGainCouponRecordAmountById(String couponId);
+
+ Integer getUserGainCouponRecordAmountById(String couponId,Long customerId);
}
diff --git a/src/main/java/com/mzl/flower/service/coupon/CouponTemplateService2.java b/src/main/java/com/mzl/flower/service/coupon/CouponTemplateService2.java
index 648effb..a1b7339 100644
--- a/src/main/java/com/mzl/flower/service/coupon/CouponTemplateService2.java
+++ b/src/main/java/com/mzl/flower/service/coupon/CouponTemplateService2.java
@@ -82,5 +82,14 @@
*/
Page<CouponTemplateVO> getPointPage(Page page, QueryActivePointCouponDTO dto);
+ /**
+ * 获取活动优惠券
+ * 1.需要领取时间在有效期内的
+ * 2.已经发布的
+ * @param dto
+ * @return
+ */
+ List<CouponTemplateVO> getActivityEffectList(QueryActivityEffectCouponDTO dto);
+
void exchangeCoupon(ExchangeCouponDTO dto);
}
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 a56b81e..68ce170 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
@@ -67,6 +67,8 @@
@Override
public boolean createCouponRecord(CreateCouponRecordDTO dto) {
+ // TODO 需要控制超领
+
final Customer customer = customerMapper.selectById(dto.getCustomerId());
if(null==customer){
throw new ValidationException("商户信息不存在");
@@ -77,10 +79,32 @@
throw new ValidationException("优惠券不存在");
}
- // TODO 活动优惠券和积分优惠券需要根据库存来控制- 根据优惠券的发放数量来控制有没有超发
+ // 活动优惠券和积分优惠券需要根据库存来控制- 根据优惠券的发放数量来控制有没有超发
+ if(StringUtils.isNotBlank(couponTemplateDO.getCategory()) && (
+ couponTemplateDO.getCategory().equals(CouponCategoryEnum.ACTIVITY.getStatus()) || couponTemplateDO.getCategory().equals(CouponCategoryEnum.POINT.getStatus())
+ )){
+ // 获取当前优惠券已经领取的数量
+ final Integer gainTotal = getExistGainCouponRecordAmountById(couponTemplateDO.getId());
+ if(couponTemplateDO.getCouponAmount().compareTo(gainTotal)<=0){
+ throw new ValidationException("当前优惠券已经领完!");
+ }
+ }
+ // 根据用户领取设置的getLimit 查看当前用户是否已经超领优惠券
+ if(StringUtils.isNotBlank(couponTemplateDO.getCategory()) && couponTemplateDO.getCategory().equals(CouponCategoryEnum.ACTIVITY.getStatus()) ){
+ // 查看当前优惠券的领取时间在不在设置的领取时间范围类
+ LocalDateTime now = LocalDateTime.now();
+ // 判断当前时间是否在领取时间范围内
+ if (!(now.isAfter(couponTemplateDO.getGetStartDate()) && now.isBefore(couponTemplateDO.getGetEndDate()))) {
+ throw new ValidationException("当前时间不在优惠券的领取时间范围内,无法操作!");
+ }
- // TODO 根据用户领取设置的getLimit 查看当前用户是否已经超领优惠券
+ // 获取当前优惠券已经领取的数量
+ final Integer customGainTotal = getUserGainCouponRecordAmountById(couponTemplateDO.getId(),customer.getId());
+ if(couponTemplateDO.getGetLimit().compareTo(customGainTotal)<=0){
+ throw new ValidationException("超出个人领取限制,每人限领"+couponTemplateDO.getGetLimit()+"张!");
+ }
+ }
CouponRecordDO couponRecordDO=new CouponRecordDO();
@@ -146,7 +170,6 @@
}
}
-
return baseMapper.insert(couponRecordDO)>0;
}
@@ -297,13 +320,33 @@
}
@Override
- public int getExistCouponAmount(QueryExistCouponDTO dto) {
+ public Integer 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(null!=dto.getCustomerId(),CouponRecordDO::getCustomerId,dto.getCustomerId())
.eq(StringUtils.isNotBlank(dto.getCategory()),CouponRecordDO::getCategory,dto.getCategory());
return baseMapper.selectCount(queryWrapper);
}
+
+ @Override
+ public Integer getExistGainCouponRecordAmountById(String couponId) {
+ QueryWrapper<CouponRecordDO> queryWrapper=new QueryWrapper<>();
+ queryWrapper.lambda().eq(CouponRecordDO::getDeleted, TrueOrFalseEnum.FALSE.isFlag())
+ .eq(StringUtils.isNotBlank(couponId), CouponRecordDO::getCouponId,couponId)
+ ;
+ return baseMapper.selectCount(queryWrapper);
+ }
+
+ @Override
+ public Integer getUserGainCouponRecordAmountById(String couponId, Long customerId) {
+ QueryWrapper<CouponRecordDO> queryWrapper=new QueryWrapper<>();
+ queryWrapper.lambda().eq(CouponRecordDO::getDeleted, TrueOrFalseEnum.FALSE.isFlag())
+ .eq(StringUtils.isNotBlank(couponId), CouponRecordDO::getCouponId,couponId)
+ .eq(null!=customerId,CouponRecordDO::getCustomerId,customerId)
+ ;
+
+ return baseMapper.selectCount(queryWrapper);
+ }
}
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 d5df0b5..6364853 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
@@ -382,4 +382,10 @@
customerPointDetailMapper.insert(detail);
}
+ @Override
+ public List<CouponTemplateVO> getActivityEffectList(QueryActivityEffectCouponDTO dto) {
+
+ return couponTemplateMapperCustom.getActivityEffectList(dto);
+ }
+
}
diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateAppController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateAppController.java
new file mode 100644
index 0000000..7108d92
--- /dev/null
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateAppController.java
@@ -0,0 +1,77 @@
+package com.mzl.flower.web.v2.coupon;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mzl.flower.base.BaseController;
+import com.mzl.flower.base.R;
+import com.mzl.flower.base.ReturnDataDTO;
+import com.mzl.flower.dto.request.coupon.QueryActivityEffectCouponDTO;
+import com.mzl.flower.dto.request.coupon.QueryCouponDTO;
+import com.mzl.flower.dto.response.coupon.CouponTemplateVO;
+import com.mzl.flower.enums.CouponCategoryEnum;
+import com.mzl.flower.enums.CouponGetTypeEnum;
+import com.mzl.flower.enums.CouponStatusEnum;
+import com.mzl.flower.service.coupon.CouponTemplateService2;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * @author @TaoJie
+ * @since 2024-08-22
+ */
+@RestController
+@RequestMapping("/api/v2/coupon/app")
+@Api(value = "优惠券管理-小程序", tags = "优惠券管理-小程序")
+@Validated
+public class CouponTemplateAppController extends BaseController {
+
+ @Autowired
+ CouponTemplateService2 couponTemplateService;
+
+ @GetMapping("/home/list")
+ @ApiOperation(value = "查询-首页弹框", notes = "查询-首页弹框")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> homeList(QueryActivityEffectCouponDTO dto) {
+ // TODO 需要查找到领取时间优惠券的开始时间和结束时间内的优惠券
+
+ // 活动优惠券
+ dto.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
+ // 已经发布
+ dto.setStatus(CouponStatusEnum.ACTIVE.getStatus());
+ // 首页弹窗
+ dto.setGetType(CouponGetTypeEnum.HOME.getType());
+
+ couponTemplateService.getActivityEffectList(dto);
+
+ return returnData(R.SUCCESS.getCode(),null);
+ }
+
+ @GetMapping("/activy/list")
+ @ApiOperation(value = "查询-活动", notes = "查询-活动")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> activyList(QueryActivityEffectCouponDTO dto) {
+ // TODO
+
+ return returnData(R.SUCCESS.getCode(),null);
+ }
+
+ @GetMapping("/center/list")
+ @ApiOperation(value = "查询-中心", notes = "查询-中心")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> centerList(QueryActivityEffectCouponDTO dto) {
+ // TODO
+
+ return returnData(R.SUCCESS.getCode(),null);
+ }
+
+
+
+
+
+
+
+}
diff --git a/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml b/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
index 1fca610..6340109 100644
--- a/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
+++ b/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
@@ -69,6 +69,11 @@
<include refid="QueryPointSql" />
</select>
+<!-- app活动优惠券-->
+ <select id="getActivityEffectList" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
+
+ </select>
+
<sql id="QueryPointSql">
select *
from t_coupon_template
--
Gitblit v1.9.3