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