id, name, type, creator_type, creator_merchant_id, scope_type,
points_cost, discount_rate, min_charge_amount, max_discount_amount,
exchange_start_time, exchange_end_time,
stock_total, stock_remain, validity_type,
valid_start_time, valid_end_time, valid_days,
daily_limit, monthly_limit, total_limit,
status, description, image, update_by, create_by, create_time, update_time, del_flag
INSERT INTO coupon_template (
name, type, creator_type, creator_merchant_id, scope_type,
points_cost, discount_rate, min_charge_amount, max_discount_amount,
exchange_start_time, exchange_end_time,
stock_total, stock_remain, validity_type,
valid_start_time, valid_end_time, valid_days,
daily_limit, monthly_limit, total_limit,
status, description, image, update_by, create_by, create_time, update_time, del_flag
) VALUES (
#{name}, #{type}, #{creatorType}, #{creatorMerchantId}, #{scopeType},
#{pointsCost}, #{discountRate}, #{minChargeAmount}, #{maxDiscountAmount},
#{exchangeStartTime}, #{exchangeEndTime},
#{stockTotal}, #{stockRemain}, #{validityType},
#{validStartTime}, #{validEndTime}, #{validDays},
#{dailyLimit}, #{monthlyLimit}, #{totalLimit},
#{status}, #{description}, #{image}, #{updateBy}, #{createBy}, NOW(), NOW(), '0'
)
UPDATE coupon_template
name = #{name},
status = #{status},
stock_total = #{stockTotal},
daily_limit = #{dailyLimit},
monthly_limit = #{monthlyLimit},
total_limit = #{totalLimit},
description = #{description},
image = #{image},
update_by = #{updateBy},
update_time = NOW()
WHERE id = #{id} AND del_flag = '0'
UPDATE coupon_template
SET stock_remain = stock_remain - 1,
update_time = NOW()
WHERE id = #{id}
AND del_flag = '0'
AND (stock_remain = -1 OR stock_remain >= 1)