diff --git a/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCardTemplateAddDTO.java b/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCardTemplateAddDTO.java index e283db5ff..825c01d0a 100644 --- a/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCardTemplateAddDTO.java +++ b/promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCardTemplateAddDTO.java @@ -1,4 +1,119 @@ package cn.iocoder.mall.promotion.api.dto; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Date; + public class CouponCardTemplateAddDTO { + + // ========== 基本信息 BEGIN ========== + /** + * 标题 + */ + @NotEmpty(message = "标题不能为空") + @Length(min = 6, max = 16, message = "标题长度为 {min}-{max} 位") + private String title; + /** + * 使用说明 + */ + @Length(max = 255, message = "使用说明最大长度为 {max} 位") + private String description; + // ========== 基本信息 END ========== + + // ========== 领取规则 BEGIN ========== + /** + * 每人限领个数 + * + * null - 则表示不限制 + */ + private Integer quota; + /** + * 剩余可用库存 + * + * null - 则表示无限库存 + */ + private Integer stock; + // ========== 领取规则 END ========== + + // ========== 使用规则 BEGIN ========== + /** + * 是否设置满多少金额可用,单位:分 + * + * 0-不限制 + * 大于0-多少金额可用 + */ + @NotNull(message = "使用金额门槛不能为空") + private Integer priceAvailable; + /** + * 可用范围的类型 + * + * 10-全部(ALL):所有可用 + * 20-部分(PART):部分商品可用,或指定商品可用 + * 21-部分(PART):部分商品不可用,或指定商品可用 + * 30-部分(PART):部分分类可用,或指定商品可用 + * 31-部分(PART):部分分类不可用,或指定商品可用 + */ + @NotNull(message = "可用范围的类型不能为空") + private Integer rangeType; + /** + * 指定商品 / 分类列表,使用逗号分隔商品编号 + */ + private String rangeValues; + /** + * 生效日期类型 + * + * 1-固定日期 + * 2-领取日期:领到券 {@link #fixedTerm} 日开始 N 天内有效 + */ + @NotNull(message = "生效日期类型不能为空") + private Integer dateType; + /** + * 固定日期-生效开始时间 + */ + private Date validStartTime; + /** + * 固定日期-生效结束时间 + */ + private Date validEndTime; +// /** +// * 领取日期-开始天数 +// * +// * 例如,0-当天;1-次天 +// */ +// private Integer fixedBeginTerm; + /** + * 领取日期-结束天数 + */ + private Integer fixedTerm; + // ========== 使用规则 END ========== + + // ========== 使用效果 BEGIN ========== + /** + * 优惠类型 + * + * 1-代金卷 + * 2-折扣卷 + */ + private Integer preferentialType; + /** + * 折扣百分比。 + * + * 例如,80% 为 80。 + * 当 100% 为 100 ,则代表免费。 + */ + private Integer percentOff; + /** + * 优惠金额,单位:分 + */ + private Integer priceOff; + /** + * 折扣上限,仅在 {@link #preferentialType} 等于 2 时生效。 + * + * 例如,折扣上限为 20 元,当使用 8 折优惠券,订单金额为 1000 元时,最高只可折扣 20 元,而非 80 元。 + */ + private Integer discountPriceLimit; + // ========== 使用效果 END ========== + } diff --git a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dao/CouponTemplateMapper.java b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dao/CouponTemplateMapper.java new file mode 100644 index 000000000..524c75d01 --- /dev/null +++ b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dao/CouponTemplateMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.mall.promotion.biz.dao; + +import cn.iocoder.mall.promotion.biz.dataobject.CouponTemplateDO; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface CouponTemplateMapper { + + CouponTemplateDO selectById(@Param("id") Integer id); + + List selectListByPage(@Param("title") String title, + @Param("status") Integer status, + @Param("preferentialType") Integer preferentialType, + @Param("offset") Integer offset, + @Param("limit") Integer limit); + + Integer selectCountByPage(@Param("title") String title, + @Param("status") Integer status, + @Param("preferentialType") Integer preferentialType); + + void insert(CouponTemplateDO couponTemplate); + + int update(CouponTemplateDO couponTemplate); + +} diff --git a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/CouponTemplateDO.java b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/CouponTemplateDO.java index fb418c8d4..9fb96e4a2 100644 --- a/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/CouponTemplateDO.java +++ b/promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/CouponTemplateDO.java @@ -54,22 +54,14 @@ public class CouponTemplateDO extends BaseDO { // * 是否可分享领取链接 // */ // private Boolean isShare; - /** - * 设置为失效时间 - */ - private Date invalidTime; +// /** +// * 设置为失效时间 +// */ +// private Date invalidTime; // /** // * 删除时间 // */ // private Date deleteTime; - /** - * 可领取的开始时间 - */ - private Date beginTime; - /** - * 可领取的结束时间 - */ - private Date endTime; // ========== 基本信息 END ========== @@ -208,10 +200,10 @@ public class CouponTemplateDO extends BaseDO { // * 领取优惠券的人数 // */ // private Integer statFetchUserNum; -// /** -// * 领取优惠券的次数 -// */ -// private Integer statFetchNum; + /** + * 领取优惠券的次数 + */ + private Integer statFetchNum; // /** // * 使用优惠券的次数 // */ diff --git a/promotion/promotion-service-impl/src/main/resources/mapper/CouponTemplateMapper.xml b/promotion/promotion-service-impl/src/main/resources/mapper/CouponTemplateMapper.xml new file mode 100644 index 000000000..049652c9f --- /dev/null +++ b/promotion/promotion-service-impl/src/main/resources/mapper/CouponTemplateMapper.xml @@ -0,0 +1,143 @@ + + + + + + id, title, description, type, code_type, + status, quota, stock, price_available, range_type, + range_values, date_type, valid_start_time, valid_end_time, fixed_term, + preferential_type, percent_off, price_off, discount_price_limit, stat_fetch_num, + create_time + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO coupon_template ( + title, description, type, code_type, + status, quota, stock, price_available, range_type, + range_values, date_type, valid_start_time, valid_end_time, fixed_term, + preferential_type, percent_off, price_off, discount_price_limit, stat_fetch_num, + create_time + ) VALUES ( + #{title}, #{description, #{type, #{code_type}, + #{status}, #{quota, #{stock}, #{priceAvailable}, #{rangeType}, + #{rangeValues}, #{dateType}, #{validStartTime}, #{validEndTime, #{fixedTerm}, + #{preferentialType, #{percentOff}, #{priceOff}, #{discountPriceLimit}, #{statFetchNum}, + #{createTime} + ) + + + + UPDATE coupon_template + + + title = #{title}, + + + description = #{description}, + + + status = #{status}, + + + quota = #{quota}, + + + stock = #{stock}, + + + price_available = #{priceAvailable} + + + range_type = #{rangeType} + + + range_values = #{rangeValues} + + + date_type = #{dateType} + + + valid_start_time = #{validStartTime} + + + valid_end_time = #{validEndTime} + + + fixed_term = #{fixedTerm} + + + preferential_type = #{preferentialType} + + + percent_off = #{percentOff} + + + price_off = #{priceOff} + + + discount_price_limit = #{discountPriceLimit} + + + WHERE id = #{id} + + +