parent
531c440b13
commit
3c979067cb
11 changed files with 504 additions and 0 deletions
@ -0,0 +1,64 @@ |
|||||||
|
package com.teaching.backend.controller.cms; |
||||||
|
|
||||||
|
|
||||||
|
import com.teaching.backend.common.BaseResponse; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsCategory; |
||||||
|
import com.teaching.backend.service.impl.cms.CmsCategoryServiceImpl; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
|
||||||
|
import javax.annotation.Resource; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 前端控制器 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
@Api(tags = "栏目管理") |
||||||
|
@RestController |
||||||
|
@RequestMapping("/api/cms-category") |
||||||
|
public class CmsCategoryController { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private CmsCategoryServiceImpl cmsCategoryService; |
||||||
|
/** |
||||||
|
* 添加栏目 |
||||||
|
* @param cmsCategory |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@PostMapping("/add") |
||||||
|
public BaseResponse<String> addCategory(CmsCategory cmsCategory){ |
||||||
|
return cmsCategoryService.addCategory(cmsCategory); |
||||||
|
} |
||||||
|
/**' |
||||||
|
* 删除栏目 |
||||||
|
* @param ids |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@DeleteMapping("/delete") |
||||||
|
public BaseResponse<String> deleteCategory(@RequestParam List<Integer> ids){ |
||||||
|
return cmsCategoryService.deleteCategory(ids); |
||||||
|
} |
||||||
|
/** |
||||||
|
* 编辑栏目 |
||||||
|
* @param cmsCategory |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@PutMapping("/edit") |
||||||
|
public BaseResponse<String> editCategory(CmsCategory cmsCategory){ |
||||||
|
return cmsCategoryService.editCategory(cmsCategory); |
||||||
|
} |
||||||
|
/** |
||||||
|
* 查询栏目 |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@GetMapping("/query") |
||||||
|
public BaseResponse<List<?>> queryCategory(){ |
||||||
|
return cmsCategoryService.queryCategory(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,70 @@ |
|||||||
|
package com.teaching.backend.controller.cms; |
||||||
|
|
||||||
|
|
||||||
|
import com.teaching.backend.common.BaseResponse; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsCategory; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsEssay; |
||||||
|
import com.teaching.backend.service.impl.cms.CmsEssayServiceImpl; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
|
||||||
|
import javax.annotation.Resource; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 前端控制器 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
@Api(tags = "文章管理") |
||||||
|
@RestController |
||||||
|
@RequestMapping("/api/cms-essay") |
||||||
|
public class CmsEssayController { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private CmsEssayServiceImpl cmsEssayService; |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加文章 |
||||||
|
* @param cmsEssay |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@PostMapping("/add") |
||||||
|
public BaseResponse<String> addEssay(CmsEssay cmsEssay){ |
||||||
|
return cmsEssayService.addEssay(cmsEssay); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除文章 |
||||||
|
* @param ids |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@DeleteMapping("/delete") |
||||||
|
public BaseResponse<String> deleteEssay(@RequestParam List<Integer> ids){ |
||||||
|
return cmsEssayService.deleteEssay(ids); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 编辑文章 |
||||||
|
* @param cmsEssay |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@PutMapping("/edit") |
||||||
|
public BaseResponse<String> editEssay(CmsEssay cmsEssay){ |
||||||
|
return cmsEssayService.editEssay(cmsEssay); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询文章 |
||||||
|
* @param category_id |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@GetMapping("/query") |
||||||
|
public BaseResponse<List<?>> queryEssay(Integer category_id){ |
||||||
|
return cmsEssayService.queryEssay(category_id); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package com.teaching.backend.mapper.cms; |
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsCategory; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* Mapper 接口 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
public interface CmsCategoryMapper extends BaseMapper<CmsCategory> { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package com.teaching.backend.mapper.cms; |
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsEssay; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* Mapper 接口 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
public interface CmsEssayMapper extends BaseMapper<CmsEssay> { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,61 @@ |
|||||||
|
package com.teaching.backend.model.entity.cms; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*; |
||||||
|
|
||||||
|
import java.time.LocalDateTime; |
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.EqualsAndHashCode; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@EqualsAndHashCode(callSuper = false) |
||||||
|
@Accessors(chain = true) |
||||||
|
@TableName("cms_category") |
||||||
|
@ApiModel(value="CmsCategory对象", description="") |
||||||
|
public class CmsCategory implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "栏目id") |
||||||
|
@TableId(value = "id", type = IdType.AUTO) |
||||||
|
private Integer id; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "栏目名称") |
||||||
|
private String categoryName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建该栏目的用户id") |
||||||
|
private String creatorId; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "栏目父id(若为一级栏目则父id等于栏目id)") |
||||||
|
private Integer categoryPid; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间") |
||||||
|
@TableField(fill = FieldFill.INSERT) |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private LocalDateTime createTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "更新时间") |
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE) |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private LocalDateTime updateTime; |
||||||
|
|
||||||
|
@TableField(exist = false) |
||||||
|
private List<CmsCategory> childrenNode; |
||||||
|
} |
@ -0,0 +1,75 @@ |
|||||||
|
package com.teaching.backend.model.entity.cms; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*; |
||||||
|
|
||||||
|
import java.time.LocalDateTime; |
||||||
|
import java.io.Serializable; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.EqualsAndHashCode; |
||||||
|
import lombok.experimental.Accessors; |
||||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@EqualsAndHashCode(callSuper = false) |
||||||
|
@Accessors(chain = true) |
||||||
|
@TableName("cms_essay") |
||||||
|
@ApiModel(value="CmsEssay对象", description="") |
||||||
|
public class CmsEssay implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "文章id") |
||||||
|
@TableId(value = "id", type = IdType.AUTO) |
||||||
|
private Integer id; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "文章标题") |
||||||
|
private String title; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "标题图片") |
||||||
|
private String pic; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "文章内容") |
||||||
|
private String content; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "发布时间") |
||||||
|
private LocalDateTime publishTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "浏览次数") |
||||||
|
private Integer readingNumber; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "评论条数") |
||||||
|
private Integer commentCount; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "所属栏目id") |
||||||
|
private Integer categoryId; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "发布文章的用户id") |
||||||
|
private Integer userId; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "文章文件") |
||||||
|
private String file; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "发布状态: 1: 已发布; 2未发布") |
||||||
|
private Integer status; |
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "更新时间") |
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE) |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai") |
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||||
|
private LocalDateTime updateTime; |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package com.teaching.backend.service.cms; |
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import com.teaching.backend.common.BaseResponse; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsCategory; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 服务类 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
public interface ICmsCategoryService extends IService<CmsCategory> { |
||||||
|
|
||||||
|
BaseResponse<String> addCategory(CmsCategory cmsCategory); |
||||||
|
|
||||||
|
BaseResponse<String> deleteCategory(List<Integer> ids); |
||||||
|
|
||||||
|
BaseResponse<String> editCategory(CmsCategory cmsCategory); |
||||||
|
|
||||||
|
BaseResponse<List<?>> queryCategory(); |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package com.teaching.backend.service.cms; |
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import com.teaching.backend.common.BaseResponse; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsEssay; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 服务类 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
public interface ICmsEssayService extends IService<CmsEssay> { |
||||||
|
|
||||||
|
BaseResponse<String> addEssay(CmsEssay cmsEssay); |
||||||
|
|
||||||
|
BaseResponse<String> deleteEssay(List<Integer> ids); |
||||||
|
|
||||||
|
BaseResponse<String> editEssay(CmsEssay cmsEssay); |
||||||
|
|
||||||
|
BaseResponse<List<?>> queryEssay(Integer category_id); |
||||||
|
} |
@ -0,0 +1,72 @@ |
|||||||
|
package com.teaching.backend.service.impl.cms; |
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import com.teaching.backend.common.BaseResponse; |
||||||
|
import com.teaching.backend.common.ResultUtils; |
||||||
|
import com.teaching.backend.mapper.cms.CmsCategoryMapper; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsCategory; |
||||||
|
import com.teaching.backend.service.cms.ICmsCategoryService; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 服务实现类 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class CmsCategoryServiceImpl extends ServiceImpl<CmsCategoryMapper, CmsCategory> implements ICmsCategoryService { |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加栏目 |
||||||
|
* @param cmsCategory |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public BaseResponse<String> addCategory(CmsCategory cmsCategory) { |
||||||
|
save(cmsCategory); |
||||||
|
return ResultUtils.success("添加成功"); |
||||||
|
} |
||||||
|
|
||||||
|
/**' |
||||||
|
* 删除栏目 |
||||||
|
* @param ids |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public BaseResponse<String> deleteCategory(List<Integer> ids) { |
||||||
|
removeByIds(ids); |
||||||
|
return ResultUtils.success("删除成功"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 编辑栏目 |
||||||
|
* @param cmsCategory |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public BaseResponse<String> editCategory(CmsCategory cmsCategory) { |
||||||
|
updateById(cmsCategory); |
||||||
|
return ResultUtils.success("编辑成功!"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询栏目 |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public BaseResponse<List<?>> queryCategory() { |
||||||
|
List<CmsCategory> categoryPid = query().eq("category_pid", 0).list(); |
||||||
|
for (int i = 0; i < categoryPid.size(); i++) { |
||||||
|
//查孩子
|
||||||
|
categoryPid.get(i).setChildrenNode(query().eq("category_pid", categoryPid.get(i).getId()).list()); |
||||||
|
} |
||||||
|
return ResultUtils.success(categoryPid); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,48 @@ |
|||||||
|
package com.teaching.backend.service.impl.cms; |
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import com.teaching.backend.common.BaseResponse; |
||||||
|
import com.teaching.backend.common.ResultUtils; |
||||||
|
import com.teaching.backend.mapper.cms.CmsEssayMapper; |
||||||
|
import com.teaching.backend.model.entity.cms.CmsEssay; |
||||||
|
import com.teaching.backend.service.cms.ICmsEssayService; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* <p> |
||||||
|
* 服务实现类 |
||||||
|
* </p> |
||||||
|
* |
||||||
|
* @author author |
||||||
|
* @since 2024-08-13 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class CmsEssayServiceImpl extends ServiceImpl<CmsEssayMapper, CmsEssay> implements ICmsEssayService { |
||||||
|
|
||||||
|
@Override |
||||||
|
public BaseResponse<String> addEssay(CmsEssay cmsEssay) { |
||||||
|
save(cmsEssay); |
||||||
|
return ResultUtils.success("添加成功"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public BaseResponse<String> deleteEssay(List<Integer> ids) { |
||||||
|
removeByIds(ids); |
||||||
|
return ResultUtils.success("删除成功"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public BaseResponse<String> editEssay(CmsEssay cmsEssay) { |
||||||
|
updateById(cmsEssay); |
||||||
|
return ResultUtils.success("编辑成功!"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public BaseResponse<List<?>> queryEssay(Integer category_id) { |
||||||
|
List<CmsEssay> list = query().eq("category_id", category_id).list(); |
||||||
|
return ResultUtils.success(list); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
package com.teaching.backend.utils; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; |
||||||
|
import org.apache.ibatis.reflection.MetaObject; |
||||||
|
import org.springframework.stereotype.Component; |
||||||
|
|
||||||
|
import java.time.LocalDateTime; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自动填充时间 |
||||||
|
*/ |
||||||
|
@Component |
||||||
|
public class MyMetaObjectHandler implements MetaObjectHandler { |
||||||
|
@Override |
||||||
|
public void insertFill(MetaObject metaObject) { |
||||||
|
this.setFieldValByName("createTime", LocalDateTime.now(), metaObject); |
||||||
|
this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void updateFill(MetaObject metaObject) { |
||||||
|
this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); |
||||||
|
|
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue