From 18d2cbc7f6dfa0c2375b87ce82d57cb5392b809c Mon Sep 17 00:00:00 2001 From: jamen Date: Mon, 20 Nov 2017 20:44:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=20=E5=8D=9A=E5=AE=A2=20?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 + slife-blog/pom.xml | 21 +++ .../controller/BlogContentController.java | 55 ++++++++ .../java/com/slife/dao/BlogContentDao.java | 17 +++ .../java/com/slife/entity/BlogContent.java | 69 ++++++++++ .../slife/service/IBlogContentService.java | 17 +++ .../service/impl/BlogContentService.java | 22 +++ .../main/resources/templates/blog/detail.ftl | 120 +++++++++++++++++ .../main/resources/templates/blog/list.ftl | 127 ++++++++++++++++++ .../slife/base/service/impl/BaseService.java | 2 +- .../slife/controller/SysDictController.java | 4 - .../slife/controller/SysMenuController.java | 10 -- .../slife/controller/SysOfficeController.java | 1 + .../slife/service/impl/SysMenuService.java | 2 +- .../slife/service/impl/SysOfficeService.java | 3 +- slife-web/pom.xml | 5 +- .../config/sitemesh/WebSiteMeshFilter.java | 3 +- slife-web/src/main/resources/application.yml | 4 +- 18 files changed, 467 insertions(+), 21 deletions(-) create mode 100644 slife-blog/pom.xml create mode 100644 slife-blog/src/main/java/com/slife/controller/BlogContentController.java create mode 100644 slife-blog/src/main/java/com/slife/dao/BlogContentDao.java create mode 100644 slife-blog/src/main/java/com/slife/entity/BlogContent.java create mode 100644 slife-blog/src/main/java/com/slife/service/IBlogContentService.java create mode 100644 slife-blog/src/main/java/com/slife/service/impl/BlogContentService.java create mode 100644 slife-blog/src/main/resources/templates/blog/detail.ftl create mode 100644 slife-blog/src/main/resources/templates/blog/list.ftl diff --git a/pom.xml b/pom.xml index 036219c..2a0c4a7 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,7 @@ slife-activiti slife-log slife-test + slife-blog @@ -211,6 +212,11 @@ ${slife.version} + + com.slife + slife-blog + ${slife.version} + com.slife slife-sys diff --git a/slife-blog/pom.xml b/slife-blog/pom.xml new file mode 100644 index 0000000..374299e --- /dev/null +++ b/slife-blog/pom.xml @@ -0,0 +1,21 @@ + + + + slife + com.slife + 1.0-SNAPSHOT + + 4.0.0 + + slife-blog + + + + com.slife + slife-common + + + + \ No newline at end of file diff --git a/slife-blog/src/main/java/com/slife/controller/BlogContentController.java b/slife-blog/src/main/java/com/slife/controller/BlogContentController.java new file mode 100644 index 0000000..410cab9 --- /dev/null +++ b/slife-blog/src/main/java/com/slife/controller/BlogContentController.java @@ -0,0 +1,55 @@ +package com.slife.controller; + +import com.slife.base.controller.BaseController; +import com.slife.base.vo.DataTable; +import com.slife.entity.BlogContent; +import com.slife.service.IBlogContentService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; + +/** + * @author chen + * @date 2017/11/20 + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +@Controller +@RequestMapping(value = "/blog/content") +public class BlogContentController extends BaseController { + + @Autowired + private IBlogContentService blogContentService; + + + @ApiOperation(value = "进入博客列表界面", notes = "进入博客列表界面") + @GetMapping(value = "") + public String list(Model model, HttpServletRequest request) { + model.addAttribute("url", request.getContextPath() + "/blog/content/"); + return "blog/list"; + } + + @ApiOperation(value = "获取列表列表数据", notes = "获取列表列表数据:使用约定的DataTable") + @PostMapping(value = "/list") + @ResponseBody + public DataTable list(@RequestBody DataTable dt, ServletRequest request) { + return blogContentService.pageSearch(dt); + } + + @ApiOperation(value = "进入博客编辑界面", notes = "进入博客编辑界面") + @GetMapping(value = "") + public String detail(Model model, HttpServletRequest request) { + model.addAttribute("url", request.getContextPath() + "/blog/content/"); + return "blog/detail"; + } + + + +} diff --git a/slife-blog/src/main/java/com/slife/dao/BlogContentDao.java b/slife-blog/src/main/java/com/slife/dao/BlogContentDao.java new file mode 100644 index 0000000..e2e76d4 --- /dev/null +++ b/slife-blog/src/main/java/com/slife/dao/BlogContentDao.java @@ -0,0 +1,17 @@ +package com.slife.dao; + +import com.slife.base.dao.CrudDao; +import com.slife.entity.BlogContent; + +/** + * Created by chen on 2017/11/20. + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +public interface BlogContentDao extends CrudDao { + + + +} diff --git a/slife-blog/src/main/java/com/slife/entity/BlogContent.java b/slife-blog/src/main/java/com/slife/entity/BlogContent.java new file mode 100644 index 0000000..39f1497 --- /dev/null +++ b/slife-blog/src/main/java/com/slife/entity/BlogContent.java @@ -0,0 +1,69 @@ +package com.slife.entity; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableName; +import com.slife.base.entity.BaseEntity; +import org.hibernate.validator.constraints.NotBlank; + +import java.io.Serializable; + +/** + * @author chen + * @date 2017/11/20 + *

+ * Email 122741482@qq.com + *

+ * Describe: 博客 + */ +@TableName("blog_content") +public class BlogContent extends BaseEntity { + + + @Override + protected Serializable pkVal() { + return this.id; + } + + + /** + * varchar(255) NULL标题 + */ + @NotBlank + private String title; + + /** + * text NULL内容 + */ + @NotBlank + private String content; + /** + * varchar(16) NULL类型 + */ + private String type; + /** + * varchar(200) NULL标签 + */ + private String tags; + + /** + * varchar(200)NULL分类 + */ + private String categories; + + /** + * int(1)NULL开启评论 + */ + @TableField(value = "allow_comment") + private Integer allowComment; + + /** + * int(1)NULL状态 + */ + private Integer status; + + /** + * varchar(100)NULL作者 + */ + private String author; + +} diff --git a/slife-blog/src/main/java/com/slife/service/IBlogContentService.java b/slife-blog/src/main/java/com/slife/service/IBlogContentService.java new file mode 100644 index 0000000..6242ba6 --- /dev/null +++ b/slife-blog/src/main/java/com/slife/service/IBlogContentService.java @@ -0,0 +1,17 @@ +package com.slife.service; + +import com.slife.base.service.IBaseService; +import com.slife.entity.BlogContent; + +/** + * + * @author chen + * @date 2017/11/20 + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +public interface IBlogContentService extends IBaseService { + +} diff --git a/slife-blog/src/main/java/com/slife/service/impl/BlogContentService.java b/slife-blog/src/main/java/com/slife/service/impl/BlogContentService.java new file mode 100644 index 0000000..c511ea4 --- /dev/null +++ b/slife-blog/src/main/java/com/slife/service/impl/BlogContentService.java @@ -0,0 +1,22 @@ +package com.slife.service.impl; + +import com.slife.base.service.impl.BaseService; +import com.slife.dao.BlogContentDao; +import com.slife.entity.BlogContent; +import com.slife.service.IBlogContentService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * + * @author chen + * @date 2017/11/20 + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +@Service +@Transactional(readOnly = true, rollbackFor = Exception.class) +public class BlogContentService extends BaseService implements IBlogContentService { +} diff --git a/slife-blog/src/main/resources/templates/blog/detail.ftl b/slife-blog/src/main/resources/templates/blog/detail.ftl new file mode 100644 index 0000000..7f3a518 --- /dev/null +++ b/slife-blog/src/main/resources/templates/blog/detail.ftl @@ -0,0 +1,120 @@ + + + 博客编辑 + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+
+
+
+
+

发布文章

+
+
+ +
+ +
+ +
+ +
+ +
+
+
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+ 返回列表 + + +
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/slife-blog/src/main/resources/templates/blog/list.ftl b/slife-blog/src/main/resources/templates/blog/list.ftl new file mode 100644 index 0000000..417a864 --- /dev/null +++ b/slife-blog/src/main/resources/templates/blog/list.ftl @@ -0,0 +1,127 @@ + + + + 博客列表 + + + + + + + + +
+
+
+
+ +
+ + + + + + + + + +
+ + +
+ +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/slife-common/src/main/java/com/slife/base/service/impl/BaseService.java b/slife-common/src/main/java/com/slife/base/service/impl/BaseService.java index 43f6a3b..b1a8cda 100644 --- a/slife-common/src/main/java/com/slife/base/service/impl/BaseService.java +++ b/slife-common/src/main/java/com/slife/base/service/impl/BaseService.java @@ -38,7 +38,7 @@ public class BaseService, T> extends ServiceImpl i */ protected List makeTree( List ts){ List res = new ArrayList(); - ts.stream().parallel().forEach(t->{ + ts.stream().forEach(t->{ JsTree jt = new JsTree(); jt.setId(t.getId().toString()); jt.setParent(t.getParentId() == null ? "#" : (t.getParentId().compareTo(0L) > 0 ? t diff --git a/slife-sys/src/main/java/com/slife/controller/SysDictController.java b/slife-sys/src/main/java/com/slife/controller/SysDictController.java index 28201fb..4a29890 100644 --- a/slife-sys/src/main/java/com/slife/controller/SysDictController.java +++ b/slife-sys/src/main/java/com/slife/controller/SysDictController.java @@ -34,10 +34,6 @@ public class SysDictController extends BaseController { */ @GetMapping(value = "") public String list(Model model) { - System.out.println(sysDictService); - System.out.println(AopUtils.isAopProxy(sysDictService)); - System.out.println(AopUtils.isCglibProxy(sysDictService)); - System.out.println(AopUtils.isJdkDynamicProxy(sysDictService)); model.addAttribute("dictTrees", JSON.toJSON(sysDictService.getDictTree()).toString()); return "dict/list"; } diff --git a/slife-sys/src/main/java/com/slife/controller/SysMenuController.java b/slife-sys/src/main/java/com/slife/controller/SysMenuController.java index 05a2832..2a7b0d2 100644 --- a/slife-sys/src/main/java/com/slife/controller/SysMenuController.java +++ b/slife-sys/src/main/java/com/slife/controller/SysMenuController.java @@ -59,16 +59,6 @@ public class SysMenuController extends BaseController{ model.addAttribute("menuTree", JSON.toJSONString(sysMenuService.getMenuTree())); model.addAttribute("menuTypes", SysMenuType.values()); - - System.out.println(this); - System.out.println(AopUtils.isAopProxy(this)); - System.out.println(AopUtils.isCglibProxy(this)); - System.out.println(AopUtils.isJdkDynamicProxy(this)); - - System.out.println(sysMenuService); - System.out.println(AopUtils.isAopProxy(sysMenuService)); - System.out.println(AopUtils.isCglibProxy(sysMenuService)); - System.out.println(AopUtils.isJdkDynamicProxy(sysMenuService)); return "menu/list"; } diff --git a/slife-sys/src/main/java/com/slife/controller/SysOfficeController.java b/slife-sys/src/main/java/com/slife/controller/SysOfficeController.java index 5895ff4..dad3d86 100644 --- a/slife-sys/src/main/java/com/slife/controller/SysOfficeController.java +++ b/slife-sys/src/main/java/com/slife/controller/SysOfficeController.java @@ -41,6 +41,7 @@ import java.util.Map; @RequestMapping(value = "/sys/office") public class SysOfficeController extends BaseController { + @Autowired private ISysOfficeService sysOfficeService; diff --git a/slife-sys/src/main/java/com/slife/service/impl/SysMenuService.java b/slife-sys/src/main/java/com/slife/service/impl/SysMenuService.java index e9a8978..028aa70 100644 --- a/slife-sys/src/main/java/com/slife/service/impl/SysMenuService.java +++ b/slife-sys/src/main/java/com/slife/service/impl/SysMenuService.java @@ -136,7 +136,7 @@ public class SysMenuService extends BaseService implements @Override public List getMenuTree() { - List sysMenus = selectList(null); + List sysMenus = selectList(Condition.create().orderBy("sort", true)); return makeTree(sysMenus); } diff --git a/slife-sys/src/main/java/com/slife/service/impl/SysOfficeService.java b/slife-sys/src/main/java/com/slife/service/impl/SysOfficeService.java index 3b1bbdf..30bb12b 100644 --- a/slife-sys/src/main/java/com/slife/service/impl/SysOfficeService.java +++ b/slife-sys/src/main/java/com/slife/service/impl/SysOfficeService.java @@ -1,5 +1,6 @@ package com.slife.service.impl; +import com.baomidou.mybatisplus.mapper.Condition; import com.slife.base.service.impl.BaseService; import com.slife.base.vo.JsTree; import com.slife.constant.Global; @@ -32,7 +33,7 @@ public class SysOfficeService extends BaseService imple */ @Override public List getOfficeTree() { - List sysOffices = selectList(null); + List sysOffices = selectList(Condition.create().orderBy("sort", true)); return makeTree(sysOffices); } diff --git a/slife-web/pom.xml b/slife-web/pom.xml index c25d10f..9d45852 100644 --- a/slife-web/pom.xml +++ b/slife-web/pom.xml @@ -36,7 +36,10 @@
- + + com.slife + slife-blog + com.slife slife-sys diff --git a/slife-web/src/main/java/com/slife/config/sitemesh/WebSiteMeshFilter.java b/slife-web/src/main/java/com/slife/config/sitemesh/WebSiteMeshFilter.java index b82d8eb..966a61c 100644 --- a/slife-web/src/main/java/com/slife/config/sitemesh/WebSiteMeshFilter.java +++ b/slife-web/src/main/java/com/slife/config/sitemesh/WebSiteMeshFilter.java @@ -14,7 +14,8 @@ public class WebSiteMeshFilter extends ConfigurableSiteMeshFilter { /** 需要装饰的访问路径 */ - private String contentPath="/sys/user,/sys/menu,/sys/dict,/sys/role,/sys/office,/sys/,/index,/monitor/*,/404"; + private String contentPath="/sys/user,/sys/menu,/sys/dict,/sys/role,/sys/office,/sys/,/index,/monitor/*," + + "/blog/content,/404"; /** 装饰器页面路径 */ diff --git a/slife-web/src/main/resources/application.yml b/slife-web/src/main/resources/application.yml index 0f4eeff..9ce4950 100644 --- a/slife-web/src/main/resources/application.yml +++ b/slife-web/src/main/resources/application.yml @@ -28,9 +28,9 @@ spring: datasource: driver-class-name: com.mysql.jdbc.Driver - url: jdbc:mysql://xx-:3306/slife?useUnicode=true&characterEncoding=utf8&useSSL=false + url: jdbc:mysql://127.0.0.1:3306/slife?useUnicode=true&characterEncoding=utf8&useSSL=false username: root - password: chen@123 + password: root druid: validationQuery: SELECT 1 initialSize: 10