黑马十次方项目day02-12之文章审核和点赞

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33229669/article/details/86424659

需求分析

点赞和文章的审核,都是执行sql的update语句.
在restful风格中,采用的是put请求. 只需传递文章的id即可.

在tb_article表中, 有state审核状态字段, 0代表未审核, 1代表已经审核

thumbup为点赞数字段.

dao

注意,点赞用到了sql语句的thumbup =thumbup+1.
而null加上任何值都是null值,因此在新增数据时,要给定该字段初始值为0

public interface ArticleDao extends JpaRepository<Article,String>,JpaSpecificationExecutor<Article>{

    @Modifying
    @Query(value = "update tb_article set state =1 where id=?" ,nativeQuery = true)
    public void updateState(String id);

    @Modifying
    @Query(value = "update tb_article set thumbup =thumbup+1 where id=?",nativeQuery = true)
    public void addThumbup(String id);

}

service


@Service
public class ArticleService {

	@Autowired
	private ArticleDao articleDao;
	
	@Autowired
	private IdWorker idWorker;


    public void updateState(String id) {
        articleDao.updateState(id);
    }

    public void addThumbup(String id) {
        articleDao.addThumbup(id);
    }
 }

controller

@RestController
@CrossOrigin
@RequestMapping("/article")
public class ArticleController {

	@Autowired
	private ArticleService articleService;

	/**
	 * 方法名: thumbup
	 * 方法描述: 点赞文章
	 * 修改日期: 2019/1/13 16:10
	  * @param articleId
	 * @return entity.Result
	 * @author taohongchao
	 * @throws
	 */
    @RequestMapping(value = "/thumbup/{articleId}", method = RequestMethod.PUT)
	public Result thumbup(@PathVariable String articleId) {
        articleService.addThumbup(articleId);
        return new Result(true,StatusCode.OK,"点赞成功");
    }

    /**
     * 方法名: examine
     * 方法描述: 审核文章
     * 修改日期: 2019/1/13 16:10
      * @param articleId
     * @return entity.Result
     * @author taohongchao
     * @throws
     */
    @RequestMapping(value = "/examine/{articleId}", method = RequestMethod.PUT)
    public Result examine(@PathVariable String articleId) {
        articleService.updateState(articleId);
        return new Result(true,StatusCode.OK,"审核成功");
    }
  }

测试

开启ArticleApplication启动类. 进行测试
发送http://localhost:9004/article/examine/1 文章审核的请求.
后台报错如下
Caused by: javax.persistence.TransactionRequiredException: Executing an update/delete query
说的是执行更新和删除语句需要加上事务.
解决方法是在service层的类上,加上事务的注解

加上事务后,重新测试,即可更新文章的状态了. 从0变成了1 .

点赞 发送请求 http://localhost:9004/article/thumbup/1
响应如下

{
  "flag": true,
  "code": 20000,
  "message": "点赞成功",
  "data": null
}

数据库中该字段加一了

猜你喜欢

转载自blog.csdn.net/qq_33229669/article/details/86424659