From 3df055ea1038e0bbcbbbf80ccbeea43c82952932 Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期二, 18 八月 2026 12:51:56 +0800
Subject: [PATCH] feat0806: 优化代理搜索条件
---
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java | 34 +++++++++++++++++++++++++++-------
1 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java
index ebcb162..b91d688 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/agent/service/ProvincialAgentAppService.java
@@ -37,17 +37,27 @@
this.clinicMapper = clinicMapper;
}
- public PageResponse<ProvincialAgentListItemVO> page(int page, int pageSize, String agentName, String regionCode) {
+ public PageResponse<ProvincialAgentListItemVO> page(int page, int pageSize, String regionCode,
+ String clinicName, String contactInfo, Integer status) {
LambdaQueryWrapper<ProvincialAgent> query = new LambdaQueryWrapper<ProvincialAgent>()
.eq(ProvincialAgent::getDeleted, 0)
- .like(trim(agentName) != null, ProvincialAgent::getAgentName, trim(agentName))
- .orderByAsc(ProvincialAgent::getCreatedAt).orderByDesc(ProvincialAgent::getId);
+ .like(trim(contactInfo) != null, ProvincialAgent::getContactInfo, trim(contactInfo))
+ .eq(status != null, ProvincialAgent::getStatus, status)
+ .orderByAsc(ProvincialAgent::getCreatedAt).orderByAsc(ProvincialAgent::getId);
if (trim(regionCode) != null) {
List<Long> ids = new ArrayList<Long>();
for (AgentRegion region : regionMapper.selectList(new LambdaQueryWrapper<AgentRegion>()
- .eq(AgentRegion::getRegionCode, trim(regionCode))))
- ids.add(region.getAgentId());
- if (ids.isEmpty()) return PageResponse.of(new ArrayList<ProvincialAgentListItemVO>(), 0, page, pageSize);
+ .eq(AgentRegion::getRegionCode, trim(regionCode)))) ids.add(region.getAgentId());
+ if (ids.isEmpty()) return emptyPage(page, pageSize);
+ query.in(ProvincialAgent::getId, ids);
+ }
+ if (trim(clinicName) != null) {
+ List<Long> ids = new ArrayList<Long>();
+ for (Clinic clinic : clinicMapper.selectList(new LambdaQueryWrapper<Clinic>()
+ .like(Clinic::getName, trim(clinicName)))) {
+ if (clinic.getAgentId() != null && !ids.contains(clinic.getAgentId())) ids.add(clinic.getAgentId());
+ }
+ if (ids.isEmpty()) return emptyPage(page, pageSize);
query.in(ProvincialAgent::getId, ids);
}
IPage<ProvincialAgent> result = agentMapper.selectPage(new Page<ProvincialAgent>(page, pageSize), query);
@@ -56,6 +66,9 @@
return PageResponse.of(list, result.getTotal(), result.getCurrent(), result.getSize());
}
+ private PageResponse<ProvincialAgentListItemVO> emptyPage(int page, int pageSize) {
+ return PageResponse.of(new ArrayList<ProvincialAgentListItemVO>(), 0, page, pageSize);
+ }
public ProvincialAgentDetailVO detail(Long id) {
return toDetail(require(id));
}
@@ -99,6 +112,7 @@
agent.setAccountHolder(trim(request.getAccountHolder()));
agent.setBranchName(trim(request.getBranchName()));
agent.setContactInfo(trim(request.getContactInfo()));
+ agent.setStatus(request.getStatus() == null ? 1 : request.getStatus());
agent.setAddress(trim(request.getAddress()));
}
@@ -130,10 +144,14 @@
vo.setContactInfo(agent.getContactInfo());
vo.setAddress(agent.getAddress());
vo.setCreatedAt(agent.getCreatedAt());
+ vo.setStatus(agent.getStatus());
+ vo.setClinicCount(clinicMapper.selectCount(new LambdaQueryWrapper<Clinic>().eq(Clinic::getAgentId, agent.getId())));
List<AgentRegion> regions = regions(agent.getId());
vo.setRegionCount(regions.size());
List<String> names = new ArrayList<String>();
- for (AgentRegion region : regions) names.add(resolveRegion(region.getRegionCode()).name);
+ for (AgentRegion region : regions) {
+ names.add(resolveRegion(region.getRegionCode()).name);
+ }
vo.setRegionNames(names);
return vo;
}
@@ -148,6 +166,8 @@
vo.setRegionCount(base.getRegionCount());
vo.setRegionNames(base.getRegionNames());
vo.setCreatedAt(base.getCreatedAt());
+ vo.setStatus(base.getStatus());
+ vo.setClinicCount(base.getClinicCount());
vo.setBankName(agent.getBankName());
vo.setAccountNumber(agent.getAccountNumber());
vo.setAccountHolder(agent.getAccountHolder());
--
Gitblit v1.7.1