using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Service
{
///
/// 用户登录
///
public class UserLogin
{
///
/// 登录
///
public Model.User Login
(string SoftType,string SoftTag, string LoginName, string LoginPwd,string IP, string Message,out Model.eLoginStatus LoginStatus)
{
LoginStatus = Model.eLoginStatus.Success;
//验证
if (string.IsNullOrEmpty(LoginName))
return default;
if (string.IsNullOrEmpty(LoginPwd))
return default;
var dt_now = DateTime.Now;
try
{
#region 用户验证
var service_user = new User();
var user = service_user.GetByLoginName(LoginName);
if (user == null)
{
LoginStatus = Model.eLoginStatus.UserIsNotExist;
return default;
}
if (user.LoginPwd != LoginPwd)
{
LoginStatus = Model.eLoginStatus.PasswordError;
return default;
}
if (user.UseStatus == Model.eUseStatus.Disable)
{
LoginStatus = Model.eLoginStatus.UserIsStopped;
return default;
}
if (!service_user.VerifyCreateUseStatus(user.ID))
{
LoginStatus = Model.eLoginStatus.ParentUserIsStopped;
return default;
}
#endregion
#region 用户更新
var model_lastLogin = new Model.UserLastLogin();
model_lastLogin.ID = user.ID;
model_lastLogin.CorpID = user.CorpID;
model_lastLogin.LastLoginIP = IP;
model_lastLogin.LastLoginSoftType = SoftType;
model_lastLogin.LastLoginSoftTag = SoftTag;
model_lastLogin.LastLoginTime = dt_now;
if (!service_user.UpdateLastLogin(model_lastLogin))
{
LoginStatus = Model.eLoginStatus.Failed;
return default;
}
#endregion
#region 登录日志
var entity_log = new Entity.UserLoginLog();
entity_log.CorpID = user.CorpID;
entity_log.SoftType = SoftType;
entity_log.SoftTag = SoftTag;
entity_log.UserID = user.ID;
entity_log.InputLoginName = LoginName;
entity_log.LoginTime = DateTime.Now;
entity_log.LoginIP = IP;
entity_log.Message = Message;
new DAL.UserLoginLog().Insert(entity_log);
#endregion
return service_user.GetByID(user.ID);
}
catch(Exception ex)
{
LogHelper.Error("用户登录异常",ex);
LoginStatus=Model.eLoginStatus.Failed;
return default;
}
}
///
/// 客户登录
///
public Model.User LoginCorp
(long CorpID, string SoftType, string SoftTag, string LoginName, string LoginPwd, string IP, string Message, out Model.eLoginStatus LoginStatus)
{
var user = Login(SoftType,SoftTag,LoginName,LoginPwd,IP,Message,out LoginStatus);
if (LoginStatus == Model.eLoginStatus.Success)
{
if (!user.IsAdmin)
{
if (user.CorpID != CorpID)
{
LoginStatus = Model.eLoginStatus.UserIsNotExist;
return default;
}
}
}
return user;
}
}
}