| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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<UserModel> {
- @override
- UserModel build() {
- return UserModel();
- }
- void updateUserData(UserModel userModel) {
- state = userModel;
- // 保存一个全局变量,方便在不使用 provider 的时候使用
- }
- Future<void> 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<void> fetchUserScore() async {
- // final data = await HttpUtil().get(apiMemberLevel);
- }
- Future<bool> 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<bool> 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();
- }
- }
|