From 60f70f7409ec1ece8905e088fb43e0cb0258a70b Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期四, 19 十二月 2024 10:10:57 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/enums/PointChangeType.java | 3 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java | 3 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java | 4 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java | 5 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java | 15 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 5 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml | 18 ruoyi-modules/ruoyi-system/pom.xml | 2 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/enums/WithdrawalAuditStatus.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java | 5 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java | 21 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java | 6 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java | 10 ruoyi-service/pom.xml | 2 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java | 4 ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysMenuMapper.xml | 4 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java | 3 ruoyi-service/ruoyi-order/pom.xml | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 4 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderStatistics.java | 45 ++ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java | 137 ++--- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java | 49 ++ ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml | 72 +- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java | 4 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 23 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatisticsDetail.java | 70 +++ ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml | 67 -- ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 19 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java | 78 -- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java | 35 - ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopStatistics.java | 73 +++ ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml | 51 - ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatistics.java | 27 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java | 16 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java | 2 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java | 7 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java | 112 ++++ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java | 5 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java | 6 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatistics.java | 61 ++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java | 15 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java | 49 +- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java | 4 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java | 18 /dev/null | 37 - ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java | 10 ruoyi-service/ruoyi-other/pom.xml | 12 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml | 36 + ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RechargeSetController.java | 8 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointMapper.java | 7 55 files changed, 861 insertions(+), 422 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java index 1b8ccc4..15ee0ab 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -34,12 +35,14 @@ private Long orderId; @ApiModelProperty("类型:1充值2提现3红包4分佣5商城购物6订单取消回退") + @Excel(name = "变更类型", readConverterExp = "1=充值,2=提现,3=红包,4=分佣,5=商城购物,6=订单取消回退") private Integer changeType; @ApiModelProperty("变更前金额") private BigDecimal beforeAmount; @ApiModelProperty("变更金额") + @Excel(name = "变更数量") private BigDecimal changeAmount; @ApiModelProperty("变更后金额") @@ -49,14 +52,17 @@ private Integer delFlag; @ApiModelProperty("添加时间") + @Excel(name = "变更时间",dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @TableField(exist = false) @ApiModelProperty("消费用户名称") + @Excel(name = "用户名称") private String userName; @TableField(exist = false) @ApiModelProperty("消费用户手机号") + @Excel(name = "联系电话") private String userPhone; @TableField(exist = false) @@ -75,4 +81,8 @@ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime endTime; + @ApiModelProperty(value = "门店名称") + @TableField(exist = false) + private String shopName; + } diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java index 047d64f..a1c7158 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java @@ -38,7 +38,7 @@ private Long id; @ApiModelProperty(value = "变动类型(1-消费,2-返佣,3-拉新,4-每日分享,5-每日签到,6-使用时长, 7-注册积分, 8-门店业绩," + - "9-门店返佣,10-技师业绩,11-兑换商品,12-他人赠送,13-赠与他人)") + "9-门店返佣,14-下级门店返佣,10-技师业绩,11-兑换商品,12-他人赠送,13-赠与他人)") @TableField("type") private Integer type; diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java index da4c39e..9e0fa5d 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/WithdrawalRequests.java @@ -29,6 +29,8 @@ @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.AUTO) private Long id; + @TableField(exist = false) + private String idStr; @ApiModelProperty(value = "删除标志(0=否,1=是)") @TableField("del_flag") diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java index 37a518d..9b4068a 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java @@ -110,10 +110,6 @@ @TableField("server_point") private Integer serverPoint; - @ApiModelProperty(value = "下级门店返佣积分") - @TableField("lower_level_rebate_points") - private Integer lowerLevelRebatePoints; - @ApiModelProperty(value = "门店已用积分") @TableField("use_point") private Integer usePoint; diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java index 3dbe43c..8082908 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -41,6 +42,7 @@ @ApiModelProperty(value = "变动类型(1=门店业绩,2=门店返佣,3=下级门店返佣)") @TableField("type") + @Excel(name = "变动类型", readConverterExp = "1=门店业绩,2=门店返佣,3=下级门店返佣") private Integer type; @ApiModelProperty(value = "历史余额") @@ -49,11 +51,13 @@ @ApiModelProperty(value = "变动金额") @TableField("variable_point") + @Excel(name = "变动金额") private Integer variablePoint; @ApiModelProperty(value = "变动时间") @TableField("create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "变动时间") private LocalDateTime createTime; @ApiModelProperty(value = "变动用户id") @@ -70,14 +74,17 @@ @ApiModelProperty(value = "门店名称") @TableField(exist = false) + @Excel(name = "门店名称") private String shopName; @ApiModelProperty(value = "店长姓名") @TableField(exist = false) + @Excel(name = "店长姓名") private String shopLeaderName; @ApiModelProperty(value = "联系电话") @TableField(exist = false) + @Excel(name = "联系电话") private String phone; @TableField(exist = false) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/enums/PointChangeType.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/enums/PointChangeType.java similarity index 92% rename from ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/enums/PointChangeType.java rename to ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/enums/PointChangeType.java index 5082a61..c6aedee 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/enums/PointChangeType.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/enums/PointChangeType.java @@ -1,4 +1,4 @@ -package com.ruoyi.account.enums; +package com.ruoyi.other.api.enums; import lombok.Getter; @@ -14,6 +14,7 @@ REGISTER(7, "注册积分"), SHOP_ACHIEVEMENT(8, "门店业绩"), SHOP_REBATE(9, "门店返佣"), + JUNIOR_SHOP_REBATE(14, "下级门店返佣"), TECHNICIAN_ACHIEVEMENT(10, "技师业绩"), EXCHANGE_GOODS(11, "兑换商品"), OTHER_GIFT(12, "他人赠送"), diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/enums/WithdrawalAuditStatus.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/enums/WithdrawalAuditStatus.java similarity index 90% rename from ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/enums/WithdrawalAuditStatus.java rename to ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/enums/WithdrawalAuditStatus.java index 4788fd6..bf06e86 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/enums/WithdrawalAuditStatus.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/enums/WithdrawalAuditStatus.java @@ -1,4 +1,4 @@ -package com.ruoyi.account.enums; +package com.ruoyi.other.api.enums; import lombok.Getter; diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java new file mode 100644 index 0000000..0710bf6 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java @@ -0,0 +1,21 @@ +package com.ruoyi.other.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.ShopBalanceStatement; +import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient; +import org.springframework.cloud.openfeign.FallbackFactory; + +import java.util.List; + +public class ShopBalanceStatementClientFallbackFactory implements FallbackFactory<ShopBalanceStatementClient> { + @Override + public ShopBalanceStatementClient create(Throwable cause) { + return new ShopBalanceStatementClient(){ + + @Override + public R<List<ShopBalanceStatement>> getList(ShopBalanceStatement shopBalanceStatement) { + return R.fail("获取门店余额流水失败:" + cause.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java new file mode 100644 index 0000000..a0bb471 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java @@ -0,0 +1,18 @@ +package com.ruoyi.other.api.feignClient; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.ShopBalanceStatement; +import com.ruoyi.other.api.factory.ShopBalanceStatementClientFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +@FeignClient(contextId = "ShopBalanceStatementClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = ShopBalanceStatementClientFallbackFactory.class) +public interface ShopBalanceStatementClient { + + @PostMapping("/shop-balance-statement/getList") + R<List<ShopBalanceStatement>> getList(@RequestBody ShopBalanceStatement shopBalanceStatement); +} diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index 99da1f2..ce2efe3 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -102,7 +102,7 @@ <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> - <version>4.0.0</version> + <version>4.1.2</version> <exclusions> <exclusion> <artifactId>guava</artifactId> diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java index 3d4c11e..0548e0d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java @@ -97,11 +97,11 @@ @ApiOperation(value = "个人信息-修改密码") @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PostMapping("/updatePwd") - public AjaxResult updatePwd(String oldPassword, String newPassword) + public AjaxResult updatePwd(String username,String oldPassword, String newPassword) { System.err.println(oldPassword); System.err.println(newPassword); - String username = SecurityUtils.getUsername(); +// String username = SecurityUtils.getUsername(); SysUser user = userService.selectUserByUserName(username); String password = user.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java index 340d7ef..bf919e8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java @@ -72,6 +72,8 @@ /** 菜单图标 */ private String icon; + @TableField("role_type") + private String roleType; /** 子菜单 */ @TableField(exist = false) @@ -244,6 +246,14 @@ this.children = children; } + public String getRoleType() { + return roleType; + } + + public void setRoleType(String roleType) { + this.roleType = roleType; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index 4c9dd4a..db1bfe7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -130,7 +130,7 @@ List<SysMenus> getAllInIds(@Param("menusId") List<Long> menusId); - List<SysMenus> getAllOne(); + List<SysMenus> getAllOne(@Param("roleType") Integer roleType); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 607db4f..b9d09a4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysRole; +import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.SysMenus; import com.ruoyi.system.domain.SysUserRole; @@ -353,11 +354,12 @@ @Override public List<SysMenus> getAllMenu() { Long userid = tokenService.getLoginUser().getUserid(); + SysUser sysUser = sysUserMapper.selectById(userid); SysUserRole sysUserRole = sysUserRoleMapper.selectSysUserRoleByUserId(userid); Long roleId = sysUserRole.getRoleId(); List<SysMenus> list=null; if(roleId!=1){ - list = menuMapper.getAllOne(); + list = menuMapper.getAllOne(sysUser.getRoleType()); }else { list = menuMapper.getAll(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysMenuMapper.xml index 75db7c8..eb18cf3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysMenuMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysMenuMapper.xml @@ -152,7 +152,7 @@ update_by updateBy, update_time updateTime, remark - from sys_menu + from sys_menu where role_type = 1 order by create_time desc </select> <select id="getAllInIds" resultType="com.ruoyi.system.domain.SysMenus"> @@ -201,7 +201,7 @@ update_by updateBy, update_time updateTime, remark - from sys_menu where menu_id !=1074 and menu_id !=1075 and menu_id !=1193 and menu_id !=1194 + from sys_menu where role_type = #{roleType} order by create_time desc </select> diff --git a/ruoyi-service/pom.xml b/ruoyi-service/pom.xml index a177aa0..9939f3d 100644 --- a/ruoyi-service/pom.xml +++ b/ruoyi-service/pom.xml @@ -38,7 +38,7 @@ <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> - <version>4.0.0</version> + <version>4.1.2</version> <exclusions> <exclusion> <artifactId>guava</artifactId> diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java index e0d3393..b2c1bfd 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java @@ -6,6 +6,7 @@ import com.ruoyi.account.api.model.UserCancellationLog; import com.ruoyi.account.api.model.UserCoupon; import com.ruoyi.account.api.model.UserSignRecord; +import com.ruoyi.account.mapper.AppUserMapper; import com.ruoyi.account.service.AppUserService; import com.ruoyi.account.service.UserCancellationLogService; import com.ruoyi.account.service.UserCouponService; @@ -75,6 +76,8 @@ private UserPointService userPointService; @Resource private VipSettingService vipSettingService; + @Resource + private AppUserMapper appUserMapper; @ResponseBody @@ -632,5 +635,25 @@ return R.ok(appUser); } + /** + * 用户统计 + */ + @GetMapping("/statistics") + @ApiOperation(value = "用户统计",tags = {"管理后台-首页统计-用户统计"}) + public R<UserStatistics> statistics() { + UserStatistics userStatistics = appUserMapper.getUserStatistics(); + return R.ok(userStatistics); + } + + /** + * 用户统计详情 + */ + @GetMapping("/statistics/detail") + @ApiOperation(value = "用户统计详情",tags = {"管理后台-首页统计-用户统计详情"}) + public R<UserStatisticsDetail> statisticsDetail(String userName) { + UserStatisticsDetail userStatisticsDetail = appUserMapper.getUserStatisticsDetail(userName); + return R.ok(userStatisticsDetail); + } + } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java index e43b425..c1c56d4 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java @@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.model.BalanceChangeRecord; import com.ruoyi.account.dto.BalanceQuery; -import com.ruoyi.account.excel.BalanceChangeRecordEX; import com.ruoyi.account.service.BalanceChangeRecordService; import com.ruoyi.account.vo.CommissionStatistics; +import com.ruoyi.account.vo.WalletStatistics; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.poi.ExcelUtil; import io.swagger.annotations.ApiOperation; @@ -15,8 +15,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; import java.util.List; /** @@ -26,87 +24,68 @@ @RestController @RequestMapping("/balanceChangeRecord") public class BalanceChangeRecordController { - - @Resource - private BalanceChangeRecordService balanceChangeRecordService; - - - /** - * 保存账户流水记录 - * @param balanceChangeRecord - * @return - */ - @PostMapping("/saveBalanceChangeRecord") - public R saveBalanceChangeRecord(@RequestBody BalanceChangeRecord balanceChangeRecord){ - balanceChangeRecordService.save(balanceChangeRecord); - return R.ok(); - } - @PostMapping("/page") - @ApiOperation(value = "余额变更明细", tags = {"后台"}) - public R<IPage<BalanceChangeRecord>> page(@RequestBody BalanceQuery agentQuery) { + @Resource + private BalanceChangeRecordService balanceChangeRecordService; - return R.ok(balanceChangeRecordService.pageList(agentQuery)); - } - /** - * 用户分佣统计 - */ - @GetMapping("/commissionStatistics") - @ApiOperation(value = "用户分佣统计", tags = "管理后台-财务统计-用户分佣统计") - public R<CommissionStatistics> commissionStatistics(@ApiParam("页码") @RequestParam Integer pageNum, - @ApiParam("每一页数据大小") Integer pageSize, - BalanceChangeRecord balanceChangeRecord) { - CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(pageNum, pageSize), balanceChangeRecord); - return R.ok(commissionStatistics1); - } -// + /** + * 保存账户流水记录 + * + * @param balanceChangeRecord + * @return + */ + @PostMapping("/saveBalanceChangeRecord") + public R saveBalanceChangeRecord(@RequestBody BalanceChangeRecord balanceChangeRecord) { + balanceChangeRecordService.save(balanceChangeRecord); + return R.ok(); + } + + @PostMapping("/page") + @ApiOperation(value = "余额变更明细", tags = {"后台"}) + public R<IPage<BalanceChangeRecord>> page(@RequestBody BalanceQuery agentQuery) { + + return R.ok(balanceChangeRecordService.pageList(agentQuery)); + } + + /** + * 用户分佣统计 + */ + @GetMapping("/commissionStatistics") + @ApiOperation(value = "用户分佣统计", tags = "管理后台-财务统计-用户分佣统计") + public R<CommissionStatistics> commissionStatistics(@ApiParam("页码") @RequestParam Integer pageNum, + @ApiParam("每一页数据大小") Integer pageSize, + BalanceChangeRecord balanceChangeRecord) { + CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(pageNum, pageSize), balanceChangeRecord); + return R.ok(commissionStatistics1); + } + + // // /** // * 导出用户分佣统计 // */ - @GetMapping("/commissionExport") - @ApiOperation(value = "用户分佣统计导出", tags = "管理后台-财务统计-用户分佣统计") - public void commissionExport(HttpServletResponse response, BalanceChangeRecord balanceChangeRecord) { - CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(1, Integer.MAX_VALUE), balanceChangeRecord); - IPage<BalanceChangeRecord> userPointPage = commissionStatistics1.getUserPointPage(); - List<BalanceChangeRecord> userPointList = userPointPage.getRecords(); - List<BalanceChangeRecordEX> userPointExList = new ArrayList<>(); - for (BalanceChangeRecord balanceChangeRecord1 : userPointList) { - BalanceChangeRecordEX balanceChangeRecordEX = new BalanceChangeRecordEX(); - balanceChangeRecordEX.setUserName(balanceChangeRecord1.getUserName()); - balanceChangeRecordEX.setPhone(balanceChangeRecord1.getUserPhone()); - balanceChangeRecordEX.setChangeTime(balanceChangeRecord1.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - balanceChangeRecordEX.setChangeNum(balanceChangeRecord1.getAfterAmount().toString()); - Integer type = balanceChangeRecord1.getChangeType(); - // 类型:1充值2提现3红包4分佣5商城购物6订单取消回退 - switch (type) { - case 1: - balanceChangeRecordEX.setType("充值"); - break; - case 2: - balanceChangeRecordEX.setType("提现"); - break; - case 3: - balanceChangeRecordEX.setType("红包"); - break; - case 4: - balanceChangeRecordEX.setType("分佣"); - break; - case 5: - balanceChangeRecordEX.setType("商城购物"); - break; - case 6: - balanceChangeRecordEX.setType("订单取消回退"); - break; - default: - balanceChangeRecordEX.setType("未知积分"); - } - userPointExList.add(balanceChangeRecordEX); - } - ExcelUtil<BalanceChangeRecordEX> util = new ExcelUtil<>(BalanceChangeRecordEX.class); - util.exportExcel(response, userPointExList, "用户分佣统计"); - } + @GetMapping("/commissionExport") + @ApiOperation(value = "用户分佣统计导出", tags = "管理后台-财务统计-用户分佣统计") + public void commissionExport(HttpServletResponse response, BalanceChangeRecord balanceChangeRecord) { + CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(1, Integer.MAX_VALUE), balanceChangeRecord); + IPage<BalanceChangeRecord> userPointPage = commissionStatistics1.getUserPointPage(); + List<BalanceChangeRecord> userPointList = userPointPage.getRecords(); + ExcelUtil<BalanceChangeRecord> util = new ExcelUtil<>(BalanceChangeRecord.class); + util.exportExcel(response, userPointList, "用户分佣统计"); + } - - + + /** + * 钱包统计 + */ + @GetMapping("/walletStatistics") + @ApiOperation(value = "钱包统计", tags = "管理后台-财务统计-钱包统计") + public R<WalletStatistics> walletStatistics(@ApiParam("页码") @RequestParam Integer pageNum, + @ApiParam("每一页数据大小") Integer pageSize, + BalanceChangeRecord balanceChangeRecord) { + WalletStatistics walletStatistics = balanceChangeRecordService.walletStatistics(Page.of(pageNum, pageSize), balanceChangeRecord); + return R.ok(walletStatistics); + } + + } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java index 6d9ebf5..2763610 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java @@ -49,7 +49,11 @@ @PostMapping("/page") @ApiOperation(value = "提现申请列表", tags = {"后台"}) public R<IPage<WithdrawalRequests>> page(@RequestBody WithQuery withQuery){ - return R.ok(withdrawalRequestsService.pageList(withQuery)); + IPage<WithdrawalRequests> withdrawalRequestsIPage = withdrawalRequestsService.pageList(withQuery); + for (WithdrawalRequests record : withdrawalRequestsIPage.getRecords()) { + record.setIdStr(record.getId().toString()); + } + return R.ok(withdrawalRequestsIPage); } @PostMapping("/auth") @ApiOperation(value = "提现申请审批", tags = {"后台"}) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/BalanceChangeRecordEX.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/BalanceChangeRecordEX.java deleted file mode 100644 index a81fee3..0000000 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/BalanceChangeRecordEX.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ruoyi.account.excel; - -import com.ruoyi.common.core.annotation.Excel; -import lombok.Data; - -@Data -public class BalanceChangeRecordEX { - @Excel(name = "用户名称") - private String userName; - - @Excel(name = "联系电话") - private String phone; - - @Excel(name = "变更类型") - private String type; - - @Excel(name = "变更时间") - private String changeTime; - - @Excel(name = "变更数量") - private String changeNum; -} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/UserPointEx.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/UserPointEx.java deleted file mode 100644 index 7932861..0000000 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/excel/UserPointEx.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.ruoyi.account.excel; - -import com.ruoyi.common.core.annotation.Excel; -import lombok.Data; - -@Data -public class UserPointEx { - - /** - * 用户名称 - */ - @Excel(name = "用户名称") - private String userName; - - /** - * 联系电话 - */ - @Excel(name = "联系电话") - private String phone; - - /** - * 变更类型 - */ - @Excel(name = "变更类型") - private String type; - - /** - * 变更时间 - */ - @Excel(name = "变更时间") - private String changeTime; - - /** - * 变更数量 - */ - @Excel(name = "变更数量") - private String changeNum; -} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java index 9d165d1..6722562 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java @@ -5,6 +5,8 @@ import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.vo.NearbyReferrer; import com.ruoyi.account.vo.NearbyReferrerVo; +import com.ruoyi.account.vo.UserStatistics; +import com.ruoyi.account.vo.UserStatisticsDetail; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -30,6 +32,10 @@ IPage<AppUser> getAppuserPage(@Param("page") IPage<AppUser> page, @Param("appUser") AppUser appUser); IPage<AppUser> getAppuserPage1(@Param("page") IPage<AppUser> page, @Param("appUser") AppUser appUser,@Param("objectId")Integer objectId,@Param("userIds")List<Long> userIds); + UserStatistics getUserStatistics(); + + UserStatisticsDetail getUserStatisticsDetail(String userName); + } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java index 19d0672..70ef058 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java @@ -13,8 +13,9 @@ public interface BalanceChangeRecordMapper extends BaseMapper<BalanceChangeRecord> { IPage<BalanceChangeRecord> pageList(@Param("page") Page<BalanceChangeRecord> page,@Param("agentQuery") BalanceQuery agentQuery); + + List<BalanceChangeRecord> selectBalanceChangeRecordList(@Param("changeRecord") BalanceChangeRecord balanceChangeRecord); + IPage<BalanceChangeRecord> queryCommissionStatistics(@Param("page") Page<BalanceChangeRecord> page, @Param("changeRecord") BalanceChangeRecord changeRecord); - - List<UserPoint> findLatestChangeByType(BalanceChangeRecord balanceChangeRecord); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java index a1cf54f..9727203 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java @@ -6,9 +6,13 @@ import com.ruoyi.account.api.model.BalanceChangeRecord; import com.ruoyi.account.dto.BalanceQuery; import com.ruoyi.account.vo.CommissionStatistics; +import com.ruoyi.account.vo.WalletStatistics; public interface BalanceChangeRecordService extends IService<BalanceChangeRecord> { IPage<BalanceChangeRecord> pageList(BalanceQuery agentQuery); CommissionStatistics commissionStatistics(Page<BalanceChangeRecord> page, BalanceChangeRecord balanceChangeRecord); + + WalletStatistics walletStatistics(Page<BalanceChangeRecord> of, BalanceChangeRecord balanceChangeRecord); + } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java index bb93baa..5c148d8 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java @@ -62,7 +62,7 @@ // 直推用户已成为代理数量 List<AppUser> directAgentUserList = appUserService.list(new LambdaQueryWrapper<AppUser>() .eq(AppUser::getInviteUserId, appUser.getId()) - .eq(AppUser::getUserType, 4)); + .eq(AppUser::getVipId, 4)); agentApplication.setDirectAgentNum(directAgentUserList.size()); // 已绑定门店数量 diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java index 850405b..4d0426c 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java @@ -1,31 +1,35 @@ package com.ruoyi.account.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.BalanceChangeRecord; -import com.ruoyi.account.api.model.UserClickLog; -import com.ruoyi.account.api.model.WithdrawalRequests; import com.ruoyi.account.dto.BalanceQuery; import com.ruoyi.account.mapper.BalanceChangeRecordMapper; -import com.ruoyi.account.service.AppUserService; import com.ruoyi.account.service.BalanceChangeRecordService; import com.ruoyi.account.vo.CommissionStatistics; -import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.account.vo.WalletStatistics; +import com.ruoyi.account.vo.WalletStatisticsDetail; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.ruoyi.other.api.domain.ShopBalanceStatement; +import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Service public class BalanceChangeRecordServiceImpl extends ServiceImpl<BalanceChangeRecordMapper, BalanceChangeRecord> implements BalanceChangeRecordService { @Resource - private AppUserService appUserService; + private ShopBalanceStatementClient shopBalanceStatementClient; @Override public IPage<BalanceChangeRecord> pageList(BalanceQuery agentQuery) { @@ -38,9 +42,97 @@ @Override public CommissionStatistics commissionStatistics(Page<BalanceChangeRecord> page, BalanceChangeRecord balanceChangeRecord) { + List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList(balanceChangeRecord); + BigDecimal totalCommission = balanceChangeRecordList.stream() + .filter(item -> !(item.getChangeType().equals(2) && item.getChangeType().equals(5))) + .map(BalanceChangeRecord::getChangeAmount) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .setScale(2, RoundingMode.HALF_UP); IPage<BalanceChangeRecord> balanceChangeRecordIPage = this.baseMapper.queryCommissionStatistics(page, balanceChangeRecord); -// return new CommissionStatistics(totalCommission, changeRecordPage); - return null; + return new CommissionStatistics(totalCommission, balanceChangeRecordIPage); } + + @Override + public WalletStatistics walletStatistics(Page<BalanceChangeRecord> page, BalanceChangeRecord balanceChangeRecord) { + ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement(); + shopBalanceStatement.setType(4); + + R<List<ShopBalanceStatement>> r; + try { + r = shopBalanceStatementClient.getList(shopBalanceStatement); + } catch (Exception e) { + log.error("获取店铺余额对账单列表时出错", e); + return null; + } + + if (R.isError(r)) { + return null; + } + + List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList(balanceChangeRecord); + + List<WalletStatisticsDetail> walletStatisticsDetailList = new ArrayList<>(); + for (BalanceChangeRecord changeRecord : balanceChangeRecordList) { + WalletStatisticsDetail walletStatisticsDetail = new WalletStatisticsDetail(); + BeanUtils.copyBeanProp(walletStatisticsDetail, changeRecord); + walletStatisticsDetailList.add(walletStatisticsDetail); + } + + walletStatisticsDetailList.addAll(r.getData().stream().map(this::createWalletStatisticsDetail).collect(Collectors.toList())); + + // 按时间排序(倒序) + walletStatisticsDetailList.sort(Comparator.comparing(WalletStatisticsDetail::getCreateTime).reversed()); + + long current = page.getCurrent(); + long size = page.getSize(); + int fromIndex = (int) (current - 1); + int toIndex = (int) Math.min(fromIndex + size, walletStatisticsDetailList.size()); + + if (fromIndex < 0 || toIndex > walletStatisticsDetailList.size()) { + throw new ServiceException("页面参数无效"); + } + + List<WalletStatisticsDetail> walletStatisticsDetailList2 = walletStatisticsDetailList.subList(fromIndex, toIndex); + + + Map<Integer, BigDecimal> shopCommissionMap = walletStatisticsDetailList.stream() + .collect(Collectors.groupingBy( + WalletStatisticsDetail::getChangeType, + Collectors.reducing( + BigDecimal.ZERO, + WalletStatisticsDetail::getChangeAmount, + BigDecimal::add + ) + )); + + BigDecimal totalRecharge = shopCommissionMap.get(1); + BigDecimal totalWithdraw = shopCommissionMap.get(2); + BigDecimal totalShopWithdraw = shopCommissionMap.get(7); + + + WalletStatistics walletStatistics = new WalletStatistics(); + Page<WalletStatisticsDetail> page1 = new Page<>(); + page1.setRecords(walletStatisticsDetailList2); + page1.setTotal(walletStatisticsDetailList.size()); + page1.setCurrent(current); + page1.setSize(size); + walletStatistics.setPage(page1); + walletStatistics.setTotalRecharge(totalRecharge); + walletStatistics.setTotalWithdraw(totalWithdraw); + walletStatistics.setTotalShopWithdraw(totalShopWithdraw); + return walletStatistics; + } + + private WalletStatisticsDetail createWalletStatisticsDetail(ShopBalanceStatement item) { + WalletStatisticsDetail walletStatisticsDetail = new WalletStatisticsDetail(); + walletStatisticsDetail.setShopName(item.getShopName()); + walletStatisticsDetail.setUserName(item.getShopManagerName()); + walletStatisticsDetail.setUserPhone(item.getPhone()); + walletStatisticsDetail.setChangeType(4); + walletStatisticsDetail.setCreateTime(item.getCreateTime()); + walletStatisticsDetail.setChangeAmount(item.getVariableAmount()); + return walletStatisticsDetail; + } + } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java index 132dc25..f2fc4eb 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.UserPoint; -import com.ruoyi.account.enums.PointChangeType; +import com.ruoyi.other.api.enums.PointChangeType; import com.ruoyi.account.mapper.UserPointMapper; import com.ruoyi.account.service.AppUserService; import com.ruoyi.account.service.PointSettingService; @@ -19,7 +19,6 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.PhoneNumberValidator; -import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.PointSetting; import com.ruoyi.other.api.domain.Shop; diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java index 06caeb7..65f5425 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java @@ -1,7 +1,7 @@ package com.ruoyi.account.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.ruoyi.account.enums.WithdrawalAuditStatus; +import com.ruoyi.other.api.enums.WithdrawalAuditStatus; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.WithdrawalRequests; import com.ruoyi.account.service.AppUserService; diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java index 24f543e..b55d179 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/CommissionStatistics.java @@ -21,7 +21,7 @@ public CommissionStatistics() { } - public CommissionStatistics(BigDecimal totalCommission, Page<BalanceChangeRecord> changeRecordPage) { + public CommissionStatistics(BigDecimal totalCommission, IPage<BalanceChangeRecord> changeRecordPage) { this.totalCommission = totalCommission; this.userPointPage = changeRecordPage; } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatistics.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatistics.java new file mode 100644 index 0000000..f265ccb --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatistics.java @@ -0,0 +1,61 @@ +package com.ruoyi.account.vo; + +import lombok.Data; + +@Data +public class UserStatistics { + /** + * 用户总数 + */ + private Integer totalUser; + + /** + * 拥有门店用户数 + */ + private Integer shopUser; + + /** + * 消费者用户数 + */ + private Integer consumerUser; + + /** + * 普通会员数 + */ + private Integer commonUser; + + /** + * 黄金会员数 + */ + private Integer goldUser; + + /** + * 钻石会员数 + */ + private Integer diamondUser; + + /** + * 创业者总数 + */ + private Integer entrepreneurUser; + + /** + * 准代理数 + */ + private Integer proxyUser; + + /** + * 代理数 + */ + private Integer agentUser; + + /** + * 总代数 + */ + private Integer totalAgentUser; + + /** + * 合伙人数 + */ + private Integer partnerUser; +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatisticsDetail.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatisticsDetail.java new file mode 100644 index 0000000..3a58836 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserStatisticsDetail.java @@ -0,0 +1,70 @@ +package com.ruoyi.account.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("用户统计详情") +public class UserStatisticsDetail { + + /** + * 用户获得总积分 + */ + @ApiModelProperty("用户获得总积分") + private Integer totalScore; + + /** + * 消费积分总数 + */ + @ApiModelProperty("消费积分总数") + private Integer consumeScore; + + /** + * 返佣积分总数 + */ + @ApiModelProperty("返佣积分总数") + private Integer rebateScore; + + /** + * 拉新人积分总数 + */ + @ApiModelProperty("拉新人积分总数") + private Integer inviteScore; + + /** + * 注册积分总数 + */ + @ApiModelProperty("注册积分总数") + private Integer registerScore; + + /** + * 做工积分总数 + */ + @ApiModelProperty("做工积分总数") + private Integer workScore; + + /** + * 技师业绩积分总数 + */ + @ApiModelProperty("技师业绩积分总数") + private Integer achievementScore; + + /** + * 用户获得分佣总金额 + */ + @ApiModelProperty("用户获得分佣总金额") + private Integer totalRebate; + + /** + * 充值金额 + */ + @ApiModelProperty("充值金额") + private Integer totalRecharge; + + /** + * 已提现金额 + */ + @ApiModelProperty("已提现金额") + private Integer totalWithdraw; +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatistics.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatistics.java new file mode 100644 index 0000000..c2681cb --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatistics.java @@ -0,0 +1,27 @@ +package com.ruoyi.account.vo; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class WalletStatistics { + + /** + * 用户充值总金额 + */ + private BigDecimal totalRecharge; + + /** + * 用户提现总金额 + */ + private BigDecimal totalWithdraw; + + /** + * 门店提现总金额 + */ + private BigDecimal totalShopWithdraw; + + private IPage<WalletStatisticsDetail> page; +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java new file mode 100644 index 0000000..76215da --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java @@ -0,0 +1,49 @@ +package com.ruoyi.account.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class WalletStatisticsDetail { + /** + * 门店名称 + */ + @ApiModelProperty(value = "门店名称") + private String shopName; + + /** + * 用户姓名 + */ + @ApiModelProperty(value = "用户姓名") + private String userName; + + /** + * 联系电话 + */ + @ApiModelProperty(value = "联系电话") + private String userPhone; + + @ApiModelProperty("类型:1充值2提现3红包4分佣5商城购物6订单取消回退7门店提现") + @Excel(name = "变更类型", readConverterExp = "1=充值,2=提现,3=红包,4=分佣,5=商城购物,6=订单取消回退,7=门店提现") + private Integer changeType; + + /** + * 变更时间 + */ + @ApiModelProperty(value = "变更时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 变更数量 + */ + @ApiModelProperty(value = "变更数量") + private BigDecimal changeAmount; +} diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml index 935fb14..0de5ea0 100644 --- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml @@ -111,4 +111,40 @@ ) or ta.shop_id = #{objectId} ) </where> </select> + <select id="getUserStatistics" resultType="com.ruoyi.account.vo.UserStatistics"> + SELECT + COUNT(*) AS totalUser, + SUM(CASE WHEN tau.user_type = 2 THEN 1 ELSE 0 END) AS shopUser, + SUM(CASE WHEN tau.vip_id <![CDATA[<]]> 4 THEN 1 ELSE 0 END) AS consumerUser, + SUM(CASE WHEN tau.vip_id = 1 THEN 1 ELSE 0 END) AS commonUser, + SUM(CASE WHEN tau.vip_id = 2 THEN 1 ELSE 0 END) AS goldUser, + SUM(CASE WHEN tau.vip_id = 3 THEN 1 ELSE 0 END) AS diamondUser, + SUM(CASE WHEN tau.vip_id <![CDATA[>]]> 3 THEN 1 ELSE 0 END) AS entrepreneurUser, + SUM(CASE WHEN tau.vip_id = 4 THEN 1 ELSE 0 END) AS proxyUser, + SUM(CASE WHEN tau.vip_id = 5 THEN 1 ELSE 0 END) AS agentUser, + SUM(CASE WHEN tau.vip_id = 6 THEN 1 ELSE 0 END) AS totalAgentUser, + SUM(CASE WHEN tau.vip_id = 7 THEN 1 ELSE 0 END) AS partnerUser + FROM + t_app_user tau + </select> + <select id="getUserStatisticsDetail" resultType="com.ruoyi.account.vo.UserStatisticsDetail"> + SELECT + SUM(tau.total_point) totalScore, + SUM(tau.shop_point) consumeScore, + SUM(tau.share_point) rebateScore, + SUM(tau.total_invite_point) inviteScore, + SUM(tau.total_register_point) registerScore, + SUM(tau.total_share_point+tau.total_sign_point+tau.total_hour_point) workScore, + SUM(tau.total_performance_point) achievementScore, + SUM(tau.total_distribution_amount) totalRebate, + SUM(tau.total_recharge_amount) totalRecharge, + SUM(tau.withdrawn_amount) totalWithdraw + FROM + t_app_user tau + <where> + <if test="null != userName and '' != userName"> + and tau.name like CONCAT('%',#{userName},'%') + </if> + </where> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml index a947cb1..4bfdf8b 100644 --- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml @@ -21,14 +21,17 @@ </if> </where> </select> - <select id="queryCommissionStatistics" resultType="com.ruoyi.account.api.model.BalanceChangeRecord"> + + <sql id="balanceChangeRecordList"> SELECT - tcr.*, tau.`name` userName, - tau.phone userPhone + tau.phone userPhone, + tbcr.change_type, + tbcr.create_time, + tbcr.change_amount FROM - t_balance_change_record tcr - LEFT JOIN t_app_user tau ON tcr.app_user_id = tau.id + t_balance_change_record tbcr + LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id <where> <if test="changeRecord.userName != null and changeRecord.userName != ''"> and tau.name like concat('%',#{changeRecord.userName},'%') @@ -36,56 +39,16 @@ <if test="changeRecord.userPhone != null and changeRecord.userPhone != ''"> and tau.phone like concat('%',#{changeRecord.userPhone},'%') </if> - <if test="changeRecord.changeType != null"> - and tcr.change_type = #{changeRecord.changeType} - </if> <if test="changeRecord.startTime != null and changeRecord.endTime != null"> - and DATE(tcr.create_time) between #{changeRecord.startTime} and #{changeRecord.endTime} + and DATE(tbcr.create_time) between #{changeRecord.startTime} and #{changeRecord.endTime} </if> </where> + </sql> + + <select id="selectBalanceChangeRecordList" resultType="com.ruoyi.account.api.model.BalanceChangeRecord"> + <include refid="balanceChangeRecordList"/> </select> - <select id="findLatestChangeByType" resultType="com.ruoyi.account.api.model.UserPoint"> - SELECT - id, - app_user_id, - order_id, - change_type, - before_amount, - change_amount, - after_amount, - del_flag, - create_time - FROM - ( - SELECT - id, - app_user_id, - order_id, - change_type, - before_amount, - change_amount, - after_amount, - del_flag, - create_time, - ROW_NUMBER() OVER ( PARTITION BY change_type, app_user_id ORDER BY create_time DESC ) rn - FROM - t_balance_change_record - <where> - <if test="changeRecord.userName != null and changeRecord.userName != ''"> - and tau.name like concat('%',#{changeRecord.userName},'%') - </if> - <if test="changeRecord.userPhone != null and changeRecord.userPhone != ''"> - and tau.phone like concat('%',#{changeRecord.userPhone},'%') - </if> - <if test="changeRecord.changeType != null"> - and tcr.change_type = #{changeRecord.changeType} - </if> - <if test="changeRecord.startTime != null and changeRecord.endTime != null"> - and DATE(tcr.create_time) between #{changeRecord.startTime} and #{changeRecord.endTime} - </if> - </where> - ) AS subquery - WHERE - rn = 1 + <select id="queryCommissionStatistics" resultType="com.ruoyi.account.api.model.BalanceChangeRecord"> + <include refid="balanceChangeRecordList"/> </select> </mapper> diff --git a/ruoyi-service/ruoyi-order/pom.xml b/ruoyi-service/ruoyi-order/pom.xml index b0095a7..52c2a8b 100644 --- a/ruoyi-service/ruoyi-order/pom.xml +++ b/ruoyi-service/ruoyi-order/pom.xml @@ -136,7 +136,7 @@ <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> - <version>4.0.0</version> + <version>4.1.2</version> <exclusions> <exclusion> <artifactId>guava</artifactId> diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java index 76ffe8f..fa009b9 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java @@ -12,6 +12,7 @@ import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.enums.OrderStatus; +import com.ruoyi.order.mapper.OrderMapper; import com.ruoyi.order.model.Order; import com.ruoyi.order.service.CommissionService; import com.ruoyi.order.service.OrderService; @@ -50,6 +51,8 @@ private CommissionService commissionService; @Resource private BaseSettingClient baseSettingClient; + @Resource + private OrderMapper orderMapper; /** @@ -262,5 +265,18 @@ public R<PageInfo<OrderPageListVo>> getOrderPageList(OrderPageList orderPageList){ return R.ok(orderService.getOrderPageList(orderPageList)); } + + /** + * 订单统计 + */ + @GetMapping("/getOrderStatistics") + @ApiOperation(value = "订单统计", tags = {"管理后台-首页统计"}) + public R<OrderStatistics> getOrderStatistics(@RequestParam("startTime") String startTime, + @RequestParam("endTime") String endTime){ + OrderStatistics orderStatistics = orderMapper.getOrderStatistics(LocalDateTime.parse(startTime), LocalDateTime.parse(endTime)); + return R.ok(orderStatistics); + } + + } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java index 82eb43a..2353959 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java @@ -4,10 +4,12 @@ import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.order.vo.OrderPageList; import com.ruoyi.order.vo.OrderPageListVo; +import com.ruoyi.order.vo.OrderStatistics; import com.ruoyi.order.vo.OrderVO; import com.ruoyi.order.model.Order; import org.apache.ibatis.annotations.Param; +import java.time.LocalDateTime; import java.util.List; /** @@ -31,4 +33,7 @@ * @return */ List<OrderPageListVo> getOrderPageList(PageInfo<OrderPageListVo> pageInfo, @Param("item") OrderPageList orderPageList); + + OrderStatistics getOrderStatistics(@Param("startTime")LocalDateTime startTime, + @Param("endTime") LocalDateTime endTime); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index f964675..4adce50 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -130,9 +130,6 @@ orderGoodsVO.setOriginalPrice(goods.getOriginalPrice()); goodsList.add(orderGoodsVO); } - - - // 收货地址 String addressJson = order.getAddressJson(); UserAddress userAddress = new UserAddress(); @@ -140,7 +137,6 @@ userAddress = JSONObject.parseObject(addressJson, UserAddress.class); } - // 优惠券 String couponJson = order.getCouponJson(); CouponInfo couponInfo = new CouponInfo(); @@ -154,7 +150,6 @@ if (StringUtils.isNotEmpty(activityJson)){ orderActivityInfo = JSONObject.parseObject(activityJson, OrderActivityInfo.class); } - OrderDetailVO orderDetailVO = new OrderDetailVO(); if (CollectionUtil.isNotEmpty(orderGoods)){ diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderStatistics.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderStatistics.java new file mode 100644 index 0000000..0dc711a --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderStatistics.java @@ -0,0 +1,45 @@ +package com.ruoyi.order.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("订单统计") +public class OrderStatistics { + /** + * 订单总数 + */ + @ApiModelProperty(value = "订单总数") + private Integer total; + + /** + * 服务类型订单数量 + */ + @ApiModelProperty(value = "服务类型订单数量") + private Integer serviceTotal; + + /** + * 单品类型订单数量 + */ + @ApiModelProperty(value = "单品类型订单数量") + private Integer singleTotal; + + /** + * 订单总金额 + */ + @ApiModelProperty(value = "订单总金额") + private Double totalMoney; + + /** + * 服务类型订单总金额 + */ + @ApiModelProperty(value = "服务类型订单总金额") + private Double serviceTotalMoney; + + /** + * 单品类型订单总金额 + */ + @ApiModelProperty(value = "单品类型订单总金额") + private Double singleTotalMoney; +} diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index f71d000..8ff4fdc 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -77,4 +77,23 @@ </if> order by create_time desc </select> + <select id="getOrderStatistics" resultType="com.ruoyi.order.vo.OrderStatistics"> + SELECT + count(*), + SUM( CASE WHEN tor.order_type = 1 THEN 1 ELSE 0 END ) a, + SUM( CASE WHEN tor.order_type = 2 THEN 1 ELSE 0 END ) b, + SUM( tor.total_amount ) c, + SUM( CASE WHEN tor.order_type = 1 THEN tor.total_amount ELSE 0 END ), + SUM( CASE WHEN tor.order_type = 2 THEN tor.total_amount ELSE 0 END ) + FROM + t_order tor + <where> + <if test="startTime != null"> + and tor.create_time <![CDATA[>=]]> #{startTime} + </if> + <if test="endTime != null"> + and tor.create_time <![CDATA[<=]]> #{endTime} + </if> + </where> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-other/pom.xml b/ruoyi-service/ruoyi-other/pom.xml index 2288606..50f811c 100644 --- a/ruoyi-service/ruoyi-other/pom.xml +++ b/ruoyi-service/ruoyi-other/pom.xml @@ -126,12 +126,12 @@ <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </dependency> - <dependency> - <groupId>com.alibaba</groupId> - <artifactId>easyexcel-core</artifactId> - <version>RELEASE</version> - <scope>compile</scope> - </dependency> +<!-- <dependency>--> +<!-- <groupId>com.alibaba</groupId>--> +<!-- <artifactId>easyexcel-core</artifactId>--> +<!-- <version>RELEASE</version>--> +<!-- <scope>compile</scope>--> +<!-- </dependency>--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java index c6062e4..9824721 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PointSettingController.java @@ -35,15 +35,14 @@ } @GetMapping("/search") @ApiOperation(value = "积分配置查询", tags = {"后台"}) - public R<List<PointSetting>> search(@RequestParam Integer id) { + public R<List<PointSetting>> search() { List<PointSetting> list = pointSettingService.list(); return R.ok(list); } @PostMapping("/save") @ApiOperation(value = "积分配置", tags = {"后台"}) public R<PointSetting> save(@RequestBody PointSettingDto pointSettingDto) { - pointSettingService.remove(Wrappers.lambdaQuery()); - pointSettingService.saveBatch(pointSettingDto.getPointSettings()); + pointSettingService.saveOrUpdateBatch(pointSettingDto.getPointSettings()); return R.ok(); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RechargeSetController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RechargeSetController.java index 038d8f0..9812889 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RechargeSetController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RechargeSetController.java @@ -6,6 +6,7 @@ import com.ruoyi.account.api.model.UserClickLog; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.RechargeSet; +import com.ruoyi.other.dto.RechargeDto; import com.ruoyi.other.service.RechargeSetService; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; @@ -34,9 +35,10 @@ } @PostMapping("/set") @ApiOperation(value = "充值设置", tags = {"后台"}) - public R<List<RechargeSet>> detail(@RequestBody List<RechargeSet> rechargeSets) { - boolean remove = rechargeSetService.remove(Wrappers.lambdaQuery()); - rechargeSetService.saveBatch(rechargeSets); + public R<List<RechargeSet>> detail(@RequestBody RechargeDto rechargeDto) { + List<RechargeSet> list = rechargeSetService.list(); + rechargeSetService.removeBatchByIds(list); + rechargeSetService.saveBatch(rechargeDto.getRechargeSets()); return R.ok(); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java index ca0d70a..6167079 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java @@ -15,14 +15,12 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; +import java.util.List; import java.util.List; /** @@ -41,6 +39,8 @@ private ShopBalanceStatementService shopBalanceStatementService; @Resource private TokenService tokenService; + @Resource + private ShopBalanceStatementMapper shopBalanceStatementMapper; /** * 门店分佣统计 @@ -124,5 +124,12 @@ util.exportExcel(response, statementIPage.getRecords(), "用户积分统计"); } + + + @PostMapping("/getList") + public R<List<ShopBalanceStatement>> getList(@RequestBody ShopBalanceStatement shopBalanceStatement){ + return R.ok(shopBalanceStatementMapper.selectShopBalanceStatementList(shopBalanceStatement)); + } + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java index 607cb6c..05e9132 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java @@ -12,10 +12,12 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.other.api.domain.Shop; import com.ruoyi.other.api.domain.ShopScore; +import com.ruoyi.other.mapper.ShopMapper; import com.ruoyi.other.service.ShopScoreService; import com.ruoyi.other.service.ShopService; import com.ruoyi.other.vo.NearbyShopVO; import com.ruoyi.other.vo.ShopDetailVO; +import com.ruoyi.other.vo.ShopStatistics; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import com.ruoyi.system.api.model.LoginUser; @@ -55,6 +57,8 @@ private TokenService tokenService; @Resource private SysUserClient sysUserClient; + @Resource + private ShopMapper shopMapper; @@ -71,7 +75,6 @@ shop.setShopPoint(0); shop.setSharePoint(0); shop.setServerPoint(0); - shop.setLowerLevelRebatePoints(0); shop.setUsePoint(0); shop.setGiveawayAllMoney(BigDecimal.ZERO); shop.setGiveawayMoney(BigDecimal.ZERO); @@ -273,5 +276,15 @@ return R.ok(list.stream().map(Shop::getId).collect(Collectors.toSet())); } + /** + * 门店统计 + */ + @GetMapping("/shopStatistics") + @ApiOperation(value = "门店统计", tags = {"管理后台-首页统计"}) + public R<ShopStatistics> shopStatistics(@ApiParam("门店名称") String shopName) { + ShopStatistics shopStatistics = shopMapper.getShopStatistics(shopName); + return R.ok(shopStatistics); + } + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java index e04c2bc..084043b 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java @@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.ShopPoint; -import com.ruoyi.other.excel.ShopPointEX; import com.ruoyi.other.service.ShopPointService; import com.ruoyi.other.vo.ShopPointStatistics; import io.swagger.annotations.Api; @@ -19,8 +17,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; /** * <p> @@ -88,37 +84,10 @@ ShopPointStatistics statistics = shopPointService.statistics(Page.of(1, Integer.MAX_VALUE), shopPoint); if (statistics!=null){ IPage<ShopPoint> shopPointIPage = statistics.getShopPointIPage(); - List<ShopPointEX> shopPointEXList = new ArrayList<>(); - if (shopPointIPage!=null){ - List<ShopPoint> records = shopPointIPage.getRecords(); - if (records!=null){ - for (ShopPoint record : records) { - ShopPointEX shopPointEX = new ShopPointEX(); - BeanUtils.copyBeanProp(shopPointEX, record); - Integer type = record.getType(); - switch (type) { - case 1: - shopPointEX.setType("门店业绩"); - break; - case 2: - shopPointEX.setType("门店返佣"); - break; - default: - shopPointEX.setType("下级门店返佣"); - break; - } - shopPointEXList.add(shopPointEX); - } - } - - ExcelUtil<ShopPointEX> util = new ExcelUtil<>(ShopPointEX.class); - util.exportExcel(response, shopPointEXList, "用户积分统计"); - } + ExcelUtil<ShopPoint> util = new ExcelUtil<>(ShopPoint.class); + util.exportExcel(response, shopPointIPage.getRecords(), "用户积分统计"); } - } - - } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/excel/ShopPointEX.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/excel/ShopPointEX.java deleted file mode 100644 index 7376059..0000000 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/excel/ShopPointEX.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.ruoyi.other.excel; - -import com.ruoyi.common.core.annotation.Excel; -import lombok.Data; - -import java.time.LocalDateTime; - -@Data -public class ShopPointEX { - @Excel(name = "变动类型") - private String type; - - @Excel(name = "历史余额") - private Integer historicalPoint; - - @Excel(name = "变动金额") - private Integer variablePoint; - - @Excel(name = "变动时间") - private LocalDateTime createTime; - - @Excel(name = "变动用户id") - private Long createUserId; - - @Excel(name = "关联对象id") - private Long objectId; - - @Excel(name = "门店名称") - private String shopName; - - @Excel(name = "店长姓名") - private String shopLeaderName; - - @Excel(name = "联系电话") - private String phone; - -} diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java index 5bd4e28..fa5bbb4 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java @@ -16,8 +16,10 @@ * @since 2024-11-20 */ public interface ShopBalanceStatementMapper extends BaseMapper<ShopBalanceStatement> { - List<ShopBalanceStatement> findLatestChangeByType(ShopBalanceStatement shopBalanceStatement); IPage<ShopBalanceStatement> queryShopBalanceStatementPage(@Param("page") IPage<ShopBalanceStatement> page, @Param("bs") ShopBalanceStatement shopBalanceStatement); + + List<ShopBalanceStatement> selectShopBalanceStatementList(@Param("bs") ShopBalanceStatement shopBalanceStatement); + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java index 5747e23..c8d43d8 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopMapper.java @@ -6,6 +6,7 @@ import com.ruoyi.other.api.domain.Shop; import com.ruoyi.other.vo.NearbyShopVO; import com.ruoyi.other.vo.ShopDetailVO; +import com.ruoyi.other.vo.ShopStatistics; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; @@ -27,4 +28,6 @@ ShopDetailVO selectShopDetail(Integer shopId); + ShopStatistics getShopStatistics(String shopName); + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointMapper.java index 02355d9..feee1b5 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointMapper.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointMapper.java @@ -1,7 +1,9 @@ package com.ruoyi.other.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.other.api.domain.ShopPoint; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -15,6 +17,9 @@ */ public interface ShopPointMapper extends BaseMapper<ShopPoint> { - List<ShopPoint> findLatestChangeByType(ShopPoint shopPoint); + List<ShopPoint> selectShopPointList(@Param("shopPoint") ShopPoint shopPoint); + + IPage<ShopPoint> queryShpointPage(@Param("page") IPage<ShopPoint> page,@Param("shopPoint") ShopPoint shopPoint); + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java index 9e265b5..8a94449 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java @@ -1,19 +1,17 @@ package com.ruoyi.other.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.other.api.domain.Shop; -import com.ruoyi.other.mapper.ShopBalanceStatementMapper; import com.ruoyi.other.api.domain.ShopBalanceStatement; +import com.ruoyi.other.api.domain.ShopPoint; +import com.ruoyi.other.mapper.ShopBalanceStatementMapper; import com.ruoyi.other.service.ShopBalanceStatementService; -import com.ruoyi.other.service.ShopService; import com.ruoyi.other.vo.ShopCommissionStatisticsVO; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; -import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -26,32 +24,29 @@ */ @Service public class ShopBalanceStatementServiceImpl extends ServiceImpl<ShopBalanceStatementMapper, ShopBalanceStatement> implements ShopBalanceStatementService { - @Resource - private ShopBalanceStatementMapper shopBalanceStatementMapper; - @Resource - private ShopService shopService; @Override public ShopCommissionStatisticsVO shopCommissionStatistics(IPage<ShopBalanceStatement> page, ShopBalanceStatement shopBalanceStatement) { - List<ShopBalanceStatement> latestChangeByType = shopBalanceStatementMapper.findLatestChangeByType(shopBalanceStatement); ShopCommissionStatisticsVO shopCommissionStatisticsVO = new ShopCommissionStatisticsVO(); - for (ShopBalanceStatement sp : latestChangeByType) { - switch (sp.getType()) { - case 1: - shopCommissionStatisticsVO.setTotalCommission(sp.getBalance()); - break; - case 2: - shopCommissionStatisticsVO.setTotalSubordinateCommission(sp.getBalance()); - break; - case 3: - shopCommissionStatisticsVO.setTotalServiceCharge(sp.getBalance()); - break; - } - } - shopCommissionStatisticsVO.setTotalAmount(shopCommissionStatisticsVO.getTotalCommission() - .add(shopCommissionStatisticsVO.getTotalSubordinateCommission()) - .add(shopCommissionStatisticsVO.getTotalServiceCharge())); + List<ShopBalanceStatement> shopBalanceStatements = this.baseMapper.selectShopBalanceStatementList(shopBalanceStatement); + + Map<Integer, BigDecimal> shopCommissionMap = shopBalanceStatements.stream() + .collect(Collectors.groupingBy( + ShopBalanceStatement::getType, + Collectors.reducing( + BigDecimal.ZERO, + ShopBalanceStatement::getVariableAmount, + BigDecimal::add + ) + )); + + BigDecimal totalCommission = shopCommissionMap.get(1); + BigDecimal totalSubordinateCommission = shopCommissionMap.get(2); + BigDecimal totalServiceCharge = shopCommissionMap.get(3); + + BigDecimal totalAmount = totalCommission.add(totalSubordinateCommission).add(totalServiceCharge); + shopCommissionStatisticsVO.setTotalAmount(totalAmount); IPage<ShopBalanceStatement> statementIPage = this.baseMapper.queryShopBalanceStatementPage(page, shopBalanceStatement); shopCommissionStatisticsVO.setStatementIPage(statementIPage); diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java index 98c5dd0..f9e435f 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java @@ -1,22 +1,16 @@ package com.ruoyi.other.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.account.api.feignClient.AppUserClient; -import com.ruoyi.account.api.model.AppUser; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.other.api.domain.Shop; -import com.ruoyi.other.mapper.ShopPointMapper; import com.ruoyi.other.api.domain.ShopPoint; +import com.ruoyi.other.api.enums.PointChangeType; +import com.ruoyi.other.mapper.ShopPointMapper; import com.ruoyi.other.service.ShopPointService; -import com.ruoyi.other.service.ShopService; import com.ruoyi.other.vo.ShopPointStatistics; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; -import javax.annotation.Resource; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -29,64 +23,28 @@ */ @Service public class ShopPointServiceImpl extends ServiceImpl<ShopPointMapper, ShopPoint> implements ShopPointService { - @Resource - private ShopPointMapper shopPointMapper; - @Resource - private ShopService shopService; @Override public ShopPointStatistics statistics(IPage<ShopPoint> page, ShopPoint shopPoint) { - - String shopName = shopPoint.getShopName(); - String phone = shopPoint.getPhone(); - String shopLeaderName = shopPoint.getShopLeaderName(); - Integer shopId = shopPoint.getShopId(); - List<Integer> shopIds = shopService.listObjs(new LambdaQueryWrapper<Shop>() - .select(Shop::getId) - .eq(shopId!=null,Shop::getId,shopId) - .like(StringUtils.isNotEmpty(shopName), Shop::getName, shopName) - .like(StringUtils.isNotEmpty(phone), Shop::getPhone, phone) - .like(StringUtils.isNotEmpty(shopLeaderName), Shop::getShopManager, shopLeaderName)) - .stream().map(o -> (Integer) o).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(shopIds)) { - return new ShopPointStatistics(); - } - - shopPoint.setShopIds(shopIds); - + List<ShopPoint> shopPoints = this.baseMapper.selectShopPointList(shopPoint); + Map<Integer, Integer> shopPointMap = shopPoints.stream() + .collect(Collectors.groupingBy( + ShopPoint::getType, + Collectors.summingInt(ShopPoint::getVariablePoint) + )); ShopPointStatistics shopPointStatistics = new ShopPointStatistics(); - List<ShopPoint> latestChangeByType = shopPointMapper.findLatestChangeByType(shopPoint); - for (ShopPoint sp : latestChangeByType) { - switch (sp.getType()) { - case 1: - shopPointStatistics.setShopPoint(sp.getVariablePoint()); - break; - case 2: - shopPointStatistics.setShopCommissionPoint(sp.getVariablePoint()); - break; - case 3: - shopPointStatistics.setSubShopCommissionPoint(sp.getVariablePoint()); - break; - } - } - shopPointStatistics.setTotalPoint(shopPointStatistics.getShopPoint() + shopPointStatistics.getShopCommissionPoint() + shopPointStatistics.getSubShopCommissionPoint()); + int sPoint = shopPointMap.getOrDefault(PointChangeType.SHOP_ACHIEVEMENT.getCode(), 0); + int shopCommissionPoint = shopPointMap.getOrDefault(PointChangeType.SHOP_REBATE.getCode(), 0); + int subShopCommissionPoint = shopPointMap.getOrDefault(PointChangeType.JUNIOR_SHOP_REBATE.getCode(), 0); + shopPointStatistics.setTotalPoint(sPoint + shopCommissionPoint + subShopCommissionPoint); + shopPointStatistics.setShopPoint(sPoint); + shopPointStatistics.setShopCommissionPoint(shopCommissionPoint); + shopPointStatistics.setSubShopCommissionPoint(subShopCommissionPoint); - - boolean condition = shopPoint.getStartTime() != null && shopPoint.getEndTime() != null; - IPage<ShopPoint> shopPointIPage = page(page, new LambdaQueryWrapper<ShopPoint>() - .in(!CollectionUtils.isEmpty(shopPoint.getShopIds()), ShopPoint::getShopId, shopPoint.getShopIds()) - .eq(shopPoint.getType() != null, ShopPoint::getType, shopPoint.getType()) - .between(condition, ShopPoint::getCreateTime, shopPoint.getStartTime(), shopPoint.getEndTime()) - .orderByDesc(ShopPoint::getCreateTime)); - List<ShopPoint> shopPoints = shopPointIPage.getRecords(); - for (ShopPoint sp : shopPoints) { - Shop shop = shopService.getById(sp.getShopId()); - sp.setShopName(shop.getName()); - sp.setShopLeaderName(shop.getShopManager()); - sp.setPhone(shop.getPhone()); - } + IPage<ShopPoint> shopPointIPage = this.baseMapper.queryShpointPage(page, shopPoint); shopPointStatistics.setShopPointIPage(shopPointIPage); + return shopPointStatistics; } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopStatistics.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopStatistics.java new file mode 100644 index 0000000..186d27e --- /dev/null +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopStatistics.java @@ -0,0 +1,73 @@ +package com.ruoyi.other.vo; + +import lombok.Data; + +@Data +public class ShopStatistics { + + /** + * 门店积分总数 + */ + private Integer totalPoint; + + /** + * 门店返佣积分总数 + */ + private Integer commissionPoint; + + /** + * 门店服务积分总数 + */ + private Integer servicePoint; + + /** + * 绑定下级门店返佣积分总数 + */ + private Integer bindCommissionPoint; + + /** + * 门店分佣总金额 + */ + private Double totalCommissionMoney; + + /** + * 门店分佣金额 + */ + private Double commissionMoney; + + /** + * 绑定下级分佣金额 + */ + private Double bindCommissionMoney; + + /** + * 门店服务分佣金额 + */ + private Double serviceCommissionMoney; + + /** + * 门店订单总数 + */ + private Integer totalOrder; + + /** + * 服务订单数 + */ + private Integer serviceOrder; + + /** + * 单品-上门自提订单数 + */ + private Integer goodsOrder; + + /** + * 可提现金额 + */ + private Double canWithdrawMoney; + + /** + * 已提现金额 + */ + private Double alreadyWithdrawMoney; + +} diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml index cb0fc46..0bcec73 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml @@ -2,45 +2,15 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.other.mapper.ShopBalanceStatementMapper"> - <select id="findLatestChangeByType" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement"> + <sql id="shopBalanceStatementList"> SELECT - id, - shop_id, - type, - historical_balance, - variable_amount, - balance, - create_time, - create_user_id, - object_id + tsbs.*, + ts.`name` shopName, + ts.shop_manager shopManagerName, + ts.phone FROM - ( - SELECT - id, - shop_id, - type, - historical_balance, - variable_amount, - balance, - create_time, - create_user_id, - object_id, - ROW_NUMBER() OVER ( PARTITION BY type, create_user_id ORDER BY create_time DESC ) AS rn - FROM - t_shop_balance_statement - ) AS subquery - WHERE - rn = 1 - </select> - <select id="queryShopBalanceStatementPage" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement"> - SELECT - tsbs.*, - ts.`name` shopName, - ts.shop_manager shopManagerName, - ts.phone - FROM - t_shop_balance_statement tsbs - INNER JOIN t_shop ts ON ts.id = tsbs.shop_id AND ts.del_flag = 0 + t_shop_balance_statement tsbs + INNER JOIN t_shop ts ON ts.id = tsbs.shop_id AND ts.del_flag = 0 <where> <if test="bs.shopName != null and bs.shopName != ''"> AND ts.`name` like concat('%', #{bs.shopName}, '%') @@ -58,5 +28,12 @@ AND tsbs.create_time BETWEEN #{bs.startTime} AND #{bs.endTime} </if> </where> + </sql> + + <select id="queryShopBalanceStatementPage" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement"> + <include refid="shopBalanceStatementList"/> + </select> + <select id="selectShopBalanceStatementList" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement"> + <include refid="shopBalanceStatementList"/> </select> </mapper> \ No newline at end of file diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml index 488c812..ce19e5c 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml @@ -82,4 +82,22 @@ </if> </where> </select> + <select id="getShopStatistics" resultType="com.ruoyi.other.vo.ShopStatistics"> + SELECT + SUM(ts.shop_all_point) totalPoint, + SUM(ts.share_point) commissionPoint, + SUM(ts.server_point) servicePoint, + SUM(ts.lower_level_giveaway_money) bindCommissionPoint, + SUM(ts.giveaway_all_money) totalCommissionMoney, + SUM(ts.giveaway_money) commissionMoney, + SUM(ts.lower_level_giveaway_money) bindCommissionMoney, + SUM(ts.server_giveaway_money) serviceCommissionMoney, + SUM(ts.order_number) totalOrder, + SUM(ts.server_order_number) serviceOrder, + SUM(ts.custom_order_number) goodsOrder, + SUM(ts.can_withdraw_money) canWithdrawMoney, + SUM(ts.withdraw_money) alreadyWithdrawMoney + FROM + t_shop ts + </select> </mapper> \ No newline at end of file diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml index 6828ee3..937b56a 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopPointMapper.xml @@ -2,47 +2,41 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.other.mapper.ShopPointMapper"> - <select id="findLatestChangeByType" resultType="com.ruoyi.other.api.domain.ShopPoint"> + <sql id="ShopPointList"> SELECT - id, - shop_id, - type, - historical_point, - variable_point, - create_time, - create_user_id, - object_id + ts.`name` shopName, + ts.shop_manager shopLeaderName, + ts.phone, + tsp.type, + tsp.create_time, + tsp.variable_point FROM - ( - SELECT - id, - shop_id, - type, - historical_point, - variable_point, - create_time, - create_user_id, - object_id, - ROW_NUMBER() OVER ( PARTITION BY type,create_user_id ORDER BY create_time DESC ) AS rn - FROM - t_shop_point + t_shop_point tsp + LEFT JOIN t_shop ts ON tsp.shop_id = ts.id + <where> + <if test="shopPoint.shopName != null and shopPoint.shopName != ''"> + AND ts.`name` LIKE concat('%',#{shopPoint.shopName},'%') + </if> + <if test="shopPoint.shopLeaderName != null and shopPoint.shopLeaderName != ''"> + AND ts.shop_manager LIKE concat('%',#{shopPoint.shopLeaderName},'%') + </if> + <if test="shopPoint.phone != null and shopPoint.phone != ''"> + AND ts.phone LIKE concat('%',#{shopPoint.phone},'%') + </if> + <if test="shopPoint.type != null"> + AND tsp.type = #{shopPoint.type} + </if> + <if test="shopPoint.startTime !=null and shopPoint.endTime !=null"> + AND tsp.create_time BETWEEN #{shopPoint.startTime} AND #{shopPoint.endTime} + </if> - <where> - <if test="shopIds != null and shopIds.size() > 0"> - AND shop_id IN - <foreach collection="shopIds" item="shopId" open="(" close=")" separator=","> - #{shopId} - </foreach> - </if> - <if test="type != null"> - AND `type` = #{type} - </if> - <if test="startTime != null and endTime != null"> - AND create_time BETWEEN #{startTime} AND #{endTime} - </if> - </where> - ) AS subquery - WHERE - rn = 1 + </where> + </sql> + + <select id="selectShopPointList" resultType="com.ruoyi.other.api.domain.ShopPoint"> + <include refid="ShopPointList"/> + </select> + <select id="queryShpointPage" resultType="com.ruoyi.other.api.domain.ShopPoint"> + <include refid="ShopPointList"/> </select> </mapper> \ No newline at end of file -- Gitblit v1.7.1