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