account.dart 3.8 KB

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