123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import 'package:dart_json_mapper/dart_json_mapper.dart';
- import 'package:get/get.dart';
- import 'package:naiyouwl/app/common/constants.dart';
- import 'package:naiyouwl/app/data/model/LoginMode.dart';
- import '../../../common/LogHelper.dart';
- import '../../../common/SharedPreferencesUtil.dart';
- import '../../../data/model/LocalUser.dart';
- import '../../../network/api_service.dart';
- import '../../../routes/app_pages.dart';
- class LoginController extends GetxController {
- final count = 0.obs;
- var isLoading = false.obs;
- var loginModes = LoginMode().obs;
- var localUsers = LocalUser().obs;
- var errorMsg = ''.obs;
- Future<void> fetchLogin(String username, String password) async {
- try {
- if(username.isEmpty || password.isEmpty){
- errorMsg.value = "账号密码不能为空";
- return;
- }
- isLoading.value = true;
- loginModes.value = await ApiService().login(kLogin,data: {"email":username,"password":password});
- if(loginModes.value.accessToken != null){
- await SharedPreferencesUtil().setString("token", loginModes.value.accessToken.toString());
- var userModes = LocalUser(email: username,password: password,accessToken: loginModes.value.accessToken.toString());
- await SharedPreferencesUtil().setString("localUser", JsonMapper.serialize(userModes));
- }
- Get.offNamed(Routes.HOME,arguments: loginModes.value);
- } catch (e) {
- errorMsg.value = e.toString();
- } finally {
- isLoading.value = false;
- }
- }
- Future<void> fetchRegLogin(String username, String password) async {
- try {
- if(username.isEmpty || password.isEmpty){
- errorMsg.value = "账号密码不能为空";
- return;
- }
- isLoading.value = true;
- loginModes.value = await ApiService().reg(KReg,data: {"email":username,"password":password});
- if(loginModes.value.accessToken != null){
- await SharedPreferencesUtil().setString("token", loginModes.value.accessToken.toString());
- var userModes = LocalUser(email: username,password: password,accessToken: loginModes.value.accessToken.toString());
- await SharedPreferencesUtil().setString("localUser", JsonMapper.serialize(userModes));
- }
- Get.offNamed(Routes.HOME,arguments: loginModes.value);
- } catch (e) {
- errorMsg.value = e.toString();
- } finally {
- isLoading.value = false;
- }
- }
- Future<void> fetchLocalUser() async {
- try {
- String? data = await SharedPreferencesUtil().getString("localUser");
- if(data != null){
- localUsers.value = JsonMapper.deserialize<LocalUser>(data)!;
- LogHelper().d(localUsers.value.email);
- }
- } catch (e) {
- errorMsg.value = e.toString();
- } finally {
- isLoading.value = false;
- }
- }
- @override
- void onInit() {
- super.onInit();
- fetchLocalUser();
- }
- @override
- void onReady() {
- super.onReady();
- }
- @override
- void onClose() {
- super.onClose();
- }
- void increment() => count.value++;
- String username() => localUsers.value.email.toString();
- String password() => localUsers.value.password.toString();
- String accToken() => localUsers.value.accessToken.toString();
- }
|