his-otcdeliver-mapper.xml 5.42 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.agent.HisOtcDeliverDao">

	<!-- 一级代理商相关查询 -->
	<sql id="memberCondition">
		WHERE A.AGENT_NO IS NOT NULL 
		AND H.FARE0 != 0 
		<if test="agentNo != null and agentNo != ''">
			AND (A.AGENT_NO = #{agentNo} OR A.UP_AGENT_NO = #{agentNo}) 
		</if>
		<if test="fundAccount != null and fundAccount != ''">
			AND H.FUND_ACCOUNT = #{fundAccount} 
		</if>
		<if test="startDate != null and startDate != ''">
			<![CDATA[AND H.ENTRUST_DATE >= #{startDate} ]]>
		</if>
		<if test="endDate != null and endDate != ''">
			<![CDATA[AND H.ENTRUST_DATE <= #{endDate} ]]>
		</if>
	</sql>
	
	<select id="queryTradeMember" parameterType="map" resultType="map">
		<include refid="common.pageStart" /> 
		SELECT A.AGENT_NO, A.FUND_ACCOUNT AGENT_CLIENT_ID, H.FUND_ACCOUNT, H.FARE0, A.AGENT_LEVEL FROM HS_HIS.HIS_OTCDELIVER_VIEW H 
		LEFT JOIN HS_ASSET.ASSET_CLIENT_INFO_VIEW C ON H.FUND_ACCOUNT = C.CLIENT_ID 
		LEFT JOIN HS_ASSET.AGENTINFO A ON C.DEVELOPER = A.AGENT_NO 
		<include refid="memberCondition" />
		ORDER BY H.ENTRUST_DATE DESC 
		<include refid="common.pageEnd" />
	</select>
	
	<select id="queryTradeMemberTotal" parameterType="map" resultType="int">
		SELECT COUNT(1) FROM HS_HIS.HIS_OTCDELIVER_VIEW H 
		LEFT JOIN HS_ASSET.ASSET_CLIENT_INFO_VIEW C ON H.FUND_ACCOUNT = C.CLIENT_ID 
		LEFT JOIN HS_ASSET.AGENTINFO A ON C.DEVELOPER = A.AGENT_NO 
		<include refid="memberCondition" /> 
	</select>
	
	<select id="queryTradeMemberSum" parameterType="map" resultType="map">
		SELECT '汇总' FUND_ACCOUNT, SUM(H.FARE0) FARE0 FROM HS_HIS.HIS_OTCDELIVER_VIEW H
		LEFT JOIN HS_ASSET.ASSET_CLIENT_INFO_VIEW C ON H.FUND_ACCOUNT = C.CLIENT_ID 
		LEFT JOIN HS_ASSET.AGENTINFO A ON C.DEVELOPER = A.AGENT_NO
		<include refid="memberCondition" />
	</select>
	
	<!-- 二级代理商相关查询 -->
	<sql id="agentCondition">
		WHERE A.AGENT_NO IS NOT NULL 
		AND A.AGENT_LEVEL = 1 AND H.FARE0 != 0 
		<if test="agentNo != null and agentNo != ''">
			AND A.AGENT_NO = #{agentNo} 
		</if>
		<if test="fundAccount != null and fundAccount != ''">
			AND H.FUND_ACCOUNT = #{fundAccount} 
		</if>
		<if test="startDate != null and startDate != ''">
			<![CDATA[AND H.ENTRUST_DATE >= #{startDate} ]]>
		</if>
		<if test="endDate != null and endDate != ''">
			<![CDATA[AND H.ENTRUST_DATE <= #{endDate} ]]>
		</if>
	</sql>
	
	<select id="queryTradeAgent" parameterType="map" resultType="map">
		<include refid="common.pageStart" /> 
		SELECT A.AGENT_NO, A.FUND_ACCOUNT AGENT_CLIENT_ID, H.FUND_ACCOUNT, H.FARE0 FROM HS_HIS.HIS_OTCDELIVER_VIEW H 
		LEFT JOIN HS_ASSET.ASSET_CLIENT_INFO_VIEW C ON H.FUND_ACCOUNT = C.CLIENT_ID 
		LEFT JOIN HS_ASSET.AGENTINFO A ON C.DEVELOPER = A.AGENT_NO 
		<include refid="agentCondition" />
		ORDER BY H.ENTRUST_DATE DESC 
		<include refid="common.pageEnd" />
	</select>
	
	<select id="queryTradeAgentTotal" parameterType="map" resultType="int">
		SELECT COUNT(1) FROM HS_HIS.HIS_OTCDELIVER_VIEW H 
		LEFT JOIN HS_ASSET.ASSET_CLIENT_INFO_VIEW C ON H.FUND_ACCOUNT = C.CLIENT_ID 
		LEFT JOIN HS_ASSET.AGENTINFO A ON C.DEVELOPER = A.AGENT_NO 
		<include refid="agentCondition" /> 
	</select>
	
	<select id="queryTradeAgentSum" parameterType="map" resultType="map">
		SELECT '汇总' FUND_ACCOUNT, SUM(H.FARE0) FARE0 FROM HS_HIS.HIS_OTCDELIVER_VIEW H
		LEFT JOIN HS_ASSET.ASSET_CLIENT_INFO_VIEW C ON H.FUND_ACCOUNT = C.CLIENT_ID 
		LEFT JOIN HS_ASSET.AGENTINFO A ON C.DEVELOPER = A.AGENT_NO
		<include refid="agentCondition" />
	</select>
	
	<select id="queryDailyBusinessBalance" parameterType="map" resultType="map">
		SELECT O.CLIENT_ID,SUM(T.BUSINESS_BALANCE) BUSINESS_BALANCE 
		FROM HS_HIS.HIS_OTCDELIVER T 
		INNER JOIN HS_ASSET.OTCHOLDER O ON T.OTC_ACCOUNT = O.OTC_ACCOUNT 
		WHERE T.INIT_DATE = #{initDate} 
		AND T.BUSINESS_FLAG = '35018' AND T.OTC_CODE IN 
		<foreach collection="otcCode" item="item" index="index" open="(" separator="," close=")">#{item}</foreach> 
		GROUP BY O.CLIENT_ID
	</select>
	
	<!-- 查询用户首次买入日为指定日期的买入额达标用户列表 -->
	<select id="queryUserForFirstBuyDay" parameterType="map" resultType="string">
		<![CDATA[SELECT R.CLIENT_ID FROM 
		(SELECT SUM(H.BUSINESS_BALANCE) BUSINESS_BALANCE,H.CLIENT_ID FROM HS_HIS.HIS_OTCDELIVER H 
		WHERE H.BUSINESS_FLAG = '35018' AND H.INIT_DATE <= #{initDate} 
		GROUP BY H.CLIENT_ID ) D 
		RIGHT JOIN 
		(SELECT SUM(T.BUSINESS_BALANCE) BUSINESS_BALANCE,T.CLIENT_ID FROM HS_HIS.HIS_OTCDELIVER T 
		WHERE T.BUSINESS_FLAG = '35018' AND T.INIT_DATE = #{initDate} 
		GROUP BY T.CLIENT_ID HAVING SUM(T.BUSINESS_BALANCE) >= #{minAmount}) R 
		ON D.CLIENT_ID = R.CLIENT_ID 
		WHERE D.BUSINESS_BALANCE = R.BUSINESS_BALANCE 
		ORDER BY R.CLIENT_ID]]>
	</select>
	
	<select id="queryListForTradeRecord" parameterType="map" resultType="map">
		SELECT #{initDate} INIT_DATE,M.CLIENT_ID CLIENT_ID,SUM(M.TOTAL) TOTAL,COUNT(1) NUM FROM 
		(SELECT T.CLIENT_ID,T.OTC_CODE,SUM(T.BUSINESS_BALANCE) TOTAL FROM HS_HIS.HIS_OTCDELIVER T 
		WHERE T.BUSINESS_FLAG = '35018' AND T.INIT_DATE = #{initDate} 
		AND T.OTC_CODE IN 
		<foreach collection="otcCode" item="item" index="index" open="(" separator="," close=")">#{item}</foreach>
		GROUP BY T.CLIENT_ID,T.OTC_CODE 
		HAVING SUM(T.BUSINESS_BALANCE) >= #{limitBalance} 
		ORDER BY T.CLIENT_ID ASC, T.OTC_CODE ASC) M 
    	GROUP BY CLIENT_ID
	</select>
	
</mapper>