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); } 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> 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()); } } } 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 ; } } pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java
New file @@ -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; }