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.
652 lines
26 KiB
C#
652 lines
26 KiB
C#
using POSV.Entity;
|
|
using POSV.HttpApi;
|
|
using POSV.HttpResponse;
|
|
using POSV.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace POSV.StoreBusiness
|
|
{
|
|
public class StoreBusinessUtils
|
|
{
|
|
|
|
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
|
|
|
protected static Dictionary<string, string> _errorDesc = new Dictionary<string, string>();
|
|
|
|
static StoreBusinessUtils()
|
|
{
|
|
//------------------------------------------------------
|
|
//系统没有定义的错误代码
|
|
_errorDesc.Add("9999", "应答的报文解析异常");
|
|
}
|
|
|
|
#region 保存操作异常日志
|
|
|
|
public static void SaveOperationLog(string operateType,string memo)
|
|
{
|
|
StoreOperationLogEntity entity = new StoreOperationLogEntity();
|
|
var createTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
/// 101登录102退出103交班
|
|
/// 201消单202开钱箱203删菜204更改数量
|
|
/// 301折扣302赠送303议价304取消优惠305免单
|
|
string operateTypeTxt = "";
|
|
switch (operateType) {
|
|
case "101":
|
|
operateTypeTxt = "登录";
|
|
break;
|
|
case "102":
|
|
operateTypeTxt = "退出登录";
|
|
break;
|
|
case "103":
|
|
operateTypeTxt = "交班";
|
|
break;
|
|
case "201":
|
|
operateTypeTxt = "消单";
|
|
break;
|
|
case "202":
|
|
operateTypeTxt = "开钱箱";
|
|
break;
|
|
case "203":
|
|
operateTypeTxt = "删除单品";
|
|
break;
|
|
case "204":
|
|
operateTypeTxt = "更改数量";
|
|
break;
|
|
case "301":
|
|
operateTypeTxt = "折扣";
|
|
break;
|
|
case "302":
|
|
operateTypeTxt = "赠送";
|
|
break;
|
|
case "303":
|
|
operateTypeTxt = "议价";
|
|
break;
|
|
case "304":
|
|
operateTypeTxt = "取消优惠";
|
|
break;
|
|
case "305":
|
|
operateTypeTxt = "免单";
|
|
break;
|
|
default:
|
|
operateTypeTxt = "未知操作";
|
|
break;
|
|
}
|
|
entity.Id = IdWorkerUtils.Instance.NextId();
|
|
entity.TenantId = Global.Instance.Authc.TenantId;
|
|
entity.WorkerNo = Global.Instance.Worker.No;//员工工号
|
|
entity.DeviceName = DeviceUtils.Instance.ComputerName;//设备名称
|
|
entity.DeviceIp = DeviceUtils.Instance.IPAddress;//本地IP地址
|
|
entity.DeviceMac = DeviceUtils.Instance.MacAddress;//本机MAC
|
|
entity.Type = operateType;
|
|
entity.TypeTxt = operateTypeTxt;
|
|
entity.PosNo = Global.Instance.Authc.PosNo;
|
|
entity.OperationTime = createTime;
|
|
entity.StoreId = Global.Instance.Authc.StoreId; //门店ID
|
|
entity.StoreName = Global.Instance.Worker.StoreInfo.Name;//门店名称
|
|
entity.StoreNo = Global.Instance.Authc.StoreNo;//门店编号
|
|
entity.ShiftName = Global.Instance.BusinessPlanLog.Name;//班次编号
|
|
entity.ShiftNo = Global.Instance.BusinessPlanLog.No;//班次名称
|
|
entity.CreateDate = createTime;//创建时间
|
|
entity.CreateUser = Global.Instance.Worker.No;//创建人
|
|
entity.Memo = string.Format("操作员:{0},{1}进行{2}{3}", Global.Instance.Worker.No, createTime, operateTypeTxt,memo);
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
{
|
|
using (var trans = db.GetTransaction())
|
|
{
|
|
db.Insert(entity);
|
|
trans.Complete();
|
|
}
|
|
}
|
|
//设置日志上传为true
|
|
Global.isHaveUpLoadBusLog = true;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 根据员工编号查询员工信息
|
|
public static Worker LocalWorker(string workerNo)
|
|
{
|
|
|
|
List<Worker> lists = new List<Worker>();
|
|
Worker worker = null;
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
{
|
|
|
|
//主单数据
|
|
lists = db.Query<Worker>("where no = @0;", workerNo).ToList();
|
|
}
|
|
if (lists!=null && lists.Count>0) {
|
|
worker = lists[0];
|
|
}
|
|
return worker;
|
|
}
|
|
|
|
#endregion
|
|
#region 本地数据版本
|
|
|
|
public static List<PosServerDataVersion> LocalVersion(){
|
|
|
|
List<PosServerDataVersion> versionList = new List<PosServerDataVersion>();
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
{
|
|
versionList = db.Fetch<PosServerDataVersion>("where tenantId = '"+Global.Instance.Worker.TenantId +"' ");
|
|
}
|
|
return versionList;
|
|
}
|
|
|
|
public static void SaveVersion(List<PosServerDataVersion> versionList)
|
|
{
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
{
|
|
using (var trans = db.GetTransaction())
|
|
{
|
|
string sql = "delete from pos_server_data_version;";
|
|
db.Execute(sql);
|
|
db.InsertBatch(versionList);
|
|
trans.Complete();
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 云参数设置
|
|
|
|
/// <summary>
|
|
/// 云参数设置
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public static Tuple<bool, string, StoreBusinessEntityResponse<StoreYunSetResponse>> StoreYunSet(StoreYunSetRequest request)
|
|
{
|
|
Tuple<bool, string, StoreBusinessEntityResponse<StoreYunSetResponse>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "store.yun.set");
|
|
parameters.Add("storeId", request.StoreId);
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters));
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
//获取成功
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var data = JsonUtils.Deserialize<StoreBusinessEntityResponse<StoreYunSetResponse>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<StoreYunSetResponse>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<StoreYunSetResponse>>(false, data.Message, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<StoreYunSetResponse>>(false, errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "云参数下载异常");
|
|
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<StoreYunSetResponse>>(false, "云参数下载异常,本次操作无效", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
#region 服务器数据版本
|
|
|
|
/// <summary>
|
|
/// 服务器数据版本
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public static Tuple<bool, string, StoreBusinessListResponse<PosServerDataVersionResponse>> PosServerDataVersion(PosServerDataVersionRequest request)
|
|
{
|
|
Tuple<bool, string, StoreBusinessListResponse<PosServerDataVersionResponse>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "pos.serverdataversion.down");
|
|
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters));
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
//获取成功
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var data = JsonUtils.Deserialize<StoreBusinessListResponse<PosServerDataVersionResponse>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<PosServerDataVersionResponse>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<PosServerDataVersionResponse>>(false, data.Message, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<PosServerDataVersionResponse>>(false, errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "数据版本获取异常");
|
|
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<PosServerDataVersionResponse>>(false, "数据版本获取异常,本次操作无效", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
#region 门店云数据汇总
|
|
|
|
/// <summary>
|
|
/// 门店云数据汇总
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public static Tuple<bool, string, StoreBusinessListResponse<SalesOrderSummaryResponse>> SalesOrderSummary(SalesOrderSummaryRequest request)
|
|
{
|
|
Tuple<bool, string, StoreBusinessListResponse<SalesOrderSummaryResponse>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "store.sales.order.summary");
|
|
parameters.Add("storeId", request.StoreId);
|
|
parameters.Add("workerNo", request.WorkerNo);
|
|
parameters.Add("typeIds", request.TypeIds);
|
|
parameters.Add("startDate", request.StartDate);
|
|
parameters.Add("endDate", request.EndDate);
|
|
|
|
var ignoreParameters = new List<string>();
|
|
ignoreParameters.Add("workerNo");
|
|
ignoreParameters.Add("typeIds");
|
|
ignoreParameters.Add("startDate");
|
|
ignoreParameters.Add("endDate");
|
|
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters));
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
//获取成功
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var data = JsonUtils.Deserialize<StoreBusinessListResponse<SalesOrderSummaryResponse>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<SalesOrderSummaryResponse>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<SalesOrderSummaryResponse>>(false, data.Message, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<SalesOrderSummaryResponse>>(false, errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "获取云销售数据异常");
|
|
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<SalesOrderSummaryResponse>>(false, "获取云销售数据异常,本次操作无效", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 营业日菜品明细销售统计
|
|
/// </summary>
|
|
public static Tuple<bool, string, ListPagerResponse<SalesDayDetailSummaryResponse>> SalesOrderSummary(SalesDayDetailSummaryRequest request)
|
|
{
|
|
Tuple<bool, string, ListPagerResponse<SalesDayDetailSummaryResponse>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "store.sales.day.product.summary");
|
|
parameters.Add("storeId", request.StoreId);
|
|
|
|
|
|
var ignoreParameters = new List<string>();
|
|
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters));
|
|
parameters.Add("startDate", request.StartDate);
|
|
parameters.Add("endDate", request.EndDate);
|
|
parameters.Add("pageNumber", request.PageNumber.ToString());
|
|
parameters.Add("pageSize", request.PageSize.ToString());
|
|
parameters.Add("productNo", request.ProductNo);
|
|
parameters.Add("seriesId", request.SeriesId);
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
//获取成功
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var data = JsonUtils.Deserialize<ListPagerResponse<SalesDayDetailSummaryResponse>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, ListPagerResponse<SalesDayDetailSummaryResponse>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, ListPagerResponse<SalesDayDetailSummaryResponse>>(false, data.Message, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, ListPagerResponse<SalesDayDetailSummaryResponse>>(false, errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "获取营业日菜品明细销售统计异常");
|
|
|
|
result = new Tuple<bool, string, ListPagerResponse<SalesDayDetailSummaryResponse>>(false, "获取营业日菜品明细销售统计异常,本次操作无效", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
#region POS设置信息上传
|
|
|
|
/// <summary>
|
|
/// POS设置信息上传
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public static Tuple<bool, string, StoreBusinessEntityResponse<PosSetPlanUpResponse>> PosSetPlanUp(PosSetPlanUpRequest request)
|
|
{
|
|
Tuple<bool, string, StoreBusinessEntityResponse<PosSetPlanUpResponse>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "pos.setplan.up");
|
|
parameters.Add("planId", request.PlanId);
|
|
parameters.Add("resources", request.Resources);
|
|
parameters.Add("shortcut", request.Shortcut);
|
|
parameters.Add("module", request.Module);
|
|
parameters.Add("config", request.Config);
|
|
|
|
var ignoreParameters = new List<string>();
|
|
ignoreParameters.Add("resources");
|
|
ignoreParameters.Add("shortcut");
|
|
ignoreParameters.Add("module");
|
|
ignoreParameters.Add("config");
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters));
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
//获取成功
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var data = JsonUtils.Deserialize<StoreBusinessEntityResponse<PosSetPlanUpResponse>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<PosSetPlanUpResponse>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<PosSetPlanUpResponse>>(false, data.Message, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<PosSetPlanUpResponse>>(false, errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "POS设置信息上传异常");
|
|
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<PosSetPlanUpResponse>>(false, "POS设置信息上传异常,本次操作无效", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
#region 门店参数方案
|
|
|
|
/// <summary>
|
|
/// 门店参数方案
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public static Tuple<bool, string, StoreBusinessListResponse<PosSetPlanResponse>> PosSetPlan(PosSetPlanRequest request)
|
|
{
|
|
Tuple<bool, string, StoreBusinessListResponse<PosSetPlanResponse>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "pos.setplan");
|
|
parameters.Add("storeId", request.StoreId);
|
|
parameters.Add("terminalType", "x86");
|
|
|
|
var ignoreParameters = new List<string>();
|
|
ignoreParameters.Add("terminalType");
|
|
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters));
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
//获取成功
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var data = JsonUtils.Deserialize<StoreBusinessListResponse<PosSetPlanResponse>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<PosSetPlanResponse>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<PosSetPlanResponse>>(false, data.Message, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<PosSetPlanResponse>>(false, errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "门店参数方案异常");
|
|
|
|
result = new Tuple<bool, string, StoreBusinessListResponse<PosSetPlanResponse>>(false, "门店参数方案异常,本次操作无效", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
#endregion
|
|
|
|
#region 优惠券核销
|
|
|
|
/// <summary>
|
|
/// 优惠券核销
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public static Tuple<bool, string, StoreBusinessEntityResponse<string>> StoreCouponCheck(StoreCouponCheckRequest request)
|
|
{
|
|
Tuple<bool, string, StoreBusinessEntityResponse<string>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "store.coupon.check");
|
|
parameters.Add("storeId", Global.Instance.Authc.StoreId);
|
|
parameters.Add("couponCode", request.CouponCode);
|
|
parameters.Add("busNo", request.BusNo);
|
|
parameters.Add("storeName", Global.Instance.Authc.StoreName);
|
|
parameters.Add("storeNo", Global.Instance.Authc.StoreNo);
|
|
parameters.Add("workerNo", Global.Instance.BusinessPlanLog.WorkerNo);
|
|
parameters.Add("posNo", Global.Instance.Authc.PosNo);
|
|
|
|
var ignoreParameters = new List<string>();
|
|
ignoreParameters.Add("couponCode");
|
|
ignoreParameters.Add("busNo");
|
|
ignoreParameters.Add("storeName");
|
|
ignoreParameters.Add("storeNo");
|
|
ignoreParameters.Add("workerNo");
|
|
ignoreParameters.Add("posNo");
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters));
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
//获取成功
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var data = JsonUtils.Deserialize<StoreBusinessEntityResponse<string>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<string>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<string>>(false, data.Message, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<string>>(false, errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "优惠券核销异常");
|
|
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<string>>(false, "优惠券核销异常,本次操作无效", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 优惠券核销校验
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public static Tuple<bool, string, StoreBusinessEntityResponse<string>> StoreCouponCheckOut(StoreCouponCheckRequest request)
|
|
{
|
|
Tuple<bool, string, StoreBusinessEntityResponse<string>> result = null;
|
|
|
|
try
|
|
{
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "store.coupon.checkout");
|
|
parameters.Add("storeId", Global.Instance.Authc.StoreId);
|
|
parameters.Add("couponCode", request.CouponCode);
|
|
var ignoreParameters = new List<string>();
|
|
ignoreParameters.Add("couponCode");
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignoreParameters));
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
//获取成功
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var data = JsonUtils.Deserialize<StoreBusinessEntityResponse<string>>(response);
|
|
if (data.Status == 1)
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<string>>(true, data.Message, data);
|
|
}
|
|
else
|
|
{
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<string>>(false, data.Message, data);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<string>>(false, errorMessage, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "优惠券核销校验异常");
|
|
|
|
result = new Tuple<bool, string, StoreBusinessEntityResponse<string>>(false, "优惠券核销校验异常,本次操作无效", null);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
|
|
protected static string PaserErrors(string response)
|
|
{
|
|
string result = string.Empty;
|
|
try
|
|
{
|
|
logger.Error(response);
|
|
|
|
Errors mainError = JsonUtils.Deserialize<Errors>(response);
|
|
if (_errorDesc.ContainsKey(mainError.Code))
|
|
{
|
|
result = _errorDesc[mainError.Code];
|
|
}
|
|
else
|
|
{
|
|
result = mainError.Message;
|
|
}
|
|
|
|
List<SubErrors> subError = mainError.SubErrors;
|
|
if (subError != null && subError.Count > 0)
|
|
{
|
|
SubErrors error = subError[0];
|
|
if (_errorDesc.ContainsKey(error.Code))
|
|
{
|
|
result = _errorDesc[error.Code];
|
|
}
|
|
else
|
|
{
|
|
result = error.Message;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "非法的错误信息格式");
|
|
|
|
result = _errorDesc["9999"];
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|