| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 | 
							- import 'dart:typed_data';
 
- import 'package:dio/dio.dart';
 
- import 'package:maxkey_flutter/utils.dart';
 
- class MaxKeyUser {
 
-   final String displayName;
 
-   final Uint8List? picture;
 
-   MaxKeyUser(this.displayName, this.picture);
 
-   factory MaxKeyUser.fromMap(Map map) {
 
-     final String displayName = map["data"]["displayName"];
 
-     final String? pictureBase64 = map["data"]["pictureBase64"];
 
-     final picture = pictureBase64?.split(",")[1].base64ToBuf();
 
-     return MaxKeyUser(displayName, picture);
 
-   }
 
- }
 
- class MaxKeyUserInfo {
 
-   MaxKeyUserInfo({
 
-     /// 姓名
 
-     required this.displayName,
 
-     /// 登录账号
 
-     required this.username,
 
-     /// 性别
 
-     required this.gender,
 
-     /// 员工编号
 
-     required this.employeeNumber,
 
-     /// 手机号码
 
-     required this.mobile,
 
-     /// 邮箱
 
-     required this.email,
 
-     /// 用户类型
 
-     required this.userType,
 
-     /// 用户状态
 
-     required this.userState,
 
-     /// 状态
 
-     required this.status,
 
-     /// 证件类型
 
-     required this.idType,
 
-     /// 证件号码
 
-     required this.idCardNo,
 
-     /// 婚姻状态
 
-     required this.married,
 
-     /// 出生日期
 
-     required this.birthDate,
 
-     /// 所属组织
 
-     required this.organization,
 
-     /// 分支机构
 
-     required this.division,
 
-     /// 部门编号
 
-     required this.departmentId,
 
-     /// 部门名称
 
-     required this.department,
 
-     /// 职位
 
-     required this.jobTitle,
 
-     /// 级别
 
-     required this.jobLevel,
 
-     /// 上级经理
 
-     required this.manager,
 
-   });
 
-   static MaxKeyUserInfo? fromMap(Map map) {
 
-     return MaxKeyUserInfo(
 
-       displayName: map["displayName"].toString(),
 
-       username: map["username"].toString(),
 
-       gender: switch (map["gender"]) { 1 => "女", 2 => "男", _ => _unknwon },
 
-       employeeNumber: map["employeeNumber"]?.toString() ?? _unknwon,
 
-       mobile: map["mobile"]?.toString() ?? _unknwon,
 
-       email: map["email"]?.toString() ?? _unknwon,
 
-       userType: switch (map["userType"]) {
 
-         "EMPLOYEE" => "内部员工",
 
-         "CONTRACTOR" => "承包商",
 
-         "CUSTOMER" => "客户",
 
-         "SUPPLIER" => "供应商",
 
-         "PARTNER" => "合作伙伴",
 
-         "EXTERNAL" => "外部用户",
 
-         "INTERN" => "实习生",
 
-         "TEMP" => "临时用户",
 
-         "DEALER" => "经销商",
 
-         _ => _unknwon,
 
-       },
 
-       userState: switch (map["userState"]) {
 
-         "RESIDENT" => "在职",
 
-         "WITHDRAWN" => "离职",
 
-         "INACTIVE" => "停薪留职",
 
-         "RETIREE" => "退休",
 
-         _ => _unknwon,
 
-       },
 
-       status: switch (map["status"]) {
 
-         1 => "活动",
 
-         2 => "不活动",
 
-         4 => "禁用",
 
-         5 => "锁定",
 
-         9 => "已删除",
 
-         _ => _unknwon,
 
-       },
 
-       idType: switch (map["idType"]) {
 
-         0 => "未知",
 
-         1 => "身份证",
 
-         2 => "护照",
 
-         3 => "学生证",
 
-         4 => "军人证",
 
-         _ => _unknwon,
 
-       },
 
-       idCardNo: map["idCardNo"]?.toString() ?? _unknwon,
 
-       married: switch (map["married"]) {
 
-         0 => "未知",
 
-         1 => "单身",
 
-         2 => "已婚",
 
-         3 => "离异",
 
-         4 => "丧偶",
 
-         _ => _unknwon,
 
-       },
 
-       birthDate: map["birthDate"]?.toString() ?? _unknwon,
 
-       organization: map["organization"]?.toString() ?? _unknwon,
 
-       division: map["division"]?.toString() ?? _unknwon,
 
-       departmentId: map["departmentId"]?.toString() ?? _unknwon,
 
-       department: map["deparment"]?.toString() ?? _unknwon,
 
-       jobTitle: map["jobTitle"]?.toString() ?? _unknwon,
 
-       jobLevel: map["jobLevel"]?.toString() ?? _unknwon,
 
-       manager: map["manager"]?.toString() ?? _unknwon,
 
-     );
 
-   }
 
-   /// 姓名
 
-   final String displayName;
 
-   /// 登录账号
 
-   final String username;
 
-   /// 性别
 
-   final String gender;
 
-   /// 员工编号
 
-   final String employeeNumber;
 
-   /// 手机号码
 
-   final String mobile;
 
-   /// 邮箱
 
-   final String email;
 
-   /// 用户类型
 
-   final String userType;
 
-   /// 用户状态
 
-   final String userState;
 
-   /// 状态
 
-   final String status;
 
-   /// 证件类型
 
-   final String idType;
 
-   /// 证件号码
 
-   final String idCardNo;
 
-   /// 婚姻状态
 
-   final String married;
 
-   /// 出生日期
 
-   final String birthDate;
 
-   /// 所属组织
 
-   final String organization;
 
-   /// 分支机构
 
-   final String division;
 
-   /// 部门编号
 
-   final String departmentId;
 
-   /// 部门名称
 
-   final String department;
 
-   /// 职位
 
-   final String jobTitle;
 
-   /// 级别
 
-   final String jobLevel;
 
-   /// 上级经理
 
-   final String manager;
 
-   static const String _unknwon = "未知";
 
- }
 
- class UsersService {
 
-   final Dio _dio;
 
-   UsersService(this._dio);
 
-   Future<MaxKeyUser?> getBasicUserInfo() async {
 
-     try {
 
-       LOGGER.i("UsersService.getBasicUserInfo(): ");
 
-       LOGGER.i("GET: /users/profile/get");
 
-       final res = await _dio.get("/users/profile/get");
 
-       if (res.data["code"] != 0) {
 
-         LOGGER.w(res.data["message"]);
 
-         return null;
 
-       }
 
-       return MaxKeyUser.fromMap(res.data);
 
-     } catch (err) {
 
-       LOGGER.i("UsersService.getBasicUserInfo(): ");
 
-       LOGGER.e(err);
 
-     }
 
-     return null;
 
-   }
 
-   Future<MaxKeyUserInfo?> getFullUserInfo() async {
 
-     try {
 
-       LOGGER.i("UsersService.getFullUserInfo(): ");
 
-       LOGGER.i("GET: /users/profile/get");
 
-       final res = await _dio.get("/users/profile/get");
 
-       if (res.data["code"] != 0) {
 
-         LOGGER.w(res.data["message"]);
 
-         return null;
 
-       }
 
-       return MaxKeyUserInfo.fromMap(res.data["data"]);
 
-     } catch (err) {
 
-       LOGGER.e("UsersService.getFullUserInfo(): ");
 
-       LOGGER.e(err);
 
-     }
 
-     return null;
 
-   }
 
- }
 
 
  |