319 lines
12 KiB
C#
319 lines
12 KiB
C#
|
|
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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|