代码优化

This commit is contained in:
spllzh
2025-08-15 08:03:14 +08:00
parent b20832bdb2
commit 1d9d5ca2c4
20 changed files with 70 additions and 101 deletions

View File

@@ -86,3 +86,4 @@ public class PasswordUtil {

View File

@@ -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<CustomerManagement> customerPage = customerManagementService.page(page, queryWrapper);
List<String> dealershipIds = customerPage.getRecords().stream()
.map(CustomerManagement::getDealershipId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
List<String> saleIds = customerPage.getRecords().stream()
.map(CustomerManagement::getSalesId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
// 批量获取门店信息
Map<String, String> dealershipNameMap;
if (!dealershipIds.isEmpty()) {
LambdaQueryWrapper<Dealership> dealershipQueryWrapper = new LambdaQueryWrapper<>();
dealershipQueryWrapper.in(Dealership::getId, dealershipIds);
List<Dealership> dealerships = dealershipService.list(dealershipQueryWrapper);
dealershipNameMap = dealerships.stream()
.collect(Collectors.toMap(Dealership::getId, Dealership::getDealershipName));
} else {
dealershipNameMap = new HashMap<>();
}
// 批量获取 销售信息
Map<String, String> saleNameMap;
if (!saleIds.isEmpty()) {
LambdaQueryWrapper<SalesManagement> salesQueryWrapper = new LambdaQueryWrapper<>();
salesQueryWrapper.in(SalesManagement::getId, saleIds);
List<SalesManagement> sales = salesManagementService.list(salesQueryWrapper);
saleNameMap = sales.stream()
.collect(Collectors.toMap(SalesManagement::getId, SalesManagement::getSalesName));
} else {
saleNameMap = new HashMap<>();
}
// 使用工具类提取ID列表
List<String> dealershipIds = DataEnrichmentUtil.extractIds(customerPage.getRecords(), CustomerManagement::getDealershipId);
List<String> saleIds = DataEnrichmentUtil.extractIds(customerPage.getRecords(), CustomerManagement::getSalesId);
// 使用工具类批量获取关联数据
Map<String, String> dealershipNameMap = dataEnrichmentUtil.getDealershipIdNameMap(dealershipIds);
Map<String, String> saleNameMap = dataEnrichmentUtil.getSalesIdNameMap(saleIds);
// 填充关联数据
customerPage.getRecords().forEach(customer -> {
customer.setDealershipName(dealershipNameMap.get(customer.getDealershipId()));
customer.setSalesName(saleNameMap.get(customer.getSalesId()));

View File

@@ -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;
/**
* 分页查询设备列表
*/
@@ -157,6 +162,22 @@ public class DeviceManagementController {
Page<DeviceManagement> devicePage = deviceManagementService.page(page, queryWrapper);
// 使用工具类提取ID列表
List<String> dealershipIds = DataEnrichmentUtil.extractIds(devicePage.getRecords(), DeviceManagement::getDealershipId);
List<String> projectIds = DataEnrichmentUtil.extractIds(devicePage.getRecords(), DeviceManagement::getProjectId);
List<String> saleIds = DataEnrichmentUtil.extractIds(devicePage.getRecords(), DeviceManagement::getBindUserId);
// 使用工具类批量获取关联数据
Map<String, String> saleNameMap = dataEnrichmentUtil.getSalesIdNameMap(saleIds);
Map<String, String> dealershipNameMap = dataEnrichmentUtil.getDealershipIdNameMap(dealershipIds);
Map<String, String> 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());

View File

@@ -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<ProjectManagement> projectPage = projectManagementService.page(page, queryWrapper);
JsqlParserFunction<Dealership, String> getId = Dealership::getId;
// 获取项目列表中的门店ID集合
List<ProjectManagement> records = projectPage.getRecords();
List<String> dealershipIds = records.stream()
.map(ProjectManagement::getDealershipId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
// 批量获取门店信息
Map<String, String> dealershipNameMap;
if (!dealershipIds.isEmpty()) {
LambdaQueryWrapper<Dealership> dealershipQueryWrapper = new LambdaQueryWrapper<>();
dealershipQueryWrapper.in(Dealership::getId, dealershipIds);
List<Dealership> dealerships = dealershipService.list(dealershipQueryWrapper);
dealershipNameMap = dealerships.stream()
.collect(Collectors.toMap(Dealership::getId, Dealership::getDealershipName));
} else {
dealershipNameMap = new HashMap<>();
}
// 使用工具类提取ID列表
List<String> dealershipIds = DataEnrichmentUtil.extractIds(projectPage.getRecords(), ProjectManagement::getDealershipId);
// 使用工具类批量获取关联数据
Map<String, String> dealershipNameMap = dataEnrichmentUtil.getDealershipIdNameMap(dealershipIds);
// 构造返回数据,包含门店名称
List<Map<String, Object>> projectDataList = records.stream().map(project -> {
List<Map<String, Object>> projectDataList = projectPage.getRecords().stream().map(project -> {
Map<String, Object> 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);

View File

@@ -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<SalesManagement> salesPage = salesManagementService.page(page, queryWrapper);
List<String> dealershipIds = salesPage.getRecords().stream()
.map(SalesManagement::getDealershipId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
List<String> projectIds = salesPage.getRecords().stream()
.map(SalesManagement::getProjectId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
// 批量获取门店信息
Map<String, String> dealershipNameMap;
if (!dealershipIds.isEmpty()) {
LambdaQueryWrapper<Dealership> dealershipQueryWrapper = new LambdaQueryWrapper<>();
dealershipQueryWrapper.in(Dealership::getId, dealershipIds);
List<Dealership> dealerships = dealershipService.list(dealershipQueryWrapper);
dealershipNameMap = dealerships.stream()
.collect(Collectors.toMap(Dealership::getId, Dealership::getDealershipName));
} else {
dealershipNameMap = new HashMap<>();
}
// 批量获取门店信息
Map<String, String> projectNameMap;
if (!projectIds.isEmpty()) {
LambdaQueryWrapper<ProjectManagement> projectManagementQueryWrapper = new LambdaQueryWrapper<>();
projectManagementQueryWrapper.in(ProjectManagement::getId, projectIds);
List<ProjectManagement> projectManagementList = projectManagementService.list(projectManagementQueryWrapper);
projectNameMap = projectManagementList.stream()
.collect(Collectors.toMap(ProjectManagement::getId, ProjectManagement::getProjectName));
} else {
projectNameMap = new HashMap<>();
}
// 使用工具类提取ID列表
List<String> dealershipIds = DataEnrichmentUtil.extractIds(salesPage.getRecords(), SalesManagement::getDealershipId);
List<String> projectIds = DataEnrichmentUtil.extractIds(salesPage.getRecords(), SalesManagement::getProjectId);
// 使用工具类批量获取关联数据
Map<String, String> dealershipNameMap = dataEnrichmentUtil.getDealershipIdNameMap(dealershipIds);
Map<String, String> projectNameMap = dataEnrichmentUtil.getProjectIdNameMap(projectIds);
// 填充关联数据
salesPage.getRecords().forEach(sales -> {
sales.setDealershipName(dealershipNameMap.get(sales.getDealershipId()));
sales.setProjectName(projectNameMap.get(sales.getProjectId()));

View File

@@ -169,3 +169,4 @@ public class AuthController {

View File

@@ -308,3 +308,4 @@ public class MenuController {

View File

@@ -278,3 +278,4 @@ public class RoleController {

View File

@@ -284,3 +284,4 @@ public class UserRoleController {

View File

@@ -89,6 +89,7 @@ public class DeviceManagement implements Serializable {
@TableField("project_id")
private String projectId;
@Schema(description = "所属项目名称")
@TableField("project_name")
private String projectName;

View File

@@ -35,3 +35,4 @@ public class LoginResponse {

View File

@@ -17,3 +17,4 @@ public interface IMenuService extends IService<Menu> {

View File

@@ -17,3 +17,4 @@ public interface IRoleService extends IService<Role> {

View File

@@ -17,3 +17,4 @@ public interface IUserRoleService extends IService<UserRole> {

View File

@@ -21,3 +21,4 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM

View File

@@ -21,3 +21,4 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR

View File

@@ -21,3 +21,4 @@ public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> i

View File

@@ -22,3 +22,4 @@

View File

@@ -23,3 +23,4 @@ INSERT INTO `user_role` (`user_id`, `role_id`) VALUES

View File

@@ -13,3 +13,4 @@ WHERE `password` = 'e10adc3949ba59abbe56e057f20f883e';
-- 为original_password字段添加索引可选
-- ALTER TABLE `user` ADD INDEX `idx_original_password` (`original_password`);