From 73a8977676b480dde6b495c4a4100ce15f9bdf5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Mon, 22 Jan 2024 14:53:05 +0800 Subject: [PATCH] 123 --- .../incomeStatis/AccountCashCountDTO.java | 11 ++++ .../incomeStatis/RechargeOrderCountDTO.java | 16 ++++++ .../admin/incomeStatis/VipOrderCountDTO.java | 11 ++++ .../ruoyi/cai/domain/DayIncomeStatistics.java | 2 +- .../ruoyi/cai/job/IncomeStatisticsJob.java | 25 ++++++++ .../main/java/com/ruoyi/cai/job/RankJob.java | 8 +++ .../ruoyi/cai/mapper/AccountCashMapper.java | 5 ++ .../cai/mapper/DayIncomeStatisticsMapper.java | 5 +- .../ruoyi/cai/mapper/RechargeOrderMapper.java | 5 ++ .../com/ruoyi/cai/mapper/VipOrderMapper.java | 5 ++ .../com/ruoyi/cai/pay/PlatformTypeEnum.java | 14 ++++- .../service/DayIncomeStatisticsService.java | 3 + .../impl/DayIncomeStatisticsServiceImpl.java | 57 +++++++++++++++++++ .../impl/LowHeightRiskServiceImpl.java | 2 +- .../impl/RechargeOrderServiceImpl.java | 7 ++- .../mapper/cai/AccountCashMapper.xml | 7 +++ .../mapper/cai/RechargeOrderMapper.xml | 14 +++++ .../resources/mapper/cai/VipOrderMapper.xml | 8 +++ 18 files changed, 197 insertions(+), 8 deletions(-) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/AccountCashCountDTO.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/RechargeOrderCountDTO.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/VipOrderCountDTO.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/job/IncomeStatisticsJob.java diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/AccountCashCountDTO.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/AccountCashCountDTO.java new file mode 100644 index 00000000..78a46615 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/AccountCashCountDTO.java @@ -0,0 +1,11 @@ +package com.ruoyi.cai.controller.admin.incomeStatis; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class AccountCashCountDTO { + private BigDecimal cashMoney; + private Integer cashCount; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/RechargeOrderCountDTO.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/RechargeOrderCountDTO.java new file mode 100644 index 00000000..9609cf0b --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/RechargeOrderCountDTO.java @@ -0,0 +1,16 @@ +package com.ruoyi.cai.controller.admin.incomeStatis; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class RechargeOrderCountDTO { + private Long modifyCoinAdd; + private Long modifyCoinSub; + private Long modifyIncomeAdd; + private Long modifyIncomeSub; + private BigDecimal expInMoney; + private Integer orderCount; + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/VipOrderCountDTO.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/VipOrderCountDTO.java new file mode 100644 index 00000000..6ee3dc5f --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/incomeStatis/VipOrderCountDTO.java @@ -0,0 +1,11 @@ +package com.ruoyi.cai.controller.admin.incomeStatis; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class VipOrderCountDTO { + private Integer vipCount; + private BigDecimal vipMoney; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/DayIncomeStatistics.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/DayIncomeStatistics.java index 21c5ab69..8710f7de 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/DayIncomeStatistics.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/DayIncomeStatistics.java @@ -6,11 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.constant.DateConstant; import lombok.Data; -import org.joda.time.LocalDate; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; /** diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/job/IncomeStatisticsJob.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/IncomeStatisticsJob.java new file mode 100644 index 00000000..ce68d99b --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/IncomeStatisticsJob.java @@ -0,0 +1,25 @@ +package com.ruoyi.cai.job; + +import com.ruoyi.cai.service.DayIncomeStatisticsService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; + +@Component +@Slf4j +public class IncomeStatisticsJob { + @Autowired + private DayIncomeStatisticsService dayIncomeStatisticsService; + @Scheduled(cron = "0 0/6 * * * ? *") + public void persistentDb() { + try { + dayIncomeStatisticsService.refreshByDate(LocalDate.now()); + }catch (Exception e){ + log.error("保存昨日收益统计失败!",e); + } + + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/job/RankJob.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/RankJob.java index b9aaf9d9..b202ec49 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/job/RankJob.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/RankJob.java @@ -1,5 +1,6 @@ package com.ruoyi.cai.job; +import com.ruoyi.cai.service.DayIncomeStatisticsService; import com.ruoyi.cai.service.RankService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +17,8 @@ public class RankJob { @Autowired private RankService rankService; + @Autowired + private DayIncomeStatisticsService dayIncomeStatisticsService; @Scheduled(cron = "0 1 0 * * ? ") public void persistentDb() { @@ -57,6 +60,11 @@ public class RankJob { log.error("保存邀请 月榜失败", e); } } + try { + dayIncomeStatisticsService.refreshByDate(date); + }catch (Exception e){ + log.error("保存昨日收益统计失败!",e); + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/AccountCashMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/AccountCashMapper.java index 2ab12763..9d04f132 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/AccountCashMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/AccountCashMapper.java @@ -2,10 +2,13 @@ package com.ruoyi.cai.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.cai.controller.admin.incomeStatis.AccountCashCountDTO; import com.ruoyi.cai.domain.AccountCash; import com.ruoyi.cai.dto.admin.vo.AccountCashAdminVo; import org.apache.ibatis.annotations.Param; +import java.time.LocalDateTime; + /** * 用户提现记录Mapper接口 * @@ -15,4 +18,6 @@ import org.apache.ibatis.annotations.Param; public interface AccountCashMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("bo") AccountCashAdminVo bo); + + AccountCashCountDTO incomeStatistics(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/DayIncomeStatisticsMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/DayIncomeStatisticsMapper.java index bf85b051..85da8e96 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/DayIncomeStatisticsMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/DayIncomeStatisticsMapper.java @@ -1,8 +1,7 @@ package com.ruoyi.cai.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.cai.domain.DayIncomeStatistics; -import com.ruoyi.cai.domain.vo.DayIncomeStatisticsVo; -import com.ruoyi.common.core.mapper.BaseMapperPlus; /** * 每日账单统计Mapper接口 @@ -10,6 +9,6 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus; * @author 77 * @date 2024-01-22 */ -public interface DayIncomeStatisticsMapper extends BaseMapperPlus { +public interface DayIncomeStatisticsMapper extends BaseMapper { } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/RechargeOrderMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/RechargeOrderMapper.java index 1095981c..f8fa1457 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/RechargeOrderMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/RechargeOrderMapper.java @@ -2,10 +2,13 @@ package com.ruoyi.cai.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.cai.controller.admin.incomeStatis.RechargeOrderCountDTO; import com.ruoyi.cai.domain.RechargeOrder; import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo; import org.apache.ibatis.annotations.Param; +import java.time.LocalDateTime; + /** * 充值订单Mapper接口 * @@ -15,4 +18,6 @@ import org.apache.ibatis.annotations.Param; public interface RechargeOrderMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("bo") RechargeOrderAdminVo bo); + + RechargeOrderCountDTO incomeStatistics(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/VipOrderMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/VipOrderMapper.java index 4d43b551..b117635e 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/VipOrderMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/VipOrderMapper.java @@ -2,10 +2,13 @@ package com.ruoyi.cai.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.cai.controller.admin.incomeStatis.VipOrderCountDTO; import com.ruoyi.cai.domain.VipOrder; import com.ruoyi.cai.dto.admin.vo.VipOrderAdminVo; import org.apache.ibatis.annotations.Param; +import java.time.LocalDateTime; + /** * VIP订单Mapper接口 * @@ -15,4 +18,6 @@ import org.apache.ibatis.annotations.Param; public interface VipOrderMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("bo") VipOrderAdminVo bo); + + VipOrderCountDTO incomeStatistics(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PlatformTypeEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PlatformTypeEnum.java index 38742107..e54c6526 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PlatformTypeEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PlatformTypeEnum.java @@ -1,5 +1,17 @@ package com.ruoyi.cai.pay; +import lombok.Getter; + +@Getter public enum PlatformTypeEnum { - ALI,WX,ADMIN + ALI("1"), + WX("2"), + ADMIN("ADMIN"), + ; + + private final String code; + + PlatformTypeEnum(String code) { + this.code = code; + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DayIncomeStatisticsService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DayIncomeStatisticsService.java index 92b028e1..65cf3372 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DayIncomeStatisticsService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DayIncomeStatisticsService.java @@ -3,6 +3,8 @@ package com.ruoyi.cai.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.DayIncomeStatistics; +import java.time.LocalDate; + /** * 每日账单统计Service接口 * @@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.DayIncomeStatistics; */ public interface DayIncomeStatisticsService extends IService { + void refreshByDate(LocalDate date); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DayIncomeStatisticsServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DayIncomeStatisticsServiceImpl.java index 1222daf1..64466a8a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DayIncomeStatisticsServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DayIncomeStatisticsServiceImpl.java @@ -1,11 +1,25 @@ package com.ruoyi.cai.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.cai.controller.admin.incomeStatis.AccountCashCountDTO; +import com.ruoyi.cai.controller.admin.incomeStatis.RechargeOrderCountDTO; +import com.ruoyi.cai.controller.admin.incomeStatis.VipOrderCountDTO; import com.ruoyi.cai.domain.DayIncomeStatistics; +import com.ruoyi.cai.mapper.AccountCashMapper; import com.ruoyi.cai.mapper.DayIncomeStatisticsMapper; +import com.ruoyi.cai.mapper.RechargeOrderMapper; +import com.ruoyi.cai.mapper.VipOrderMapper; import com.ruoyi.cai.service.DayIncomeStatisticsService; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.concurrent.locks.ReentrantLock; + /** * 每日账单统计Service业务层处理 * @@ -15,4 +29,47 @@ import org.springframework.stereotype.Service; @Service public class DayIncomeStatisticsServiceImpl extends ServiceImpl implements DayIncomeStatisticsService { + @Resource + private RechargeOrderMapper rechargeOrderMapper; + @Resource + private VipOrderMapper vipOrderMapper; + @Resource + private AccountCashMapper accountCashMapper; + + @Override + public void refreshByDate(LocalDate date){ + LocalDateTime startTime = date.atTime(LocalTime.MIN); + LocalDateTime endTime = date.atTime(LocalTime.MAX); + DayIncomeStatistics one = this.getOne(Wrappers.lambdaQuery(DayIncomeStatistics.class).eq(DayIncomeStatistics::getDate, date)); + if(one == null){ + ReentrantLock lock = new ReentrantLock(); + try { + one = this.getOne(Wrappers.lambdaQuery(DayIncomeStatistics.class).eq(DayIncomeStatistics::getDate, date)); + if(one == null){ + one = new DayIncomeStatistics(); + one.setDate(date); + this.save(one); + lock.lock(); + } + }finally { + lock.unlock(); + } + } + RechargeOrderCountDTO recharge = rechargeOrderMapper.incomeStatistics(startTime,endTime); + VipOrderCountDTO vip = vipOrderMapper.incomeStatistics(startTime,endTime); + AccountCashCountDTO cash = accountCashMapper.incomeStatistics(startTime,endTime); + one = new DayIncomeStatistics(); + one.setExpInMoney(recharge.getExpInMoney()==null? BigDecimal.ZERO:recharge.getExpInMoney()); + one.setOrderCount(recharge.getOrderCount()==null?0:recharge.getOrderCount()); + one.setOutMoney(cash.getCashMoney()==null?BigDecimal.ZERO:cash.getCashMoney()); + one.setCashCount(cash.getCashCount()==null?0:cash.getCashCount()); + one.setVipInMoney(vip.getVipMoney()==null?BigDecimal.ZERO:vip.getVipMoney()); + one.setVipCount(vip.getVipCount()==null?0:vip.getVipCount()); + one.setModifyCoinAdd(recharge.getModifyCoinAdd()==null?0:recharge.getModifyCoinAdd()); + one.setModifyCoinSub(recharge.getModifyCoinSub()==null?0:recharge.getModifyCoinSub()); + one.setModifyIncomeAdd(recharge.getModifyIncomeAdd()==null?0:recharge.getModifyIncomeAdd()); + one.setModifyIncomeSub(recharge.getModifyIncomeSub()==null?0:recharge.getModifyIncomeSub()); + this.updateById(one); + } + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/LowHeightRiskServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/LowHeightRiskServiceImpl.java index 857e15cf..f163d3f7 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/LowHeightRiskServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/LowHeightRiskServiceImpl.java @@ -44,8 +44,8 @@ public class LowHeightRiskServiceImpl extends ServiceImpl order by t1.create_time desc + diff --git a/ruoyi-cai/src/main/resources/mapper/cai/RechargeOrderMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/RechargeOrderMapper.xml index 64111726..922ef41e 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/RechargeOrderMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/RechargeOrderMapper.xml @@ -46,6 +46,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by t1.create_time desc + diff --git a/ruoyi-cai/src/main/resources/mapper/cai/VipOrderMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/VipOrderMapper.xml index 1c3a4fbd..6fe6309b 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/VipOrderMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/VipOrderMapper.xml @@ -44,6 +44,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by t1.create_time desc +