package com.dy.pipIrrStatistics.card; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoSe.SeVcOperateMapper; 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; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.util.List; import java.util.Map; import java.util.Optional; /** * @author ZhuBaoMin * @date 2024-08-08 9:14 * @LastEditTime 2024-08-08 9:14 * @Description */ @Slf4j @Service public class VirtualCardSv { @Autowired private SeVcOperateMapper seVcOperateMapper; /** * 指定时间段内注册虚拟卡的农户 * @param qo * @return */ public QueryResultVo> getRegisterVcClients(CommonQO 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 params = (Map) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = Optional.ofNullable(seVcOperateMapper.getRegisterVcClientsCount(params)).orElse(0L); QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); 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 params = (Map) 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 params = (Map) 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> 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 params = (Map) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = Optional.ofNullable(seVcOperateMapper.getLargeRechargeClientsCount(params)).orElse(0L); QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = seVcOperateMapper.getLargeRechargeClients(params); return rsVo ; } }