diff --git a/conf/application.xml b/conf/application.xml index f812315..52fabe7 100644 --- a/conf/application.xml +++ b/conf/application.xml @@ -11,6 +11,7 @@ + @@ -24,6 +25,11 @@ + + + + + diff --git a/libs/redbbs.jar b/libs/redbbs.jar index f9e7708..9cf2839 100644 Binary files a/libs/redbbs.jar and b/libs/redbbs.jar differ diff --git a/src/com/lxyer/bbs/base/BaseServlet.java b/src/com/lxyer/bbs/base/BaseServlet.java index 2c2ed75..09913f8 100644 --- a/src/com/lxyer/bbs/base/BaseServlet.java +++ b/src/com/lxyer/bbs/base/BaseServlet.java @@ -1,18 +1,12 @@ package com.lxyer.bbs.base; import com.jfinal.kit.Kv; -import com.jfinal.template.Engine; -import com.jfinal.template.Template; -import com.lxyer.bbs.base.kit.EJ; import com.lxyer.bbs.base.kit.RetCodes; import com.lxyer.bbs.base.user.UserInfo; import com.lxyer.bbs.base.user.UserService; import com.lxyer.bbs.comment.CommentService; import com.lxyer.bbs.content.ContentService; -import org.redkale.net.http.HttpContext; -import org.redkale.net.http.HttpRequest; -import org.redkale.net.http.HttpResponse; -import org.redkale.net.http.HttpServlet; +import org.redkale.net.http.*; import org.redkale.source.FilterExpress; import org.redkale.source.FilterNode; import org.redkale.util.AnyValue; @@ -21,6 +15,7 @@ import javax.annotation.Resource; import java.io.File; import java.io.IOException; import java.util.Map; +import java.util.concurrent.CompletableFuture; import static com.lxyer.bbs.base.kit.RetCodes.RET_USER_UNLOGIN; @@ -28,26 +23,15 @@ import static com.lxyer.bbs.base.kit.RetCodes.RET_USER_UNLOGIN; * Created by Lxy at 2017/10/3 13:39. */ public class BaseServlet extends HttpServlet { - private HttpRequest request; - private HttpResponse response; - private static final Kv _kv = Kv.create(); - private static Engine engine; - protected String sessionid; - protected int currentid;//登录人id protected static final boolean winos = System.getProperty("os.name").contains("Window"); @Resource(name = "SERVER_ROOT") protected File webroot; - /*@Resource - protected EnjoyService enjoyService;*/ @Resource protected UserService userService; - /*@Resource(name = "redis") - protected RedisCacheSource cache;*/ - @Resource protected ContentService contentService; @@ -57,28 +41,20 @@ public class BaseServlet extends HttpServlet { @Resource protected TaskQueue logQueue; - @Override public void init(HttpContext context, AnyValue config) { - if (engine == null){ - engine = new Engine(); - engine.setBaseTemplatePath(webroot.getPath()); - engine.addSharedObject("EJ", new EJ()); - engine.addSharedFunction("/_t/layout.html"); - } + } @Override protected void preExecute(HttpRequest request, HttpResponse response) throws IOException { - sessionid = request.getSessionid(false); + String sessionid = request.getSessionid(true); + int currentid = 0; if (sessionid != null) { request.setCurrentUser(userService.current(sessionid)); currentid = userService.currentUserId(sessionid); - _kv.set("mine", request.currentUser()); } - this.request = request; - this.response = response; String uri = request.getRequestURI(); if (uri.startsWith("/res")){ File file = new File(webroot + uri); @@ -86,34 +62,30 @@ public class BaseServlet extends HttpServlet { return; } if (uri.endsWith(".html")){ - Kv kv = Kv.by("resSys", "resSys"); - finish(uri, kv); + response.finish(HttpScope.refer(uri)); return; } - Kv visLog = new Kv();//ip、time、userid、uri、para - visLog.set("ip", request.getRemoteAddr()); - request.getHost(); - visLog.set("time", System.currentTimeMillis()); - visLog.set("userid", currentid); - visLog.set("uri", request.getRequestURI()); + //异步记录访问日志 + final int userid = currentid; + CompletableFuture.runAsync(()->{ + Kv visLog = new Kv();//ip、time、userid、uri、para + visLog.set("ip", request.getRemoteAddr()); + visLog.set("time", System.currentTimeMillis()); + visLog.set("userid", userid); + visLog.set("uri", request.getRequestURI()); - Kv para = Kv.create(); - for (String key : request.getParameterNames()){ - para.set(key, request.getParameter(key)); - } - visLog.set("para", para); - try { - logQueue.put(visLog); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - - /*if ("/".equals(uri)){ - finish("/front/index.html", Kv.by("","")); - return; - }*/ + Kv para = Kv.create(); + for (String key : request.getParameterNames()){ + para.set(key, request.getParameter(key)); + } + visLog.set("para", para); + try { + logQueue.put(visLog); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); response.nextEvent(); } @@ -124,49 +96,26 @@ public class BaseServlet extends HttpServlet { if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))){ response.finish(RetCodes.retResult(RET_USER_UNLOGIN, "未登录,登录后重试").toString()); }else { - finish("/user/login.html"); + } return; } response.nextEvent(); } - public void finish(String view, Kv kv) { - if (request.currentUser() != null){ - kv.set("mine", request.currentUser()); - } - - Template template = engine.getTemplate(view); - String str = template.renderToString(kv); - response.setContentType("text/html; charset=UTF-8"); - response.finish(str); - } - - public void finish(String view){ - finish(view, _kv); - } - - public int getLimit(){ + public int getLimit(HttpRequest request){ return request.getIntParameter("limit", 1); } - public int getOffset(){ + public int getOffset(HttpRequest request){ return request.getIntParameter("offset", 10); } - /* - 测试用例 - System.out.println("sb="+getPara()); - System.out.println("sb(0)="+getPara(0)); - System.out.println("sb(1)="+getPara(1)); - System.out.println("sb(-1)="+getPara(-1)); - System.out.println("sb(-2)="+getPara(-2)); - * */ - public String getPara(){ + public String getPara(HttpRequest request){ String requestURI = request.getRequestURI(); String subStr = requestURI.substring(requestURI.lastIndexOf("/") + 1); return subStr.contains("-") ? subStr.substring(0, subStr.indexOf("-")) : subStr; } - public String getPara(int index){ + public String getPara(HttpRequest request,int index){ String requestURI = request.getRequestURI(); String subStr = requestURI.substring(requestURI.lastIndexOf("/") + 1); @@ -177,17 +126,17 @@ public class BaseServlet extends HttpServlet { return paraArr.length < index+1 ? null : paraArr[index]; } } - public T getPara(int index, T defaultValue){ - T para = (T)getPara(index); + public T getPara(HttpRequest request, int index, T defaultValue){ + T para = (T)getPara(request,index); return para == null || "".equals(para) ? defaultValue : para; } - public int getParaToInt(int index, int defaultValue){ - String para = getPara(index); + public int getParaToInt(HttpRequest request,int index, int defaultValue){ + String para = getPara(request,index); return para == null || "".equals(para) ? defaultValue : Integer.parseInt(para); } - public int getParaToInt(int index){ + public int getParaToInt(HttpRequest request,int index){ int n = 0; - String para = getPara(index); + String para = getPara(request,index); if (para == null || "".equals(para)) n = 0; try { n = Integer.parseInt(para); @@ -198,11 +147,11 @@ public class BaseServlet extends HttpServlet { } //设置私密帖子过滤 - protected FilterNode setPrivate(FilterNode node){ + protected FilterNode setPrivate(HttpRequest request,FilterNode node){ UserInfo userInfo = request.currentUser(); if (userInfo == null){ node.and("status", FilterExpress.NOTEQUAL, 30); - }else if (!userService.isAdmin(currentid)){ + }else if (!userService.isAdmin(userInfo.getUserid())){ //select * from content c where c.status != -1 and (c.status!=30 or (c.status=30 and c.userid=100001)) node.and(FilterNode.create("status", FilterExpress.NOTEQUAL, 30).or(FilterNode.create("status", 30).and("userid", userInfo.getUserid()))); } diff --git a/src/com/lxyer/bbs/base/EnjoyRender.java b/src/com/lxyer/bbs/base/EnjoyRender.java index 59a5f45..9eb8eca 100644 --- a/src/com/lxyer/bbs/base/EnjoyRender.java +++ b/src/com/lxyer/bbs/base/EnjoyRender.java @@ -1,14 +1,17 @@ package com.lxyer.bbs.base; +import com.jfinal.kit.Kv; import com.jfinal.template.Engine; import com.jfinal.template.Template; import com.lxyer.bbs.base.kit.EJ; +import com.lxyer.bbs.base.user.UserInfo; import org.redkale.convert.Convert; import org.redkale.net.http.*; import org.redkale.util.AnyValue; import javax.annotation.Resource; import java.io.File; +import java.util.Map; /** * Created by JUECHENG at 2018/1/30 0:18. @@ -29,8 +32,14 @@ public class EnjoyRender implements HttpRender { @Override public void renderTo(HttpRequest request, HttpResponse response, Convert convert, HttpScope scope) { + UserInfo mine = request.currentUser();//当前登录人 + Template template = engine.getTemplate(scope.getReferid()); - String str = template.renderToString(scope.getAttributes()); + Map attr = scope.getAttributes(); + if (attr == null) attr = Kv.create(); + attr.put("mine", mine); + + String str = template.renderToString(attr); response.setContentType("text/html; charset=UTF-8"); response.finish(str); } diff --git a/src/com/lxyer/bbs/base/TaskQueue.java b/src/com/lxyer/bbs/base/TaskQueue.java index 08e78ea..98dcafa 100644 --- a/src/com/lxyer/bbs/base/TaskQueue.java +++ b/src/com/lxyer/bbs/base/TaskQueue.java @@ -17,11 +17,13 @@ public class TaskQueue extends BaseService implements Runnable @Resource(name = "property.mongo.host") private String mongoHost; + @Resource(name = "property.mongo.database") + private String mongoDatabase; protected static LinkedBlockingQueue queue = new LinkedBlockingQueue(); private static MongoClient mongoClient; - private static MongoDatabase redbbs; + private static MongoDatabase database; private static MongoCollection visLog; public TaskQueue() { @@ -31,8 +33,8 @@ public class TaskQueue extends BaseService implements Runnable @Override public void init(AnyValue config) { mongoClient = new MongoClient(mongoHost, 27017); - redbbs = mongoClient.getDatabase(winos ? "redbbs_dev": "redbbs"); - visLog = redbbs.getCollection("vis_log"); + database = mongoClient.getDatabase(winos ? mongoDatabase + "_dev": mongoDatabase); + visLog = database.getCollection("vis_log"); } public T take() throws InterruptedException { @@ -49,7 +51,7 @@ public class TaskQueue extends BaseService implements Runnable while (true){ Map take = (Map) take(); - take.put("ftime", String.format("%1$tY%1$tm%1$td%1$tH%1$tM", take.get("time"))); + take.put("ftime", String.format("%1$tY%1$tm%1$td%1$tH%1$tM%1$tS", take.get("time"))); visLog.insertOne(new Document(take)); //在这里处理日志数据[访问量] @@ -58,12 +60,4 @@ public class TaskQueue extends BaseService implements Runnable e.printStackTrace(); } } - - /*public static void main(String[] args) { - //测试mongodb 连通性 - FindIterable documents = visLog.find().limit(10); - documents.forEach((Block) x->{ - System.out.println(x); - }); - }*/ } diff --git a/src/com/lxyer/bbs/base/user/UserService.java b/src/com/lxyer/bbs/base/user/UserService.java index b9d9766..ff151a6 100644 --- a/src/com/lxyer/bbs/base/user/UserService.java +++ b/src/com/lxyer/bbs/base/user/UserService.java @@ -48,6 +48,8 @@ public class UserService extends BaseService { } public UserInfo current(String sessionid){ + if (sessionid == null) return null; + Object userid = sessions.getAndRefresh(sessionid, sessionExpireSeconds); sessions.getAndRefresh(sessionid, sessionExpireSeconds); return userid == null ? null : findUserInfo((Integer) userid); @@ -151,14 +153,6 @@ public class UserService extends BaseService { return infos; } - /*@RestMapping(name = "stat", auth = false, comment = "用户数据统计") - public Map userStat(){ - - Number count = source.getNumberResult(User.class, FilterFunc.COUNT, "userId", FilterNode.create("status", FilterExpress.NOTEQUAL, -1)); - - return Kv.by("count", count); - }*/ - @RestMapping(name = "usercount", auth = false, comment = "用户数据统计") public Number userCount() { return source.getNumberResult(UserRecord.class, FilterFunc.COUNT, "userid", FilterNode.create("status", FilterExpress.NOTEQUAL, -10)); diff --git a/src/com/lxyer/bbs/content/ContentService.java b/src/com/lxyer/bbs/content/ContentService.java index 697f6e6..02268c4 100644 --- a/src/com/lxyer/bbs/content/ContentService.java +++ b/src/com/lxyer/bbs/content/ContentService.java @@ -41,7 +41,10 @@ public class ContentService extends BaseService implements UIService contentQuery(Flipper flipper, String actived, int currentid){ + public Sheet contentQuery(Flipper flipper, String actived, String sessionid){ + UserInfo current = userService.current(sessionid); + int currentid = current == null ? 0 : current.getUserid(); + FilterNode filterNode = FilterNode.create("status", FilterExpress.NOTEQUAL, -1); switch (actived){ case "top": filterNode.and("top", FilterExpress.GREATERTHANOREQUALTO, 20);break; @@ -157,7 +160,7 @@ public class ContentService extends BaseService implements UIService hotReply = contentService.contentQuery(flipper3, "", 0); + Sheet hotReply = contentService.contentQuery(flipper3, "", sessionid); //最新加入 Sheet lastReg = userService.lastReg(); diff --git a/src/com/lxyer/bbs/servlet/ContentServlet.java b/src/com/lxyer/bbs/servlet/ContentServlet.java index 353ce90..307986d 100644 --- a/src/com/lxyer/bbs/servlet/ContentServlet.java +++ b/src/com/lxyer/bbs/servlet/ContentServlet.java @@ -24,37 +24,40 @@ import static org.redkale.source.FilterExpress.NOTEQUAL; public class ContentServlet extends BaseServlet { @HttpMapping(url = "/jie", auth = false, comment = "问答列表") public void jie(HttpRequest request, HttpResponse response){ - String actived = getPara(0, "all"); + String actived = getPara(request, 0, "all"); int curr = request.getIntParameter("curr", 1); //分页帖子列表 Flipper flipper = new Flipper().offset((curr-1)*15).limit(15).sort("top DESC,createtime DESC"); - Sheet contents = contentService.contentQuery(flipper, actived, currentid); + Sheet contents = contentService.contentQuery(flipper, actived, request.getSessionid(false)); Kv kv = Kv.by("contents", contents).set("url", request.getRequestURI()) .set("actived", actived).set("curr", curr); - finish("/jie/index.html", kv); + + response.finish(HttpScope.refer("/jie/index.html").attr(kv)); } @HttpMapping(url = "/jie/add", comment = "发表/编辑问答") @HttpParam(name = "#", type = int.class, comment = "内容ID") public void add(HttpRequest request, HttpResponse response){ - int contentid = getParaToInt(0); + int contentid = getParaToInt(request, 0); ContentInfo contentInfo = null; if (contentid > 0){ - contentInfo = contentService.contentInfo(sessionid, contentid); + contentInfo = contentService.contentInfo(request.getSessionid(false), contentid); } - finish("/jie/add.html", Kv.by("bean", contentInfo)); + Kv kv = Kv.by("bean", contentInfo); + response.finish(HttpScope.refer("/jie/add.html").attr(kv)); } @HttpMapping(url = "/jie/detail", auth = false, comment = "问答详情") public void detail(HttpRequest request, HttpResponse response){ - int contentid = getParaToInt(0); + int contentid = getParaToInt(request,0); + String sessionid = request.getSessionid(false); ContentInfo content = contentService.contentInfo(sessionid, contentid); - Sheet comments = commentService.commentQuery(request.getSessionid(false) ,contentid, new Flipper().limit(30)); + Sheet comments = commentService.commentQuery(sessionid,contentid, new Flipper().limit(30)); //热帖 //Flipper flipper2 = new Flipper().limit(8).sort("viewNum DESC"); @@ -62,7 +65,7 @@ public class ContentServlet extends BaseServlet { //热议 Flipper flipper3 = new Flipper().limit(8).sort("replynum DESC"); - Sheet hotReply = contentService.contentQuery(flipper3, "", currentid); + Sheet hotReply = contentService.contentQuery(flipper3, "", sessionid); //更新 CompletableFuture.supplyAsync(new Supplier() { @@ -76,12 +79,14 @@ public class ContentServlet extends BaseServlet { }); Kv kv = Kv.by("bean", content).set("comments", comments)/*.set("hotView", hotView)*/.set("hotReply", hotReply); - finish("/jie/detail.html", kv); + response.finish(HttpScope.refer("/jie/detail.html").attr(kv)); } @HttpMapping(url = "/column", auth = false, comment = "帖子栏目") public void column(HttpRequest request, HttpResponse response){ - String para = getPara();//空,qz,fx,jy,gg,dt, + String sessionid = request.getSessionid(false); + + String para = getPara(request);//空,qz,fx,jy,gg,dt, int solved = request.getIntParameter("solved", -1); int wonderful = request.getIntParameter("wonderful", -1); int curr = request.getIntParameter("curr", 1); @@ -94,15 +99,16 @@ public class ContentServlet extends BaseServlet { if (solved > 0) filterNode.and("solved", 20); if (wonderful > 0) filterNode.and("wonderful", 20); - Sheet contents = contentService.contentQuery(flipper, setPrivate(filterNode)); + Sheet contents = contentService.contentQuery(flipper, setPrivate(request,filterNode)); //热议 Flipper flipper3 = new Flipper().limit(8).sort("replynum DESC"); - Sheet hotReply = contentService.contentQuery(flipper3, "", currentid); + Sheet hotReply = contentService.contentQuery(flipper3, "", sessionid); Kv kv = Kv.by("contents", contents).set("hotReply", hotReply) - .set("solved", solved).set("wonderful", wonderful).set("column", para).set("curr", curr); - finish("/jie/index.html", kv); + .set("solved", solved).set("wonderful", wonderful) + .set("column", para).set("curr", curr); + response.finish(HttpScope.refer("/jie/index.html").attr(kv)); } } diff --git a/src/com/lxyer/bbs/servlet/IndexServlet.java b/src/com/lxyer/bbs/servlet/IndexServlet.java index c784d7a..cb7a9a3 100644 --- a/src/com/lxyer/bbs/servlet/IndexServlet.java +++ b/src/com/lxyer/bbs/servlet/IndexServlet.java @@ -5,10 +5,7 @@ import com.lxyer.bbs.base.BaseServlet; import com.lxyer.bbs.base.user.UserInfo; import com.lxyer.bbs.comment.CommentInfo; import com.lxyer.bbs.content.ContentInfo; -import org.redkale.net.http.HttpMapping; -import org.redkale.net.http.HttpRequest; -import org.redkale.net.http.HttpResponse; -import org.redkale.net.http.WebServlet; +import org.redkale.net.http.*; import org.redkale.source.FilterNode; import org.redkale.source.Flipper; import org.redkale.util.Sheet; @@ -27,14 +24,17 @@ public class IndexServlet extends BaseServlet { @HttpMapping(url = "/", auth = false, comment = "社区首页") public void abc(HttpRequest request, HttpResponse response){ + + String sessionid = request.getSessionid(false); + Flipper flipper = new Flipper().limit(15).sort("top DESC,createtime DESC"); //置顶贴 FilterNode topNode = FilterNode.create("status", NOTEQUAL, -10).and("top", GREATERTHANOREQUALTO, 20); - Sheet top = contentService.contentQuery(flipper, setPrivate(topNode)); + Sheet top = contentService.contentQuery(flipper, setPrivate(request, topNode)); //非置顶贴 FilterNode untopNode = FilterNode.create("status", NOTEQUAL, -10).and("top", 10); - Sheet contents = contentService.contentQuery(flipper, setPrivate(untopNode)); + Sheet contents = contentService.contentQuery(flipper, setPrivate(request, untopNode)); //热帖 /*Flipper flipper2 = new Flipper().limit(8).sort("viewNum DESC"); @@ -42,7 +42,7 @@ public class IndexServlet extends BaseServlet { //热议 Flipper flipper3 = new Flipper().limit(8).sort("replynum DESC"); - Sheet hotReply = contentService.contentQuery(flipper3, "", currentid); + Sheet hotReply = contentService.contentQuery(flipper3, "", sessionid); //最新加入 Sheet lastReg = userService.lastReg(); @@ -51,13 +51,13 @@ public class IndexServlet extends BaseServlet { Number userCount = userService.userCount(); Kv kv = Kv.by("top", top).set("contents", contents).set("hotReply", hotReply).set("lastReg", lastReg).set("userCount", userCount); - finish("index.html", kv); + response.finish(HttpScope.refer("index.html").attr(kv)); } @HttpMapping(url = "/site", auth = false, comment = "网站首页") public void site(HttpRequest request, HttpResponse response){ - finish("/site.html"); + response.finish(HttpScope.refer("/site.html")); } //====================================文章相关==================================== @@ -70,12 +70,14 @@ public class IndexServlet extends BaseServlet { //====================================项目相关==================================== @HttpMapping(url = "/project", auth = false, comment = "项目首页") public void project(HttpRequest request, HttpResponse response){ + String sessionid = request.getSessionid(false); int contentid = 22; + ContentInfo content = contentService.contentInfo(sessionid, contentid); - Sheet comments = commentService.commentQuery(request.getSessionid(false) ,contentid, new Flipper().limit(30)); + Sheet comments = commentService.commentQuery(sessionid,contentid, new Flipper().limit(30)); Kv kv = Kv.by("bean", content).set("comments", comments); - finish("project/index.html", kv); + response.finish(HttpScope.refer("/project/index.html").attr(kv)); } } diff --git a/src/com/lxyer/bbs/servlet/UserServlet.java b/src/com/lxyer/bbs/servlet/UserServlet.java index 64625ac..3ecf26e 100644 --- a/src/com/lxyer/bbs/servlet/UserServlet.java +++ b/src/com/lxyer/bbs/servlet/UserServlet.java @@ -2,16 +2,14 @@ package com.lxyer.bbs.servlet; import com.jfinal.kit.Kv; import com.lxyer.bbs.base.BaseServlet; -import com.lxyer.bbs.base.user.UserRecord; import com.lxyer.bbs.base.user.UserBean; import com.lxyer.bbs.base.user.UserInfo; +import com.lxyer.bbs.base.user.UserRecord; import com.lxyer.bbs.comment.CommentInfo; -import com.lxyer.bbs.content.ContentBean; import com.lxyer.bbs.content.ContentInfo; -import org.redkale.net.http.HttpMapping; -import org.redkale.net.http.HttpRequest; -import org.redkale.net.http.HttpResponse; -import org.redkale.net.http.WebServlet; +import org.redkale.net.http.*; +import org.redkale.source.FilterExpress; +import org.redkale.source.FilterNode; import org.redkale.source.Flipper; import org.redkale.util.Sheet; @@ -26,7 +24,7 @@ public class UserServlet extends BaseServlet { @HttpMapping(url = "/user/login", auth = false, comment = "前往登录页") public void login(HttpRequest request, HttpResponse response){ - finish("/user/login.html"); + response.finish(HttpScope.refer("/user/login.html")); } @HttpMapping(url = "/user/reg", auth = false, comment = "前往登录页") public void reg(HttpRequest request, HttpResponse response){ @@ -36,39 +34,38 @@ public class UserServlet extends BaseServlet { list.add(Kv.by("k", 3).set("a", "3+2-5=?").set("q", 0)); list.add(Kv.by("k", 4).set("a", "Math.abs(-3)=?").set("q", 3));*/ - finish("/user/login.html"); + response.finish(HttpScope.refer("/user/login.html")); } @HttpMapping(url = "/user/set", auth = true, comment = "用户设置") public void set(HttpRequest request, HttpResponse response){ - finish("/user/set.html"); + response.finish(HttpScope.refer("/user/set.html")); } @HttpMapping(url = "/user", auth = false, comment = "用户首页") public void user(HttpRequest request, HttpResponse response){ - String para = getPara(); + String para = getPara(request); //-------个人中心--------- if ("user".equals(para) || "".equals(para)){ UserInfo user = request.currentUser(); if (user == null){ - finish("/user/login.html"); + response.finish(HttpScope.refer("/user/login.html")); return; } //创建的帖子 Flipper flipper = new Flipper().limit(8).sort("createtime DESC"); - ContentBean bean = new ContentBean(); - bean.setUserid(user.getUserid()); - Sheet contents = contentService.queryByBean(flipper, bean); + + FilterNode node = FilterNode.create("userid", user.getUserid()).and("status", FilterExpress.NOTEQUAL, -10); + Sheet contents = contentService.contentQuery(flipper, setPrivate(request, node));//queryByBean(flipper, bean); //收藏的帖子 - Sheet collects = contentService.collectQuery(sessionid); + Sheet collects = contentService.collectQuery(request.getSessionid(false)); Kv kv = Kv.by("contents", contents).set("collects", collects); - finish("/user/index.html", kv); - return; + response.finish(HttpScope.refer("/user/index.html").attr(kv)); } //-------用户主页------ @@ -82,7 +79,7 @@ public class UserServlet extends BaseServlet { userid = users.stream().findFirst().orElse(null).getUserid(); } }else {//直接访问 - userid = getParaToInt(0); + userid = getParaToInt(request,0); } //用户信息 @@ -90,14 +87,13 @@ public class UserServlet extends BaseServlet { //帖子 Flipper flipper = new Flipper().limit(8).sort("createtime DESC"); - ContentBean bean = new ContentBean(); - bean.setUserid(userid); - Sheet contents = contentService.queryByBean(flipper, bean); + FilterNode node = FilterNode.create("userid", userid).and("status", FilterExpress.NOTEQUAL, -10); + Sheet contents = contentService.contentQuery(flipper, setPrivate(request,node)); //回复 Sheet comments = commentService.queryByUserid(userid); Kv kv = Kv.by("contents", contents).set("user", user).set("comments", comments); - finish("/user/home.html", kv); + response.finish(HttpScope.refer("/user/home.html").attr(kv)); } }