Exemplo n.º 1
0
        public BizListResult <T> GetPageList(int start, int pageSize,
                                             Expression <Func <T, object> > orderByExpression = null,
                                             int ordertype = 0,
                                             Expression <Func <T, bool> > whereExpression = null)
        {
            OrderByType orderByType = OrderByType.Asc;

            if (ordertype == 1)
            {
                orderByType = OrderByType.Desc;
            }

            if (whereExpression == null)
            {
                whereExpression = it => 1 == 1;
            }

            double    page      = start / pageSize;
            int       pageIndex = Math.Ceiling(page).ObjToInt() + 1;//Sql Sugar 页从1开始!
            PageModel p         = new PageModel()
            {
                PageIndex = pageIndex, PageSize = pageSize
            };

            List <T> data = sdb.GetPageList(whereExpression, p, orderByExpression, orderByType);
            var      t    = new BizListResult <T>
            {
                Code  = 0,
                total = p.PageCount,
                Rows  = data,
                Msg   = "成功"
            };

            return(t);
        }
Exemplo n.º 2
0
        public BizListResult <SignMessageBox> GetPageList(int pageIndex, int pageSize, string toempid
                                                          , DateTime startD, DateTime endD, string formType, string msgStatus, string msgHandleStatus)
        {
            int       totalCount = 0;
            PageModel p          = new PageModel()
            {
                PageIndex = pageIndex, PageSize = pageSize
            };

            //var data = db.Queryable<SignMessageBox>()
            //    .Where(s => s.toempname == userName)
            //    //.Where("msghandlestatus in ('@hstatus') ",new { hstatus = handleStatus})
            //    .Where(s => s.sendtime >= startD && s.sendtime <= endD)
            //    .WhereIF(formType !="所有", s => s.appname == formType)
            //    .ToPageList(pageIndex, pageSize, ref totalCount);

            //var exp = Expressionable.Create<SignMessageBox>()
            //    .And(s => s.toempname == userName)
            //    .And(s => s.sendtime >= startD)
            //    .And(s => s.sendtime <= endD)
            //    .AndIF(formType != "所有", s => s.appname == formType)
            //    .ToExpression();
            //var data = sdb.GetPageList(exp, p);

            var status = msgStatus == "未读" ? 0 : 1;

            var queryable = db.Queryable <SignMessageBox, SignMessageRole>(
                (s, sc) => new JoinQueryInfos(JoinType.Inner, s.appname == sc.appname))
                            .Where((s, sc) => sc.isshow == (int)ShowEnum.IsShow)
                            .Where(s => s.toempid == toempid)
                            .Where(s => s.sendtime >= startD && s.sendtime < endD.AddDays(1))
                            //.Where(s => s.msghandlestatus == msgHandleStatus)
                            .WhereIF(formType != SettingConfig.AllString, s => s.appname == formType)
                            .WhereIF(msgStatus != SettingConfig.AllString, s => s.msgstatus == status)
                            .OrderBy(s => s.createtime, OrderByType.Desc)
                            .Select("s.*, sc.appnamechs");

            //var tttt = queryable.ToSql();
            //queryable.Where("t.msghandlestatus in (@status)", new { status = builderHanderStatus(handleStatus) });

            var data = queryable.Clone().Where(s => s.msghandlestatus == msgHandleStatus)
                       .ToPageList(pageIndex, pageSize, ref totalCount);

            var existedUnreadCount = queryable.Clone().Where(s => s.msgstatus == 0 && s.msghandlestatus == "未完成").Count();

            var t = new BizListResult <SignMessageBox>
            {
                Code  = existedUnreadCount,
                total = totalCount,
                Rows  = data,
                Msg   = "成功"
            };

            return(t);
        }