zhubaomin
2024-08-12 2555e23c828b603944f51883a580b401962b2209
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/card/VirtualCardSv.java
@@ -2,8 +2,10 @@
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoSe.SeVcOperateMapper;
import com.dy.pipIrrGlobal.voSt.VoClientRegisterVC;
import com.dy.pipIrrGlobal.voSt.VoClientStatistics;
import com.dy.pipIrrStatistics.card.qo.CommonQO;
import com.dy.pipIrrStatistics.card.qo.StartStopDateQO;
import com.dy.pipIrrStatistics.card.qo.TotalRechargeQO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,7 +34,7 @@
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoClientRegisterVC>> getRegisterVcClients(CommonQO qo) {
    public QueryResultVo<List<VoClientStatistics>> getRegisterVcClients(CommonQO qo) {
        /**
         * 补齐起止时间,如果开始时间为空,则默认为当前日期
         */
@@ -55,7 +57,7 @@
        // 获取符合条件的记录数
        Long itemTotal = Optional.ofNullable(seVcOperateMapper.getRegisterVcClientsCount(params)).orElse(0L);
        QueryResultVo<List<VoClientRegisterVC>> rsVo = new QueryResultVo<>() ;
        QueryResultVo<List<VoClientStatistics>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
@@ -64,4 +66,107 @@
        rsVo.obj = seVcOperateMapper.getRegisterVcClients(params);
        return rsVo ;
    }
    /**
     * 指定时间段内注册总数量
     * @param qo
     * @return
     */
    public Long getRegisterCount(StartStopDateQO qo) {
        /**
         * 补齐起止时间,如果开始时间为空,则默认为当前日期
         */
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if(timeStart != null) {
            timeStart = timeStart + " 00:00:00";
        }else {
            timeStart = LocalDate.now() + " 00:00:00";
        }
        if(timeStop != null) {
            timeStop = timeStop + " 23:59:59";
        }
        qo.setTimeStart(timeStart);
        qo.setTimeStop(timeStop);
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
        // 获取符合条件的记录数
        return Optional.ofNullable(seVcOperateMapper.getRegisterCount(params)).orElse(0L);
    }
    /**
     * 指定时间段充值总数量
     * @param qo
     * @return
     */
    public Long getRechargeCount(StartStopDateQO qo) {
        /**
         * 补齐起止时间,如果开始时间为空,则默认为当前日期
         */
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if(timeStart != null) {
            timeStart = timeStart + " 00:00:00";
        }else {
            timeStart = LocalDate.now() + " 00:00:00";
        }
        if(timeStop != null) {
            timeStop = timeStop + " 23:59:59";
        }
        qo.setTimeStart(timeStart);
        qo.setTimeStop(timeStop);
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
        return Optional.ofNullable(seVcOperateMapper.getRechargeCount(params)).orElse(0L);
    }
    /**
     * 当前余额总量
     * @return
     */
    public Double getTotalBalance() {
        return Optional.ofNullable(seVcOperateMapper.getTotalBalance()).orElse(0.0);
    }
    /**
     * 指定时间段内虚拟卡充值金额超过指定值的农户
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoClientStatistics>> getLargeRechargeClients(TotalRechargeQO qo) {
        /**
         * 补齐起止时间,如果开始时间为空,则默认为当前日期
         */
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if(timeStart != null) {
            timeStart = timeStart + " 00:00:00";
        }else {
            timeStart = LocalDate.now() + " 00:00:00";
        }
        if(timeStop != null) {
            timeStop = timeStop + " 23:59:59";
        }
        qo.setTimeStart(timeStart);
        qo.setTimeStop(timeStop);
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
        // 获取符合条件的记录数
        Long itemTotal = Optional.ofNullable(seVcOperateMapper.getLargeRechargeClientsCount(params)).orElse(0L);
        QueryResultVo<List<VoClientStatistics>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = seVcOperateMapper.getLargeRechargeClients(params);
        return rsVo ;
    }
}