using ApiTool.Dto;
using LogTool;
using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity;
using WcsMain.DataService;
using WcsMain.WcsAttribute.AutoFacAttribute;
namespace WcsMain.Business.CommonAction;
///
/// 接口响应触发事件
///
[Component]
public class ApiResponseAction(DataBaseData dataBaseData, AppApiRequestDao apiRequestDao)
{
///
/// 当请求其他系统时触发本方法
///
///
public void ApiResponse(ApiResponseInfo responseInfo)
{
try
{
// 写日志
WcsLog.Instance().WriteApiRequestLog(responseInfo.ToString());
// 存库
AppApiRequest insertData = new()
{
RequestId = dataBaseData.GetNewUUID(),
RequestUrl = responseInfo.RequestUrl,
RequestMethod = responseInfo.RequestMethod,
IsSuccess = responseInfo.IsSend ? 1 : 0,
RequestMsg = responseInfo.RequestMsg,
ResponseMsg = responseInfo.ResponseMsg,
RequestTime = responseInfo.RequestTime,
ResponseTime = responseInfo.ResponseTime,
UseTime = responseInfo.UseTime,
ErrMsg = responseInfo.RequestException?.Message,
};
apiRequestDao.Insert(insertData);
}
catch (Exception ex)
{
ConsoleLog.Error($"【异常】写接口日志发生异常,信息:{ex}");
}
}
}