diff --git a/src/main/java/com/rj/common/PasswordUtil.java b/src/main/java/com/rj/common/PasswordUtil.java index a746acb..63df279 100644 --- a/src/main/java/com/rj/common/PasswordUtil.java +++ b/src/main/java/com/rj/common/PasswordUtil.java @@ -86,3 +86,4 @@ public class PasswordUtil { + diff --git a/src/main/java/com/rj/controller/CustomerManagementController.java b/src/main/java/com/rj/controller/CustomerManagementController.java index 69242c0..484e4af 100644 --- a/src/main/java/com/rj/controller/CustomerManagementController.java +++ b/src/main/java/com/rj/controller/CustomerManagementController.java @@ -2,6 +2,7 @@ package com.rj.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.rj.common.DataEnrichmentUtil; import com.rj.entity.CustomerManagement; import com.rj.entity.Dealership; import com.rj.entity.SalesManagement; @@ -122,9 +123,7 @@ public class CustomerManagementController { } @Autowired - private IDealershipService dealershipService; - @Autowired - private ISalesManagementService salesManagementService; + private DataEnrichmentUtil dataEnrichmentUtil; /** * 分页查询客户列表 @@ -163,44 +162,15 @@ public class CustomerManagementController { Page customerPage = customerManagementService.page(page, queryWrapper); - List dealershipIds = customerPage.getRecords().stream() - .map(CustomerManagement::getDealershipId) - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.toList()); - - List saleIds = customerPage.getRecords().stream() - .map(CustomerManagement::getSalesId) - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.toList()); - - - // 批量获取门店信息 - Map dealershipNameMap; - if (!dealershipIds.isEmpty()) { - LambdaQueryWrapper dealershipQueryWrapper = new LambdaQueryWrapper<>(); - dealershipQueryWrapper.in(Dealership::getId, dealershipIds); - List dealerships = dealershipService.list(dealershipQueryWrapper); - dealershipNameMap = dealerships.stream() - .collect(Collectors.toMap(Dealership::getId, Dealership::getDealershipName)); - } else { - dealershipNameMap = new HashMap<>(); - } - - // 批量获取 销售信息 - Map saleNameMap; - if (!saleIds.isEmpty()) { - LambdaQueryWrapper salesQueryWrapper = new LambdaQueryWrapper<>(); - salesQueryWrapper.in(SalesManagement::getId, saleIds); - List sales = salesManagementService.list(salesQueryWrapper); - saleNameMap = sales.stream() - .collect(Collectors.toMap(SalesManagement::getId, SalesManagement::getSalesName)); - } else { - saleNameMap = new HashMap<>(); - } + // 使用工具类提取ID列表 + List dealershipIds = DataEnrichmentUtil.extractIds(customerPage.getRecords(), CustomerManagement::getDealershipId); + List saleIds = DataEnrichmentUtil.extractIds(customerPage.getRecords(), CustomerManagement::getSalesId); + // 使用工具类批量获取关联数据 + Map dealershipNameMap = dataEnrichmentUtil.getDealershipIdNameMap(dealershipIds); + Map saleNameMap = dataEnrichmentUtil.getSalesIdNameMap(saleIds); + // 填充关联数据 customerPage.getRecords().forEach(customer -> { customer.setDealershipName(dealershipNameMap.get(customer.getDealershipId())); customer.setSalesName(saleNameMap.get(customer.getSalesId())); diff --git a/src/main/java/com/rj/controller/DeviceManagementController.java b/src/main/java/com/rj/controller/DeviceManagementController.java index 3014144..9019546 100644 --- a/src/main/java/com/rj/controller/DeviceManagementController.java +++ b/src/main/java/com/rj/controller/DeviceManagementController.java @@ -2,7 +2,10 @@ package com.rj.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.rj.common.DataEnrichmentUtil; +import com.rj.entity.CustomerManagement; import com.rj.entity.DeviceManagement; +import com.rj.entity.SalesManagement; import com.rj.service.IDeviceManagementService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -115,6 +118,8 @@ public class DeviceManagementController { } } + @Autowired + private DataEnrichmentUtil dataEnrichmentUtil; /** * 分页查询设备列表 */ @@ -156,7 +161,23 @@ public class DeviceManagementController { queryWrapper.orderByDesc(DeviceManagement::getUpdateTime); Page devicePage = deviceManagementService.page(page, queryWrapper); - + + // 使用工具类提取ID列表 + List dealershipIds = DataEnrichmentUtil.extractIds(devicePage.getRecords(), DeviceManagement::getDealershipId); + List projectIds = DataEnrichmentUtil.extractIds(devicePage.getRecords(), DeviceManagement::getProjectId); + List saleIds = DataEnrichmentUtil.extractIds(devicePage.getRecords(), DeviceManagement::getBindUserId); + + // 使用工具类批量获取关联数据 + Map saleNameMap = dataEnrichmentUtil.getSalesIdNameMap(saleIds); + Map dealershipNameMap = dataEnrichmentUtil.getDealershipIdNameMap(dealershipIds); + Map projectNameMap = dataEnrichmentUtil.getProjectIdNameMap(projectIds); + + for (DeviceManagement deviceManagement : devicePage.getRecords()) { + deviceManagement.setDealershipName(dealershipNameMap.get(deviceManagement.getDealershipId())); + deviceManagement.setProjectName(projectNameMap.get(deviceManagement.getProjectId())); + deviceManagement.setBindUserName(saleNameMap.get(deviceManagement.getBindUserId())); + } + result.put("success", true); result.put("message", "查询成功"); result.put("data", devicePage.getRecords()); diff --git a/src/main/java/com/rj/controller/ProjectManagementController.java b/src/main/java/com/rj/controller/ProjectManagementController.java index 2019b3a..d87bf4e 100644 --- a/src/main/java/com/rj/controller/ProjectManagementController.java +++ b/src/main/java/com/rj/controller/ProjectManagementController.java @@ -1,7 +1,9 @@ package com.rj.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.parser.JsqlParserFunction; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.rj.common.DataEnrichmentUtil; import com.rj.entity.Dealership; import com.rj.entity.ProjectManagement; import com.rj.service.IDealershipService; @@ -9,6 +11,7 @@ import com.rj.service.IProjectManagementService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -32,13 +35,14 @@ import java.util.stream.Collectors; @RestController @RequestMapping("/api/projectManagement") @Tag(name = "项目管理", description = "项目管理相关接口") +@Slf4j public class ProjectManagementController { @Autowired private IProjectManagementService projectManagementService; @Autowired - private IDealershipService dealershipService; + private DataEnrichmentUtil dataEnrichmentUtil; /** * 新增项目 @@ -164,29 +168,18 @@ public class ProjectManagementController { queryWrapper.orderByDesc(ProjectManagement::getUpdateTime); Page projectPage = projectManagementService.page(page, queryWrapper); + JsqlParserFunction getId = Dealership::getId; - // 获取项目列表中的门店ID集合 - List records = projectPage.getRecords(); - List dealershipIds = records.stream() - .map(ProjectManagement::getDealershipId) - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.toList()); - // 批量获取门店信息 - Map dealershipNameMap; - if (!dealershipIds.isEmpty()) { - LambdaQueryWrapper dealershipQueryWrapper = new LambdaQueryWrapper<>(); - dealershipQueryWrapper.in(Dealership::getId, dealershipIds); - List dealerships = dealershipService.list(dealershipQueryWrapper); - dealershipNameMap = dealerships.stream() - .collect(Collectors.toMap(Dealership::getId, Dealership::getDealershipName)); - } else { - dealershipNameMap = new HashMap<>(); - } + + // 使用工具类提取ID列表 + List dealershipIds = DataEnrichmentUtil.extractIds(projectPage.getRecords(), ProjectManagement::getDealershipId); + + // 使用工具类批量获取关联数据 + Map dealershipNameMap = dataEnrichmentUtil.getDealershipIdNameMap(dealershipIds); // 构造返回数据,包含门店名称 - List> projectDataList = records.stream().map(project -> { + List> projectDataList = projectPage.getRecords().stream().map(project -> { Map projectMap = new HashMap<>(); projectMap.put("id", project.getId()); projectMap.put("dealershipId", project.getDealershipId()); @@ -215,6 +208,7 @@ public class ProjectManagementController { return ResponseEntity.ok(result); } catch (Exception e) { + log.error("查询异常:", e.getMessage()); result.put("success", false); result.put("message", "查询异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); diff --git a/src/main/java/com/rj/controller/SalesManagementController.java b/src/main/java/com/rj/controller/SalesManagementController.java index 92f41e6..eb45bc2 100644 --- a/src/main/java/com/rj/controller/SalesManagementController.java +++ b/src/main/java/com/rj/controller/SalesManagementController.java @@ -2,6 +2,7 @@ package com.rj.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.rj.common.DataEnrichmentUtil; import com.rj.entity.Dealership; import com.rj.entity.ProjectManagement; import com.rj.entity.SalesManagement; @@ -123,10 +124,7 @@ public class SalesManagementController { } @Autowired - private IDealershipService dealershipService; - - @Autowired - IProjectManagementService projectManagementService; + private DataEnrichmentUtil dataEnrichmentUtil; /** * 分页查询销售列表 @@ -175,45 +173,15 @@ public class SalesManagementController { Page salesPage = salesManagementService.page(page, queryWrapper); - List dealershipIds = salesPage.getRecords().stream() - .map(SalesManagement::getDealershipId) - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.toList()); - - List projectIds = salesPage.getRecords().stream() - .map(SalesManagement::getProjectId) - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.toList()); - - - // 批量获取门店信息 - Map dealershipNameMap; - if (!dealershipIds.isEmpty()) { - LambdaQueryWrapper dealershipQueryWrapper = new LambdaQueryWrapper<>(); - dealershipQueryWrapper.in(Dealership::getId, dealershipIds); - List dealerships = dealershipService.list(dealershipQueryWrapper); - dealershipNameMap = dealerships.stream() - .collect(Collectors.toMap(Dealership::getId, Dealership::getDealershipName)); - } else { - dealershipNameMap = new HashMap<>(); - } - - // 批量获取门店信息 - Map projectNameMap; - if (!projectIds.isEmpty()) { - LambdaQueryWrapper projectManagementQueryWrapper = new LambdaQueryWrapper<>(); - projectManagementQueryWrapper.in(ProjectManagement::getId, projectIds); - List projectManagementList = projectManagementService.list(projectManagementQueryWrapper); - projectNameMap = projectManagementList.stream() - .collect(Collectors.toMap(ProjectManagement::getId, ProjectManagement::getProjectName)); - } else { - projectNameMap = new HashMap<>(); - } - + // 使用工具类提取ID列表 + List dealershipIds = DataEnrichmentUtil.extractIds(salesPage.getRecords(), SalesManagement::getDealershipId); + List projectIds = DataEnrichmentUtil.extractIds(salesPage.getRecords(), SalesManagement::getProjectId); + // 使用工具类批量获取关联数据 + Map dealershipNameMap = dataEnrichmentUtil.getDealershipIdNameMap(dealershipIds); + Map projectNameMap = dataEnrichmentUtil.getProjectIdNameMap(projectIds); + // 填充关联数据 salesPage.getRecords().forEach(sales -> { sales.setDealershipName(dealershipNameMap.get(sales.getDealershipId())); sales.setProjectName(projectNameMap.get(sales.getProjectId())); diff --git a/src/main/java/com/rj/controller/sys/AuthController.java b/src/main/java/com/rj/controller/sys/AuthController.java index 8c74589..687bc55 100644 --- a/src/main/java/com/rj/controller/sys/AuthController.java +++ b/src/main/java/com/rj/controller/sys/AuthController.java @@ -169,3 +169,4 @@ public class AuthController { + diff --git a/src/main/java/com/rj/controller/sys/MenuController.java b/src/main/java/com/rj/controller/sys/MenuController.java index c38d816..8957aaf 100644 --- a/src/main/java/com/rj/controller/sys/MenuController.java +++ b/src/main/java/com/rj/controller/sys/MenuController.java @@ -308,3 +308,4 @@ public class MenuController { + diff --git a/src/main/java/com/rj/controller/sys/RoleController.java b/src/main/java/com/rj/controller/sys/RoleController.java index 907b8e3..1521dbb 100644 --- a/src/main/java/com/rj/controller/sys/RoleController.java +++ b/src/main/java/com/rj/controller/sys/RoleController.java @@ -278,3 +278,4 @@ public class RoleController { + diff --git a/src/main/java/com/rj/controller/sys/UserRoleController.java b/src/main/java/com/rj/controller/sys/UserRoleController.java index 734e948..a998270 100644 --- a/src/main/java/com/rj/controller/sys/UserRoleController.java +++ b/src/main/java/com/rj/controller/sys/UserRoleController.java @@ -284,3 +284,4 @@ public class UserRoleController { + diff --git a/src/main/java/com/rj/entity/DeviceManagement.java b/src/main/java/com/rj/entity/DeviceManagement.java index 297dbf8..6113ad7 100644 --- a/src/main/java/com/rj/entity/DeviceManagement.java +++ b/src/main/java/com/rj/entity/DeviceManagement.java @@ -89,6 +89,7 @@ public class DeviceManagement implements Serializable { @TableField("project_id") private String projectId; + @Schema(description = "所属项目名称") @TableField("project_name") private String projectName; diff --git a/src/main/java/com/rj/pojo/sys/LoginResponse.java b/src/main/java/com/rj/pojo/sys/LoginResponse.java index 361e166..4dd0e8a 100644 --- a/src/main/java/com/rj/pojo/sys/LoginResponse.java +++ b/src/main/java/com/rj/pojo/sys/LoginResponse.java @@ -35,3 +35,4 @@ public class LoginResponse { + diff --git a/src/main/java/com/rj/service/sys/IMenuService.java b/src/main/java/com/rj/service/sys/IMenuService.java index e162852..71ed631 100644 --- a/src/main/java/com/rj/service/sys/IMenuService.java +++ b/src/main/java/com/rj/service/sys/IMenuService.java @@ -17,3 +17,4 @@ public interface IMenuService extends IService { + diff --git a/src/main/java/com/rj/service/sys/IRoleService.java b/src/main/java/com/rj/service/sys/IRoleService.java index 11dd89c..91f77af 100644 --- a/src/main/java/com/rj/service/sys/IRoleService.java +++ b/src/main/java/com/rj/service/sys/IRoleService.java @@ -17,3 +17,4 @@ public interface IRoleService extends IService { + diff --git a/src/main/java/com/rj/service/sys/IUserRoleService.java b/src/main/java/com/rj/service/sys/IUserRoleService.java index 899a8fd..1ec378e 100644 --- a/src/main/java/com/rj/service/sys/IUserRoleService.java +++ b/src/main/java/com/rj/service/sys/IUserRoleService.java @@ -17,3 +17,4 @@ public interface IUserRoleService extends IService { + diff --git a/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java b/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java index 2d19404..03ef9fd 100644 --- a/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java @@ -21,3 +21,4 @@ public class MenuServiceImpl extends ServiceImpl implements IM + diff --git a/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java b/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java index c3d6fb5..3716a2d 100644 --- a/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java @@ -21,3 +21,4 @@ public class RoleServiceImpl extends ServiceImpl implements IR + diff --git a/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java b/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java index edf5fc7..29a9ff5 100644 --- a/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java @@ -21,3 +21,4 @@ public class UserRoleServiceImpl extends ServiceImpl i + diff --git a/src/main/resources/mapper/sys/MenuMapper.xml b/src/main/resources/mapper/sys/MenuMapper.xml index fc7669d..88b009d 100644 --- a/src/main/resources/mapper/sys/MenuMapper.xml +++ b/src/main/resources/mapper/sys/MenuMapper.xml @@ -22,3 +22,4 @@ + diff --git a/src/main/resources/sql/test_user_data.sql b/src/main/resources/sql/test_user_data.sql index 6200f19..1cad9c7 100644 --- a/src/main/resources/sql/test_user_data.sql +++ b/src/main/resources/sql/test_user_data.sql @@ -23,3 +23,4 @@ INSERT INTO `user_role` (`user_id`, `role_id`) VALUES + diff --git a/src/main/resources/sql/update_user_table.sql b/src/main/resources/sql/update_user_table.sql index 6017e67..a5f6770 100644 --- a/src/main/resources/sql/update_user_table.sql +++ b/src/main/resources/sql/update_user_table.sql @@ -13,3 +13,4 @@ WHERE `password` = 'e10adc3949ba59abbe56e057f20f883e'; -- 为original_password字段添加索引(可选) -- ALTER TABLE `user` ADD INDEX `idx_original_password` (`original_password`); +