INSERT INTO sys_coupon (id_,name_,description_,status_,issuance_type_,type_,type_detail_,face_value_,full_amount_,limit_exchange_num_,effective_type_,deadline_,
effective_start_time_, effective_expire_time_,end_date_,start_date_,stock_count_,consume_num_,warning_stock_num_,
create_time_,update_time_,tenant_id_,use_condition_)
VALUES(#{id},#{name},#{description},#{status},#{issuanceType},
#{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
#{typeDetail},#{faceValue},#{fullAmount},#{limitExchangeNum},
#{effectiveType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{deadline},
#{effectiveStartTime},#{effectiveExpireTime},#{endDate},#{startDate},#{stockCount},#{consumeNum},#{warningStockNum},
NOW(), NOW(),#{tenantId},#{useCondition})
UPDATE sys_coupon
status_ = #{status},
start_date_ = #{startDate},
face_value_ = #{faceValue},
name_ = #{name},
full_amount_ = #{fullAmount},
effective_type_ = #{effectiveType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
effective_start_time_ = #{effectiveStartTime},
effective_expire_time_ = #{effectiveExpireTime},
deadline_ = #{deadline},
stock_count_ = #{stockCount},
end_date_ = #{endDate},
description_ = #{description},
consume_num_ = #{consumeNum},
type_ = #{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
limit_exchange_num_ = #{limitExchangeNum},
warning_stock_num_ = #{warningStockNum},
warning_status_ = #{warningStatus},
use_condition_ = #{useCondition},
issuance_type_ = #{issuanceType},
update_time_ = NOW()
WHERE id_ = #{id} and tenant_id_ = #{tenantId}
UPDATE sys_coupon
consume_num_ = consume_num_ + #{param.exchangeNum},
warning_status_ = #{param.warningStatus},
update_time_ = NOW()
WHERE id_ = #{param.id}
and tenant_id_ = #{param.tenantId}
and stock_count_ >= (consume_num_ + #{param.exchangeNum})
DELETE FROM sys_coupon WHERE id_ = #{id}
tenant_id_ = #{tenantId}
AND status_ = #{status}
AND type_ = #{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
AND (id_=#{search} OR name_ LIKE CONCAT('%', #{search}, '%'))