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 | |||
|  | 
 | |||
|  | 
 | |||
|  |     } | |||
|  | } |