From ce1dc7a19d10c6564ff5e3ef72d30a773fa99ead Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期一, 26 五月 2025 14:29:58 +0800 Subject: [PATCH] add:增加影视作品分类 --- src/main/java/com/mzl/flower/dto/request/film/FilmCategoryUpdateDTO.java | 10 + src/main/java/com/mzl/flower/service/film/FilmCategoryService.java | 129 ++++++++++++++++ src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java | 2 src/main/java/com/mzl/flower/service/film/impl/FilmLocationServiceImpl.java | 10 src/main/java/com/mzl/flower/service/film/impl/FilmWorksServiceImpl.java | 12 - src/main/java/com/mzl/flower/web/film/FilmWorksController.java | 7 src/main/resources/mapper/film/FilmLocationMapper.xml | 2 src/main/java/com/mzl/flower/entity/film/FilmCategory.java | 38 ++++ src/main/java/com/mzl/flower/dto/response/film/FilmWorksVO.java | 4 src/main/java/com/mzl/flower/web/film/FilmLocationController.java | 6 src/main/java/com/mzl/flower/web/film/FilmCategoryController.java | 98 ++++++++++++ src/main/java/com/mzl/flower/dto/request/film/FilmWorksQueryDTO.java | 4 src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java | 2 src/main/java/com/mzl/flower/dto/request/film/FilmLocationQueryDTO.java | 2 src/main/resources/mapper/film/FilmWorksMapper.xml | 7 src/main/java/com/mzl/flower/dto/request/film/FilmCategoryCreateDTO.java | 31 +++ src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java | 2 src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java | 6 src/main/java/com/mzl/flower/dto/request/film/FilmWorksDTO.java | 4 src/main/java/com/mzl/flower/dto/response/film/FilmCategoryTreeDTO.java | 33 ++++ src/main/java/com/mzl/flower/service/film/FilmWorksService.java | 6 src/main/java/com/mzl/flower/dto/request/film/FilmCategoryQueryDTO.java | 19 ++ src/main/java/com/mzl/flower/mapper/film/FilmCategoryMapper.java | 24 +++ src/main/java/com/mzl/flower/service/film/FilmLocationService.java | 6 24 files changed, 422 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryCreateDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryCreateDTO.java new file mode 100644 index 0000000..b53af44 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryCreateDTO.java @@ -0,0 +1,31 @@ +package com.mzl.flower.dto.request.film; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class FilmCategoryCreateDTO { + @ApiModelProperty(value = "分类名称") + private String name; + + @ApiModelProperty(value = "父分类ID") + private Long parentId; + + @ApiModelProperty(value = "分类类型") + private String type; + + @ApiModelProperty(value = "分类编码") + private String code; + + @ApiModelProperty(value = "排序") + private Integer sortBy; + + @ApiModelProperty(value = "分类图标") + private String imageUrl; + + @ApiModelProperty(value = "是否显示") + private Boolean shown; + + @ApiModelProperty(value = "级别限制") + private String levelLimit; +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryQueryDTO.java new file mode 100644 index 0000000..dfb3e36 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryQueryDTO.java @@ -0,0 +1,19 @@ +package com.mzl.flower.dto.request.film; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class FilmCategoryQueryDTO { + @ApiModelProperty(value = "分类名称") + private String name; + + @ApiModelProperty(value = "分类类型") + private String type; + + @ApiModelProperty(value = "父分类ID") + private Long parentId; + + @ApiModelProperty(value = "是否显示") + private Boolean shown; +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryUpdateDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryUpdateDTO.java new file mode 100644 index 0000000..ecc2bc3 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/film/FilmCategoryUpdateDTO.java @@ -0,0 +1,10 @@ +package com.mzl.flower.dto.request.film; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class FilmCategoryUpdateDTO extends FilmCategoryCreateDTO { + @ApiModelProperty(value = "分类ID") + private Long id; +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/dto/request/filmwork/FilmLocationDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java similarity index 97% rename from src/main/java/com/mzl/flower/dto/request/filmwork/FilmLocationDTO.java rename to src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java index 4190d27..69fc585 100644 --- a/src/main/java/com/mzl/flower/dto/request/filmwork/FilmLocationDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java @@ -1,4 +1,4 @@ -package com.mzl.flower.dto.request.filmwork; +package com.mzl.flower.dto.request.film; import lombok.Data; diff --git a/src/main/java/com/mzl/flower/dto/request/filmwork/FilmLocationQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmLocationQueryDTO.java similarity index 80% rename from src/main/java/com/mzl/flower/dto/request/filmwork/FilmLocationQueryDTO.java rename to src/main/java/com/mzl/flower/dto/request/film/FilmLocationQueryDTO.java index 4a688d0..6000f70 100644 --- a/src/main/java/com/mzl/flower/dto/request/filmwork/FilmLocationQueryDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/film/FilmLocationQueryDTO.java @@ -1,4 +1,4 @@ -package com.mzl.flower.dto.request.filmwork; +package com.mzl.flower.dto.request.film; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/src/main/java/com/mzl/flower/dto/request/filmwork/FilmWorksDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmWorksDTO.java similarity index 95% rename from src/main/java/com/mzl/flower/dto/request/filmwork/FilmWorksDTO.java rename to src/main/java/com/mzl/flower/dto/request/film/FilmWorksDTO.java index 25c19d1..5508927 100644 --- a/src/main/java/com/mzl/flower/dto/request/filmwork/FilmWorksDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/film/FilmWorksDTO.java @@ -1,8 +1,6 @@ -package com.mzl.flower.dto.request.filmwork; +package com.mzl.flower.dto.request.film; import lombok.Data; - -import java.time.LocalDateTime; @Data public class FilmWorksDTO { diff --git a/src/main/java/com/mzl/flower/dto/request/filmwork/FilmWorksQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmWorksQueryDTO.java similarity index 86% rename from src/main/java/com/mzl/flower/dto/request/filmwork/FilmWorksQueryDTO.java rename to src/main/java/com/mzl/flower/dto/request/film/FilmWorksQueryDTO.java index aa5766f..a5ff5a0 100644 --- a/src/main/java/com/mzl/flower/dto/request/filmwork/FilmWorksQueryDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/film/FilmWorksQueryDTO.java @@ -1,4 +1,4 @@ -package com.mzl.flower.dto.request.filmwork; +package com.mzl.flower.dto.request.film; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,6 +16,8 @@ @ApiModelProperty("发布状态(COMMON_PUBLISH_STATUS)") private String status; + @ApiModelProperty("分类1-为你精选,2-光影社区") + private int classify; @ApiModelProperty("创建日期(yyyy-mm-dd)") private String createDateBeginStr; diff --git a/src/main/java/com/mzl/flower/dto/response/film/FilmCategoryTreeDTO.java b/src/main/java/com/mzl/flower/dto/response/film/FilmCategoryTreeDTO.java new file mode 100644 index 0000000..8525f32 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/response/film/FilmCategoryTreeDTO.java @@ -0,0 +1,33 @@ +package com.mzl.flower.dto.response.film; + +import com.mzl.flower.base.Node; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class FilmCategoryTreeDTO extends Node { + + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "父分类名称") + private String parentName; + + @ApiModelProperty(value = "图标") + private String imageUrl; + + @ApiModelProperty(value = "颜色") + private String color; + + @ApiModelProperty(value = "排序") + private Integer sortBy; + + @ApiModelProperty(value = "是否展示") + private Boolean shown; + + @ApiModelProperty(value = "级别限制") + private String levelLimit; + + @ApiModelProperty(value = "子分类数量") + private Integer childrenCount; +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/dto/response/filmwork/FilmLocationVO.java b/src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java similarity index 97% rename from src/main/java/com/mzl/flower/dto/response/filmwork/FilmLocationVO.java rename to src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java index 806e919..390eaf7 100644 --- a/src/main/java/com/mzl/flower/dto/response/filmwork/FilmLocationVO.java +++ b/src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java @@ -1,4 +1,4 @@ -package com.mzl.flower.dto.response.filmwork; +package com.mzl.flower.dto.response.film; import com.mzl.flower.base.AbstractTransDTO; import com.mzl.flower.base.annotation.DictTrans; diff --git a/src/main/java/com/mzl/flower/dto/response/filmwork/FilmWorksVO.java b/src/main/java/com/mzl/flower/dto/response/film/FilmWorksVO.java similarity index 96% rename from src/main/java/com/mzl/flower/dto/response/filmwork/FilmWorksVO.java rename to src/main/java/com/mzl/flower/dto/response/film/FilmWorksVO.java index 17045ab..f909083 100644 --- a/src/main/java/com/mzl/flower/dto/response/filmwork/FilmWorksVO.java +++ b/src/main/java/com/mzl/flower/dto/response/film/FilmWorksVO.java @@ -1,4 +1,4 @@ -package com.mzl.flower.dto.response.filmwork; +package com.mzl.flower.dto.response.film; import com.mzl.flower.base.AbstractTransDTO; import com.mzl.flower.base.annotation.DictTrans; @@ -118,4 +118,6 @@ * 分享量 */ private Integer shareCount; + + private Integer classify; } diff --git a/src/main/java/com/mzl/flower/entity/film/FilmCategory.java b/src/main/java/com/mzl/flower/entity/film/FilmCategory.java new file mode 100644 index 0000000..ca4ee87 --- /dev/null +++ b/src/main/java/com/mzl/flower/entity/film/FilmCategory.java @@ -0,0 +1,38 @@ +package com.mzl.flower.entity.film; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mzl.flower.base.BaseAutoPhyEntity; +import lombok.Data; + +@Data +@TableName("t_film_category") +public class FilmCategory extends BaseAutoPhyEntity { + + @TableField("name") + private String name; + + @TableField("parent_id") + private Long parentId; + + @TableField("parent_name") + private String parentName; + + @TableField("type") + private String type; + + @TableField("code") + private String code; + + @TableField("sort_by") + private Integer sortBy; + + @TableField("image_url") + private String imageUrl; + + @TableField("shown") + private Boolean shown; + + @TableField("level_limit") + private String levelLimit; +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/mapper/film/FilmCategoryMapper.java b/src/main/java/com/mzl/flower/mapper/film/FilmCategoryMapper.java new file mode 100644 index 0000000..5a8c0be --- /dev/null +++ b/src/main/java/com/mzl/flower/mapper/film/FilmCategoryMapper.java @@ -0,0 +1,24 @@ +package com.mzl.flower.mapper.film; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mzl.flower.dto.request.film.FilmCategoryQueryDTO; +import com.mzl.flower.dto.response.film.FilmCategoryTreeDTO; +import com.mzl.flower.entity.film.FilmCategory; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface FilmCategoryMapper extends BaseMapper<FilmCategory> { + + /** + * 查询分类列表 + */ + List<FilmCategoryTreeDTO> selectCategoryList(FilmCategoryQueryDTO dto); + + /** + * 查询分类树列表 + */ + List<FilmCategoryTreeDTO> selectTreeList(FilmCategoryQueryDTO dto); +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/mapper/filmwork/FilmLocationMapper.java b/src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java similarity index 87% rename from src/main/java/com/mzl/flower/mapper/filmwork/FilmLocationMapper.java rename to src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java index 1c2c08f..9195636 100644 --- a/src/main/java/com/mzl/flower/mapper/filmwork/FilmLocationMapper.java +++ b/src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java @@ -1,4 +1,4 @@ -package com.mzl.flower.mapper.filmwork; +package com.mzl.flower.mapper.film; import com.mzl.flower.entity.film.FilmLocation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/src/main/java/com/mzl/flower/mapper/filmwork/FilmWorksMapper.java b/src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java similarity index 80% rename from src/main/java/com/mzl/flower/mapper/filmwork/FilmWorksMapper.java rename to src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java index 6b03a07..2abdb5f 100644 --- a/src/main/java/com/mzl/flower/mapper/filmwork/FilmWorksMapper.java +++ b/src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java @@ -1,8 +1,8 @@ -package com.mzl.flower.mapper.filmwork; +package com.mzl.flower.mapper.film; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.mzl.flower.dto.request.filmwork.FilmWorksQueryDTO; -import com.mzl.flower.dto.response.filmwork.FilmWorksVO; +import com.mzl.flower.dto.request.film.FilmWorksQueryDTO; +import com.mzl.flower.dto.response.film.FilmWorksVO; import com.mzl.flower.entity.film.FilmWorks; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; diff --git a/src/main/java/com/mzl/flower/service/film/FilmCategoryService.java b/src/main/java/com/mzl/flower/service/film/FilmCategoryService.java new file mode 100644 index 0000000..48c5fda --- /dev/null +++ b/src/main/java/com/mzl/flower/service/film/FilmCategoryService.java @@ -0,0 +1,129 @@ +package com.mzl.flower.service.film; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mzl.flower.base.Node; +import com.mzl.flower.config.exception.ValidationException; +import com.mzl.flower.config.security.SecurityUtils; +import com.mzl.flower.dto.request.film.FilmCategoryCreateDTO; +import com.mzl.flower.dto.request.film.FilmCategoryQueryDTO; +import com.mzl.flower.dto.request.film.FilmCategoryUpdateDTO; +import com.mzl.flower.dto.response.film.FilmCategoryDTO; +import com.mzl.flower.dto.response.film.FilmCategoryTreeDTO; +import com.mzl.flower.entity.film.FilmCategory; +import com.mzl.flower.mapper.film.FilmCategoryMapper; +import com.mzl.flower.service.BaseService; +import com.mzl.flower.utils.TreeBuilderUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Slf4j +@Service +@Transactional +public class FilmCategoryService extends BaseService { + + @Autowired + private FilmCategoryMapper categoryMapper; + + public Long addCategory(FilmCategoryCreateDTO dto) { + FilmCategory category = new FilmCategory(); + BeanUtils.copyProperties(dto, category); + category.setSortBy(dto.getSortBy() == null ? 0 : dto.getSortBy()); + category.create(SecurityUtils.getUserId()); + + if (category.getParentId() != null) { + FilmCategory parent = categoryMapper.selectById(category.getParentId()); + if (parent == null) { + throw new ValidationException("父分类不存在"); + } + category.setParentName(parent.getName()); + } + + categoryMapper.insert(category); + return category.getId(); + } + + public Long updateCategory(FilmCategoryUpdateDTO dto) { + Long id = dto.getId(); + FilmCategory category = categoryMapper.selectById(id); + if (category == null) { + throw new ValidationException("分类不存在"); + } + + Boolean shown = category.getShown(); + BeanUtils.copyProperties(dto, category); + category.setShown(shown); + category.setSortBy(dto.getSortBy() == null ? 0 : dto.getSortBy()); + category.update(SecurityUtils.getUserId()); + + category.setParentName(""); + if (category.getParentId() != null) { + FilmCategory parent = categoryMapper.selectById(category.getParentId()); + if (parent == null) { + throw new ValidationException("父分类不存在"); + } + category.setParentName(parent.getName()); + } + + categoryMapper.updateById(category); + return id; + } + + public FilmCategoryDTO getCategory(String id) { + FilmCategoryDTO dto = new FilmCategoryDTO(); + FilmCategory category = categoryMapper.selectById(id); + if (category == null) { + return null; + } + BeanUtils.copyProperties(category, dto); + return dto; + } + + public List<FilmCategoryTreeDTO> getCategoryList(FilmCategoryQueryDTO dto) { + return categoryMapper.selectCategoryList(dto); + } + + public List<FilmCategoryTreeDTO> getCategoryTree(FilmCategoryQueryDTO dto) { + List<FilmCategoryTreeDTO> treeList = categoryMapper.selectTreeList(dto); + treeList = (List<FilmCategoryTreeDTO>) TreeBuilderUtil.buildListToTree(treeList); + if (treeList != null && treeList.size() > 0) { + for (FilmCategoryTreeDTO t : treeList) { + List<Node> children = t.getChildren(); + String levelLimit = t.getLevelLimit(); + if (children != null && children.size() > 0) { + for (Node c : children) { + FilmCategoryTreeDTO child = (FilmCategoryTreeDTO) c; + child.setLevelLimit(levelLimit); + } + } + } + } + return treeList; + } + + public void deleteCategory(Long id) { + // 检查是否有子分类 + int count = categoryMapper.selectCount(new QueryWrapper<FilmCategory>() + .eq("parent_id", id) + .eq("deleted", 0)); + if (count > 0) { + throw new ValidationException("该分类包含子分类,请先删除子分类!"); + } + + categoryMapper.deleteById(id); + } + + public void setCategoryShown(Long id, Boolean shown) { + FilmCategory category = categoryMapper.selectById(id); + if (category == null) { + throw new ValidationException("分类不存在"); + } + + category.setShown(shown); + categoryMapper.updateById(category); + } +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/service/film/FilmLocationService.java b/src/main/java/com/mzl/flower/service/film/FilmLocationService.java index 2f165d9..a5cb2b2 100644 --- a/src/main/java/com/mzl/flower/service/film/FilmLocationService.java +++ b/src/main/java/com/mzl/flower/service/film/FilmLocationService.java @@ -1,9 +1,9 @@ package com.mzl.flower.service.film; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.mzl.flower.dto.request.filmwork.FilmLocationDTO; -import com.mzl.flower.dto.request.filmwork.FilmLocationQueryDTO; -import com.mzl.flower.dto.response.filmwork.FilmLocationVO; +import com.mzl.flower.dto.request.film.FilmLocationDTO; +import com.mzl.flower.dto.request.film.FilmLocationQueryDTO; +import com.mzl.flower.dto.response.film.FilmLocationVO; import com.mzl.flower.entity.film.FilmLocation; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/src/main/java/com/mzl/flower/service/film/FilmWorksService.java b/src/main/java/com/mzl/flower/service/film/FilmWorksService.java index fd3c843..06f610d 100644 --- a/src/main/java/com/mzl/flower/service/film/FilmWorksService.java +++ b/src/main/java/com/mzl/flower/service/film/FilmWorksService.java @@ -2,9 +2,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.dto.BatchDTO; -import com.mzl.flower.dto.request.filmwork.FilmWorksDTO; -import com.mzl.flower.dto.request.filmwork.FilmWorksQueryDTO; -import com.mzl.flower.dto.response.filmwork.FilmWorksVO; +import com.mzl.flower.dto.request.film.FilmWorksDTO; +import com.mzl.flower.dto.request.film.FilmWorksQueryDTO; +import com.mzl.flower.dto.response.film.FilmWorksVO; import com.mzl.flower.entity.film.FilmWorks; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/src/main/java/com/mzl/flower/service/film/impl/FilmLocationServiceImpl.java b/src/main/java/com/mzl/flower/service/film/impl/FilmLocationServiceImpl.java index 546e92b..66d6ada 100644 --- a/src/main/java/com/mzl/flower/service/film/impl/FilmLocationServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/film/impl/FilmLocationServiceImpl.java @@ -1,13 +1,11 @@ package com.mzl.flower.service.film.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.mzl.flower.dto.request.filmwork.FilmLocationDTO; -import com.mzl.flower.dto.request.filmwork.FilmLocationQueryDTO; -import com.mzl.flower.dto.response.filmwork.FilmLocationVO; +import com.mzl.flower.dto.request.film.FilmLocationDTO; +import com.mzl.flower.dto.request.film.FilmLocationQueryDTO; +import com.mzl.flower.dto.response.film.FilmLocationVO; import com.mzl.flower.entity.film.FilmLocation; -import com.mzl.flower.entity.film.FilmWorks; -import com.mzl.flower.mapper.filmwork.FilmLocationMapper; -import com.mzl.flower.mapper.filmwork.FilmWorksMapper; +import com.mzl.flower.mapper.film.FilmLocationMapper; import com.mzl.flower.service.film.FilmLocationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/mzl/flower/service/film/impl/FilmWorksServiceImpl.java b/src/main/java/com/mzl/flower/service/film/impl/FilmWorksServiceImpl.java index 7548242..45b4846 100644 --- a/src/main/java/com/mzl/flower/service/film/impl/FilmWorksServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/film/impl/FilmWorksServiceImpl.java @@ -5,15 +5,11 @@ import com.mzl.flower.config.exception.ValidationException; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.BatchDTO; -import com.mzl.flower.dto.request.filmwork.FilmWorksDTO; -import com.mzl.flower.dto.request.filmwork.FilmWorksQueryDTO; -import com.mzl.flower.dto.response.content.BannerDTO; -import com.mzl.flower.dto.response.content.FilmsetDTO; -import com.mzl.flower.dto.response.filmwork.FilmWorksVO; -import com.mzl.flower.entity.content.Banner; -import com.mzl.flower.entity.content.Filmset; +import com.mzl.flower.dto.request.film.FilmWorksDTO; +import com.mzl.flower.dto.request.film.FilmWorksQueryDTO; +import com.mzl.flower.dto.response.film.FilmWorksVO; import com.mzl.flower.entity.film.FilmWorks; -import com.mzl.flower.mapper.filmwork.FilmWorksMapper; +import com.mzl.flower.mapper.film.FilmWorksMapper; import com.mzl.flower.service.film.FilmWorksService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mzl.flower.utils.DateUtils; diff --git a/src/main/java/com/mzl/flower/web/film/FilmCategoryController.java b/src/main/java/com/mzl/flower/web/film/FilmCategoryController.java new file mode 100644 index 0000000..435bdac --- /dev/null +++ b/src/main/java/com/mzl/flower/web/film/FilmCategoryController.java @@ -0,0 +1,98 @@ +package com.mzl.flower.web.film; + +import com.mzl.flower.base.BaseController; +import com.mzl.flower.base.R; +import com.mzl.flower.base.ReturnDataDTO; +import com.mzl.flower.dto.request.film.FilmCategoryCreateDTO; +import com.mzl.flower.dto.request.film.FilmCategoryUpdateDTO; +import com.mzl.flower.dto.request.film.FilmCategoryQueryDTO; +import com.mzl.flower.dto.response.film.FilmCategoryDTO; +import com.mzl.flower.dto.response.film.FilmCategoryTreeDTO; +import com.mzl.flower.service.film.FilmCategoryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +@RestController +@RequestMapping("/api/film/category") +@Api(value = "片场分类管理", tags = "片场分类管理") +@Validated +@Slf4j +public class FilmCategoryController extends BaseController { + + @Autowired + private FilmCategoryService categoryService; + + @PostMapping("/tree/new") + @ApiOperation(value = "新增片场分类") + public ResponseEntity<ReturnDataDTO> addCategory(@RequestBody FilmCategoryCreateDTO dto) { + return returnData(R.SUCCESS.getCode(), categoryService.addCategory(dto)); + } + + @PostMapping("/tree/edit") + @ApiOperation(value = "编辑片场分类") + public ResponseEntity<ReturnDataDTO> updateCategory(@RequestBody FilmCategoryUpdateDTO dto) { + Long category = categoryService.updateCategory(dto); + return returnData(R.SUCCESS.getCode(), category); + } + + @GetMapping("/tree/view") + @ApiOperation(value = "查询片场分类详情") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "片场分类id", required = true, dataType = "String", paramType = "query") + }) + public ResponseEntity<ReturnDataDTO<FilmCategoryDTO>> getCategory(@NotBlank(message = "id不能为空") String id) { + return returnData(R.SUCCESS.getCode(), categoryService.getCategory(id)); + } + + @GetMapping("/tree") + @ApiOperation(value = "获取片场分类树") + public ResponseEntity<ReturnDataDTO<List<FilmCategoryTreeDTO>>> getCategoryTree(FilmCategoryQueryDTO dto) { + return returnData(R.SUCCESS.getCode(), categoryService.getCategoryTree(dto)); + } + + @GetMapping("/list") + @ApiOperation(value = "获取片场分类列表") + public ResponseEntity<ReturnDataDTO<List<FilmCategoryTreeDTO>>> getCategoryList(FilmCategoryQueryDTO dto) { + return returnData(R.SUCCESS.getCode(), categoryService.getCategoryList(dto)); + } + + @GetMapping("/tree/delete") + @ApiOperation(value = "删除片场分类") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "片场分类id", required = true, dataType = "Long", paramType = "query") + }) + public ResponseEntity<ReturnDataDTO<?>> deleteCategory(Long id) { + categoryService.deleteCategory(id); + return returnData(R.SUCCESS.getCode(), null); + } + + @GetMapping("/tree/shown") + @ApiOperation(value = "显示片场分类") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "片场分类id", required = true, dataType = "Long", paramType = "query") + }) + public ResponseEntity<ReturnDataDTO<?>> showCategory(Long id) { + categoryService.setCategoryShown(id, true); + return returnData(R.SUCCESS.getCode(), null); + } + + @GetMapping("/tree/hidden") + @ApiOperation(value = "隐藏片场分类") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "片场分类id", required = true, dataType = "Long", paramType = "query") + }) + public ResponseEntity<ReturnDataDTO<?>> hideCategory(Long id) { + categoryService.setCategoryShown(id, false); + return returnData(R.SUCCESS.getCode(), null); + } +} \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/web/film/FilmLocationController.java b/src/main/java/com/mzl/flower/web/film/FilmLocationController.java index 0de8e0f..df54f22 100644 --- a/src/main/java/com/mzl/flower/web/film/FilmLocationController.java +++ b/src/main/java/com/mzl/flower/web/film/FilmLocationController.java @@ -5,9 +5,9 @@ import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; -import com.mzl.flower.dto.request.filmwork.FilmLocationDTO; -import com.mzl.flower.dto.request.filmwork.FilmLocationQueryDTO; -import com.mzl.flower.dto.response.filmwork.FilmLocationVO; +import com.mzl.flower.dto.request.film.FilmLocationDTO; +import com.mzl.flower.dto.request.film.FilmLocationQueryDTO; +import com.mzl.flower.dto.response.film.FilmLocationVO; import com.mzl.flower.service.film.FilmLocationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/src/main/java/com/mzl/flower/web/film/FilmWorksController.java b/src/main/java/com/mzl/flower/web/film/FilmWorksController.java index dd1b7b4..68117b0 100644 --- a/src/main/java/com/mzl/flower/web/film/FilmWorksController.java +++ b/src/main/java/com/mzl/flower/web/film/FilmWorksController.java @@ -5,10 +5,9 @@ import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.dto.BatchDTO; -import com.mzl.flower.dto.request.filmwork.FilmWorksDTO; -import com.mzl.flower.dto.request.filmwork.FilmWorksQueryDTO; -import com.mzl.flower.dto.response.content.BannerDTO; -import com.mzl.flower.dto.response.filmwork.FilmWorksVO; +import com.mzl.flower.dto.request.film.FilmWorksDTO; +import com.mzl.flower.dto.request.film.FilmWorksQueryDTO; +import com.mzl.flower.dto.response.film.FilmWorksVO; import com.mzl.flower.service.film.FilmWorksService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/src/main/resources/mapper/film/FilmLocationMapper.xml b/src/main/resources/mapper/film/FilmLocationMapper.xml index dea9f98..b4e3033 100644 --- a/src/main/resources/mapper/film/FilmLocationMapper.xml +++ b/src/main/resources/mapper/film/FilmLocationMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.mzl.flower.mapper.filmwork.FilmLocationMapper"> +<mapper namespace="com.mzl.flower.mapper.film.FilmLocationMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.mzl.flower.entity.film.FilmLocation"> diff --git a/src/main/resources/mapper/film/FilmWorksMapper.xml b/src/main/resources/mapper/film/FilmWorksMapper.xml index 38fe88d..18d4e81 100644 --- a/src/main/resources/mapper/film/FilmWorksMapper.xml +++ b/src/main/resources/mapper/film/FilmWorksMapper.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.mzl.flower.mapper.filmwork.FilmWorksMapper"> +<mapper namespace="com.mzl.flower.mapper.film.FilmWorksMapper"> - <select id="queryPage" resultType="com.mzl.flower.dto.response.filmwork.FilmWorksVO"> + <select id="queryPage" resultType="com.mzl.flower.dto.response.film.FilmWorksVO"> select t.* from film_works t where t.deleted= 0 <if test="dto.nameCn != null and dto.nameCn != ''"> and t.name_cn like concat('%', #{dto.nameCn}, '%') @@ -13,6 +13,9 @@ <if test="dto.type != null and dto.type != ''"> and t.type = #{dto.type} </if> + <if test="dto.classify != null and dto.classify != ''"> + and t.classify = #{dto.classify} + </if> <if test="dto.createDateBegin!=null "> <![CDATA[ AND t.create_time >= #{dto.createDateBegin} -- Gitblit v1.9.3