| | |
| | | import com.tcm.training.admin.app.auth.service.AppWechatUserProfile; |
| | | import com.tcm.training.admin.app.settings.dto.AppSettingsNotificationUpdateRequest; |
| | | import com.tcm.training.admin.app.settings.dto.AppSettingsPasswordUpdateRequest; |
| | | import com.tcm.training.admin.app.settings.dto.AppSettingsPhoneBindRequest; |
| | | import com.tcm.training.admin.app.settings.dto.AppSettingsPhoneCodeRequest; |
| | | import com.tcm.training.admin.app.settings.dto.AppSettingsPhoneUpdateRequest; |
| | | import com.tcm.training.admin.app.settings.dto.AppSettingsProfileUpdateRequest; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 首次绑定当前登录用户手机号,供微信登录未绑定手机号场景使用。 |
| | | */ |
| | | @Transactional |
| | | public AppSettingsProfileVO bindPhone(AppSettingsPhoneBindRequest request) { |
| | | AppUser user = requireCurrentEnabledUser(); |
| | | String newPhone = normalizePhone(request.getNewPhone()); |
| | | String code = normalizeRequired(request.getCode(), "请输入验证码"); |
| | | if (trimToNull(user.getPhone()) != null) { |
| | | throw new IllegalArgumentException("当前账号已绑定手机号"); |
| | | } |
| | | requirePhoneAvailable(newPhone, user.getId()); |
| | | appSmsCodeService.validatePhoneChangeCode(newPhone, code); |
| | | user.setPhone(newPhone); |
| | | userMapper.updateById(user); |
| | | return toProfileVO(user); |
| | | } |
| | | |
| | | /** |
| | | * 修改当前登录用户密码,并在成功后使当前登录态失效。 |
| | | */ |
| | | @Transactional |