| | |
| | | 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; |
| | |
| | | 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, |
| | |
| | | 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())); |
| | |
| | | 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, |