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