package cn.iocoder.yudao.module.statistics.service.pay;
|
|
import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
|
import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
|
import cn.iocoder.yudao.module.pay.enums.refund.PayRefundStatusEnum;
|
import cn.iocoder.yudao.module.statistics.dal.mysql.pay.PayWalletStatisticsMapper;
|
import cn.iocoder.yudao.module.statistics.service.pay.bo.RechargeSummaryRespBO;
|
import cn.iocoder.yudao.module.statistics.service.trade.bo.WalletSummaryRespBO;
|
import org.springframework.stereotype.Service;
|
import org.springframework.validation.annotation.Validated;
|
|
import jakarta.annotation.Resource;
|
import java.time.LocalDateTime;
|
|
/**
|
* 钱包的统计 Service 实现类
|
*
|
* @author owen
|
*/
|
@Service
|
@Validated
|
public class PayWalletStatisticsServiceImpl implements PayWalletStatisticsService {
|
|
@Resource
|
private PayWalletStatisticsMapper payWalletStatisticsMapper;
|
|
@Override
|
public WalletSummaryRespBO getWalletSummary(LocalDateTime beginTime, LocalDateTime endTime) {
|
WalletSummaryRespBO paySummary = payWalletStatisticsMapper.selectRechargeSummaryByPayTimeBetween(
|
beginTime, endTime, true);
|
WalletSummaryRespBO refundSummary = payWalletStatisticsMapper.selectRechargeSummaryByRefundTimeBetween(
|
beginTime, endTime, PayRefundStatusEnum.SUCCESS.getStatus());
|
Integer walletPayPrice = payWalletStatisticsMapper.selectPriceSummaryByBizTypeAndCreateTimeBetween(
|
beginTime, endTime, PayWalletBizTypeEnum.PAYMENT.getType());
|
// 拼接
|
paySummary.setWalletPayPrice(walletPayPrice)
|
.setRechargeRefundCount(refundSummary.getRechargeRefundCount())
|
.setRechargeRefundPrice(refundSummary.getRechargeRefundPrice());
|
return paySummary;
|
}
|
|
@Override
|
public RechargeSummaryRespBO getUserRechargeSummary(LocalDateTime beginTime, LocalDateTime endTime) {
|
return payWalletStatisticsMapper.selectRechargeSummaryGroupByWalletId(beginTime, endTime, true);
|
}
|
|
@Override
|
public Integer getRechargePriceSummary() {
|
return payWalletStatisticsMapper.selectRechargePriceSummary(Boolean.TRUE);
|
}
|
|
}
|