예제 #1
0
        //登录
        private Negotiator CheckLogin(dynamic _)
        {
            var       recdata   = this.GetModule <ReceiveModule <loginData> >();
            LogEntity logEntity = new LogEntity();

            logEntity.CategoryId     = 1;
            logEntity.OperateTypeId  = ((int)OperationType.Login).ToString();
            logEntity.OperateType    = EnumAttribute.GetDescription(OperationType.Login);
            logEntity.OperateAccount = recdata.data.username;
            logEntity.OperateUserId  = recdata.data.username;
            logEntity.Module         = "Hengtex.敏捷开发框架";
            try
            {
                Operator      operators = new Operator();
                loginUserInfo result    = new loginUserInfo();
                #region 第三方账户验证 关闭第三方账号验证
                //AccountEntity accountEntity = accountBLL.CheckLogin(recdata.data.username, recdata.data.password);
                //if (accountEntity != null)
                //{
                //    operators.UserId = accountEntity.AccountId;
                //    operators.Code = accountEntity.MobileCode;
                //    operators.Account = accountEntity.MobileCode;
                //    operators.UserName = accountEntity.FullName;
                //    operators.Password = accountEntity.Password;
                //    operators.IPAddress = Net.Ip;
                //    operators.IPAddressName = IPLocation.GetLocation(Net.Ip);
                //    operators.LogTime = DateTime.Now;
                //    operators.Token = DESEncrypt.Encrypt(Guid.NewGuid().ToString());
                //    operators.IsSystem = true;
                //    //登录限制
                //    LoginLimit(recdata.data.username, operators.IPAddress, operators.IPAddressName, recdata.platform);
                //    result.userid = operators.UserId;
                //    result.account = operators.Account;
                //    result.password = operators.Password;
                //    result.realname = operators.UserName;
                //    result.headicon = "";
                //    result.gender = "";
                //    result.mobile = operators.Account;
                //}
                #endregion
                #region 内部登录
                //写入当前用户信息
                AppUserEntity userEntity = new AppUserBLL().CheckLogin(recdata.data.username, recdata.data.password);
                if (userEntity != null)
                {
                    AppAuthorizeBLL authorizeBLL = new AppAuthorizeBLL();
                    operators.UserId       = userEntity.isid.ToString();
                    operators.Code         = userEntity.StationNum;
                    operators.Account      = userEntity.Account;
                    operators.UserName     = userEntity.UserName;
                    operators.Password     = userEntity.Password;
                    operators.Secretkey    = userEntity.Password;
                    operators.CompanyId    = ""; // userEntity.OrganizeId;
                    operators.DepartmentId = ""; //userEntity.DepartmentId;
                    operators.IPAddress    = Net.Ip;
                    operators.ObjectId     = new AppPermissionBLL().GetObjectStr(userEntity.isid.ToString());
                    operators.LogTime      = DateTime.Now;
                    operators.Token        = DESEncrypt.Encrypt(Guid.NewGuid().ToString());
                    if (userEntity.Account == "System")
                    {
                        operators.IsSystem = true;
                    }
                    else
                    {
                        operators.IsSystem = false;
                    }
                    //写入当前用户数据权限
                    AuthorizeDataModel dataAuthorize = new AuthorizeDataModel();
                    dataAuthorize.ReadAutorize        = authorizeBLL.GetDataAuthor(operators);
                    dataAuthorize.ReadAutorizeUserId  = authorizeBLL.GetDataAuthorUserId(operators);
                    dataAuthorize.WriteAutorize       = authorizeBLL.GetDataAuthor(operators, true);
                    dataAuthorize.WriteAutorizeUserId = authorizeBLL.GetDataAuthorUserId(operators, true);
                    operators.DataAuthorize           = dataAuthorize;

                    result.userid   = userEntity.isid.ToString();
                    result.account  = userEntity.Account;
                    result.password = userEntity.Password;
                    result.realname = userEntity.UserName;
                    result.headicon = "";
                    //result.gender = (userEntity.Gender == 1 ? "男" : "女");
                    result.mobile         = userEntity.Tel;
                    result.telephone      = userEntity.Tel;
                    result.email          = userEntity.Email;
                    result.oicq           = ""; // userEntity.OICQ;
                    result.wechat         = ""; // userEntity.WeChat;
                    result.msn            = ""; //userEntity.MSN;
                    result.managerid      = ""; //userEntity.ManagerId;
                    result.manager        = ""; //userEntity.Manager;
                    result.organizeid     = ""; //userEntity.OrganizeId;
                    result.organizename   = organizeCache.GetEntity(result.organizeid).FullName;
                    result.departmentid   = ""; //userEntity.DepartmentId;
                    result.departmentname = ""; //departmentCache.GetEntity(userEntity.DepartmentId).FullName;//值不能为null
                    //result.roleid = userEntity.RoleId;
                    //result.rolename = roleCache.GetEntity(userEntity.RoleId).FullName;
                    result.dutyid      = ""; //userEntity.DutyId;
                    result.dutyname    = ""; //userEntity.DutyName;
                    result.postid      = ""; //userEntity.PostId;
                    result.postname    = ""; //userEntity.PostName;
                    result.description = ""; //userEntity.Description;
                }
                #endregion
                //移动端不采用cookie的方式
                this.WriteCache <Operator>(operators, operators.UserId);

                //写入日志
                logEntity.ExecuteResult     = 1;
                logEntity.ExecuteResultJson = "登录成功";
                logEntity.WriteLog();

                return(this.SendData <loginUserInfo>(result, result.userid, operators.Token, ResponseType.Success));
            }
            catch (Exception ex)
            {
                logEntity.ExecuteResult     = -1;
                logEntity.ExecuteResultJson = ex.Message;
                logEntity.WriteLog();
                return(this.SendData(ResponseType.Fail, ex.Message));
            }
        }