You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

148 lines
4.3 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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