using System; using System.Collections.Generic; using System.Linq; using System.Text; using Nancy; using Nancy.Json; using POSV.Common.Transport; using POSV.Common.Util; using POSV.Entity; using POSV.Service.Utils; namespace POSV.Service.Module { public class SaleClearModule : NancyModule { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); public SaleClearModule():base("/api/v1") { StaticConfiguration.DisableErrorTraces = true; //请求沽清列表数据,用于POS系统启动后初始化 Post["/sale/clear"] = r => { return AvailableSaleClear(); }; Post["/sale/clear/list"] = r => { //解析JSON请求参数 var body = Context.Request.Body; int length = (int)body.Length; byte[] array = new byte[length]; body.Read(array , 0 , length); var json = System.Text.Encoding.UTF8.GetString(array); var obj = JSON.Deserialize>(json); var dateTimer = obj["date"]; return GetSaleClearList(dateTimer); }; Post["/sale/clear/change"] = r => { //解析JSON请求参数 var body = Context.Request.Body; int length = (int)body.Length; byte[] array = new byte[length]; body.Read(array , 0 , length); var json = System.Text.Encoding.UTF8.GetString(array); return ChangeSaleClear(json); }; } private Response ChangeSaleClear(string json) { var transport = new TransportResponse(); transport.Status = 0; transport.Message = "执行失败"; transport.Data = null; try { //收到收银端请求变更对象 var saleClear = JSON.Deserialize(json); //变更服务中心缓存数据 SaleClearUtils.Instance.Maps[saleClear.ProductId] = saleClear; transport.Status = 1; transport.Message = "执行成功"; transport.Data = saleClear; } catch (Exception ex) { logger.Error(ex , "获取沽清数据异常"); } //logger.Info(JSON.Serialize(transport)); return Response.AsJson(transport); } private Response GetSaleClearList(string dateTimer = null) { var transport = new TransportResponse>(); transport.Status = 0; transport.Message = "执行失败"; transport.Data = new List(); try { var result = SaleClearUtils.Instance.GetSaleClearList(dateTimer); if (result.Item1) { transport.Status = 1; transport.Message = "执行成功"; transport.Data = result.Item3; } } catch (Exception ex) { logger.Error(ex , "获取沽清数据异常"); } //logger.Info(JSON.Serialize(transport)); return Response.AsJson(transport); } /// /// 获取当日及未来的可用沽清 /// /// /// private Response AvailableSaleClear() { var result = new TransportResponse>(); result.Status = 0; result.Message = "执行异常"; result.Data = new List(); try { result.Status = 1; result.Message = "执行成功"; result.Data = SaleClearUtils.Instance.Maps.Values.ToList(); } catch (Exception ex) { logger.Error(ex , "获取沽清数据异常"); } //logger.Info(JSON.Serialize(result)); return Response.AsJson(result); } } }