release-增加专栏文章管理功能

release-2024-08-08
wangqing 4 months ago
parent 1122944839
commit bc3b900575

@ -0,0 +1,81 @@
package com.luoo.music.controller;
import annotation.GlobalInterceptor;
import api.PageResult;
import api.Result;
import com.luoo.music.pojo.Essay;
import com.luoo.music.service.EssayService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
/**
* Controller
* author: wangqing
*/
@RestController
@CrossOrigin
@Api(tags = "雀乐专栏文章后台管理")
@RequestMapping("/cms/essay")
public class CMSEssayController {
@Autowired
private EssayService essayService;
@ApiOperation(value = "获取专栏文章列表",notes = "获取专栏文章列表,category=0代表全部文章, 1代表荐碟,2代表专访,3代表言之,4代表她说")
@GetMapping("/search/{category}/{page}/{size}")
public Result search(@PathVariable Integer category, @PathVariable int page, @PathVariable int size){
Page<Essay> pageData = null;
if(category == 0){
pageData = essayService.search(page, size);
}else{
pageData = essayService.getByCategory(category, page, size);
}
return Result.success(new PageResult<Essay>(pageData.getTotalElements(),pageData.getContent()));
}
@ApiOperation("添加专栏文章")
@PostMapping
public Result add(@RequestBody Essay essay) {
essayService.add(essay);
return Result.success();
}
@ApiOperation("修改专栏文章")
@PutMapping("/{id}")
public Result update(@PathVariable String id, @RequestBody Essay essay) {
essay.setId(id);
essayService.update(essay);
return Result.success();
}
@ApiOperation("删除专栏文章")
@DeleteMapping("/{id}")
public Result delete(@PathVariable String id) {
essayService.delete(id);
return Result.success();
}
// @ApiOperation("批量删除专栏文章")
// @DeleteMapping
// public Result deleteBatch(@RequestBody String[] ids) {
// essayService.deleteBatch(ids);
// return Result.success();
// }
@ApiOperation("根据ID获取专栏文章")
@GetMapping("/{id}")
public Result getById(@PathVariable String id) {
Essay essay = essayService.getById(id);
return Result.success(essay);
}
}

@ -0,0 +1,41 @@
package com.luoo.music.controller;
import api.PageResult;
import api.Result;
import com.luoo.music.pojo.Essay;
import com.luoo.music.service.EssayService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
/**
*
* author: wangqing
*/
@RestController
@CrossOrigin
@Api(tags = "雀乐专栏文章前台功能")
@RequestMapping("/essay")
public class EssayController {
@Autowired
private EssayService essayService;
@ApiOperation(value = "获取专栏文章列表",notes = "获取专栏文章列表,category=0代表全部文章, 1代表荐碟,2代表专访,3代表言之,4代表她说")
@GetMapping("/search/{category}/{page}/{size}")
public Result search(@PathVariable Integer category, @PathVariable int page, @PathVariable int size){
Page<Essay> pageData = null;
if(category == 0){
pageData = essayService.search(page, size);
}else{
pageData = essayService.getByCategory(category, page, size);
}
return Result.success(new PageResult<Essay>(pageData.getTotalElements(),pageData.getContent()));
}
}

@ -0,0 +1,14 @@
package com.luoo.music.dao;
import com.luoo.music.pojo.Essay;
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;
public interface EssayDao extends JpaRepository<Essay, String> , JpaSpecificationExecutor<Essay> {
public Page<Essay> findAllByOrderByCreateTimeDesc(Pageable pageable);
Page<Essay> findAllByCategoryOrderByCreateTimeDesc(int category, Pageable pageable);
}

@ -0,0 +1,59 @@
package com.luoo.music.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Id;
import javax.persistence.Table;
import java.time.LocalDateTime;
/**
*
* @author wangqing
* @date 2024/07/24
*/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name="tb_essay")
@EntityListeners(AuditingEntityListener.class)
public class Essay {
@Id
private String id;
// 标题
private String title;
// 简介
private String summary;
// 阅读数
private Integer readCount;
// 内容
private String content;
// 作者
private String authorId;
private String authorName;
private String authorAvatar;
// 分类
private Integer category;
// 封面路径
private String cover;
@CreatedDate
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@LastModifiedDate
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
}

@ -0,0 +1,51 @@
package com.luoo.music.service;
import com.luoo.music.dao.EssayDao;
import com.luoo.music.pojo.Essay;
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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import util.IdWorker;
@Service
@Transactional
public class EssayService {
@Autowired
private EssayDao essayDao;
@Autowired
private IdWorker idWorker;
public Page<Essay> search(int page, int size) {
// TODO: implement search logic
Pageable pageable = PageRequest.of(page-1, size);
return essayDao.findAllByOrderByCreateTimeDesc(pageable);
}
public void add(Essay essay) {
essay.setId(idWorker.nextId()+"");
essayDao.save(essay);
}
public void update(Essay essay) {
essayDao.save(essay);
}
public void delete(String id) {
essayDao.deleteById(id);
}
public Essay getById(String id) {
return essayDao.findById(id).get();
}
public Page<Essay> getByCategory(int category, int page, int size) {
Pageable pageable = PageRequest.of(page-1, size);
return essayDao.findAllByCategoryOrderByCreateTimeDesc(category, pageable);
}
}

@ -0,0 +1,19 @@
create table tb_essay
(
id varchar(20) not null comment 'id'
primary key,
title varchar(20) null comment '标题',
summary varchar(200) null comment '摘要',
read_count int null comment '阅读数',
content text null comment '内容',
author_id varchar(20) null comment '作者id',
author_name varchar(20) null comment '作者名称',
author_avatar varchar(200) null comment '作者头像',
category int null comment '分类 1荐碟 2 专访 3言之 4 她说',
cover varchar(200) null comment '封面url',
create_time datetime null comment '创建时间',
update_time datetime null comment '更新时间'
)
comment 'tb_essay';
Loading…
Cancel
Save