using HKCardOUT.Helper;
using HKCardOUT.Logic.Model;
using HKCardOUT.Logic.Service;
using HKLib.Dto;
using Logic.RemoteModel;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Markup;
using UHFHelper;
using XExten.Advance.HttpFramework.MultiCommon;
using XExten.Advance.HttpFramework.MultiFactory;
using XExten.Advance.LinqFramework;
using XExten.Advance.StaticFramework;
namespace HKCardOUT.Logic
{
public class RemoteService
{
///
/// 获取所有卡状态和卡号
///
///
public static int GetCardStuatas()
{
var res = IHttpMultiClient.HttpMulti.AddNode(t =>
{
t.NodePath = ApiRoute.CheckCardStatus;
t.ReqType = MultiType.GET;
}).Build().RunStringFirst();
var data = res.ToModel()["data"]["data"].ToJson().ToModel>();
var entity = data.Select(t => new CardStutas
{
CardNo = t.CardNum,
Stutas = t.State
}).ToList();
HKCore.AddCard(entity);
return data != null ? data.ToString().AsInt() : 0;
}
///
/// 同步时间段
///
public static void SyncTime()
{
/*
{"statusCode":200,"data":{"isSuccess":true,"msg":null,"data":{"amStartTime":"17:50","amEndTime":"17:50","pmStartTime":"17:50","pmEndTime":"17:50","atStartTime":"17:50","atEndTime":"17:50"}},"succeeded":true,"errors":null,"extras":null,"timestamp":1665654784093}
*/
var data = IHttpMultiClient.HttpMulti.AddNode(t =>
{
t.NodePath = ApiRoute.GetTime;
t.ReqType = MultiType.GET;
}).Build().RunStringFirst();
DataBus.Times = data.ToModel()["data"]["data"].ToJson().ToModel();
}
///
/// 同步消费记录
///
///
///
public static bool SyncSaleLog(string CardNo, string StallId)
{
try
{
var GateId = DataBus.StoreInfo.Devices.FirstOrDefault(t => t.Address.AsInt() == StallId.AsInt())?.GateId;
var data = IHttpMultiClient.HttpMulti.AddNode(t =>
{
t.ReqType = MultiType.POST;
t.JsonParam = (new { GateId = GateId, Type = -1, CardNum = CardNo }).ToJson();
t.NodePath = ApiRoute.SyncSaleLog;
}).Build().RunStringFirst();
HKLog.HKLogImport.WriteInfo($"同步消费时候调用:{data}");
return bool.Parse(data.ToModel()["data"].ToString());
}
catch (Exception ex)
{
HKLog.HKLogImport.WriteError(ex);
return false;
}
}
///
/// 获取店铺信息
///
public static void PullShopInfo()
{
if (DataBus.NetWordState)
{
var data = IHttpMultiClient.HttpMulti.AddNode(t =>
{
t.NodePath = ApiRoute.PullShopInfo;
}).Build().RunStringFirst()
.ToModel()["data"].ToJson().ToModel();
DataBus.StoreInfo = data;
var storeinfo = SyncStatic.CreateFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "StoreInfo.json"));
SyncStatic.WriteFile(Encoding.UTF8.GetBytes(data.ToJson()), storeinfo);
}
else
{
DataBus.StoreInfo = SyncStatic.ReadFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "StoreInfo.json")).ToModel();
}
}
}
}