From f489850355bae6d690b2d3e6d0627f90bde79b1d Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期五, 06 九月 2024 18:59:51 +0800
Subject: [PATCH] 1.优惠券记录新增category查询字段 2.小程序-商品历史记录根据更新时间排序 3.优惠券-用户优惠券控制已下架的优惠券不可重新上架,及当前优惠券的已经发放的情况下不可再次下发
---
src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponRecordDTO.java | 3 +
src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java | 8 +++
src/main/java/com/mzl/flower/enums/CouponGetUserTypeEnum.java | 2
src/main/resources/mapper/flower/FlowerMapper.xml | 2
src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java | 14 ++++++-
src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateActivyController.java | 8 ++--
src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java | 34 +++++++++++++++-
src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java | 28 +++++++++-----
src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java | 15 +++++--
src/main/resources/mapper/coupon/CouponRecordMapperCustom.xml | 5 ++
10 files changed, 93 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponRecordDTO.java b/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponRecordDTO.java
index f745ccc..50cf5f2 100644
--- a/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponRecordDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponRecordDTO.java
@@ -38,4 +38,7 @@
@ApiModelProperty(value = "优惠券模版ID")
private String couponId;
+ @ApiModelProperty(value = "优惠券种类")
+ private String category;
+
}
diff --git a/src/main/java/com/mzl/flower/enums/CouponGetUserTypeEnum.java b/src/main/java/com/mzl/flower/enums/CouponGetUserTypeEnum.java
index c39fbd7..2b66fe3 100644
--- a/src/main/java/com/mzl/flower/enums/CouponGetUserTypeEnum.java
+++ b/src/main/java/com/mzl/flower/enums/CouponGetUserTypeEnum.java
@@ -6,7 +6,7 @@
ALL("all","全部用户"),
- POINT("point","指定用户"),
+ TARGET("target","指定用户"),
;
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 530dc08..4efcf6b 100644
--- a/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
+++ b/src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
@@ -103,5 +103,11 @@
CouponRecordDO getCouponByOrderId(String orderId) ;
-
+ /**
+ * 查看当前人员是否已经重复发过此优惠券
+ * @param couponId
+ * @param customId
+ * @return
+ */
+ boolean checkUserCouponExists(String couponId, Long customId);
}
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 ec5067b..09c97f9 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
@@ -135,7 +135,7 @@
}
// 优惠券字段冗余
- couponRecordDO.setCategory(couponTemplateDO.getGetUserType());
+ couponRecordDO.setCategory(couponTemplateDO.getCategory());
couponRecordDO.setCouponCode(couponTemplateDO.getCouponCode());
couponRecordDO.setCouponName(couponTemplateDO.getCouponName());
couponRecordDO.setCouponDiscountValue(couponTemplateDO.getCouponDiscountValue());
@@ -212,7 +212,7 @@
// 优惠券字段冗余
final CouponTemplateDO couponTemplateDO = couponTemplateService.getById(dto.getCouponId());
if(null!=couponTemplateDO){
- couponRecordDO.setCategory(couponTemplateDO.getGetUserType());
+ couponRecordDO.setCategory(couponTemplateDO.getCategory());
couponRecordDO.setCouponCode(couponTemplateDO.getCouponCode());
couponRecordDO.setCouponName(couponTemplateDO.getCouponName());
couponRecordDO.setCouponDiscountValue(couponTemplateDO.getCouponDiscountValue());
@@ -524,4 +524,14 @@
}
return null;
}
+
+ @Override
+ public boolean checkUserCouponExists(String couponId, Long customId) {
+ QueryWrapper<CouponRecordDO> queryWrapper=new QueryWrapper<>();
+ queryWrapper.lambda().eq(CouponRecordDO::getDeleted,TrueOrFalseEnum.FALSE.isFlag())
+ .eq(CouponRecordDO::getCouponId,couponId)
+ .eq(CouponRecordDO::getCustomerId,customId)
+ ;
+ return baseMapper.selectCount(queryWrapper)>0;
+ }
}
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 ce2b9af..dd40bfd 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
@@ -40,6 +40,7 @@
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -225,7 +226,7 @@
// 判断当前的优惠券的用户类型是指定用户还是全部用户,如果是指定用户的情况下需要发布优惠券
if (StringUtils.isNotBlank(couponTemplateDO.getGetUserType())
&& StringUtils.isNotBlank(couponTemplateDO.getCategory())
- && couponTemplateDO.getGetUserType().equals(CouponGetUserTypeEnum.POINT.getType())
+ && couponTemplateDO.getGetUserType().equals(CouponGetUserTypeEnum.TARGET.getType())
&& couponTemplateDO.getCategory().equals(CouponCategoryEnum.USER.getStatus())
) {
@@ -278,7 +279,7 @@
couponRecordDO.setCouponCode(couponTemplateDO.getCouponCode());
couponRecordDO.setCouponName(couponTemplateDO.getCouponName());
// 优惠券种类
- couponRecordDO.setCategory(couponTemplateDO.getGetUserType());
+ couponRecordDO.setCategory(couponTemplateDO.getCategory());
couponRecordDO.setMinOrderAmount(couponTemplateDO.getMinOrderAmount());
couponRecordDO.setCouponDiscountValue(couponTemplateDO.getCouponDiscountValue());
couponRecordDO.setGetType(couponTemplateDO.getGetType());
@@ -290,8 +291,14 @@
// 创建相关信息
couponRecordDO.create(SecurityUtils.getUserId());
- return couponRecordDO;
- }).collect(Collectors.toList());
+ // 查看当前优惠券是不是已经存在,存在的话则不能添加,防止同一人员重复下发同一张指定的优惠券
+ if(!couponRecordService.checkUserCouponExists(pointCustomRe.getCouponId(),pointCustomRe.getCustomId())){
+ return couponRecordDO;
+ }else{
+ return null;
+ }
+
+ }).filter(Objects::nonNull).collect(Collectors.toList());
// 批量保存优惠券信息
couponRecordService.saveBatch(couponUsageDOList);
diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateActivyController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateActivyController.java
index e14979b..9ce4203 100644
--- a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateActivyController.java
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateActivyController.java
@@ -52,7 +52,7 @@
CreateCouponTemplateBO couponTemplateBO = new CreateCouponTemplateBO();
BeanUtils.copyProperties(dto, couponTemplateBO);
- // 设置成积分优惠券
+ // 设置成活动优惠券
couponTemplateBO.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.ALL.getType());
@@ -81,7 +81,7 @@
BeanUtils.copyProperties(couponTemplateDO,couponTemplateBO);
BeanUtils.copyProperties(dto, couponTemplateBO);
- // 设置成积分优惠券
+ // 设置成活动优惠券
couponTemplateBO.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.ALL.getType());
@@ -112,7 +112,7 @@
@GetMapping("/page")
@ApiOperation(value = "查询-分页", notes = "查询-分页")
public ResponseEntity<ReturnDataDTO<Page<CouponTemplatePointVO>>> page(Page page, QueryCouponDTO dto) {
- // 设置只查询积分优惠券的
+ // 设置只查询活动优惠券的
dto.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
Page<CouponTemplateVO> resultPage = couponTemplateService.getPage(page, dto);
return returnData(R.SUCCESS.getCode(), ConverterUtil.transPage(resultPage, CouponTemplateActivyVO.class));
@@ -121,7 +121,7 @@
@GetMapping("/list")
@ApiOperation(value = "查询-全部", notes = "查询-全部")
public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> list(QueryCouponDTO dto) {
- // 设置只查询积分优惠券的
+ // 设置只查询活动优惠券的
dto.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponTemplateService.getList(dto), CouponTemplateActivyVO.class));
}
diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java
index 13d7bd7..7939f58 100644
--- a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java
@@ -13,14 +13,12 @@
import com.mzl.flower.dto.response.coupon.CouponTemplateUserVO;
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.CouponGetUserTypeEnum;
-import com.mzl.flower.enums.CouponTypeEnum;
-import com.mzl.flower.enums.CouponUsageTypeEnum;
+import com.mzl.flower.enums.*;
import com.mzl.flower.service.coupon.CouponTemplateService2;
import com.mzl.flower.utils.ConverterUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@@ -60,8 +58,8 @@
BeanUtils.copyProperties(dto, couponTemplateBO);
// 设置成指定用户
- couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.POINT.getType());
- // 设置成积分优惠券
+ couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.TARGET.getType());
+ // 设置成用户优惠券
couponTemplateBO.setCategory(CouponCategoryEnum.USER.getStatus());
// 设置默认类型
couponTemplateBO.setUsageType(CouponUsageTypeEnum.GET_AFTER_TIME.getType());
@@ -98,8 +96,8 @@
BeanUtils.copyProperties(dto, couponTemplateBO);
// 设置成指定用户
- couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.POINT.getType());
- // 设置成积分优惠券
+ couponTemplateBO.setGetUserType(CouponGetUserTypeEnum.TARGET.getType());
+ // 设置成用户优惠券
couponTemplateBO.setCategory(CouponCategoryEnum.USER.getStatus());
// 设置默认类型
couponTemplateBO.setUsageType(CouponUsageTypeEnum.GET_AFTER_TIME.getType());
@@ -134,7 +132,7 @@
public ResponseEntity<ReturnDataDTO<Page<CouponTemplatePointVO>>> page(
Page page, QueryCouponDTO dto
) {
- // 设置只查询积分优惠券的
+ // 设置只查询用户优惠券的
dto.setCategory(CouponCategoryEnum.USER.getStatus());
Page<CouponTemplateVO> resultPage = couponTemplateService.getPage(page, dto);
return returnData(R.SUCCESS.getCode(), ConverterUtil.transPage(resultPage, CouponTemplateUserVO.class));
@@ -144,7 +142,7 @@
@ApiOperation(value = "查询-全部", notes = "查询-全部")
public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> list(QueryCouponDTO dto
) {
- // 设置只查询积分优惠券的
+ // 设置只查询用户优惠券的
dto.setCategory(CouponCategoryEnum.USER.getStatus());
return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponTemplateService.getList(dto), CouponTemplateUserVO.class));
}
@@ -159,6 +157,16 @@
throw new ValidationException("优惠券不存在");
}
+ if(StringUtils.isNotBlank(couponTemplateDO.getStatus())
+ && couponTemplateDO.getStatus().equals(CouponStatusEnum.ACTIVE.getStatus())){
+ throw new ValidationException("已发布的的商品不可重复发布");
+ }
+
+ if(StringUtils.isNotBlank(couponTemplateDO.getStatus())
+ && couponTemplateDO.getStatus().equals(CouponStatusEnum.EXPIRED.getStatus())){
+ throw new ValidationException("已下架的商品不可重复上架");
+ }
+
couponTemplateService.activeCouponTemplate(id);
return returnData(R.SUCCESS.getCode(), null);
diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java
index 762b64a..fe543b1 100644
--- a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java
@@ -53,7 +53,7 @@
CreateCouponTemplateBO couponTemplateBO = new CreateCouponTemplateBO();
BeanUtils.copyProperties(dto, couponTemplateBO);
- // 设置成积分优惠券
+ // 设置成会员优惠券
couponTemplateBO.setCategory(CouponCategoryEnum.MEMBER.getStatus());
couponTemplateService.createCouponTemplate(couponTemplateBO);
@@ -78,7 +78,7 @@
BeanUtils.copyProperties(couponTemplateDO,couponTemplateBO);
BeanUtils.copyProperties(dto, couponTemplateBO);
- // 设置成积分优惠券
+ // 设置成会员优惠券
couponTemplateBO.setCategory(CouponCategoryEnum.MEMBER.getStatus());
couponTemplateService.updateCouponTemplate(couponTemplateBO);
@@ -110,7 +110,7 @@
public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVipVO>>> page(
Page page, QueryCouponDTO dto
) {
- // 设置只查询积分优惠券的
+ // 设置只查询会员优惠券的
dto.setCategory(CouponCategoryEnum.MEMBER.getStatus());
Page<CouponTemplateVO> resultPage = couponTemplateService.getPage(page, dto);
return returnData(R.SUCCESS.getCode(), ConverterUtil.transPage(resultPage, CouponTemplateVipVO.class));
@@ -125,6 +125,34 @@
return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponTemplateService.getList(dto), CouponTemplateVipVO.class));
}
+ @PutMapping("/active/{id}")
+ @ApiOperation(value = "发布", notes = "发布")
+ public ResponseEntity<ReturnDataDTO> active(@PathVariable String id) {
+
+ CouponTemplateDO couponTemplateDO = couponTemplateService.getById(id);
+ if (null == couponTemplateDO) {
+ throw new ValidationException("优惠券不存在");
+ }
+
+ couponTemplateService.activeCouponTemplate(id);
+
+ return returnData(R.SUCCESS.getCode(), null);
+ }
+
+ @PutMapping("/expire/{id}")
+ @ApiOperation(value = "下架", notes = "下架")
+ public ResponseEntity<ReturnDataDTO> expire(@PathVariable String id) {
+
+ CouponTemplateDO couponTemplateDO = couponTemplateService.getById(id);
+ if (null == couponTemplateDO) {
+ throw new ValidationException("优惠券不存在");
+ }
+
+ couponTemplateService.expireCouponTemplate(id);
+
+ return returnData(R.SUCCESS.getCode(), null);
+ }
+
private void valid(CreateCouponTemplateVipDTO dto){
diff --git a/src/main/resources/mapper/coupon/CouponRecordMapperCustom.xml b/src/main/resources/mapper/coupon/CouponRecordMapperCustom.xml
index 4b1c2e9..7970cda 100644
--- a/src/main/resources/mapper/coupon/CouponRecordMapperCustom.xml
+++ b/src/main/resources/mapper/coupon/CouponRecordMapperCustom.xml
@@ -118,6 +118,11 @@
<if test="param.couponId != null and param.couponId != ''">
and t.coupon_id = #{param.couponId}
</if>
+ <if test="param.category != null and param.category != ''">
+ and t.category = #{param.category}
+ </if>
+
+
order by t.create_time desc
</sql>
diff --git a/src/main/resources/mapper/flower/FlowerMapper.xml b/src/main/resources/mapper/flower/FlowerMapper.xml
index 5a0b0c1..3f5857f 100644
--- a/src/main/resources/mapper/flower/FlowerMapper.xml
+++ b/src/main/resources/mapper/flower/FlowerMapper.xml
@@ -320,7 +320,7 @@
</choose>
</when>
<otherwise>
- order by c.create_time desc
+ order by c.update_time desc
</otherwise>
</choose>
</select>
--
Gitblit v1.9.3