change_password_service.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import 'package:path/path.dart' as path;
  2. import 'package:sino_med_cloud/core/utils/logger.dart';
  3. import '../../../base/common_response.dart';
  4. import '../../../core/constants/api_constants.dart';
  5. import '../../../core/network/dio_client.dart';
  6. class ChangePasswordService {
  7. static Future<BaseCommonResponse>
  8. changePassword({
  9. required String mobile,
  10. required String oldPassword,
  11. required String newPassword,
  12. String scope = 'yun-his-forget-password-sms-send',
  13. required String smsCode
  14. }) async {
  15. try {
  16. final parame = {
  17. "mobile": mobile,
  18. "password1": oldPassword,
  19. "password2": newPassword,
  20. "scope": scope,
  21. "sms_code": smsCode
  22. };
  23. AppLogger.d('修改密码请求参数: $parame');
  24. final response = await DioClient.post<Map<String, dynamic>>(
  25. path.join(ApiConstants.baseUrl, ApiConstants.forgotPassword),
  26. fromJsonT: (json) => json as Map<String, dynamic>,
  27. data: parame
  28. );
  29. if (response.success && response.code == 20000) {
  30. AppLogger.d('修改密码成功');
  31. return response;
  32. } else {
  33. final errorMsg = response.msg ?? '修改密码失败';
  34. AppLogger.d('修改密码失败: $errorMsg');
  35. throw Exception(errorMsg);
  36. }
  37. } catch (e) {
  38. AppLogger.e('修改密码错误', e);
  39. rethrow;
  40. }
  41. }
  42. }