From 54c72002d787bb7f50bcc8e85538e3156b694fcc Mon Sep 17 00:00:00 2001 From: chen-xin-zhi <3588068430@qq.com> Date: Wed, 14 May 2025 18:59:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/project/ProjectController.java | 8 +-- .../project/ProjectDetailController.java | 61 +++++++------------ 2 files changed, 23 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java b/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java index cd93084..b9777b2 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java @@ -176,9 +176,7 @@ public class ProjectController { // @SysLog(title = "项目管理", content = "小程序用户查看正在推广的项目") public BaseResponse> queryUserProjectList(HttpServletRequest request) { Long userId = (Long) request.getAttribute("userId"); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(UserProject::getUserId, userId); - List userProjectList = userProjectService.list(lambdaQueryWrapper); + List userProjectList = commonService.findByFieldEqTargetField(UserProject::getUserId, userId, userProjectService); List userProjectVOS = commonService.convertList(userProjectList, UserProjectVO.class); return ResultUtils.success(userProjectVOS); } @@ -213,9 +211,7 @@ public class ProjectController { Project project = commonService.copyProperties(projectUpdateRequest, Project.class); projectService.updateById(project); // 批量修改用户项目记录 - LambdaQueryWrapper userProjectLambdaQueryWrapper = new LambdaQueryWrapper<>(); - userProjectLambdaQueryWrapper.eq(UserProject::getProjectId, project.getId()); - List userProjectList = userProjectService.list(userProjectLambdaQueryWrapper); + List userProjectList = commonService.findByFieldEqTargetField(UserProject::getProjectId, project.getId(), userProjectService); for (UserProject userProject : userProjectList) { userProject.setProjectName(project.getProjectName()); userProject.setProjectImage(project.getProjectImage()); diff --git a/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java b/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java index fe30aa9..f45e66c 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java @@ -157,52 +157,33 @@ public class ProjectDetailController { subUserProjectCommissionList.sort(Comparator.comparing(SubUserProjectCommission::getUserId)); // 更新下级用户项目明细抽佣表记录 BigDecimal projectSettlementPrice = projectDetail.getProjectSettlementPrice(); - Map userParentMap = null; - boolean flag = true; - Long tempUserId = null; + // 封装Map集合(键:下级用户id,值:下级用户单价) + Map subUserUnitPriceMap = new HashMap<>(); + // 存储根用户的单价 + subUserUnitPriceMap.put(0L, projectSettlementPrice); for (SubUserProjectCommission subUserProjectCommission : subUserProjectCommissionList) { // 记录上级用户的对下级用户的抽佣比例 BigDecimal currentCommissionRate = subUserProjectCommission.getCurrentCommissionRate(); - Long subUserId = subUserProjectCommission.getSubUserId(); Long userId = subUserProjectCommission.getUserId(); - if (flag) { - tempUserId = userId; - flag = false; - } - userParentMap.put(subUserId, currentCommissionRate); -// if (userParentMap == null) userParentMap = new HashMap<>(); -// userParentMap.put(subUserId, currentCommissionRate); - + Long subUserId = subUserProjectCommission.getSubUserId(); + // 获取当前用户的单价,并将当前记录修改为当前用户的单价 + BigDecimal userUnitPrice = subUserUnitPriceMap.get(userId); + subUserProjectCommission.setMyUnitPrice(userUnitPrice); + // 计算下级用户的单价 + BigDecimal subUserUnitPrice = userUnitPrice.multiply(BigDecimal.ONE.subtract(currentCommissionRate)); + // 存储下级用户的单价 + subUserUnitPriceMap.put(subUserId, subUserUnitPrice); } - // 更新用户项目明细抽佣表记录 - - // 获取所有的小程序用户 -// List userInfoList = commonService.findByFieldEqTargetField(UserInfo::getUserRole, UserConstant.DEFAULT_ROLE, userInfoService); - // 用来存储每个用户的上级列表 -// Map> userParentMap = new HashMap<>(); -// for (UserInfo userInfo : userInfoList) { -// String superUserList = userInfo.getSuperUserList(); -// if (superUserList != null) userParentMap.put(userInfo.getId(), Arrays.stream(superUserList.split(",")).map(Long::parseLong).collect(Collectors.toList())); -// } -// userInfoService.findPathToRoot() - // 4.更新所有用户的结算价格 -// for (SubUserProjectCommission subUserProjectCommission : subUserProjectCommissionList) { -// Long userId = subUserProjectCommission.getUserId(); -// List parentIds = userParentMap.get(userId); -// parentIds.add(userId); -// BigDecimal totalRate = BigDecimal.ONE; -// for (int i = 0; i < parentIds.size() - 1; i ++ ) { -// String key = parentIds.get(i) + "-" + parentIds.get(i + 1); -// BigDecimal commissionRate = commissionRateMap.get(key); -// totalRate = totalRate.multiply(BigDecimal.ONE.subtract(commissionRate)); -// } -// BigDecimal projectSettlementPrice = projectDetail.getProjectSettlementPrice(); -// BigDecimal projectMinSettlementPrice = projectDetail.getProjectMinSettlementPrice(); -// BigDecimal finallySettlementPrice = projectSettlementPrice.multiply(totalRate); -// if (finallySettlementPrice.compareTo(projectMinSettlementPrice) < 0) finallySettlementPrice = projectMinSettlementPrice; -// subUserProjectCommission.setMyUnitPrice(finallySettlementPrice); -// } + // 更新下级用户项目明细抽佣表记录 subUserProjectCommissionService.updateBatchById(subUserProjectCommissionList); + // 更新用户项目明细抽佣表记录 + List projectCommissionList = commonService.findByFieldEqTargetField(ProjectCommission::getProjectDetailId, projectDetail.getId(), projectCommissionService); + for (ProjectCommission projectCommission : projectCommissionList) { + Long userId = projectCommission.getUserId(); + BigDecimal userUnitPrice = subUserUnitPriceMap.get(userId); + projectCommission.setMyUnitPrice(userUnitPrice); + } + projectCommissionService.updateBatchById(projectCommissionList); return ResultUtils.success(true); }