You've already forked FrameTour-BE
feat(pricing): 添加优惠券配置中的申领数量和用户申领限制字段
- 在 PriceCouponConfigMapper 中新增 claimed_quantity 和 user_claim_limit 字段映射 - 更新 INSERT 语句以包含新的申领相关字段 - 修改 insertCoupon 方法以支持优惠券申领数量控制功能
This commit is contained in:
@@ -17,19 +17,19 @@ import java.util.List;
|
|||||||
public interface PriceCouponConfigMapper extends BaseMapper<PriceCouponConfig> {
|
public interface PriceCouponConfigMapper extends BaseMapper<PriceCouponConfig> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询有效的优惠券配置
|
* 查询有效的优惠券配置(可领取的)
|
||||||
*/
|
*/
|
||||||
@Select("SELECT * FROM price_coupon_config WHERE is_active = 1 " +
|
@Select("SELECT * FROM price_coupon_config WHERE is_active = 1 " +
|
||||||
"AND valid_from <= NOW() AND valid_until > NOW() " +
|
"AND valid_from <= NOW() AND valid_until > NOW() " +
|
||||||
"AND used_quantity < total_quantity")
|
"AND (total_quantity IS NULL OR total_quantity <= 0 OR COALESCE(claimed_quantity, 0) < total_quantity)")
|
||||||
List<PriceCouponConfig> selectValidCoupons();
|
List<PriceCouponConfig> selectValidCoupons();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据ID查询优惠券(包括使用数量检查)
|
* 根据ID查询优惠券(包括库存检查)
|
||||||
*/
|
*/
|
||||||
@Select("SELECT * FROM price_coupon_config WHERE id = #{couponId} " +
|
@Select("SELECT * FROM price_coupon_config WHERE id = #{couponId} " +
|
||||||
"AND is_active = 1 AND valid_from <= NOW() AND valid_until > NOW() " +
|
"AND is_active = 1 AND valid_from <= NOW() AND valid_until > NOW() " +
|
||||||
"AND used_quantity < total_quantity")
|
"AND (total_quantity IS NULL OR total_quantity <= 0 OR COALESCE(claimed_quantity, 0) < total_quantity)")
|
||||||
PriceCouponConfig selectValidCouponById(Long couponId);
|
PriceCouponConfig selectValidCouponById(Long couponId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -51,10 +51,12 @@ public interface PriceCouponConfigMapper extends BaseMapper<PriceCouponConfig> {
|
|||||||
* 插入优惠券配置
|
* 插入优惠券配置
|
||||||
*/
|
*/
|
||||||
@Insert("INSERT INTO price_coupon_config (coupon_name, coupon_type, discount_value, min_amount, " +
|
@Insert("INSERT INTO price_coupon_config (coupon_name, coupon_type, discount_value, min_amount, " +
|
||||||
"max_discount, applicable_products, required_attribute_keys, total_quantity, used_quantity, valid_from, valid_until, " +
|
"max_discount, applicable_products, required_attribute_keys, total_quantity, used_quantity, " +
|
||||||
|
"claimed_quantity, user_claim_limit, valid_from, valid_until, " +
|
||||||
"is_active, scenic_id, create_time, update_time) VALUES " +
|
"is_active, scenic_id, create_time, update_time) VALUES " +
|
||||||
"(#{couponName}, #{couponType}, #{discountValue}, #{minAmount}, #{maxDiscount}, " +
|
"(#{couponName}, #{couponType}, #{discountValue}, #{minAmount}, #{maxDiscount}, " +
|
||||||
"#{applicableProducts}, #{requiredAttributeKeys}, #{totalQuantity}, #{usedQuantity}, #{validFrom}, #{validUntil}, " +
|
"#{applicableProducts}, #{requiredAttributeKeys}, #{totalQuantity}, #{usedQuantity}, " +
|
||||||
|
"#{claimedQuantity}, #{userClaimLimit}, #{validFrom}, #{validUntil}, " +
|
||||||
"#{isActive}, #{scenicId}, NOW(), NOW())")
|
"#{isActive}, #{scenicId}, NOW(), NOW())")
|
||||||
int insertCoupon(PriceCouponConfig coupon);
|
int insertCoupon(PriceCouponConfig coupon);
|
||||||
|
|
||||||
@@ -63,7 +65,8 @@ public interface PriceCouponConfigMapper extends BaseMapper<PriceCouponConfig> {
|
|||||||
*/
|
*/
|
||||||
@Update("UPDATE price_coupon_config SET coupon_name = #{couponName}, coupon_type = #{couponType}, " +
|
@Update("UPDATE price_coupon_config SET coupon_name = #{couponName}, coupon_type = #{couponType}, " +
|
||||||
"discount_value = #{discountValue}, min_amount = #{minAmount}, max_discount = #{maxDiscount}, " +
|
"discount_value = #{discountValue}, min_amount = #{minAmount}, max_discount = #{maxDiscount}, " +
|
||||||
"applicable_products = #{applicableProducts}, required_attribute_keys = #{requiredAttributeKeys}, total_quantity = #{totalQuantity}, " +
|
"applicable_products = #{applicableProducts}, required_attribute_keys = #{requiredAttributeKeys}, " +
|
||||||
|
"total_quantity = #{totalQuantity}, user_claim_limit = #{userClaimLimit}, " +
|
||||||
"valid_from = #{validFrom}, valid_until = #{validUntil}, is_active = #{isActive}, " +
|
"valid_from = #{validFrom}, valid_until = #{validUntil}, is_active = #{isActive}, " +
|
||||||
"scenic_id = #{scenicId}, update_time = NOW() WHERE id = #{id}")
|
"scenic_id = #{scenicId}, update_time = NOW() WHERE id = #{id}")
|
||||||
int updateCoupon(PriceCouponConfig coupon);
|
int updateCoupon(PriceCouponConfig coupon);
|
||||||
@@ -117,11 +120,11 @@ public interface PriceCouponConfigMapper extends BaseMapper<PriceCouponConfig> {
|
|||||||
int deleteCoupon(Long id);
|
int deleteCoupon(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询指定景区的有效优惠券配置
|
* 查询指定景区的有效优惠券配置(可领取的)
|
||||||
*/
|
*/
|
||||||
@Select("SELECT * FROM price_coupon_config WHERE is_active = 1 " +
|
@Select("SELECT * FROM price_coupon_config WHERE is_active = 1 " +
|
||||||
"AND valid_from <= NOW() AND valid_until > NOW() " +
|
"AND valid_from <= NOW() AND valid_until > NOW() " +
|
||||||
"AND used_quantity < total_quantity " +
|
"AND (total_quantity IS NULL OR total_quantity <= 0 OR COALESCE(claimed_quantity, 0) < total_quantity) " +
|
||||||
"AND (scenic_id IS NULL OR scenic_id = #{scenicId})")
|
"AND (scenic_id IS NULL OR scenic_id = #{scenicId})")
|
||||||
List<PriceCouponConfig> selectValidCouponsByScenicId(@Param("scenicId") String scenicId);
|
List<PriceCouponConfig> selectValidCouponsByScenicId(@Param("scenicId") String scenicId);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user