ningshuxia
2022-12-12 e78f5936fee9ab4fff600515bb20a41a28f329c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace IStation.Service
{
    /// <summary>
    /// 用户登录
    /// </summary>
    public class UserLogin
    {
        /// <summary>
        /// 登录
        /// </summary>
        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;
            }
        }
 
        /// <summary>
        /// 客户登录
        /// </summary>
        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;
        }
 
 
    }
}