From 6fa8408c8133e8c9aee2bbcdec37bf95c20951c0 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 07 二月 2025 15:39:16 +0800 Subject: [PATCH] 涉嫌偷水功能增加查询条件用水时长,修改sql语句 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml | 362 ++++++++++++++++++++++++--------------------------- 1 files changed, 169 insertions(+), 193 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 f94a209..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,24 +302,71 @@ </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 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> + + <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> @@ -328,51 +375,95 @@ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁--> <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient"> - SELECT - (@i:=@i+1) AS id, - CAST(id AS char) AS clientId, - name, - clientNum, - phone, - idCard, - (SELECT COUNT(*) FROM se_client_card WHERE clientNum = cli.clientNum) AS cardCount, - address, - operateDt + 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 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> + + <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 operateDt DESC - <if test="pageCurr != null and pageSize != null"> - LIMIT ${pageCurr}, ${pageSize} - </if> + ORDER BY cli.operateDt DESC + <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> <!--鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛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閫昏緫鍒犻櫎鍐滄埛--> @@ -380,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> <!--鑾峰彇铏氭嫙鍗″彿鏈�澶у��--> @@ -397,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