diff --git a/pom.xml b/pom.xml index 7095c5f..5890552 100644 --- a/pom.xml +++ b/pom.xml @@ -68,13 +68,14 @@ 2.9.2 - + org.projectlombok lombok compile - + + com.alibaba druid-spring-boot-starter diff --git a/src/main/java/com/yaoyuan/jiscuss/common/Node.java b/src/main/java/com/yaoyuan/jiscuss/common/Node.java deleted file mode 100644 index eea2641..0000000 --- a/src/main/java/com/yaoyuan/jiscuss/common/Node.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.yaoyuan.jiscuss.common; -import com.yaoyuan.jiscuss.entity.Posts; -import lombok.Data; -import org.springframework.beans.BeanUtils; - -import javax.persistence.Column; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -/** - * @author yaoyuan2.chu - * @Title: - * @Package com.yaoyuan.jiscuss.common - * @Description: - * @date 2020/8/17 14:51 - */ -@Data -public class Node { - - public Node() { - - } - - private Integer id; - - private Integer discussionId; - - private Integer number; - - private Date time; - - private Integer userId; - - private String type; - - private String content; - - private Integer parentId; - - private Date editTime; - - private Integer editUserId; - - private String ipAddress; - - private String copyright; - - private Integer isApproved; - - private Integer createId; - - private Date createTime; - //下一条回复 - private List nextNodes = new ArrayList(); - - - /** - * 将单个node添加到链表中 - * - * @param list - * @param node - * @return - */ - public static boolean addNode(List list, Node node) { - for (Node node1 : list) { //循环添加 - if (node1.getId() .equals(node.getParentId()) ) { //判断留言的上一段是都是这条留言 - node1.getNextNodes().add(node); //是,添加,返回true; - System.out.println("添加了一个"); - return true; - } else { //否则递归继续判断 - if (node1.getNextNodes().size() != 0) { - if (Node.addNode(node1.getNextNodes(), node)) { - return true; - } - } - } - } - return false; - } - - /** - * 将查出来的lastId不为null的回复都添加到第一层Node集合中 - * - * @param firstList - * @param thenList - * @return - */ - public static List addAllNode(List firstList, List thenList) { - while (thenList.size() != 0) { - int size = thenList.size(); - for (int i = 0; i < size; i++) { - Node node = new Node(); - BeanUtils.copyProperties(thenList.get(i), node); - if (Node.addNode(firstList, node)) { - thenList.remove(i); - i--; - size--; - } - } - } - return firstList; - } - - //打印 - public static void show(List list) { - for (Node node : list) { - System.out.println(node.getUserId() + " 用户回复了你:" + node.getContent()); - if (node.getNextNodes().size() != 0) { - Node.show(node.getNextNodes()); - } - } - } - - -} \ No newline at end of file diff --git a/src/main/java/com/yaoyuan/jiscuss/config/WebSecurityConfig.java b/src/main/java/com/yaoyuan/jiscuss/config/WebSecurityConfig.java index 9f4ec09..22b4c14 100644 --- a/src/main/java/com/yaoyuan/jiscuss/config/WebSecurityConfig.java +++ b/src/main/java/com/yaoyuan/jiscuss/config/WebSecurityConfig.java @@ -43,7 +43,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter{ "/js/**", "/images/**", "/static/**", - "/h2-console/**" + "/h2-console/**", + "/druid/**" ); } /** diff --git a/src/main/java/com/yaoyuan/jiscuss/controller/UserPostController.java b/src/main/java/com/yaoyuan/jiscuss/controller/UserPostController.java index 3cc12ad..4123c7c 100644 --- a/src/main/java/com/yaoyuan/jiscuss/controller/UserPostController.java +++ b/src/main/java/com/yaoyuan/jiscuss/controller/UserPostController.java @@ -1,16 +1,14 @@ package com.yaoyuan.jiscuss.controller; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import javax.servlet.http.HttpServletRequest; -import com.yaoyuan.jiscuss.common.Node; -import com.yaoyuan.jiscuss.entity.Posts; -import com.yaoyuan.jiscuss.entity.UserInfo; +import com.yaoyuan.jiscuss.entity.*; +import com.yaoyuan.jiscuss.entity.custom.DiscussionCustom; +import com.yaoyuan.jiscuss.entity.custom.PostCustom; import com.yaoyuan.jiscuss.service.IPostsService; +import com.yaoyuan.jiscuss.service.IUsersService; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,8 +24,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import com.yaoyuan.jiscuss.entity.Discussions; -import com.yaoyuan.jiscuss.entity.Tags; import com.yaoyuan.jiscuss.service.IDiscussionsService; import com.yaoyuan.jiscuss.service.ITagsService; @@ -48,7 +44,11 @@ public class UserPostController extends BaseController { @Autowired private IPostsService postsService; - + + @Autowired + private IUsersService usersService; + + //首页查看主题列表(各种条件筛选,最热最新标签等) @@ -58,34 +58,34 @@ public class UserPostController extends BaseController { public String getDiscussionsById(HttpServletRequest request, ModelMap map, @RequestParam("id") Integer id) { logger.info(">>> getDiscussionsById{}",id); - Discussions discussions = discussionsService.findOne(id); + Discussion discussion = discussionsService.findOne(id); + // 获取此主题下的评论 + List posts = postsService.findOneBy(id); - List posts = postsService.findOneBy(id); - - List tags = tagsService.findByDId(id); - - //查询id为1且parentId为null的评论 - List firstList = postsService.findAllByDIdAndparentIdNull(1); - //查询id为1且parentId不为null的评论 - List thenList = postsService.findAllByDIdAndparentIdNotNull(1); - //新建一个Node集合。 - ArrayList nodes = new ArrayList<>(); - //将第一层评论都添加都Node集合中 - for (Posts post : firstList) { - Node node = new Node(); - BeanUtils.copyProperties(post, node); - nodes.add(node); + DiscussionCustom newdd = new DiscussionCustom(); + BeanUtils.copyProperties(discussion , newdd); + if (null != newdd.getStartUserId()){ + User startUser = usersService.findOne(newdd.getStartUserId()); + newdd.setAvatar(startUser.getAvatar()); + newdd.setRealname(startUser.getRealname()); + newdd.setUsername(startUser.getUsername()); + } + if (null != newdd.getLastUserId()){ + User lastUser = usersService.findOne(newdd.getLastUserId()); + newdd.setAvatarLast(lastUser.getAvatar()); + newdd.setRealnameLast(lastUser.getRealname()); + newdd.setUsernameLast(lastUser.getUsername()); } - //将回复添加到对应的位置 - List list = Node.addAllNode(nodes, thenList); - System.out.println(); - //打印回复链表 - Node.show(list); + List tags = tagsService.findByDId(id); - map.put("discussions", discussions); - map.put("posts", posts); + List postsObj = postsService.findPostCustomById(id); + + map.put("tags", tags); + + map.put("discussions", newdd); + map.put("posts", postsObj); UserInfo user = getUserInfo(request); if(user != null){ map.put("username", user.getUsername()); @@ -93,26 +93,27 @@ public class UserPostController extends BaseController { return "discussions"; } - + + //新建主题 @PostMapping(value = "/newdiscussions") @ResponseBody - public String newDiscussions(@RequestBody Discussions discussions) { - logger.info(">>> newPost"+discussions); + public String newDiscussions(@RequestBody Discussion discussion) { + logger.info(">>> newPost"+ discussion); ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); HttpServletRequest request = servletRequestAttributes.getRequest(); UserInfo user = getUserInfo(request); if(user != null){ - discussions.setLastUserId( user.getId()); - discussions.setCreateId( user.getId()); + discussion.setLastUserId( user.getId()); + discussion.setCreateId( user.getId()); } - discussions.setCreateTime(new Date()); + discussion.setCreateTime(new Date()); - Discussions saveDiscussions = discussionsService.insert(discussions); + Discussion saveDiscussion = discussionsService.insert(discussion); JSONObject resultobj = new JSONObject(); - logger.info(">>>{}",saveDiscussions ); + logger.info(">>>{}", saveDiscussion); resultobj.put("msg", "添加成功"); resultobj.put("flag", true); return resultobj.toString(); // @@ -127,19 +128,24 @@ public class UserPostController extends BaseController { //新建评论 @PostMapping(value = "/newpost") @ResponseBody - public String newPosts(@RequestBody Posts posts) { - logger.info(">>> newpost"+posts); + public String newPosts(@RequestBody Post post) { + logger.info(">>> newpost"+ post); ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); HttpServletRequest request = servletRequestAttributes.getRequest(); UserInfo user = getUserInfo(request); if(user != null){ - posts.setCreateId( user.getId()); + post.setCreateId( user.getId()); } - posts.setCreateTime(new Date()); + post.setCreateTime(new Date()); + if(null != post.getParentId()){ + Post temp =postsService.findOneByid(post.getParentId()); + post.setUserId(temp.getCreateId()); - Posts savePost = postsService.insert(posts); + } + + Post savePost = postsService.insert(post); JSONObject resultobj = new JSONObject(); logger.info(">>>{}",savePost ); @@ -153,22 +159,22 @@ public class UserPostController extends BaseController { //新建标签 @PostMapping(value = "/newtags") @ResponseBody - public String newTags(@RequestBody Tags tags) { - logger.info(">>> newTags"+tags); + public String newTags(@RequestBody Tag tag) { + logger.info(">>> newTags"+ tag); ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); HttpServletRequest request = servletRequestAttributes.getRequest(); UserInfo user = getUserInfo(request); if(user != null){ - tags.setCreateId( user.getId()); + tag.setCreateId( user.getId()); } - tags.setCreateTime(new Date()); + tag.setCreateTime(new Date()); - Tags saveTags = tagsService.insert(tags); + Tag saveTag = tagsService.insert(tag); JSONObject resultobj = new JSONObject(); - logger.info(">>>{}",saveTags ); + logger.info(">>>{}", saveTag); resultobj.put("msg", "添加成功"); resultobj.put("flag", true); return resultobj.toString(); // diff --git a/src/main/java/com/yaoyuan/jiscuss/controller/UserSystemController.java b/src/main/java/com/yaoyuan/jiscuss/controller/UserSystemController.java index 18e5b63..bdd1305 100644 --- a/src/main/java/com/yaoyuan/jiscuss/controller/UserSystemController.java +++ b/src/main/java/com/yaoyuan/jiscuss/controller/UserSystemController.java @@ -1,14 +1,14 @@ package com.yaoyuan.jiscuss.controller; -import com.yaoyuan.jiscuss.entity.Discussions; -import com.yaoyuan.jiscuss.entity.Tags; +import com.yaoyuan.jiscuss.entity.Discussion; +import com.yaoyuan.jiscuss.entity.Tag; import com.yaoyuan.jiscuss.entity.UserInfo; -import com.yaoyuan.jiscuss.entity.Users; +import com.yaoyuan.jiscuss.entity.User; +import com.yaoyuan.jiscuss.entity.custom.DiscussionCustom; import com.yaoyuan.jiscuss.service.IDiscussionsService; import com.yaoyuan.jiscuss.service.ITagsService; import com.yaoyuan.jiscuss.service.IUsersService; import com.yaoyuan.jiscuss.util.DelTagsUtil; -import org.apache.catalina.mbeans.MBeanUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -48,23 +48,23 @@ public class UserSystemController extends BaseController { logger.info(">>> index"); logger.info(">>> tag:" + tag); logger.info(">>> pageNum:" + pageNum); - List userall = usersService.getAllList(); + List userall = usersService.getAllList(); logger.info(">>> 第一遍的全部用户:"+userall); - List useral2 = usersService.getAllList(); + List useral2 = usersService.getAllList(); logger.info(">>> 第二遍的全部用户:"+useral2); int pageSiz = 10; int pageNumNew = pageNum - 1; - Discussions discussions = new Discussions(); + Discussion discussion = new Discussion(); //分页获取主题帖子 - Page allDiscussionsPage = discussionsService.queryAllDiscussionsList(discussions,pageNumNew,pageSiz); + Page allDiscussionsPage = discussionsService.queryAllDiscussionsList(discussion,pageNumNew,pageSiz); - List allDiscussions = allDiscussionsPage.getContent(); - List newAllD = new ArrayList<>(); + List allDiscussions = allDiscussionsPage.getContent(); + List newAllD = new ArrayList<>(); - for (Discussions dd : allDiscussions){ - Discussions newdd = new Discussions(); + for (Discussion dd : allDiscussions){ + DiscussionCustom newdd = new DiscussionCustom(); BeanUtils.copyProperties(dd , newdd); String newCon = ""; String content = DelTagsUtil.getTextFromHtml(newdd.getContent()); @@ -74,6 +74,19 @@ public class UserSystemController extends BaseController { newCon = content; } newdd.setContent(newCon); + if (null != newdd.getStartUserId()){ + User startUser = usersService.findOne(newdd.getStartUserId()); + newdd.setAvatar(startUser.getAvatar()); + newdd.setRealname(startUser.getRealname()); + newdd.setUsername(startUser.getUsername()); + } + if (null != newdd.getLastUserId()){ + User lastUser = usersService.findOne(newdd.getLastUserId()); + newdd.setAvatarLast(lastUser.getAvatar()); + newdd.setRealnameLast(lastUser.getRealname()); + newdd.setUsernameLast(lastUser.getUsername()); + } + newAllD.add(newdd); } @@ -85,7 +98,7 @@ public class UserSystemController extends BaseController { List pageNumList = getPageNumList(allDiscussionsPage.getTotalPages()); //获取所有标签(以后尝试去缓存中取) - List allTags = tagsService.getAllList(); + List allTags = tagsService.getAllList(); logger.info("全部标签==>:{}",allTags); System.out.println(userall.toString()); diff --git a/src/main/java/com/yaoyuan/jiscuss/controller/api/RestPostController.java b/src/main/java/com/yaoyuan/jiscuss/controller/api/RestPostController.java index fbb424e..2d4795a 100644 --- a/src/main/java/com/yaoyuan/jiscuss/controller/api/RestPostController.java +++ b/src/main/java/com/yaoyuan/jiscuss/controller/api/RestPostController.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.yaoyuan.jiscuss.entity.Discussions; +import com.yaoyuan.jiscuss.entity.Discussion; import com.yaoyuan.jiscuss.exception.BaseException; import com.yaoyuan.jiscuss.response.ResponseCode; import com.yaoyuan.jiscuss.service.IDiscussionsService; @@ -31,10 +31,10 @@ public class RestPostController { @PostMapping("/discussion") @ApiOperation("新增主题") - public Discussions save(@RequestBody Discussions discussions) { - Discussions saveDiscussions = discussionsService.insert(discussions); - if (saveDiscussions!=null) { - return saveDiscussions; + public Discussion save(@RequestBody Discussion discussion) { + Discussion saveDiscussion = discussionsService.insert(discussion); + if (saveDiscussion !=null) { + return saveDiscussion; } else { throw new BaseException(ResponseCode.RESOURCES_NOT_EXIST); } @@ -43,15 +43,15 @@ public class RestPostController { @GetMapping("/discussion/{id}") @ApiOperation("获取主题") - public Discussions getDiscussions(@PathVariable Integer id) { - Discussions discussions = discussionsService.findOne(id); - return discussions; + public Discussion getDiscussions(@PathVariable Integer id) { + Discussion discussion = discussionsService.findOne(id); + return discussion; } @GetMapping("/discussions") @ApiOperation("获取全部主题") - public List getAllDiscussions() { - List allDiscussions = discussionsService.getAllList(); + public List getAllDiscussions() { + List allDiscussions = discussionsService.getAllList(); logger.info("全部主题==>:{}",allDiscussions); return allDiscussions; } diff --git a/src/main/java/com/yaoyuan/jiscuss/controller/api/RestUserController.java b/src/main/java/com/yaoyuan/jiscuss/controller/api/RestUserController.java index dd4cd8d..656170c 100644 --- a/src/main/java/com/yaoyuan/jiscuss/controller/api/RestUserController.java +++ b/src/main/java/com/yaoyuan/jiscuss/controller/api/RestUserController.java @@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.yaoyuan.jiscuss.entity.Users; +import com.yaoyuan.jiscuss.entity.User; import com.yaoyuan.jiscuss.exception.BaseException; import com.yaoyuan.jiscuss.response.ResponseCode; import com.yaoyuan.jiscuss.service.IUsersService; @@ -34,8 +34,8 @@ public class RestUserController { @PostMapping("/user") @ApiOperation("新增用户") - public Users save(@RequestBody Users user) { - Users saveUser = usersService.insert(user); + public User save(@RequestBody User user) { + User saveUser = usersService.insert(user); if (saveUser!=null) { return saveUser; } else { @@ -58,8 +58,8 @@ public class RestUserController { @PutMapping("/user/{id}") @ApiOperation("修改用户") - public Users update(@RequestBody Users user, @PathVariable Integer id) { - Users updateuser = usersService.update(user, id); + public User update(@RequestBody User user, @PathVariable Integer id) { + User updateuser = usersService.update(user, id); if (updateuser!=null) { return updateuser; } else { @@ -69,15 +69,15 @@ public class RestUserController { @GetMapping("/user/{id}") @ApiOperation("获取用户") - public Users getUser(@PathVariable Integer id) { - Users user = usersService.findOne(id); + public User getUser(@PathVariable Integer id) { + User user = usersService.findOne(id); return user; } @GetMapping("/user") @ApiOperation("获取全部用户") - public List getUser(Users user) { - List userall = usersService.getAllList(); + public List getUser(User user) { + List userall = usersService.getAllList(); logger.info("全部用户==>:{}",userall); return userall; } diff --git a/src/main/java/com/yaoyuan/jiscuss/entity/Discussions.java b/src/main/java/com/yaoyuan/jiscuss/entity/Discussion.java similarity index 95% rename from src/main/java/com/yaoyuan/jiscuss/entity/Discussions.java rename to src/main/java/com/yaoyuan/jiscuss/entity/Discussion.java index e41784a..4953f0d 100644 --- a/src/main/java/com/yaoyuan/jiscuss/entity/Discussions.java +++ b/src/main/java/com/yaoyuan/jiscuss/entity/Discussion.java @@ -13,8 +13,8 @@ import javax.persistence.Table; import lombok.Data; @Data @Entity -@Table(name="discussions") -public class Discussions implements Serializable { +@Table(name="discussion") +public class Discussion implements Serializable { private static final long serialVersionUID = 1L; @Id diff --git a/src/main/java/com/yaoyuan/jiscuss/entity/DiscussionsTags.java b/src/main/java/com/yaoyuan/jiscuss/entity/DiscussionTag.java similarity index 83% rename from src/main/java/com/yaoyuan/jiscuss/entity/DiscussionsTags.java rename to src/main/java/com/yaoyuan/jiscuss/entity/DiscussionTag.java index 1e45369..8ac974b 100644 --- a/src/main/java/com/yaoyuan/jiscuss/entity/DiscussionsTags.java +++ b/src/main/java/com/yaoyuan/jiscuss/entity/DiscussionTag.java @@ -10,8 +10,8 @@ import javax.persistence.Table; import lombok.Data; @Data @Entity -@Table(name="discussionstags") -public class DiscussionsTags implements Serializable{ +@Table(name="discussiontag") +public class DiscussionTag implements Serializable{ private static final long serialVersionUID = 1L; @Id diff --git a/src/main/java/com/yaoyuan/jiscuss/entity/Posts.java b/src/main/java/com/yaoyuan/jiscuss/entity/Post.java similarity index 95% rename from src/main/java/com/yaoyuan/jiscuss/entity/Posts.java rename to src/main/java/com/yaoyuan/jiscuss/entity/Post.java index c57b162..dddc159 100644 --- a/src/main/java/com/yaoyuan/jiscuss/entity/Posts.java +++ b/src/main/java/com/yaoyuan/jiscuss/entity/Post.java @@ -14,8 +14,8 @@ import lombok.Data; @Data @Entity -@Table(name="posts") -public class Posts implements Serializable{ +@Table(name="post") +public class Post implements Serializable{ private static final long serialVersionUID = 1L; @Id diff --git a/src/main/java/com/yaoyuan/jiscuss/entity/Settings.java b/src/main/java/com/yaoyuan/jiscuss/entity/Setting.java similarity index 84% rename from src/main/java/com/yaoyuan/jiscuss/entity/Settings.java rename to src/main/java/com/yaoyuan/jiscuss/entity/Setting.java index ec55536..1020e35 100644 --- a/src/main/java/com/yaoyuan/jiscuss/entity/Settings.java +++ b/src/main/java/com/yaoyuan/jiscuss/entity/Setting.java @@ -11,8 +11,8 @@ import lombok.Data; @Data @Entity -@Table(name="settings") -public class Settings implements Serializable{ +@Table(name="setting") +public class Setting implements Serializable{ /** * */ diff --git a/src/main/java/com/yaoyuan/jiscuss/entity/Tags.java b/src/main/java/com/yaoyuan/jiscuss/entity/Tag.java similarity index 94% rename from src/main/java/com/yaoyuan/jiscuss/entity/Tags.java rename to src/main/java/com/yaoyuan/jiscuss/entity/Tag.java index 8832fd9..609dada 100644 --- a/src/main/java/com/yaoyuan/jiscuss/entity/Tags.java +++ b/src/main/java/com/yaoyuan/jiscuss/entity/Tag.java @@ -14,8 +14,8 @@ import lombok.Data; @Data @Entity -@Table(name="tags") -public class Tags implements Serializable{ +@Table(name="tag") +public class Tag implements Serializable{ private static final long serialVersionUID = 1L; @Id diff --git a/src/main/java/com/yaoyuan/jiscuss/entity/Users.java b/src/main/java/com/yaoyuan/jiscuss/entity/User.java similarity index 92% rename from src/main/java/com/yaoyuan/jiscuss/entity/Users.java rename to src/main/java/com/yaoyuan/jiscuss/entity/User.java index ffbe587..531f853 100644 --- a/src/main/java/com/yaoyuan/jiscuss/entity/Users.java +++ b/src/main/java/com/yaoyuan/jiscuss/entity/User.java @@ -23,8 +23,8 @@ import org.springframework.security.core.userdetails.UserDetails; @Data @Entity -@Table(name="users") -public class Users implements Serializable { +@Table(name="user") +public class User implements Serializable { private static final long serialVersionUID = 1L; @Id @@ -51,6 +51,9 @@ public class Users implements Serializable { @Column(name="gender") private String gender; + + @Column(name="avatar") + private String avatar; @Column(name="phone") private String phone; diff --git a/src/main/java/com/yaoyuan/jiscuss/repository/DiscussionsRepository.java b/src/main/java/com/yaoyuan/jiscuss/repository/DiscussionsRepository.java index c805aa4..a3100e0 100644 --- a/src/main/java/com/yaoyuan/jiscuss/repository/DiscussionsRepository.java +++ b/src/main/java/com/yaoyuan/jiscuss/repository/DiscussionsRepository.java @@ -1,9 +1,11 @@ package com.yaoyuan.jiscuss.repository; -import com.yaoyuan.jiscuss.entity.Discussions; +import com.yaoyuan.jiscuss.entity.Discussion; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface DiscussionsRepository extends JpaRepository { +public interface DiscussionsRepository extends JpaRepository { + + } diff --git a/src/main/java/com/yaoyuan/jiscuss/repository/DiscussionsTagsRepository.java b/src/main/java/com/yaoyuan/jiscuss/repository/DiscussionsTagsRepository.java index 44ca023..fd08e7a 100644 --- a/src/main/java/com/yaoyuan/jiscuss/repository/DiscussionsTagsRepository.java +++ b/src/main/java/com/yaoyuan/jiscuss/repository/DiscussionsTagsRepository.java @@ -1,10 +1,10 @@ package com.yaoyuan.jiscuss.repository; -import com.yaoyuan.jiscuss.entity.DiscussionsTags; +import com.yaoyuan.jiscuss.entity.DiscussionTag; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface DiscussionsTagsRepository extends JpaRepository { +public interface DiscussionsTagsRepository extends JpaRepository { } diff --git a/src/main/java/com/yaoyuan/jiscuss/repository/PostsRepository.java b/src/main/java/com/yaoyuan/jiscuss/repository/PostsRepository.java index 91936ac..dad5ea3 100644 --- a/src/main/java/com/yaoyuan/jiscuss/repository/PostsRepository.java +++ b/src/main/java/com/yaoyuan/jiscuss/repository/PostsRepository.java @@ -1,28 +1,38 @@ package com.yaoyuan.jiscuss.repository; -import com.yaoyuan.jiscuss.entity.Posts; -import com.yaoyuan.jiscuss.entity.Users; +import com.yaoyuan.jiscuss.entity.Post; +import com.yaoyuan.jiscuss.entity.custom.PostCustom; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Map; @Repository -public interface PostsRepository extends JpaRepository { +public interface PostsRepository extends JpaRepository { /** * * @param dId * @return */ - @Query("from Posts where discussionId = :dId") - List findOneBy(@Param("dId")Integer dId); + @Query("from Post where discussionId = :dId") + List findOneBy(@Param("dId")Integer dId); - @Query("from Posts where parentId is null and discussionId = :dId") - List findAllByDIdAndparentIdNull(@Param("dId")Integer dId); + @Query(value = "select p.*,u.avatar as user_avatar ,u.username as user_username ,u.realname as user_realname ," + + "u2.avatar as create_avatar ,u2.username as create_username ,u2.realname as create_realname \n" + + "from Post p \n" + + "left join User u on p.user_id = u.id \n" + + "left join User u2 on p.create_id = u2.id \n" + + "where p.discussion_id = :dId order by p.create_time desc" + , nativeQuery = true) + List> findPostCustomById(@Param("dId")Integer dId); - @Query("from Posts where parentId is not null and discussionId = :dId") - List findAllByDIdAndparentIdNotNull(@Param("dId")Integer dId); + @Query("from Post where parentId is null and discussionId = :dId") + List findAllByDIdAndparentIdNull(@Param("dId")Integer dId); + + @Query("from Post where parentId is not null and discussionId = :dId") + List findAllByDIdAndparentIdNotNull(@Param("dId")Integer dId); } diff --git a/src/main/java/com/yaoyuan/jiscuss/repository/SettingsRepository.java b/src/main/java/com/yaoyuan/jiscuss/repository/SettingsRepository.java index ae51ddd..2bb7c47 100644 --- a/src/main/java/com/yaoyuan/jiscuss/repository/SettingsRepository.java +++ b/src/main/java/com/yaoyuan/jiscuss/repository/SettingsRepository.java @@ -1,9 +1,9 @@ package com.yaoyuan.jiscuss.repository; -import com.yaoyuan.jiscuss.entity.Settings; +import com.yaoyuan.jiscuss.entity.Setting; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface SettingsRepository extends JpaRepository { +public interface SettingsRepository extends JpaRepository { } diff --git a/src/main/java/com/yaoyuan/jiscuss/repository/TagsRepository.java b/src/main/java/com/yaoyuan/jiscuss/repository/TagsRepository.java index 433fef4..c4f3356 100644 --- a/src/main/java/com/yaoyuan/jiscuss/repository/TagsRepository.java +++ b/src/main/java/com/yaoyuan/jiscuss/repository/TagsRepository.java @@ -1,7 +1,6 @@ package com.yaoyuan.jiscuss.repository; -import com.yaoyuan.jiscuss.entity.Posts; -import com.yaoyuan.jiscuss.entity.Tags; +import com.yaoyuan.jiscuss.entity.Tag; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -10,8 +9,8 @@ import org.springframework.stereotype.Repository; import java.util.List; @Repository -public interface TagsRepository extends JpaRepository { +public interface TagsRepository extends JpaRepository { - @Query(value = "FROM Tags a, DiscussionsTags b WHERE a.id = b.tagId and b.discussionId = :dId") - List findByDId(@Param("dId")Integer dId); + @Query(value = "FROM Tag a, DiscussionTag b WHERE a.id = b.tagId and b.discussionId = :dId") + List findByDId(@Param("dId")Integer dId); } diff --git a/src/main/java/com/yaoyuan/jiscuss/repository/UsersRepository.java b/src/main/java/com/yaoyuan/jiscuss/repository/UsersRepository.java index 253445a..f13eccc 100644 --- a/src/main/java/com/yaoyuan/jiscuss/repository/UsersRepository.java +++ b/src/main/java/com/yaoyuan/jiscuss/repository/UsersRepository.java @@ -7,33 +7,33 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; -import com.yaoyuan.jiscuss.entity.Users; +import com.yaoyuan.jiscuss.entity.User; @Repository -public interface UsersRepository extends JpaRepository { +public interface UsersRepository extends JpaRepository { /** * * @param username * @return */ - @Query("from Users where username like %:username%") - List getByUsernameIsLike(@Param("username")String username); + @Query("from User where username like %:username%") + List getByUsernameIsLike(@Param("username")String username); /** * * @param id * @return */ - Users getById(Integer id); + User getById(Integer id); /** * * @param username * @return */ - @Query("from Users where username = :username") - Users getByUsername(String username); + @Query("from User where username = :username") + User getByUsername(String username); /** * @@ -41,7 +41,7 @@ public interface UsersRepository extends JpaRepository { * @param password * @return */ - @Query("from Users where username = :username and password = :password") - Users checkByUsernameAndPassword(String username, String password); + @Query("from User where username = :username and password = :password") + User checkByUsernameAndPassword(String username, String password); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/IDiscussionsService.java b/src/main/java/com/yaoyuan/jiscuss/service/IDiscussionsService.java index 9832ba6..4d3f88f 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/IDiscussionsService.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/IDiscussionsService.java @@ -4,16 +4,16 @@ import java.util.List; import org.springframework.data.domain.Page; -import com.yaoyuan.jiscuss.entity.Discussions; +import com.yaoyuan.jiscuss.entity.Discussion; public interface IDiscussionsService { - List getAllList(); + List getAllList(); - Discussions insert(Discussions discussions); + Discussion insert(Discussion discussion); - Discussions findOne(Integer id); + Discussion findOne(Integer id); - Page queryAllDiscussionsList(Discussions discussions,int pageNum,int pageSize); + Page queryAllDiscussionsList(Discussion discussion, int pageNum, int pageSize); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/IDiscussionsTagsService.java b/src/main/java/com/yaoyuan/jiscuss/service/IDiscussionsTagsService.java index 94ab8cd..8f4130d 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/IDiscussionsTagsService.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/IDiscussionsTagsService.java @@ -2,11 +2,11 @@ package com.yaoyuan.jiscuss.service; import java.util.List; -import com.yaoyuan.jiscuss.entity.DiscussionsTags; +import com.yaoyuan.jiscuss.entity.DiscussionTag; public interface IDiscussionsTagsService { - List getAllList(); + List getAllList(); - DiscussionsTags insert(DiscussionsTags discussionsTags); + DiscussionTag insert(DiscussionTag discussionTag); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/IPostsService.java b/src/main/java/com/yaoyuan/jiscuss/service/IPostsService.java index cb3c055..48595fa 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/IPostsService.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/IPostsService.java @@ -1,17 +1,23 @@ package com.yaoyuan.jiscuss.service; import java.util.List; +import java.util.Map; -import com.yaoyuan.jiscuss.entity.Posts; +import com.yaoyuan.jiscuss.entity.Post; +import com.yaoyuan.jiscuss.entity.custom.PostCustom; public interface IPostsService { - List getAllList(); + List getAllList(); - Posts insert(Posts posts); + Post insert(Post post); - List findOneBy(Integer id); + List findOneBy(Integer id); - List findAllByDIdAndparentIdNull(Integer dId); + List findAllByDIdAndparentIdNull(Integer dId); - List findAllByDIdAndparentIdNotNull(Integer dId); + List findAllByDIdAndparentIdNotNull(Integer dId); + + List findPostCustomById(Integer id); + + Post findOneByid(Integer parentId); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/ISettingsService.java b/src/main/java/com/yaoyuan/jiscuss/service/ISettingsService.java index 3a71396..342121c 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/ISettingsService.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/ISettingsService.java @@ -2,11 +2,11 @@ package com.yaoyuan.jiscuss.service; import java.util.List; -import com.yaoyuan.jiscuss.entity.Settings; +import com.yaoyuan.jiscuss.entity.Setting; public interface ISettingsService { - List getAllList(); + List getAllList(); - Settings insert(Settings settings); + Setting insert(Setting setting); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/ITagsService.java b/src/main/java/com/yaoyuan/jiscuss/service/ITagsService.java index 9a48794..ef19921 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/ITagsService.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/ITagsService.java @@ -2,13 +2,13 @@ package com.yaoyuan.jiscuss.service; import java.util.List; -import com.yaoyuan.jiscuss.entity.Tags; +import com.yaoyuan.jiscuss.entity.Tag; public interface ITagsService { - List getAllList(); + List getAllList(); - Tags insert(Tags tags); + Tag insert(Tag tag); - List findByDId(Integer id); + List findByDId(Integer id); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/IUsersService.java b/src/main/java/com/yaoyuan/jiscuss/service/IUsersService.java index 74e1177..ecc0631 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/IUsersService.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/IUsersService.java @@ -4,29 +4,29 @@ import java.util.List; import org.springframework.data.domain.Page; -import com.yaoyuan.jiscuss.entity.Users; +import com.yaoyuan.jiscuss.entity.User; public interface IUsersService { - List getAllList(); + List getAllList(); - Page queryAllUsersList(int pageNum,int pageSize); + Page queryAllUsersList(int pageNum, int pageSize); - List getByUsernameIsLike(String name); + List getByUsernameIsLike(String name); // @Cacheable("myCache") - Users findOne(Integer id); + User findOne(Integer id); - Users insert(Users user); + User insert(User user); void remove(Integer id); void deleteAll(); - Users getByUsername(String username); + User getByUsername(String username); - Users checkByUsernameAndPassword(String username, String password); + User checkByUsernameAndPassword(String username, String password); - Users update(Users user, Integer id); + User update(User user, Integer id); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/impl/DiscussionsServiceImpl.java b/src/main/java/com/yaoyuan/jiscuss/service/impl/DiscussionsServiceImpl.java index efce9ea..acde7fe 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/impl/DiscussionsServiceImpl.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/impl/DiscussionsServiceImpl.java @@ -8,7 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.*; import org.springframework.stereotype.Service; -import com.yaoyuan.jiscuss.entity.Discussions; +import com.yaoyuan.jiscuss.entity.Discussion; import com.yaoyuan.jiscuss.repository.DiscussionsRepository; import com.yaoyuan.jiscuss.service.IDiscussionsService; @@ -19,30 +19,30 @@ public class DiscussionsServiceImpl implements IDiscussionsService { private DiscussionsRepository discussionsRepository; @Override - public List getAllList() { + public List getAllList() { return discussionsRepository.findAll(); } @Override - public Discussions insert(Discussions discussions) { + public Discussion insert(Discussion discussion) { - return discussionsRepository.save(discussions); + return discussionsRepository.save(discussion); } @Override - public Discussions findOne(Integer id) { - Discussions discussions = new Discussions(); - discussions.setId(id); + public Discussion findOne(Integer id) { + Discussion discussion = new Discussion(); + discussion.setId(id); return discussionsRepository.getOne(id); } @Override - public Page queryAllDiscussionsList(Discussions discussions,int pageNum, int pageSize) { + public Page queryAllDiscussionsList(Discussion discussion, int pageNum, int pageSize) { Sort sort=new Sort(Sort.Direction.DESC,"id"); @SuppressWarnings("deprecation") Pageable pageable=new PageRequest(pageNum,pageSize,sort); //将匹配对象封装成Example对象 - Example example = Example.of(discussions); + Example example = Example.of(discussion); return discussionsRepository.findAll(example,pageable); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/impl/DiscussionsTagsServiceImpl.java b/src/main/java/com/yaoyuan/jiscuss/service/impl/DiscussionsTagsServiceImpl.java index f47d339..04e887a 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/impl/DiscussionsTagsServiceImpl.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/impl/DiscussionsTagsServiceImpl.java @@ -7,7 +7,7 @@ import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.yaoyuan.jiscuss.entity.DiscussionsTags; +import com.yaoyuan.jiscuss.entity.DiscussionTag; import com.yaoyuan.jiscuss.repository.DiscussionsTagsRepository; import com.yaoyuan.jiscuss.service.IDiscussionsTagsService; @@ -18,13 +18,13 @@ public class DiscussionsTagsServiceImpl implements IDiscussionsTagsService { private DiscussionsTagsRepository discussionsTagsRepository; @Override - public List getAllList() { + public List getAllList() { return discussionsTagsRepository.findAll(); } @Override - public DiscussionsTags insert(DiscussionsTags discussionsTags) { - return discussionsTagsRepository.save(discussionsTags); + public DiscussionTag insert(DiscussionTag discussionTag) { + return discussionsTagsRepository.save(discussionTag); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/impl/PostsServiceImpl.java b/src/main/java/com/yaoyuan/jiscuss/service/impl/PostsServiceImpl.java index d805250..00254d0 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/impl/PostsServiceImpl.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/impl/PostsServiceImpl.java @@ -1,13 +1,21 @@ package com.yaoyuan.jiscuss.service.impl; -import java.util.List; -import java.util.Optional; +import java.io.BufferedReader; +import java.io.Reader; +import java.sql.Clob; +import java.util.*; +import com.yaoyuan.jiscuss.common.PostCommonUtil; +import com.yaoyuan.jiscuss.entity.Discussion; +import com.yaoyuan.jiscuss.entity.custom.DiscussionCustom; +import com.yaoyuan.jiscuss.entity.custom.PostCustom; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import com.yaoyuan.jiscuss.entity.Posts; +import com.yaoyuan.jiscuss.entity.Post; import com.yaoyuan.jiscuss.repository.PostsRepository; import com.yaoyuan.jiscuss.service.IPostsService; +import org.springframework.data.domain.Example; import org.springframework.stereotype.Service; import javax.transaction.Transactional; @@ -20,32 +28,86 @@ public class PostsServiceImpl implements IPostsService { private PostsRepository postsRepository; @Override - public List getAllList() { + public List getAllList() { return postsRepository.findAll(); } @Override - public List findOneBy(Integer id) { + public List findOneBy(Integer id) { - List posts = postsRepository.findOneBy(id); + List posts = postsRepository.findOneBy(id); return posts; } @Override - public List findAllByDIdAndparentIdNull(Integer dId) { - List posts = postsRepository.findAllByDIdAndparentIdNull(dId); + public Post findOneByid(Integer id) { + Post post =new Post(); + post.setId(id); + Example example = Example.of(post); + Optional postRes = postsRepository.findOne(example); + return postRes.get(); + } + + @Override + public List findPostCustomById(Integer id) { + + List> posts = postsRepository.findPostCustomById(id); +// List> postsObjNew = this.getNewPostsObj(posts); + + List postCustomList = new ArrayList<>(); + for(Map mapObj : posts){ + PostCustom postCustom = new PostCustom(); + postCustom.setId(Integer.parseInt(String.valueOf(mapObj.get("id")))); + postCustom.setParentId(mapObj.get("parent_id") != null ? Integer.parseInt(String.valueOf(mapObj.get("parent_id"))) : null); + if(null != mapObj.get("create_time")){ + postCustom.setCreateTime((Date) mapObj.get("create_time")); + } + String content = ""; + if(mapObj.get("content") != null){ + Clob clob = (Clob) mapObj.get("content"); + content = PostCommonUtil.clobToString(clob); + } + postCustom.setContent(content); + String avatar = ""; + if(mapObj.get("create_avatar") != null){ + Clob clob = (Clob) mapObj.get("create_avatar"); + avatar = PostCommonUtil.clobToString(clob); + } + postCustom.setAvatar(avatar); + postCustom.setUsername(mapObj.get("create_username") != null ? String.valueOf(mapObj.get("create_username")): null); + postCustom.setRealname(mapObj.get("create_realname") != null ? String.valueOf(mapObj.get("create_realname")): null); + String avatarReply = ""; + if(mapObj.get("user_avatar") != null){ + Clob clob = (Clob) mapObj.get("user_avatar"); + avatarReply = PostCommonUtil.clobToString(clob); + } + postCustom.setAvatarReply(avatarReply); + postCustom.setUsernameReply(mapObj.get("user_username") != null ? String.valueOf(mapObj.get("user_username")): null); + postCustom.setRealnameReply(mapObj.get("user_realname") != null ? String.valueOf(mapObj.get("user_realname")): null); + + postCustomList.add(postCustom); + } + + List postCustomListNew = PostCommonUtil.getNewPostsObjCustom(postCustomList); + + return postCustomListNew; + } + + @Override + public List findAllByDIdAndparentIdNull(Integer dId) { + List posts = postsRepository.findAllByDIdAndparentIdNull(dId); return posts; } @Override - public List findAllByDIdAndparentIdNotNull(Integer dId) { - List posts = postsRepository.findAllByDIdAndparentIdNotNull(dId); + public List findAllByDIdAndparentIdNotNull(Integer dId) { + List posts = postsRepository.findAllByDIdAndparentIdNotNull(dId); return posts; } @Override - public Posts insert(Posts posts) { - return postsRepository.save(posts); + public Post insert(Post post) { + return postsRepository.save(post); } } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/impl/SettingsServiceImpl.java b/src/main/java/com/yaoyuan/jiscuss/service/impl/SettingsServiceImpl.java index e49be28..677a96c 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/impl/SettingsServiceImpl.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/impl/SettingsServiceImpl.java @@ -7,7 +7,7 @@ import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.yaoyuan.jiscuss.entity.Settings; +import com.yaoyuan.jiscuss.entity.Setting; import com.yaoyuan.jiscuss.repository.SettingsRepository; import com.yaoyuan.jiscuss.service.ISettingsService; @@ -18,12 +18,12 @@ public class SettingsServiceImpl implements ISettingsService { private SettingsRepository settingsRepository; @Override - public List getAllList() { + public List getAllList() { return settingsRepository.findAll(); } @Override - public Settings insert(Settings settings) { - return settingsRepository.save(settings); + public Setting insert(Setting setting) { + return settingsRepository.save(setting); } } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/impl/TagsServiceImpl.java b/src/main/java/com/yaoyuan/jiscuss/service/impl/TagsServiceImpl.java index 3bf8a89..906255e 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/impl/TagsServiceImpl.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/impl/TagsServiceImpl.java @@ -5,10 +5,9 @@ import java.util.List; import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Example; import org.springframework.stereotype.Service; -import com.yaoyuan.jiscuss.entity.Tags; +import com.yaoyuan.jiscuss.entity.Tag; import com.yaoyuan.jiscuss.repository.TagsRepository; import com.yaoyuan.jiscuss.service.ITagsService; @@ -19,17 +18,17 @@ public class TagsServiceImpl implements ITagsService { private TagsRepository tagsRepository; @Override - public List getAllList() { + public List getAllList() { return tagsRepository.findAll(); } @Override - public Tags insert(Tags tags) { - return tagsRepository.save(tags); + public Tag insert(Tag tag) { + return tagsRepository.save(tag); } @Override - public List findByDId(Integer id) { + public List findByDId(Integer id) { return tagsRepository.findByDId(id); } } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/impl/UserDetailServiceImpl.java b/src/main/java/com/yaoyuan/jiscuss/service/impl/UserDetailServiceImpl.java index f92f1a7..00c8939 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/impl/UserDetailServiceImpl.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/impl/UserDetailServiceImpl.java @@ -1,13 +1,11 @@ package com.yaoyuan.jiscuss.service.impl; import com.yaoyuan.jiscuss.entity.UserInfo; -import com.yaoyuan.jiscuss.entity.Users; +import com.yaoyuan.jiscuss.entity.User; import com.yaoyuan.jiscuss.service.IUsersService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.PasswordEncoder; @@ -37,7 +35,7 @@ public class UserDetailServiceImpl implements UserDetailsService { @Override public UserInfo loadUserByUsername(String username) throws UsernameNotFoundException { // 通过用户名从数据库获取用户信息 - Users userInfo = userInfoService.getByUsername(username); + User userInfo = userInfoService.getByUsername(username); if (userInfo == null) { throw new UsernameNotFoundException("用户不存在"); } diff --git a/src/main/java/com/yaoyuan/jiscuss/service/impl/UsersServiceImpl.java b/src/main/java/com/yaoyuan/jiscuss/service/impl/UsersServiceImpl.java index e3b806c..5c40913 100644 --- a/src/main/java/com/yaoyuan/jiscuss/service/impl/UsersServiceImpl.java +++ b/src/main/java/com/yaoyuan/jiscuss/service/impl/UsersServiceImpl.java @@ -17,7 +17,7 @@ import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.cache.annotation.Cacheable; -import com.yaoyuan.jiscuss.entity.Users; +import com.yaoyuan.jiscuss.entity.User; import com.yaoyuan.jiscuss.repository.UsersRepository; import com.yaoyuan.jiscuss.service.IUsersService; @@ -33,7 +33,7 @@ public class UsersServiceImpl implements IUsersService { */ @Cacheable(value = "user") @Override - public List getAllList() { + public List getAllList() { return usersRepository.findAll(); } @@ -44,7 +44,7 @@ public class UsersServiceImpl implements IUsersService { * @return */ @Override - public Page queryAllUsersList(int pageNum,int pageSize) { + public Page queryAllUsersList(int pageNum, int pageSize) { Sort sort=new Sort(Sort.Direction.DESC,"id"); @SuppressWarnings("deprecation") Pageable pageable=new PageRequest(pageNum,pageSize,sort); @@ -57,7 +57,7 @@ public class UsersServiceImpl implements IUsersService { * @return */ @Override - public List getByUsernameIsLike(String name) { + public List getByUsernameIsLike(String name) { return usersRepository.getByUsernameIsLike(name); } @@ -68,7 +68,7 @@ public class UsersServiceImpl implements IUsersService { */ @Cacheable(value = "user", key = "#id") @Override - public Users findOne(Integer id) { + public User findOne(Integer id) { return usersRepository.getById(id); } @@ -79,7 +79,7 @@ public class UsersServiceImpl implements IUsersService { */ @CachePut(value = "user", key = "#user.id") @Override - public Users insert(Users user) { + public User insert(User user) { return usersRepository.save(user); } @@ -91,7 +91,7 @@ public class UsersServiceImpl implements IUsersService { */ @CachePut(value = "user", key = "#user.id") @Override - public Users update(Users user, Integer id) { + public User update(User user, Integer id) { return usersRepository.saveAndFlush(user); } @@ -119,7 +119,7 @@ public class UsersServiceImpl implements IUsersService { * @return */ @Override - public Users getByUsername(String username) { + public User getByUsername(String username) { return usersRepository.getByUsername(username); } @@ -130,7 +130,7 @@ public class UsersServiceImpl implements IUsersService { * @return */ @Override - public Users checkByUsernameAndPassword(String username,String password) { + public User checkByUsernameAndPassword(String username, String password) { return usersRepository.checkByUsernameAndPassword(username,password); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index d22c678..b43c685 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -28,7 +28,32 @@ spring: initial-size: 5 max-active: 10 max-wait: 5000 - validation-query: select 1 + validation-query: select 1SS + # 状态监控 + filter: + stat: + enabled: true + db-type: h2 + log-slow-sql: true + slow-sql-millis: 2000 + # 监控过滤器 + web-stat-filter: + enabled: true + exclusions: + - "*.js" + - "*.gif" + - "*.jpg" + - "*.png" + - "*.css" + - "*.ico" + - "/druid/*" + # druid 监控页面 + stat-view-servlet: + enabled: true + url-pattern: /druid/* +# reset-enable: false +# login-username: root +# login-password: root freemarker: # 设置模板后缀名 suffix: .ftl diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index b8739b2..6aa49b7 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -1,67 +1,71 @@ -insert into users -values (1, 'admin', '管理员', 'as_2583698@sina.com','123','2019-09-09 00:00:00',31,'男','13804250293',0,0,'2019-09-09 00:00:00',1,1); +insert into user +values (1, 'admin', '管理员', 'as_2583698@sina.com','123','2019-09-09 00:00:00',31,'','男','13804250293',0,0,'2019-09-09 00:00:00',1,1); -insert into users -values (2, 'test', '测试用户1', 'as_2583698@sina.com','123','2019-09-09 00:00:00',31,'男','13804250293',0,0,'2019-09-09 00:00:00',1,0); +insert into user +values (2, 'test', '测试用户1', 'as_2583698@sina.com','123','2019-09-09 00:00:00',31,'','男','13804250293',0,0,'2019-09-09 00:00:00',1,0); -insert into discussions -values (1, '测试主题1', '测试内容1',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); +insert into discussion +values (1, '测试主题1', '测试内容1',null,null,null,'2020-09-19 00:00:00',1,null,'2020-09-29 00:00:00',2,null,null,null,null,null,1,'2020-09-09 00:00:00'); -insert into discussions +insert into discussion values (2, '测试主题2', '测试内容2',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (3, '测试主题3', '测试内容3',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (4, '测试主题4', '测试内容4',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (5, '测试主题5', '测试内容2测试内容2测试内容2测试内容2测试内容2测试内容2',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (6, '测试主题6', '测试内容3测试测试测试测试测试测试测试测试测试测试测试测试测试',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (7, '测试主题7', '测试内容7',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (8, '测试主题8', '测试内容8',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (9, '测试主题9', '测试内容9',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (10, '测试主题10', '测试内容113',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into discussions +insert into discussion values (11, '测试主题11', '测试内容3测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试',null,null,null,null,null,null,null,1,null,null,null,null,null,null,null); -insert into tags +insert into tag values (1, '测试标签1',null,null,null,null,null,null,null,null,null); -insert into posts -values (1, 1, 1,null,1,null,'评论内容222',null,null,null,null,null,null,null,null); +insert into post +values (1, 1, 1,'2020-02-09 00:00:00',1,null,'评论内容222',null,null,null,null,null,null,1,'2020-08-09 00:00:00'); -insert into posts -values (2, 1, 2,null,1,null,'评论内容333',null,null,1,null,null,null,null,null); +insert into post +values (2, 1, 2,'2020-01-09 00:00:00',2,null,'评论内容333',null,null,1,null,null,null,2,'2020-07-09 00:00:00'); -insert into posts -values (3, 1, 3,null,1,1,'评论内容444',null,null,1,null,null,null,null,null); +insert into post +values (7, 1, 7,'2020-01-09 00:00:00',1,null,'评论内容3331111',null,null,1,null,null,null,1,'2020-03-09 00:00:00'); -insert into posts -values (4, 1, 4,null,1,1,'评论内容555',null,null,null,null,null,null,null,null); -insert into posts -values (5, 1, 5,null,1,null,'评论内容666',null,null,4,null,null,null,null,null); +insert into post +values (3, 1, 3,'2020-01-09 00:00:00',1,1,'评论内容444',null,null,1,null,null,null,1,'2020-02-09 00:00:00'); -insert into posts -values (6, 1, 6,null,1,null,'评论内容777',null,null,5,null,null,null,null,null); +insert into post +values (4, 1, 4,'2020-01-09 00:00:00',2,1,'评论内容555',null,null,null,null,null,null,2,'2020-03-09 00:00:00'); + +insert into post +values (5, 1, 5,'2020-01-09 00:00:00',2,null,'评论内容666',null,null,1,null,null,null,2,'2020-09-09 00:00:00'); + +insert into post +values (6, 1, 6,'2020-01-09 00:00:00',1,null,'评论内容777',null,null,5,null,null,null,1,'2020-09-09 00:00:00'); diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index f129efa..94a79c9 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -1,6 +1,6 @@ -- 用户表1 -drop table if exists users; -CREATE TABLE users( +drop table if exists user; +CREATE TABLE user( id INTEGER not null primary key auto_increment, username varchar(20), realname varchar(20), @@ -8,6 +8,7 @@ email varchar(20), password varchar(20), join_time datetime, age INTEGER, +avatar text, gender char(20), phone char(20), discussions_count INTEGER, @@ -17,8 +18,8 @@ flag INTEGER, level INTEGER ); -- 主题表2 -drop table if exists discussions; -CREATE TABLE discussions( +drop table if exists discussion; +CREATE TABLE discussion( id INTEGER not null primary key auto_increment, title varchar(200), content text, @@ -39,14 +40,14 @@ create_id INTEGER, create_time datetime ); -- 主题标签关联表3 -drop table if exists discussionstags; -CREATE TABLE discussionstags( +drop table if exists discussiontag; +CREATE TABLE discussiontag( discussion_id INTEGER not null , tag_id INTEGER ); -- 评论表4 -drop table if exists posts; -CREATE TABLE posts( +drop table if exists post; +CREATE TABLE post( id INTEGER not null primary key auto_increment , discussion_id INTEGER, number INTEGER, @@ -64,14 +65,14 @@ create_id INTEGER, create_time datetime ); -- 设置表5 -drop table if exists settings; -CREATE TABLE settings( +drop table if exists setting; +CREATE TABLE setting( key varchar(20) primary key, value text ); -- 标签表6 -drop table if exists tags; -CREATE TABLE tags( +drop table if exists tag; +CREATE TABLE tag( id INTEGER not null primary key auto_increment, name varchar(200), description varchar(200), diff --git a/src/main/resources/static/js/user/discussions.js b/src/main/resources/static/js/user/discussions.js index ce69c73..3d515f1 100644 --- a/src/main/resources/static/js/user/discussions.js +++ b/src/main/resources/static/js/user/discussions.js @@ -9,20 +9,22 @@ $("#addPost").click(function () { console.log("点击 addPost"); console.log(username); console.log(discussionsId); - + let postId = $("#postId").val(); + console.log(postId); if(username && username!=null){ var token = $("meta[name='_csrf']").attr("content"); var header = $("meta[name='_csrf_header']").attr("content"); console.warn(header) console.warn(token) - var content = $("#postcontent").val(); + var content = $("#postContent").val(); console.log(content); $.ajax({ type: "POST", url: "/newpost", data: JSON.stringify({ content: content, - discussion_id: discussionsId + discussionId: discussionsId, + parentId: postId }), contentType: 'application/json', beforeSend: function(request) { @@ -32,7 +34,7 @@ $("#addPost").click(function () { success: function (data) { console.log(data); if(data.flag){ - massage(title+',添加成功!',''); + massage(content+',添加成功!',''); location.reload(); }else{ massage(data.msg,''); @@ -46,4 +48,16 @@ $("#addPost").click(function () { } }); +// 回复 +function replyThis(username, postId) { + console.warn(username) + console.warn(postId) + $("#postId").val(postId); + var content = $("#postContent").val(); + if (content) content += '\n'; + $("#postContent").val(content + "@" + username + " "); + $("#postContent").focus(); +} + + diff --git a/src/main/resources/templates/comm/header.ftl b/src/main/resources/templates/comm/header.ftl index 0c0d9b0..448f6ca 100644 --- a/src/main/resources/templates/comm/header.ftl +++ b/src/main/resources/templates/comm/header.ftl @@ -1,6 +1,6 @@