mh_frame_sps/APT.Infrastructure.Core/Helper/WebUtils.cs

319 lines
12 KiB
C#
Raw Normal View History

2026-04-07 13:47:52 +08:00
using System.Collections.Generic;
namespace APT.Infrastructure.Core
{
public class WebUtils
{
/// <summary>
/// 通过唯一编号获得数据表
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <param name="id"></param>
/// <returns></returns>
public static T Get<T>(string url, string id, string token, string tenant = "")
{
BaseFilter baseFilter = new BaseFilter();
baseFilter.FilterGroup.Rules.Add(new FilterRule("ID", id));
return Get<T>(url, baseFilter, token, SendType.Post, tenant);
}
public static T Get<T>(string url, string key, string value, string token = "", string tenant = "")
{
return Get<T>(url + $"?{key}={value}", token, tenant);
}
public static string Get(string url, string key, string value, string token = "", string tenant = "")
{
return Get(url + $"?{key}={value}", token, tenant);
}
public static string Get(string url, string token, string tenant = "")
{
var body = new ApiBody();
body.SendType = SendType.Get;
body.ApiUrl = url;
body.SendObj = null;
body.Token = token;
body.ResolvingResult = false;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
var msg = "";
var result = ApiHelper.GetApiData(body, ref msg);
return result;
}
public static T Get<T>(string url, string token, string tenant = "")
{
var body = new ApiBody();
body.SendType = SendType.Get;
body.ApiUrl = url;
body.SendObj = null;
body.Token = token;
body.ResolvingResult = false;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
int totalCount = 0;
var result = ApiHelper.GetApiData<T>(body, ref totalCount);
return result;
}
/// <summary>
/// 通过过滤条件获取一条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <param name="filter"></param>
/// <param name="isResolvingResult">是否直接转换对象</param>
/// <returns></returns>
public static T Get<T>(string url, BaseFilter filter, string token, SendType type = SendType.Post,
string tenant = "", bool isResolvingResult = false)
{
var body = new ApiBody();
body.SendType = type;
body.ApiUrl = url;
body.SendObj = filter;
body.Token = token;
body.ResolvingResult = isResolvingResult;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
int totalCount = 0;
var result = ApiHelper.GetApiData<T>(body, ref totalCount);
return result;
}
public static bool Save<T>(string url, T t, string token, string tenant = "")
{
string msg = string.Empty;
return Save<T>(url, t, token, ref msg, tenant);
}
public static bool Save<T>(string url, T t, string token, ref string msg, string tenant = "")
{
var body = new ApiBody();
body.SendType = SendType.Post;
body.ApiUrl = url;
body.SendObj = t;
body.Token = token;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
int totalCount = 0;
var result = ApiHelper.GetApiData(body, ref totalCount, ref msg);
return result;
}
/// <summary>
/// 执行某个接口
/// </summary>
/// <param name="url"></param>
/// <param name="filter"></param>
/// <returns></returns>
public static bool Do(string url, BaseFilter filter, string token, SendType type = SendType.Post, string tenant = "")
{
string ms = string.Empty;
return Do(url, filter, token, ref ms, type, tenant);
}
public static bool Do(string url, BaseFilter filter, string token, ref string msg, SendType type = SendType.Post, string tenant = "")
{
var body = new ApiBody();
body.SendType = type;
body.ApiUrl = url;
body.SendObj = filter;
body.Token = token;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
int totalCount = 0;
var result = ApiHelper.GetApiData(body, ref totalCount, ref msg);
return result;
}
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <param name="id"></param>
/// <returns></returns>
public static bool Delete(string url, string id, string token, string tenant = "")
{
var body = new ApiBody();
body.SendType = SendType.Get;
body.ApiUrl = url;
body.Token = token;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
IDictionary<string, object> parameters = new Dictionary<string, object>();
body.Params = parameters;
parameters.Add("id", id);
int totalCount = 0;
var result = ApiHelper.GetApiData(body, ref totalCount);
return result;
}
public static bool BatchDelete<T>(string url, string[] id, string token, string tenant = "")
{
var body = new ApiBody();
var sendStr = string.Join(",", id);
body.SendType = SendType.Get;
body.ApiUrl = url;
body.Token = token;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
IDictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("ids", sendStr);
body.Params = parameters;
int totalCount = 0;
var result = ApiHelper.GetApiData(body, ref totalCount);
return result;
}
public static List<T> List<T>(string url, BaseFilter filter, string token,
SendType type = SendType.Post, string tenant = "")
{
int totalCount = 0;
return List<T>(url, filter, ref totalCount, token, type, tenant);
}
public static List<T> List<T>(string url, BaseFilter filter, ref int totalCount,
string token, SendType type = SendType.Post, string tenant = "")
{
var body = new ApiBody();
body.SendType = type;
body.ApiUrl = url;
body.SendObj = filter;
body.Token = token;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
var result = ApiHelper.GetApiData<List<T>>(body, ref totalCount);
return result;
}
public static PagedList<T> PageList<T>(string url, BasePageFilter filter,
string token, SendType type = SendType.Post, string tenant = "")
{
var startIndex = filter.PageIndex > 0 ? filter.PageIndex : filter.Start / filter.Limit + 1;
var body = new ApiBody();
body.SendType = type;
body.ApiUrl = url;
body.SendObj = filter;
body.Token = token;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
int totalCount = 0;
var result = ApiHelper.GetApiData<List<T>>(body, ref totalCount);
PagedList<T> pageList = null;
if (result != null)
pageList = new PagedList<T>(result, startIndex, filter.Limit, totalCount);
return pageList;
}
/// <summary>
/// 通过过滤条件获取一条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <param name="filter"></param>
/// <returns></returns>
public static T Execute<T>(string url, object sendObj, string token,
SendType type = SendType.Post, IDictionary<string, string> headParams = null,
bool isResolvingResult = false, string tenant = "")
{
var body = new ApiBody();
body.SendType = type;
body.ApiUrl = url;
body.SendObj = sendObj;
body.Token = token;
body.HeadParams = headParams;
body.ResolvingResult = isResolvingResult;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
int totalCount = 0;
var result = ApiHelper.GetApiData<T>(body, ref totalCount);
return result;
}
/// <summary>
/// 获取二进制图片
/// </summary>
/// <param name="url"></param>
/// <param name="sendObj"></param>
/// <param name="token"></param>
/// <param name="type"></param>
/// <param name="headParams"></param>
/// <param name="isResolvingResult"></param>
/// <param name="tenant"></param>
/// <returns></returns>
public static byte[] GetPicture(string url, object sendObj, string token,
SendType type = SendType.Post, IDictionary<string, string> headParams = null,
bool isResolvingResult = false, string tenant = "")
{
var body = new ApiBody();
body.SendType = type;
body.ApiUrl = url;
body.SendObj = sendObj;
body.Token = token;
body.HeadParams = headParams;
body.ResolvingResult = isResolvingResult;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
var result = ApiHelper.ApiPicture(body);
return result;
}
/// <summary>
/// isResolvingResult=true
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <param name="sendObj"></param>
/// <param name="token"></param>
/// <param name="type"></param>
/// <param name="headParams"></param>
/// <returns></returns>
public static T ExecuteByResolving<T>(string url, object sendObj, string token, SendType type = SendType.Post,
IDictionary<string, string> headParams = null, string tenant = "")
{
return Execute<T>(url, sendObj, token, type, headParams, true, tenant);
}
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <param name="bodyParams"></param>
/// <param name="token"></param>
/// <param name="type"></param>
/// <param name="headParams"></param>
/// <param name="isResolvingResult"></param>
/// <returns></returns>
public static T Execute<T>(string url, IDictionary<string, object> bodyParams,
string token, SendType type = SendType.Post, IDictionary<string, string> headParams = null,
bool isResolvingResult = false, string tenant = "")
{
var body = new ApiBody();
body.SendType = type;
body.ApiUrl = url;
body.Params = bodyParams;
body.HeadParams = headParams;
body.ResolvingResult = isResolvingResult;
body.Token = token;
if (!string.IsNullOrEmpty(tenant))
body.HeadParams.Add("Tenant", tenant);
int totalCount = 0;
var result = ApiHelper.GetApiData<T>(body, ref totalCount);
return result;
}
/// <summary>
/// isResolvingResult=true
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <param name="bodyParams"></param>
/// <param name="token"></param>
/// <param name="type"></param>
/// <param name="headParams"></param>
/// <returns></returns>
public static T ExecuteByResolving<T>(string url, IDictionary<string, object> bodyParams,
string token, SendType type = SendType.Post, IDictionary<string, string> headParams = null, string tenant = "")
{
return Execute<T>(url, bodyParams, token, type, headParams, true, tenant);
}
}
}