client-info-mapper.xml
7.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<?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.user.account.ClientInfoDao">
<update id="updateDeveloper" parameterType="map">
update HS_ASSET.CLIENTINFO set DEVELOPER = #{developer}
where CLIENT_ID = #{clientId}
</update>
<select id="queryByClientId" parameterType="String" resultType="ClientInfo">
SELECT A.CLIENT_ID, A.CLIENT_NAME, A.ID_NO, A.MOBILE_TEL, A.OPEN_DATE, A.DEVELOPER
FROM HS_ASSET.ASSET_CLIENT_INFO_VIEW A
WHERE CLIENT_ID = #{clientId}
</select>
<select id="queryByClientName" parameterType="String" resultType="ClientInfo">
SELECT A.CLIENT_ID, A.CLIENT_NAME, A.ID_NO, A.MOBILE_TEL, A.OPEN_DATE, A.DEVELOPER
FROM HS_ASSET.ASSET_CLIENT_INFO_VIEW A
WHERE CLIENT_NAME = #{clientName}
</select>
<select id="queryCountByDeveloper" parameterType="string" resultType="int">
SELECT COUNT(1) FROM HS_ASSET.CLIENT A
INNER JOIN HS_ASSET.BANKEXCHACCOUNT B ON A.CLIENT_ID = B.CLIENT_ID
INNER JOIN HS_ASSET.CLIENTINFO T ON A.CLIENT_ID = T.CLIENT_ID
WHERE B.BKACCOUNT_REGFLAG = 2 AND T.DEVELOPER = #{developer}
AND A.CLIENT_STATUS = 0
</select>
<!-- 根据推荐人递归查询指定时间内推荐人数(所有层的下级推荐都算) -->
<select id="queryGroupByDeveloper" parameterType="map" resultType="map">
SELECT COUNT(1) NUM FROM
(SELECT CASE WHEN A.AGENT_NO IS NOT NULL THEN A.AGENT_NO ELSE T.CLIENT_ID END CLIENT_ID,
T.DEVELOPER, C.OPEN_DATE 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
LEFT JOIN HS_ASSET.AGENTINFO A ON T.CLIENT_ID = A.FUND_ACCOUNT
WHERE B.BKACCOUNT_REGFLAG = 2 AND C.CLIENT_STATUS = 0)
WHERE OPEN_DATE BETWEEN #{startDate} AND #{endDate}
START WITH DEVELOPER = #{developer}
CONNECT BY NOCYCLE PRIOR CLIENT_ID = DEVELOPER
</select>
<!-- 查询指定用户列表中用户的推荐人账号及对应推荐人数 -->
<select id="queryCountForDeveloper" parameterType="java.util.List" resultType="map">
SELECT E.DEVELOPER CLIENT_ID,COUNT(1) SUM FROM (
SELECT CASE LENGTH(TRIM(A.AGENT_NO)) WHEN 6 THEN A.FUND_ACCOUNT
WHEN 4 THEN A.FUND_ACCOUNT ELSE TRIM(T.DEVELOPER) END DEVELOPER FROM HS_ASSET.CLIENTINFO T
LEFT JOIN HS_ASSET.AGENTINFO A ON T.DEVELOPER = A.AGENT_NO
WHERE T.DEVELOPER != '5001' AND TRIM(T.DEVELOPER) IS NOT NULL
AND T.CLIENT_ID IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">#{item}</foreach>
) E
GROUP BY E.DEVELOPER
</select>
<select id="queryDeveloperByClientId" parameterType="string" resultType="string">
<![CDATA[SELECT CASE WHEN LENGTH(TRIM(DEVELOPER)) <= 6 THEN A.FUND_ACCOUNT ELSE TRIM(T.DEVELOPER) END DEVELOPER
FROM HS_ASSET.CLIENTINFO T
LEFT JOIN HS_ASSET.AGENTINFO A ON T.DEVELOPER = A.AGENT_NO
WHERE CLIENT_ID = #{clientId}]]>
</select>
<sql id="queryclientUnderCountSql">
<!-- 35018买入,35017卖出 -->
select ${clientId} clientId,cc.client_id, cc.developer,
dd.buybusiness,dd.sellbusiness,
ee.client_name,
ff.client_name
developname,ee.asset_level
from (select client_id, developer
from (select
bb.agent_no,
bb.fund_account,
case
when bb.agent_no is not null then
bb.fund_account
else
aa.developer
end developer,
aa.client_id,
aa.mobile_tel
from HS_ASSET.CLIENTINFO aa, HS_ASSET.AGENTINFO bb
where
aa.developer = bb.agent_no(+))
start with client_id = #{clientId}
connect by prior client_id = developer) cc,
(
select client_id ,sum(sellbusiness) sellbusiness,
sum(buybusiness)buybusiness
from(
select
case when business_flag='35017' then abs(cc.business_amount) *
cc.business_price else 0 end
sellbusiness,
case when business_flag='35018' then abs(cc.business_amount) *
cc.business_price
else 0 end buybusiness,client_id
from HS_HIS.HIS_OTCDELIVER cc where 1=1
<if test="startDate != null and startDate != ''">
<![CDATA[and cc.init_date >= #{startDate}]]>
</if>
<if test="endDate != null and endDate != ''">
<![CDATA[ and cc.init_date <= #{endDate}]]>
</if>
) group by client_id
) dd,
HS_ASSET.CLIENT ee,
HS_ASSET.CLIENT ff
where cc.client_id = dd.client_id(+)
and cc.client_id = ee.client_id(+)
and cc.developer = ff.client_id(+)
order by decode(cc.client_id,#{clientId},cc.client_id) , cc.developer desc
</sql>
<select id="queryclientUnderCount" resultType="map" parameterType="map">
<include refid="common.pageStart"/>
<include refid="queryclientUnderCountSql"/>
<include refid="common.pageEnd"/>
</select>
<select id="queryclientUnderCountTotal" parameterType="map" resultType="int">
select count(1) from (<include refid="queryclientUnderCountSql"/>)
</select>
<!-- 汇总 -->
<select id="querySumCountTatal" parameterType="map" resultType="map">
select count(client_id)CLIENT_ID,sum(buybusiness)buybusiness,sum(sellbusiness)sellbusiness
from (<include refid="queryclientUnderCountSql"/>)
</select>
<!-- 导出 下辖会员统计-->
<select id="exportUnderClientTotal" resultType="map" parameterType="map">
<include refid="queryclientUnderCountSql"/>
</select>
<!-- 根据用户号查询汇付开户绑卡相关信息 -->
<select id="queryForPnr" parameterType="string" resultType="map">
SELECT T.MOBILE_TEL, R.CLIENT_NAME, R.ID_NO, E.BANK_ACCOUNT, B.OPEN_BANK_CODE,
B.PROVINCE_CODE, B.CITY_CODE
FROM HS_ASSET.CLIENTINFO T
INNER JOIN HS_ASSET.CLIENT R ON T.CLIENT_ID = R.CLIENT_ID
INNER JOIN HS_ASSET.BANKINOUTACCOUNT B ON T.CLIENT_ID = B.CLIENT_ID
INNER JOIN HS_ASSET.BANKEXCHACCOUNT E ON T.CLIENT_ID = E.CLIENT_ID
WHERE T.CLIENT_ID = #{clientId}
</select>
<!-- 查询所有开户完全成功的用户 -->
<select id="queryAllUserRegisterSuccessed" resultType="string">
SELECT A.CLIENT_ID FROM HS_ASSET.CLIENT A
INNER JOIN HS_ASSET.BANKEXCHACCOUNT B ON A.CLIENT_ID = B.CLIENT_ID
INNER JOIN HS_ASSET.CLIENTINFO T ON A.CLIENT_ID = T.CLIENT_ID
WHERE B.BKACCOUNT_REGFLAG = 2 AND A.CLIENT_STATUS = 0
ORDER BY A.CLIENT_ID ASC
</select>
<!-- 为指定日期内开户成功的用户补发配额 -->
<select id="queryForSendPoint" resultType="string">
SELECT A.CLIENT_ID FROM HS_ASSET.CLIENT A
INNER JOIN HS_ASSET.BANKEXCHACCOUNT B ON A.CLIENT_ID = B.CLIENT_ID
INNER JOIN HS_ASSET.CLIENTINFO T ON A.CLIENT_ID = T.CLIENT_ID
WHERE B.BKACCOUNT_REGFLAG = 2 AND A.CLIENT_STATUS = 0
AND A.OPEN_DATE BETWEEN '20170101' AND '20170222'
ORDER BY A.CLIENT_ID ASC
</select>
<update id="inheritDeveloper" parameterType="DeveloperChangeRecordInfo">
UPDATE HS_ASSET.CLIENTINFO R SET R.DEVELOPER = #{newDeveloper}
WHERE R.CLIENT_ID IN (SELECT T.CLIENT_ID FROM HS_ASSET.CLIENTINFO T WHERE T.DEVELOPER = #{oldDeveloper})
</update>
<!-- 根据指定用户的推荐用户 -->
<select id="queryClientByDeveloper" parameterType="string" resultType="string">
SELECT CLIENT_ID FROM HS_ASSET.CLIENTINFO
WHERE DEVELOPER = #{developer}
</select>
<select id="queryClientStatus" parameterType="string" resultType="int">
SELECT COUNT(1) FROM HS_ASSET.CLIENT A
INNER JOIN HS_ASSET.BANKEXCHACCOUNT B ON A.CLIENT_ID = B.CLIENT_ID
INNER JOIN HS_ASSET.CLIENTINFO T ON A.CLIENT_ID = T.CLIENT_ID
WHERE B.BKACCOUNT_REGFLAG = 2 AND A.CLIENT_STATUS = 0
AND A.CLIENT_ID = #{clientId}
</select>
</mapper>