hejianhao
2026-08-18 d82b054c20afb028eb56c102f3ad15d550c7e271
feat0806: 编辑诊所后台接口支持
1个文件已修改
57 ■■■■■ 已修改文件
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/member/service/ClinicAppService.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,