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.

123 lines
4.4 KiB
C#

9 months ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using POSV.HttpApi;
using POSV.Utils;
namespace POSV.Card
{
public class WorkerUtils
{
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
protected static Dictionary<string , string> _errorDesc = new Dictionary<string , string>();
static WorkerUtils()
{
//------------------------------------------------------
_errorDesc.Add("isv.card-trade-pay-service-error:CARD_TRADE_PAY_TRADE_EXCEPTION_ERROR" , "交易失败,请稍候再试");
//系统没有定义的错误代码
_errorDesc.Add("9999" , "应答的报文解析异常");
}
/// <summary>
/// 员工密码修改
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public static Tuple<bool, string, WorkerUpdatePwdResponse> WorkerUpdatePwd(WorkerUpdatePwdRequest request)
{
Tuple<bool, string, WorkerUpdatePwdResponse> result = null;
try
{
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
parameters.Add("method", "worker.update.pwd");
parameters.Add("storeId", request.StoreId);
parameters.Add("posNo", request.PosNo);
parameters.Add("workerId", request.WorkerId);
parameters.Add("workerNo", request.WorkerNo);
parameters.Add("passwd", request.Passwd);
parameters.Add("newPasswd", request.NewPasswd);
var ignoreParameters = new List<string>();
ignoreParameters.Add("passwd");
ignoreParameters.Add("newPasswd");
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<WorkerEntityResponse<WorkerUpdatePwdResponse>>(response);
if (data.Status == 1)
{
result = new Tuple<bool, string, WorkerUpdatePwdResponse>(true, data.Message, data.Data);
}
else
{
result = new Tuple<bool, string, WorkerUpdatePwdResponse>(false, data.ErrMessage, null);
}
}
else
{
string errorMessage = PaserErrors(response);
result = new Tuple<bool, string, WorkerUpdatePwdResponse>(false, errorMessage, null);
}
}
catch (Exception ex)
{
logger.Error(ex, "员工修改密码异常");
result = new Tuple<bool, string, WorkerUpdatePwdResponse>(false, "员工修改密码异常,本次操作无效", null);
}
return result;
}
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;
}
}
}