323 lines
12 KiB
C#
323 lines
12 KiB
C#
using FineUIPro;
|
|
using Model;
|
|
using Newtonsoft.Json;
|
|
using Quartz;
|
|
using RestSharp;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
|
|
namespace BLL
|
|
{
|
|
|
|
public static class InterFaceTaskService
|
|
{
|
|
public static Model.SGGLDB db = Funs.DB;
|
|
|
|
|
|
#region 获取列表
|
|
/// <summary>
|
|
/// 记录数
|
|
/// </summary>
|
|
public static int count
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public static List<Model.InterFaceTask> GetInterFaceTaskByModle(Model.InterFaceTask table)
|
|
{
|
|
var q= from x in db.InterFaceTask
|
|
where
|
|
( string.IsNullOrEmpty(table.InterFaceTaskId)||x.InterFaceTaskId.Contains(table.InterFaceTaskId)) &&
|
|
( string.IsNullOrEmpty(table.InterFaceName)||x.InterFaceName.Contains(table.InterFaceName)) &&
|
|
( string.IsNullOrEmpty(table.InterFaceSetLists)||x.InterFaceSetLists.Contains(table.InterFaceSetLists)) &&
|
|
( string.IsNullOrEmpty(table.Frequency)||x.Frequency.Contains(table.Frequency)) &&
|
|
(table.Enable ==null|| x.Enable==table.Enable)
|
|
select x
|
|
;
|
|
|
|
return q.ToList();
|
|
}
|
|
|
|
/// 获取分页列表
|
|
/// </summary>
|
|
/// <param name="PageIndex">页码</param>
|
|
/// <param name="PageSize">每页数量</param>
|
|
/// <returns></returns>
|
|
public static IEnumerable getListData(Model.InterFaceTask table, Grid Grid1)
|
|
{
|
|
var q= GetInterFaceTaskByModle(table);
|
|
count = q.Count();
|
|
if (count == 0)
|
|
{
|
|
return null;
|
|
}
|
|
// q= q.Take(Grid1.PageSize * Grid1.PageIndex).Skip(Grid1.PageSize * (Grid1.PageIndex)).ToList();
|
|
// q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
|
|
return from x in q
|
|
select new
|
|
{
|
|
x.InterFaceTaskId,
|
|
x.InterFaceName,
|
|
x.InterFaceSetLists,
|
|
x.Frequency,
|
|
x.CreateTime,
|
|
x.Enable,
|
|
|
|
};
|
|
}
|
|
#endregion
|
|
|
|
public static Model.InterFaceTask GetInterFaceTaskById(string InterFaceTaskId)
|
|
{
|
|
return db.InterFaceTask.FirstOrDefault(x=>x.InterFaceTaskId==InterFaceTaskId);
|
|
}
|
|
public static void AddInterFaceTask(Model.InterFaceTask newtable)
|
|
{
|
|
|
|
Model.InterFaceTask table = new Model.InterFaceTask{
|
|
InterFaceTaskId=newtable.InterFaceTaskId,
|
|
InterFaceName=newtable.InterFaceName,
|
|
InterFaceSetLists=newtable.InterFaceSetLists,
|
|
Frequency=newtable.Frequency,
|
|
CreateTime=newtable.CreateTime,
|
|
Enable=newtable.Enable,
|
|
};
|
|
db.InterFaceTask.InsertOnSubmit(table);
|
|
db.SubmitChanges();
|
|
}
|
|
|
|
|
|
public static void UpdateInterFaceTask(Model.InterFaceTask newtable)
|
|
{
|
|
|
|
Model.InterFaceTask table = db.InterFaceTask.FirstOrDefault(x=>x.InterFaceTaskId==newtable.InterFaceTaskId);
|
|
if (table != null)
|
|
{
|
|
table.InterFaceTaskId=newtable.InterFaceTaskId;
|
|
table.InterFaceName=newtable.InterFaceName;
|
|
table.InterFaceSetLists=newtable.InterFaceSetLists;
|
|
table.Frequency=newtable.Frequency;
|
|
table.CreateTime=newtable.CreateTime;
|
|
table.Enable=newtable.Enable;
|
|
db.SubmitChanges();
|
|
}
|
|
|
|
}
|
|
public static void DeleteInterFaceTaskById (string InterFaceTaskId)
|
|
{
|
|
|
|
Model.InterFaceTask table =db.InterFaceTask.FirstOrDefault(x=>x.InterFaceTaskId==InterFaceTaskId);
|
|
if (table != null)
|
|
{
|
|
db.InterFaceTask.DeleteOnSubmit(table);
|
|
db.SubmitChanges();
|
|
}
|
|
|
|
}
|
|
#region 执行任务
|
|
public static void ExecuteTasks(string InterFaceTaskId)
|
|
{
|
|
|
|
var model = GetInterFaceTaskById(InterFaceTaskId);
|
|
var InterFaceSetlIds = model.InterFaceSetLists.Split(',');
|
|
foreach (var item in InterFaceSetlIds)
|
|
{
|
|
ExecuteTasksByInterFaceSetlId(item);
|
|
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 执行接口
|
|
/// </summary>
|
|
/// <param name="InterFaceSetlId">接口id </param>
|
|
public static void ExecuteTasksByInterFaceSetlId(string InterFaceSetlId)
|
|
{
|
|
var InterfaceSetModel = InterFaceSetService.GetInterFaceSetById(InterFaceSetlId);
|
|
if (InterfaceSetModel == null)
|
|
{
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
|
|
var sourseData = GetSourseData(InterfaceSetModel.InterFaceUrl, InterfaceSetModel.UrlReqMethod);
|
|
bool sourseisSuccess = false;
|
|
if (sourseData.code == 1)
|
|
{
|
|
sourseisSuccess = true;
|
|
}
|
|
InterFaceLogService.WriteInterFaceLog(InterFaceSetlId, "", JsonConvert.SerializeObject(sourseData), InterFaceLogService.Type1, sourseisSuccess);
|
|
if (sourseData.code == 0)
|
|
{
|
|
return;
|
|
}
|
|
var TargetData = GetTargetData(InterfaceSetModel.InterFaceForUrl, sourseData, InterfaceSetModel.ForUrlReqMethod);
|
|
|
|
bool TargetisSuccess = false;
|
|
if (TargetData.code == 1)
|
|
{
|
|
TargetisSuccess = true;
|
|
}
|
|
InterFaceLogService.WriteInterFaceLog(InterFaceSetlId, JsonConvert.SerializeObject(sourseData.data), JsonConvert.SerializeObject(TargetData), InterFaceLogService.Type2, TargetisSuccess);
|
|
|
|
if (TargetData.code == 0 || InterfaceSetModel.IsCallBack == false)
|
|
{
|
|
return;
|
|
}
|
|
var callbackData = ExecuteCallBack(InterfaceSetModel.InterFaceCallBackUrl, sourseData, InterfaceSetModel.CallBackUrlReqMethod);
|
|
|
|
bool CallBackisSuccess = false;
|
|
if (TargetData.code == 1)
|
|
{
|
|
CallBackisSuccess = true;
|
|
}
|
|
InterFaceLogService.WriteInterFaceLog(InterFaceSetlId, JsonConvert.SerializeObject(sourseData.data), JsonConvert.SerializeObject(callbackData), InterFaceLogService.Type3, CallBackisSuccess);
|
|
|
|
}
|
|
catch (Exception ex )
|
|
{
|
|
Model.InterFaceLog interFaceLog=new InterFaceLog();
|
|
interFaceLog.InterFaceLogId=Guid.NewGuid().ToString();
|
|
interFaceLog.InterFaceType = "异常";
|
|
interFaceLog.LogSate = false;
|
|
interFaceLog.InterFaceLogDate= DateTime.Now;
|
|
interFaceLog.InterFaceName = InterfaceSetModel.InterFaceName;
|
|
interFaceLog.InterFaceReturnData = ex.ToString();
|
|
InterFaceLogService.AddInterFaceLog(interFaceLog);
|
|
}
|
|
|
|
}
|
|
public static Model.ReturnData GetSourseData(string baseurl,string ReqMethod)
|
|
{
|
|
Model.ReturnData returnData = new ReturnData();
|
|
string token = "C4A62EC0-E5D3-4EBF-A5FA-E56AA89633C0";
|
|
string Content = "";
|
|
switch (ReqMethod)
|
|
{
|
|
case "Get":
|
|
Content = Funs.RequestGet(baseurl, token);
|
|
break;
|
|
case "Post":
|
|
Content = Funs.RequestPost(baseurl, token, "");
|
|
break;
|
|
}
|
|
//var client = new RestClient(baseurl);
|
|
//client.Timeout = -1;
|
|
//var request = new RestRequest(Method.POST);
|
|
//request.AddHeader("token", "AF17168B-87BD-4GLY-1111-F0A0A1158F9B");
|
|
//IRestResponse response = client.Execute(request);
|
|
//Console.WriteLine(response.Content);
|
|
try
|
|
{
|
|
returnData = JsonConvert.DeserializeObject<Model.ReturnData>(Content);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
returnData.code = 0;
|
|
returnData.message = "获取数据失败:" + Content;
|
|
}
|
|
|
|
|
|
return returnData;
|
|
}
|
|
public static Model.ResponeData GetTargetData(string baseurl, ReturnData DataInput, string ReqMethod)
|
|
{
|
|
Model.ResponeData responeData = new ResponeData();
|
|
if (DataInput.code == 1)
|
|
{
|
|
|
|
string token = DataInput.token;
|
|
string returnContent = "";
|
|
switch (ReqMethod)
|
|
{
|
|
case "Get":
|
|
returnContent = Funs.RequestGet(baseurl, token);
|
|
break;
|
|
case "Post":
|
|
returnContent = Funs.RequestPost(baseurl, token, JsonConvert.SerializeObject(DataInput.data));
|
|
break;
|
|
}
|
|
//var client = new RestClient(baseurl);
|
|
//client.Timeout = -1;
|
|
//if (isPost)
|
|
//{
|
|
// var request = new RestRequest(Method.POST);
|
|
// request.AddHeader("token", DataInput.token);
|
|
// request.AddJsonBody(JsonConvert.SerializeObject(DataInput.data));
|
|
// IRestResponse response = client.Execute(request);
|
|
// returnContent = response.Content;
|
|
|
|
//}
|
|
//else
|
|
//{
|
|
// var request = new RestRequest(Method.GET);
|
|
// request.AddHeader("token", DataInput.token);
|
|
// IRestResponse response = client.Execute(request);
|
|
// returnContent = response.Content;
|
|
|
|
//}
|
|
try
|
|
{
|
|
responeData = JsonConvert.DeserializeObject<Model.ResponeData>(returnContent);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
responeData.code = 0;
|
|
responeData.message = "推送数据失败:" + returnContent;
|
|
|
|
}
|
|
return responeData;
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
return responeData;
|
|
}
|
|
public static ReturnData ExecuteCallBack(string baseurl, ReturnData DataInput,string ReqMethod)
|
|
{
|
|
Model.ReturnData returnData = new ReturnData();
|
|
if (DataInput.code == 1)
|
|
{
|
|
string token = "AF17168B-87BD-4GLY-1111-F0A0A1158F9B";
|
|
string Content = "";
|
|
switch (ReqMethod)
|
|
{
|
|
case "Get":
|
|
Content = Funs.RequestGet(baseurl, token);
|
|
break;
|
|
case "Post":
|
|
Content = Funs.RequestPost(baseurl, token, JsonConvert.SerializeObject(DataInput.data));
|
|
break;
|
|
}
|
|
|
|
//var client = new RestClient(baseurl);
|
|
//client.Timeout = -1;
|
|
//var request = new RestRequest(Method.POST);
|
|
//request.AddHeader("token", "AF17168B-87BD-4GLY-1111-F0A0A1158F9B");
|
|
//request.AddJsonBody(JsonConvert.SerializeObject(DataInput.data));
|
|
//IRestResponse response = client.Execute(request);
|
|
//returnContent = response.Content;
|
|
try
|
|
{
|
|
returnData = JsonConvert.DeserializeObject<Model.ReturnData>(Content);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
returnData.code = 0;
|
|
returnData.message = "回调失败:" + Content;
|
|
|
|
}
|
|
|
|
}
|
|
return returnData;
|
|
}
|
|
#endregion
|
|
|
|
|
|
}
|
|
} |