using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using POSV.Entity;
using POSV.HttpResponse;
using POSV.Utils;
namespace POSV.HttpApi
{
///
/// POS在线登录
///
public class LoginApi : BaseApi
{
protected static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
///
/// 门店计费检测
///
///
///
///
///
///
public static Tuple PosAuth(string storeId, string posNo)
{
try
{
//连接开放平台
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
//构建请求参数
SortedList parameters = OpenApiUtils.Instance.NewParameters(api);
parameters.Add("method", "pos.auth");
parameters.Add("storeId", storeId);
parameters.Add("posNo", posNo);
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters));
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
if (Constant.IsSuccessful(response))
{
var result = JsonUtils.Deserialize>(response);
//成功
if (result.Status == 1)
{
var posAuth = result.Data;
return new Tuple(true, result.Message, posAuth);
}
else
{
return new Tuple(false, result.Message, null);
}
}
else
{
string errMessage = PaserErrors(response);
return new Tuple(false, errMessage, null);
}
}
catch (Exception ex)
{
logger.Error(ex, ex.Message);
return new Tuple(false, "门店授权信息校验异常", null);
}
}
///
/// 收银员登录
///
///
///
///
///
///
public static Tuple ValidateWorker(string storeId,string posNo,string no , string passwd)
{
try
{
//连接开放平台
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
//构建请求参数
SortedList parameters = OpenApiUtils.Instance.NewParameters(api);
parameters.Add("method" , "worker.login");
parameters.Add("storeId" , storeId);
parameters.Add("posNo" , posNo);
parameters.Add("userName" , no);
parameters.Add("password" , DesUtils.Encrypt(passwd));
var ignore = new List();
ignore.Add("password");
parameters.Add("sign" , OpenApiUtils.Instance.Sign(api , parameters , ignore));
string response = HttpClientUtils.PostAsync(api , api.Url , parameters);
//logger.Info("登录返回结果:{0}", response);
if (Constant.IsSuccessful(response))
{
var result = JsonUtils.Deserialize>(response);
//成功
if (result.Status == 1)
{
var worker = result.Data;
if(worker.TenantId == null)
{
worker.TenantId = Global.Instance.Authc.TenantId;
}
return new Tuple(true , result.Message , worker);
}
else
{
return new Tuple(false , result.Message , null);
}
}
else
{
string errMessage = PaserErrors(response);
return new Tuple(false , errMessage , null);
}
}
catch (Exception ex)
{
logger.Error(ex , ex.Message);
return new Tuple(false , "网络有点不稳定,请再次点击登录按钮" , null);
}
}
public static Tuple DatabaseLogin(string workerNo , string passwd)
{
try
{
Worker worker = null;
using (var db = Global.Instance.OpenDataBase)
{
worker = db.FirstOrDefault("where no = @0" , workerNo);
}
if (worker != null)
{
if (BCrypt.Verify(passwd , worker.Passwd))
{
return new Tuple(true , "脱机登录认证通过" , worker);
}
else
{
return new Tuple(false , "脱机工号或者密码错误" , null);
}
}
else
{
return new Tuple(false , "脱机登录认证未通过" , null);
}
}
catch (Exception ex)
{
logger.Error(ex , "脱机登录验证异常");
return new Tuple(false , "脱机登录验证异常" , null);
}
}
}
}