|
|
|
|
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<Dictionary<string , string>>(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<SaleClear>();
|
|
|
|
|
transport.Status = 0;
|
|
|
|
|
transport.Message = "执行失败";
|
|
|
|
|
transport.Data = null;
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
//收到收银端请求变更对象
|
|
|
|
|
var saleClear = JSON.Deserialize<SaleClear>(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<List<SaleClear>>();
|
|
|
|
|
transport.Status = 0;
|
|
|
|
|
transport.Message = "执行失败";
|
|
|
|
|
transport.Data = new List<SaleClear>();
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取当日及未来的可用沽清
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="r"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
private Response AvailableSaleClear()
|
|
|
|
|
{
|
|
|
|
|
var result = new TransportResponse<List<SaleClear>>();
|
|
|
|
|
result.Status = 0;
|
|
|
|
|
result.Message = "执行异常";
|
|
|
|
|
result.Data = new List<SaleClear>();
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|