otc-entrust-mapper.xml
5.01 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
<?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">
<!-- 当天委托交易(hs_otc.otcentrust) @author tongyufu -->
<mapper namespace="com.cjs.cms.dao.trade.OtcEntrustDao">
<sql id="otc_entrust_field">
E.OTC_CODE, E.OTC_NAME, E.OTC_PROP, E.ENTRUST_PRICE, E.ENTRUST_AMOUNT, E.ENTRUST_STATUS,
E.BUSINESS_PRICE, E.BUSINESS_AMOUNT, E.BUSINESS_BALANCE, E.CURR_DATE, E.CURR_TIME
</sql>
<!-- 最新发布 -->
<select id="queryLastEntrust" resultType="OtcEntrustInfo">
<include refid="common.pageStart" />
SELECT E.OTC_CODE, E.OTC_NAME, E.OTC_PROP, E.ENTRUST_PRICE, (E.ENTRUST_AMOUNT - E.BUSINESS_AMOUNT) ENTRUST_AMOUNT,
E.ENTRUST_STATUS, E.BUSINESS_PRICE, E.BUSINESS_AMOUNT, E.BUSINESS_BALANCE, E.CURR_DATE, E.CURR_TIME
FROM HS_OTC.OTCENTRUST E
WHERE (E.OTC_PROP = '0S0' OR E.OTC_PROP = '0B0') AND (E.ENTRUST_STATUS = '2' OR E.ENTRUST_STATUS = '7')
ORDER BY E.CURR_TIME DESC
<include refid="common.pageEnd" />
</select>
<!-- 最新成交 -->
<select id="queryLastBargin" resultType="OtcEntrustInfo">
<include refid="common.pageStart" />
SELECT <include refid="otc_entrust_field" />
FROM HS_OTC.OTCENTRUST E
WHERE E.OTC_PROP = '0B0' AND (E.ENTRUST_STATUS = '7' OR E.ENTRUST_STATUS = '8')
ORDER BY E.CURR_TIME DESC
<include refid="common.pageEnd" />
</select>
<!-- 官网,买卖的全部商品查询 -->
<select id="queryEntrustingInfo" resultType="EcEntrustInfo">
SELECT T.SDC_CODE AS OTC_CODE, T.SDC_NAME AS OTC_NAME, decode(P.MCLOSE_PRICE ,0,0,(P.LAST_PRICE - P.MCLOSE_PRICE)/P.MCLOSE_PRICE ) AS ROSE,(P.LAST_PRICE-P.MCLOSE_PRICE) AS UPS,P.business_amount,P.business_balance,
P.MCLOSE_PRICE CLOSE_PRICE, P.OPEN_PRICE,
P.LAST_PRICE, A1.BUY_PRICE, B1.SELL_PRICE,
(SELECT SUM(E.ENTRUST_AMOUNT - E.BUSINESS_AMOUNT)
FROM HS_OTC.OTCENTRUST E
WHERE E.ENTRUST_PRICE = A1.BUY_PRICE AND E.OTC_CODE = A1.OTC_CODE
AND E.OTC_PROP = '0B0' AND (E.ENTRUST_STATUS = '2' OR E.ENTRUST_STATUS = '7')
GROUP BY E.OTC_CODE, E.ENTRUST_PRICE) BUY_AMOUNT,
(SELECT SUM(F.ENTRUST_AMOUNT - F.BUSINESS_AMOUNT)
FROM HS_OTC.OTCENTRUST F
WHERE F.ENTRUST_PRICE = B1.SELL_PRICE AND F.OTC_CODE = B1.OTC_CODE
AND F.OTC_PROP = '0S0' AND (F.ENTRUST_STATUS = '2' OR F.ENTRUST_STATUS = '7')
GROUP BY F.OTC_CODE, F.ENTRUST_PRICE) SELL_AMOUNT
FROM HS_SDC.SDCOCODE T
LEFT JOIN HS_MCH.MCHPRICE P ON T.SDC_CODE = P.MCH_CODE
LEFT JOIN (
SELECT A.OTC_CODE, MAX(A.ENTRUST_PRICE) BUY_PRICE
FROM HS_OTC.OTCENTRUST A
WHERE A.OTC_PROP = '0B0' AND (A.ENTRUST_STATUS = '2' OR A.ENTRUST_STATUS = '7')
GROUP BY A.OTC_CODE) A1
ON T.SDC_CODE = A1.OTC_CODE
LEFT JOIN (SELECT B.OTC_CODE, MIN(B.ENTRUST_PRICE) SELL_PRICE
FROM HS_OTC.OTCENTRUST B
WHERE B.OTC_PROP = '0S0' AND (B.ENTRUST_STATUS = '2' OR B.ENTRUST_STATUS = '7')
GROUP BY B.OTC_CODE) B1
ON T.SDC_CODE = B1.OTC_CODE
WHERE T.SDCCODE_STATUS = '0'
ORDER BY T.SDC_CODE
</select>
<select id="queryOtcentrust" parameterType="map" resultType="map">
SELECT T.OTC_CODE, T.OTC_NAME, SUM(T.ENTRUST_AMOUNT -
T.BUSINESS_AMOUNT) ENTRUST_NUM,
T.ENTRUST_PRICE, T.OTC_PROP
FROM HS_OTC.OTCENTRUST_VIEW T
WHERE T.OTC_CODE=#{otcCode} AND (T.ENTRUST_STATUS='2' OR
T.ENTRUST_STATUS='7')
GROUP BY ENTRUST_PRICE, T.OTC_CODE, T.OTC_NAME, T.OTC_PROP
ORDER BY T.ENTRUST_PRICE DESC
</select>
<select id="queryOtcCount" parameterType="map" resultType="map">
SELECT T.OTC_CODE, T.OTC_NAME, COUNT(*) AS TOTAL
FROM HS_OTC.OTCENTRUST_VIEW T WHERE 1 = 1
<if test="otcCode != null and otcCode != ''">
AND T.OTC_CODE = #{otcCode}
</if>
<if test="otcName != null and otcName != ''">
AND T.OTC_NAME = #{otcName}
</if>
GROUP BY T.OTC_CODE, T.OTC_NAME
ORDER BY T.OTC_CODE
</select>
<!-- 查询最大的委托号 -->
<select id="queryMaxEntrustNo" resultType="int">
SELECT MAX(T.ENTRUST_NO)
FROM HS_OTC.OTCENTRUST T
</select>
<!-- 查询买入五档 -->
<select id="queryBuyRank" parameterType="int" resultType="map">
SELECT * FROM(
SELECT T.OTC_CODE, T.ENTRUST_PRICE, SUM(T.ENTRUST_AMOUNT - T.BUSINESS_AMOUNT) AS AMOUNT,
RANK() OVER(PARTITION BY T.OTC_CODE ORDER BY T.ENTRUST_PRICE DESC) AS RANKING, T.OTC_PROP
FROM HS_OTC.OTCENTRUST T
WHERE (T.ENTRUST_STATUS = '2' OR T.ENTRUST_STATUS = '7') AND T.OTC_PROP = '0B0'
GROUP BY T.OTC_CODE, T.ENTRUST_PRICE, T.OTC_PROP) E
WHERE <![CDATA[E.RANKING <=]]> #{rank}
ORDER BY E.OTC_CODE, E.ENTRUST_PRICE DESC
</select>
<!-- 查询卖出五档 -->
<select id="querySellRank" parameterType="int" resultType="map">
SELECT * FROM(
SELECT T.OTC_CODE, T.ENTRUST_PRICE, SUM(T.ENTRUST_AMOUNT - T.BUSINESS_AMOUNT) AS AMOUNT,
RANK() OVER(PARTITION BY T.OTC_CODE ORDER BY T.ENTRUST_PRICE) AS RANKING, T.OTC_PROP
FROM HS_OTC.OTCENTRUST T
WHERE (T.ENTRUST_STATUS = '2' OR T.ENTRUST_STATUS = '7') AND T.OTC_PROP = '0S0'
GROUP BY T.OTC_CODE, T.ENTRUST_PRICE, T.OTC_PROP) E
WHERE <![CDATA[E.RANKING <=]]> #{rank}
ORDER BY E.OTC_CODE, E.ENTRUST_PRICE DESC
</select>
</mapper>