|
- using Models;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using ProductionControl.Utils;
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
-
- namespace ProductionControl
- {
- public class WebService
- {
- private HttpListener svcHttpListener;
- public Action<WarningEnum, string> LogEvent;
-
- Service.OrderService svcOrder = new Service.OrderService();
- private void logEvent(string msg, WarningEnum warn = WarningEnum.Normal)
- {
- LogEvent?.Invoke(warn,msg);
- }
- public void start()
- {
- try
- {
- if (Config.LocalHttpPort > 0)
- {
- //logEvent("Web服务启动...");
- this.svcHttpListener = new HttpListener();
- List<string> lstIp = HttpUtil.getLocalIPList();
- //logEvent($"Web服务已启动,运行于端口:{Config.LocalHttpPort.ToString()}, 监听Ip:{string.Join("|", lstIp)}");
- //if (!string.IsNullOrWhiteSpace(Config.LocalIp) && lstIp.FindIndex(m => m.Contains(Config.LocalIp)) >= 0)//没指定IP/指定的不对
- //{
- // lstIp.Clear();
- // lstIp.Add(Config.LocalIp);
- //}
- //lstIp.Clear();
- if (lstIp.Count < 1)
- {
- lstIp.Add(Config.LocalIp);
- lstIp.Add("127.0.0.1");
- }
- logEvent($"Web服务已启动,运行于端口:{Config.LocalHttpPort.ToString()}, 监听Ip:{string.Join("|", lstIp)}");
- for (int i = 0; i < lstIp.Count; i++)
- this.svcHttpListener.Prefixes.Add("http://" + lstIp[i] + ":" + Config.LocalHttpPort.ToString() + "/");
-
- this.svcHttpListener.Start();
- //logEvent($"Web服务已启动,运行于端口:{Config.LocalHttpPort.ToString()}, 监听Ip:{string.Join("|", lstIp)}");
- //this.svcHttpListener.GetContext().Response.AppendHeader("Access-Control-Allow-Origin", "*");//后台跨域请求,通常设置为配置文件
- //this.svcHttpListener.GetContext().Response.AppendHeader("Access-Control-Allow-Credentials", "true"); //后台跨域请求
- this.svcHttpListener.BeginGetContext(new AsyncCallback(this.GetContextCallBack), this.svcHttpListener);
- }
- //------WEB Socket
- //if (Config.localIp != "" && Config.localSocketPort > 0)
- //{
- // logEvent( "WebSocket服务启动...");
- // this.wssv = new WebSocketServer(Config.localSocketPort);
- // this.wssv.AddWebSocketService<Socket1>("/socket1");
- // this.wssv.Start();
- // logEvent( "WebSocket服务已启动。");
- //}
- }
- catch (Exception ex)
- {
- logEvent("Web服务启动失败,ex="+ex.Message);
- }
- }
- public void stop()
- {
- logEvent( "正在停止WEB服务...");
- try
- {
- if (this.svcHttpListener != null && this.svcHttpListener.IsListening)
- {
- this.svcHttpListener.Stop();
- this.svcHttpListener.Close();
- this.logEvent("Web服务已停止!");
- }
- //if (this.svcWebSocket != null && this.svcWebSocket.IsListening)
- //{
- // this.svcWebSocket.Stop();
- // this.svcWebSocket = null;
- // this.AddTextEvent("WebSocket", "WebSocket服务已停止!");
- //}
- }
- catch (Exception ex)
- {
- logEvent("Web服务停止失败,ex=" + ex.Message);
- }
- }
-
- //
- private void GetContextCallBack(IAsyncResult ar)
- {
- this.svcHttpListener = (ar.AsyncState as HttpListener);
- HttpListenerContext httpListenerContext;
- try
- {
- httpListenerContext = this.svcHttpListener.EndGetContext(ar);
- //httpListenerContext.Response.AppendHeader("Access-Control-Allow-Origin", "*");//后台跨域请求,通常设置为配置文件
- //httpListenerContext.Response.AppendHeader("Access-Control-Allow-Credentials", "true"); //后台跨域请求
- //httpListenerContext.Response.AppendHeader("Access-Control-Allow-Methods", "GET,POST");
- httpListenerContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
- httpListenerContext.Response.AddHeader("Access-Control-Allow-Headers", "*");
- httpListenerContext.Response.AddHeader("Access-Control-Allow-Methods", "*");
-
- this.svcHttpListener.BeginGetContext(new AsyncCallback(this.GetContextCallBack), this.svcHttpListener);
- }
- catch (Exception ex)
- {
- logEvent( "ex:" + ex.StackTrace);
- return;
- }
-
- //
- string sessionId = Convert.ToInt32(DateTime.Now.ToString("mmssfff")).ToString();//.ToString("X");
- string reqHttpMethod = httpListenerContext.Request.HttpMethod;
- string reqUrl = httpListenerContext.Request.RawUrl;
- string reqData = "";
- try
- {
- this.logEvent( $"{sessionId} / 收到请求:{reqHttpMethod} To Url:{reqUrl}");
- reqData = HttpUtil.getPostData(httpListenerContext.Request);
- this.logEvent( $"{sessionId} / 请求数据:{reqData}");
- var subUrls = reqUrl.Trim(new char[] { '/' }).Split(new char[] { '/' });
- if (subUrls[0].ToLower() == "static")
- {
- #region
- //string InputStream = ""; //上传的数据
- //using (var streamReader = new StreamReader(httpListenerContext.Request.InputStream))
- // InputStream = streamReader.ReadToEnd();
-
- string filePath = Config.appBasePath;
- foreach (var sub in subUrls)
- filePath += "\\" + sub;
- if (!File.Exists(filePath)) filePath = filePath + "\\index.html";
- if (!File.Exists(filePath))
- {
- httpListenerContext.Response.ContentLength64 = 0;
- httpListenerContext.Response.StatusCode = 404;
- httpListenerContext.Response.Abort();
- }
- else
- {
- httpListenerContext.Response.StatusCode = 200;
- string exeName = Path.GetExtension(filePath);
- httpListenerContext.Response.ContentType = HttpUtil.GetContentType(exeName);
- FileStream fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
- int byteLength = (int)fileStream.Length;
- byte[] fileBytes = new byte[byteLength];
- fileStream.Read(fileBytes, 0, byteLength);
- fileStream.Close();
- fileStream.Dispose();
- httpListenerContext.Response.ContentLength64 = byteLength;
- httpListenerContext.Response.OutputStream.Write(fileBytes, 0, byteLength);
- //httpListenerContext.Response.OutputStream.Close();
- }
- #endregion
- return;
- }
-
- if (reqData == null)
- throw new Exception("请求数据不可为空!");
- httpListenerContext.Response.StatusCode = 200;
-
- JObject joReqData = JObject.Parse(reqData);
- string respText;
- JObject result = new JObject();
- string sourceSessionId;
- switch (subUrls[0].ToLower())
- {
- case "static": //上面已处理
- break;
- case "test":
- HttpUtil.writeToHttpContext_text(httpListenerContext.Response, "测试回应!");
- break;
- case "api":
- switch (subUrls[1].ToLower())
- {
- case "query_table":
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = getTableList(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ?respText.Substring(0,30):respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- case "update_table"://insert+update
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = updateTableList(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ?respText.Substring(0,30):respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- case "delete_table":
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = delTableList(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ? respText.Substring(0, 30) : respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- case "getreport_qualified":
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = getReport_Qualified(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ? respText.Substring(0, 30) : respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- case "getchart_qualified_rate"://图表:日月季年 合格率
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = GetChart_Qualified_Rate(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ? respText.Substring(0, 30) : respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- case "getchart_qualified_date"://图表:合格率分析
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = GetChart_Qualified_Date(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ? respText.Substring(0, 30) : respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- case "getchart_defects_date"://图表:按日期统计各缺陷数
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = GetReport_Defects_Date(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ? respText.Substring(0, 30) : respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- case "getchart_defects_total"://图表:缺陷总数
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = GetReport_Defects_Total(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ? respText.Substring(0, 30) : respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- //修复台
- case "get_defect_from_sn"://读取缺陷文件名列表和JSON数组
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = getDefectFromSN(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回:{(respText.Length > 30 ? respText.Substring(0, 30) : respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- case "get_defect_pic"://读取缺陷文件base64
- #region
- //if (httpListenerContext.Request.HttpMethod != "POST")
- // goto case "http_error";
-
- result = getDefectBmpBase64(joReqData);
- respText = JsonConvert.SerializeObject(result);
- this.logEvent($"{sessionId} / 返回BaseLen:{(respText.Length > 30 ? respText.Substring(0, 30) : respText)}");
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- this.logEvent($"{sessionId} / http返回时连接已断开!");
- #endregion
- break;
- default:
- HttpUtil.writeToHttpContext_text(httpListenerContext.Response, "未知请求!");
- break;
- }
- break;
- case "http_error":
- result.Add("code", -1);
- result.Add("msg", "不支持的请求协议!");
- respText = JsonConvert.SerializeObject(result);
- this.logEvent( $"{sessionId} / 返回:{respText}" );
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- {
- this.logEvent( $"{sessionId} / http返回时连接已断开!" );
- //this.logEvent( id + " /http连接已断开," + (string.IsNullOrWhiteSpace(callback_url) ? "无法返回结果!" : "通过回调返回" + callback_url), 1);
- //if (callback_url != null && callback_url != "")
- // HttpUtil.post(callback_url, respText);
- }
- break;
- case "url_error":
- result.Add("code", -2);
- result.Add("msg", "URL地址错误!");
- respText = JsonConvert.SerializeObject(result);
- this.logEvent( $"{sessionId} / 返回:{respText}" );
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- {
- this.logEvent( $"{sessionId} / http返回时连接已断开!" );
- //this.logEvent( id + " /http连接已断开," + (string.IsNullOrWhiteSpace(callback_url) ? "无法返回结果!" : "通过回调返回" + callback_url), 1);
- //if (callback_url != null && callback_url != "")
- // HttpUtil.post(callback_url, respText);
- }
- break;
- case "param_error":
- result.Add("code", -3);
- result.Add("msg", "参数错误!");
- respText = JsonConvert.SerializeObject(result);
- this.logEvent( $"{sessionId} / 返回:{respText}" );
- if (!HttpUtil.writeToHttpContext_json(httpListenerContext.Response, respText))
- {
- this.logEvent( $"{sessionId} / http返回时连接已断开!" );
- //this.logEvent( id + " /http连接已断开," + (string.IsNullOrWhiteSpace(callback_url) ? "无法返回结果!" : "通过回调返回" + callback_url), 1);
- //if (callback_url != null && callback_url != "")
- // HttpUtil.post(callback_url, respText);
- }
- break;
- default:
- HttpUtil.writeToHttpContext_text(httpListenerContext.Response, "未知请求!");
- break;
- }
- }
- catch (Exception ex)
- {
- this.logEvent( $"{sessionId} / 异常:{ex.Message}\r\n{ex.StackTrace}" );
- httpListenerContext.Response.StatusCode = 500;
- }
- finally
- {
- try
- {
- httpListenerContext.Response.OutputStream.Close();//客户端断开时会异常
- }
- catch { }
- }
- }
-
- //----
- private JObject getTableList(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string model, fields = "", domain = "", order = "";
- int pageNum = 0, pageSize = 0, totalCount = 0;
-
- model = req.Value<string>("model");
- if (req.ContainsKey("fields")) fields = req.Value<string>("fields");
- if (req.ContainsKey("domain")) domain = req.Value<JArray>("domain").ToString();
- if (req.ContainsKey("order")) order = req.Value<string>("order");
-
- if (req.ContainsKey("pageNum")) pageNum = req.Value<int>("pageNum");
- if (req.ContainsKey("pageSize")) pageSize = req.Value<int>("pageSize");
-
- //创建表达式
- var exp1 = Expressionable.Create<Order>()
- //.AndIF((int)cobProductList.SelectedValue > 0, it => it.ProductId == (int)cobProductList.SelectedValue)
- //.AndIF((int)cobStepList.SelectedValue > 0, it => it.StepId == (int)cobStepList.SelectedValue)
- //.AndIF(dateTimePicker1.Checked, it => it.CreateTime >= dateTimePicker1.Value)
- //.AndIF(dateTimePicker2.Checked, it => it.CreateTime < dateTimePicker2.Value)
- .ToExpression();//注意 这一句 不能少
-
-
- var list = svcOrder.GetList(model, fields, domain, order, pageNum, pageSize, ref totalCount);
- //var list = svcOrder.GetListNav(pageNum, pageSize, ref totalCount, exp1);
- res.Add("code", 200);
- res.Add("data", JArray.FromObject(list));
- res.Add("totalCount", totalCount);
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
- private JObject delTableList(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string model = req.Value<string>("model");
- string domain = req.Value<JArray>("domain").ToString();
- //var idArr = req.Value<JArray>("idList");
- //List<int> ids = new List<int>();
- //foreach (int id in idArr) ids.Add(id);
- int result = svcOrder.DeleteList(model, domain);
- res.Add("code", 200);
- res.Add("data", result);
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
- private JObject updateTableList(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string model = req.Value<string>("model");
- var list = req.Value<JArray>("datas");
- string[] updateColumns = null;
- if (req.ContainsKey("columns"))
- updateColumns = req.Value<JArray>("columns").ToObject<List<string>>().ToArray();
- int result = svcOrder.UpdateableList(model, list.ToString(), updateColumns);
- res.Add("code", 200);
- res.Add("data", result);
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
- private JObject getReport_Qualified(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string domain = "", order = "";
- int pageNum = 0, pageSize = 0, totalCount = 0;
-
- if (req.ContainsKey("domain")) domain = req.Value<JArray>("domain").ToString();
- if (req.ContainsKey("order")) order = req.Value<string>("order");
-
- if (req.ContainsKey("pageNum")) pageNum = req.Value<int>("pageNum");
- if (req.ContainsKey("pageSize")) pageSize = req.Value<int>("pageSize");
-
- //创建表达式
- var list = svcOrder.GetReport_Qualified( domain, order, pageNum, pageSize, ref totalCount);
- res.Add("code", 200);
- res.Add("data", list);
- res.Add("totalCount", totalCount);
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
-
- /// <summary>
- /// 获取缺陷数据
- /// </summary>
- /// <param name="req"></param>
- /// <returns>{文件名:[["4","3.9","-0.8","dk","0.39"],["index","X","Y","缺陷类型","缺陷的置信度"],...]}</returns>
- private JObject getDefectFromSN(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string date = req.Value<string>("date");
- string sn = req.Value<string>("sn");
-
- JObject data = new JObject();
- string path, key;
- string[] files;
-
- //文件名格式:$"Size_SN{order.SN}_I{res.index}_X{res.Defects_X}_Y{res.Defects_Y}_.....json/bmp
- //--缺陷
- path = $"{Config.Defect_Compress_SavePath}\\{date}\\{sn}\\";
- if (Directory.Exists(path))
- {
- files = Directory.GetFiles(path, $"Defect_SN{sn}_*.json", SearchOption.TopDirectoryOnly);
- //对文件名中的数字(index)进行大小排序
- files = files.OrderBy(s => int.Parse(Path.GetFileNameWithoutExtension(s).Split('_')[2].Substring(1))).ToArray();
- foreach (string file in files)
- {
- key = Path.GetFileNameWithoutExtension(file);
- if (File.Exists(path + key + ".bmp"))
- data.Add(key, JArray.Parse(File.ReadAllText(file)));
- }
- }
- //--比对
- path = $"{Config.SizeBmp_Zoom_Image_SavePath}\\{date}\\{sn}\\";
- if (Directory.Exists(path))
- {
- files = Directory.GetFiles(path, $"Size_SN{sn}_*.json", SearchOption.TopDirectoryOnly);
- //对文件名中的数字(index)进行大小排序
- files = files.OrderBy(s => int.Parse(Path.GetFileNameWithoutExtension(s).Split('_')[2].Substring(1))).ToArray();
- foreach (string file in files)
- {
- key = Path.GetFileNameWithoutExtension(file);
- if (File.Exists(path + key + ".bmp"))
- data.Add(key, JArray.Parse(File.ReadAllText(file)));
- }
- }
-
- res.Add("code", 200);
- res.Add("data", data);
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
- private JObject getDefectBmpBase64(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string date = req.Value<string>("date");
- string sn = req.Value<string>("sn");
- string file_name = req.Value<string>("file_name");
-
- string file_path;
- //--缺陷
- if (file_name.ToLower().IndexOf("defect") == 0)
- {
- file_path = $"{Config.Defect_Compress_SavePath}\\{date}\\{sn}\\{file_name}.bmp";
- if (!File.Exists(file_path))
- throw new Exception(file_name + " 缺陷文件不存在!");
-
- res.Add("code", 200);
- res.Add("data", Convert.ToBase64String(File.ReadAllBytes(file_path)));
- }
- //--比对
- else if (file_name.ToLower().IndexOf("size") == 0)
- {
- file_path = $"{Config.SizeBmp_Zoom_Image_SavePath}\\{date}\\{sn}\\{file_name}.bmp";
- if (!File.Exists(file_path))
- throw new Exception(file_name + " 比对文件不存在!");
-
- res.Add("code", 200);
- res.Add("data", Convert.ToBase64String(File.ReadAllBytes(file_path)));
- }
- else
- throw new Exception($"文件类型错误:file_name={file_name}");
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
-
- private JObject GetChart_Qualified_Rate(JObject req)
- {
- JObject res = new JObject();
- try
- {
- var list = svcOrder.GetReport_Qualified_Total();
- res.Add("code", 200);
- res.Add("data", JArray.FromObject(list));
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
- private JObject GetReport_Defects_Date(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string domain = "", order = "";
- int pageNum = 0, pageSize = 0, totalCount = 0;
-
- if (req.ContainsKey("domain")) domain = req.Value<JArray>("domain").ToString();
- if (req.ContainsKey("order")) order = req.Value<string>("order");
-
- if (req.ContainsKey("pageNum")) pageNum = req.Value<int>("pageNum");
- if (req.ContainsKey("pageSize")) pageSize = req.Value<int>("pageSize");
-
- //创建表达式
- var list = svcOrder.GetReport_Defects_Date(domain, order, pageNum, pageSize, ref totalCount);
- res.Add("code", 200);
- res.Add("data", list);
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
- private JObject GetReport_Defects_Total(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string domain = "", order = "";
- if (req.ContainsKey("domain")) domain = req.Value<JArray>("domain").ToString();
-
- var list = svcOrder.GetReport_Defects_Total(domain);
- res.Add("code", 200);
- res.Add("data", list);
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
- private JObject GetChart_Qualified_Date(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string domain = "", order = "";
- int pageNum = 0, pageSize = 0, totalCount = 0;
-
- if (req.ContainsKey("domain")) domain = req.Value<JArray>("domain").ToString();
- if (req.ContainsKey("order")) order = req.Value<string>("order");
-
- if (req.ContainsKey("pageNum")) pageNum = req.Value<int>("pageNum");
- if (req.ContainsKey("pageSize")) pageSize = req.Value<int>("pageSize");
-
- //创建表达式
- var list = svcOrder.GetReport_Qualified_Date( domain, order, pageNum, pageSize, ref totalCount);
- res.Add("code", 200);
- res.Add("data", list);
- res.Add("totalCount", totalCount);
- }
- catch (Exception ex)
- {
- res.Add("code", -9);
- res.Add("data", ex.Message);
- }
- return res;
- }
- }
- }
|