dao文件
package com. zr. dao;
import com. zr. po. Blog;
import org. springframework. data. domain. Page;
import org. springframework. data. domain. Pageable;
import org. springframework. data. jpa. repository. JpaRepository;
import org. springframework. data. jpa. repository. JpaSpecificationExecutor;
import org. springframework. data. jpa. repository. Query;
import java. util. List;
public interface BlogDao extends JpaRepository < Blog, Long> , JpaSpecificationExecutor< Blog> {
@Query ( "select b from Blog b where b.recommend= true" )
List< Blog> findTop ( Pageable pageable) ;
@Query ( "select b from Blog b where b.title like ?1 or b.content like ?1" )
Page< Blog> findByQuery ( String s, Pageable pageable) ;
@Query ( "select function('date_format',b.updateTime,'%Y') as year from Blog b group by year order by year desc" )
List< String> findGroupYear ( ) ;
@Query ( "select b from Blog b where function('date_format',b.updateTime,'%Y') = ?1" )
List< Blog> findByYear ( String y) ;
}
package com. zr. dao;
import com. zr. po. Comment;
import org. springframework. data. domain. Sort;
import org. springframework. data. jpa. repository. JpaRepository;
import java. util. List;
public interface CommentDao extends JpaRepository < Comment, Long> {
List< Comment> findByBlogIdAndParentCommentNull ( Long blogId, Sort sort) ;
}
package com. zr. dao;
import com. zr. po. Tag;
import com. zr. po. Type;
import org. springframework. data. domain. Pageable;
import org. springframework. data. jpa. repository. JpaRepository;
import org. springframework. data. jpa. repository. Query;
import java. util. List;
public interface TagDao extends JpaRepository < Tag, Long> {
@Query ( "select t from Tag t" )
List< Tag> findTop ( Pageable pageable) ;
}
package com. zr. dao;
import com. zr. po. Tag;
import org. springframework. data. domain. Pageable;
import org. springframework. data. jpa. repository. JpaRepository;
import org. springframework. data. jpa. repository. Query;
import java. util. List;
public interface TagDao extends JpaRepository < Tag, Long> {
@Query ( "select t from Tag t" )
List< Tag> findTop ( Pageable pageable) ;
}
package com. zr. dao;
import com. zr. po. Type;
import com. zr. po. User;
import org. springframework. data. domain. Pageable;
import org. springframework. data. jpa. repository. JpaRepository;
import org. springframework. data. jpa. repository. Query;
import java. util. List;
public interface TypeDao extends JpaRepository < Type, Long> {
@Query ( "select t from Type t" )
List< Type> findTop ( Pageable pageable) ;
}
package com. zr. dao;
import com. zr. po. User;
import org. springframework. data. jpa. repository. JpaRepository;
public interface UserDao extends JpaRepository < User, Long> {
User findByUsernameAndPassword ( String username, String password) ;
}
interceptor文件
package com. zr. interceptor;
import org. springframework. web. servlet. handler. HandlerInterceptorAdapter;
import javax. servlet. http. HttpServletRequest;
import javax. servlet. http. HttpServletResponse;
public class LonginInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle ( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if ( request. getSession ( ) . getAttribute ( "user" ) == null) {
response. sendRedirect ( "/admin" ) ;
return false ;
}
return true ;
}
}
package com. zr. interceptor;
import org. springframework. context. annotation. Configuration;
import org. springframework. web. servlet. config. annotation. InterceptorRegistry;
import org. springframework. web. servlet. config. annotation. WebMvcConfigurerAdapter;
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors ( InterceptorRegistry registry) {
registry. addInterceptor ( new LonginInterceptor ( ) ) . addPathPatterns ( "/admin/**" )
. excludePathPatterns ( "/admin/login" ) . excludePathPatterns ( "/admin" ) ;
}
}
po文件
package com. zr. po;
import javax. persistence. *;
import java. util. ArrayList;
import java. util. Date;
import java. util. List;
@Entity
@Table ( name = "t_blog" )
public class Blog {
@Id
@GeneratedValue
private Long id;
private String title;
@Basic ( fetch = FetchType. LAZY)
@Lob
private String content;
private String firstPicture;
private String flag;
private Integer views;
private boolean appreciation;
private boolean shareStatement;
private boolean commentabled;
private boolean published;
private boolean recommend;
@Temporal ( TemporalType. TIMESTAMP)
private Date createTime;
@Temporal ( TemporalType. TIMESTAMP)
private Date updateTime;
@ManyToOne
private Type type;
@ManyToMany ( cascade = { CascadeType. PERSIST} )
private List< Tag> tags = new ArrayList < > ( ) ;
@ManyToOne
private User user;
@OneToMany ( mappedBy = "blog" )
private List< Comment> comments = new ArrayList < > ( ) ;
@Transient
private String tagIds;
private String description;
public Blog ( ) {
}
public Long getId ( ) {
return id;
}
public void setId ( Long id) {
this . id = id;
}
public String getTitle ( ) {
return title;
}
public void setTitle ( String title) {
this . title = title;
}
public String getContent ( ) {
return content;
}
public void setContent ( String content) {
this . content = content;
}
public String getFirstPicture ( ) {
return firstPicture;
}
public void setFirstPicture ( String firstPicture) {
this . firstPicture = firstPicture;
}
public String getFlag ( ) {
return flag;
}
public void setFlag ( String flag) {
this . flag = flag;
}
public Integer getViews ( ) {
return views;
}
public void setViews ( Integer views) {
this . views = views;
}
public boolean isAppreciation ( ) {
return appreciation;
}
public void setAppreciation ( boolean appreciation) {
this . appreciation = appreciation;
}
public boolean isShareStatement ( ) {
return shareStatement;
}
public void setShareStatement ( boolean shareStatement) {
this . shareStatement = shareStatement;
}
public boolean isCommentabled ( ) {
return commentabled;
}
public void setCommentabled ( boolean commentabled) {
this . commentabled = commentabled;
}
public boolean isPublished ( ) {
return published;
}
public void setPublished ( boolean published) {
this . published = published;
}
public boolean isRecommend ( ) {
return recommend;
}
public void setRecommend ( boolean recommend) {
this . recommend = recommend;
}
public Date getCreateTime ( ) {
return createTime;
}
public void setCreateTime ( Date createTime) {
this . createTime = createTime;
}
public Date getUpdateTime ( ) {
return updateTime;
}
public void setUpdateTime ( Date updateTime) {
this . updateTime = updateTime;
}
public Type getType ( ) {
return type;
}
public void setType ( Type type) {
this . type = type;
}
public List< Tag> getTags ( ) {
return tags;
}
public void setTags ( List< Tag> tags) {
this . tags = tags;
}
public User getUser ( ) {
return user;
}
public void setUser ( User user) {
this . user = user;
}
public List< Comment> getComments ( ) {
return comments;
}
public void setComments ( List< Comment> comments) {
this . comments = comments;
}
public String getTagIds ( ) {
return tagIds;
}
public void setTagIds ( String tagIds) {
this . tagIds = tagIds;
}
public String getDescription ( ) {
return description;
}
public void setDescription ( String description) {
this . description = description;
}
public void init ( ) {
this . tagIds = tagsToIds ( this . getTags ( ) ) ;
}
private String tagsToIds ( List< Tag> tags) {
if ( ! tags. isEmpty ( ) ) {
StringBuffer ids = new StringBuffer ( ) ;
boolean flag = false ;
for ( Tag tag : tags) {
if ( flag) {
ids. append ( "," ) ;
} else {
flag = true ;
}
ids. append ( tag. getId ( ) ) ;
}
return ids. toString ( ) ;
} else {
return tagIds;
}
}
@Override
public String toString ( ) {
return "Blog{" +
"id=" + id +
", title='" + title + '\'' +
", content='" + content + '\'' +
", firstPicture='" + firstPicture + '\'' +
", flag='" + flag + '\'' +
", views=" + views +
", appreciation=" + appreciation +
", shareStatement=" + shareStatement +
", commentabled=" + commentabled +
", published=" + published +
", recommend=" + recommend +
", createTime=" + createTime +
", updateTime=" + updateTime +
", type=" + type +
", tags=" + tags +
", user=" + user +
", comments=" + comments +
", tagIds='" + tagIds + '\'' +
", description='" + description + '\'' +
'}' ;
}
public void initTags ( Long id) {
List< Tag> tags = this . getTags ( ) ;
StringBuffer ids= new StringBuffer ( ) ;
if ( ! tags. isEmpty ( ) ) {
Boolean flag= false ;
for ( Tag t: tags) {
if ( flag) {
ids. append ( t. getId ( ) ) ;
flag= true ;
} else {
ids. append ( "," ) ;
ids. append ( t. getId ( ) ) ;
}
}
this . setTagIds ( ids. toString ( ) ) ;
}
}
}
package com. zr. po;
public class BlogQuery {
private String title;
private Long typeId;
private Boolean recommend;
public String getTitle ( ) {
return title;
}
public void setTitle ( String title) {
this . title = title;
}
public Long getTypeId ( ) {
return typeId;
}
public void setTypeId ( Long typeId) {
this . typeId = typeId;
}
public Boolean getRecommend ( ) {
return recommend;
}
public void setRecommend ( Boolean recommend) {
this . recommend = recommend;
}
@Override
public String toString ( ) {
return "BlogQuery{" +
"title='" + title + '\'' +
", typeId=" + typeId +
", recommend=" + recommend +
'}' ;
}
}
package com. zr. po;
import javax. persistence. *;
import java. util. ArrayList;
import java. util. Date;
import java. util. List;
@Entity
@Table ( name = "t_comment" )
public class Comment {
@Id
@GeneratedValue
private Long id;
private String nickname;
private String email;
private String content;
private String avatar;
@Temporal ( TemporalType. TIMESTAMP)
private Date createTime;
@ManyToOne
private Blog blog;
@OneToMany ( mappedBy = "parentComment" )
private List< Comment> replyComments = new ArrayList < > ( ) ;
@ManyToOne
private Comment parentComment;
private boolean adminComment;
public Comment ( ) {
}
public Long getId ( ) {
return id;
}
public void setId ( Long id) {
this . id = id;
}
public String getNickname ( ) {
return nickname;
}
public void setNickname ( String nickname) {
this . nickname = nickname;
}
public String getEmail ( ) {
return email;
}
public void setEmail ( String email) {
this . email = email;
}
public String getContent ( ) {
return content;
}
public void setContent ( String content) {
this . content = content;
}
public String getAvatar ( ) {
return avatar;
}
public void setAvatar ( String avatar) {
this . avatar = avatar;
}
public Date getCreateTime ( ) {
return createTime;
}
public void setCreateTime ( Date createTime) {
this . createTime = createTime;
}
public Blog getBlog ( ) {
return blog;
}
public void setBlog ( Blog blog) {
this . blog = blog;
}
public List< Comment> getReplyComments ( ) {
return replyComments;
}
public void setReplyComments ( List< Comment> replyComments) {
this . replyComments = replyComments;
}
public Comment getParentComment ( ) {
return parentComment;
}
public void setParentComment ( Comment parentComment) {
this . parentComment = parentComment;
}
public boolean isAdminComment ( ) {
return adminComment;
}
public void setAdminComment ( boolean adminComment) {
this . adminComment = adminComment;
}
@Override
public String toString ( ) {
return "Comment{" +
"id=" + id +
", nickname='" + nickname + '\'' +
", email='" + email + '\'' +
", content='" + content + '\'' +
", avatar='" + avatar + '\'' +
", createTime=" + createTime +
", blog=" + blog +
", replyComments=" + replyComments +
", parentComment=" + parentComment +
", adminComment=" + adminComment +
'}' ;
}
}
package com. zr. po;
import javax. persistence. *;
import java. util. ArrayList;
import java. util. List;
@Entity
@Table ( name = "t_tag" )
public class Tag {
@Id
@GeneratedValue
private Long id;
private String name;
@ManyToMany ( mappedBy = "tags" )
private List< Blog> blogs = new ArrayList < > ( ) ;
public Tag ( ) {
}
public Long getId ( ) {
return id;
}
public void setId ( Long id) {
this . id = id;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public List< Blog> getBlogs ( ) {
return blogs;
}
public void setBlogs ( List< Blog> blogs) {
this . blogs = blogs;
}
@Override
public String toString ( ) {
return "Tag{" +
"id=" + id +
", name='" + name + '\'' +
'}' ;
}
}
package com. zr. po;
import javax. persistence. *;
import java. util. ArrayList;
import java. util. List;
@Entity
@Table ( name = "t_type" )
public class Type {
@Id
@GeneratedValue
private Long id;
private String name;
@OneToMany ( mappedBy = "type" )
private List< Blog> blogs = new ArrayList < > ( ) ;
public Type ( ) {
}
public Long getId ( ) {
return id;
}
public void setId ( Long id) {
this . id = id;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public List< Blog> getBlogs ( ) {
return blogs;
}
public void setBlogs ( List< Blog> blogs) {
this . blogs = blogs;
}
@Override
public String toString ( ) {
return "Type{" +
"id=" + id +
", name='" + name + '\'' +
'}' ;
}
}
package com. zr. po;
import javax. persistence. *;
import java. util. ArrayList;
import java. util. Date;
import java. util. List;
@Entity
@Table ( name = "t_user" )
public class User {
@Id
@GeneratedValue
private Long id;
private String nickname;
private String username;
private String password;
private String email;
private String avatar;
private Integer type;
@Temporal ( TemporalType. TIMESTAMP)
private Date createTime;
@Temporal ( TemporalType. TIMESTAMP)
private Date updateTime;
@OneToMany ( mappedBy = "user" )
private List< Blog> blogs = new ArrayList < > ( ) ;
public User ( ) {
}
public Long getId ( ) {
return id;
}
public void setId ( Long id) {
this . id = id;
}
public String getNickname ( ) {
return nickname;
}
public void setNickname ( String nickname) {
this . nickname = nickname;
}
public String getUsername ( ) {
return username;
}
public void setUsername ( String username) {
this . username = username;
}
public String getPassword ( ) {
return password;
}
public void setPassword ( String password) {
this . password = password;
}
public String getEmail ( ) {
return email;
}
public void setEmail ( String email) {
this . email = email;
}
public String getAvatar ( ) {
return avatar;
}
public void setAvatar ( String avatar) {
this . avatar = avatar;
}
public Integer getType ( ) {
return type;
}
public void setType ( Integer type) {
this . type = type;
}
public Date getCreateTime ( ) {
return createTime;
}
public void setCreateTime ( Date createTime) {
this . createTime = createTime;
}
public Date getUpdateTime ( ) {
return updateTime;
}
public void setUpdateTime ( Date updateTime) {
this . updateTime = updateTime;
}
public List< Blog> getBlogs ( ) {
return blogs;
}
public void setBlogs ( List< Blog> blogs) {
this . blogs = blogs;
}
@Override
public String toString ( ) {
return "User{" +
"id=" + id +
", nickname='" + nickname + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
", avatar='" + avatar + '\'' +
", type=" + type +
", createTime=" + createTime +
", updateTime=" + updateTime +
'}' ;
}
}
serice文件
package com. zr. service;
import com. zr. po. Blog;
import com. zr. po. BlogQuery;
import com. zr. po. Tag;
import org. springframework. data. domain. Page;
import org. springframework. data. domain. Pageable;
import java. util. List;
import java. util. Map;
public interface IBlogService {
Page< Blog> listBlog ( Pageable pageable) ;
void deleteById ( Long id) ;
void add ( Blog blog) ;
Blog getBlog ( Long id) ;
void update ( Blog blog) ;
Page< Blog> listBlog ( Pageable pageable, BlogQuery blogQuery) ;
List< Blog> listRecommendBlogTop ( int i) ;
Page< Blog> listBlog ( String query, Pageable pageable) ;
Page< Blog> listBlog ( Long id, Pageable pageable) ;
Long countBlog ( ) ;
Map< String, List< Blog> > archivesBlog ( ) ;
}
package com. zr. service;
import com. zr. po. Comment;
import java. util. List;
public interface ICommentService {
void save ( Comment comment) ;
List< Comment> listCommentByblogId ( Long blogId) ;
}
package com. zr. service;
import com. zr. po. Tag;
import org. springframework. data. domain. Page;
import org. springframework. data. domain. Pageable;
import java. util. List;
public interface ITagService {
Page< Tag> listType ( Pageable pageable) ;
void deleteType ( Long id) ;
void addTag ( Tag tag) ;
Tag getTag ( Long id) ;
void update ( Long id, Tag type) ;
List< Tag> listType ( ) ;
List< Tag> getTagByIds ( String tagIds) ;
List< Tag> listTypeTop ( int i) ;
}
package com. zr. service;
import com. zr. po. Type;
import org. springframework. data. domain. Page;
import org. springframework. data. domain. Pageable;
import java. util. List;
public interface ITypeService {
Page< Type> listType ( Pageable pageable) ;
void deleteType ( Long id) ;
void addType ( Type type) ;
Type getType ( Long id) ;
void update ( Long id, Type type) ;
List< Type> listType ( ) ;
List< Type> listTypeTop ( int i) ;
}
package com. zr. service;
import com. zr. po. User;
public interface IUserService {
User checkUser ( String username, String password) ;
}
serviceimpl文件
package com. zr. service. impl;
import com. zr. dao. BlogDao;
import com. zr. po. Blog;
import com. zr. po. BlogQuery;
import com. zr. po. Tag;
import com. zr. po. Type;
import com. zr. service. IBlogService;
import org. springframework. beans. BeanUtils;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. data. domain. Page;
import org. springframework. data. domain. PageRequest;
import org. springframework. data. domain. Pageable;
import org. springframework. data. domain. Sort;
import org. springframework. data. jpa. domain. Specification;
import org. springframework. stereotype. Service;
import org. thymeleaf. util. StringUtils;
import javax. persistence. criteria. *;
import java. util. *;
@Service
public class BlogServiceImpl implements IBlogService {
@Autowired
private BlogDao blogDao;
@Override
public Page< Blog> listBlog ( Pageable pageable) {
return blogDao. findAll ( pageable) ;
}
@Override
public void deleteById ( Long id) {
blogDao. deleteById ( id) ;
}
@Override
public void add ( Blog blog) {
blog. setCreateTime ( new Date ( ) ) ;
blog. setUpdateTime ( new Date ( ) ) ;
blogDao. save ( blog) ;
}
@Override
public Blog getBlog ( Long id) {
return blogDao. getOne ( id) ;
}
@Override
public void update ( Blog blog) {
Blog one = blogDao. getOne ( blog. getId ( ) ) ;
BeanUtils. copyProperties ( blog, one) ;
one. setUpdateTime ( new Date ( ) ) ;
blogDao. save ( one) ;
}
@Override
public Page< Blog> listBlog ( Pageable pageable, BlogQuery blogQuery) {
Specification< Blog> specification= new Specification < Blog> ( ) {
@Override
public Predicate toPredicate ( Root< Blog> root, CriteriaQuery< ? > criteriaQuery, CriteriaBuilder criteriaBuilder) {
List< Predicate> predicates= new ArrayList < > ( ) ;
if ( ! StringUtils. isEmpty ( blogQuery. getTitle ( ) ) ) {
predicates. add ( criteriaBuilder. like ( root. < String> get ( "title" ) , "%" + blogQuery. getTitle ( ) + "%" ) ) ;
}
if ( blogQuery. getTypeId ( ) != null) {
predicates. add ( criteriaBuilder. equal ( root. < Type> get ( "type" ) . get ( "id" ) , blogQuery. getTypeId ( ) ) ) ;
}
if ( blogQuery. getRecommend ( ) != null && blogQuery. getRecommend ( ) ) {
predicates. add ( criteriaBuilder. equal ( root. < Boolean> get ( "recommend" ) , blogQuery. getRecommend ( ) ) ) ;
}
criteriaQuery. where ( predicates. toArray ( new Predicate [ predicates. size ( ) ] ) ) ;
return null;
}
} ;
return blogDao. findAll ( specification, pageable) ;
}
@Override
public List< Blog> listRecommendBlogTop ( int i) {
Sort sort= Sort. by ( Sort. Direction. DESC, "updateTime" ) ;
Pageable pageable= PageRequest. of ( 0 , i, sort) ;
List< Blog> blogs= blogDao. findTop ( pageable) ;
return blogs;
}
@Override
public Page< Blog> listBlog ( String query, Pageable pageable) {
return blogDao. findByQuery ( "%" + query+ "%" , pageable) ;
}
@Override
public Page< Blog> listBlog ( Long id, Pageable pageable) {
Specification< Blog> specification= new Specification < Blog> ( ) {
@Override
public Predicate toPredicate ( Root< Blog> root, CriteriaQuery< ? > criteriaQuery, CriteriaBuilder criteriaBuilder) {
Join join = root. join ( "tags" ) ;
return criteriaBuilder. equal ( join. get ( "id" ) , id) ;
}
} ;
return blogDao. findAll ( specification, pageable) ;
}
@Override
public Long countBlog ( ) {
return blogDao. count ( ) ;
}
@Override
public Map< String, List< Blog> > archivesBlog ( ) {
List< String> year = blogDao. findGroupYear ( ) ;
Map< String, List< Blog> > map= new HashMap < > ( ) ;
for ( String y: year) {
List< Blog> blogs= blogDao. findByYear ( y) ;
map. put ( y, blogs) ;
}
return map;
}
}
package com. zr. service. impl;
import com. zr. dao. CommentDao;
import com. zr. po. Comment;
import com. zr. service. ICommentService;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. data. domain. Sort;
import org. springframework. stereotype. Service;
import java. util. List;
@Service
public class CommentServiceImpl implements ICommentService {
@Autowired
private CommentDao commentDao;
@Override
public void save ( Comment comment) {
if ( comment. getParentComment ( ) . getId ( ) == - 1 ) {
comment. setParentComment ( null) ;
}
commentDao. save ( comment) ;
}
@Override
public List< Comment> listCommentByblogId ( Long blogId) {
Sort sort= Sort. by ( "createTime" ) ;
List< Comment> comments= commentDao. findByBlogIdAndParentCommentNull ( blogId, sort) ;
return comments;
}
}
package com. zr. service. impl;
import com. zr. dao. TagDao;
import com. zr. po. Tag;
import com. zr. po. Type;
import com. zr. service. ITagService;
import org. springframework. beans. BeanUtils;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. data. domain. Page;
import org. springframework. data. domain. PageRequest;
import org. springframework. data. domain. Pageable;
import org. springframework. data. domain. Sort;
import org. springframework. stereotype. Service;
import org. thymeleaf. util. StringUtils;
import java. util. ArrayList;
import java. util. List;
@Service
public class TagServiceImpl implements ITagService {
@Autowired
private TagDao tagDao;
@Override
public Page< Tag> listType ( Pageable pageable) {
Page< Tag> page = tagDao. findAll ( pageable) ;
return page;
}
@Override
public void deleteType ( Long id) {
tagDao. deleteById ( id) ;
}
@Override
public void addTag ( Tag tag) {
tagDao. save ( tag) ;
}
@Override
public Tag getTag ( Long id) {
return tagDao. getOne ( id) ;
}
@Override
public void update ( Long id, Tag tag) {
Tag tag1 = tagDao. getOne ( id) ;
BeanUtils. copyProperties ( tag, tag1) ;
tagDao. save ( tag1) ;
}
@Override
public List< Tag> listType ( ) {
return tagDao. findAll ( ) ;
}
@Override
public List< Tag> getTagByIds ( String tagIds) {
List< Long> ids= new ArrayList < > ( ) ;
if ( tagIds != null && tagIds != "" ) {
String[ ] s = tagIds. split ( "," ) ;
for ( int i= 0 ; i< s. length; i++ ) {
if ( ! StringUtils. isEmpty ( s[ i] ) ) {
ids. add ( new Long ( s[ i] ) ) ;
}
}
}
List< Tag> tags = tagDao. findAllById ( ids) ;
return tags;
}
@Override
public List< Tag> listTypeTop ( int i) {
Sort sort= Sort. by ( Sort. Direction. DESC, "blogs.size" ) ;
Pageable pageable= PageRequest. of ( 0 , i, sort) ;
List< Tag> tags= tagDao. findTop ( pageable) ;
return tags;
}
}
package com. zr. service. impl;
import com. zr. dao. TypeDao;
import com. zr. po. Type;
import com. zr. po. User;
import com. zr. service. ITypeService;
import org. springframework. beans. BeanUtils;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. data. domain. Page;
import org. springframework. data. domain. PageRequest;
import org. springframework. data. domain. Pageable;
import org. springframework. data. domain. Sort;
import org. springframework. stereotype. Service;
import java. util. List;
@Service
public class TypeServiceImpl implements ITypeService {
@Autowired
private TypeDao typeDao;
@Override
public Page< Type> listType ( Pageable pageable) {
Page< Type> page = typeDao. findAll ( pageable) ;
return page;
}
@Override
public void deleteType ( Long id) {
typeDao. deleteById ( id) ;
}
@Override
public void addType ( Type type) {
typeDao. save ( type) ;
}
@Override
public Type getType ( Long id) {
return typeDao. getOne ( id) ;
}
@Override
public void update ( Long id, Type type) {
Type type1 = typeDao. getOne ( id) ;
BeanUtils. copyProperties ( type, type1) ;
typeDao. save ( type1) ;
}
@Override
public List< Type> listType ( ) {
return typeDao. findAll ( ) ;
}
@Override
public List< Type> listTypeTop ( int i) {
Sort sort= Sort. by ( Sort. Direction. DESC, "blogs.size" ) ;
Pageable pageable= PageRequest. of ( 0 , i, sort) ;
List< Type> types= typeDao. findTop ( pageable) ;
return types;
}
}
package com. zr. service. impl;
import com. zr. dao. UserDao;
import com. zr. po. User;
import com. zr. service. IUserService;
import com. zr. util. MD5Util;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Service;
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserDao userDao;
@Override
public User checkUser ( String username, String password) {
return userDao. findByUsernameAndPassword ( username, MD5Util. code ( password) ) ;
}
}
应用
package com. zr;
import org. springframework. boot. SpringApplication;
import org. springframework. boot. autoconfigure. SpringBootApplication;
@SpringBootApplication
public class BlgApplication {
public static void main ( String[ ] args) {
SpringApplication. run ( BlgApplication. class , args) ;
}
}