ration-old-record-mapper.xml 5.9 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.RationOldRecordDao">

	<sql id="ration_old_record_field">
		id, ration_old_config_id, ration_old_quality_id, sell_user_id, sell_otc_account, 
		buy_user_id, buy_otc_account, apply_no, pre_in_status, approval_count, fund, stock_amount, registration, 
		ration_status, remark, cost_price_status, 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	a.sell_user_id = #{sellUserId}
		</if>
		<if test="buyUserId != null and buyUserId != ''">
			and	a.buy_user_id = #{buyUserId}
		</if>
		<if test="rationStatus != null and rationStatus != ''">
			and	a.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 a.apply_no, b.otc_code, b.otc_name, a.sell_user_id, a.buy_user_id, a.stock_amount, a.remark,
			a.fund, a.ration_status, a.registration, a.create_by, DATE_FORMAT(a.create_at,'%Y-%m-%d') create_at
		from ration_old_record 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_record 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.stock_amount) stock_amount, sum(a.fund) fund 
		from ration_old_record a 
		left join ration_old_config b on a.ration_old_config_id=b.id
		<include refid="searchCondition" />
	</select>
	
	<insert id="insert" parameterType="RationOldRecordInfo" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
		insert ration_old_record(ration_old_config_id, ration_old_quality_id, sell_user_id, sell_otc_account, 
			buy_user_id, buy_otc_account, apply_no, pre_in_status, approval_count, fund, stock_amount, registration, 
			ration_status, remark, cost_price_status, create_at, create_by)
		values(#{rationOldConfigId}, #{rationOldQualityId}, #{sellUserId}, #{sellOtcAccount}, 
			#{buyUserId}, #{buyOtcAccount}, #{applyNo}, #{preInStatus}, #{approvalCount}, #{fund}, #{stockAmount}, 
			#{registration}, #{rationStatus}, #{remark}, '0', CURRENT_TIMESTAMP, #{createBy})
	</insert>
	
	<update id="updateById" parameterType="RationOldRecordInfo">
		update ration_old_record set 
		<if test="preInStatus != null and preInStatus != ''"> pre_in_status = #{preInStatus}, </if>
		<if test="rationStatus != null and rationStatus != ''"> ration_status = #{rationStatus}, </if>
		<if test="remark != null and remark != ''"> remark = #{remark}, </if>
		create_by = create_by
		where id = #{id}
	</update>
	
	<!-- 修改-->
	<update id="updateByApplyNo" parameterType="RationOldRecordInfo">
		update ration_old_record set 
		<if test="preInStatus != null and preInStatus != ''"> pre_in_status = #{preInStatus}, </if>
		<if test="rationStatus != null and rationStatus != ''"> ration_status = #{rationStatus}, </if>
		<if test="remark != null and remark != ''"> remark = #{remark}, </if>
		create_by = create_by
		where apply_no = #{applyNo}
	</update>
	
	<!-- 配售记录数量 -->
	<select id="queryRecordCount" resultType="int">
		select count(1)
		from ration_old_record
		where ration_old_config_id = #{rationOldConfigId}
		<if test="rationStatus != null and rationStatus != ''">
			and ration_status = #{rationStatus}
		</if>
	</select>
	
	<!-- 查询导出配售记录 -->
	<select id="queryRecord" resultType="map" parameterType="map">
		select apply_no,buy_user_id,stock_amount 
		from ration_old_record 
		where ration_old_config_id = #{rationOldConfigId} 
			and pre_in_status = #{preInStatus} 
			and registration = #{registration} 
			and ration_status = #{rationStatus} 
	</select>
	
	<!-- 导出状态更新 -->
	<update id="updateExport" parameterType="map">
		update ration_old_record set registration = 1, export_at = CURRENT_TIMESTAMP  
		where ration_old_config_id = #{rationOldConfigId} 
			and pre_in_status = #{preInStatus} 
			and registration = #{registration} 
			and ration_status = #{rationStatus} 
	</update>
	
	<select id="queryReordByCondition" resultType="RationOldRecordInfo">
		select <include refid="ration_old_record_field" /> 
		from ration_old_record 
		where buy_user_id = #{buyUserId} and ration_old_config_id = #{rationOldConfigId} 
	</select>
	
	<!-- 查询指定用户、指定藏品获得的配售数量 -->
	<select id="queryStockAmount" resultType="int">
		select sum(stock_amount) 
		from ration_old_record 
		where ration_old_config_id = #{rationOldConfigId} and buy_user_id = #{buyUserId} 
		group by buy_user_id;
	</select>
	
	<select id="queryForCostPrice" parameterType="int" resultType="map">
		select t.id,r.otc_code otcCode,r.price,t.buy_user_id userId,t.stock_amount stockAmount 
		from ration_old_record t 
		inner join ration_old_config r 
		on t.ration_old_config_id = r.id 
		where t.pre_in_status = '1' and t.registration = '1' and cost_price_status = '0' 
		and t.ration_status = '1' and t.ration_old_config_id = #{rationOldConfigId}
	</select>
	
	<update id="updateCostPriceStatus" parameterType="int">
		update ration_old_record set cost_price_status = '1' 
		where id = #{id} and cost_price_status = '0'
	</update>
</mapper>