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}, '%'))