import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:makemoney/utils/encrypt_util.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?> loginByWX( BuildContext context, String code) async { Map params = {}; params["code"] = code; var result = await HttpUtil.baseRequest(context, "/api/v1/user/loginWX", 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?> bindWX( BuildContext context, String code) async { Map params = {}; params["code"] = code; params["uid"] = await UserUtil.getUid(); var result = await HttpUtil.baseRequest(context, "/api/v1/user/bindWX", params, () { showLoading(context); }, notifyError: true); dismissDialog(context); if (result.success) { return result.data; } return null; } ///绑定电话 static Future?> bindPhone( BuildContext context, String? phone, String? vcode, String? token) async { Map params = {}; if (phone != null) { params["phone"] = phone; } if (vcode != null) { params["vcode"] = vcode; } if (token != null) { params["token"] = token; } params["uid"] = await UserUtil.getUid(); var result = await HttpUtil.baseRequest( context, "/api/v1/user/bindPhone", 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["uid"] = uid.toString(); var result = await HttpUtil.baseRequest( context, "/api/v1/user/getUserInfo", params, () {}); if (result.success) { return result.data; } return null; } static Future?> updateUserInfo(BuildContext context, {String? nickName, String? portraitPath}) async { Map params = {}; params["uid"] = await UserUtil.getUid(); if (nickName != null) { params["nickName"] = nickName; } if (portraitPath != null) { File file = File(portraitPath); params["portrait"] = file; //设置头像的MD5值,方便验证 params["portraitMD5"] = EncryptUtil.md5Bytes(await file.readAsBytes()); } var result = await HttpUtil.baseRequest( context, "/api/v1/user/updateUserInfo", params, () { showLoading(context); }); dismissDialog(context); if (result.success) { return result.data; } return null; } ///退出登录 static Future?> logout( BuildContext context) async { Map params = {}; params["uid"] = await UserUtil.getUid(); var result = await HttpUtil.baseRequest(context, "/api/user/logout", params, () {}); if (result.success) { return result.data; } return null; } ///用户资产 static Future?> getUserAssets( BuildContext context) async { Map params = {}; params["uid"] = await UserUtil.getUid(); var result = await HttpUtil.baseRequest( context, "/api/v1/user/getUserAssets", params, () {}); if (result.success) { return result.data; } return null; } }