From 48f3a1be3d6262f04c3601e95ddea43ad73c2a21 Mon Sep 17 00:00:00 2001 From: zy <942628598@qq.com> Date: Wed, 6 Nov 2019 09:51:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?blog=E5=8D=9A=E5=AE=A2=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rboat-blog/pom.xml | 30 + .../controller/BlogArticleController.java | 125 + .../controller/BlogArticleTypeController.java | 125 + .../blog/controller/BlogFriendController.java | 125 + .../blog/controller/BlogMasterController.java | 125 + .../blog/controller/BlogPhotoController.java | 125 + .../blog/controller/BlogReviewController.java | 125 + .../blog/controller/BlogWordController.java | 125 + .../com/rboat/blog/domain/BlogArticle.java | 150 + .../rboat/blog/domain/BlogArticleType.java | 79 + .../com/rboat/blog/domain/BlogFriend.java | 79 + .../com/rboat/blog/domain/BlogMaster.java | 93 + .../java/com/rboat/blog/domain/BlogPhoto.java | 94 + .../com/rboat/blog/domain/BlogReview.java | 108 + .../java/com/rboat/blog/domain/BlogWord.java | 108 + .../rboat/blog/mapper/BlogArticleMapper.java | 61 + .../blog/mapper/BlogArticleTypeMapper.java | 61 + .../rboat/blog/mapper/BlogFriendMapper.java | 61 + .../rboat/blog/mapper/BlogMasterMapper.java | 61 + .../rboat/blog/mapper/BlogPhotoMapper.java | 61 + .../rboat/blog/mapper/BlogReviewMapper.java | 61 + .../com/rboat/blog/mapper/BlogWordMapper.java | 61 + .../blog/service/IBlogArticleService.java | 61 + .../blog/service/IBlogArticleTypeService.java | 61 + .../blog/service/IBlogFriendService.java | 61 + .../blog/service/IBlogMasterService.java | 61 + .../rboat/blog/service/IBlogPhotoService.java | 61 + .../blog/service/IBlogReviewService.java | 61 + .../rboat/blog/service/IBlogWordService.java | 61 + .../service/impl/BlogArticleServiceImpl.java | 94 + .../impl/BlogArticleTypeServiceImpl.java | 94 + .../service/impl/BlogFriendServiceImpl.java | 94 + .../service/impl/BlogMasterServiceImpl.java | 94 + .../service/impl/BlogPhotoServiceImpl.java | 94 + .../service/impl/BlogReviewServiceImpl.java | 94 + .../service/impl/BlogWordServiceImpl.java | 94 + .../mapper/blog/BlogArticleMapper.xml | 94 + .../mapper/blog/BlogArticleTypeMapper.xml | 69 + .../mapper/blog/BlogFriendMapper.xml | 69 + .../mapper/blog/BlogMasterMapper.xml | 74 + .../resources/mapper/blog/BlogPhotoMapper.xml | 74 + .../mapper/blog/BlogReviewMapper.xml | 79 + .../resources/mapper/blog/BlogWordMapper.xml | 79 + .../resources/templates/blog/article/add.html | 84 + .../templates/blog/article/article.html | 140 + .../templates/blog/article/edit.html | 85 + .../resources/templates/blog/friend/add.html | 43 + .../resources/templates/blog/friend/edit.html | 44 + .../templates/blog/friend/friend.html | 102 + .../resources/templates/blog/master/add.html | 52 + .../resources/templates/blog/master/edit.html | 53 + .../templates/blog/master/master.html | 113 + .../resources/templates/blog/photo/add.html | 60 + .../resources/templates/blog/photo/edit.html | 61 + .../resources/templates/blog/photo/photo.html | 112 + .../resources/templates/blog/review/add.html | 66 + .../resources/templates/blog/review/edit.html | 67 + .../templates/blog/review/review.html | 120 + .../resources/templates/blog/type/add.html | 43 + .../resources/templates/blog/type/edit.html | 44 + .../resources/templates/blog/type/type.html | 102 + .../resources/templates/blog/word/add.html | 66 + .../resources/templates/blog/word/edit.html | 67 + .../resources/templates/blog/word/word.html | 120 + sql/t_blog.sql | 122 + ...6\350\210\237\345\215\232\345\256\242.pdm" | 2513 +++++++++++++++++ 66 files changed, 7945 insertions(+) create mode 100644 rboat-blog/pom.xml create mode 100644 rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleController.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleTypeController.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/controller/BlogFriendController.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/controller/BlogMasterController.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/controller/BlogPhotoController.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/controller/BlogReviewController.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/controller/BlogWordController.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/domain/BlogArticle.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/domain/BlogArticleType.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/domain/BlogFriend.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/domain/BlogMaster.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/domain/BlogPhoto.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/domain/BlogReview.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/domain/BlogWord.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/mapper/BlogArticleMapper.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/mapper/BlogArticleTypeMapper.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/mapper/BlogFriendMapper.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/mapper/BlogMasterMapper.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/mapper/BlogPhotoMapper.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/mapper/BlogReviewMapper.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/mapper/BlogWordMapper.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/IBlogArticleService.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/IBlogArticleTypeService.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/IBlogFriendService.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/IBlogMasterService.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/IBlogPhotoService.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/IBlogReviewService.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/IBlogWordService.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogArticleServiceImpl.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogArticleTypeServiceImpl.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogFriendServiceImpl.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogMasterServiceImpl.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogPhotoServiceImpl.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogReviewServiceImpl.java create mode 100644 rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogWordServiceImpl.java create mode 100644 rboat-blog/src/main/resources/mapper/blog/BlogArticleMapper.xml create mode 100644 rboat-blog/src/main/resources/mapper/blog/BlogArticleTypeMapper.xml create mode 100644 rboat-blog/src/main/resources/mapper/blog/BlogFriendMapper.xml create mode 100644 rboat-blog/src/main/resources/mapper/blog/BlogMasterMapper.xml create mode 100644 rboat-blog/src/main/resources/mapper/blog/BlogPhotoMapper.xml create mode 100644 rboat-blog/src/main/resources/mapper/blog/BlogReviewMapper.xml create mode 100644 rboat-blog/src/main/resources/mapper/blog/BlogWordMapper.xml create mode 100644 rboat-blog/src/main/resources/templates/blog/article/add.html create mode 100644 rboat-blog/src/main/resources/templates/blog/article/article.html create mode 100644 rboat-blog/src/main/resources/templates/blog/article/edit.html create mode 100644 rboat-blog/src/main/resources/templates/blog/friend/add.html create mode 100644 rboat-blog/src/main/resources/templates/blog/friend/edit.html create mode 100644 rboat-blog/src/main/resources/templates/blog/friend/friend.html create mode 100644 rboat-blog/src/main/resources/templates/blog/master/add.html create mode 100644 rboat-blog/src/main/resources/templates/blog/master/edit.html create mode 100644 rboat-blog/src/main/resources/templates/blog/master/master.html create mode 100644 rboat-blog/src/main/resources/templates/blog/photo/add.html create mode 100644 rboat-blog/src/main/resources/templates/blog/photo/edit.html create mode 100644 rboat-blog/src/main/resources/templates/blog/photo/photo.html create mode 100644 rboat-blog/src/main/resources/templates/blog/review/add.html create mode 100644 rboat-blog/src/main/resources/templates/blog/review/edit.html create mode 100644 rboat-blog/src/main/resources/templates/blog/review/review.html create mode 100644 rboat-blog/src/main/resources/templates/blog/type/add.html create mode 100644 rboat-blog/src/main/resources/templates/blog/type/edit.html create mode 100644 rboat-blog/src/main/resources/templates/blog/type/type.html create mode 100644 rboat-blog/src/main/resources/templates/blog/word/add.html create mode 100644 rboat-blog/src/main/resources/templates/blog/word/edit.html create mode 100644 rboat-blog/src/main/resources/templates/blog/word/word.html create mode 100644 sql/t_blog.sql create mode 100644 "sql/\351\200\206\350\210\237\345\215\232\345\256\242.pdm" diff --git a/rboat-blog/pom.xml b/rboat-blog/pom.xml new file mode 100644 index 0000000..2209a1e --- /dev/null +++ b/rboat-blog/pom.xml @@ -0,0 +1,30 @@ + + + + rboat + com.rboat + 4.0.0 + + 4.0.0 + + rboat-blog + + + 博客系统 + + + + + + + + + com.rboat + rboat-common + + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleController.java new file mode 100644 index 0000000..e725745 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleController.java @@ -0,0 +1,125 @@ +package com.rboat.web.controller.blog; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.rboat.common.annotation.Log; +import com.rboat.common.enums.BusinessType; +import com.rboat.blog.domain.BlogArticle; +import com.rboat.blog.service.IBlogArticleService; +import com.rboat.common.core.controller.BaseController; +import com.rboat.common.core.domain.AjaxResult; +import com.rboat.common.utils.poi.ExcelUtil; +import com.rboat.common.core.page.TableDataInfo; + +/** + * 文章Controller + * + * @author rboat + * @date 2019-11-05 + */ +@Controller +@RequestMapping("/blog/article") +public class BlogArticleController extends BaseController +{ + private String prefix = "blog/article"; + + @Autowired + private IBlogArticleService blogArticleService; + + @RequiresPermissions("blog:article:view") + @GetMapping() + public String article() + { + return prefix + "/article"; + } + + /** + * 查询文章列表 + */ + @RequiresPermissions("blog:article:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BlogArticle blogArticle) + { + startPage(); + List list = blogArticleService.selectBlogArticleList(blogArticle); + return getDataTable(list); + } + + /** + * 导出文章列表 + */ + @RequiresPermissions("blog:article:export") + @PostMapping("/export") + @ResponseBody + public AjaxResult export(BlogArticle blogArticle) + { + List list = blogArticleService.selectBlogArticleList(blogArticle); + ExcelUtil util = new ExcelUtil(BlogArticle.class); + return util.exportExcel(list, "article"); + } + + /** + * 新增文章 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存文章 + */ + @RequiresPermissions("blog:article:add") + @Log(title = "文章", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(BlogArticle blogArticle) + { + return toAjax(blogArticleService.insertBlogArticle(blogArticle)); + } + + /** + * 修改文章 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") String id, ModelMap mmap) + { + BlogArticle blogArticle = blogArticleService.selectBlogArticleById(id); + mmap.put("blogArticle", blogArticle); + return prefix + "/edit"; + } + + /** + * 修改保存文章 + */ + @RequiresPermissions("blog:article:edit") + @Log(title = "文章", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BlogArticle blogArticle) + { + return toAjax(blogArticleService.updateBlogArticle(blogArticle)); + } + + /** + * 删除文章 + */ + @RequiresPermissions("blog:article:remove") + @Log(title = "文章", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(blogArticleService.deleteBlogArticleByIds(ids)); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleTypeController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleTypeController.java new file mode 100644 index 0000000..0f944a0 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleTypeController.java @@ -0,0 +1,125 @@ +package com.rboat.web.controller.blog; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.rboat.common.annotation.Log; +import com.rboat.common.enums.BusinessType; +import com.rboat.blog.domain.BlogArticleType; +import com.rboat.blog.service.IBlogArticleTypeService; +import com.rboat.common.core.controller.BaseController; +import com.rboat.common.core.domain.AjaxResult; +import com.rboat.common.utils.poi.ExcelUtil; +import com.rboat.common.core.page.TableDataInfo; + +/** + * 文章类型Controller + * + * @author rboat + * @date 2019-11-05 + */ +@Controller +@RequestMapping("/blog/type") +public class BlogArticleTypeController extends BaseController +{ + private String prefix = "blog/type"; + + @Autowired + private IBlogArticleTypeService blogArticleTypeService; + + @RequiresPermissions("blog:type:view") + @GetMapping() + public String type() + { + return prefix + "/type"; + } + + /** + * 查询文章类型列表 + */ + @RequiresPermissions("blog:type:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BlogArticleType blogArticleType) + { + startPage(); + List list = blogArticleTypeService.selectBlogArticleTypeList(blogArticleType); + return getDataTable(list); + } + + /** + * 导出文章类型列表 + */ + @RequiresPermissions("blog:type:export") + @PostMapping("/export") + @ResponseBody + public AjaxResult export(BlogArticleType blogArticleType) + { + List list = blogArticleTypeService.selectBlogArticleTypeList(blogArticleType); + ExcelUtil util = new ExcelUtil(BlogArticleType.class); + return util.exportExcel(list, "type"); + } + + /** + * 新增文章类型 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存文章类型 + */ + @RequiresPermissions("blog:type:add") + @Log(title = "文章类型", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(BlogArticleType blogArticleType) + { + return toAjax(blogArticleTypeService.insertBlogArticleType(blogArticleType)); + } + + /** + * 修改文章类型 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") String id, ModelMap mmap) + { + BlogArticleType blogArticleType = blogArticleTypeService.selectBlogArticleTypeById(id); + mmap.put("blogArticleType", blogArticleType); + return prefix + "/edit"; + } + + /** + * 修改保存文章类型 + */ + @RequiresPermissions("blog:type:edit") + @Log(title = "文章类型", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BlogArticleType blogArticleType) + { + return toAjax(blogArticleTypeService.updateBlogArticleType(blogArticleType)); + } + + /** + * 删除文章类型 + */ + @RequiresPermissions("blog:type:remove") + @Log(title = "文章类型", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(blogArticleTypeService.deleteBlogArticleTypeByIds(ids)); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogFriendController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogFriendController.java new file mode 100644 index 0000000..7bdfef4 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogFriendController.java @@ -0,0 +1,125 @@ +package com.rboat.web.controller.blog; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.rboat.common.annotation.Log; +import com.rboat.common.enums.BusinessType; +import com.rboat.blog.domain.BlogFriend; +import com.rboat.blog.service.IBlogFriendService; +import com.rboat.common.core.controller.BaseController; +import com.rboat.common.core.domain.AjaxResult; +import com.rboat.common.utils.poi.ExcelUtil; +import com.rboat.common.core.page.TableDataInfo; + +/** + * 好友Controller + * + * @author rboat + * @date 2019-11-05 + */ +@Controller +@RequestMapping("/blog/friend") +public class BlogFriendController extends BaseController +{ + private String prefix = "blog/friend"; + + @Autowired + private IBlogFriendService blogFriendService; + + @RequiresPermissions("blog:friend:view") + @GetMapping() + public String friend() + { + return prefix + "/friend"; + } + + /** + * 查询好友列表 + */ + @RequiresPermissions("blog:friend:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BlogFriend blogFriend) + { + startPage(); + List list = blogFriendService.selectBlogFriendList(blogFriend); + return getDataTable(list); + } + + /** + * 导出好友列表 + */ + @RequiresPermissions("blog:friend:export") + @PostMapping("/export") + @ResponseBody + public AjaxResult export(BlogFriend blogFriend) + { + List list = blogFriendService.selectBlogFriendList(blogFriend); + ExcelUtil util = new ExcelUtil(BlogFriend.class); + return util.exportExcel(list, "friend"); + } + + /** + * 新增好友 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存好友 + */ + @RequiresPermissions("blog:friend:add") + @Log(title = "好友", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(BlogFriend blogFriend) + { + return toAjax(blogFriendService.insertBlogFriend(blogFriend)); + } + + /** + * 修改好友 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") String id, ModelMap mmap) + { + BlogFriend blogFriend = blogFriendService.selectBlogFriendById(id); + mmap.put("blogFriend", blogFriend); + return prefix + "/edit"; + } + + /** + * 修改保存好友 + */ + @RequiresPermissions("blog:friend:edit") + @Log(title = "好友", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BlogFriend blogFriend) + { + return toAjax(blogFriendService.updateBlogFriend(blogFriend)); + } + + /** + * 删除好友 + */ + @RequiresPermissions("blog:friend:remove") + @Log(title = "好友", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(blogFriendService.deleteBlogFriendByIds(ids)); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogMasterController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogMasterController.java new file mode 100644 index 0000000..122b7b7 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogMasterController.java @@ -0,0 +1,125 @@ +package com.rboat.web.controller.blog; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.rboat.common.annotation.Log; +import com.rboat.common.enums.BusinessType; +import com.rboat.blog.domain.BlogMaster; +import com.rboat.blog.service.IBlogMasterService; +import com.rboat.common.core.controller.BaseController; +import com.rboat.common.core.domain.AjaxResult; +import com.rboat.common.utils.poi.ExcelUtil; +import com.rboat.common.core.page.TableDataInfo; + +/** + * 博主Controller + * + * @author rboat + * @date 2019-11-05 + */ +@Controller +@RequestMapping("/blog/master") +public class BlogMasterController extends BaseController +{ + private String prefix = "blog/master"; + + @Autowired + private IBlogMasterService blogMasterService; + + @RequiresPermissions("blog:master:view") + @GetMapping() + public String master() + { + return prefix + "/master"; + } + + /** + * 查询博主列表 + */ + @RequiresPermissions("blog:master:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BlogMaster blogMaster) + { + startPage(); + List list = blogMasterService.selectBlogMasterList(blogMaster); + return getDataTable(list); + } + + /** + * 导出博主列表 + */ + @RequiresPermissions("blog:master:export") + @PostMapping("/export") + @ResponseBody + public AjaxResult export(BlogMaster blogMaster) + { + List list = blogMasterService.selectBlogMasterList(blogMaster); + ExcelUtil util = new ExcelUtil(BlogMaster.class); + return util.exportExcel(list, "master"); + } + + /** + * 新增博主 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存博主 + */ + @RequiresPermissions("blog:master:add") + @Log(title = "博主", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(BlogMaster blogMaster) + { + return toAjax(blogMasterService.insertBlogMaster(blogMaster)); + } + + /** + * 修改博主 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") String id, ModelMap mmap) + { + BlogMaster blogMaster = blogMasterService.selectBlogMasterById(id); + mmap.put("blogMaster", blogMaster); + return prefix + "/edit"; + } + + /** + * 修改保存博主 + */ + @RequiresPermissions("blog:master:edit") + @Log(title = "博主", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BlogMaster blogMaster) + { + return toAjax(blogMasterService.updateBlogMaster(blogMaster)); + } + + /** + * 删除博主 + */ + @RequiresPermissions("blog:master:remove") + @Log(title = "博主", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(blogMasterService.deleteBlogMasterByIds(ids)); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogPhotoController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogPhotoController.java new file mode 100644 index 0000000..b76df42 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogPhotoController.java @@ -0,0 +1,125 @@ +package com.rboat.web.controller.blog; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.rboat.common.annotation.Log; +import com.rboat.common.enums.BusinessType; +import com.rboat.blog.domain.BlogPhoto; +import com.rboat.blog.service.IBlogPhotoService; +import com.rboat.common.core.controller.BaseController; +import com.rboat.common.core.domain.AjaxResult; +import com.rboat.common.utils.poi.ExcelUtil; +import com.rboat.common.core.page.TableDataInfo; + +/** + * 相册Controller + * + * @author rboat + * @date 2019-11-05 + */ +@Controller +@RequestMapping("/blog/photo") +public class BlogPhotoController extends BaseController +{ + private String prefix = "blog/photo"; + + @Autowired + private IBlogPhotoService blogPhotoService; + + @RequiresPermissions("blog:photo:view") + @GetMapping() + public String photo() + { + return prefix + "/photo"; + } + + /** + * 查询相册列表 + */ + @RequiresPermissions("blog:photo:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BlogPhoto blogPhoto) + { + startPage(); + List list = blogPhotoService.selectBlogPhotoList(blogPhoto); + return getDataTable(list); + } + + /** + * 导出相册列表 + */ + @RequiresPermissions("blog:photo:export") + @PostMapping("/export") + @ResponseBody + public AjaxResult export(BlogPhoto blogPhoto) + { + List list = blogPhotoService.selectBlogPhotoList(blogPhoto); + ExcelUtil util = new ExcelUtil(BlogPhoto.class); + return util.exportExcel(list, "photo"); + } + + /** + * 新增相册 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存相册 + */ + @RequiresPermissions("blog:photo:add") + @Log(title = "相册", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(BlogPhoto blogPhoto) + { + return toAjax(blogPhotoService.insertBlogPhoto(blogPhoto)); + } + + /** + * 修改相册 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") String id, ModelMap mmap) + { + BlogPhoto blogPhoto = blogPhotoService.selectBlogPhotoById(id); + mmap.put("blogPhoto", blogPhoto); + return prefix + "/edit"; + } + + /** + * 修改保存相册 + */ + @RequiresPermissions("blog:photo:edit") + @Log(title = "相册", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BlogPhoto blogPhoto) + { + return toAjax(blogPhotoService.updateBlogPhoto(blogPhoto)); + } + + /** + * 删除相册 + */ + @RequiresPermissions("blog:photo:remove") + @Log(title = "相册", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(blogPhotoService.deleteBlogPhotoByIds(ids)); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogReviewController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogReviewController.java new file mode 100644 index 0000000..8d1becd --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogReviewController.java @@ -0,0 +1,125 @@ +package com.rboat.web.controller.blog; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.rboat.common.annotation.Log; +import com.rboat.common.enums.BusinessType; +import com.rboat.blog.domain.BlogReview; +import com.rboat.blog.service.IBlogReviewService; +import com.rboat.common.core.controller.BaseController; +import com.rboat.common.core.domain.AjaxResult; +import com.rboat.common.utils.poi.ExcelUtil; +import com.rboat.common.core.page.TableDataInfo; + +/** + * 评论Controller + * + * @author rboat + * @date 2019-11-05 + */ +@Controller +@RequestMapping("/blog/review") +public class BlogReviewController extends BaseController +{ + private String prefix = "blog/review"; + + @Autowired + private IBlogReviewService blogReviewService; + + @RequiresPermissions("blog:review:view") + @GetMapping() + public String review() + { + return prefix + "/review"; + } + + /** + * 查询评论列表 + */ + @RequiresPermissions("blog:review:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BlogReview blogReview) + { + startPage(); + List list = blogReviewService.selectBlogReviewList(blogReview); + return getDataTable(list); + } + + /** + * 导出评论列表 + */ + @RequiresPermissions("blog:review:export") + @PostMapping("/export") + @ResponseBody + public AjaxResult export(BlogReview blogReview) + { + List list = blogReviewService.selectBlogReviewList(blogReview); + ExcelUtil util = new ExcelUtil(BlogReview.class); + return util.exportExcel(list, "review"); + } + + /** + * 新增评论 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存评论 + */ + @RequiresPermissions("blog:review:add") + @Log(title = "评论", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(BlogReview blogReview) + { + return toAjax(blogReviewService.insertBlogReview(blogReview)); + } + + /** + * 修改评论 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") String id, ModelMap mmap) + { + BlogReview blogReview = blogReviewService.selectBlogReviewById(id); + mmap.put("blogReview", blogReview); + return prefix + "/edit"; + } + + /** + * 修改保存评论 + */ + @RequiresPermissions("blog:review:edit") + @Log(title = "评论", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BlogReview blogReview) + { + return toAjax(blogReviewService.updateBlogReview(blogReview)); + } + + /** + * 删除评论 + */ + @RequiresPermissions("blog:review:remove") + @Log(title = "评论", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(blogReviewService.deleteBlogReviewByIds(ids)); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogWordController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogWordController.java new file mode 100644 index 0000000..2e4396f --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogWordController.java @@ -0,0 +1,125 @@ +package com.rboat.web.controller.blog; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.rboat.common.annotation.Log; +import com.rboat.common.enums.BusinessType; +import com.rboat.blog.domain.BlogWord; +import com.rboat.blog.service.IBlogWordService; +import com.rboat.common.core.controller.BaseController; +import com.rboat.common.core.domain.AjaxResult; +import com.rboat.common.utils.poi.ExcelUtil; +import com.rboat.common.core.page.TableDataInfo; + +/** + * 留言Controller + * + * @author rboat + * @date 2019-11-05 + */ +@Controller +@RequestMapping("/blog/word") +public class BlogWordController extends BaseController +{ + private String prefix = "blog/word"; + + @Autowired + private IBlogWordService blogWordService; + + @RequiresPermissions("blog:word:view") + @GetMapping() + public String word() + { + return prefix + "/word"; + } + + /** + * 查询留言列表 + */ + @RequiresPermissions("blog:word:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(BlogWord blogWord) + { + startPage(); + List list = blogWordService.selectBlogWordList(blogWord); + return getDataTable(list); + } + + /** + * 导出留言列表 + */ + @RequiresPermissions("blog:word:export") + @PostMapping("/export") + @ResponseBody + public AjaxResult export(BlogWord blogWord) + { + List list = blogWordService.selectBlogWordList(blogWord); + ExcelUtil util = new ExcelUtil(BlogWord.class); + return util.exportExcel(list, "word"); + } + + /** + * 新增留言 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存留言 + */ + @RequiresPermissions("blog:word:add") + @Log(title = "留言", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(BlogWord blogWord) + { + return toAjax(blogWordService.insertBlogWord(blogWord)); + } + + /** + * 修改留言 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") String id, ModelMap mmap) + { + BlogWord blogWord = blogWordService.selectBlogWordById(id); + mmap.put("blogWord", blogWord); + return prefix + "/edit"; + } + + /** + * 修改保存留言 + */ + @RequiresPermissions("blog:word:edit") + @Log(title = "留言", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(BlogWord blogWord) + { + return toAjax(blogWordService.updateBlogWord(blogWord)); + } + + /** + * 删除留言 + */ + @RequiresPermissions("blog:word:remove") + @Log(title = "留言", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(blogWordService.deleteBlogWordByIds(ids)); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/domain/BlogArticle.java b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogArticle.java new file mode 100644 index 0000000..6f8a312 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogArticle.java @@ -0,0 +1,150 @@ +package com.rboat.blog.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.rboat.common.annotation.Excel; +import com.rboat.common.core.domain.BaseEntity; +import java.util.Date; + +/** + * 文章对象 blog_article + * + * @author rboat + * @date 2019-11-05 + */ +public class BlogArticle extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private String id; + + /** 文章类型id */ + @Excel(name = "文章类型id") + private String articleTypeId; + + /** 文章标题 */ + @Excel(name = "文章标题") + private String articleTitle; + + /** 文章信息 */ + @Excel(name = "文章信息") + private String articleInfo; + + /** 文章内容 */ + @Excel(name = "文章内容") + private String articleContent; + + /** 发布时间 */ + @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date articlePublishTime; + + /** 阅读数(自增) */ + @Excel(name = "阅读数(自增)") + private Long articleCount; + + /** 文章来源(0:原创;1:转载) */ + @Excel(name = "文章来源(0:原创;1:转载)") + private Long articleFrom; + + /** 博主id */ + @Excel(name = "博主id") + private String articleMasterId; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setArticleTypeId(String articleTypeId) + { + this.articleTypeId = articleTypeId; + } + + public String getArticleTypeId() + { + return articleTypeId; + } + public void setArticleTitle(String articleTitle) + { + this.articleTitle = articleTitle; + } + + public String getArticleTitle() + { + return articleTitle; + } + public void setArticleInfo(String articleInfo) + { + this.articleInfo = articleInfo; + } + + public String getArticleInfo() + { + return articleInfo; + } + public void setArticleContent(String articleContent) + { + this.articleContent = articleContent; + } + + public String getArticleContent() + { + return articleContent; + } + public void setArticlePublishTime(Date articlePublishTime) + { + this.articlePublishTime = articlePublishTime; + } + + public Date getArticlePublishTime() + { + return articlePublishTime; + } + public void setArticleCount(Long articleCount) + { + this.articleCount = articleCount; + } + + public Long getArticleCount() + { + return articleCount; + } + public void setArticleFrom(Long articleFrom) + { + this.articleFrom = articleFrom; + } + + public Long getArticleFrom() + { + return articleFrom; + } + public void setArticleMasterId(String articleMasterId) + { + this.articleMasterId = articleMasterId; + } + + public String getArticleMasterId() + { + return articleMasterId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("articleTypeId", getArticleTypeId()) + .append("articleTitle", getArticleTitle()) + .append("articleInfo", getArticleInfo()) + .append("articleContent", getArticleContent()) + .append("articlePublishTime", getArticlePublishTime()) + .append("articleCount", getArticleCount()) + .append("articleFrom", getArticleFrom()) + .append("articleMasterId", getArticleMasterId()) + .toString(); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/domain/BlogArticleType.java b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogArticleType.java new file mode 100644 index 0000000..38e0c1c --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogArticleType.java @@ -0,0 +1,79 @@ +package com.rboat.blog.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.rboat.common.annotation.Excel; +import com.rboat.common.core.domain.BaseEntity; + +/** + * 文章类型对象 blog_article_type + * + * @author rboat + * @date 2019-11-05 + */ +public class BlogArticleType extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private String id; + + /** 类型名称 */ + @Excel(name = "类型名称") + private String name; + + /** 父级id */ + @Excel(name = "父级id") + private String parent; + + /** 描述信息 */ + @Excel(name = "描述信息") + private String info; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setParent(String parent) + { + this.parent = parent; + } + + public String getParent() + { + return parent; + } + public void setInfo(String info) + { + this.info = info; + } + + public String getInfo() + { + return info; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("parent", getParent()) + .append("info", getInfo()) + .toString(); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/domain/BlogFriend.java b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogFriend.java new file mode 100644 index 0000000..4cd0f62 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogFriend.java @@ -0,0 +1,79 @@ +package com.rboat.blog.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.rboat.common.annotation.Excel; +import com.rboat.common.core.domain.BaseEntity; + +/** + * 好友对象 blog_friend + * + * @author rboat + * @date 2019-11-05 + */ +public class BlogFriend extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private String id; + + /** 博主id */ + @Excel(name = "博主id") + private String friendMasterId; + + /** 好友的id */ + @Excel(name = "好友的id") + private String friendFriendId; + + /** 好友备注名 */ + @Excel(name = "好友备注名") + private String friendReName; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setFriendMasterId(String friendMasterId) + { + this.friendMasterId = friendMasterId; + } + + public String getFriendMasterId() + { + return friendMasterId; + } + public void setFriendFriendId(String friendFriendId) + { + this.friendFriendId = friendFriendId; + } + + public String getFriendFriendId() + { + return friendFriendId; + } + public void setFriendReName(String friendReName) + { + this.friendReName = friendReName; + } + + public String getFriendReName() + { + return friendReName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("friendMasterId", getFriendMasterId()) + .append("friendFriendId", getFriendFriendId()) + .append("friendReName", getFriendReName()) + .toString(); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/domain/BlogMaster.java b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogMaster.java new file mode 100644 index 0000000..d5e437f --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogMaster.java @@ -0,0 +1,93 @@ +package com.rboat.blog.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.rboat.common.annotation.Excel; +import com.rboat.common.core.domain.BaseEntity; + +/** + * 博主对象 blog_master + * + * @author rboat + * @date 2019-11-05 + */ +public class BlogMaster extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private String id; + + /** 博主名称 */ + @Excel(name = "博主名称") + private String masterName; + + /** 密码 */ + @Excel(name = "密码") + private String masterPassword; + + /** 博主oicq(三方id) */ + @Excel(name = "博主oicq(三方id)") + private String masterOicq; + + /** 0:女;1:男 */ + @Excel(name = "0:女;1:男") + private String masterSex; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setMasterName(String masterName) + { + this.masterName = masterName; + } + + public String getMasterName() + { + return masterName; + } + public void setMasterPassword(String masterPassword) + { + this.masterPassword = masterPassword; + } + + public String getMasterPassword() + { + return masterPassword; + } + public void setMasterOicq(String masterOicq) + { + this.masterOicq = masterOicq; + } + + public String getMasterOicq() + { + return masterOicq; + } + public void setMasterSex(String masterSex) + { + this.masterSex = masterSex; + } + + public String getMasterSex() + { + return masterSex; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("masterName", getMasterName()) + .append("masterPassword", getMasterPassword()) + .append("masterOicq", getMasterOicq()) + .append("masterSex", getMasterSex()) + .toString(); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/domain/BlogPhoto.java b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogPhoto.java new file mode 100644 index 0000000..539b126 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogPhoto.java @@ -0,0 +1,94 @@ +package com.rboat.blog.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.rboat.common.annotation.Excel; +import com.rboat.common.core.domain.BaseEntity; +import java.util.Date; + +/** + * 相册对象 blog_photo + * + * @author rboat + * @date 2019-11-05 + */ +public class BlogPhoto extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private String id; + + /** 图片存放地址 */ + @Excel(name = "图片存放地址") + private String photoAddr; + + /** 上传日期 */ + @Excel(name = "上传日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date photoAddTime; + + /** 图片备注 */ + @Excel(name = "图片备注") + private String photoInfo; + + /** 上传人(博主) */ + @Excel(name = "上传人(博主)") + private String photoMasterId; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setPhotoAddr(String photoAddr) + { + this.photoAddr = photoAddr; + } + + public String getPhotoAddr() + { + return photoAddr; + } + public void setPhotoAddTime(Date photoAddTime) + { + this.photoAddTime = photoAddTime; + } + + public Date getPhotoAddTime() + { + return photoAddTime; + } + public void setPhotoInfo(String photoInfo) + { + this.photoInfo = photoInfo; + } + + public String getPhotoInfo() + { + return photoInfo; + } + public void setPhotoMasterId(String photoMasterId) + { + this.photoMasterId = photoMasterId; + } + + public String getPhotoMasterId() + { + return photoMasterId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("photoAddr", getPhotoAddr()) + .append("photoAddTime", getPhotoAddTime()) + .append("photoInfo", getPhotoInfo()) + .append("photoMasterId", getPhotoMasterId()) + .toString(); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/domain/BlogReview.java b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogReview.java new file mode 100644 index 0000000..a520b42 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogReview.java @@ -0,0 +1,108 @@ +package com.rboat.blog.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.rboat.common.annotation.Excel; +import com.rboat.common.core.domain.BaseEntity; +import java.util.Date; + +/** + * 评论对象 blog_review + * + * @author rboat + * @date 2019-11-05 + */ +public class BlogReview extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private String id; + + /** 评论的文章id */ + @Excel(name = "评论的文章id") + private String reviewArticleid; + + /** 博主id */ + @Excel(name = "博主id") + private String reviewMasterId; + + /** 评论的作者id */ + @Excel(name = "评论的作者id") + private String reviewAuthorId; + + /** 评论内容 */ + @Excel(name = "评论内容") + private String reviewContent; + + /** 评论时间 */ + @Excel(name = "评论时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date reviewTime; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setReviewArticleid(String reviewArticleid) + { + this.reviewArticleid = reviewArticleid; + } + + public String getReviewArticleid() + { + return reviewArticleid; + } + public void setReviewMasterId(String reviewMasterId) + { + this.reviewMasterId = reviewMasterId; + } + + public String getReviewMasterId() + { + return reviewMasterId; + } + public void setReviewAuthorId(String reviewAuthorId) + { + this.reviewAuthorId = reviewAuthorId; + } + + public String getReviewAuthorId() + { + return reviewAuthorId; + } + public void setReviewContent(String reviewContent) + { + this.reviewContent = reviewContent; + } + + public String getReviewContent() + { + return reviewContent; + } + public void setReviewTime(Date reviewTime) + { + this.reviewTime = reviewTime; + } + + public Date getReviewTime() + { + return reviewTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("reviewArticleid", getReviewArticleid()) + .append("reviewMasterId", getReviewMasterId()) + .append("reviewAuthorId", getReviewAuthorId()) + .append("reviewContent", getReviewContent()) + .append("reviewTime", getReviewTime()) + .toString(); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/domain/BlogWord.java b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogWord.java new file mode 100644 index 0000000..832c4fa --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/domain/BlogWord.java @@ -0,0 +1,108 @@ +package com.rboat.blog.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.rboat.common.annotation.Excel; +import com.rboat.common.core.domain.BaseEntity; +import java.util.Date; + +/** + * 留言对象 blog_word + * + * @author rboat + * @date 2019-11-05 + */ +public class BlogWord extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键id */ + private String id; + + /** 留言标题 */ + @Excel(name = "留言标题") + private String wordTitle; + + /** 留言内容 */ + @Excel(name = "留言内容") + private String wordContent; + + /** 留言的时间 */ + @Excel(name = "留言的时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date wordTime; + + /** 留言的作者id */ + @Excel(name = "留言的作者id") + private String wordAuthorId; + + /** 留言的对象id(博主id) */ + @Excel(name = "留言的对象id(博主id)") + private String wordMasterId; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setWordTitle(String wordTitle) + { + this.wordTitle = wordTitle; + } + + public String getWordTitle() + { + return wordTitle; + } + public void setWordContent(String wordContent) + { + this.wordContent = wordContent; + } + + public String getWordContent() + { + return wordContent; + } + public void setWordTime(Date wordTime) + { + this.wordTime = wordTime; + } + + public Date getWordTime() + { + return wordTime; + } + public void setWordAuthorId(String wordAuthorId) + { + this.wordAuthorId = wordAuthorId; + } + + public String getWordAuthorId() + { + return wordAuthorId; + } + public void setWordMasterId(String wordMasterId) + { + this.wordMasterId = wordMasterId; + } + + public String getWordMasterId() + { + return wordMasterId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("wordTitle", getWordTitle()) + .append("wordContent", getWordContent()) + .append("wordTime", getWordTime()) + .append("wordAuthorId", getWordAuthorId()) + .append("wordMasterId", getWordMasterId()) + .toString(); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogArticleMapper.java b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogArticleMapper.java new file mode 100644 index 0000000..50f8528 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogArticleMapper.java @@ -0,0 +1,61 @@ +package com.rboat.blog.mapper; + +import com.rboat.blog.domain.BlogArticle; +import java.util.List; + +/** + * 文章Mapper接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface BlogArticleMapper +{ + /** + * 查询文章 + * + * @param id 文章ID + * @return 文章 + */ + public BlogArticle selectBlogArticleById(String id); + + /** + * 查询文章列表 + * + * @param blogArticle 文章 + * @return 文章集合 + */ + public List selectBlogArticleList(BlogArticle blogArticle); + + /** + * 新增文章 + * + * @param blogArticle 文章 + * @return 结果 + */ + public int insertBlogArticle(BlogArticle blogArticle); + + /** + * 修改文章 + * + * @param blogArticle 文章 + * @return 结果 + */ + public int updateBlogArticle(BlogArticle blogArticle); + + /** + * 删除文章 + * + * @param id 文章ID + * @return 结果 + */ + public int deleteBlogArticleById(String id); + + /** + * 批量删除文章 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogArticleByIds(String[] ids); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogArticleTypeMapper.java b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogArticleTypeMapper.java new file mode 100644 index 0000000..b932a73 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogArticleTypeMapper.java @@ -0,0 +1,61 @@ +package com.rboat.blog.mapper; + +import com.rboat.blog.domain.BlogArticleType; +import java.util.List; + +/** + * 文章类型Mapper接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface BlogArticleTypeMapper +{ + /** + * 查询文章类型 + * + * @param id 文章类型ID + * @return 文章类型 + */ + public BlogArticleType selectBlogArticleTypeById(String id); + + /** + * 查询文章类型列表 + * + * @param blogArticleType 文章类型 + * @return 文章类型集合 + */ + public List selectBlogArticleTypeList(BlogArticleType blogArticleType); + + /** + * 新增文章类型 + * + * @param blogArticleType 文章类型 + * @return 结果 + */ + public int insertBlogArticleType(BlogArticleType blogArticleType); + + /** + * 修改文章类型 + * + * @param blogArticleType 文章类型 + * @return 结果 + */ + public int updateBlogArticleType(BlogArticleType blogArticleType); + + /** + * 删除文章类型 + * + * @param id 文章类型ID + * @return 结果 + */ + public int deleteBlogArticleTypeById(String id); + + /** + * 批量删除文章类型 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogArticleTypeByIds(String[] ids); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogFriendMapper.java b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogFriendMapper.java new file mode 100644 index 0000000..4abd5dc --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogFriendMapper.java @@ -0,0 +1,61 @@ +package com.rboat.blog.mapper; + +import com.rboat.blog.domain.BlogFriend; +import java.util.List; + +/** + * 好友Mapper接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface BlogFriendMapper +{ + /** + * 查询好友 + * + * @param id 好友ID + * @return 好友 + */ + public BlogFriend selectBlogFriendById(String id); + + /** + * 查询好友列表 + * + * @param blogFriend 好友 + * @return 好友集合 + */ + public List selectBlogFriendList(BlogFriend blogFriend); + + /** + * 新增好友 + * + * @param blogFriend 好友 + * @return 结果 + */ + public int insertBlogFriend(BlogFriend blogFriend); + + /** + * 修改好友 + * + * @param blogFriend 好友 + * @return 结果 + */ + public int updateBlogFriend(BlogFriend blogFriend); + + /** + * 删除好友 + * + * @param id 好友ID + * @return 结果 + */ + public int deleteBlogFriendById(String id); + + /** + * 批量删除好友 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogFriendByIds(String[] ids); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogMasterMapper.java b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogMasterMapper.java new file mode 100644 index 0000000..54e3c4f --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogMasterMapper.java @@ -0,0 +1,61 @@ +package com.rboat.blog.mapper; + +import com.rboat.blog.domain.BlogMaster; +import java.util.List; + +/** + * 博主Mapper接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface BlogMasterMapper +{ + /** + * 查询博主 + * + * @param id 博主ID + * @return 博主 + */ + public BlogMaster selectBlogMasterById(String id); + + /** + * 查询博主列表 + * + * @param blogMaster 博主 + * @return 博主集合 + */ + public List selectBlogMasterList(BlogMaster blogMaster); + + /** + * 新增博主 + * + * @param blogMaster 博主 + * @return 结果 + */ + public int insertBlogMaster(BlogMaster blogMaster); + + /** + * 修改博主 + * + * @param blogMaster 博主 + * @return 结果 + */ + public int updateBlogMaster(BlogMaster blogMaster); + + /** + * 删除博主 + * + * @param id 博主ID + * @return 结果 + */ + public int deleteBlogMasterById(String id); + + /** + * 批量删除博主 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogMasterByIds(String[] ids); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogPhotoMapper.java b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogPhotoMapper.java new file mode 100644 index 0000000..47b47ca --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogPhotoMapper.java @@ -0,0 +1,61 @@ +package com.rboat.blog.mapper; + +import com.rboat.blog.domain.BlogPhoto; +import java.util.List; + +/** + * 相册Mapper接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface BlogPhotoMapper +{ + /** + * 查询相册 + * + * @param id 相册ID + * @return 相册 + */ + public BlogPhoto selectBlogPhotoById(String id); + + /** + * 查询相册列表 + * + * @param blogPhoto 相册 + * @return 相册集合 + */ + public List selectBlogPhotoList(BlogPhoto blogPhoto); + + /** + * 新增相册 + * + * @param blogPhoto 相册 + * @return 结果 + */ + public int insertBlogPhoto(BlogPhoto blogPhoto); + + /** + * 修改相册 + * + * @param blogPhoto 相册 + * @return 结果 + */ + public int updateBlogPhoto(BlogPhoto blogPhoto); + + /** + * 删除相册 + * + * @param id 相册ID + * @return 结果 + */ + public int deleteBlogPhotoById(String id); + + /** + * 批量删除相册 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogPhotoByIds(String[] ids); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogReviewMapper.java b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogReviewMapper.java new file mode 100644 index 0000000..cca2f04 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogReviewMapper.java @@ -0,0 +1,61 @@ +package com.rboat.blog.mapper; + +import com.rboat.blog.domain.BlogReview; +import java.util.List; + +/** + * 评论Mapper接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface BlogReviewMapper +{ + /** + * 查询评论 + * + * @param id 评论ID + * @return 评论 + */ + public BlogReview selectBlogReviewById(String id); + + /** + * 查询评论列表 + * + * @param blogReview 评论 + * @return 评论集合 + */ + public List selectBlogReviewList(BlogReview blogReview); + + /** + * 新增评论 + * + * @param blogReview 评论 + * @return 结果 + */ + public int insertBlogReview(BlogReview blogReview); + + /** + * 修改评论 + * + * @param blogReview 评论 + * @return 结果 + */ + public int updateBlogReview(BlogReview blogReview); + + /** + * 删除评论 + * + * @param id 评论ID + * @return 结果 + */ + public int deleteBlogReviewById(String id); + + /** + * 批量删除评论 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogReviewByIds(String[] ids); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogWordMapper.java b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogWordMapper.java new file mode 100644 index 0000000..61a3076 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/mapper/BlogWordMapper.java @@ -0,0 +1,61 @@ +package com.rboat.blog.mapper; + +import com.rboat.blog.domain.BlogWord; +import java.util.List; + +/** + * 留言Mapper接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface BlogWordMapper +{ + /** + * 查询留言 + * + * @param id 留言ID + * @return 留言 + */ + public BlogWord selectBlogWordById(String id); + + /** + * 查询留言列表 + * + * @param blogWord 留言 + * @return 留言集合 + */ + public List selectBlogWordList(BlogWord blogWord); + + /** + * 新增留言 + * + * @param blogWord 留言 + * @return 结果 + */ + public int insertBlogWord(BlogWord blogWord); + + /** + * 修改留言 + * + * @param blogWord 留言 + * @return 结果 + */ + public int updateBlogWord(BlogWord blogWord); + + /** + * 删除留言 + * + * @param id 留言ID + * @return 结果 + */ + public int deleteBlogWordById(String id); + + /** + * 批量删除留言 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogWordByIds(String[] ids); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/IBlogArticleService.java b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogArticleService.java new file mode 100644 index 0000000..54cb4b7 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogArticleService.java @@ -0,0 +1,61 @@ +package com.rboat.blog.service; + +import com.rboat.blog.domain.BlogArticle; +import java.util.List; + +/** + * 文章Service接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface IBlogArticleService +{ + /** + * 查询文章 + * + * @param id 文章ID + * @return 文章 + */ + public BlogArticle selectBlogArticleById(String id); + + /** + * 查询文章列表 + * + * @param blogArticle 文章 + * @return 文章集合 + */ + public List selectBlogArticleList(BlogArticle blogArticle); + + /** + * 新增文章 + * + * @param blogArticle 文章 + * @return 结果 + */ + public int insertBlogArticle(BlogArticle blogArticle); + + /** + * 修改文章 + * + * @param blogArticle 文章 + * @return 结果 + */ + public int updateBlogArticle(BlogArticle blogArticle); + + /** + * 批量删除文章 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogArticleByIds(String ids); + + /** + * 删除文章信息 + * + * @param id 文章ID + * @return 结果 + */ + public int deleteBlogArticleById(String id); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/IBlogArticleTypeService.java b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogArticleTypeService.java new file mode 100644 index 0000000..23ce91d --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogArticleTypeService.java @@ -0,0 +1,61 @@ +package com.rboat.blog.service; + +import com.rboat.blog.domain.BlogArticleType; +import java.util.List; + +/** + * 文章类型Service接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface IBlogArticleTypeService +{ + /** + * 查询文章类型 + * + * @param id 文章类型ID + * @return 文章类型 + */ + public BlogArticleType selectBlogArticleTypeById(String id); + + /** + * 查询文章类型列表 + * + * @param blogArticleType 文章类型 + * @return 文章类型集合 + */ + public List selectBlogArticleTypeList(BlogArticleType blogArticleType); + + /** + * 新增文章类型 + * + * @param blogArticleType 文章类型 + * @return 结果 + */ + public int insertBlogArticleType(BlogArticleType blogArticleType); + + /** + * 修改文章类型 + * + * @param blogArticleType 文章类型 + * @return 结果 + */ + public int updateBlogArticleType(BlogArticleType blogArticleType); + + /** + * 批量删除文章类型 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogArticleTypeByIds(String ids); + + /** + * 删除文章类型信息 + * + * @param id 文章类型ID + * @return 结果 + */ + public int deleteBlogArticleTypeById(String id); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/IBlogFriendService.java b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogFriendService.java new file mode 100644 index 0000000..0977686 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogFriendService.java @@ -0,0 +1,61 @@ +package com.rboat.blog.service; + +import com.rboat.blog.domain.BlogFriend; +import java.util.List; + +/** + * 好友Service接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface IBlogFriendService +{ + /** + * 查询好友 + * + * @param id 好友ID + * @return 好友 + */ + public BlogFriend selectBlogFriendById(String id); + + /** + * 查询好友列表 + * + * @param blogFriend 好友 + * @return 好友集合 + */ + public List selectBlogFriendList(BlogFriend blogFriend); + + /** + * 新增好友 + * + * @param blogFriend 好友 + * @return 结果 + */ + public int insertBlogFriend(BlogFriend blogFriend); + + /** + * 修改好友 + * + * @param blogFriend 好友 + * @return 结果 + */ + public int updateBlogFriend(BlogFriend blogFriend); + + /** + * 批量删除好友 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogFriendByIds(String ids); + + /** + * 删除好友信息 + * + * @param id 好友ID + * @return 结果 + */ + public int deleteBlogFriendById(String id); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/IBlogMasterService.java b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogMasterService.java new file mode 100644 index 0000000..e2f7225 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogMasterService.java @@ -0,0 +1,61 @@ +package com.rboat.blog.service; + +import com.rboat.blog.domain.BlogMaster; +import java.util.List; + +/** + * 博主Service接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface IBlogMasterService +{ + /** + * 查询博主 + * + * @param id 博主ID + * @return 博主 + */ + public BlogMaster selectBlogMasterById(String id); + + /** + * 查询博主列表 + * + * @param blogMaster 博主 + * @return 博主集合 + */ + public List selectBlogMasterList(BlogMaster blogMaster); + + /** + * 新增博主 + * + * @param blogMaster 博主 + * @return 结果 + */ + public int insertBlogMaster(BlogMaster blogMaster); + + /** + * 修改博主 + * + * @param blogMaster 博主 + * @return 结果 + */ + public int updateBlogMaster(BlogMaster blogMaster); + + /** + * 批量删除博主 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogMasterByIds(String ids); + + /** + * 删除博主信息 + * + * @param id 博主ID + * @return 结果 + */ + public int deleteBlogMasterById(String id); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/IBlogPhotoService.java b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogPhotoService.java new file mode 100644 index 0000000..08a2238 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogPhotoService.java @@ -0,0 +1,61 @@ +package com.rboat.blog.service; + +import com.rboat.blog.domain.BlogPhoto; +import java.util.List; + +/** + * 相册Service接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface IBlogPhotoService +{ + /** + * 查询相册 + * + * @param id 相册ID + * @return 相册 + */ + public BlogPhoto selectBlogPhotoById(String id); + + /** + * 查询相册列表 + * + * @param blogPhoto 相册 + * @return 相册集合 + */ + public List selectBlogPhotoList(BlogPhoto blogPhoto); + + /** + * 新增相册 + * + * @param blogPhoto 相册 + * @return 结果 + */ + public int insertBlogPhoto(BlogPhoto blogPhoto); + + /** + * 修改相册 + * + * @param blogPhoto 相册 + * @return 结果 + */ + public int updateBlogPhoto(BlogPhoto blogPhoto); + + /** + * 批量删除相册 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogPhotoByIds(String ids); + + /** + * 删除相册信息 + * + * @param id 相册ID + * @return 结果 + */ + public int deleteBlogPhotoById(String id); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/IBlogReviewService.java b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogReviewService.java new file mode 100644 index 0000000..7b0c074 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogReviewService.java @@ -0,0 +1,61 @@ +package com.rboat.blog.service; + +import com.rboat.blog.domain.BlogReview; +import java.util.List; + +/** + * 评论Service接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface IBlogReviewService +{ + /** + * 查询评论 + * + * @param id 评论ID + * @return 评论 + */ + public BlogReview selectBlogReviewById(String id); + + /** + * 查询评论列表 + * + * @param blogReview 评论 + * @return 评论集合 + */ + public List selectBlogReviewList(BlogReview blogReview); + + /** + * 新增评论 + * + * @param blogReview 评论 + * @return 结果 + */ + public int insertBlogReview(BlogReview blogReview); + + /** + * 修改评论 + * + * @param blogReview 评论 + * @return 结果 + */ + public int updateBlogReview(BlogReview blogReview); + + /** + * 批量删除评论 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogReviewByIds(String ids); + + /** + * 删除评论信息 + * + * @param id 评论ID + * @return 结果 + */ + public int deleteBlogReviewById(String id); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/IBlogWordService.java b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogWordService.java new file mode 100644 index 0000000..5c333d9 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/IBlogWordService.java @@ -0,0 +1,61 @@ +package com.rboat.blog.service; + +import com.rboat.blog.domain.BlogWord; +import java.util.List; + +/** + * 留言Service接口 + * + * @author rboat + * @date 2019-11-05 + */ +public interface IBlogWordService +{ + /** + * 查询留言 + * + * @param id 留言ID + * @return 留言 + */ + public BlogWord selectBlogWordById(String id); + + /** + * 查询留言列表 + * + * @param blogWord 留言 + * @return 留言集合 + */ + public List selectBlogWordList(BlogWord blogWord); + + /** + * 新增留言 + * + * @param blogWord 留言 + * @return 结果 + */ + public int insertBlogWord(BlogWord blogWord); + + /** + * 修改留言 + * + * @param blogWord 留言 + * @return 结果 + */ + public int updateBlogWord(BlogWord blogWord); + + /** + * 批量删除留言 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteBlogWordByIds(String ids); + + /** + * 删除留言信息 + * + * @param id 留言ID + * @return 结果 + */ + public int deleteBlogWordById(String id); +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogArticleServiceImpl.java b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogArticleServiceImpl.java new file mode 100644 index 0000000..b894b16 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogArticleServiceImpl.java @@ -0,0 +1,94 @@ +package com.rboat.blog.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.rboat.blog.mapper.BlogArticleMapper; +import com.rboat.blog.domain.BlogArticle; +import com.rboat.blog.service.IBlogArticleService; +import com.rboat.common.core.text.Convert; + +/** + * 文章Service业务层处理 + * + * @author rboat + * @date 2019-11-05 + */ +@Service +public class BlogArticleServiceImpl implements IBlogArticleService +{ + @Autowired + private BlogArticleMapper blogArticleMapper; + + /** + * 查询文章 + * + * @param id 文章ID + * @return 文章 + */ + @Override + public BlogArticle selectBlogArticleById(String id) + { + return blogArticleMapper.selectBlogArticleById(id); + } + + /** + * 查询文章列表 + * + * @param blogArticle 文章 + * @return 文章 + */ + @Override + public List selectBlogArticleList(BlogArticle blogArticle) + { + return blogArticleMapper.selectBlogArticleList(blogArticle); + } + + /** + * 新增文章 + * + * @param blogArticle 文章 + * @return 结果 + */ + @Override + public int insertBlogArticle(BlogArticle blogArticle) + { + return blogArticleMapper.insertBlogArticle(blogArticle); + } + + /** + * 修改文章 + * + * @param blogArticle 文章 + * @return 结果 + */ + @Override + public int updateBlogArticle(BlogArticle blogArticle) + { + return blogArticleMapper.updateBlogArticle(blogArticle); + } + + /** + * 删除文章对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteBlogArticleByIds(String ids) + { + return blogArticleMapper.deleteBlogArticleByIds(Convert.toStrArray(ids)); + } + + /** + * 删除文章信息 + * + * @param id 文章ID + * @return 结果 + */ + @Override + public int deleteBlogArticleById(String id) + { + return blogArticleMapper.deleteBlogArticleById(id); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogArticleTypeServiceImpl.java b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogArticleTypeServiceImpl.java new file mode 100644 index 0000000..96b9874 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogArticleTypeServiceImpl.java @@ -0,0 +1,94 @@ +package com.rboat.blog.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.rboat.blog.mapper.BlogArticleTypeMapper; +import com.rboat.blog.domain.BlogArticleType; +import com.rboat.blog.service.IBlogArticleTypeService; +import com.rboat.common.core.text.Convert; + +/** + * 文章类型Service业务层处理 + * + * @author rboat + * @date 2019-11-05 + */ +@Service +public class BlogArticleTypeServiceImpl implements IBlogArticleTypeService +{ + @Autowired + private BlogArticleTypeMapper blogArticleTypeMapper; + + /** + * 查询文章类型 + * + * @param id 文章类型ID + * @return 文章类型 + */ + @Override + public BlogArticleType selectBlogArticleTypeById(String id) + { + return blogArticleTypeMapper.selectBlogArticleTypeById(id); + } + + /** + * 查询文章类型列表 + * + * @param blogArticleType 文章类型 + * @return 文章类型 + */ + @Override + public List selectBlogArticleTypeList(BlogArticleType blogArticleType) + { + return blogArticleTypeMapper.selectBlogArticleTypeList(blogArticleType); + } + + /** + * 新增文章类型 + * + * @param blogArticleType 文章类型 + * @return 结果 + */ + @Override + public int insertBlogArticleType(BlogArticleType blogArticleType) + { + return blogArticleTypeMapper.insertBlogArticleType(blogArticleType); + } + + /** + * 修改文章类型 + * + * @param blogArticleType 文章类型 + * @return 结果 + */ + @Override + public int updateBlogArticleType(BlogArticleType blogArticleType) + { + return blogArticleTypeMapper.updateBlogArticleType(blogArticleType); + } + + /** + * 删除文章类型对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteBlogArticleTypeByIds(String ids) + { + return blogArticleTypeMapper.deleteBlogArticleTypeByIds(Convert.toStrArray(ids)); + } + + /** + * 删除文章类型信息 + * + * @param id 文章类型ID + * @return 结果 + */ + @Override + public int deleteBlogArticleTypeById(String id) + { + return blogArticleTypeMapper.deleteBlogArticleTypeById(id); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogFriendServiceImpl.java b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogFriendServiceImpl.java new file mode 100644 index 0000000..1ba8354 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogFriendServiceImpl.java @@ -0,0 +1,94 @@ +package com.rboat.blog.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.rboat.blog.mapper.BlogFriendMapper; +import com.rboat.blog.domain.BlogFriend; +import com.rboat.blog.service.IBlogFriendService; +import com.rboat.common.core.text.Convert; + +/** + * 好友Service业务层处理 + * + * @author rboat + * @date 2019-11-05 + */ +@Service +public class BlogFriendServiceImpl implements IBlogFriendService +{ + @Autowired + private BlogFriendMapper blogFriendMapper; + + /** + * 查询好友 + * + * @param id 好友ID + * @return 好友 + */ + @Override + public BlogFriend selectBlogFriendById(String id) + { + return blogFriendMapper.selectBlogFriendById(id); + } + + /** + * 查询好友列表 + * + * @param blogFriend 好友 + * @return 好友 + */ + @Override + public List selectBlogFriendList(BlogFriend blogFriend) + { + return blogFriendMapper.selectBlogFriendList(blogFriend); + } + + /** + * 新增好友 + * + * @param blogFriend 好友 + * @return 结果 + */ + @Override + public int insertBlogFriend(BlogFriend blogFriend) + { + return blogFriendMapper.insertBlogFriend(blogFriend); + } + + /** + * 修改好友 + * + * @param blogFriend 好友 + * @return 结果 + */ + @Override + public int updateBlogFriend(BlogFriend blogFriend) + { + return blogFriendMapper.updateBlogFriend(blogFriend); + } + + /** + * 删除好友对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteBlogFriendByIds(String ids) + { + return blogFriendMapper.deleteBlogFriendByIds(Convert.toStrArray(ids)); + } + + /** + * 删除好友信息 + * + * @param id 好友ID + * @return 结果 + */ + @Override + public int deleteBlogFriendById(String id) + { + return blogFriendMapper.deleteBlogFriendById(id); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogMasterServiceImpl.java b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogMasterServiceImpl.java new file mode 100644 index 0000000..898dc85 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogMasterServiceImpl.java @@ -0,0 +1,94 @@ +package com.rboat.blog.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.rboat.blog.mapper.BlogMasterMapper; +import com.rboat.blog.domain.BlogMaster; +import com.rboat.blog.service.IBlogMasterService; +import com.rboat.common.core.text.Convert; + +/** + * 博主Service业务层处理 + * + * @author rboat + * @date 2019-11-05 + */ +@Service +public class BlogMasterServiceImpl implements IBlogMasterService +{ + @Autowired + private BlogMasterMapper blogMasterMapper; + + /** + * 查询博主 + * + * @param id 博主ID + * @return 博主 + */ + @Override + public BlogMaster selectBlogMasterById(String id) + { + return blogMasterMapper.selectBlogMasterById(id); + } + + /** + * 查询博主列表 + * + * @param blogMaster 博主 + * @return 博主 + */ + @Override + public List selectBlogMasterList(BlogMaster blogMaster) + { + return blogMasterMapper.selectBlogMasterList(blogMaster); + } + + /** + * 新增博主 + * + * @param blogMaster 博主 + * @return 结果 + */ + @Override + public int insertBlogMaster(BlogMaster blogMaster) + { + return blogMasterMapper.insertBlogMaster(blogMaster); + } + + /** + * 修改博主 + * + * @param blogMaster 博主 + * @return 结果 + */ + @Override + public int updateBlogMaster(BlogMaster blogMaster) + { + return blogMasterMapper.updateBlogMaster(blogMaster); + } + + /** + * 删除博主对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteBlogMasterByIds(String ids) + { + return blogMasterMapper.deleteBlogMasterByIds(Convert.toStrArray(ids)); + } + + /** + * 删除博主信息 + * + * @param id 博主ID + * @return 结果 + */ + @Override + public int deleteBlogMasterById(String id) + { + return blogMasterMapper.deleteBlogMasterById(id); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogPhotoServiceImpl.java b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogPhotoServiceImpl.java new file mode 100644 index 0000000..2a60fea --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogPhotoServiceImpl.java @@ -0,0 +1,94 @@ +package com.rboat.blog.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.rboat.blog.mapper.BlogPhotoMapper; +import com.rboat.blog.domain.BlogPhoto; +import com.rboat.blog.service.IBlogPhotoService; +import com.rboat.common.core.text.Convert; + +/** + * 相册Service业务层处理 + * + * @author rboat + * @date 2019-11-05 + */ +@Service +public class BlogPhotoServiceImpl implements IBlogPhotoService +{ + @Autowired + private BlogPhotoMapper blogPhotoMapper; + + /** + * 查询相册 + * + * @param id 相册ID + * @return 相册 + */ + @Override + public BlogPhoto selectBlogPhotoById(String id) + { + return blogPhotoMapper.selectBlogPhotoById(id); + } + + /** + * 查询相册列表 + * + * @param blogPhoto 相册 + * @return 相册 + */ + @Override + public List selectBlogPhotoList(BlogPhoto blogPhoto) + { + return blogPhotoMapper.selectBlogPhotoList(blogPhoto); + } + + /** + * 新增相册 + * + * @param blogPhoto 相册 + * @return 结果 + */ + @Override + public int insertBlogPhoto(BlogPhoto blogPhoto) + { + return blogPhotoMapper.insertBlogPhoto(blogPhoto); + } + + /** + * 修改相册 + * + * @param blogPhoto 相册 + * @return 结果 + */ + @Override + public int updateBlogPhoto(BlogPhoto blogPhoto) + { + return blogPhotoMapper.updateBlogPhoto(blogPhoto); + } + + /** + * 删除相册对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteBlogPhotoByIds(String ids) + { + return blogPhotoMapper.deleteBlogPhotoByIds(Convert.toStrArray(ids)); + } + + /** + * 删除相册信息 + * + * @param id 相册ID + * @return 结果 + */ + @Override + public int deleteBlogPhotoById(String id) + { + return blogPhotoMapper.deleteBlogPhotoById(id); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogReviewServiceImpl.java b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogReviewServiceImpl.java new file mode 100644 index 0000000..52acc20 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogReviewServiceImpl.java @@ -0,0 +1,94 @@ +package com.rboat.blog.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.rboat.blog.mapper.BlogReviewMapper; +import com.rboat.blog.domain.BlogReview; +import com.rboat.blog.service.IBlogReviewService; +import com.rboat.common.core.text.Convert; + +/** + * 评论Service业务层处理 + * + * @author rboat + * @date 2019-11-05 + */ +@Service +public class BlogReviewServiceImpl implements IBlogReviewService +{ + @Autowired + private BlogReviewMapper blogReviewMapper; + + /** + * 查询评论 + * + * @param id 评论ID + * @return 评论 + */ + @Override + public BlogReview selectBlogReviewById(String id) + { + return blogReviewMapper.selectBlogReviewById(id); + } + + /** + * 查询评论列表 + * + * @param blogReview 评论 + * @return 评论 + */ + @Override + public List selectBlogReviewList(BlogReview blogReview) + { + return blogReviewMapper.selectBlogReviewList(blogReview); + } + + /** + * 新增评论 + * + * @param blogReview 评论 + * @return 结果 + */ + @Override + public int insertBlogReview(BlogReview blogReview) + { + return blogReviewMapper.insertBlogReview(blogReview); + } + + /** + * 修改评论 + * + * @param blogReview 评论 + * @return 结果 + */ + @Override + public int updateBlogReview(BlogReview blogReview) + { + return blogReviewMapper.updateBlogReview(blogReview); + } + + /** + * 删除评论对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteBlogReviewByIds(String ids) + { + return blogReviewMapper.deleteBlogReviewByIds(Convert.toStrArray(ids)); + } + + /** + * 删除评论信息 + * + * @param id 评论ID + * @return 结果 + */ + @Override + public int deleteBlogReviewById(String id) + { + return blogReviewMapper.deleteBlogReviewById(id); + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogWordServiceImpl.java b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogWordServiceImpl.java new file mode 100644 index 0000000..e1419d2 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/service/impl/BlogWordServiceImpl.java @@ -0,0 +1,94 @@ +package com.rboat.blog.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.rboat.blog.mapper.BlogWordMapper; +import com.rboat.blog.domain.BlogWord; +import com.rboat.blog.service.IBlogWordService; +import com.rboat.common.core.text.Convert; + +/** + * 留言Service业务层处理 + * + * @author rboat + * @date 2019-11-05 + */ +@Service +public class BlogWordServiceImpl implements IBlogWordService +{ + @Autowired + private BlogWordMapper blogWordMapper; + + /** + * 查询留言 + * + * @param id 留言ID + * @return 留言 + */ + @Override + public BlogWord selectBlogWordById(String id) + { + return blogWordMapper.selectBlogWordById(id); + } + + /** + * 查询留言列表 + * + * @param blogWord 留言 + * @return 留言 + */ + @Override + public List selectBlogWordList(BlogWord blogWord) + { + return blogWordMapper.selectBlogWordList(blogWord); + } + + /** + * 新增留言 + * + * @param blogWord 留言 + * @return 结果 + */ + @Override + public int insertBlogWord(BlogWord blogWord) + { + return blogWordMapper.insertBlogWord(blogWord); + } + + /** + * 修改留言 + * + * @param blogWord 留言 + * @return 结果 + */ + @Override + public int updateBlogWord(BlogWord blogWord) + { + return blogWordMapper.updateBlogWord(blogWord); + } + + /** + * 删除留言对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteBlogWordByIds(String ids) + { + return blogWordMapper.deleteBlogWordByIds(Convert.toStrArray(ids)); + } + + /** + * 删除留言信息 + * + * @param id 留言ID + * @return 结果 + */ + @Override + public int deleteBlogWordById(String id) + { + return blogWordMapper.deleteBlogWordById(id); + } +} diff --git a/rboat-blog/src/main/resources/mapper/blog/BlogArticleMapper.xml b/rboat-blog/src/main/resources/mapper/blog/BlogArticleMapper.xml new file mode 100644 index 0000000..3c851df --- /dev/null +++ b/rboat-blog/src/main/resources/mapper/blog/BlogArticleMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + select id, article_type_id, article_title, article_info, article_content, article_publish_time, article_count, article_from, article_master_id from blog_article + + + + + + + + insert into blog_article + + id, + article_type_id, + article_title, + article_info, + article_content, + article_publish_time, + article_count, + article_from, + article_master_id, + + + #{id}, + #{articleTypeId}, + #{articleTitle}, + #{articleInfo}, + #{articleContent}, + #{articlePublishTime}, + #{articleCount}, + #{articleFrom}, + #{articleMasterId}, + + + + + update blog_article + + article_type_id = #{articleTypeId}, + article_title = #{articleTitle}, + article_info = #{articleInfo}, + article_content = #{articleContent}, + article_publish_time = #{articlePublishTime}, + article_count = #{articleCount}, + article_from = #{articleFrom}, + article_master_id = #{articleMasterId}, + + where id = #{id} + + + + delete from blog_article where id = #{id} + + + + delete from blog_article where id in + + #{id} + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/mapper/blog/BlogArticleTypeMapper.xml b/rboat-blog/src/main/resources/mapper/blog/BlogArticleTypeMapper.xml new file mode 100644 index 0000000..7016463 --- /dev/null +++ b/rboat-blog/src/main/resources/mapper/blog/BlogArticleTypeMapper.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + select id, name, parent, info from blog_article_type + + + + + + + + insert into blog_article_type + + id, + name, + parent, + info, + + + #{id}, + #{name}, + #{parent}, + #{info}, + + + + + update blog_article_type + + name = #{name}, + parent = #{parent}, + info = #{info}, + + where id = #{id} + + + + delete from blog_article_type where id = #{id} + + + + delete from blog_article_type where id in + + #{id} + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/mapper/blog/BlogFriendMapper.xml b/rboat-blog/src/main/resources/mapper/blog/BlogFriendMapper.xml new file mode 100644 index 0000000..867484b --- /dev/null +++ b/rboat-blog/src/main/resources/mapper/blog/BlogFriendMapper.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + select id, friend_master_id, friend_friend_id, friend_re_name from blog_friend + + + + + + + + insert into blog_friend + + id, + friend_master_id, + friend_friend_id, + friend_re_name, + + + #{id}, + #{friendMasterId}, + #{friendFriendId}, + #{friendReName}, + + + + + update blog_friend + + friend_master_id = #{friendMasterId}, + friend_friend_id = #{friendFriendId}, + friend_re_name = #{friendReName}, + + where id = #{id} + + + + delete from blog_friend where id = #{id} + + + + delete from blog_friend where id in + + #{id} + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/mapper/blog/BlogMasterMapper.xml b/rboat-blog/src/main/resources/mapper/blog/BlogMasterMapper.xml new file mode 100644 index 0000000..e4a2bab --- /dev/null +++ b/rboat-blog/src/main/resources/mapper/blog/BlogMasterMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + select id, master_name, master_password, master_oicq, master_sex from blog_master + + + + + + + + insert into blog_master + + id, + master_name, + master_password, + master_oicq, + master_sex, + + + #{id}, + #{masterName}, + #{masterPassword}, + #{masterOicq}, + #{masterSex}, + + + + + update blog_master + + master_name = #{masterName}, + master_password = #{masterPassword}, + master_oicq = #{masterOicq}, + master_sex = #{masterSex}, + + where id = #{id} + + + + delete from blog_master where id = #{id} + + + + delete from blog_master where id in + + #{id} + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/mapper/blog/BlogPhotoMapper.xml b/rboat-blog/src/main/resources/mapper/blog/BlogPhotoMapper.xml new file mode 100644 index 0000000..15f47d6 --- /dev/null +++ b/rboat-blog/src/main/resources/mapper/blog/BlogPhotoMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + select id, photo_addr, photo_add_time, photo_info, photo_master_id from blog_photo + + + + + + + + insert into blog_photo + + id, + photo_addr, + photo_add_time, + photo_info, + photo_master_id, + + + #{id}, + #{photoAddr}, + #{photoAddTime}, + #{photoInfo}, + #{photoMasterId}, + + + + + update blog_photo + + photo_addr = #{photoAddr}, + photo_add_time = #{photoAddTime}, + photo_info = #{photoInfo}, + photo_master_id = #{photoMasterId}, + + where id = #{id} + + + + delete from blog_photo where id = #{id} + + + + delete from blog_photo where id in + + #{id} + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/mapper/blog/BlogReviewMapper.xml b/rboat-blog/src/main/resources/mapper/blog/BlogReviewMapper.xml new file mode 100644 index 0000000..2d2b4fd --- /dev/null +++ b/rboat-blog/src/main/resources/mapper/blog/BlogReviewMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + select id, review_articleID, review_master_id, review_author_id, review_content, review_time from blog_review + + + + + + + + insert into blog_review + + id, + review_articleID, + review_master_id, + review_author_id, + review_content, + review_time, + + + #{id}, + #{reviewArticleid}, + #{reviewMasterId}, + #{reviewAuthorId}, + #{reviewContent}, + #{reviewTime}, + + + + + update blog_review + + review_articleID = #{reviewArticleid}, + review_master_id = #{reviewMasterId}, + review_author_id = #{reviewAuthorId}, + review_content = #{reviewContent}, + review_time = #{reviewTime}, + + where id = #{id} + + + + delete from blog_review where id = #{id} + + + + delete from blog_review where id in + + #{id} + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/mapper/blog/BlogWordMapper.xml b/rboat-blog/src/main/resources/mapper/blog/BlogWordMapper.xml new file mode 100644 index 0000000..f256744 --- /dev/null +++ b/rboat-blog/src/main/resources/mapper/blog/BlogWordMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + select id, word_title, word_content, word_time, word_author_id, word_master_id from blog_word + + + + + + + + insert into blog_word + + id, + word_title, + word_content, + word_time, + word_author_id, + word_master_id, + + + #{id}, + #{wordTitle}, + #{wordContent}, + #{wordTime}, + #{wordAuthorId}, + #{wordMasterId}, + + + + + update blog_word + + word_title = #{wordTitle}, + word_content = #{wordContent}, + word_time = #{wordTime}, + word_author_id = #{wordAuthorId}, + word_master_id = #{wordMasterId}, + + where id = #{id} + + + + delete from blog_word where id = #{id} + + + + delete from blog_word where id in + + #{id} + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/article/add.html b/rboat-blog/src/main/resources/templates/blog/article/add.html new file mode 100644 index 0000000..5623ced --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/article/add.html @@ -0,0 +1,84 @@ + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/article/article.html b/rboat-blog/src/main/resources/templates/blog/article/article.html new file mode 100644 index 0000000..07db1bd --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/article/article.html @@ -0,0 +1,140 @@ + + + + + + +
+
+
+
+
+
    +
  • +

    文章类型id:

    + +
  • +
  • +

    文章标题:

    + +
  • +
  • +

    文章内容:

    + +
  • +
  • +

    发布时间:

    + + - + +
  • +
  • +

    阅读数(自增):

    + +
  • +
  • +

    文章来源(0:原创;1:转载):

    + +
  • +
  • +

    博主id:

    + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/article/edit.html b/rboat-blog/src/main/resources/templates/blog/article/edit.html new file mode 100644 index 0000000..1081c83 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/article/edit.html @@ -0,0 +1,85 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/friend/add.html b/rboat-blog/src/main/resources/templates/blog/friend/add.html new file mode 100644 index 0000000..29459a6 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/friend/add.html @@ -0,0 +1,43 @@ + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/friend/edit.html b/rboat-blog/src/main/resources/templates/blog/friend/edit.html new file mode 100644 index 0000000..6d7422b --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/friend/edit.html @@ -0,0 +1,44 @@ + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/friend/friend.html b/rboat-blog/src/main/resources/templates/blog/friend/friend.html new file mode 100644 index 0000000..760a87f --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/friend/friend.html @@ -0,0 +1,102 @@ + + + + + + +
+
+
+
+
+
    +
  • +

    博主id:

    + +
  • +
  • +

    好友的id:

    + +
  • +
  • +

    好友备注名:

    + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/master/add.html b/rboat-blog/src/main/resources/templates/blog/master/add.html new file mode 100644 index 0000000..dac8894 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/master/add.html @@ -0,0 +1,52 @@ + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + 代码生成请选择字典属性 +
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/master/edit.html b/rboat-blog/src/main/resources/templates/blog/master/edit.html new file mode 100644 index 0000000..086c176 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/master/edit.html @@ -0,0 +1,53 @@ + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + 代码生成请选择字典属性 +
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/master/master.html b/rboat-blog/src/main/resources/templates/blog/master/master.html new file mode 100644 index 0000000..b02c3f6 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/master/master.html @@ -0,0 +1,113 @@ + + + + + + +
+
+
+
+
+
    +
  • +

    博主名称:

    + +
  • +
  • +

    密码:

    + +
  • +
  • +

    博主oicq(三方id):

    + +
  • +
  • +

    0:女;1:男:

    + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/photo/add.html b/rboat-blog/src/main/resources/templates/blog/photo/add.html new file mode 100644 index 0000000..7044a8c --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/photo/add.html @@ -0,0 +1,60 @@ + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/photo/edit.html b/rboat-blog/src/main/resources/templates/blog/photo/edit.html new file mode 100644 index 0000000..7243667 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/photo/edit.html @@ -0,0 +1,61 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/photo/photo.html b/rboat-blog/src/main/resources/templates/blog/photo/photo.html new file mode 100644 index 0000000..4c229e3 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/photo/photo.html @@ -0,0 +1,112 @@ + + + + + + +
+
+
+
+
+
    +
  • +

    图片存放地址:

    + +
  • +
  • +

    上传日期:

    + + - + +
  • +
  • +

    图片备注:

    + +
  • +
  • +

    上传人(博主):

    + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/review/add.html b/rboat-blog/src/main/resources/templates/blog/review/add.html new file mode 100644 index 0000000..07b5b7a --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/review/add.html @@ -0,0 +1,66 @@ + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/review/edit.html b/rboat-blog/src/main/resources/templates/blog/review/edit.html new file mode 100644 index 0000000..4da7527 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/review/edit.html @@ -0,0 +1,67 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/review/review.html b/rboat-blog/src/main/resources/templates/blog/review/review.html new file mode 100644 index 0000000..384444a --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/review/review.html @@ -0,0 +1,120 @@ + + + + + + +
+
+
+
+
+
    +
  • +

    评论的文章id:

    + +
  • +
  • +

    博主id:

    + +
  • +
  • +

    评论的作者id:

    + +
  • +
  • +

    评论内容:

    + +
  • +
  • +

    评论时间:

    + + - + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/type/add.html b/rboat-blog/src/main/resources/templates/blog/type/add.html new file mode 100644 index 0000000..83e36f7 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/type/add.html @@ -0,0 +1,43 @@ + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/type/edit.html b/rboat-blog/src/main/resources/templates/blog/type/edit.html new file mode 100644 index 0000000..d0fce42 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/type/edit.html @@ -0,0 +1,44 @@ + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/type/type.html b/rboat-blog/src/main/resources/templates/blog/type/type.html new file mode 100644 index 0000000..5ade725 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/type/type.html @@ -0,0 +1,102 @@ + + + + + + +
+
+
+
+
+
    +
  • +

    类型名称:

    + +
  • +
  • +

    父级id:

    + +
  • +
  • +

    描述信息:

    + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/word/add.html b/rboat-blog/src/main/resources/templates/blog/word/add.html new file mode 100644 index 0000000..e83c606 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/word/add.html @@ -0,0 +1,66 @@ + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/word/edit.html b/rboat-blog/src/main/resources/templates/blog/word/edit.html new file mode 100644 index 0000000..bec88fe --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/word/edit.html @@ -0,0 +1,67 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/rboat-blog/src/main/resources/templates/blog/word/word.html b/rboat-blog/src/main/resources/templates/blog/word/word.html new file mode 100644 index 0000000..7a9cd58 --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/word/word.html @@ -0,0 +1,120 @@ + + + + + + +
+
+
+
+
+
    +
  • +

    留言标题:

    + +
  • +
  • +

    留言内容:

    + +
  • +
  • +

    留言的时间:

    + + - + +
  • +
  • +

    留言的作者id:

    + +
  • +
  • +

    留言的对象id(博主id):

    + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/sql/t_blog.sql b/sql/t_blog.sql new file mode 100644 index 0000000..8ba44f5 --- /dev/null +++ b/sql/t_blog.sql @@ -0,0 +1,122 @@ +drop table if exists blog_article; + +drop table if exists blog_article_type; + +drop table if exists blog_friend; + +drop table if exists blog_master; + +drop table if exists blog_photo; + +drop table if exists blog_review; + +drop table if exists blog_word; + +/*==============================================================*/ +/* Table: blog_article */ +/*==============================================================*/ +create table blog_article +( + id varchar(32) not null comment '主键id', + article_type_id varchar(32) not null comment '文章类型id', + article_title varchar(60) not null comment '文章标题', + article_info varchar(500) not null comment '文章信息', + article_content text not null comment '文章内容', + article_publish_time timestamp not null default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '发布时间', + article_count int not null default 0 comment '阅读数(自增)', + article_from int not null default 0 comment '文章来源(0:原创;1:转载)', + article_master_id varchar(32) not null comment '博主id', + primary key (id) +); + +alter table blog_article comment '文章表'; + +/*==============================================================*/ +/* Table: blog_article_type */ +/*==============================================================*/ +create table blog_article_type +( + id varchar(32) not null comment '主键id', + name varchar(20) not null comment '类型名称', + parent varchar(32) not null default '#' comment '父级id', + info varchar(1) not null comment '描述信息', + primary key (id) +); + +alter table blog_article_type comment '文章类型'; + +/*==============================================================*/ +/* Table: blog_friend */ +/*==============================================================*/ +create table blog_friend +( + id varchar(32) not null comment '主键id', + friend_master_id varchar(32) not null comment '博主id', + friend_friend_id varchar(32) not null comment '好友的id', + friend_re_name varchar(20) comment '好友备注名', + primary key (id) +); + +alter table blog_friend comment '好友表'; + +/*==============================================================*/ +/* Table: blog_master */ +/*==============================================================*/ +create table blog_master +( + id varchar(32) not null comment '主键id', + master_name varchar(40) not null comment '博主名称', + master_password varchar(64) not null comment '密码', + master_oicq varchar(20) comment '博主oicq(三方id)', + master_sex varchar(1) not null default '1' comment '0:女;1:男', + primary key (id) +); + +alter table blog_master comment '博主表'; + +/*==============================================================*/ +/* Table: blog_photo */ +/*==============================================================*/ +create table blog_photo +( + id varchar(32) not null comment '主键id', + photo_addr varchar(200) not null comment '图片存放地址', + photo_add_time timestamp not null default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '上传日期', + photo_info varchar(100) comment '图片备注', + photo_master_id varchar(32) not null comment '上传人(博主)', + primary key (id) +); + +alter table blog_photo comment '相册表'; + +/*==============================================================*/ +/* Table: blog_review */ +/*==============================================================*/ +create table blog_review +( + id varchar(32) not null comment '主键id', + review_articleID varchar(40) not null comment '评论的文章id', + review_master_id varchar(32) not null default '1' comment '博主id', + review_author_id varchar(32) not null default '1' comment '评论的作者id', + review_content varchar(400) not null default '1' comment '评论内容', + review_time timestamp not null default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '评论时间', + primary key (id) +); + +alter table blog_review comment '评论表'; + +/*==============================================================*/ +/* Table: blog_word */ +/*==============================================================*/ +create table blog_word +( + id varchar(32) not null comment '主键id', + word_title varchar(40) not null comment '留言标题', + word_content varchar(400) not null comment '留言内容', + word_time timestamp not null default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '留言的时间', + word_author_id varchar(32) not null default '1' comment '留言的作者id', + word_master_id varchar(32) not null default '1' comment '留言的对象id(博主id)', + primary key (id) +); + +alter table blog_word comment '留言表'; diff --git "a/sql/\351\200\206\350\210\237\345\215\232\345\256\242.pdm" "b/sql/\351\200\206\350\210\237\345\215\232\345\256\242.pdm" new file mode 100644 index 0000000..c4147ec --- /dev/null +++ "b/sql/\351\200\206\350\210\237\345\215\232\345\256\242.pdm" @@ -0,0 +1,2513 @@ + + + + + + + + + +0CA50702-CEDF-4212-AD26-552153803866 +PhysicalDataModel_1 +PhysicalDataModel_1 +1572964661 +zhangyang +1572967606 +zhangyang +[FolderOptions] + +[FolderOptions\Physical Objects] +GenerationCheckModel=Yes +GenerationPath= +GenerationOptions= +GenerationTasks= +GenerationTargets= +GenerationSelections= +RevPkey=Yes +RevFkey=Yes +RevAkey=Yes +RevCheck=Yes +RevIndx=Yes +RevOpts=Yes +RevViewAsTabl=No +RevViewOpts=Yes +RevSystAsTabl=Yes +RevTablPerm=No +RevViewPerm=No +RevProcPerm=No +RevDbpkPerm=No +RevSqncPerm=No +RevAdtPerm=No +RevUserPriv=No +RevUserOpts=No +RevGrpePriv=No +RevRolePriv=No +RevDtbsOpts=Yes +RevDtbsPerm=No +RevViewIndx=Yes +RevJidxOpts=Yes +RevStats=No +RevTspcPerm=No +RevCaseSensitive=No +GenTrgrStdMsg=Yes +GenTrgrMsgTab= +GenTrgrMsgNo= +GenTrgrMsgTxt= +TrgrPreserve=No +TrgrIns=Yes +TrgrUpd=Yes +TrgrDel=Yes +TrgrC2Ins=Yes +TrgrC2Upd=Yes +TrgrC3=Yes +TrgrC4=Yes +TrgrC5=Yes +TrgrC6=Yes +TrgrC7=Yes +TrgrC8=Yes +TrgrC9=Yes +TrgrC10=Yes +TrgrC11=Yes +TrgrC1=Yes +TrgrC12Ins=Yes +TrgrC12Upd=Yes +TrgrC13=Yes +UpdateTableStatistics=Yes +UpdateColumnStatistics=Yes + +[FolderOptions\Physical Objects\Database Generation] +GenScriptName=crebas +GenScriptName0=crebas +GenScriptName1= +GenScriptName2= +GenScriptName3= +GenScriptName4= +GenScriptName5= +GenScriptName6= +GenScriptName7= +GenScriptName8= +GenScriptName9= +GenPathName=E:\Program Files (x86)\Sybase\PowerDesigner 16\ +GenSingleFile=Yes +GenODBC=No +GenCheckModel=Yes +GenScriptPrev=Yes +GenArchiveModel=No +GenUseSync=No +GenSyncChoice=0 +GenSyncArch= +GenSyncRmg=0 + +[FolderOptions\Physical Objects\Database Generation\Format] +GenScriptTitle=Yes +GenScriptNamLabl=No +GenScriptQDtbs=No +GenScriptQOwnr=Yes +GenScriptCase=0 +GenScriptEncoding=ANSI +GenScriptNAcct=No +IdentifierDelimiter=" + +[FolderOptions\Physical Objects\Database Generation\Database] +Create=Yes +Open=Yes +Close=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Database\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Tablespace] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Storage] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\User] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\User\Create] +Physical Options=No + +[FolderOptions\Physical Objects\Database Generation\Group] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\Role] +Create=Yes +Drop=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] +Default value=Yes +Check=Yes + +[FolderOptions\Physical Objects\Database Generation\AbstractDataType] +Create=Yes +Header=Yes +Footer=Yes +Drop=Yes +Comment=Yes +Install JAVA class=Yes +Remove JAVA class=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Rule] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Default] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Sequence] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] +Check=Yes +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] +User datatype=No +Default value=Yes +Check=Yes +Physical Options=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] +Constraint declaration=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] +Constraint declaration=Yes +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] +Primary key=No +Foreign key=No +Alternate key=No +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\View] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\View\Create] +Force Column list=No +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] +Table=Yes +View=Yes +Proc=Yes +Synonym=Yes +Database Package=Yes +Sequence=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Procedure] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Procedure\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\DatabasePackage] +Create=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\WebService] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Dimension] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synchronization] +GenBackupTabl=1 +GenKeepBackTabl=1 +GenTmpTablDrop=No +GenKeepTablOpts=No + +[FolderOptions\Physical Objects\Test Data] +GenDataPathName= +GenDataSinglefile=Yes +GenDataScriptName=testdata +GenDataScriptName0= +GenDataScriptName1= +GenDataScriptName2= +GenDataScriptName3= +GenDataScriptName4= +GenDataScriptName5= +GenDataScriptName6= +GenDataScriptName7= +GenDataScriptName8= +GenDataScriptName9= +GenDataOdbc=0 +GenDataDelOld=No +GenDataTitle=No +GenDataDefNumRows=20 +GenDataCommit=0 +GenDataPacket=0 +GenDataOwner=No +GenDataProfNumb= +GenDataProfChar= +GenDataProfDate= +GenDataCSVSeparator=, +GenDataFileFormat=CSV +GenDataUseWizard=No + +[FolderOptions\Pdm] +IndxIQName=%COLUMN%_%INDEXTYPE% +IndxPK=Yes +IndxFK=Yes +IndxAK=Yes +IndxPKName=%TABLE%_PK +IndxFKName=%REFR%_FK +IndxAKName=%AKEY%_AK +IndxPreserve=No +IndxThreshold=0 +IndxStats=No +RefrPreserve=No +JidxPreserve=No +RbldMultiFact=Yes +RbldMultiDim=Yes +RbldMultiJidx=Yes +CubePreserve=No +TablStProcPreserve=No +ProcDepPreserve=Yes +TrgrDepPreserve=Yes +CubeScriptPath= +CubeScriptCase=0 +CubeScriptEncoding=ANSI +CubeScriptNacct=No +CubeScriptHeader=No +CubeScriptExt=csv +CubeScriptExt0=txt +CubeScriptExt1= +CubeScriptExt2= +CubeScriptSep=, +CubeScriptDeli=" +EstimationYears=0 +DfltDomnName=D_%.U:VALUE% +DfltColnName=D_%.U:VALUE% +DfltReuse=Yes +DfltDrop=Yes +[ModelOptions] + +[ModelOptions\Physical Objects] +CaseSensitive=No +DisplayName=Yes +EnableTrans=No +UseTerm=No +EnableRequirements=No +EnableFullShortcut=Yes +DefaultDttp= +IgnoreOwner=No +RebuildTrigger=Yes +RefrUnique=No +RefrAutoMigrate=Yes +RefrMigrateReuse=Yes +RefrMigrateDomain=Yes +RefrMigrateCheck=Yes +RefrMigrateRule=Yes +RefrMigrateExtd=No +RefrMigrDefaultLink=No +RefrDfltImpl=D +RefrPrgtColn=No +RefrMigrateToEnd=No +RebuildTriggerDep=No +ColnFKName=%.3:PARENT%_%COLUMN% +ColnFKNameUse=No +DomnCopyDttp=Yes +DomnCopyChck=No +DomnCopyRule=No +DomnCopyMand=No +DomnCopyExtd=No +DomnCopyProf=No +Notation=0 +DomnDefaultMandatory=No +ColnDefaultMandatory=No +TablDefaultOwner= +ViewDefaultOwner= +TrgrDefaultOwnerTabl= +TrgrDefaultOwnerView= +IdxDefaultOwnerTabl= +IdxDefaultOwnerView= +JdxDefaultOwner= +DBPackDefaultOwner= +SeqDefaultOwner= +ProcDefaultOwner= +DBMSTrgrDefaultOwner= +Currency=USD +RefrDeleteConstraint=1 +RefrUpdateConstraint=1 +RefrParentMandatory=No +RefrParentChangeAllow=Yes +RefrCheckOnCommit=No + +[ModelOptions\Physical Objects\NamingOptionsTemplates] + +[ModelOptions\Physical Objects\ClssNamingOptions] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL] + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN] + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX] + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR] + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF] + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT] + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO] + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Connection] + +[ModelOptions\Pdm] + +[ModelOptions\Generate] + +[ModelOptions\Generate\Xsm] +GenRootElement=Yes +GenComplexType=No +GenAttribute=Yes +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=No + +[ModelOptions\Generate\Pdm] +RRMapping=No + +[ModelOptions\Generate\Cdm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No +Notation=2 + +[ModelOptions\Generate\Oom] +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=Yes +ClassPrefix= + +[ModelOptions\Generate\Ldm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No + +[ModelOptions\Default Opts] + +[ModelOptions\Default Opts\TABL] +PhysOpts= + +[ModelOptions\Default Opts\COLN] +PhysOpts= + +[ModelOptions\Default Opts\INDX] +PhysOpts= + +[ModelOptions\Default Opts\AKEY] +PhysOpts= + +[ModelOptions\Default Opts\PKEY] +PhysOpts= + +[ModelOptions\Default Opts\STOR] +PhysOpts= + +[ModelOptions\Default Opts\TSPC] +PhysOpts= + +[ModelOptions\Default Opts\SQNC] +PhysOpts= + +[ModelOptions\Default Opts\DTBS] +PhysOpts= + +[ModelOptions\Default Opts\USER] +PhysOpts= + +[ModelOptions\Default Opts\JIDX] +PhysOpts= + + +B7B876B0-2D19-4D5B-A1FD-86D6A3D09B26 +MySQL 5.0 +MYSQL50 +1572964660 +zhangyang +1572964660 +zhangyang + +F4F16ECD-F2F1-4006-AF6F-638D5C65F35E +4BA9F647-DAB1-11D1-9944-006097355D9B + + + + +7D8BE664-BB5A-4B7F-936B-89507F419D27 +PhysicalDiagram_1 +PhysicalDiagram_1 +1572964661 +zhangyang +1572967155 +zhangyang +[DisplayPreferences] + +[DisplayPreferences\PDM] + +[DisplayPreferences\General] +Adjust to text=Yes +Snap Grid=No +Constrain Labels=Yes +Display Grid=No +Show Page Delimiter=Yes +Show Links intersections=No +Activate automatic link routing=No +Grid size=0 +Graphic unit=2 +Window color=255, 255, 255 +Background image= +Background mode=8 +Watermark image= +Watermark mode=8 +Show watermark on screen=No +Gradient mode=0 +Gradient end color=255, 255, 255 +Show Swimlane=No +SwimlaneVert=Yes +TreeVert=No +CompDark=0 + +[DisplayPreferences\Object] +Show Icon=No +Mode=2 +Trunc Length=40 +Word Length=40 +Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ +Shortcut IntIcon=Yes +Shortcut IntLoct=Yes +Shortcut IntFullPath=No +Shortcut IntLastPackage=Yes +Shortcut ExtIcon=Yes +Shortcut ExtLoct=No +Shortcut ExtFullPath=No +Shortcut ExtLastPackage=Yes +Shortcut ExtIncludeModl=Yes +EObjShowStrn=Yes +ExtendedObject.Comment=No +ExtendedObject.IconPicture=No +ExtendedObject.TextStyle=No +ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +ELnkShowStrn=Yes +ELnkShowName=Yes +ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> +FileObject.Stereotype=No +FileObject.DisplayName=Yes +FileObject.LocationOrName=No +FileObject.IconPicture=No +FileObject.TextStyle=No +FileObject.IconMode=Yes +FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Package.Stereotype=Yes +Package.Comment=No +Package.IconPicture=No +Package.TextStyle=No +Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Display Model Version=Yes +Table.Stereotype=Yes +Table.DisplayName=Yes +Table.OwnerDisplayName=No +Table.Columns=Yes +Table.Columns._Filter="All Columns" PDMCOLNALL +Table.Columns._Columns=Stereotype DataType KeyIndicator +Table.Columns._Limit=-5 +Table.Keys=No +Table.Keys._Columns=Stereotype Indicator +Table.Indexes=No +Table.Indexes._Columns=Stereotype +Table.Triggers=No +Table.Triggers._Columns=Stereotype +Table.Comment=No +Table.IconPicture=No +Table.TextStyle=No +Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +View.Stereotype=Yes +View.DisplayName=Yes +View.OwnerDisplayName=No +View.Columns=Yes +View.Columns._Columns=DisplayName +View.Columns._Limit=-5 +View.TemporaryVTables=Yes +View.Indexes=No +View.Comment=No +View.IconPicture=No +View.TextStyle=No +View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Procedure.Stereotype=No +Procedure.DisplayName=Yes +Procedure.OwnerDisplayName=No +Procedure.Comment=No +Procedure.IconPicture=No +Procedure.TextStyle=No +Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Reference.Cardinality=No +Reference.ImplementationType=No +Reference.ChildRole=Yes +Reference.Stereotype=Yes +Reference.DisplayName=No +Reference.ForeignKeyConstraintName=No +Reference.JoinExpression=No +Reference.Integrity=No +Reference.ParentRole=Yes +Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> +ViewReference.ChildRole=Yes +ViewReference.Stereotype=Yes +ViewReference.DisplayName=No +ViewReference.JoinExpression=No +ViewReference.ParentRole=Yes +ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> + +[DisplayPreferences\Symbol] + +[DisplayPreferences\Symbol\FRMEOBJ] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=6000 +Height=2000 +Brush color=255 255 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=64 +Brush gradient color=192 192 192 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 255 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMELNK] +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FILO] +OBJSTRNFont=新宋体,8,N +OBJSTRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LCNMFont=新宋体,8,N +LCNMFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=3600 +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PDMPCKG] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 178 178 178 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\TABL] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +ColumnsFont=新宋体,8,N +ColumnsFont color=0, 0, 0 +TablePkColumnsFont=新宋体,8,U +TablePkColumnsFont color=0, 0, 0 +TableFkColumnsFont=新宋体,8,N +TableFkColumnsFont color=0, 0, 0 +KeysFont=新宋体,8,N +KeysFont color=0, 0, 0 +IndexesFont=新宋体,8,N +IndexesFont color=0, 0, 0 +TriggersFont=新宋体,8,N +TriggersFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=178 214 252 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VIEW] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +ColumnsFont=新宋体,8,N +ColumnsFont color=0, 0, 0 +TablePkColumnsFont=新宋体,8,U +TablePkColumnsFont color=0, 0, 0 +TableFkColumnsFont=新宋体,8,N +TableFkColumnsFont color=0, 0, 0 +TemporaryVTablesFont=新宋体,8,N +TemporaryVTablesFont color=0, 0, 0 +IndexesFont=新宋体,8,N +IndexesFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=208 208 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PROC] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4000 +Height=1000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 108 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\REFR] +SOURCEFont=新宋体,8,N +SOURCEFont color=0, 0, 0 +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +DESTINATIONFont=新宋体,8,N +DESTINATIONFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VREF] +SOURCEFont=新宋体,8,N +SOURCEFont color=0, 0, 0 +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +DESTINATIONFont=新宋体,8,N +DESTINATIONFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\USRDEPD] +OBJXSTRFont=新宋体,8,N +OBJXSTRFont color=0, 0, 0 +Line style=1 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=2 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\Free Symbol] +Free TextFont=新宋体,8,N +Free TextFont color=0, 0, 0 +Line style=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=0 +(8268, 11693) +((315,354), (433,354)) +1 +15 + + +1572964673 +1572966410 +-1 +((-20700,3974), (-6150,13436)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + +1572964675 +1572966418 +-1 +((-22036,-5700), (-8400,529)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + +1572964677 +1572966413 +-1 +((222,5626), (11700,13050)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + +1572966169 +1572966423 +-1 +((2940,-4799), (17024,1685)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + +1572966553 +1572966809 +-1 +((-21443,-16952), (-7807,-10723)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + +1572966861 +1572966863 +-1 +((3307,-16202), (16943,-9973)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + +1572967155 +1572967166 +-1 +((-18518,17023), (-4882,23252)) +0 +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 +1 + + + + + + + + + + + + +96F3672C-2B69-4F2D-BB3D-BD02AD17BE48 +blog_article +blog_article +1572964673 +zhangyang +1572965603 +zhangyang +文章表 + + + +FFDE5881-18A8-4206-99DF-830A9009F256 +id +id +1572964981 +zhangyang +1572965036 +zhangyang +主键id +varchar(32) +32 +1 + + +4A8C1DEE-7CA3-4788-925F-A39C53ACC334 +article_type_id +article_type_id +1572965036 +zhangyang +1572965114 +zhangyang +文章类型id +varchar(32) +32 +1 + + +2701E213-24CF-40B9-A673-539F2F6347A2 +article_title +article_title +1572965036 +zhangyang +1572965508 +zhangyang +文章标题 +varchar(60) +60 +1 + + +12C4CCDC-AF72-49FA-B630-3D8645124122 +article_info +article_info +1572965036 +zhangyang +1572965603 +zhangyang +文章信息 +varchar(500) +500 +1 + + +AAD2538A-0386-4973-A807-7B613EE0AC61 +article_content +article_content +1572965036 +zhangyang +1572965484 +zhangyang +文章内容 +text +1 + + +320BE7D5-8BAF-4979-B02C-AA01A7B08B35 +article_publish_time +article_publish_time +1572965036 +zhangyang +1572965563 +zhangyang +发布时间 +CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +timestamp +1 + + +CE1FC10F-11C5-4CC3-86F4-7B1D45D17D16 +article_count +article_count +1572965036 +zhangyang +1572965381 +zhangyang +阅读数(自增) +0 +int +1 + + +CBD16635-6A8D-4D60-8AE9-62CE4241B7A0 +article_from +article_from +1572965272 +zhangyang +1572966471 +zhangyang +文章来源(0:原创;1:转载) +0 +int +1 + + +9A3BB905-6C0B-49D9-BCB0-8236E4AB9E58 +article_master_id +article_master_id +1572965272 +zhangyang +1572967556 +zhangyang +博主id +varchar(32) +32 +1 + + + + +2B2BDADC-F711-4AC6-8ABB-9AC0A116C230 +Key_1 +Key_1 +1572964981 +zhangyang +1572965036 +zhangyang + + + + + + + + + + +44A282EC-DF6C-4CB5-BAD3-D8ADFD1FE6D7 +blog_friend +blog_friend +1572964675 +zhangyang +1572966134 +zhangyang +好友表 + + + +C5E9B601-106A-4CD3-94EC-FFD38A398D5E +id +id +1572965971 +zhangyang +1572965997 +zhangyang +主键id +varchar(32) +32 +1 + + +6646ABBE-0D8E-4299-A579-06D73CE51DBF +friend_master_id +friend_master_id +1572965997 +zhangyang +1572966047 +zhangyang +博主id +varchar(32) +32 +1 + + +CC29B8AA-59D6-4B12-A8C8-DA9D64034BA1 +friend_friend_id +friend_friend_id +1572965997 +zhangyang +1572966090 +zhangyang +好友的id +varchar(32) +32 +1 + + +0784E208-6EB7-4CC8-96AF-BD893763E4F0 +friend_re_name +friend_re_name +1572966090 +zhangyang +1572966442 +zhangyang +好友备注名 +varchar(20) +20 + + + + +F61731FA-E551-469E-8687-13E071D0C223 +Key_1 +Key_1 +1572965971 +zhangyang +1572965997 +zhangyang + + + + + + + + + + +FF84ED16-BEFC-472B-A05C-3191DD98BD38 +blog_articletype +blog_article_type +1572964677 +zhangyang +1572965917 +zhangyang +文章类型 + + + +264DC366-8117-42DE-A483-72602FC382E7 +id +id +1572965633 +zhangyang +1572965669 +zhangyang +主键id +varchar(32) +32 +1 + + +5FF9C759-18E3-4E68-9572-5AC46EDFF0FE +name +name +1572965669 +zhangyang +1572965965 +zhangyang +类型名称 +varchar(20) +20 +1 + + +44B0D4A8-1FB6-48E4-8414-267E469FCAB2 +parent +parent +1572965669 +zhangyang +1572966459 +zhangyang +父级id +# +varchar(32) +32 +1 + + +56F48DAC-7BB0-4333-B32A-BFDD1D7F9B72 +info +info +1572965669 +zhangyang +1572965871 +zhangyang +描述信息 +varchar(1) +1 +1 + + + + +DCEFE149-6658-4B46-8EE5-5D5BFB6ECBDA +Key_1 +Key_1 +1572965633 +zhangyang +1572965669 +zhangyang + + + + + + + + + + +14128AD0-27BD-4BF2-B6E6-505CF0E9300F +blog_photo +blog_photo +1572964675 +zhangyang +1572966339 +zhangyang +相册表 + + + +4CFC7902-3E20-4C1B-811E-0BD67A4AD94F +id +id +1572965971 +zhangyang +1572966169 +zhangyang +主键id +varchar(32) +32 +1 + + +988F1DC0-754D-480E-82AE-3FC21235528E +photo_addr +photo_addr +1572965997 +zhangyang +1572966225 +zhangyang +图片存放地址 +varchar(200) +200 +1 + + +ED52EF84-9C87-4839-8869-3989B96CFBD5 +photo_add_time +photo_add_time +1572965997 +zhangyang +1572966364 +zhangyang +上传日期 +CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +timestamp +1 + + +F23AEFDD-204D-48DC-9D34-B47E0A5FF78A +photo_info +photo_info +1572966090 +zhangyang +1572966291 +zhangyang +图片备注 +varchar(100) +100 + + +F07CEE10-A7B2-49A3-8341-249BDCA28763 +photo_master_id +photo_master_id +1572966291 +zhangyang +1572966359 +zhangyang +上传人(博主) +varchar(32) +32 +1 + + + + +02AA6FDD-7E5F-4F6E-B247-E4FC7E10132F +Key_1 +Key_1 +1572965971 +zhangyang +1572966169 +zhangyang + + + + + + + + + + +93F51F74-4E94-4B1D-B293-72D169BB0380 +blog_master +blog_master +1572964675 +zhangyang +1572966769 +zhangyang +博主表 + + + +F5F680AB-F4D1-4F60-9B26-765042EC064A +id +id +1572965971 +zhangyang +1572966553 +zhangyang +主键id +varchar(32) +32 +1 + + +0F7A0E65-341F-47C7-8118-8069F7934096 +master_name +master_name +1572965997 +zhangyang +1572966769 +zhangyang +博主名称 +varchar(40) +40 +1 + + +16285953-88B2-45AE-B189-4EAD3318E336 +master_password +master_password +1572965997 +zhangyang +1572966769 +zhangyang +密码 +varchar(64) +64 +1 + + +40836D2B-2010-459D-802A-6988D902C7E9 +master_oicq +master_oicq +1572966090 +zhangyang +1572966781 +zhangyang +博主oicq(三方id) +varchar(20) +20 + + +27C87867-A148-4FA4-9B27-0B029B84239A +master_sex +master_sex +1572966559 +zhangyang +1572966769 +zhangyang +0:女;1:男 +1 +varchar(1) +1 +1 + + + + +2ECA47E1-3070-47CA-8334-7EA9227D4D31 +Key_1 +Key_1 +1572965971 +zhangyang +1572966553 +zhangyang + + + + + + + + + + +DB119724-13CF-4D06-BDAB-7A6560990A5D +blog_word +blog_word +1572964675 +zhangyang +1572967126 +zhangyang +留言表 + + + +45FDE551-1614-4BF9-B93B-2953AE6E7199 +id +id +1572965971 +zhangyang +1572966861 +zhangyang +主键id +varchar(32) +32 +1 + + +E610FACB-C547-4814-8BA6-61904C7B65D6 +word_title +word_title +1572965997 +zhangyang +1572967126 +zhangyang +留言标题 +varchar(40) +40 +1 + + +446E2C9A-5BE9-4C9C-99E3-612AA5980345 +word_content +word_content +1572965997 +zhangyang +1572967126 +zhangyang +留言内容 +varchar(400) +400 +1 + + +EEF467E9-7778-4FE8-82B1-6FA98A6948DD +word_sdTime +word_time +1572966090 +zhangyang +1572967831 +zhangyang +留言的时间 +CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +timestamp +1 + + +BB32A267-605C-4670-97D8-244C2C50F152 +word_author_id +word_author_id +1572966559 +zhangyang +1572967126 +zhangyang +留言的作者id +1 +varchar(32) +32 +1 + + +A93B9FE7-9A4E-4240-8CB3-58FD3D246631 +word_master_id +word_master_id +1572966559 +zhangyang +1572967126 +zhangyang +留言的对象id(博主id) +1 +varchar(32) +32 +1 + + + + +FE0CD817-A4D5-4850-9C04-D99B9590C91B +Key_1 +Key_1 +1572965971 +zhangyang +1572966861 +zhangyang + + + + + + + + + + +F452EC5A-1ECB-4B51-B5C8-0982EBC8486E +blog_review +blog_review +1572964675 +zhangyang +1572967601 +zhangyang +评论表 + + + +9D8B321F-0DF2-49A7-9BDB-12DACDDA95DB +id +id +1572965971 +zhangyang +1572967155 +zhangyang +主键id +varchar(32) +32 +1 + + +1D9BD507-5136-4E2F-947E-DDC8A1509961 +review_articleID +review_articleID +1572965997 +zhangyang +1572967408 +zhangyang +评论的文章id +varchar(40) +40 +1 + + +4C6071AF-0744-4042-8BCE-E38A5C74C98A +review_master_id +review_master_id +1572966559 +zhangyang +1572967408 +zhangyang +博主id +1 +varchar(32) +32 +1 + + +D604EF4C-162D-4856-8B54-FCEFFD8BB213 +review_author_id +review_author_id +1572966559 +zhangyang +1572967408 +zhangyang +评论的作者id +1 +varchar(32) +32 +1 + + +D264E1B1-A7A1-443A-ACD3-14B1B9D49809 +review_content +review_content +1572966559 +zhangyang +1572967408 +zhangyang +评论内容 +1 +varchar(400) +400 +1 + + +BD08FF2E-615F-4BDE-8F5B-F5A6261BEDB6 +review_time +review_time +1572966090 +zhangyang +1572967764 +zhangyang +评论时间 +CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +timestamp +1 + + + + +8B9736CB-FA8B-4353-8BF1-2FF8BF06C149 +Key_1 +Key_1 +1572965971 +zhangyang +1572967155 +zhangyang + + + + + + + + + + + + +25F88292-6AF2-4CD9-983A-C403515D4928 +PUBLIC +PUBLIC +1572964660 +zhangyang +1572964660 +zhangyang + + + + +F5808528-CBAF-4F13-AF21-839A3EEB02F2 +MySQL 5.0 +MYSQL50 +1572964660 +zhangyang +1572964660 +zhangyang +file:///%_DBMS%/mysql50.xdb +F4F16ECD-F2F1-4006-AF6F-638D5C65F35E +4BA9F647-DAB1-11D1-9944-006097355D9B +1276524678 + + + + + + + + + + \ No newline at end of file -- Gitee From c8e6c367f73e71181637154a14862ecab1f3a4c6 Mon Sep 17 00:00:00 2001 From: zy <942628598@qq.com> Date: Wed, 6 Nov 2019 14:13:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?blog=E5=8D=9A=E5=AE=A2=E5=8F=AF=E8=AE=BF?= =?UTF-8?q?=E9=97=AE=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++ rboat-admin/pom.xml | 6 ++ .../src/main/java/com/rboat/TestMain.java | 10 ++ .../src/main/java/com/rboat/diagramUtil.java | 35 +++++++ rboat-admin/src/main/resources/banner.txt | 87 +++++++++++++----- .../static/UI/Hplus-v.4.1.0/rboat.png | Bin 0 -> 8397 bytes .../src/main/resources/static/favicon.ico | Bin 16958 -> 67646 bytes .../src/main/resources/static/rboat.png | Bin 5645 -> 4623 bytes .../src/main/resources/static/rboat1.png | Bin 0 -> 8397 bytes rboat-blog/pom.xml | 15 +-- .../controller/BlogArticleController.java | 2 +- .../controller/BlogArticleTypeController.java | 2 +- .../rboat/blog/controller/BlogController.java | 19 ++++ .../blog/controller/BlogFriendController.java | 2 +- .../blog/controller/BlogMasterController.java | 2 +- .../blog/controller/BlogPhotoController.java | 2 +- .../blog/controller/BlogReviewController.java | 2 +- .../blog/controller/BlogWordController.java | 2 +- .../main/resources/templates/blog/main.html | 12 +++ .../rboat/framework/config/ShiroConfig.java | 2 + sql/rb_20190822.sql | 7 +- 21 files changed, 171 insertions(+), 42 deletions(-) create mode 100644 rboat-admin/src/main/java/com/rboat/TestMain.java create mode 100644 rboat-admin/src/main/java/com/rboat/diagramUtil.java create mode 100644 rboat-admin/src/main/resources/static/UI/Hplus-v.4.1.0/rboat.png create mode 100644 rboat-admin/src/main/resources/static/rboat1.png create mode 100644 rboat-blog/src/main/java/com/rboat/blog/controller/BlogController.java create mode 100644 rboat-blog/src/main/resources/templates/blog/main.html diff --git a/pom.xml b/pom.xml index d20a5b4..309dceb 100644 --- a/pom.xml +++ b/pom.xml @@ -216,6 +216,11 @@ rboat-activiti ${rboat.version} + + com.rboat + rboat-blog + 4.0.0 + @@ -228,6 +233,7 @@ rboat-common rboat-exam rboat-activiti + rboat-blog pom diff --git a/rboat-admin/pom.xml b/rboat-admin/pom.xml index 2b7e673..5ea018d 100644 --- a/rboat-admin/pom.xml +++ b/rboat-admin/pom.xml @@ -84,6 +84,12 @@ rboat-activiti 4.0.0 + + + com.rboat + rboat-blog + 4.0.0 + diff --git a/rboat-admin/src/main/java/com/rboat/TestMain.java b/rboat-admin/src/main/java/com/rboat/TestMain.java new file mode 100644 index 0000000..c98fd93 --- /dev/null +++ b/rboat-admin/src/main/java/com/rboat/TestMain.java @@ -0,0 +1,10 @@ +package com.rboat; + +public class TestMain { + + public static void main(String[] args) { + System.out.println( TestMain.class.getResource("/")); + System.out.println( TestMain.class.getResource("../../")); + System.out.println( TestMain.class.getResource("../../../")); + } +} diff --git a/rboat-admin/src/main/java/com/rboat/diagramUtil.java b/rboat-admin/src/main/java/com/rboat/diagramUtil.java new file mode 100644 index 0000000..2c50726 --- /dev/null +++ b/rboat-admin/src/main/java/com/rboat/diagramUtil.java @@ -0,0 +1,35 @@ +package com.rboat; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +public class diagramUtil { + public static void createAsciiPic(final String path) { + //final String base = "@#&$%*o!;.";// 字符串由复杂到简单 + final String base = "KSPksp;."; + try { + final BufferedImage image = ImageIO.read(new File(path)); + System.out.println("W:" + image.getWidth() + " H:" + image.getHeight()); + for (int y = 0; y < image.getHeight(); y += 2) { + for (int x = 0; x < image.getWidth(); x++) { + final int pixel = image.getRGB(x, y); + final int r = (pixel & 0xff0000) >> 16, g = (pixel & 0xff00) >> 8, b = pixel & 0xff; + final float gray = 0.299f * r + 0.578f * g + 0.114f * b; + final int index = Math.round(gray * (base.length() + 1) / 255); + System.out.print(index >= base.length() ? " " : String.valueOf(base.charAt(index))); + } + System.out.println(); + } + } catch (final IOException e) { + e.printStackTrace(); + } + } + + public static void main(String args[]) { + diagramUtil.createAsciiPic("F:\\favicon.ico"); + } + + +} diff --git a/rboat-admin/src/main/resources/banner.txt b/rboat-admin/src/main/resources/banner.txt index 1a2e383..245feb9 100644 --- a/rboat-admin/src/main/resources/banner.txt +++ b/rboat-admin/src/main/resources/banner.txt @@ -1,24 +1,67 @@ Application Version: ${rboat.version} Spring Boot Version: ${spring-boot.version} -//////////////////////////////////////////////////////////////////// -// _ooOoo_ // -// o8888888o // -// 88" . "88 // -// (| ^_^ |) // -// O\ = /O // -// ____/`---'\____ // -// .' \\| |// `. // -// / \\||| : |||// \ // -// / _||||| -:- |||||- \ // -// | | \\\ - /// | | // -// | \_| ''\---/'' | | // -// \ .-\__ `-` ___/-. / // -// ___`. .' /--.--\ `. . ___ // -// ."" '< `.___\_<|>_/___.' >'"". // -// | | : `- \`.;`\ _ /`;.`/ - ` : | | // -// \ \ `-. \_ __\ /__ _/ .-` / / // -// ========`-.____`-.___\_____/___.-`____.-'======== // -// `=---=' // -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// 佛祖保佑 永不宕机 永无BUG // -//////////////////////////////////////////////////////////////////// \ No newline at end of file + ***************************************************************************************************************************************** +* ;kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk; .sPPSSSSSSSSSSSSSSSSSSSSSSSSSSSSSPkp * +* k k kSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS. * +* ;p p; PSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSp * +* k k ;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSP * +* k k pSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS * +* k s. kk .Ps k pSSSSSSSSSSSSSSSSk .SSSSSSSSSSSSSSSSSSSSSSSS * +* k ;Ss ;Sp kSp k pSSSSSSSSSSSSPSS; PSSSSSSSSSSPPSSSSSSSSSSSS * +* k pSs PSSSSSSSSSSSSSSSSSS; k pSSSSSSSSSSSSp; ; .SSSSSSSSSSSS * +* k .p k pSSSSSSSSSSSS;.pskPSSSSSSPks; .SSSSSSSSSSSS * +* k . p; ; k pSSSSSSSSSSSS.kSSSS..PSSSSSSSS SSSSSSSSSSSS * +* k pSSSSk pp P. ss k pSSSSSSSSSSSS sSSSSP kSSSSSSS SSSSSSSSSSSS * +* k PS ;P S Sp k pSSSSSSSSSSSS pSSSSSP kSSSSSS PSSSSSSSSSSS * +* k kS ;S ;S .Sp k pSSSSSSSSSSSS pSSSSSSS .SSSSSS PSSSSSSSSSSS * +* k kS ;S pP .Sp k pSSSSSSSSSSSS pSSSSSSSSSSSSSSS kSSSSSSSSSSS * +* k kS sS;;;;;kP;;;;;Sk k pSSSSSS; ;SSSSSSS * +* k kS PSSSSSSSSSSSSSSS k pSSSSSSsppppp .pppppp;;ppppppp ;pppkSSSSSSS * +* k kS ;P Ps ks k pSSSSSSSSSSSP ;SSSSSSp;SSSSSSP kSSSSSSSSSSS * +* k kS s Sp k pSSSSSSSSSSSP ;SSSSSS; SSSSSSP kSSSSSSSSSSS * +* k kS .Sp k pSSSSSSSSSSSP ;SSSSSS; SSSSSSP sSSSSSSSSSSS * +* k kS ;S; k pSSSSSSSSSSSP .SSSSSS. SSSSSSP sSSSSSSSSSSS * +* k kS pS. k pSSSSSSSSSSSP ;SSSSSS. SSSSSSP sSSSSSSSSSSS * +* k kS kS k pSSSSSSSSSSSP ;SSSSSS; SSSSSSP sSSSSSSSSSSS * +* k kS PP k pSSSSSSSSSSSP ;SSSSSS; SSSSSSP sSSSSSSSSSSS * +* k kS .Ss k pSSSSSSSSSSSk ;SSSSSSs.SSSSSSP sSSSSSSSSSSS * +* k kS pS; k pSSSSSSSSSSSk pSSSSSSPsSSSSSSP sSSSSSSSSSSS * +* k kS kS k pSSSSSSSSSSSs pSSSSSSSSSSSSSSP sSSSSSSSSSSS * +* k kS Sk k pSSSSSSSSSSSs sSSSSSSSSSSSSSSP sSSSSSSSSSSS * +* k kS ;S; k pSSSSSSSSSSSp kSSSSSSSSSSSSSSP sSSSSSSSSSSS * +* k PS kP k pSSSSSSSSSSS; PSSSSSSSSSSSSSSP sSSSSSSSSSSS * +* k PP .Sp k pSSSSSSSSSSS. SSSSSSSSSSSSSSSP sSSSSSSSSSSS * +* k Pk kP k pSSSSSSSSSSS .SSSSSSSSSSSSSSSP sSSSSSSSSSSS * +* k Ss .S; k pSSSSSSSSSSP ;SSSSSSSSSSSSSSSP sSSSSSSSSSSS * +* k .S; Pk k pSSSSSSSSSSk sSSSSSSSSSSSSSSSP sSSSSSSSSSSS * +* k pS pP k pSSSSSSSSSSs kSSSSSSSSSSSSSSSS kSSSSSSSSSSS * +* k PSs ;S k pSSSSSSSSSS; SSSSSSSSSSSSSSSSS kSSSSSSSSSSS * +* k ;S;Ps ;P k pSSSSSSSSSS.;SSSSSSSSSSSSSSSSS kSSSSSSSSSSS * +* k kk PP k pSSSSSSSSSP sSSSSSSSSSSSSSSSSS PSSSSSSSSSSS * +* k .S sSPp k pSSSSSSSSSs SSSSSSSSSSSSSSSSSS. PSSSSSSSSSSS * +* k P; sPSSSSSSSSSSSSSSSSSPP; k pSSSSSSSSS;pSSSSSSSSSSSSSSSSSS; SSSSSSSSSSSS * +* k p; k pSSSSSSSSP PSSSSSSSSSSSSSSSSSSp.SSSSSSSSSSSS * +* k ;. k pSSSSSSSSSSSSSSSSSSSSSSSSSSSSSPkSSSSSSSSSSSS * +* k k pSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS * +* s s .SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSk * +* k k pSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSP * +* .k; pk. kSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSP. * +* * +* * +* * +* * +* * +* * +* SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS * +* * +* * +* * +* * +* * +* kSs S. pS PPPPPPPS; kk .S. ;PPsskSk kk .S. * +* kskP S. pS PP kk .S. kP pS. kk .S. * +* ks pP S. pS pS; kPkkkkkkS. .S; ks kk .S. * +* ks .S; S. pS Pk kk .S. .S; Ps kk .S. * +* ks PkS. pS sP. kk .S. pP. kP pS. sP * +* ks kS. pS sSSSSSSSS; kk .S. pPSSPk. sPSSP; * + ***************************************************************************************************************************************** \ No newline at end of file diff --git a/rboat-admin/src/main/resources/static/UI/Hplus-v.4.1.0/rboat.png b/rboat-admin/src/main/resources/static/UI/Hplus-v.4.1.0/rboat.png new file mode 100644 index 0000000000000000000000000000000000000000..bc48c4cdccff1db06a5ecbea3b3e5b8efac7f8a3 GIT binary patch literal 8397 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 Vt~$rx0GmY4**V(Qp1FGOKLGBLZvy}T literal 0 HcmV?d00001 diff --git a/rboat-admin/src/main/resources/static/favicon.ico b/rboat-admin/src/main/resources/static/favicon.ico index 6f07782abfc7881a73d3f47a00b761c183e06ff9..d8360c8047def919c6cf7357c38d8cfce7b5b8aa 100644 GIT binary patch literal 67646 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 diff --git a/rboat-admin/src/main/resources/static/rboat.png b/rboat-admin/src/main/resources/static/rboat.png index b0af01fefabd113d23cde619dda7a429653e99c2..c6eec97faf959034bb3e5a24db83e62ea20600b4 100644 GIT binary patch literal 4623 zcma)Ac{r3^8>i6NvSk}&AIee~WXUpi846kScO-V;u-t`4{dLQiH--9jZ=7R+U71YEMaOQ+w!IdXte|?YJo9-R{MY z$;g-r^fc8?18g^P>E}b$XEEVLh2h>makFZi4Plm7-=}%Z= zzTSjY-PCGl&dbv(OL8bHG=@A7x)%3UKnq~STWD1_b`w}L=-hav?j$=`DQIgm>rcwA zp5grF`pn$s%+}^Wj)Kgxcb2{ABZ!RYZ4BqlOadLN0V0Y91lFKrL1DtF2k*B>Iu&1Z zBWw`7A$#_Iha28CTSmY)A%|1>sl-v1F6YA;&!B_tk8a14wf!vp8BXlEQVL4H+wNAU z2>SJ1JzZTMbK84s*K5crub3USSi0U4){>3RQYoX^C}e*-XsEbT`E=-1VN%JxHQgQB zJ$3#KB~kx_>afF|SgA5cROW3y-&#MtArj;stj|?5Avu}WABIL3N|sT(E&gVov0iew zmRq)NyezOt{;k>tjxSUQunu)!7@Fmpp;SV=xh2G8Ee1K+8!?)(hVORKA7^ZCPqZqd za}`75l_o$9`@c(CNsWpB**pJkz|u9gAZR#LCjWS76q3R{(|si^;!>uM5wgl4Gj zz#j;24Q`;e)eyt61gE!3vexI*GRH-mI}0*lUnK7?@12g!pKfn=H_O+?X^*IT&W#6)~G2%7d7(sYozTT@$N z_7nYSKB~=Tm{yT*?{|4ls2{#i-i8GzD2fi=i3zF<{sBdSdLy-?zZd^$ecMvIKNx&Z zcF*D1-s6(_%Lz2*`a#KJ^{-UI)j9u(jn?i@=&uKxBLyz028hGChBlk0@j>6W=aiQY zI=5h*mLg%@8{UiQGCLBU1#DKHbbI~`=Y2fO>4UeLZ0$W;lX)7azD(Bn{mH8ne~c1h z0Y+@-Y}Pe#F}I^(6m=c3g-K4WA-`0daZN||0hjwe<_$I+(3q>Z45&}$Gl{1Vzfb8 z0c5evZ-9TU=ZlJ?1O7)Cx2j*kVf0FO#&naYDi%Eo$(JyrbU!F_$A8BfM;@I8ZT%3| zux#;aI6UGX5&A%Qp&M=~^L`nv5|M&br{_Nus3ins^D|TE6h+URbN|pv{5~8L~jVNUA^D_wPG;q*3wL5{h>a=;Jkn@k)4C0^h~<6_yCb@?RhL9qFxv-*>E>CWTs9z! z$BkX+WLo7)HN&$R6zrLjdkjaTB$)2-iqsRlbbO^iv64>_$sy?z#R8az)$0oX)ustLw7+ON-u8Qw4rjS|(K+@`--;&pz1h3!- zfOJg!H`%WJ*sg%NZz0-rlajC}>ps#Fn4wJf=ha?-vkc{8*hTPNru92XEUrHLh5FPO zVeqshkuhamiCqe+CIiO}XSBVD)8JN(n+h@``!}hjELl?r6H(hp}1_uid~d@TlO&HBJWp;d|-!M_(cv zuTMK!P?(l7sRS2@s5?$^~>n4;`Mx%0@KfH6-nT zHRUtjEB-)~1d?aMHJAV2@TjKX8O^I&`WU^F*lhzl1?^hkD%~|Cs6VI^1?n(HO!Hw= zGk?X~7Fomf?v=iMrG(p*4lmpcqdp{VvuU(8XyIN-6f7~lwsv<*LMRSCg35p{$ z{51p)Able9Yh-A~V!RU$7)zoG46%sfo zu5hmW`e(GNc$yhXppa0^tp1+$0N!a^L@lAlgJJTF%a;Si>5Jb$M%{k5$>BIO(88q0 zgNbn!bQ;zpz3sB{Y|{kV1;(>RzcWCPuL7V8gue>pNjXiaytFFmcpsNXcnY{la;2A4 z6H`pjUq}$@CKIH?u)6naPGm@={B~>{@mT9?D z%#ZPU4~fflKL=uD-A+j696w%!GDpR*F4K(;Zhz48!fb0Ck1L1?(yk+oiF+C(;P`y> z7%t8%-a!gO`RJ7}Xi10pb*Ga+qHrO>0$hpKyrw1gWeo?IBD-S;e;ot!{%;KGa;!j8AyRteG-Td6l-8q?2g9*yUX*)% z5Cgo>f$MM>sDK&x;FB6fS%va=536u;Mo*nlx=X4lB3rK1pMBc3ip}9G$MfgQ8+AJp zgDLumVM%%I2$rQp8HqW=1;{cg~UtpBh_EDbf000;J##n?q^$|!{7;ITq9fO-4 zW)VpqHn(*|39+I|Lrs2g35vf${(Lp@B+e9)=C|^Wv@cXY!j#!tzl`7hj@WAllbDbX zkSLH&$lO(1?lL!$&H=yKEOonzR98p}0Up?dyjebA2$GH(4^^Ur{w2w9&f{34qs>Y1g+Q#j}vOs!~T@N*P zxQ^AH7R+)AH8&vY4G~Q~dI(L-=S?m+canT-1&NXs(ZV`Urm%`d(e$&!VqrA-*lf6`Ea37mVG&^iQAYJLM-7gC5MH&LN0$Y&urBdRB*zye6+V%`!e;+PatRo>AYJu*uiMQGV%*0 zm(z(8G$CLKFFf9A?Jn0N=%0D$!ZU`JAc<;8D?TJ~a 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 diff --git a/rboat-admin/src/main/resources/static/rboat1.png b/rboat-admin/src/main/resources/static/rboat1.png new file mode 100644 index 0000000000000000000000000000000000000000..bc48c4cdccff1db06a5ecbea3b3e5b8efac7f8a3 GIT binary patch literal 8397 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 Vt~$rx0GmY4**V(Qp1FGOKLGBLZvy}T literal 0 HcmV?d00001 diff --git a/rboat-blog/pom.xml b/rboat-blog/pom.xml index 2209a1e..c5d7b7f 100644 --- a/rboat-blog/pom.xml +++ b/rboat-blog/pom.xml @@ -10,21 +10,16 @@ 4.0.0 rboat-blog - 博客系统 - - - - - - com.rboat - rboat-common - - + + + com.rboat + rboat-framework + \ No newline at end of file diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleController.java index e725745..f02bb8f 100644 --- a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleController.java +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleController.java @@ -1,4 +1,4 @@ -package com.rboat.web.controller.blog; +package com.rboat.blog.controller; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleTypeController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleTypeController.java index 0f944a0..011c6e7 100644 --- a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleTypeController.java +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogArticleTypeController.java @@ -1,4 +1,4 @@ -package com.rboat.web.controller.blog; +package com.rboat.blog.controller; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogController.java new file mode 100644 index 0000000..6615106 --- /dev/null +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogController.java @@ -0,0 +1,19 @@ +package com.rboat.blog.controller; + +import com.rboat.common.core.controller.BaseController; +import com.rboat.common.utils.ServletUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Controller +public class BlogController { + private String prefix = "blog"; + @GetMapping("/blog") + public String login(HttpServletRequest request, HttpServletResponse response) { + return prefix+"/main"; + } +} diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogFriendController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogFriendController.java index 7bdfef4..0a1eb33 100644 --- a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogFriendController.java +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogFriendController.java @@ -1,4 +1,4 @@ -package com.rboat.web.controller.blog; +package com.rboat.blog.controller; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogMasterController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogMasterController.java index 122b7b7..b9f3a9a 100644 --- a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogMasterController.java +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogMasterController.java @@ -1,4 +1,4 @@ -package com.rboat.web.controller.blog; +package com.rboat.blog.controller; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogPhotoController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogPhotoController.java index b76df42..6286b21 100644 --- a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogPhotoController.java +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogPhotoController.java @@ -1,4 +1,4 @@ -package com.rboat.web.controller.blog; +package com.rboat.blog.controller; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogReviewController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogReviewController.java index 8d1becd..c3ba699 100644 --- a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogReviewController.java +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogReviewController.java @@ -1,4 +1,4 @@ -package com.rboat.web.controller.blog; +package com.rboat.blog.controller; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; diff --git a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogWordController.java b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogWordController.java index 2e4396f..2cd3fa5 100644 --- a/rboat-blog/src/main/java/com/rboat/blog/controller/BlogWordController.java +++ b/rboat-blog/src/main/java/com/rboat/blog/controller/BlogWordController.java @@ -1,4 +1,4 @@ -package com.rboat.web.controller.blog; +package com.rboat.blog.controller; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; diff --git a/rboat-blog/src/main/resources/templates/blog/main.html b/rboat-blog/src/main/resources/templates/blog/main.html new file mode 100644 index 0000000..e67b8be --- /dev/null +++ b/rboat-blog/src/main/resources/templates/blog/main.html @@ -0,0 +1,12 @@ + + + + + + + 博客首页 + + +博客主页 + + diff --git a/rboat-framework/src/main/java/com/rboat/framework/config/ShiroConfig.java b/rboat-framework/src/main/java/com/rboat/framework/config/ShiroConfig.java index 8d941bf..d61eb4a 100644 --- a/rboat-framework/src/main/java/com/rboat/framework/config/ShiroConfig.java +++ b/rboat-framework/src/main/java/com/rboat/framework/config/ShiroConfig.java @@ -251,6 +251,8 @@ public class ShiroConfig filterChainDefinitionMap.put("/rboat/**", "anon"); filterChainDefinitionMap.put("/druid/**", "anon"); filterChainDefinitionMap.put("/captcha/captchaImage**", "anon"); + //博客页面,不需要拦截 + filterChainDefinitionMap.put("/blog/**", "anon"); // 退出 logout地址,shiro去清除session filterChainDefinitionMap.put("/logout", "logout"); // 不需要拦截的访问 diff --git a/sql/rb_20190822.sql b/sql/rb_20190822.sql index 50e6de1..4707405 100644 --- a/sql/rb_20190822.sql +++ b/sql/rb_20190822.sql @@ -254,9 +254,7 @@ insert into sys_menu values('1058', '生成删除', '114', '3', '#', '', 'F', ' insert into sys_menu values('1059', '预览代码', '114', '4', '#', '', 'F', '0', 'tool:gen:preview', '#', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', ''); insert into sys_menu values('1060', '生成代码', '114', '5', '#', '', 'F', '0', 'tool:gen:code', '#', 'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', ''); -- 工作流按钮 -INSERT INTO `sys_menu` VALUES ('1058', '模型查询', '116', '1','','#', 'F', '0', 'activiti:model:list', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); -INSERT INTO `sys_menu` VALUES ('1059', '模型新增', '116', '2','','#', 'F', '0', 'activiti:model:add', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); -INSERT INTO `sys_menu` VALUES ('1060', '模型修改', '116', '3','','#', 'F', '0', 'activiti:model:edit', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); + INSERT INTO `sys_menu` VALUES ('1061', '模型删除', '116', '4','','#', 'F', '0', 'activiti:model:remove', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); INSERT INTO `sys_menu` VALUES ('1062', '模型部署', '116', '5','','#', 'F', '0', 'activiti:model:deploy', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); INSERT INTO `sys_menu` VALUES ('1063', '模型导出', '116', '6','','#', 'F', '0', 'activiti:model:export', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); @@ -264,6 +262,9 @@ INSERT INTO `sys_menu` VALUES ('1064', '流程查询', '117', '1','','#', 'F', ' INSERT INTO `sys_menu` VALUES ('1065', '流程新增', '117', '2','','#', 'F', '0', 'activiti:process:add', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); INSERT INTO `sys_menu` VALUES ('1066', '流程删除', '117', '3','','#', 'F', '0', 'activiti:process:remove', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); INSERT INTO `sys_menu` VALUES ('1067', '转为模型', '117', '4','','#', 'F', '0', 'activiti:process:model', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); +INSERT INTO `sys_menu` VALUES ('1068', '模型查询', '116', '1','','#', 'F', '0', 'activiti:model:list', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); +INSERT INTO `sys_menu` VALUES ('1069', '模型新增', '116', '2','','#', 'F', '0', 'activiti:model:add', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); +INSERT INTO `sys_menu` VALUES ('1070', '模型修改', '116', '3','','#', 'F', '0', 'activiti:model:edit', '#', 'admin', '2018-03-16 11:33:00', 'ry', '2018-03-16 11:33:00', ''); -- ---------------------------- -- 6、用户和角色关联表 用户N-1角色 -- Gitee From 261bbae26a4318634ccb9abfd96f371d5d71e026 Mon Sep 17 00:00:00 2001 From: zy <942628598@qq.com> Date: Wed, 6 Nov 2019 18:03:56 +0800 Subject: [PATCH 3/3] .. --- pom.xml | 1 + .../main/resources/static/images/favicon.ico | Bin 0 -> 67646 bytes .../src/main/resources/static/images/rboat.png | Bin 0 -> 4623 bytes .../src/main/resources/static/images/rboat1.png | Bin 0 -> 8397 bytes .../src/main/resources/templates/blog/main.html | 4 +++- 5 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 rboat-blog/src/main/resources/static/images/favicon.ico create mode 100644 rboat-blog/src/main/resources/static/images/rboat.png create mode 100644 rboat-blog/src/main/resources/static/images/rboat1.png diff --git a/pom.xml b/pom.xml index 309dceb..2f5f8aa 100644 --- a/pom.xml +++ b/pom.xml @@ -216,6 +216,7 @@ rboat-activiti ${rboat.version} + com.rboat rboat-blog diff --git a/rboat-blog/src/main/resources/static/images/favicon.ico b/rboat-blog/src/main/resources/static/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d8360c8047def919c6cf7357c38d8cfce7b5b8aa GIT binary patch literal 67646 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%0D$!ZU`JAc<;8D?TJ~a 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 Vt~$rx0GmY4**V(Qp1FGOKLGBLZvy}T literal 0 HcmV?d00001 diff --git a/rboat-blog/src/main/resources/templates/blog/main.html b/rboat-blog/src/main/resources/templates/blog/main.html index e67b8be..6321bdd 100644 --- a/rboat-blog/src/main/resources/templates/blog/main.html +++ b/rboat-blog/src/main/resources/templates/blog/main.html @@ -4,9 +4,11 @@ + 博客首页 -博客主页 + +博客主页1 -- Gitee