Files
zszq-trs/YLErpDAL/Modules/ApiModule/StructureInfoApiHelper.cs
T
2024-05-09 14:06:26 +08:00

86 lines
2.7 KiB
C#

using YieldChain.Models;
using YLErp.Configuration;
using YLErp.Helpers;
namespace YLErp.Modules.ApiModule
{
public static class StructureInfoApiHelper
{
static readonly HttpClientWrap _httpClientWrap;
static StructureInfoApiHelper()
{
_httpClientWrap = new HttpClientWrap(PS.Config.ErpElement.ExternalAPIForCustomCalc, PS.Config.ErpElement.ExternalAPIForCustomCalcTimeOut);
}
public static string PostJson(string apiPath, object postData)
{
if (_httpClientWrap.BaseAddress == null)
{
throw new ServiceException("ExternalAPI未配置");
}
try
{
return _httpClientWrap.PostJson(apiPath, postData, null);
}
catch (Exception ex)
{
LogFactory.GetLogger("ExternalAPI-Post").Error(apiPath, ex);
throw;
}
}
/// <summary>
/// 自定义交易结构变更后通知外部系统
/// </summary>
/// <param name="dict"></param>
/// <param name="optType">
/// <para>1:新增</para>
/// <para>2:修改</para>
/// <para>3:删除</para>
/// </param>
/// <returns></returns>
public static ApiResponseModel ChangeEvent(string structureType, List<Structure_Details> fields, int optType)
{
var postData = new Dictionary<string, object>
{
["StructureType"] = structureType,
["Fields"] = fields.Select(O =>
{
var Type = EnumHelper.GetDescriptionByName(O.ColumnType);
Type = Type == "下拉列表" ? "文本" : Type;
return new
{
Name = O.ColumnName,
Type
};
})
};
switch (optType)
{
case 1:
postData["ChangeReason"] = "add";
break;
case 2:
postData["ChangeReason"] = "update";
break;
case 3:
postData["ChangeReason"] = "remove";
break;
default:
throw new Exception("未知的操作类型");
}
var res = PostJson("api/v1/structure/changeStructure", postData);
LogFactory.GetLogger<HttpClientWrap>().Info(res);
ApiResponseModel obj = null;
try
{
obj = JsonHelper.Deserialize<ApiResponseModel>(res);
}
catch { }
return obj ?? new ApiResponseModel();
}
}
}