From 8b02c916fec8819f4f1b27b21a26cca6c41b5f5d Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 14 七月 2025 09:54:05 +0800
Subject: [PATCH] add:定时任务配置,热门城市

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

diff --git a/src/main/java/com/mzl/flower/service/film/impl/FilmHotCityServiceImpl.java b/src/main/java/com/mzl/flower/service/film/impl/FilmHotCityServiceImpl.java
new file mode 100644
index 0000000..da0f4ec
--- /dev/null
+++ b/src/main/java/com/mzl/flower/service/film/impl/FilmHotCityServiceImpl.java
@@ -0,0 +1,132 @@
+package com.mzl.flower.service.film.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mzl.flower.config.exception.ValidationException;
+import com.mzl.flower.config.security.SecurityUtils;
+import com.mzl.flower.dto.BatchDTO;
+import com.mzl.flower.dto.request.film.FilmHotCityDTO;
+import com.mzl.flower.dto.request.film.FilmHotCityQueryDTO;
+import com.mzl.flower.dto.response.film.FilmHotCityVO;
+import com.mzl.flower.entity.film.FilmHotCity;
+import com.mzl.flower.mapper.film.FilmHotCityMapper;
+import com.mzl.flower.mapper.film.FilmWorksMapper;
+import com.mzl.flower.service.film.FilmHotCityService;
+import com.mzl.flower.service.system.RoleService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
+
+import java.util.*;
+
+/**
+ * <p>
+ * FilmHotCity热门城市表 服务实现类
+ * </p>
+ *
+ * @author generator@Fang
+ * @since 2025-05-20
+ */
+@Service
+@Transactional
+@RequiredArgsConstructor
+public class FilmHotCityServiceImpl extends ServiceImpl<FilmHotCityMapper, FilmHotCity> implements FilmHotCityService {
+
+    private final FilmHotCityMapper filmHotCityMapper;
+    private final RoleService roleService;
+    private final FilmWorksMapper filmWorksMapper;
+
+    @Override
+    public void saveFilmHotCity(FilmHotCityDTO filmHotCityDTO) {
+        //  转换
+        //增加保存时判断是否有城市名称
+        if (StringUtils.isEmpty(filmHotCityDTO.getName())) {
+            throw new ValidationException("城市名称不能为空");
+        }
+        FilmHotCity filmHotCity1 = filmHotCityMapper.selectByName(filmHotCityDTO.getName());
+        if (!ObjectUtils.isEmpty(filmHotCity1)) {
+            throw new ValidationException("城市名称重复");
+        }
+        FilmHotCity filmHotCity = new FilmHotCity();
+        BeanUtils.copyProperties(filmHotCityDTO, filmHotCity);
+        filmHotCity.setIsEnabled(false);
+        filmHotCity.create();
+        filmHotCityMapper.insert(filmHotCity);
+    }
+
+    @Override
+    public void updateFilmHotCity(FilmHotCityDTO filmHotCityDTO) {
+        if (StringUtils.isEmpty(filmHotCityDTO.getName())) {
+            throw new ValidationException("城市名称不能为空");
+        }
+
+        //增加修改时保存得城市名称是否有重复,排除当前这条
+        FilmHotCity filmHotCity1 = filmHotCityMapper.selectByName(filmHotCityDTO.getName());
+
+        FilmHotCity filmHotCity = filmHotCityMapper.selectById(filmHotCityDTO.getId());
+        if (!filmHotCity1.getId().equals(filmHotCity.getId())) {
+            throw new ValidationException("城市名称重复");
+        }
+        BeanUtils.copyProperties(filmHotCityDTO, filmHotCity, "isEnabled");
+        filmHotCity.update(SecurityUtils.getUserId());
+        filmHotCityMapper.updateById(filmHotCity);
+    }
+
+    @Override
+    public void deleteFilmHotCity(String id) {
+        FilmHotCity filmHotCity = filmHotCityMapper.selectById(id);
+        if (filmHotCity == null) {
+            throw new ValidationException("找不到id为" + id + "的城市");
+        }
+        filmHotCityMapper.deleteById(id);
+    }
+
+    @Override
+    public Page<FilmHotCityVO> queryPage(FilmHotCityQueryDTO dto, Page page) {
+
+        List<FilmHotCityVO> list = filmHotCityMapper.queryPage(dto, page);
+        page.setRecords(list);
+        return page;
+    }
+
+    @Override
+    public FilmHotCityVO detail(Long id) {
+        FilmHotCityVO filmHotCityVO = filmHotCityMapper.selectByIdInfo(id);
+        if (filmHotCityVO == null) {
+            return null;
+        }
+        return filmHotCityVO;
+    }
+
+
+    @Override
+    public void isEnable(Long id) {
+        FilmHotCity filmHotCity = filmHotCityMapper.selectById(id);
+        if (filmHotCity == null) {
+            throw new ValidationException("找不到id为" + id + "的城市");
+        }
+        if (filmHotCity.getIsEnabled()) {
+            filmHotCity.setIsEnabled(false);
+        } else {
+            filmHotCity.setIsEnabled(true);
+        }
+        filmHotCity.update(SecurityUtils.getUserId());
+        filmHotCityMapper.updateById(filmHotCity);
+    }
+
+
+    @Override
+    @Transactional
+    public void batchDelete(BatchDTO dto) {
+        if (CollectionUtils.isEmpty(dto.getIds())) {
+            throw new ValidationException("删除ID列表不能为空");
+        }
+        filmHotCityMapper.deleteBatchIds(dto.getIds());
+    }
+
+
+}

--
Gitblit v1.9.3