From 742b6bbac1b4609386817a6e6fb489ec098a5490 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 21 一月 2025 18:29:44 +0800
Subject: [PATCH] 重构获取分水房详情接口
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml | 323 ++++++++++++++++++++++-------------------------------
1 files changed, 135 insertions(+), 188 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
index 244dd55..91c9588 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -28,7 +28,7 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, countyId, townId, villageId, blockId, divideId, `name`, virtualId, clientNum,
+ id, countyId, townId, villageId, blockid, divideId, `name`, virtualId, clientNum,
districtNum, districtTitle, phone, idCard, area, typeId, address, remarks, `operator`,
operateDt, disabled, deleted
</sql>
@@ -56,7 +56,7 @@
operateDt, disabled, deleted
)
values (#{id,jdbcType=BIGINT}, #{countyid,jdbcType=BIGINT}, #{townid,jdbcType=BIGINT},
- #{villageid,jdbcType=BIGINT}, #{blockid,jdbcType=BIGINT}, #{divideid,jdbcType=BIGINT},
+ #{villageid,jdbcType=BIGINT}, #{blockid,jdbcType=BIGINT}, #{divideid,jdbcType=BIGINT},
#{name,jdbcType=VARCHAR}, #{virtualid,jdbcType=BIGINT}, #{clientnum,jdbcType=VARCHAR},
#{districtnum,jdbcType=BIGINT}, #{districttitle,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR},
#{idcard,jdbcType=VARCHAR}, #{area,jdbcType=DOUBLE}, #{typeid,jdbcType=BIGINT},
@@ -286,7 +286,7 @@
address = #{address,jdbcType=VARCHAR},
remarks = #{remarks,jdbcType=VARCHAR},
`operator` = #{operator,jdbcType=BIGINT},
- operateDt = #{operatedt,jdbcType=TIMESTAMP},
+ operateDt = #{operatedt,jdbcType=TIMESTAMP}
<!-- disabled = #{disabled,jdbcType=TINYINT},-->
<!-- deleted = #{deleted,jdbcType=TINYINT}-->
where id = #{id,jdbcType=BIGINT}
@@ -302,11 +302,41 @@
</select>
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛璁板綍鏁�-->
- <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
- SELECT
- COUNT(*) AS recordCount
+<!-- <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">-->
+ <select id="getRecordCount" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
+<!-- SELECT-->
+<!-- COUNT(*) AS recordCount-->
+ SELECT DISTINCT
+ cli.countyId,
+ dis_con.name AS countryName,
+ cli.townId,
+ dis_town.name AS townName,
+ cli.villageId,
+ dis_village.name AS villageName,
+ cli.blockId,
+ blo.name AS blockName,
+ cli.divideId,
+ divi.name AS divideName,
+ cli.typeId,
+ wat.typeName AS waterTypeName,
+ cli.id AS clientId,
+ cli.name,
+ cli.clientNum,
+ cli.phone,
+ cli.idCard,
+ cli.area,
+ (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id)+(SELECT COUNT(*) FROM se_virtual_card WHERE client_id = cli.id) AS cardCount,
+ cli.address,
+ cli.remarks,
+ cli.operateDt
FROM se_client cli
- , (SELECT @i:=0) AS itable
+ LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
+ LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
+ LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
+ LEFT JOIN ba_block blo ON cli.blockId = blo.id
+ LEFT JOIN pr_divide divi ON cli.divideId = divi.id
+ LEFT JOIN se_water_type wat ON cli.typeId = wat.id
+ LEFT JOIN se_client_card card ON card.clientId = cli.id
<where>
AND cli.disabled = 0
AND cli.deleted = 0
@@ -324,6 +354,19 @@
<if test = "address != null and address !=''">
AND cli.address like CONCAT('%',#{address},'%')
+ </if>
+
+ <if test = "villageId != null and villageId !=''">
+ AND cli.villageId = #{villageId}
+ </if>
+ <if test = "blockId != null and blockId !=''">
+ AND cli.blockId = #{blockId}
+ </if>
+ <if test = "divideId != null and divideId !=''">
+ AND cli.divideId = #{divideId}
+ </if>
+ <if test = "cardNum != null">
+ AND card.cardNum = #{cardNum}
</if>
</where>
@@ -332,38 +375,37 @@
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁-->
<select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
- SELECT
- (@i:=@i+1) AS id,
- CAST(cli.countyId AS char) AS countyId,
+ SELECT DISTINCT
+ cli.countyId,
dis_con.name AS countryName,
- CAST(cli.townId AS char) AS townId,
+ cli.townId,
dis_town.name AS townName,
- CAST(cli.villageId AS char) AS villageId,
+ cli.villageId,
dis_village.name AS villageName,
- CAST(cli.blockId AS char) AS blockId,
- blo.name AS bolckName,
- CAST(cli.divideId AS char) AS divideId,
+ cli.blockId,
+ blo.name AS blockName,
+ cli.divideId,
divi.name AS divideName,
- CAST(cli.typeId AS char) AS waterTypeId,
+ cli.typeId,
wat.typeName AS waterTypeName,
- CAST(cli.id AS char) AS clientId,
+ cli.id AS clientId,
cli.name,
cli.clientNum,
cli.phone,
cli.idCard,
cli.area,
- (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id) AS cardCount,
+ (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id)+(SELECT COUNT(*) FROM se_virtual_card WHERE client_id = cli.id) AS cardCount,
cli.address,
cli.remarks,
cli.operateDt
FROM se_client cli
- LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
- LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
- LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
- LEFT JOIN ba_block blo ON cli.blockId = blo.id
- LEFT JOIN pr_divide divi ON cli.divideId = divi.id
- LEFT JOIN se_water_type wat ON cli.typeId = wat.id
- , (SELECT @i:=0) AS itable
+ LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
+ LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
+ LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
+ LEFT JOIN ba_block blo ON cli.blockId = blo.id
+ LEFT JOIN pr_divide divi ON cli.divideId = divi.id
+ LEFT JOIN se_water_type wat ON cli.typeId = wat.id
+ LEFT JOIN se_client_card card ON card.clientId = cli.id
<where>
AND cli.disabled = 0
AND cli.deleted = 0
@@ -382,26 +424,46 @@
<if test = "address != null and address !=''">
AND cli.address like CONCAT('%',#{address},'%')
</if>
+
+ <if test = "villageId != null and villageId !=''">
+ AND cli.villageId = #{villageId}
+ </if>
+ <if test = "blockId != null and blockId !=''">
+ AND cli.blockId = #{blockId}
+ </if>
+ <if test = "divideId != null and divideId !=''">
+ AND cli.divideId = #{divideId}
+ </if>
+ <if test = "cardNum != null">
+ AND card.cardNum = #{cardNum}
+ </if>
</where>
ORDER BY cli.operateDt DESC
- <if test="pageCurr != null and pageSize != null">
- LIMIT ${pageCurr}, ${pageSize}
- </if>
+ <trim prefix="limit " >
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
</select>
<!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍唬鐮�-->
<select id="getAreaCodeByNum" resultType="java.lang.Long">
- SELECT districtNum FROM se_client WHERE clientNum = ${clientNum}
+ SELECT districtNum FROM se_client WHERE clientNum = #{clientNum} LIMIT 0,1
</select>
<!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤-->
<select id="getAreaCodeById" resultType="java.lang.Long">
- SELECT districtNum FROM se_client WHERE id = ${clientId}
+ SELECT districtNum FROM se_client WHERE id = #{clientId}
</select>
<!--鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID-->
<select id="getClientIdByNum" resultType="java.lang.Long">
- SELECT id FROM se_client WHERE clientNum = ${clientNum}
+ SELECT id FROM se_client WHERE clientNum = #{clientNum} LIMIT 0,1
+ </select>
+
+ <!--鏍规嵁鐢佃瘽鍙风爜鑾峰彇鍐滄埛ID-->
+ <select id="getClientIdByPhone" resultType="java.lang.Long">
+ SELECT id FROM se_client WHERE phone = #{phoneNumber}
</select>
<!--鏍规嵁鍐滄埛ID閫昏緫鍒犻櫎鍐滄埛-->
@@ -409,14 +471,14 @@
update se_client set deleted = 1
<where>
<if test = "id != null and id > 0">
- AND id = ${id}
+ AND id = #{id}
</if>
</where>
</update>
<!--鏍规嵁涓婚敭鑾峰彇鏉慖D-->
<select id="getVillageIdById" parameterType="java.lang.Long" resultType="java.lang.Long">
- SELECT villageId FROM se_client WHERE id = ${id}
+ SELECT villageId FROM se_client WHERE id = #{id}
</select>
<!--鑾峰彇铏氭嫙鍗″彿鏈�澶у��-->
@@ -426,180 +488,65 @@
<!--鑾峰彇鐢ㄦ按鏂瑰紡鍒楄〃-->
<select id="getWaterTypes" resultType="java.util.Map">
- SELECT id, typeName from se_water_type
+ SELECT CAST(se_water_type.id AS char) AS id, typeName from se_water_type
</select>
- <!-- 涓嬪垪鍐呭涓轰氦鏄撴槑缁嗘煡璇� -->
- <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璐按姹囨�诲拰璐崱姹囨��-->
- <select id="getSums" resultType="java.util.Map">
+ <!--鑾峰彇鍐滄埛鍩烘湰淇℃伅锛屽皬绋嬪簭棣栭〉浣跨敤-->
+ <select id="getSimpleClientInfo" resultType="com.dy.pipIrrGlobal.voSe.VoClientWechat">
SELECT
- SUM(money) AS money,
- SUM(cardCost) AS cardCost
- FROM v_operate
+ CAST(ope.id AS char) AS sessionId,
+ CAST(cli.id AS char) AS clientId,
+ cli.name AS clientName,
+ cli.phone,
+ CAST(cli.blockId AS char) AS blockId
+ FROM se_open_id ope
+ INNER JOIN se_client cli ON ope.client_id = cli.id
<where>
- <if test = "villageId != null and villageId > 0">
- AND villageId = ${villageId}
+ <if test = "sessionId != null">
+ AND ope.id = #{sessionId}
</if>
- <if test = "paymentId != null and paymentId >0">
- AND paymentId = ${paymentId}
- </if>
-
- <if test = "operateTimeStart != null and operateTimeStop != null">
- AND operateDt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
+ <if test = "openId != null">
+ AND ope.open_id = #{openId}
</if>
</where>
+ LIMIT 0,1
</select>
-
- <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍鏁�-->
- <select id="getOperateRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
+ <!--鑾峰彇鎸囧畾鏃堕棿娈靛啘鎴凤細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�-->
+ <select id="getClientUsagesCount" resultType="java.lang.Long">
SELECT
- COUNT(*) AS recordCount
- FROM v_operate
+ count(*)
+ FROM se_client cli
<where>
- <if test = "villageId != null and villageId > 0">
- AND villageId = ${villageId}
+ <if test="clientName != null and clientName != ''">
+ AND cli.name like CONCAT('%', #{clientName}, '%')
</if>
-
- <if test = "paymentId != null and paymentId >0">
- AND paymentId = ${paymentId}
- </if>
-
- <if test = "operateTimeStart != null and operateTimeStop != null">
- AND operateDt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
+ <if test="clientNum != null and clientNum != ''">
+ AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
</if>
</where>
- </select>
-
- <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍-->
- <select id="getOperates" resultType="com.dy.pipIrrGlobal.voSe.VoOperate">
+ </select>
+ <!--鑾峰彇鎸囧畾鏃堕棿娈靛啘鎴凤細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�-->
+ <select id="getClientUsages" resultType="com.dy.pipIrrGlobal.voSt.VoCardUsage">
SELECT
- villageId,
- districtTitle,
- clientNum,
- `name`,
- cardNum,
- idCard,
- phone,
- money,
- cardCost,
- paymentId,
- paymentMethod,
- operateType,
- operateDt,
- operatorName
- FROM v_operate
+ cli.name AS clientName,
+ (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.clientId = cli.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
+ (SELECT ROUND(SUM(his.cl_this_money),2) FROM rm_open_close_valve_history his WHERE his.client_id = cli.id AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption,
+ (SELECT ROUND(SUM(card.money),2) FROM se_client_card card WHERE card.clientId = cli.id) AS balance
+ FROM se_client cli
<where>
- <if test = "villageId != null and villageId > 0">
- AND villageId = ${villageId}
+ <if test="clientName != null and clientName != ''">
+ AND cli.name like CONCAT('%', #{clientName}, '%')
</if>
-
- <if test = "paymentId != null and paymentId >0">
- AND paymentId = ${paymentId}
- </if>
-
- <if test = "operateTimeStart != null and operateTimeStop != null">
- AND operateDt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
+ <if test="clientNum != null and clientNum != ''">
+ AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
</if>
</where>
- ORDER BY operateDt
- <if test="pageCurr != null and pageSize != null">
- LIMIT ${pageCurr}, ${pageSize}
- </if>
- </select>
-
- <!-- 涓嬪垪鍐呭涓轰氦鏄撶粺璁℃煡璇� -->
- <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗绗旀暟姹囨�诲拰浜ゆ槗閲戦姹囨��-->
- <select id="getStatisticSums" resultType="java.util.Map">
- SELECT
- SUM(count) AS count,
- SUM(money) AS money
- FROM
- (
- SELECT
- villageId,
- districtTitle,
- operateType,
- operateDt,
- count(*) AS count,
- (sum(money) + sum(cardCost)) AS money
- FROM v_operate
- <where>
- <if test = "villageId != null and villageId > 0">
- AND villageId = ${villageId}
- </if>
-
-<!-- <if test = "paymentId != null and paymentId >0">-->
-<!-- AND paymentId = ${paymentId}-->
-<!-- </if>-->
-
- <if test = "operateTimeStart != null and operateTimeStop != null">
- AND operateDt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
- </if>
- </where>
- GROUP BY villageId, districtTitle, operateType, operateDt
- ) temp
- </select>
-
- <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇姹囨�昏褰曟暟-->
- <select id="getStatisticRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
- SELECT
- COUNT(*) AS recordCount
- FROM
- (
- SELECT
- villageId,
- districtTitle,
- operateType,
- operateDt,
- count(*) AS count,
- (sum(money) + sum(cardCost)) AS money
- FROM v_operate
- <where>
- <if test = "villageId != null and villageId > 0">
- AND villageId = ${villageId}
- </if>
-
-<!-- <if test = "paymentId != null and paymentId >0">-->
-<!-- AND paymentId = ${paymentId}-->
-<!-- </if>-->
-
- <if test = "operateTimeStart != null and operateTimeStop != null">
- AND operateDt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
- </if>
- </where>
- GROUP BY villageId, districtTitle, operateType, operateDt
- ) temp
- </select>
-
- <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇缁熻璁板綍-->
- <select id="getStatistics" resultType="com.dy.pipIrrGlobal.voSe.VoStatistics">
- SELECT
- villageId,
- districtTitle,
- operateType,
- operateDt,
- count(*) AS count,
- (sum(money) + sum(cardCost)) AS money
- FROM v_operate
- <where>
- <if test = "villageId != null and villageId > 0">
- AND villageId = ${villageId}
+ ORDER BY totalConsumption DESC, totalRecharge DESC
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
</if>
-
-<!-- <if test = "paymentId != null and paymentId >0">-->
-<!-- AND paymentId = ${paymentId}-->
-<!-- </if>-->
-
- <if test = "operateTimeStart != null and operateTimeStop != null">
- AND operateDt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
- </if>
- </where>
- GROUP BY villageId, districtTitle, operateType, operateDt
- ORDER BY operateDt
- <if test="pageCurr != null and pageSize != null">
- LIMIT ${pageCurr}, ${pageSize}
- </if>
+ </trim>
</select>
-
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0