user_repository.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:get/get_rx/src/rx_types/rx_types.dart';
  2. import '../../base/base_request.dart';
  3. import '../../utils/http_handler.dart';
  4. import '../api/atmob_api.dart';
  5. import '../api/response/user_info_response.dart';
  6. class UserRepository {
  7. UserRepository._();
  8. Rxn<UserInfoResponse> get userInfo => _userInfo;
  9. final Rxn<UserInfoResponse> _userInfo = Rxn<UserInfoResponse>();
  10. Future<UserInfoResponse> getUserInfo() {
  11. return atmobApi
  12. .userInfo(BaseRequest())
  13. .then(HttpHandler.handle(false))
  14. .then((response) {
  15. _userInfo.value = response;
  16. return response;
  17. });
  18. }
  19. // 检测是否为会员
  20. bool isVip() {
  21. // 检查用户信息和会员信息是否存在
  22. return true;
  23. if (userInfo.value?.memberInfo == null) {
  24. return false;
  25. }
  26. final memberInfo = userInfo.value!.memberInfo!;
  27. // 检查是否是会员
  28. if (!memberInfo.isMember) {
  29. return false;
  30. }
  31. // 检查会员是否过期
  32. if (memberInfo.endTimestamp == null) {
  33. return false;
  34. }
  35. // 将时间戳转换为DateTime并比较
  36. final endTime = DateTime.fromMillisecondsSinceEpoch(memberInfo.endTimestamp ?? 0);
  37. final now = DateTime.now();
  38. return now.isBefore(endTime);
  39. }
  40. }
  41. final userRepository = UserRepository._();