import 'package:get/get.dart'; import 'package:injectable/injectable.dart'; import 'package:keyboard/base/base_controller.dart'; import 'package:keyboard/dialog/login/login_dialog.dart'; import 'package:keyboard/resource/string.gen.dart'; import 'package:keyboard/utils/error_handler.dart'; import '../../../data/api/response/zodiac_love_intimacy_response.dart'; import '../../../data/bean/member_info.dart'; import '../../../data/consts/error_code.dart'; import '../../../data/repository/account_repository.dart'; import '../../../data/repository/zodiac_love_intimacy_repository.dart'; import '../../../utils/http_handler.dart'; import '../../../utils/toast_util.dart'; import '../../store/new_discount/new_discount_page.dart'; /// 星座恋爱分析-今日Tab-Controller @injectable class ZodiacLoveTodayController extends BaseController { /// 星座恋爱分析的Repository final ZodiacLoveIntimacyRepository zodiacLoveIntimacyRepository; /// 用户信息 final AccountRepository accountRepository; /// 分析列表 final Rxn zodiacLoveIntimacyResp = Rxn(); /// 当前用户的会员信息 Rxn get memberInfo => accountRepository.memberStatusInfo; /// 报告是否生成中 RxBool isReportCreating = false.obs; ZodiacLoveTodayController( this.zodiacLoveIntimacyRepository, this.accountRepository, ); @override void onInit() { super.onInit(); ever(memberInfo, (info) { // 如果是会员了,重新拉取数据 if (info != null) { if (info.isMember) { _getZodiacLoveIntimacyToday(); } } }); } @override void onReady() { super.onReady(); _getZodiacLoveIntimacyToday(); } /// 星座恋爱分析-获取今日指数分析 void _getZodiacLoveIntimacyToday() async { // 生成中 isReportCreating.value = true; try { ZodiacLoveIntimacyResponse resp = await zodiacLoveIntimacyRepository.getZodiacLoveIntimacyToday(); zodiacLoveIntimacyResp.value = resp; } catch (error) { if (error is ServerErrorException) { // 未登录 if (error.code == ErrorCode.noLoginError) { ToastUtil.show(StringName.accountNoLogin); LoginDialog.show(); } else if (error.code == ErrorCode.noMember) { // 需要VIP ToastUtil.show(StringName.needVipTip); NewDiscountPage.start(); } else { ErrorHandler.toastError(error); } } else { ErrorHandler.toastError(error); } } finally { // 生成结束 isReportCreating.value = false; } } /// 点击解锁按钮 void clickUnlockBtn() { // 跳转去会员活动页 NewDiscountPage.start(); } }