Пример #1
0
        public UserDto GetUserInfo(VerifyUserDTO verifyUserDTO)
        {
            UserDto user = new UserDto();

            UserInfo verifyUser = null;

            if (verifyUserDTO.UserId > 0)
            {
                verifyUser = _userRepository.GetByUserId(verifyUserDTO.UserId);
            }
            else
            {
                verifyUser = _userRepository.GetByUserName("", verifyUserDTO.UserName, verifyUserDTO.CompanyId);
            }

            if (verifyUser == null)
            {
                user.State = LoginState.InvalidAccount;
                return(user);
            }

            if (verifyUserDTO.UserPwd != null && DESEncrypt.GetMD5(verifyUserDTO.UserPwd) != verifyUser.UserPwd)
            {
                user.State = LoginState.InvalidPassword;
                return(user);
            }

            var verifyStr = verifyUser.ManagerRestaurant.Replace(",", "");

            if (verifyUser.ManagerRestaurant.IsEmpty() || verifyStr.IsEmpty() || !ValidateExtend.IsNumber(verifyStr))
            {
                user.State = LoginState.NoPermission;
                return(user);
            }

            if (!string.IsNullOrEmpty(verifyUser.RoleId) && verifyUser.RoleId.Contains("ZZ"))
            {
                user.State = LoginState.NotActivated;
                return(user);
            }

            string[] ids = verifyUser.ManagerRestaurant.Split(',');

            var resList = _resRepository.GetList(ids);

            if (resList == null || resList.Count == 0)
            {
                user.State = LoginState.NoPermission;
                return(user);
            }

            //验证当前用户操作餐厅权限是否包含指定的餐厅
            if (verifyUserDTO.RestaurantId > 0 && !ids.Contains(verifyUserDTO.RestaurantId.ToString()))
            {
                user.State = LoginState.NoPermission;
                return(user);
            }

            var list = resList.Select(x => x.Id + "-" + x.Name).ToList();

            user.UserId   = verifyUser.UserId;
            user.State    = LoginState.Successed;
            user.UserCode = verifyUser.UserCode.Trim();
            user.UserName = verifyUser.UserName.Trim();
            //user.RoleId = verifyUser.RoleId.Trim();
            user.GroupCode         = verifyUserDTO.CompanyId.ToString(); //餐饮登录暂存公司Id
            user.Permission        = verifyUser.Permission;
            user.ManagerRestaurant = list.Join(";");                     //verifyUser.ManagerRestaurant;
            user.MinDiscountValue  = verifyUser.Discount / 100;          //折扣值需要除以100变成折扣率
            user.MaxClearValue     = verifyUser.MaxClearValue;

            return(user);
        }