Exemplo n.º 1
0
        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()));
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 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)));
 }