user_db.dart 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import 'package:flustars/flustars.dart' as FlutterStars;
  2. import 'package:liftmanager/internal/account/model/user_entity.dart';
  3. import 'package:liftmanager/internal/project/project_router.dart';
  4. import 'common.dart';
  5. class User {
  6. static final User singleton = User._internal();
  7. factory User() {
  8. return singleton;
  9. }
  10. UserEntity userEntity;
  11. List<AppMenus> userAuth;
  12. User._internal();
  13. ///保存当前用户
  14. setCurrentUser(UserEntity res,{type:"normal"}) async {
  15. if(type == "normal"){
  16. FlutterStars.SpUtil.putString(Constant.accessToken, res.token);
  17. FlutterStars.SpUtil.putString(Constant.userId, res.userId);
  18. FlutterStars.SpUtil.putString(
  19. Constant.companyId, res.maintenanceCompany?.id);
  20. FlutterStars.SpUtil.putString(Constant.companyRole,res.role?.code);
  21. FlutterStars.SpUtil.putObject(Constant.user, res);
  22. FlutterStars.SpUtil.putString('username', res.name);
  23. FlutterStars.SpUtil.putString('avatarUrl', res.avatarUrl);
  24. FlutterStars.SpUtil.putInt('userLevel', res.userLevel);
  25. FlutterStars.SpUtil.putInt('expertFlag', res.expertFlag);
  26. FlutterStars.SpUtil.putString('userLevelName', res.userLevelName);
  27. FlutterStars.SpUtil.putObjectList(Constant.userAuth, res.appMenus);
  28. }else if (type == "upDataAppMenus"){
  29. FlutterStars.SpUtil.putObjectList(Constant.userAuth, res.appMenus);
  30. }
  31. }
  32. Future<String> getCompanyRole() async{
  33. return FlutterStars.SpUtil.getString(Constant.companyRole);
  34. }
  35. ///获取当前用户
  36. Future<UserEntity> getCurrentUser() async {
  37. if (userEntity == null) {
  38. userEntity = FlutterStars.SpUtil.getObj(
  39. Constant.user, (v) => UserEntity.fromJsonMap(v));
  40. }
  41. return userEntity;
  42. }
  43. ///清除用户信息
  44. clearUser() {
  45. FlutterStars.SpUtil.remove(Constant.accessToken);
  46. FlutterStars.SpUtil.remove(Constant.userId);
  47. FlutterStars.SpUtil.remove(Constant.companyId);
  48. FlutterStars.SpUtil.remove(Constant.companyRole);
  49. FlutterStars.SpUtil.remove(Constant.user);
  50. }
  51. // 保存用户权限
  52. List<AppMenus> getUserAuth() {
  53. print("getUserAuth");
  54. userAuth = FlutterStars.SpUtil.getObjList(Constant.userAuth, (v) => AppMenus.fromJsonMap(v));
  55. print("获取用户权限");
  56. print(userAuth);
  57. return userAuth;
  58. }
  59. }