ration-old-quality-mapper.xml 3.88 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 tongxiaochuan -->
<mapper namespace="com.cjs.cms.dao.ration.RationOldQualityDao">

	<sql id="ration_old_quality_field">
		id, ration_old_config_id, user_id, stock_amount, buy_amount, quality_amount, ration_amount, create_at, create_by
	</sql>
	
	<sql id="searchCondition">
		where 1 = 1
		<if test="otcName != null and otcName != ''">
			and	b.otc_name = #{otcName}
		</if>
		<if test="otcCode!=null and otcCode !=''">
			and	b.otc_code = #{otcCode}
		</if>
		<if test="userId!=null and userId !=''">
			and	a.user_id = #{userId}
		</if>
		<if test="sellUserId != null and sellUserId != ''">
			and	b.sell_user_id = #{sellUserId}
		</if>
		<if test="buyUserId != null and buyUserId != ''">
			and	b.buy_user_id = #{buyUserId}
		</if>
		<if test="rationStatus != null and rationStatus != ''">
			and	b.ration_status = #{rationStatus}
		</if>
		<if test="startDate != null and startDate != ''"> 
			<![CDATA[ and a.create_at >= #{startDate}]]>
		</if>
		<if test="endDate != null and endDate != ''"> 
			<![CDATA[ and a.create_at <= #{endDate}]]>
		</if>
	</sql>
	
	<!-- 查询在托管分配 -->
	<select id="search" parameterType="map" resultType="map">
		select b.otc_code, b.otc_name, a.user_id, a.buy_amount, a.stock_amount, a.quality_amount,
			a.ration_amount, DATE_FORMAT(a.create_at,'%Y-%m-%d') create_at, a.create_by, b.ration_status
		from ration_old_quality a left join ration_old_config b on a.ration_old_config_id=b.id 
		<include refid="searchCondition" /> 
		<include refid="common.pageLimit" />
	</select>
	<select id="searchTotal" parameterType="map" resultType="int">
		select count(1) 
		from ration_old_quality a left join ration_old_config b on a.ration_old_config_id=b.id 
		<include refid="searchCondition" /> 
	</select>
	<select id="searchFooter" parameterType="map" resultType="map">
		select sum(a.buy_amount) as buy_amount, sum(a.stock_amount) stock_amount, 
			sum(a.quality_amount) quality_amount, sum(a.ration_amount) ration_amount
		from ration_old_quality a left join ration_old_config b on a.ration_old_config_id=b.id 
		<include refid="searchCondition" /> 
	</select>

	<insert id="insert" parameterType="RationOldQualityInfo">
		insert into ration_old_quality(ration_old_config_id, user_id, stock_amount, 
			buy_amount, quality_amount, ration_amount, create_at, create_by) 
		values(#{rationOldConfigId}, #{userId}, #{stockAmount}, #{buyAmount}, #{qualityAmount}, 
			#{rationAmount}, CURRENT_TIMESTAMP,  #{createBy})
	</insert>
	
	<!-- 查询指定规则的同意配售数量未使用完的用户 -->
	<select id="queryUserByRationAmount" parameterType="int" resultType="RationOldQualityInfo">
		<![CDATA[select user_id from ration_old_quality 
		where ration_old_config_id = #{rationOldConfigId} 
		and ration_amount < quality_amount]]>  
	</select>
	
	<!-- 查询待配售信息 -->
	<select id="queryByConfigId" parameterType="int" resultType="RationOldQualityInfo">
		select <include refid="ration_old_quality_field" /> from ration_old_quality 
		where ration_old_config_id = #{rationOldConfigId} and ration_amount != 0
	</select>
	
	<select id="queryRationAmount" resultType="int">
		select ration_amount from ration_old_quality 
		where ration_old_config_id = #{rationOldConfigId} and user_id = #{userId} 
	</select>
	
	<select id="queryByConfigAndUser" parameterType="map" resultType="RationOldQualityInfo">
		select <include refid="ration_old_quality_field" /> 
		from ration_old_quality 
		where ration_old_config_id = #{rationOldConfigId} and user_id = #{userId}
	</select>
	
	<update id="updateDistribute" parameterType="RationOldQualityInfo">
		update ration_old_quality 
		set stock_amount = #{stockAmount}, quality_amount = #{qualityAmount} 
		where ration_old_config_id = #{rationOldConfigId} and user_id = #{userId}
	</update>
</mapper>