From 8819e79adb6a87de0cc3c8bee684e7b07fa7ea7d Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期一, 15 一月 2024 22:11:19 +0800
Subject: [PATCH] 2024-01-15 朱宝民 优化获取用户信息接口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml |  243 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 221 insertions(+), 22 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 1853fa8..c41166f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -304,22 +304,26 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛璁板綍鏁�-->
   <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     SELECT
-    COUNT(*) AS recordCount
+        COUNT(*) AS recordCount
     FROM se_client cli
     , (SELECT @i:=0) AS itable
     <where>
-      AND disabled = 0
-      AND deleted = 0
+      AND cli.disabled = 0
+      AND cli.deleted = 0
       <if test = "name != null and name !=''">
-        AND name like CONCAT('%',#{name},'%')
+        AND cli.name like CONCAT('%',#{name},'%')
       </if>
 
-      <if test = "num != null and num !=''">
-        AND clientNum like CONCAT('%',#{num},'%')
+      <if test = "clientNum != null and clientNum !=''">
+        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
       </if>
 
       <if test = "phone != null and phone !=''">
-        AND phone like CONCAT('%',#{phone},'%')
+        AND cli.phone like CONCAT('%',#{phone},'%')
+      </if>
+
+      <if test = "address != null and address !=''">
+        AND cli.address like CONCAT('%',#{address},'%')
       </if>
     </where>
 
@@ -329,36 +333,57 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁-->
   <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
     SELECT
-    (@i:=@i+1) AS id,
-    name,
-    clientNum,
-    phone,
-    idCard,
-    (SELECT COUNT(*) FROM se_client_card WHERE clientNum = cli.clientNum) AS cardCount,
-    address,
-    operateDt
+        (@i:=@i+1) AS id,
+        CAST(cli.countyId AS char) AS countyId,
+        dis_con.name AS countryName,
+        CAST(cli.townId AS char) AS townId,
+        dis_town.name AS townName,
+        CAST(cli.villageId AS char) AS villageId,
+        dis_village.name AS villageName,
+        CAST(cli.blockId AS char) AS blockId,
+        blo.name AS bolckName,
+        CAST(cli.divideId AS char) AS divideId,
+        divi.name AS divideName,
+        CAST(cli.typeId AS char) AS waterTypeId,
+        wat.typeName AS waterTypeName,
+        CAST(cli.id AS char) AS clientId,
+        cli.name,
+        cli.clientNum,
+        cli.phone,
+        cli.idCard,
+        cli.area,
+        (SELECT COUNT(*) FROM se_client_card WHERE clientId = 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
     <where>
-      AND disabled = 0
-      AND deleted = 0
+      AND cli.disabled = 0
+      AND cli.deleted = 0
       <if test = "name != null and name !=''">
-        AND name like CONCAT('%',#{name},'%')
+        AND cli.name like CONCAT('%',#{name},'%')
       </if>
 
       <if test = "clientNum != null and clientNum !=''">
-        AND clientNum like CONCAT('%',#{clientNum},'%')
+        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
       </if>
 
       <if test = "phone != null and phone !=''">
-        AND phone like CONCAT('%',#{phone},'%')
+        AND cli.phone like CONCAT('%',#{phone},'%')
       </if>
 
       <if test = "address != null and address !=''">
-        AND address like CONCAT('%',#{address},'%')
+        AND cli.address like CONCAT('%',#{address},'%')
       </if>
     </where>
-    ORDER BY operateDt DESC
+    ORDER BY cli.operateDt DESC
     <if test="pageCurr != null and pageSize != null">
       LIMIT ${pageCurr}, ${pageSize}
     </if>
@@ -398,4 +423,178 @@
   <select id="getWaterTypes" resultType="java.util.Map">
     SELECT id, typeName from se_water_type
   </select>
+
+  <!-- 涓嬪垪鍐呭涓轰氦鏄撴槑缁嗘煡璇� -->
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璐按姹囨�诲拰璐崱姹囨��-->
+  <select id="getSums" resultType="java.util.Map">
+    SELECT
+        SUM(money) AS money,
+        SUM(cardCost) AS cardCost
+    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>
+  </select>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍鏁�-->
+  <select id="getOperateRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
+    SELECT
+        COUNT(*) AS recordCount
+    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>
+  </select>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍-->
+  <select id="getOperates" resultType="com.dy.pipIrrGlobal.voSe.VoOperate">
+    SELECT
+        villageId,
+        districtTitle,
+        clientNum,
+        `name`,
+        cardNum,
+        idCard,
+        phone,
+        money,
+        cardCost,
+        paymentId,
+        paymentMethod,
+        operateType,
+        operateDt,
+        operatorName
+    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>
+    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}
+      </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>
+  </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0