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/service/film/impl/FilmWorksServiceImpl.java |   75 ++++++++++++++++++++++++++++++++++---
 1 files changed, 68 insertions(+), 7 deletions(-)

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 10d204b..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
@@ -1,18 +1,25 @@
 package com.mzl.flower.service.film.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-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.config.exception.ValidationException;
+import com.mzl.flower.constant.Constants;
+import com.mzl.flower.dto.BatchDTO;
+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;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -36,6 +43,7 @@
         FilmWorks filmWorks = new FilmWorks();
         BeanUtils.copyProperties(filmWorksDTO, filmWorks);
         filmWorks.create();
+        filmWorks.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name());
         filmWorksMapper.insert(filmWorks);
     }
 
@@ -46,16 +54,69 @@
 
     @Override
     public void deleteFilmWorks(String id) {
-
+        FilmWorks filmWork = filmWorksMapper.selectById(id);
+        if(filmWork==null){
+            throw new ValidationException("找不到id为"+id+"的影视作品");
+        }
+        filmWorksMapper.deleteById(id);
     }
 
     @Override
-    public Page<FilmWorksVO> queryPage(FilmWorksQueryDTO filmWorksQueryDTO, Page page) {
-        return null;
+    public Page<FilmWorksVO> queryPage(FilmWorksQueryDTO dto, Page page) {
+        if(StringUtils.isNotBlank(dto.getCreateDateBeginStr())){
+            dto.setCreateDateBegin(DateUtils.dateToLocalDateTime(dto.getCreateDateBeginStr(),true));
+        }
+        if(StringUtils.isNotBlank(dto.getCreateDateEndStr())){
+            dto.setCreateDateEnd(DateUtils.dateToLocalDateTime(dto.getCreateDateEndStr(),false));
+        }
+        List<FilmWorksVO> list =  filmWorksMapper.queryPage(dto,page);
+        page.setRecords(list);
+        return page;
     }
 
     @Override
     public List<FilmWorksVO> getFilmWorksAll() {
         return filmWorksMapper.getFilmWorksAll();
     }
+
+    @Override
+    public void changeStatus(Long id) {
+        FilmWorks filmWork = filmWorksMapper.selectById(id);
+        if (filmWork == null) {
+            throw new ValidationException("找不到id为" + id + "的公告");
+        }
+        if (Constants.COMMON_PUBLISH_STATUS.published.name().equals(filmWork.getStatus())) {
+            filmWork.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name());
+        } else {
+            filmWork.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name());
+            filmWork.setPublishDate(LocalDate.now());
+        }
+        filmWorksMapper.updateById(filmWork);
+    }
+
+    @Override
+    public void batchDelete(BatchDTO dto) {
+        filmWorksMapper.deleteBatchIds(dto.getIds());
+    }
+
+    @Override
+    public void batchPublish(BatchDTO dto) {
+        List<FilmWorks> list = filmWorksMapper.selectList(new LambdaQueryWrapper<FilmWorks>().in(FilmWorks::getId, dto.getIds()));
+        for (FilmWorks filmWork : list) {
+            filmWork.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name());
+            filmWork.setPublishDate(LocalDate.now());
+            filmWorksMapper.updateById(filmWork);
+        }
+    }
+
+    @Override
+    public FilmWorksVO detail(Long id) {
+        FilmWorks filmWork = filmWorksMapper.selectById(id);
+        if(filmWork==null){
+            return null;
+        }
+        FilmWorksVO filmWorksVO = new FilmWorksVO();
+        BeanUtils.copyProperties(filmWork,filmWorksVO);
+        return filmWorksVO;
+    }
 }

--
Gitblit v1.9.3