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