黑馬程序員十次方微服務項目開發實踐,完善文章微服務,添加文章評論功能(八)

一、文章微服務增加評論

  1. 修改tensquare_article工程的pom.xml
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring‐boot‐starter‐data‐mongodb</artifactId>
</dependency>
  1. 修改application.yml ,在spring節點下新增配置
  data:
    mongodb:
      host: 192.168.192.130
      database: recruitdb
  1. 創建實體類
package com.tensquare.article.pojo;

import org.springframework.data.annotation.Id;

import java.io.Serializable;
import java.util.Date;

/**
 * 文章評論(mongoDB)
 * @author Eknaij
 *
 */

public class Comment implements Serializable {
    @Id
    private String _id;
    private String articleid;
    private String content;
    private String userid;
    private String parentid;
    private Date publishdate;

    public String get_id() {
        return _id;
    }

    public void set_id(String _id) {
        this._id = _id;
    }

    public String getArticleid() {
        return articleid;
    }

    public void setArticleid(String articleid) {
        this.articleid = articleid;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public String getParentid() {
        return parentid;
    }

    public void setParentid(String parentid) {
        this.parentid = parentid;
    }

    public Date getPublishdate() {
        return publishdate;
    }

    public void setPublishdate(Date publishdate) {
        this.publishdate = publishdate;
    }
}

  1. 創建數據訪問接口
/**
 * 評論Dao
 * @author Eknaij
 *
 */
public interface CommentDao extends MongoRepository<Comment, String> {
}
  1. 創建業務邏輯類
package com.tensquare.article.service;

import com.tensquare.article.dao.CommentDao;
import com.tensquare.article.pojo.Comment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import util.IdWorker;

@Service
public class CommentService {
    @Autowired
    private CommentDao commentDao;
    @Autowired
    private IdWorker idWorker;
    public void add(Comment comment){
        comment.set_id( idWorker.nextId()+"" );
        commentDao.save(comment);
    }

}

  1. 創建控制器類
@RestController
@CrossOrigin
@RequestMapping("/comment")

public class CommentController {
    @Autowired
    private CommentService commentService;
    @RequestMapping(method= RequestMethod.POST)
    public Result save(@RequestBody Comment comment){
        commentService.add(comment);
        return new Result(true, StatusCode.OK, "提交成功 ",null);
    }

}

二、根據評論ID查詢評論列表

(1)CommentDao新增方法定義

   /**
     * 根據文章ID查詢評論列表
     * @param articleid
     * @return
     */
    public List<Comment> findByArticleid(String articleid);

(2)CommentService新增方法

  public List<Comment> findByArticleid(String articleid){
        return commentDao.findByArticleid(articleid);
    }

(3)CommentController新增方法

    /**
     * 根據ID查詢評論列表
     * @param articleid
     * @return
     */
    @RequestMapping(value="/article/{articleid}",method= RequestMethod.GET)
    public Result findByArticleid(@PathVariable String articleid){
        return new Result(true, StatusCode.OK, "查詢成功",
                commentService.findByArticleid(articleid));
    }

三、刪除評論

(1)CommentService新增方法

    /**
     * 刪除
     * @param id
     */
    public void deleteById(String id) {
        commentDao.deleteById(id);
    }

(2)CommentController新增方法

   /**
     * 刪除
     * @param id
     */
    @RequestMapping(value="/{id}",method=RequestMethod.DELETE)
    public Result deleteById(@PathVariable String id ){
        commentService.deleteById(id);
        return new Result(true,StatusCode.OK,"刪除成功",null);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章