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; } } }