commit
976fa47769
@ -0,0 +1,86 @@
|
||||
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.*;
|
||||
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 = "1.获取专栏文章列表",notes = "获取专栏文章列表,category=0代表全部文章, 1代表荐碟,2代表专访,3代表言之,4代表她说")
|
||||
@GetMapping("/search/{category}/{page}/{size}")
|
||||
public Result search(@ApiParam(value = "分类,category=0代表全部文章, 1代表荐碟,2代表专访,3代表言之,4代表她说", required = true) @PathVariable Integer category, @PathVariable int page, @PathVariable int size){
|
||||
Page<Essay> pageData = null;
|
||||
if(category == 0 || category == null){
|
||||
pageData = essayService.search(page, size);
|
||||
}else{
|
||||
pageData = essayService.getByCategory(category, page, size);
|
||||
}
|
||||
return Result.success(new PageResult<Essay>(pageData.getTotalElements(),pageData.getContent()));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("添加专栏文章")
|
||||
@GlobalInterceptor(checkAdminLogin = true)
|
||||
@PostMapping
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "essay", value = "专栏文章对象", required = true, dataType = "Essay", paramType = "body"),
|
||||
@ApiImplicitParam(name = "Authorization", value = "authorization", required = true, dataType = "String", paramType = "header")
|
||||
})
|
||||
public Result add(@RequestHeader(value="Authorization",required = true) String authorization , @RequestBody Essay essay) {
|
||||
essayService.add(essay);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@ApiOperation("修改专栏文章")
|
||||
@PutMapping("/{id}")
|
||||
@GlobalInterceptor(checkAdminLogin = true)
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "essay", value = "专栏文章对象", required = true, dataType = "Essay", paramType = "body"),
|
||||
@ApiImplicitParam(name = "Authorization", value = "authorization", required = true, dataType = "String", paramType = "header")
|
||||
})
|
||||
public Result update(@RequestHeader(value="Authorization",required = true) String authorization ,@PathVariable String id, @RequestBody Essay essay) {
|
||||
essay.setId(id);
|
||||
essayService.update(essay);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@ApiOperation("删除专栏文章")
|
||||
@DeleteMapping("/{id}")
|
||||
@GlobalInterceptor(checkAdminLogin = true)
|
||||
public Result delete(@RequestHeader(value="Authorization",required = true) String authorization,@PathVariable String id) {
|
||||
essayService.delete(id);
|
||||
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 = "1 获取专栏文章列表",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);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue