From 7d5efc462523c0fa48f438d0553e626827f149ff Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 09 八月 2024 15:28:21 +0800
Subject: [PATCH] 指定时间段内物理卡充值金额超过指定值的农户
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 46 +++++++++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java | 44 +++++++++++++-
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java | 14 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java | 24 ++++++-
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java | 21 +++++++
5 files changed, 141 insertions(+), 8 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
index 270eb01..0bbc69e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
@@ -185,4 +185,18 @@
* @return
*/
List<VoClientRechargeTotal> getRechargeTotalClients(Map<String, Object> params);
+
+ /**
+ * 鎸囧畾鏃堕棿娈靛唴鐗╃悊鍗″厖鍊奸噾棰濊秴杩囨寚瀹氬�肩殑鍐滄埛鏁伴噺
+ * @param params
+ * @return
+ */
+ Long getRechargeTotalGtValueClientsCount(Map<String, Object> params);
+
+ /**
+ * 鎸囧畾鏃堕棿娈靛唴鐗╃悊鍗″厖鍊奸噾棰濊秴杩囨寚瀹氬�肩殑鍐滄埛
+ * @param params
+ * @return
+ */
+ List<VoClientRechargeTotal> getRechargeTotalGtValueClients(Map<String, Object> params);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
index 9e1bd47..401848d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -808,4 +808,50 @@
</if>
</trim>
</select>
+ <!--鎸囧畾鏃堕棿娈靛唴鐗╃悊鍗″厖鍊奸噾棰濊秴杩囨寚瀹氬�肩殑鍐滄埛鏁伴噺-->
+ <select id="getRechargeTotalGtValueClientsCount" resultType="java.lang.Long">
+ select
+ count(*)
+ from
+ (
+ SELECT
+ sco.client_id AS clientId,
+ sc.`name` AS clientName,
+ sc.clientNum AS clientNum,
+ sc.address AS address,
+ sc.phone AS phone,
+ sc.idCard AS idCard,
+ IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal
+ FROM
+ `se_card_operate` sco
+ INNER JOIN se_client sc ON sc.id = sco.client_id
+ WHERE
+ sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0
+ GROUP BY sc.id
+ HAVING IFNULL(SUM(sco.trade_amount),0) > #{value}) c
+ </select>
+ <!--鎸囧畾鏃堕棿娈靛唴鐗╃悊鍗″厖鍊奸噾棰濊秴杩囨寚瀹氬�肩殑鍐滄埛-->
+ <select id="getRechargeTotalGtValueClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal">
+ SELECT
+ sco.client_id AS clientId,
+ sc.`name` AS clientName,
+ sc.clientNum AS clientNum,
+ sc.address AS address,
+ sc.phone AS phone,
+ sc.idCard AS idCard,
+ IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal
+ FROM
+ `se_card_operate` sco
+ INNER JOIN se_client sc ON sc.id = sco.client_id
+ WHERE
+ sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0
+ GROUP BY sc.id
+ HAVING IFNULL(SUM(sco.trade_amount),0) > #{value}
+ ORDER BY sc.id DESC
+ <trim prefix="limit " >
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
index d006f7d..8ff0cb9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
@@ -9,10 +9,7 @@
import com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal;
import com.dy.pipIrrGlobal.voSt.VoICCard;
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
-import com.dy.pipIrrStatistics.client.qo.AmountSpentQO;
-import com.dy.pipIrrStatistics.client.qo.OpenCountQO;
-import com.dy.pipIrrStatistics.client.qo.WaterConsumptionQO;
-import com.dy.pipIrrStatistics.client.qo.WaterDurationQO;
+import com.dy.pipIrrStatistics.client.qo.*;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -176,4 +173,23 @@
}
}
+
+ /**
+ * 鎸囧畾鏃堕棿娈靛唴鐗╃悊鍗″厖鍊奸噾棰濊秴杩囨寚瀹氬�肩殑鍐滄埛
+ *
+ * @param qo
+ * @return
+ */
+ @GetMapping(path = "/getRechargeTotalGtValueClients")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoClientRechargeTotal>>> getRechargeTotalGtValueClients(RechargeTotalGtValueQo qo) {
+ try {
+ QueryResultVo<List<VoClientRechargeTotal>> res = clientSv.getRechargeTotalGtValueClients(qo);
+ return BaseResponseUtils.buildSuccess(res);
+ }catch (Exception e){
+ log.error("鑾峰彇璁板綍寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage());
+ }
+ }
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
index e1144e1..4181eec 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
@@ -8,10 +8,7 @@
import com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal;
import com.dy.pipIrrGlobal.voSt.VoICCard;
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
-import com.dy.pipIrrStatistics.client.qo.AmountSpentQO;
-import com.dy.pipIrrStatistics.client.qo.OpenCountQO;
-import com.dy.pipIrrStatistics.client.qo.WaterConsumptionQO;
-import com.dy.pipIrrStatistics.client.qo.WaterDurationQO;
+import com.dy.pipIrrStatistics.client.qo.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -297,4 +294,43 @@
rsVo.obj = seCardOperateMapper.getRechargeTotalClients(params);
return rsVo ;
}
+
+ /**
+ * 鎸囧畾鏃堕棿娈靛唴鐗╃悊鍗″厖鍊奸噾棰濊秴杩囨寚瀹氬�肩殑鍐滄埛
+ * @param qo
+ * @return
+ */
+ public QueryResultVo<List<VoClientRechargeTotal>> getRechargeTotalGtValueClients(RechargeTotalGtValueQo qo) {
+
+ String timeStart = qo.getTimeStart();
+ String timeStop = qo.getTimeStop();
+
+ if (timeStart != null && timeStart != ""){
+ timeStart = timeStart + " 00:00:00";
+ }else {
+ timeStart = LocalDate.now() + " 00:00:00";
+ }
+ if (timeStop != null && timeStop != ""){
+ timeStop = timeStop + " 23:59:59";
+ }else {
+ timeStop = LocalDateTime.now().toString();
+ }
+ qo.setTimeStart(timeStart);
+ qo.setTimeStop(timeStop);
+
+ if (qo.getValue() == null || qo.getValue() < 0){
+ qo.setValue(0.0);
+ }
+
+ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
+ Long itemTotal = seCardOperateMapper.getRechargeTotalGtValueClientsCount(params);
+
+ QueryResultVo<List<VoClientRechargeTotal>> rsVo = new QueryResultVo<>() ;
+ rsVo.pageSize = qo.pageSize ;
+ rsVo.pageCurr = qo.pageCurr ;
+
+ rsVo.calculateAndSet(itemTotal, params);
+ rsVo.obj = seCardOperateMapper.getRechargeTotalGtValueClients(params);
+ return rsVo ;
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java
new file mode 100644
index 0000000..f0a0745
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java
@@ -0,0 +1,21 @@
+package com.dy.pipIrrStatistics.client.qo;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
+import lombok.Data;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/8/9 11:36
+ * @LastEditTime :2024/8/9 11:36
+ * @Description
+ */
+@Data
+public class RechargeTotalGtValueQo extends CommonQO {
+ /**
+ * 閲戦鍊�
+ */
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ private Double value;
+}
--
Gitblit v1.8.0