123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- import 'package:cpt_auth/modules/login/login_page.dart';
- import 'package:cpt_auth/modules/reset_psd/reset_psd_page.dart';
- import 'package:cpt_auth/modules/setting/dialog/switch_project_dialog.dart';
- import 'package:domain/entity/response/index_option_entity.dart';
- import 'package:domain/repository/auth_repository.dart';
- import 'package:domain/repository/ms_repository.dart';
- import 'package:get/get.dart';
- import 'package:plugin_basic/constants/app_constant.dart';
- import 'package:plugin_basic/service/app_config_service.dart';
- import 'package:plugin_basic/service/user_service.dart';
- import 'package:plugin_platform/engine/dialog/dialog_engine.dart';
- import 'package:plugin_platform/engine/notify/notify_engine.dart';
- import 'package:plugin_platform/engine/toast/toast_engine.dart';
- import 'package:plugin_platform/http/dio/dio_cancelable_mixin.dart';
- import 'package:shared/utils/event_bus.dart';
- import 'package:shared/utils/util.dart';
- import 'package:widgets/dialog/app_default_dialog.dart';
- import 'setting_state.dart';
- class SettingController extends GetxController with DioCancelableMixin {
- final AuthRepository _authRepository = Get.find();
- final MSRepository _msRepository = Get.find();
- final SettingState state = SettingState();
- //切换账号
- void switchProjects() async {
- final result = await _msRepository.fetchSwitchProjectList(cancelToken: cancelToken);
- if (result.isSuccess) {
- final projects = result.data?.cutUser;
- if (projects != null && projects.isNotEmpty) {
- _showSwitchProjectDialog(projects);
- }
- } else {
- final errorMessage = result.errorMsg;
- ToastEngine.show(errorMessage ?? "Network Load Error".tr);
- }
- }
- void _showSwitchProjectDialog(List<IndexOptionEntity> projects) {
- DialogEngine.show(
- widget: SwitchProjectDialog(
- options: projects,
- confirmAction: (entity) {
- _requestSwitchProject(entity);
- },
- ));
- }
- void _requestSwitchProject(IndexOptionEntity entity) async{
- final result = await _msRepository.switchProjectSubmit(entity.value,cancelToken: cancelToken);
- if (result.isSuccess) {
- NotifyEngine.showSuccess('successful'.tr);
- final token = result.data?.token;
- UserService.to.setToken(token);
- //发送通知刷新首页
- bus.emit(AppConstant.eventMainRefresh, true);
- } else {
- final errorMessage = result.errorMsg;
- ToastEngine.show(errorMessage ?? "Network Load Error".tr);
- }
- }
- //去重置密码页面
- void gotoResetPasswordPage() {
- ResetPasswordPage.startInstance();
- }
- //确定删除账号
- void doAccountDelete() {
- DialogEngine.show(
- widget: AppDefaultDialog(
- title: "Confirmation".tr,
- message: "Are you sure you want to deactivate your account? You will not be able to login into the app once you proceed with the request.".tr,
- confirmAction: () {
- _requestDeactivate();
- },
- ));
- }
- void _requestDeactivate() async {
- var result = await _authRepository.hotelDeactivate(cancelToken: cancelToken);
- //处理数据
- if (result.isSuccess) {
- //清除数据,去首页
- UserService.to.handleLogoutParams();
- LoginPage.startWithPopAll();
- } else {
- ToastEngine.show(result.errorMsg ?? "Network Load Error".tr);
- }
- }
- //确定退出登录
- void doLogout() {
- DialogEngine.show(
- widget: AppDefaultDialog(
- title: "Confirmation".tr,
- message: "Are you sure you need to exit the system?".tr,
- confirmAction: () {
- _requestLogout();
- },
- ));
- }
- /// 请求接口退出账号
- void _requestLogout() async {
- var result = await _authRepository.userLogout(country: ConfigService.to.selectCountry.value, cancelToken: cancelToken);
- //处理数据
- if (result.isSuccess) {
- //清除数据,去首页
- UserService.to.handleLogoutParams();
- LoginPage.startWithPopAll();
- } else {
- ToastEngine.show(result.errorMsg ?? "Network Load Error".tr);
- }
- }
- }
|