陶杰
2024-09-03 5280158e29fc5c3b0fd5e764410a87de1a996725
1.优惠券-返回字段添加
2.优惠券-会员定时任务
已修改6个文件
147 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplatePointVO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateUserVO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/schedule/ScheduleService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplatePointVO.java
@@ -1,15 +1,12 @@
package com.mzl.flower.dto.response.coupon;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mzl.flower.base.AbstractTransDTO;
import com.mzl.flower.base.annotation.DictTrans;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@ApiModel("积分记录")
@@ -87,4 +84,45 @@
    /**
     * 领取后有效类型(COUPON_usage_time_type)天、小时、分钟
     */
    @ApiModelProperty(value = "领取后有效类型(COUPON_USAGE_TIME_TYPE)")
    @DictTrans(target = "usageTimeTypeName",codeType = "COUPON_USAGE_TIME_TYPE")
    private String usageTimeType;
    /**
     * 领取后有效时间整数,比如90(天,小时,分钟)
     */
    @ApiModelProperty(value = "领取后有效时间整数")
    private Integer usageTimeNum;
    @ApiModelProperty(value = "使用时间类型(COUPON_USAGE_TYPE)")
    @DictTrans(target = "usageTypeName",codeType = "COUPON_USAGE_TYPE")
    private String usageType;
    @ApiModelProperty(value = "使用时间类型")
    private String usageTypeName;
    @ApiModelProperty(value = "领取后有效类型名称")
    private String usageTimeTypeName;
    @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
    @DictTrans(target = "getTypeName",codeType = "COUPON_GET_TYPE")
    private String getType;
    /**
     * 领取渠道(COUPON_GET_TYPE)首页弹窗、活动入口、领券中心
     */
    @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
    private String getTypeName;
    /**
     * 每人限领
     */
    @ApiModelProperty(value = "每人限领")
    private Integer getLimit;
}
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateUserVO.java
@@ -113,4 +113,31 @@
    @ApiModelProperty(value = "领取后有效时间整数")
    private Integer usageTimeNum;
    @ApiModelProperty(value = "使用时间类型(COUPON_USAGE_TYPE)")
    @DictTrans(target = "usageTypeName",codeType = "COUPON_USAGE_TYPE")
    private String usageType;
    @ApiModelProperty(value = "使用时间类型")
    private String usageTypeName;
    @ApiModelProperty(value = "领取后有效类型名称")
    private String usageTimeTypeName;
    @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
    @DictTrans(target = "getTypeName",codeType = "COUPON_GET_TYPE")
    private String getType;
    /**
     * 领取渠道(COUPON_GET_TYPE)首页弹窗、活动入口、领券中心
     */
    @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
    private String getTypeName;
    /**
     * 每人限领
     */
    @ApiModelProperty(value = "每人限领")
    private Integer getLimit;
}
src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java
@@ -121,4 +121,30 @@
    @ApiModelProperty(value = "会员等级对象")
    private Member member;
    @ApiModelProperty(value = "使用时间类型(COUPON_USAGE_TYPE)")
    @DictTrans(target = "usageTypeName",codeType = "COUPON_USAGE_TYPE")
    private String usageType;
    @ApiModelProperty(value = "使用时间类型")
    private String usageTypeName;
    @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
    @DictTrans(target = "getTypeName",codeType = "COUPON_GET_TYPE")
    private String getType;
    /**
     * 领取渠道(COUPON_GET_TYPE)首页弹窗、活动入口、领券中心
     */
    @ApiModelProperty(value = "领取渠道(COUPON_GET_TYPE)")
    private String getTypeName;
    /**
     * 每人限领
     */
    @ApiModelProperty(value = "每人限领")
    private Integer getLimit;
}
src/main/java/com/mzl/flower/schedule/ScheduleService.java
@@ -9,6 +9,7 @@
import com.mzl.flower.mapper.flower.FlowerCategoryMapper;
import com.mzl.flower.mapper.partner.PartnerMapper;
import com.mzl.flower.mapper.payment.OrderMapper;
import com.mzl.flower.service.coupon.CouponRecordService;
import com.mzl.flower.service.flower.FlowerCategoryService;
import com.mzl.flower.service.flower.FlowerService;
import com.mzl.flower.service.payment.*;
@@ -56,6 +57,9 @@
    @Autowired
    private OrderItemSettlementService orderItemSettlementService;
    @Autowired
    private CouponRecordService couponRecordService;
    @Scheduled(cron = "1 0/20 * * * ?")
    public void calculateAvePrice() {
@@ -185,4 +189,12 @@
        billService.generateBill(date.plusDays(-1));
        log.info("账单结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
    }
    @Scheduled(cron = "0 30 0 1 * ?")
    public void grantVipCouponRecordList() {
        log.info("会员优惠券开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
        couponRecordService.grantVipCouponRecordList();
        log.info("会员优惠券结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
    }
}
src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java
@@ -6,6 +6,7 @@
import com.mzl.flower.dto.response.coupon.CouponRecordVO;
import com.mzl.flower.entity.coupon.CouponRecordDO;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -72,5 +73,7 @@
     */
    void checkCouponExpired(QueryMineCouponRecordDTO dto);
    boolean checkCurMonVipCouponExists(String couponId, Long customId, LocalDateTime startDateTime,LocalDateTime endDateTime);
}
src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
@@ -32,6 +32,7 @@
import java.time.LocalDateTime;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -271,11 +272,16 @@
                    couponRecordDO.setEffectiveStart(firstDayStart);
                    couponRecordDO.setEffectiveEnd(lastDayEnd);
                    couponRecordDO.setMemberId(couponTemplateDO.getMemberId());
                    // 创建信息
                    couponRecordDO.create();
                    return couponRecordDO;
                }).collect(Collectors.toList());
                    if(!checkCurMonVipCouponExists(couponRecordDO.getCouponId(),couponRecordDO.getCustomerId(),firstDayStart,lastDayEnd)){
                        return couponRecordDO;
                    }else{
                        return null;
                    }
                }).filter(Objects::nonNull)
                        .collect(Collectors.toList());
                // 批量保存等级下的优惠券信息
                saveBatch(gradeCouponRecordList);
@@ -395,4 +401,27 @@
        // 将未使用的优惠券直接过期
        couponRecordMapperCustom.checkCouponExpired(dto);
    }
    @Override
    public boolean checkCurMonVipCouponExists(String couponId, Long customId, LocalDateTime startDateTime, LocalDateTime endDateTime) {
        LocalDateTime now = LocalDateTime.now();
        LocalDateTime firstDayStart = now.with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0).withNano(0);
        LocalDateTime lastDayEnd = now.with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59).withNano(0);
        if(null==startDateTime){
            startDateTime=firstDayStart;
        }
        if(null==endDateTime){
            endDateTime=lastDayEnd;
        }
        QueryWrapper<CouponRecordDO> queryWrapper=new QueryWrapper<>();
        queryWrapper.lambda().eq(CouponRecordDO::getDeleted,TrueOrFalseEnum.FALSE.isFlag())
                .eq(CouponRecordDO::getCouponId,couponId)
                .eq(CouponRecordDO::getCustomerId,customId)
                .eq(CouponRecordDO::getEffectiveStart,startDateTime)
                .eq(CouponRecordDO::getEffectiveEnd,endDateTime);
        return  baseMapper.selectCount(queryWrapper)>0;
    }
}