ration-new-config-mapper.xml 5.41 KB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 新品配售设置 @author 仝玉甫 -->
<mapper namespace="com.cjs.cms.dao.ration.RationNewConfigDao">

	<sql id="ration_new_config_field">
		t.id, t.otc_code, t.otc_name, t.price, t.transaction_fee, t.need_confirm, t.notice_url, t.inner_account,
		t.confirm_start_date, t.confirm_end_date, t.ration_status,
		t.ration_type, t.ration_result, t.create_at, t.create_by
	</sql>
	
	<update id="update" parameterType="RationNewConfigInfo">
		update ration_new_config set
		otc_code = #{otcCode}, otc_name = #{otcName}, price = #{price}, transaction_fee = #{transactionFee}, 
		need_confirm = #{needConfirm}, notice_url = #{noticeUrl}, inner_account = #{innerAccount},
		confirm_start_date = #{confirmStartDate}, confirm_end_date = #{confirmEndDate}, ration_status = #{rationStatus},
		ration_type = #{rationType}, ration_result = #{rationResult}
		where id = #{id} 
	</update>
	
	<resultMap id="queryAll" type="RationNewConfigInfo">
		<id property="otcCode" column="otc_code"/>
		<result property="id" column="id"/>
		<result property="otcName" column="otc_name"/>
		<result property="price" column="price"/>
		<result property="transactionFee" column="transaction_fee"/>
		<result property="needConfirm" column="need_confirm"/>
		<result property="noticeUrl" column="notice_url"/>
		<result property="innerAccount" column="inner_account"/>
		<result property="confirmStartDate" column="confirm_start_date"/>
		<result property="confirmEndDate" column="confirm_end_date"/>
		<result property="rationStatus" column="ration_status"/>
		<result property="rationType" column="ration_type"/>
		<result property="rationResult" column="ration_result"/>
		<result property="createAt" column="create_at"/>
		<result property="createBy" column="create_by"/>				
		<collection property="users" ofType="RationNewUserInfo">
			<id property="rationNewConfigId" column="ration_new_config_id"/>
			<result property="id" column="u_id"/>
			<result property="userId" column="user_id"/>
			<result property="percent" column="percent"/>
		</collection>
	</resultMap>
	
	<!-- 查询指定编号配置 -->
	<select id="queryById" parameterType="int" resultType="RationNewConfigInfo">
		select <include refid="ration_new_config_field" />
		from ration_new_config t
		where t.id = #{value}
	</select>
	
	<insert id="insert" parameterType="RationNewConfigInfo" useGeneratedKeys="true" keyProperty="id">
		insert into ration_new_config(otc_code, otc_name, price, transaction_fee, need_confirm, notice_url, 
			inner_account, confirm_start_date, confirm_end_date, ration_status, ration_type, create_at, create_by)
		values(#{otcCode}, #{otcName}, #{price}, #{transactionFee}, #{needConfirm}, #{noticeUrl}, 
			#{innerAccount}, #{confirmStartDate}, #{confirmEndDate}, #{rationStatus}, #{rationType}, CURRENT_TIMESTAMP, #{createBy})
	</insert>
	
	<!-- 根据藏品编号查询配售规则(非作废和失败状态) -->
	<select id="queryByOtcCode" parameterType="map" resultType="RationNewConfigInfo">
		select <include refid="ration_new_config_field" /> 
		from ration_new_config t 
		where t.otc_code = #{otcCode} and 
		(t.ration_status is null or 
		t.ration_status not in (#{rationStatus}))
	</select>
	
	<select id="search" parameterType="map" resultType="RationNewConfigInfo">
		select <include refid="ration_new_config_field" /> 
		from ration_new_config t 
		<include refid="searchCondition" />
		order by id desc 
		<include refid="common.pageLimit" />
	</select>
	
	<select id="searchTotal" parameterType="map" resultType="int">
		select count(1) from ration_new_config <include refid="searchCondition" />
	</select>
	
	<sql id="searchCondition">
		where 1=1 
		<if test="otcCode != null and otcCode != ''">
			and otc_code = #{otcCode} 
		</if>
		<if test="otcName != null and otcName != ''">
			and instr(otc_name, #{otcName}) > 0 
		</if>
		<if test="rationStatus != null and rationStatus != ''">
			and ration_status = #{rationStatus} 
		</if>
		<if test="confirmStartDate != null and confirmStartDate != ''">
			<![CDATA[and confirm_start_date >= #{confirmStartDate} ]]>
		</if>
		<if test="confirmEndDate != null and confirmEndDate != ''">
			<![CDATA[and confirm_end_date <= #{confirmEndDate} ]]>
		</if>
		<if test="userId != null and userId != ''">
			and id in (select ration_new_config_id from ration_new_user 
				where user_id = #{userId}) 
		</if>
	</sql>
	
	<!-- 获取配售规则信息及对应的新品配售用户信息 -->
	<select id="queryAllById" parameterType="int" resultMap="queryAll">
		select <include refid="ration_new_config_field" />, r.id as u_id, r.user_id, r.otc_account, r.percent 
		from ration_new_config t left join ration_new_user r on t.id = r.ration_new_config_id 
		where t.id = #{id}
	</select>
	
	<!-- 配售规则作废 -->
	<update id="updateCancel">
		update ration_new_config set ration_status = '0' 
		where id = #{id} and ration_status = '1'
	</update>
	
	<select id="queryByRationType" parameterType="string" resultType="RationNewConfigInfo">
		select  <include refid="ration_new_config_field" /> 
		from ration_new_config t 
		where t.ration_type = #{value}
	</select>
	
	<select id="queryRationConfigByCode" resultType="RationNewConfigInfo">
	    select <include refid="ration_new_config_field" />
		from ration_new_config t
		where otc_code =#{value}and now() between confirm_start_date
		and confirm_end_date
		and ration_status='1'
	</select>
	
</mapper>