| | |
| | | GuideTeam team = user.getTeamId() == null ? null : teamMapper.selectById(user.getTeamId()); |
| | | List<GuideScenicConfig> scenicConfigs = scenicConfigMapper.selectList( |
| | | new LambdaQueryWrapper<GuideScenicConfig>().eq(GuideScenicConfig::getGuideId, id).orderByAsc(GuideScenicConfig::getId)); |
| | | GuideApplication application = findLatestApplication(user); |
| | | LocalDate birthDate = user.getBirthDate(); |
| | | Integer workYears = user.getWorkYears(); |
| | | if (birthDate == null || workYears == null) { |
| | | GuideApplication application = findLatestApplication(user); |
| | | if (birthDate == null && application != null) birthDate = parseBirthDate(application.getIdCardNo()); |
| | | if (workYears == null && application != null) workYears = parseWorkYears(application.getWorkYearRange()); |
| | | } |
| | | return new GuideUserDetailResponse(user, team == null ? null : team.getTeamName(), scenicConfigs, |
| | | birthDate, workYears); |
| | | birthDate, workYears, |
| | | application == null ? null : application.getAgeRange(), |
| | | application == null ? null : application.getWorkYearRange()); |
| | | } |
| | | |
| | | private GuideApplication findLatestApplication(GuideUser user) { |
| | |
| | | if (user.getStatus() == STATUS_CANCELLED) { |
| | | user.setStatus(STATUS_PENDING); |
| | | user.setAutoDisableWhitelisted(0); |
| | | user.setPremiumEnabled(0); |
| | | user.setAutoDisabled(0); |
| | | user.setDeleted(0); |
| | | } |
| | |
| | | @Transactional |
| | | public GuideUserResponse changeMobile(Long id, String newPhone) { |
| | | GuideUser user = findEnabledById(id); |
| | | ensurePhoneAvailable(id, newPhone); |
| | | String oldPhone = user.getMobile(); |
| | | user.setMobile(newPhone); |
| | | if (oldPhone != null && oldPhone.equals(user.getUsername())) { |
| | | user.setUsername(newPhone); |
| | | } |
| | | updateMobileAndLoginUsername(user, newPhone); |
| | | userMapper.updateById(user); |
| | | return GuideUserResponse.from(user); |
| | | } |
| | |
| | | .eq(GuideTeam::getCollectionGuideId, id)) > 0) { |
| | | throw new BusinessException(409, "该导游已配置为讲解队收款导游,请先更换收款导游"); |
| | | } |
| | | updateMobileAndLoginUsername(user, request.getMobile()); |
| | | user.setRealName(request.getRealName()); |
| | | user.setMobile(request.getMobile()); |
| | | user.setAvatar(request.getAvatar()); |
| | | user.setCertificateNo(request.getCertificateNo()); |
| | | user.setGender(request.getGender()); |
| | |
| | | return detail(id); |
| | | } |
| | | |
| | | private void updateMobileAndLoginUsername(GuideUser user, String newPhone) { |
| | | String oldPhone = user.getMobile(); |
| | | if (!java.util.Objects.equals(oldPhone, newPhone) && StringUtils.hasText(newPhone)) { |
| | | ensurePhoneAvailable(user.getId(), newPhone); |
| | | } |
| | | user.setMobile(newPhone); |
| | | if (oldPhone != null && oldPhone.equals(user.getUsername()) && StringUtils.hasText(newPhone)) { |
| | | user.setUsername(newPhone); |
| | | } |
| | | } |
| | | |
| | | @Transactional |
| | | public void updateWhitelist(Long id, boolean enabled) { |
| | | GuideUser user = findById(id); |
| | |
| | | userMapper.updateById(user); |
| | | } |
| | | |
| | | @Transactional |
| | | public void updatePremiumPermission(Long id, boolean enabled) { |
| | | GuideUser user = findById(id); |
| | | user.setPremiumEnabled(enabled ? 1 : 0); |
| | | userMapper.updateById(user); |
| | | } |
| | | |
| | | public GuideAutoDisableConfigResponse getAutoDisableConfig() { |
| | | GuideAutoDisableConfig config = autoDisableConfigMapper.selectById(1); |
| | | if (config == null) { |