1.优惠券记录新增category查询字段
2.小程序-商品历史记录根据更新时间排序
3.优惠券-用户优惠券控制已下架的优惠券不可重新上架,及当前优惠券的已经发放的情况下不可再次下发
已修改10个文件
119 ■■■■ 文件已修改
src/main/java/com/mzl/flower/dto/request/coupon/QueryCouponRecordDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/enums/CouponGetUserTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/coupon/CouponRecordService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateActivyController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateUserController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/coupon/CouponRecordMapperCustom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/flower/FlowerMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}
src/main/java/com/mzl/flower/enums/CouponGetUserTypeEnum.java
@@ -6,7 +6,7 @@
    ALL("all","全部用户"),
    POINT("point","指定用户"),
    TARGET("target","指定用户"),
    ;
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);
}
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;
    }
}
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);
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));
    }
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);
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){
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>
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>