using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_Core.BaseRepository;
|
using WIDESEAWCS_Core.BaseServices;
|
using WIDESEAWCS_Core.Helper;
|
using WIDESEAWCS_DTO;
|
using WIDESEAWCS_DTO.RGV.FOURBOT;
|
using WIDESEAWCS_IBasicInfoService;
|
using WIDESEAWCS_Model.Models;
|
|
namespace WIDESEAWCS_BasicInfoService
|
{
|
public class ApiInfoService : ServiceBase<Dt_ApiInfo, IRepository<Dt_ApiInfo>>, IApiInfoService
|
{
|
private readonly IInterfaceLogService _interfaceLogService;
|
public ApiInfoService(IRepository<Dt_ApiInfo> BaseDal, IInterfaceLogService interfaceLogService) : base(BaseDal)
|
{
|
_interfaceLogService = interfaceLogService;
|
}
|
|
public IRepository<Dt_ApiInfo> Repository => BaseDal;
|
|
/// <summary>
|
/// Post接口请求
|
/// </summary>
|
/// <param name="apiCode">接口编号</param>
|
/// <param name="requestParameters">请求内容</param>
|
/// <param name="remark">备注</param>
|
/// <param name="isAdd">是否添加日志</param>
|
/// <returns></returns>
|
public WebResponseContent PostInterfaceRequest(string apiCode, string requestParameters, string remark, bool isAdd = true)
|
{
|
WebResponseContent content = new WebResponseContent();
|
string response = string.Empty;
|
Dt_ApiInfo? apiInfo = null;
|
try
|
{
|
apiInfo = BaseDal.QueryFirst(x => x.ApiCode == apiCode) ?? throw new Exception($"未找到{remark}接口配置信息!请检查接口配置");
|
response = HttpHelper.Post(apiInfo.ApiAddress, requestParameters);
|
if (apiInfo.Remark.Contains("四向车"))
|
{
|
FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
|
if (fOURBOTReturn == null) throw new Exception($"{apiInfo.Remark}响应内容转换实体失败!");
|
if (fOURBOTReturn.returnCode != 0) throw new Exception(fOURBOTReturn.returnUserMsg);
|
content.Data = fOURBOTReturn;
|
}
|
else if (apiInfo.Remark.Contains("凯乐士"))
|
{
|
|
}
|
else if (apiInfo.Remark.Contains("海康"))
|
{
|
|
}
|
else if (apiInfo.Remark.Contains("WMS"))
|
{
|
|
}
|
content.OK();
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
finally
|
{
|
if (isAdd && !string.IsNullOrEmpty(response) && apiInfo != null)
|
{
|
Dt_InterfaceLog interfaceLog = new Dt_InterfaceLog()
|
{
|
ApiCode = apiCode,
|
RequestParameters = requestParameters,
|
ApiAddress = apiInfo.ApiAddress,
|
ApiName = apiInfo.ApiName,
|
PushFrequency = 1,
|
PushState = content.Status ? 1 : 2,
|
Requestor = "WCS",
|
Recipient = apiInfo.Remark,
|
ResponseParameters = response,
|
Creater = "System",
|
Remark = content.Status ? remark : content.Message,
|
};
|
_interfaceLogService.Repository.AddData(interfaceLog);
|
}
|
}
|
return content;
|
}
|
}
|
}
|