示例#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);
        }
示例#2
0
        private IRuleMapper <T> Init <T>(IRuleMapper <T> ruleMapper = null) where T : DbObject, new()
        {
            Func <object, object> item  = null;
            Func <object, object> func4 = null;
            Func <object, object> func5 = null;
            Func <object, bool>   func6 = null;

            ruleMapper = ruleMapper ?? new RuleEngine <T>();
            Type type = typeof(T);

            foreach (PropertyInfo info1 in type.GetProperties())
            {
                Func <object, object>         func  = null;
                Func <object, object>         func2 = null;
                List <Func <object, object> > funcs;
                MethodInfo          getMethod;
                string              fieldName;
                DynamicPropertyInfo info = DbObjectTools.GetDynamicPropertyInfo(type, info1);
                if (info != null)
                {
                    Type propertyType = info.PropertyType;
                    funcs = new List <Func <object, object> >();
                    if (!info.AllowDBNull)
                    {
                        if (item == null)
                        {
                            item = o => ValidateExtend.NotNull <object>(o);
                        }
                        funcs.Add(item);
                    }
                    if ((propertyType == typeof(string)) && (info.Length > 0))
                    {
                        if (func == null)
                        {
                            func = delegate(object o)
                            {
                                if (o != null)
                                {
                                    ValidateExtend.LengthBelowOrEqual((string)o, info.Length, false);
                                }
                                return(o);
                            };
                        }
                        funcs.Add(func);
                    }
                    if (((propertyType != typeof(DateTime)) && (propertyType != typeof(DateTime?))) && ((info.NumericPercision != -1) || (info.NumericScale != -1)))
                    {
                        if (func2 == null)
                        {
                            func2 = delegate(object o)
                            {
                                if (o != null)
                                {
                                    ValidateExtend.IsDecimal <object>(o, info.NumericPercision, info.NumericScale);
                                }
                                return(o);
                            };
                        }
                        funcs.Add(func2);
                    }
                    if (propertyType == typeof(DateTime))
                    {
                        if (func4 == null)
                        {
                            func4 = delegate(object o)
                            {
                                if (o != null)
                                {
                                    ValidateExtend.GreaterThanOrEqual <DateTime>((DateTime)o, SqlDateTime.MinValue.Value);
                                }
                                return(o);
                            };
                        }
                        funcs.Add(func4);
                    }
                    if (propertyType == typeof(DateTime?))
                    {
                        if (func5 == null)
                        {
                            func5 = delegate(object o)
                            {
                                if (o != null)
                                {
                                    DateTime?nullable = (DateTime?)o;
                                    ValidateExtend.GreaterThanOrEqual <DateTime>(nullable.Value, SqlDateTime.MinValue.Value);
                                }
                                return(o);
                            };
                        }
                        funcs.Add(func5);
                    }
                    List <FieldRule> list = null;
                    if (!ruleMapper.FieldRules.TryGetValue(info1.Name, out list))
                    {
                        list = new List <FieldRule>();
                        ruleMapper.FieldRules.Add(info1.Name, list);
                    }
                    getMethod = info1.GetGetMethod();
                    fieldName = info1.Name;
                    FieldRule rule2 = new FieldRule();
                    rule2.GetField = (t => getMethod.Invoke(t, null));
                    rule2.Validate = (delegate(object o, string action)
                    {
                        Action <Func <object, object> > action2 = null;
                        object obj2;
                        try
                        {
                            if (action2 == null)
                            {
                                action2 = delegate(Func <object, object> f)
                                {
                                    f(o);
                                };
                            }
                            funcs.ForEach(action2);
                            obj2 = o;
                        }
                        catch (ValidateException exception)
                        {
                            throw new FieldValidateException(exception.Message, fieldName, exception.FieldValue);
                        }
                        return(obj2);
                    });
                    rule2.Actions = (new string[] { DbOperation.Create.ToString(), (DbOperation.None | DbOperation.Update).ToString() });
                    if (func6 == null)
                    {
                        func6 = t => true;
                    }
                    rule2.When = (func6);
                    FieldRule rule = rule2;
                    list.Insert(0, rule);
                }
            }
            return(ruleMapper);
        }