diff --git a/.gitignore b/.gitignore
index 032ce5c8..ebaf883b 100755
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,7 @@ dist/
nbdist/
.nb-gradle/
+
.DS_Store
target/
diff --git a/ForestBlog/pom.xml b/ForestBlog/pom.xml
index 2aaf34f9..aa830ec6 100755
--- a/ForestBlog/pom.xml
+++ b/ForestBlog/pom.xml
@@ -136,23 +136,23 @@
druid
1.0.16
-
+
- log4j
- log4j
- 1.2.17
+ ch.qos.logback
+ logback-classic
+ 1.1.2
- org.slf4j
- slf4j-api
- 1.7.21
+ ch.qos.logback
+ logback-core
+ 1.1.2
-
- commons-logging
- commons-logging
- 1.2
+ org.logback-extensions
+ logback-ext-spring
+ 0.1.1
+
junit
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/AdminController.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/AdminController.java
index 9b4450ee..90882f82 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/AdminController.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/AdminController.java
@@ -72,7 +72,8 @@ public String index(Model model, HttpSession session) {
* @return
*/
@RequestMapping("/login")
- public String loginPage() {
+ public String
+ loginPage() {
return "Admin/login";
}
@@ -109,6 +110,9 @@ public String loginVerify(HttpServletRequest request, HttpServletResponse respon
} else if (!user.getUserPass().equals(password)) {
map.put("code", 0);
map.put("msg", "密码错误!");
+ } else if (user.getUserStatus() == 0) {
+ map.put("code", 0);
+ map.put("msg", "账号已禁用!");
} else {
//登录成功
map.put("code", 1);
@@ -210,7 +214,7 @@ public ModelAndView userProfileView(HttpSession session) {
/**
* 编辑个人信息页面显示
*
- * @param loginUser
+ * @param session
* @return
*/
@RequestMapping(value = "/admin/profile/edit")
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/BackArticleController.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/BackArticleController.java
index 459e1a45..55d82cca 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/BackArticleController.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/BackArticleController.java
@@ -108,6 +108,7 @@ public String insertArticleSubmit(HttpSession session, ArticleParam articleParam
} else {
article.setArticleSummary(summaryText);
}
+ article.setArticleThumbnail(articleParam.getArticleThumbnail());
article.setArticleContent(articleParam.getArticleContent());
article.setArticleStatus(articleParam.getArticleStatus());
//填充分类
@@ -203,6 +204,7 @@ public String editArticleSubmit(ArticleParam articleParam, HttpSession session)
return "redirect:/403";
}
Article article = new Article();
+ article.setArticleThumbnail(articleParam.getArticleThumbnail());
article.setArticleId(articleParam.getArticleId());
article.setArticleTitle(articleParam.getArticleTitle());
article.setArticleContent(articleParam.getArticleContent());
@@ -262,6 +264,7 @@ public String insertDraftSubmit(HttpSession session, ArticleParam articleParam)
} else {
article.setArticleSummary(summaryText);
}
+ article.setArticleThumbnail(articleParam.getArticleThumbnail());
article.setArticleContent(articleParam.getArticleContent());
article.setArticleStatus(articleParam.getArticleStatus());
//填充分类
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/BackUserController.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/BackUserController.java
index d4dd902e..852b438a 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/BackUserController.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/admin/BackUserController.java
@@ -2,6 +2,7 @@
import com.liuyanzhao.ssm.blog.entity.User;
+import com.liuyanzhao.ssm.blog.enums.UserRole;
import com.liuyanzhao.ssm.blog.service.UserService;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,11 +34,11 @@ public class BackUserController {
* @return
*/
@RequestMapping(value = "")
- public ModelAndView userList() {
+ public ModelAndView userList() {
ModelAndView modelandview = new ModelAndView();
List userList = userService.listUser();
- modelandview.addObject("userList",userList);
+ modelandview.addObject("userList", userList);
modelandview.setViewName("Admin/User/index");
return modelandview;
@@ -50,7 +51,7 @@ public ModelAndView userList() {
* @return
*/
@RequestMapping(value = "/insert")
- public ModelAndView insertUserView() {
+ public ModelAndView insertUserView() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("Admin/User/insert");
return modelAndView;
@@ -62,22 +63,22 @@ public ModelAndView insertUserView() {
* @param request
* @return
*/
- @RequestMapping(value = "/checkUserName",method = RequestMethod.POST, produces = {"text/plain;charset=UTF-8"})
+ @RequestMapping(value = "/checkUserName", method = RequestMethod.POST, produces = {"text/plain;charset=UTF-8"})
@ResponseBody
- public String checkUserName(HttpServletRequest request) {
+ public String checkUserName(HttpServletRequest request) {
Map map = new HashMap();
String username = request.getParameter("username");
User user = userService.getUserByName(username);
int id = Integer.valueOf(request.getParameter("id"));
//用户名已存在,但不是当前用户(编辑用户的时候,不提示)
- if(user!=null) {
- if(user.getUserId()!=id) {
+ if (user != null) {
+ if (user.getUserId() != id) {
map.put("code", 1);
map.put("msg", "用户名已存在!");
}
} else {
- map.put("code",0);
- map.put("msg","");
+ map.put("code", 0);
+ map.put("msg", "");
}
String result = new JSONObject(map).toString();
return result;
@@ -89,22 +90,22 @@ public String checkUserName(HttpServletRequest request) {
* @param request
* @return
*/
- @RequestMapping(value = "/checkUserEmail",method = RequestMethod.POST, produces = {"text/plain;charset=UTF-8"})
+ @RequestMapping(value = "/checkUserEmail", method = RequestMethod.POST, produces = {"text/plain;charset=UTF-8"})
@ResponseBody
- public String checkUserEmail(HttpServletRequest request) {
+ public String checkUserEmail(HttpServletRequest request) {
Map map = new HashMap();
String email = request.getParameter("email");
User user = userService.getUserByEmail(email);
int id = Integer.valueOf(request.getParameter("id"));
//用户名已存在,但不是当前用户(编辑用户的时候,不提示)
- if(user!=null) {
- if(user.getUserId()!=id) {
+ if (user != null) {
+ if (user.getUserId() != id) {
map.put("code", 1);
map.put("msg", "电子邮箱已存在!");
}
} else {
- map.put("code",0);
- map.put("msg","");
+ map.put("code", 0);
+ map.put("msg", "");
}
String result = new JSONObject(map).toString();
return result;
@@ -117,13 +118,14 @@ public String checkUserEmail(HttpServletRequest request) {
* @param user
* @return
*/
- @RequestMapping(value = "/insertSubmit",method = RequestMethod.POST)
- public String insertUserSubmit(User user) {
+ @RequestMapping(value = "/insertSubmit", method = RequestMethod.POST)
+ public String insertUserSubmit(User user) {
User user2 = userService.getUserByName(user.getUserName());
User user3 = userService.getUserByEmail(user.getUserEmail());
- if(user2==null&&user3==null) {
+ if (user2 == null && user3 == null) {
user.setUserRegisterTime(new Date());
user.setUserStatus(1);
+ user.setUserRole(UserRole.USER.getValue());
userService.insertUser(user);
}
return "redirect:/admin/user";
@@ -136,7 +138,7 @@ public String insertUserSubmit(User user) {
* @return
*/
@RequestMapping(value = "/delete/{id}")
- public String deleteUser(@PathVariable("id") Integer id) {
+ public String deleteUser(@PathVariable("id") Integer id) {
userService.deleteUser(id);
return "redirect:/admin/user";
}
@@ -148,11 +150,11 @@ public String deleteUser(@PathVariable("id") Integer id) {
* @return
*/
@RequestMapping(value = "/edit/{id}")
- public ModelAndView editUserView(@PathVariable("id") Integer id) {
+ public ModelAndView editUserView(@PathVariable("id") Integer id) {
ModelAndView modelAndView = new ModelAndView();
- User user = userService.getUserById(id);
- modelAndView.addObject("user",user);
+ User user = userService.getUserById(id);
+ modelAndView.addObject("user", user);
modelAndView.setViewName("Admin/User/edit");
return modelAndView;
@@ -165,8 +167,8 @@ public ModelAndView editUserView(@PathVariable("id") Integer id) {
* @param user
* @return
*/
- @RequestMapping(value = "/editSubmit",method = RequestMethod.POST)
- public String editUserSubmit(User user) {
+ @RequestMapping(value = "/editSubmit", method = RequestMethod.POST)
+ public String editUserSubmit(User user) {
userService.updateUser(user);
return "redirect:/admin/user";
}
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/CategoryController.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/CategoryController.java
index 06d598d0..310c361e 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/CategoryController.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/CategoryController.java
@@ -75,7 +75,7 @@ public String getArticleListByCategory(@PathVariable("cateId") Integer cateId,
//获得热评文章
List mostCommentArticleList = articleService.listArticleByCommentCount(8);
model.addAttribute("mostCommentArticleList", mostCommentArticleList);
- model.addAttribute("pageUrlPrefix", "/category/"+pageIndex+"?pageIndex");
+ model.addAttribute("pageUrlPrefix", "/category/"+cateId+"?pageIndex");
return "Home/Page/articleListByCategory";
}
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/CommentController.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/CommentController.java
index c6ce0632..9e76d921 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/CommentController.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/CommentController.java
@@ -62,7 +62,7 @@ public JsonResult insertComment(HttpServletRequest request, Comment comment, Htt
} else {
comment.setCommentRole(Role.VISITOR.getValue());
}
- comment.setCommentAuthorAvatar(MyUtils.getGravatar(comment.getCommentAuthorEmail()));
+ comment.setCommentAuthorAvatar(user.getUserAvatar());
//过滤字符,防止XSS攻击
comment.setCommentContent(HtmlUtil.escape(comment.getCommentContent()));
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/IndexController.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/IndexController.java
index 040e3e73..aec1455c 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/IndexController.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/IndexController.java
@@ -93,7 +93,7 @@ public String search(
//最新评论
List recentCommentList = commentService.listRecentComment(null, 10);
model.addAttribute("recentCommentList", recentCommentList);
- model.addAttribute("pageUrlPrefix", "/search?pageIndex");
+ model.addAttribute("pageUrlPrefix", "/search?keywords=" + keywords + "&pageIndex");
return "Home/Page/search";
}
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/TagController.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/TagController.java
index 43e0c5f0..cfa3c3c4 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/TagController.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/controller/home/TagController.java
@@ -64,7 +64,8 @@ public String getArticleListByTag(@PathVariable("tagId") Integer tagId,
//获得热评文章
List mostCommentArticleList = articleService.listArticleByCommentCount(8);
model.addAttribute("mostCommentArticleList", mostCommentArticleList);
- model.addAttribute("pageUrlPrefix", "/tag?pageIndex");
+ model.addAttribute("pageUrlPrefix", "/tag/"+tagId+"?pageIndex");
+
return "Home/Page/articleListByTag";
}
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/dto/ArticleParam.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/dto/ArticleParam.java
index af19e332..835e09f9 100644
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/dto/ArticleParam.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/dto/ArticleParam.java
@@ -25,6 +25,8 @@ public class ArticleParam {
private Integer articleStatus;
+ private String articleThumbnail;
+
private List articleTagIds;
}
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/dto/Response.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/dto/Response.java
deleted file mode 100644
index afb761fa..00000000
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/dto/Response.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package com.liuyanzhao.ssm.blog.dto;
-
-/**
- * @author 言曌
- * @date 2018/9/2 下午8:34
- */
-
-public class Response {
-
- private Boolean success;
-
- private String message;
-
- private T data;
-
- public Response() {
- }
-
- public Response(Boolean success) {
- this.success = success;
- }
-
- public Response(Boolean success, String message) {
- this.success = success;
- this.message = message;
- }
-
- public Response(Boolean success, String message, T data) {
- this.success = success;
- this.message = message;
- this.data = data;
- }
-
- public static Response yes() {
- return new Response(true, "操作成功");
- }
-
- public static Response yes(T data) {
- return new Response(true, "操作成功", data);
- }
-
-
- public static Response no() {
- return new Response(false, "操作失败");
- }
-
- public static Response no(String message) {
- return new Response(false, message);
- }
-
- public Boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(Boolean success) {
- this.success = success;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public T getData() {
- return data;
- }
-
- public void setData(T data) {
- this.data = data;
- }
-}
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/entity/Article.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/entity/Article.java
index 4dd53fca..7b852a30 100644
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/entity/Article.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/entity/Article.java
@@ -40,6 +40,8 @@ public class Article implements Serializable{
private String articleSummary;
+ private String articleThumbnail;
+
private User user;
private List tagList;
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/interceptor/SecurityInterceptor.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/interceptor/SecurityInterceptor.java
deleted file mode 100755
index 5bf2a7bb..00000000
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/interceptor/SecurityInterceptor.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.liuyanzhao.ssm.blog.interceptor;
-
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-
-/**
- * @author liuyanzhao
- */
-@Component
-public class SecurityInterceptor extends HandlerInterceptorAdapter {
-
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws IOException {
- //这里可以根据session的用户来判断角色的权限,根据权限来转发不同的页面
- if(request.getSession().getAttribute("user") == null) {
- response.sendRedirect("/login");
- return false;
- }
-
- return true;
- }
-
- @Override
- public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) {
-
- }
-
- @Override
- public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
-
- }
-}
-
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/mapper/ArticleMapper.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/mapper/ArticleMapper.java
index 2beb1d42..c6930dae 100644
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/mapper/ArticleMapper.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/mapper/ArticleMapper.java
@@ -57,6 +57,7 @@ public interface ArticleMapper {
/**
* 文章归档
+ *
* @return
*/
List listAllNotWithContent();
@@ -94,7 +95,7 @@ public interface ArticleMapper {
* 根据id查询用户信息
*
* @param status 状态
- * @param id 文章ID
+ * @param id 文章ID
* @return 文章
*/
Article getArticleByStatusAndId(@Param(value = "status") Integer status, @Param(value = "id") Integer id);
@@ -109,8 +110,8 @@ public interface ArticleMapper {
*/
@Deprecated
List pageArticle(@Param(value = "status") Integer status,
- @Param(value = "pageIndex") Integer pageIndex,
- @Param(value = "pageSize") Integer pageSize);
+ @Param(value = "pageIndex") Integer pageIndex,
+ @Param(value = "pageSize") Integer pageSize);
/**
@@ -148,13 +149,12 @@ List pageArticle(@Param(value = "status") Integer status,
/**
* 热评文章
*
- * @param limit 查询数量
+ * @param limit 查询数量
* @return 文章列表
*/
List listArticleByCommentCount(@Param(value = "limit") Integer limit);
-
/**
* 更新文章的评论数
*
@@ -215,6 +215,7 @@ List findArticleByCategoryIds(@Param("categoryIds") List categ
/**
* 获得一个用户的文章id集合
+ *
* @param userId
* @return
*/
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/service/impl/ArticleServiceImpl.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/service/impl/ArticleServiceImpl.java
index c2750481..b1c5e94e 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/service/impl/ArticleServiceImpl.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/service/impl/ArticleServiceImpl.java
@@ -1,5 +1,6 @@
package com.liuyanzhao.ssm.blog.service.impl;
+import cn.hutool.core.util.RandomUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liuyanzhao.ssm.blog.enums.ArticleCommentStatus;
@@ -10,6 +11,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
@@ -229,6 +231,10 @@ public void insertArticle(Article article) {
article.setArticleLikeCount(0);
article.setArticleCommentCount(0);
article.setArticleOrder(1);
+ if (StringUtils.isEmpty(article.getArticleThumbnail())) {
+ article.setArticleThumbnail("/img/thumbnail/random/img_" + RandomUtil.randomNumbers(1) + ".jpg");
+ }
+
articleMapper.insert(article);
//添加分类和文章关联
for (int i = 0; i < article.getCategoryList().size(); i++) {
diff --git a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/util/MyUtils.java b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/util/MyUtils.java
index 122f1e21..49d7704e 100755
--- a/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/util/MyUtils.java
+++ b/ForestBlog/src/main/java/com/liuyanzhao/ssm/blog/util/MyUtils.java
@@ -88,4 +88,5 @@ public static String getGravatar(String email) {
return avatar;
}
+
}
\ No newline at end of file
diff --git a/ForestBlog/src/main/resources/log4j.properties b/ForestBlog/src/main/resources/log4j.properties
deleted file mode 100644
index c6b73837..00000000
--- a/ForestBlog/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-# Configure logging for testing: optionally with log file
- log4j.rootLogger=WARN, stdout, logfile
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
-
-log4j.appender.logfile=org.apache.log4j.FileAppender
-log4j.appender.logfile.File=target/ForestBlog.log
-log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
-log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
\ No newline at end of file
diff --git a/ForestBlog/src/main/resources/logback.xml b/ForestBlog/src/main/resources/logback.xml
new file mode 100644
index 00000000..a7df509b
--- /dev/null
+++ b/ForestBlog/src/main/resources/logback.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n
+
+
+
+
+
+ ${log.base}/${log.moduleName}.log
+
+
+
+ ${log.base}/archive/${log.moduleName}_all_%d{yyyy-MM-dd}.%i.log.zip
+
+
+
+ ${log.max.size}
+
+
+
+
+ %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n
+
+
+
+
\ No newline at end of file
diff --git a/ForestBlog/src/main/resources/mapper/ArticleMapper.xml b/ForestBlog/src/main/resources/mapper/ArticleMapper.xml
index f80c73cf..aa2dda6d 100644
--- a/ForestBlog/src/main/resources/mapper/ArticleMapper.xml
+++ b/ForestBlog/src/main/resources/mapper/ArticleMapper.xml
@@ -15,19 +15,20 @@
+
article
article_id, article_user_id, article_title, article_content,article_summary, article_view_count, article_comment_count, article_like_count, article_create_time,
- article_update_time, article_is_comment, article_status, article_order
+ article_update_time, article_is_comment, article_status, article_order, article_thumbnail