import 'dart:convert'; import 'package:flutter/material.dart'; import '../../utils/string_util.dart'; import '../../utils/user_util.dart'; import 'http.dart'; import 'dart:io'; class UserApiUtil { ///验证码发送 static Future?> sendSMS( BuildContext context, String phone) async { var result = await HttpUtil.baseRequest( context, "/api/v1/sms/sendSMS", {"phone": phone}, () { showLoading(context); }); dismissDialog(context); if (result.success) { return result.data; } return null; } ///发送邮箱验证码 static Future?> sendEmailCode( BuildContext context, String email) async { var result = await HttpUtil.baseRequest( context, "/api/user/sendVerifyCode", {"Email": email}, () { showLoading(context); }); dismissDialog(context); if (result.success) { return result.data; } return null; } static Future?> uploadPushRegId( BuildContext context, String regId) async { var uid = await UserUtil.getUid(); var params = {"regId": regId}; if (uid != null) { params["uid"] = uid.toString(); } var result = await HttpUtil.baseRequest( context, "/api/v1/user/uploadPushRegId", params, () {}); if (result.success) { return result.data; } return null; } ///登录 static Future?> loginByPhone( BuildContext context, String phone, String vcode, String token) async { Map params = {}; params["phone"] = phone; if (!StringUtil.isNullOrEmpty(vcode)) { params["vcode"] = vcode; } if (!StringUtil.isNullOrEmpty(token)) { params["token"] = token; } var result = await HttpUtil.baseRequest( context, "/api/v1/user/loginPhone", params, () { showLoading(context); }, notifyError: true); dismissDialog(context); if (result.success) { return result.data; } return null; } static Future?> loginByEmail( BuildContext context, String email, String pwd) async { Map params = {}; params["Email"] = email; params["Pwd"] = pwd; var result = await HttpUtil.baseRequest(context, "/api/user/login", params, () { showLoading(context); }, notifyError: true); dismissDialog(context); if (result.success) { return result.data; } return null; } static Future?> registerByEmail( BuildContext context, String email, String pwd, String code) async { Map params = {}; params["Email"] = email; params["Pwd"] = pwd; params["VerifyCode"] = code; var result = await HttpUtil.baseRequest(context, "/api/user/register", params, () { showLoading(context); }, notifyError: true); dismissDialog(context); if (result.success) { return result.data; } return null; } static Future?> setPwd( BuildContext context, String email, String pwd, String code) async { Map params = {}; params["Email"] = email; params["Pwd"] = pwd; params["VerifyCode"] = code; var result = await HttpUtil.baseRequest(context, "/api/user/setPwd", params, () { showLoading(context); }, notifyError: true); dismissDialog(context); if (result.success) { return result.data; } return null; } ///获取用户信息 static Future?> getUserInfo( BuildContext context, String uid) async { Map params = {}; params["LoginUid"] = uid.toString(); var result = await HttpUtil.baseRequest( context, "/api/user/getLoginUserInfo", params, () {}); if (result.success) { return result.data; } return null; } static Future?> updateUserInfo(BuildContext context, {String? nickName, String? portraitPath, int? sex, String? sign, String? birthDay}) async { Map params = {}; params["LoginUid"] = await UserUtil.getUid(); if (nickName != null) { params["NickName"] = nickName; } if (portraitPath != null) { List bytes =await File(portraitPath).readAsBytes(); String bs64 = base64Encode(bytes); params["Portrait"] = bs64; } if (sex != null) { params["Sex"] = sex.toString(); } if (sign != null) { params["PersonalSign"] = sign; } if (birthDay != null) { params["BirthDay"] = birthDay; } var result = await HttpUtil.baseRequest( context, "/api/user/updateLoginUserInfo", params, () { showLoading(context); }); dismissDialog(context); if (result.success) { return result.data; } return null; } ///退出登录 static Future?> logout( BuildContext context, String uid) async { Map params = {}; params["uid"] = uid.toString(); var result = await HttpUtil.baseRequest(context, "/api/user/logout", params, () {}); if (result.success) { return result.data; } return null; } }