From f22bb0dde28e44bf1e9e280f860edb180cbbc936 Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Sat, 8 Mar 2025 17:50:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor(mcwl):=20=E8=B0=83=E6=95=B4=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/platformData/PlatformData.java | 90 +++++-------------- .../web/exception/GlobalExceptionHandler.java | 4 +- .../java/com/mcwl/pay/domain/vo/IncomeVo.java | 40 +++++++++ .../java/com/mcwl/pay/domain/vo/TrendVo.java | 28 ++++++ .../mcwl/pay/service/OrderTradeService.java | 14 +++ .../service/impl/OrderTradeServiceImpl.java | 24 +++++ .../com/mcwl/system/domain/vo/UserDataVo.java | 29 ++++++ .../mcwl/system/service/ISysUserService.java | 3 + .../service/impl/SysUserServiceImpl.java | 9 ++ 9 files changed, 169 insertions(+), 72 deletions(-) create mode 100644 mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/IncomeVo.java create mode 100644 mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/TrendVo.java create mode 100644 mcwl-system/src/main/java/com/mcwl/system/domain/vo/UserDataVo.java diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/platformData/PlatformData.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/platformData/PlatformData.java index 54c332d..674e4dd 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/platformData/PlatformData.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/platformData/PlatformData.java @@ -2,7 +2,10 @@ package com.mcwl.web.controller.platformData; import com.mcwl.common.core.domain.R; +import com.mcwl.pay.domain.vo.IncomeVo; +import com.mcwl.pay.domain.vo.TrendVo; import com.mcwl.pay.service.OrderTradeService; +import com.mcwl.system.domain.vo.UserDataVo; import com.mcwl.system.service.ISysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -11,7 +14,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -@Api(tags = "平台数据") +@Api(tags = "平台数据统计") @RestController @RequestMapping("platformData") @RequiredArgsConstructor @@ -22,86 +25,33 @@ public class PlatformData { private final ISysUserService sysUserService; /** - * 今日收益总额 + * 平台收益 */ - @ApiOperation(value = "今日收益总额") - @GetMapping("getTodayIncome") - public R getTodayIncome() { - Double amount = orderTradeService.getTodayIncome(); - return R.ok(amount); - } + @ApiOperation(value = "平台收益") + @GetMapping("getIncome") + public R getIncome() { - - /** - * 本月收益总额 - */ - @ApiOperation(value = "本月收益总额") - @GetMapping("getMonthIncome") - public R getMonthIncome() { - Double amount = orderTradeService.getMonthIncome(); - return R.ok(amount); + return R.ok(orderTradeService.getIncome()); } /** - * 年度收益总额 + * 收益趋势 */ - @ApiOperation(value = "年度收益总额") - @GetMapping("getYearIncome") - public R getYearIncome() { - Double amount = orderTradeService.getYearIncome(); - return R.ok(amount); + @ApiOperation(value = "收益趋势") + @GetMapping("getTrend") + public R getTrend() { + + return R.ok(orderTradeService.getTrend()); } /** - * 总收益总额 + * 用户数据 */ - @ApiOperation(value = "总收益总额") - @GetMapping("getTotalIncome") - public R getTotalIncome() { - Double amount = orderTradeService.getTotalIncome(); - return R.ok(amount); - } + @ApiOperation(value = "用户数据") + @GetMapping("getUserData") + public R getUserData() { - /** - * 收益同比增长 (Year-on-Year, YoY) - * (本期数-同期数)/同期数×100% - */ - @ApiOperation(value = "收益同比增长") - @GetMapping("getYoYTrend") - public R getYoYTrend() { - Double yoyTrend = orderTradeService.getYoYTrend(); - return R.ok(yoyTrend); - } - - /** - * 收益环比增长 (Month-on-Month, MoM) - * (本期数 - 上期数) / 上期数 × 100% - */ - @ApiOperation(value = "收益环比增长") - @GetMapping("getMoMTrend") - public R getMoMTrend() { - Double momTrend = orderTradeService.getMoMTrend(); - return R.ok(momTrend); - } - - /** - * 获取用户数量 - */ - @ApiOperation(value = "获取用户数量") - @GetMapping("getUserCount") - public R getUserCount() { - int count = sysUserService.getUserCount(); - return R.ok(count); - } - - /** - * 本月新增用户数 - */ - @ApiOperation(value = "本月新增用户数") - @GetMapping("getMonthUserCount") - public R getMonthUserCount() { - int count = sysUserService.getMonthUserCount(); - return R.ok(count); + return R.ok(sysUserService.getUserData()); } diff --git a/mcwl-framework/src/main/java/com/mcwl/framework/web/exception/GlobalExceptionHandler.java b/mcwl-framework/src/main/java/com/mcwl/framework/web/exception/GlobalExceptionHandler.java index 6baa491..4d0e74e 100644 --- a/mcwl-framework/src/main/java/com/mcwl/framework/web/exception/GlobalExceptionHandler.java +++ b/mcwl-framework/src/main/java/com/mcwl/framework/web/exception/GlobalExceptionHandler.java @@ -49,8 +49,8 @@ public class GlobalExceptionHandler { /** * redis连接超时异常 */ - @ExceptionHandler(RedisCommandTimeoutException.class) - public AjaxResult commandTimeoutException(RedisCommandTimeoutException e, HttpServletRequest request) { + @ExceptionHandler(QueryTimeoutException.class) + public AjaxResult commandTimeoutException(QueryTimeoutException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("redis异常{},{}", requestURI, e.getMessage()); return AjaxResult.warn("超时"); diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/IncomeVo.java b/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/IncomeVo.java new file mode 100644 index 0000000..35d41d7 --- /dev/null +++ b/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/IncomeVo.java @@ -0,0 +1,40 @@ +package com.mcwl.pay.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ApiModel(value = "收益返回对象") +public class IncomeVo { + + /** + * 今日收益总额 + */ + @ApiModelProperty(value = "今日收益总额") + private Double todayIncome; + + /** + * 本月收益总额 + */ + @ApiModelProperty(value = "本月收益总额") + private Double monthIncome; + + /** + * 年度收益总额 + */ + @ApiModelProperty(value = "年度收益总额") + private Double yearIncome; + + /** + * 收益总额 + */ + @ApiModelProperty(value = "收益总额") + private Double totalIncome; +} diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/TrendVo.java b/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/TrendVo.java new file mode 100644 index 0000000..38552fc --- /dev/null +++ b/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/TrendVo.java @@ -0,0 +1,28 @@ +package com.mcwl.pay.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ApiModel(value = "收益趋势返回对象") +public class TrendVo { + + /** + * 收益同比增长 + */ + @ApiModelProperty(value = "收益同比增长") + private Double yoyTrend; + + /** + * 收益环比增长 + */ + @ApiModelProperty(value = "收益环比增长") + private Double momTrend; +} diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/service/OrderTradeService.java b/mcwl-pay/src/main/java/com/mcwl/pay/service/OrderTradeService.java index b440262..90b6a99 100644 --- a/mcwl-pay/src/main/java/com/mcwl/pay/service/OrderTradeService.java +++ b/mcwl-pay/src/main/java/com/mcwl/pay/service/OrderTradeService.java @@ -5,6 +5,8 @@ import com.mcwl.common.core.page.PageDomain; import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.common.domain.IdsParam; import com.mcwl.pay.domain.OrderTrade; +import com.mcwl.pay.domain.vo.IncomeVo; +import com.mcwl.pay.domain.vo.TrendVo; import com.mcwl.resource.domain.dto.ProductRes; import java.util.List; @@ -75,4 +77,16 @@ public interface OrderTradeService extends IService { * @return Double */ Double getMoMTrend(); + + /** + * 获取收益 + * @return IncomeVo + */ + IncomeVo getIncome(); + + /** + * 获取收益趋势 + * @return IncomeVo + */ + TrendVo getTrend(); } diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/OrderTradeServiceImpl.java b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/OrderTradeServiceImpl.java index 629a513..27779d4 100644 --- a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/OrderTradeServiceImpl.java +++ b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/OrderTradeServiceImpl.java @@ -28,6 +28,8 @@ import com.mcwl.myInvitation.service.CommissionService; import com.mcwl.myInvitation.service.ConsumeService; import com.mcwl.pay.domain.OrderTrade; import com.mcwl.pay.domain.enums.CommissionRationEnum; +import com.mcwl.pay.domain.vo.IncomeVo; +import com.mcwl.pay.domain.vo.TrendVo; import com.mcwl.pay.domain.vo.WalletRechargeRecordVo; import com.mcwl.pay.mapper.OrderTradeMapper; import com.mcwl.pay.service.OrderTradeService; @@ -311,6 +313,28 @@ public class OrderTradeServiceImpl extends ServiceImpl selectMallProductList(OrderTrade orderTrade) { // 创建一个 LambdaQueryWrapper 实例 diff --git a/mcwl-system/src/main/java/com/mcwl/system/domain/vo/UserDataVo.java b/mcwl-system/src/main/java/com/mcwl/system/domain/vo/UserDataVo.java new file mode 100644 index 0000000..5509e8b --- /dev/null +++ b/mcwl-system/src/main/java/com/mcwl/system/domain/vo/UserDataVo.java @@ -0,0 +1,29 @@ +package com.mcwl.system.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@ApiModel(value = "用户数据返回对象") +public class UserDataVo { + + /** + * 用户总数 + */ + @ApiModelProperty(value = "用户总数") + private Integer userCount; + + /** + * 本月新增用户数 + */ + @ApiModelProperty(value = "本月新增用户数") + private Integer monthUserCount; + +} diff --git a/mcwl-system/src/main/java/com/mcwl/system/service/ISysUserService.java b/mcwl-system/src/main/java/com/mcwl/system/service/ISysUserService.java index 69b8d49..19bca90 100644 --- a/mcwl-system/src/main/java/com/mcwl/system/service/ISysUserService.java +++ b/mcwl-system/src/main/java/com/mcwl/system/service/ISysUserService.java @@ -2,6 +2,7 @@ package com.mcwl.system.service; import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.entity.SysUser; +import com.mcwl.system.domain.vo.UserDataVo; import java.util.List; @@ -223,4 +224,6 @@ public interface ISysUserService Integer getUserCount(); Integer getMonthUserCount(); + + UserDataVo getUserData(); } diff --git a/mcwl-system/src/main/java/com/mcwl/system/service/impl/SysUserServiceImpl.java b/mcwl-system/src/main/java/com/mcwl/system/service/impl/SysUserServiceImpl.java index cbab0a1..a48f72c 100644 --- a/mcwl-system/src/main/java/com/mcwl/system/service/impl/SysUserServiceImpl.java +++ b/mcwl-system/src/main/java/com/mcwl/system/service/impl/SysUserServiceImpl.java @@ -19,6 +19,7 @@ import com.mcwl.system.domain.SysPost; import com.mcwl.system.domain.SysUserPost; import com.mcwl.system.domain.SysUserRole; import com.mcwl.system.domain.SysUserThirdAccount; +import com.mcwl.system.domain.vo.UserDataVo; import com.mcwl.system.mapper.*; import com.mcwl.system.service.ISysConfigService; import com.mcwl.system.service.ISysDeptService; @@ -704,4 +705,12 @@ public class SysUserServiceImpl implements ISysUserService public Integer getMonthUserCount() { return userMapper.getMonthUserCount(); } + + @Override + public UserDataVo getUserData() { + return UserDataVo.builder() + .userCount(this.getMonthUserCount()) + .monthUserCount(this.getUserCount()) + .build(); + } }