ration-invite-config-mapper.xml 5.4 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.RationInviteConfigDao">
	
	
	<resultMap id="queryAll" type="RationInviteConfigInfo">
		<id property="otcCode" column="otc_code"/>
		<result property="id" column="id"/>
		<result property="otcName" column="otc_name"/>
		<result property="price" column="price"/>
		<result property="minApply" column="min_apply"/>
		<result property="maxApply" column="max_apply"/>
		<result property="rationAmount" column="ration_amount"/>
		<result property="noticeUrl" column="notice_url"/>
		<result property="confirmStartDate" column="confirm_start_date"/>
		<result property="confirmEndDate" column="confirm_end_date"/>
		<result property="rationStatus" column="ration_status"/>
		<result property="rationResult" column="ration_result"/>
		<result property="createAt" column="create_at"/>
		<result property="createBy" column="create_by"/>				
		<collection property="users" ofType="RationInviteUserInfo">
			<id property="rationInviteConfigId" column="ration_invite_config_id"/>
			<result property="id" column="u_id"/>
			<result property="userId" column="user_id"/>
			<result property="percent" column="percent"/>
		</collection>
	</resultMap>
	
	<sql id="ration_invite_config_field">
		t.id,t.otc_code,t.otc_name,t.price,t.ration_amount,t.agree_amount,t.min_apply,t.max_apply,t.notice_url
		,t.confirm_start_date,t.confirm_end_date,t.ration_status,t.ration_result,t.create_at,t.create_by
	</sql>
	
	<update id="update" parameterType="RationInviteConfigInfo">
		update ration_invite_config set
		otc_code = #{otcCode}, otc_name = #{otcName}, price = #{price}, ration_amount = #{rationAmount}, 
		 notice_url = #{noticeUrl}, min_apply = #{minApply}, max_apply = #{maxApply},
		confirm_start_date = #{confirmStartDate}, confirm_end_date = #{confirmEndDate},
		<if test="rationStatus != null and rationStatus != ''">
			 ration_status = #{rationStatus} ,
		</if>
		 ration_result = #{rationResult}
		where id = #{id} 
	</update>
	
	
	<!-- 查询指定编号配置 -->
	<select id="queryById" parameterType="int" resultType="RationInviteConfigInfo">
		select <include refid="ration_invite_config_field" />
		from ration_invite_config  t
		where t.id = #{value}
	</select>
	
	<insert id="insert" parameterType="RationNewConfigInfo" useGeneratedKeys="true" keyProperty="id">
		insert into ration_invite_config (otc_code, otc_name, price, ration_amount, agree_amount, notice_url, min_apply,max_apply,
			ration_result, confirm_start_date, confirm_end_date, ration_status,create_at, create_by)
		values(#{otcCode}, #{otcName}, #{price}, #{rationAmount}, #{agreeAmount}, #{noticeUrl}, #{minApply},#{maxApply},
			#{rationResult}, #{confirmStartDate}, #{confirmEndDate}, #{rationStatus}, CURRENT_TIMESTAMP, #{createBy})
	</insert>
	
	
	<select id="search" parameterType="map" resultType="RationInviteConfigInfo">
		select <include refid="ration_invite_config_field" /> 
		from ration_invite_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_invite_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_invite_config_id from ration_invite_user 
				where user_id = #{userId}) 
		</if>
	</sql>
	
	
	<!-- 配售规则作废 -->
	<update id="updateCancel">
		update ration_invite_config set ration_status = '0' 
		where id = #{id} and ration_status = '1'
	</update>
	
		<!-- 根据藏品编号查询配售规则(非作废和失败状态) -->
	<select id="queryByOtcCode" parameterType="map" resultType="RationNewConfigInfo">
		select <include refid="ration_invite_config_field" /> 
		from ration_invite_config t 
		where t.otc_code = #{otcCode} and 
		(t.ration_status is null or 
		t.ration_status not in (#{rationStatus}))
	</select>
	
	<!-- 获取配售规则信息及对应的新品配售用户信息 -->
	<select id="queryAllById" parameterType="int" resultMap="queryAll">
		select <include refid="ration_invite_config_field" />, r.id as u_id, r.user_id, r.otc_account, r.percent 
		from ration_invite_config t left join ration_invite_user r on t.id = r.ration_invite_config_id 
		where t.id = #{id}
	</select>
	
	<!-- 应邀配售 -->
	<select id="queryQualityById" parameterType="int" resultType="RationInviteQualityInfo">
		select * from ration_invite_quality where ration_invite_config_id=#{value}	
	</select>
	
	<!-- 查询没有作废的应邀设置 -->
	<select id="searchCodes" resultType="java.lang.String">
	
			<![CDATA[	select otc_code from ration_invite_config where ration_status<>'0']]>
	</select>
	
	<!-- 根据藏品代码和会员号查询应邀资格 -->
</mapper>