account.dart 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import 'dart:convert';
  2. import 'package:fis_jsonrpc/rpc.dart';
  3. import 'package:vitalapp/rpc.dart';
  4. import 'package:vitalapp/store/store.dart';
  5. import 'package:fis_common/helpers/encrypt.dart';
  6. import 'package:fis_common/logger/logger.dart';
  7. import 'interfaces/account.dart';
  8. class AccountManager implements IAccountManager {
  9. @override
  10. Future<bool> login(String account, String password, bool isAutoLogin) async {
  11. try {
  12. final symmetryEncryptPassword =
  13. password.isEmpty ? '' : FEncryptHelper.symmetryEncrypt(password);
  14. final result = await rpc.login.commonLoginAsync(
  15. CommonLoginRequest(
  16. anyAccount: account,
  17. password: symmetryEncryptPassword,
  18. loginSource: LoginSource.Android,
  19. ),
  20. );
  21. await Store.user
  22. .handleLogin(account, result.token!, password, isAutoLogin);
  23. return true;
  24. } catch (e) {
  25. print(e);
  26. return false;
  27. }
  28. }
  29. @override
  30. Future<bool> logout() async {
  31. await Store.user.handleLogOut();
  32. try {
  33. await rpc.login.loginOutAsync(
  34. TokenRequest(token: Store.user.token),
  35. );
  36. } catch (e) {
  37. logger.e("AccountManager call logout error", e);
  38. }
  39. return true;
  40. }
  41. @override
  42. Future<UserDTO?> getUserDetailAsync() async {
  43. try {
  44. return await rpc.user.getUserDetailAsync(
  45. GetUserRequest(
  46. token: Store.user.token,
  47. code: Store.user.userCode,
  48. ),
  49. );
  50. } catch (e) {
  51. return null;
  52. }
  53. }
  54. @override
  55. Future<bool> updateUserAsync(UserDTO dto) async {
  56. try {
  57. var request = UpdateUserRequest(
  58. token: Store.user.token,
  59. code: dto.code,
  60. realName: dto.realName,
  61. phone: dto.phone,
  62. headImageToken: dto.headImageToken,
  63. );
  64. var result = await rpc.user.updateUserAsync(request);
  65. if (result) {
  66. await Store.user.updateUserInfo(dto);
  67. }
  68. return result;
  69. } catch (e) {}
  70. return false;
  71. }
  72. @override
  73. Future<String> getUserPasswordDetailAsync() async {
  74. try {
  75. var result = await rpc.userPassword.getUserPasswordDetailAsync(
  76. GetUserPasswordRequest(
  77. token: Store.user.token, code: Store.user.userCode));
  78. return result.secretPassword ?? '';
  79. } catch (e) {}
  80. return '';
  81. }
  82. @override
  83. Future<bool> updateUserPasswordAsync(String secretPassword) async {
  84. try {
  85. var result = await rpc.userPassword.updateUserPasswordAsync(
  86. UpdateUserPasswordRequest(
  87. token: Store.user.token,
  88. code: Store.user.userCode,
  89. secretPassword: secretPassword));
  90. return result;
  91. } catch (e) {}
  92. return false;
  93. }
  94. @override
  95. Future<List<UserFeatureDTO>?> getMenuPermission() async {
  96. try {
  97. var result = await rpc.user.getMenuPermissionAsync(
  98. GetMenuPermissionRequest(
  99. token: Store.user.token,
  100. appType: ApplicationTypeEnum.App,
  101. ),
  102. );
  103. for (var element in result) {
  104. print(element.toJson());
  105. }
  106. return result;
  107. } catch (e) {
  108. logger.e("AccountManager call getMenuPermission error", e);
  109. }
  110. return null;
  111. }
  112. @override
  113. Future<List<UserFeatureDTO>?> getOperationPermission() async {
  114. try {
  115. var request = GetOperationPermissionRequest(
  116. token: Store.user.token,
  117. appType: ApplicationTypeEnum.App,
  118. );
  119. var result = await rpc.user.getOperationPermissionAsync(request);
  120. // var json = jsonEncode(request);
  121. // print(jsonEncode(request.toJson()));
  122. for (var element in result) {
  123. print(element.toJson());
  124. logger.i('新增权限${element.toJson()}');
  125. }
  126. return result;
  127. } catch (e) {
  128. logger.e("AccountManager call getMenuPermission error", e);
  129. }
  130. return null;
  131. }
  132. }