From a967d005ed9cc188c1395c792a46cf2befbdd488 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期一, 23 十二月 2024 15:26:23 +0800 Subject: [PATCH] 优化接口 水卡使用情况(充值、消费、余额)优化SQL解决数据重复显示bug --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 46 ++++++++++++++++++++++++---------------------- 1 files changed, 24 insertions(+), 22 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml index 5c4ed90..f90e929 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml @@ -349,28 +349,30 @@ <!--鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃锛堢墿鐞嗗崱+铏氭嫙鍗★級--> <select id="getCardInfoByClientId" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo"> SELECT * - FROM (SELECT '鐗╃悊鍗�' AS cardType, - card.cardNum AS cardNum, - card.money AS money, - (CASE - WHEN card.state = 1 THEN '姝e父' - WHEN card.state = 2 THEN '宸叉敞閿�' - ELSE '宸叉寕澶�' - END) AS state + FROM (SELECT + '鐗╃悊鍗�' AS cardType, + card.cardNum AS cardNum, + card.money AS money, + (CASE + WHEN card.state = 1 THEN '姝e父' + WHEN card.state = 2 THEN '宸叉敞閿�' + ELSE '宸叉寕澶�' + END) AS state FROM se_client_card card - INNER JOIN se_client cli ON cli.id = card.clientId + INNER JOIN se_client cli ON cli.id = card.clientId WHERE state != 4 AND card.clientId = #{clientId,jdbcType=BIGINT} UNION ALL - SELECT '铏氭嫙鍗�' AS cardType, - vc.vc_num AS cardNum, - vc.money AS money, - (CASE - WHEN vc.in_use = 0 THEN '鏈娇鐢�' - WHEN vc.in_use = 1 THEN '浣跨敤涓�' - END) AS state + SELECT + '铏氭嫙鍗�' AS cardType, + vc.vc_num AS cardNum, + ROUND(vc.money /100, 2) AS money, + (CASE + WHEN vc.in_use = 0 THEN '鏈娇鐢�' + WHEN vc.in_use = 1 THEN '浣跨敤涓�' + END) AS state FROM se_virtual_card vc - INNER JOIN se_client cli ON cli.id = vc.client_id - WHERE vc.client_id = #{clientId,jdbcType=BIGINT} + INNER JOIN se_client cli ON cli.id = vc.client_id + WHERE vc.state = 1 AND vc.client_id = #{clientId,jdbcType=BIGINT} ) card ORDER BY card.Money DESC, card.State DESC </select> @@ -666,12 +668,12 @@ SELECT cli.name AS clientName, card.cardNum, - (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge, + (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operate_valid = 2 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.cl_ic_card_no = card.cardNum AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption, ROUND(card.money,2) AS balance FROM se_client_card card INNER JOIN se_client cli ON cli.id = card.clientId - INNER JOIN se_recharge_history rch ON rch.cardId = card.id +<!-- INNER JOIN se_recharge_history rch ON rch.cardId = card.id--> <where> <if test="clientName != null and clientName != ''"> AND cli.name like CONCAT('%', #{clientName}, '%') @@ -692,12 +694,12 @@ SELECT cli.name AS clientName, card.cardNum, - (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge, + (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operate_valid = 2 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.cl_ic_card_no = card.cardNum AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption, ROUND(card.money,2) AS balance FROM se_client_card card INNER JOIN se_client cli ON cli.id = card.clientId - INNER JOIN se_recharge_history rch ON rch.cardId = card.id +<!-- INNER JOIN se_recharge_history rch ON rch.cardId = card.id--> <where> <if test="clientName != null and clientName != ''"> AND cli.name like CONCAT('%', #{clientName}, '%') -- Gitblit v1.8.0