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