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<List<VoClientStatistics>> 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<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(seVcOperateMapper.getRegisterVcClientsCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoClientStatistics>> 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<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 ;
|
}
|
}
|