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