DeviceManager/TsSFCDevice.Client.Biz/Impl/UserRepository.cs

148 lines
4.8 KiB
C#
Raw Permalink Normal View History

2024-07-27 01:44:19 +00:00
using DeviceRepair.Models;
2024-08-02 02:52:45 +00:00
using DeviceRepair.Models.History;
2024-07-27 01:44:19 +00:00
using DeviceRepair.Models.SFC;
using DeviceRepair.Utils;
using NLog;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using TsSFCDevice.Client.Biz.Base.Service;
using TsSFCDevice.Client.Biz.Base.Utils;
2024-08-02 02:52:45 +00:00
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
2024-07-27 01:44:19 +00:00
namespace TsSFCDevice.Client.Biz.Impl
{
public class UserRepository
{
private readonly Logger log;
private static UserRepository manager;
private IDictionary<string, string> m_ApiParameters;
/// <summary>
/// API输入参数
/// </summary>
public IDictionary<string, string> ApiParameters
{
get
{
return m_ApiParameters;
}
set
{
m_ApiParameters = value;
}
}
public static UserRepository Instance
{
get
{
if (manager == null)
manager = new UserRepository();
return manager;
}
}
public UserRepository()
{
log = LogManager.GetCurrentClassLogger();
m_ApiParameters = new Dictionary<string, string>();
}
internal string GetParameters(string cOperator = "", bool bFlag = true)
{
return ParametersObject.GetInstance(cOperator).GetJsonSerialized(m_ApiParameters);
}
public APIResponseData UserLogin(string userCode, string pwd)
{
try
{
byte[] btResults = null;
ApiParameters?.Clear();
// 登录介质
ApiParameters.Add("LOGIN_KIND", "USERPWD");
var Rtn = Utility.SfcBizService.CurrentSvc.UserLogin(userCode,
DeviceRepair.Utils.Security.DESEncrypt.Encrypt(pwd), GetParameters(), out btResults);
if (Rtn.Code != 1)
{
throw new Exception(Rtn.Message);
}
DataSet dsResults = CompressionHelper.ExactDataSet(btResults);
var vCurrentUser = DTOHelper<TsSFCUserInfo>.DataTableToList(dsResults.Tables[0])?[0];
if (vCurrentUser == null)
{
throw new Exception("实例化当前用户DTO时发生空异常错误");
}
2024-08-02 02:52:45 +00:00
2024-07-27 01:44:19 +00:00
var vCurrentUserAuths = DTOHelper<TsSFCAuths>.DataTableToList(dsResults.Tables[2]);
if (vCurrentUserAuths == null || !vCurrentUserAuths.Any(x => x.AuthCode.Equals("BIZ_EQUIP", StringComparison.OrdinalIgnoreCase)))
{
throw new ArgumentException("当前用户无设备相关操作权限,请联系管理员!");
}
/* 设置全局用户信息 */
Utility.SystemRuntimeInfo.CurrentUser = vCurrentUser;
Utility.SystemRuntimeInfo.CurrentAuths = vCurrentUserAuths;
return new APIResponseData { Code = 1, Message = "用户登陆成功!" };
}
catch (Exception ex)
{
log.Error(ex.Message, ex);
return new APIResponseData() { Code = -1, Message = ex.Message };
}
}
public IList<TsSFCUserInfo> GetDatas()
{
IList<TsSFCUserInfo> Data = new List<TsSFCUserInfo>();
byte[] btResults = null;
ApiParameters?.Clear();
var Rtn = Utility.SfcBizService.CurrentSvc.GetDatas(DeviceSvc.SysModelType.USER_INFO, GetParameters(), out btResults);
if (Rtn.Code != 1)
{
throw new Exception(Rtn.Message);
}
DataSet dsResults = CompressionHelper.ExactDataSet(btResults);
return DTOHelper<TsSFCUserInfo>.DataTableToList(dsResults.Tables[0]);
}
2024-08-02 02:52:45 +00:00
/// <summary>
/// 电子签名
/// </summary>
/// <param name="userConfirm"></param>
/// <param name="dtData"></param>
/// <returns></returns>
public APIResponseData UserConfirm(UserConfirmHistory userConfirm, out DataTable dtData)
{
try
{
ApiParameters?.Clear();
dtData = null;
var Rtn = Utility.SfcBizService.CurrentSvc.UserConfirm(GetParameters(), userConfirm.toDataTable(), out dtData);
if (Rtn.Code != 1)
{
throw new Exception(Rtn.Message);
}
return new APIResponseData { Code = 1, Message = Rtn.Message };
}
catch (Exception ex)
{
log.Error(ex.Message, ex);
throw ex;
}
}
2024-07-27 01:44:19 +00:00
}
}