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