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