From d82b054c20afb028eb56c102f3ad15d550c7e271 Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期二, 18 八月 2026 18:40:03 +0800
Subject: [PATCH] feat0806: 编辑诊所后台接口支持
---
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 56 insertions(+), 1 deletions(-)
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java
index 7b461ce..d3add80 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java
@@ -4,17 +4,22 @@
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.tcm.training.admin.agent.entity.AgentRegion;
import com.tcm.training.admin.agent.entity.ProvincialAgent;
import com.tcm.training.admin.agent.excel.ClinicAgentImportRow;
import com.tcm.training.admin.agent.mapper.ProvincialAgentMapper;
+import com.tcm.training.admin.app.register.entity.SysRegion;
+import com.tcm.training.admin.app.register.mapper.SysRegionMapper;
import com.tcm.training.admin.common.DateTimes;
import com.tcm.training.admin.common.PageResponse;
import com.tcm.training.admin.common.PhoneMasker;
import com.tcm.training.admin.live.entity.Clinic;
import com.tcm.training.admin.live.mapper.ClinicMapper;
import com.tcm.training.admin.member.dto.ClinicBankAccountUpdateRequest;
+import com.tcm.training.admin.member.entity.AppUser;
import com.tcm.training.admin.member.excel.ClinicExcelRow;
import com.tcm.training.admin.member.mapper.ClinicQueryMapper;
+import com.tcm.training.admin.member.mapper.UserMapper;
import com.tcm.training.admin.member.row.ClinicBoundUserRow;
import com.tcm.training.admin.member.row.ClinicDetailRow;
import com.tcm.training.admin.member.row.ClinicListRow;
@@ -39,11 +44,15 @@
private final ClinicQueryMapper clinicQueryMapper;
private final ClinicMapper clinicMapper;
private final ProvincialAgentMapper provincialAgentMapper;
+ private final UserMapper userMapper;
+ private final SysRegionMapper sysRegionMapper;
- public ClinicAppService(ClinicQueryMapper clinicQueryMapper, ClinicMapper clinicMapper, ProvincialAgentMapper provincialAgentMapper) {
+ public ClinicAppService(ClinicQueryMapper clinicQueryMapper, ClinicMapper clinicMapper, ProvincialAgentMapper provincialAgentMapper, UserMapper userMapper, SysRegionMapper sysRegionMapper) {
this.clinicQueryMapper = clinicQueryMapper;
this.clinicMapper = clinicMapper;
this.provincialAgentMapper = provincialAgentMapper;
+ this.userMapper = userMapper;
+ this.sysRegionMapper = sysRegionMapper;
}
public PageResponse<ClinicListItemVO> page(int page,
@@ -216,11 +225,44 @@
return vo;
}
+ @Transactional
public ClinicDetailVO updateBankAccount(Long id, ClinicBankAccountUpdateRequest request) {
Clinic clinic = clinicMapper.selectById(id);
if (clinic == null || (clinic.getDeleted() != null && clinic.getDeleted() == 1)) {
throw new IllegalArgumentException("诊所不存在");
}
+ String loginAccount = trimToNull(request.getLoginAccount());
+ AppUser user = userMapper.selectOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, loginAccount).eq(AppUser::getDeleted, 0).last("limit 1"));
+ if (user == null) {
+ throw new IllegalArgumentException("登录账号不存在");
+ }
+ user.setAvatar(trimToNull(request.getAvatar()));
+ user.setPhone(loginAccount);
+ userMapper.updateById(user);
+ Set<String> codes = new LinkedHashSet<String>();
+ addCode(codes, request.getProvinceCode());
+ addCode(codes, request.getCityCode());
+ addCode(codes, request.getDistrictCode());
+ Map<String, SysRegion> regions = new HashMap<String, SysRegion>();
+ List<SysRegion> regionList = sysRegionMapper.selectList(new LambdaQueryWrapper<SysRegion>().in(SysRegion::getCode, codes));
+ if (!regionList.isEmpty()) {
+ for (SysRegion region : regionList) {
+ regions.put(region.getCode(), region);
+ }
+ }
+
+ clinic.setName(trimToNull(request.getName()));
+ clinic.setContactPhone(loginAccount);
+ clinic.setProvinceCode(trimToNull(request.getProvinceCode()));
+ clinic.setProvinceName(regionName(request.getProvinceCode(), request.getProvinceName(), regions));
+ clinic.setCityCode(trimToNull(request.getCityCode()));
+ clinic.setCityName(regionName(request.getCityCode(), request.getCityName(), regions));
+ clinic.setDistrictCode(trimToNull(request.getDistrictCode()));
+ clinic.setDistrictName(regionName(request.getDistrictCode(), request.getDistrictName(), regions));
+ clinic.setAddress(trimToNull(request.getAddress()));
+ clinic.setBusinessLicenseUrl(trimToNull(request.getBusinessLicenseUrl()));
+ clinic.setStatus(request.getStatus());
+ clinic.setAgentId(request.getAgentId());
clinic.setBankName(trimToNull(request.getBankName()));
clinic.setAccountHolder(trimToNull(request.getAccountHolder()));
clinic.setAccountNumber(trimToNull(request.getAccountNumber()));
@@ -229,6 +271,19 @@
return detail(id);
}
+ private void addCode(Set<String> codes, String code) {
+ String value = trimToNull(code);
+ if (value != null) {
+ codes.add(value);
+ }
+ }
+
+ private String regionName(String code, String fallback, Map<String, SysRegion> regions) {
+ String value = trimToNull(code);
+ SysRegion region = value == null ? null : regions.get(value);
+ return region == null ? trimToNull(fallback) : region.getName();
+ }
+
public PageResponse<ClinicBoundUserItemVO> clinicUsers(Long clinicId,
int page,
int pageSize,
--
Gitblit v1.7.1