public ActionResult Test2() { var _valueExp = Expression.Constant("11111"); var _constExp = Expression.Constant("$.TEST", typeof(string)); var p = Expression.Parameter(typeof(User), "x"); MemberExpression member = Expression.PropertyOrField(p, "Property"); var expRes = Expression.Call(typeof(MasterDbContext).GetMethod("GetJsonValueString"), member, _constExp); var exp = Expression.Equal(expRes, _valueExp); var lamda = Expression.Lambda(expRes, p); var dlamda = DynamicExpressionParser.ParseLambda(typeof(User), typeof(bool), "@0(it)==\"11111\"", lamda); var c = UserManager.Repository.GetAll().Where("@0(it)", dlamda).Count(); var c2 = UserManager.Repository.GetAll().Where(o => MasterDbContext.GetJsonValueString(o.Property, "$.TEST") == "11111").Count(); return(Content(c.ToString() + "-" + c2.ToString())); }
/// <summary> /// 0:正常,1:出货数量超过库存,2:出货数量+未出库>超过库存 /// </summary> /// <param name="checkSellMaterialInfoDto"></param> /// <returns></returns> private async Task <int> LimitSellMaterialInfo(CheckSellMaterialInfoDto checkSellMaterialInfoDto, int unitId) { var user = await GetCurrentUserAsync(); var storeMaterialManager = Resolve <StoreMaterialManager>(); var materialManager = Resolve <MaterialManager>(); var material = await materialManager.GetByIdAsync(checkSellMaterialInfoDto.Id); var sellMode = await materialManager.GetMaterialUnitSellMode(material, unitId); if (sellMode == UnitSellMode.停止销售) { return(1); } else if (sellMode == UnitSellMode.始终销售) { return(0); } else { //库存数量,代理商登录就是默认仓库的库存数量 var storeNumber = await storeMaterialManager.GetMaterialNumber(checkSellMaterialInfoDto.Id); //获取已下单但未出库的数量 var toOutNumber = await Manager.GetAll() .Where(o => o.MaterialId == checkSellMaterialInfoDto.Id) .WhereIf(!user.IsCenterUser, o => MasterDbContext.GetJsonValueString(o.FlowSheet.Property, "$.OrderType") == "代理商自助下单") .SumAsync(o => o.SellNumber - o.OutNumber); if (checkSellMaterialInfoDto.Number > storeNumber) { return(1); } else if (checkSellMaterialInfoDto.Number + toOutNumber > storeNumber) { return(2); } return(0); } }
protected override async Task <IQueryable <CaseInitial> > BuildKeywordQueryAsync(string keyword, IQueryable <CaseInitial> query) { return((await base.BuildKeywordQueryAsync(keyword, query)) .Where(o => o.Title.Contains(keyword) || o.Introduction.Contains(keyword) || o.CaseSource.SourceSN.Contains(keyword) || o.CaseSource.City.DisplayName.Contains(keyword) || o.CaseSource.Court1.DisplayName.Contains(keyword) || o.CaseSource.Court2.DisplayName.Contains(keyword) || o.CaseSource.TrialPeopleField.Contains(keyword) || o.CaseSource.LawyerFirmsField.Contains(keyword) || o.Subject.DisplayName.Contains(keyword) || o.Law.Contains(keyword) || o.LawyerOpinion.Contains(keyword) || o.Experience.Contains(keyword) || MasterDbContext.GetJsonValueString(o.Property, "$.JudgeInfo.JudgeContent").Contains(keyword) || MasterDbContext.GetJsonValueString(o.Property, "$.JudgeInfo.JudgeResult").Contains(keyword) || MasterDbContext.GetJsonValueString(o.Property, "$.JudgeInfo.ReverseJudgeContent").Contains(keyword) || MasterDbContext.GetJsonValueString(o.Property, "$.JudgeInfo.ReverseJudgeResult").Contains(keyword) || o.CaseCards.Count(c => c.Title.Contains(keyword) || c.Content.Contains(keyword)) > 0 )); }
///// <summary> ///// 获取登录日志 ///// </summary> ///// <returns></returns> //public async virtual Task<object> GetLoginMessage() //{ // var result = await Repository.GetAll().ToListAsync(); // return new { allCount = allStaffCount, inCount = inJobStaffCount, offCount = offJobStaffCount }; //} protected override async Task <IQueryable <UserLoginAttempt> > BuildSearchQueryAsync(IDictionary <string, string> searchKeys, IQueryable <UserLoginAttempt> query) { if (searchKeys.ContainsKey("keyword")) { var keyword = searchKeys["keyword"]; var userRepository = Resolve <IRepository <User, long> >(); query = from userloginAttempt in query join user in userRepository.GetAll() on userloginAttempt.UserId equals user.Id where user.UserName.Contains(keyword) || MasterDbContext.GetJsonValueString(user.Property, "$.NickName").Contains(keyword) select userloginAttempt; } if (searchKeys.ContainsKey("roles")) { var roles = searchKeys["roles"]; var userRoleRepository = Resolve <IRepository <UserRole, int> >(); var roleIds = roles.Split(',').ToList().Select(o => int.Parse(o)); query = from userloginAttempt in query join userRole in userRoleRepository.GetAll() on userloginAttempt.UserId equals userRole.UserId where roleIds.Contains(userRole.RoleId) select userloginAttempt; } return(query); }
public IQueryable Parse <TEntity>(string orderField, SortType sortType, ModuleInfo moduleInfo, IQueryable query) where TEntity : IHaveProperty { //提交过来的排序 var column = moduleInfo.ColumnInfos.SingleOrDefault(o => o.ColumnKey.ToLower() == orderField.ToLower()); if (column == null) { query = query.OrderBy($"{orderField} {sortType}"); return(query); } if (column.IsPropertyColumn) { if (sortType == SortType.Asc) { query = (query as IQueryable <TEntity>).OrderBy(o => MasterDbContext.GetJsonValueString(o.Property, $"$.{column.ColumnKey}")); } else { query = (query as IQueryable <TEntity>).OrderByDescending(o => MasterDbContext.GetJsonValueString(o.Property, $"$.{column.ColumnKey}")); } } else { if (!string.IsNullOrEmpty(column.DisplayPath)) { query = query.OrderBy($"{column.DisplayPath} {sortType}"); } else { query = query.OrderBy($"{column.ValuePath} {sortType}"); } } return(query); }
protected override async Task <IQueryable <Project> > BuildKeywordQueryAsync(string keyword, IQueryable <Project> query) { return(query.Where(o => o.ProjectSN.Contains(keyword) || MasterDbContext.GetJsonValueString(o.Property, "$.ProjectCharger").Contains(keyword))); }