From 4eb33dda0f123279e9b9507c76c56d47f323472a Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 26 五月 2025 16:39:46 +0800
Subject: [PATCH] add:影视作品增加用户信息

---
 src/main/java/com/mzl/flower/service/film/FilmCategoryService.java |  129 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 129 insertions(+), 0 deletions(-)

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

--
Gitblit v1.9.3