client-mapper.xml 8.91 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.user.account.ClientDao">

	<sql id="querySumCondition">
		<if test="bindCard != null and bindCard != ''">
			AND B.BKACCOUNT_REGFLAG = #{bindCard}
		</if>
		<if test="startDate != null and startDate != ''">
			<![CDATA[and t.open_date >= #{startDate}]]>
		</if>
		<if test="endDate != null and endDate != ''">
			<![CDATA[and t.open_date <= #{endDate}]]>
		</if>
	</sql>

	<!-- 开户人数统计 -->
	<select id="searchSum" parameterType="map" resultType="int">
		SELECT COUNT(*)
		FROM HS_ASSET.CLIENT T, HS_ASSET.BANKEXCHACCOUNT B
		WHERE T.CLIENT_ID = B.FUND_ACCOUNT AND T.CLIENT_STATUS = '0'
		<include refid="querySumCondition" />
	</select>

	<select id="search" parameterType="map" resultType="map">
		<include refid="common.pageStart"/>
		SELECT T.OPEN_DATE, COUNT(*) USERS
		FROM HS_ASSET.CLIENT T, HS_ASSET.BANKEXCHACCOUNT B
		WHERE T.CLIENT_ID = B.FUND_ACCOUNT AND T.CLIENT_STATUS = '0'
		<include refid="querySumCondition" />
		GROUP BY T.OPEN_DATE
		ORDER BY T.OPEN_DATE DESC
		<include refid="common.pageEnd"/>
	</select>
	
	<select id="searchTotal" parameterType="map" resultType="int">
		select count(*) from(
			SELECT T.OPEN_DATE, COUNT(*) USERS
			FROM HS_ASSET.CLIENT T, HS_ASSET.BANKEXCHACCOUNT B
			WHERE T.CLIENT_ID = B.FUND_ACCOUNT AND T.CLIENT_STATUS = '0'
			<include refid="querySumCondition" />
			GROUP BY T.OPEN_DATE
		)
	</select>
	
	<!-- 查询可升级用户 -->
	<select id="queryLevelUser" parameterType="map" resultType="map">
	<![CDATA[
		SELECT T.CLIENT_ID, T.ASSET_LEVEL, D.AMOUNT
		FROM HS_ASSET.CLIENT T
		INNER JOIN (
			SELECT A.DEVELOPER, COUNT(A.DEVELOPER) AMOUNT
			FROM HS_ASSET.CLIENTINFO A, HS_ASSET.CLIENT B, HS_ASSET.BANKEXCHACCOUNT C
			WHERE A.CLIENT_ID = B.CLIENT_ID AND A.CLIENT_ID = C.FUND_ACCOUNT AND B.CLIENT_STATUS = '0'
				AND B.ASSET_LEVEL >= #{subordinateLevel} AND C.BKACCOUNT_REGFLAG = '2' AND LENGTH(A.DEVELOPER) > 2
			GROUP BY A.DEVELOPER
			HAVING COUNT(A.DEVELOPER) >= #{subordinateAmount}) D
		ON T.CLIENT_ID = D.DEVELOPER
		WHERE T.ASSET_LEVEL = #{userLevel}
		ORDER BY D.AMOUNT
	]]>
	</select>
	
	<!-- 查询可升级代理商 -->
	<select id="queryLevelAgent" parameterType="map" resultType="map">
	<![CDATA[
		SELECT T.FUND_ACCOUNT AS CLIENT_ID, T.AGENT_NO, D.AMOUNT, E.ASSET_LEVEL
		FROM HS_ASSET.AGENTINFO T
		INNER JOIN (
			SELECT A.DEVELOPER, COUNT(A.DEVELOPER) AMOUNT
			FROM HS_ASSET.CLIENTINFO A, HS_ASSET.CLIENT B, HS_ASSET.BANKEXCHACCOUNT C
			WHERE A.CLIENT_ID = B.CLIENT_ID AND A.CLIENT_ID = C.FUND_ACCOUNT AND B.CLIENT_STATUS = '0'
				AND B.ASSET_LEVEL >= #{subordinateLevel} AND C.BKACCOUNT_REGFLAG = '2'
			GROUP BY A.DEVELOPER
			HAVING COUNT(A.DEVELOPER) >= #{subordinateAmount}) D
		ON T.AGENT_NO = D.DEVELOPER
		INNER JOIN HS_ASSET.CLIENT E ON T.FUND_ACCOUNT = E.CLIENT_ID
		WHERE E.ASSET_LEVEL = #{userLevel}
		ORDER BY D.AMOUNT
	]]>
	</select>
		
	<!-- 修改用户等级 -->
	<update id="updateUserLevel" parameterType="string">
		UPDATE HS_ASSET.CLIENT C SET C.ASSET_LEVEL = #{newLevel}
		WHERE C.CLIENT_ID = #{userId}
	</update>
	
	<!-- 查詢用户等級 -->
	<select id="queryUserLevel" parameterType="string" resultType="String">
		SELECT  ASSET_LEVEL  
		FROM HS_ASSET.CLIENT C 
		WHERE C.CLIENT_ID = #{clientId}
	</select>
	
	<!-- 根据身份证号查询开户状态 -->
	<select id="queryStatusByIdNo" parameterType="string" resultType="map">
		select client_id, client_status from hs_asset.client 
		where id_no = #{idNo}
	</select>
	
	<!-- 查询符合条件的用户 -->
	<select id="queryClientId" parameterType="map" resultType="string">
		SELECT DISTINCT(B.CLIENT_ID) FROM HS_ASSET.BANKEXCHACCOUNT B 
		LEFT JOIN HS_ASSET.CLIENT C 
		ON B.CLIENT_ID = C.CLIENT_ID 
		WHERE LENGTH(B.CLIENT_ID) >= 8 
		AND B.BKACCOUNT_REGFLAG = '2' 
		<if test="clientStatus != null and clientStatus != ''">
			AND C.CLIENT_STATUS = 0 
		</if>
		<if test="startDate != null and startDate != ''">
			<![CDATA[AND B.OPEN_DATE >= #{startDate} ]]> 
		</if>
		<if test="endDate != null and endDate != ''">
			<![CDATA[AND B.OPEN_DATE <= #{endDate} ]]> 
		</if>
		ORDER BY B.CLIENT_ID ASC
	</select>
	
	<!-- 会员体系 -->
	<sql id="searchCondition">
		<if test="level != null and level != ''"> and c.asset_level=#{level} </if>
		<if test="clientId != null and clientId != ''"> and c.client_id = #{clientId} </if>
		<if test="clientName != null and clientName != ''"> and c.client_name = #{clientName} </if>
	</sql>
	
    <!--查询所有会员等级信息  -->
	<select id="searchClient" parameterType="map" resultType="ClientInfo">
		<include refid="common.pageStart" /> 
		select c.asset_level, c.client_name, c.open_date, c.client_id
		from HS_ASSET.CLIENT c, HS_ASSET.BANKEXCHACCOUNT b
		where c.client_id = b.fund_account
			and b.BKACCOUNT_REGFLAG = 2	and c.client_status = 0
		<include refid="searchCondition" />
		order by c.open_date desc, c.client_id desc
		<include refid="common.pageEnd" />
	</select>
	
	<!--查询所有会员数量-->
	<select id="searchClientCount" parameterType="map" resultType="int">
		 select count(*)
         from HS_ASSET.CLIENT c, HS_ASSET.BANKEXCHACCOUNT b
         where c.client_id = b.fund_account
         and b.BKACCOUNT_REGFLAG = 2
         and c.client_status != 3
         <include refid="searchCondition" />
	</select>
	
	<!-- 查询下属会员信息 -->
	<select id="queryUnderInfo"  parameterType="map" resultType="map">
	    <include refid="common.pageStart" />      
         SELECT A.ASSET_LEVEL, A.CLIENT_ID, A.CLIENT_NAME, A.OPEN_DATE, B.DEVELOPER, C.BKACCOUNT_REGFLAG
         FROM HS_ASSET.CLIENT A, HS_ASSET.CLIENTINFO B, HS_ASSET.BANKEXCHACCOUNT C
         WHERE A.CLIENT_ID = B.CLIENT_ID AND A.CLIENT_ID = C.CLIENT_ID 
         AND A.CLIENT_STATUS = '0' 
         <include refid="searchUnderCondition"/>
         <include refid="common.pageEnd" />
	</select>
	
	<!-- 查询下属会员数量 -->
	<select id="queryUnderTotal"  parameterType="map" resultType="int">
		 SELECT COUNT(*)
         FROM HS_ASSET.CLIENT A, HS_ASSET.CLIENTINFO B, HS_ASSET.BANKEXCHACCOUNT C
         WHERE A.CLIENT_ID = B.CLIENT_ID AND A.CLIENT_ID = C.CLIENT_ID 
         AND A.CLIENT_STATUS = '0' 
        <include refid="searchUnderCondition"/>
	</select>
	
	<sql id="searchUnderCondition">
	    <if test="regflag != null and regflag != ''"> and C.BKACCOUNT_REGFLAG = #{regflag} </if>
	    <if test="clientId != null and clientId != ''"> and B.DEVELOPER = #{clientId} </if>
		<if test="underId != null and underId != ''"> and A.CLIENT_ID = #{underId} </if>
		<if test="underName != null and underName != ''"> and A.CLIENT_NAME = #{underName} </if>
		<if test="startDate != null and startDate != ''"> 
			<![CDATA[ and A.OPEN_DATE >= #{startDate}]]>
		</if>
		<if test="endDate != null and endDate != ''">
			<![CDATA[ and A.OPEN_DATE <= #{endDate}]]>
		</if>
	</sql>
	
	<select id="queryForSendGift" parameterType="map" resultType="map">
		<![CDATA[SELECT C.CLIENT_ID,C.CLIENT_NAME,C.ID_NO,C.ID_KIND 
		FROM HS_ASSET.CLIENT C 
		INNER JOIN HS_ASSET.OTCHOLDER O ON C.CLIENT_ID = O.CLIENT_ID 
		INNER JOIN HS_ASSET.BANKEXCHACCOUNT B ON C.CLIENT_ID = B.CLIENT_ID 
		WHERE C.OPEN_DATE < #{nowDate} AND B.BKACCOUNT_REGFLAG = '2' AND C.CLIENT_STATUS = 0 
		AND O.OTC_ACCOUNT NOT IN 
		(SELECT H.SDC_ACCOUNT FROM HS_HIS.HIS_SDCOSTOCKJOUR H WHERE H.OP_STATION = 'cms' 
		AND H.BUSINESS_FLAG = '22008' AND H.REMARK LIKE '流通股非交易过户%')]]>
	</select>
	
	<!-- 查询推荐用户数大于等于15的推荐人列表 -->
	<select id="queryDeveloperList" resultType="map">
		SELECT DEVELOPER,COUNT(DEVELOPER) NUM FROM HS_ASSET.CLIENTINFO T 
		INNER JOIN HS_ASSET.CLIENT C ON T.CLIENT_ID = C.CLIENT_ID 
		INNER JOIN HS_ASSET.BANKEXCHACCOUNT B ON T.CLIENT_ID = B.CLIENT_ID 
		WHERE B.BKACCOUNT_REGFLAG = 2 AND C.CLIENT_STATUS = 0 
		GROUP BY T.DEVELOPER 
		HAVING COUNT(T.DEVELOPER) >= 15 AND TRIM(T.DEVELOPER) IS NOT NULL AND T.DEVELOPER != '5001'
	</select>
	
	<!-- 将所有会员等级为空的设置为0(柜台开的机构会员账号好像会为空) -->
	<update id="repairLevel">
		UPDATE HS_ASSET.CLIENT T SET T.ASSET_LEVEL = '0' WHERE T.ASSET_LEVEL = ' '
	</update>
	
	<!-- 根据用户号查询用户名 -->
	<select id="queryNameById" parameterType="string" resultType="string">
		SELECT CLIENT_NAME FROM HS_ASSET.CLIENT WHERE CLIENT_ID = #{clientId}
	</select>
	
	<select id="queryForReOperate" parameterType="java.util.List" resultType="string">
		SELECT F.CLIENT_ID FROM HS_FUND.FUNDREAL F 
		INNER JOIN HS_ASSET.CLIENT T ON F.CLIENT_ID = T.CLIENT_ID 
		WHERE F.CURRENT_BALANCE > 0 AND F.CLIENT_ID IN 
		<foreach collection="list" item="item" index="index" open="(" separator="," close=")">#{item}</foreach> 
	</select>
	
	<!-- 查询用户类型(0:个人用户  1:企业用户) -->
	<select id="queryOrganFlag" parameterType="string" resultType="string">
		SELECT ORGAN_FLAG FROM HS_ASSET.CLIENT 
		WHERE CLIENT_ID = #{clientId}
	</select>
</mapper>