import 'dart:io'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:news_app/extension/base.dart'; import 'package:news_app/http/http_util.dart'; import 'package:news_app/model/base_response.dart'; import 'package:news_app/model/user_model.dart'; import 'package:news_app/util/shared_prefs_instance_util.dart'; import '../constant/api_const.dart'; import '../constant/config.dart'; /// @author: bo.zeng /// @email: cnhbwds@gmail.com /// @date: 2025 2025/4/9 16:00 /// @description: class GlobalUserNotifier extends Notifier { @override UserModel build() { return UserModel(); } void updateUserData(UserModel userModel) { state = userModel; // 保存一个全局变量,方便在不使用 provider 的时候使用 } Future fetchUserInfo() async { if (uuid.isEmpty) { return; } final data = await HttpUtil().get(apiMemberInfo,queryParameters: {"versionNumber":"1.1.1","device":Platform.isIOS == true ? "ios" : "android"}); UserModel userModel = UserModel.fromJson(data); updateUserData(userModel); } Future fetchUserScore() async { // final data = await HttpUtil().get(apiMemberLevel); } Future fetchUserAvatarInfo({required String base64Image}) async { var result = await HttpUtil().post( apiMemberAvatar, data: { "image": "data:image/png;base64,$base64Image", "preview": true, }, ); String imageUrl = result; if (imageUrl.isNotEmpty) { updateUserData(UserModel(nickName: state.nickName, description: state.description,avatar: imageUrl,shareUrl: state.shareUrl,shareDesc:state.shareDesc,credit:state.credit,shopUrl:state.shopUrl,isShow: state.isShow)); return true; } return false; } Future fetchUpdateUserInfo({ required String nickname, required String description, }) async { var result = await HttpUtil().post( apiMemberInfo, data: {"nickName": nickname, "description": description}, ); BaseResponse response = BaseResponse.fromJson(result); if (response.isSuccess) { updateUserData(UserModel(nickName: nickname, description: description,avatar: state.avatar,shareUrl: state.shareUrl,shareDesc:state.shareDesc,credit:state.credit,shopUrl:state.shopUrl,isShow:state.isShow)); return true; } else { return false; } } void clearUserInfo() { state = UserModel(); uuid = ""; clearUuid(); } }