From e7e0a1b534c9ac0ab76102a0ffc0939ba1d447ee Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期四, 07 八月 2025 13:39:22 +0800
Subject: [PATCH] add:热门城市

---
 src/main/java/com/mzl/flower/service/film/impl/FilmLocationServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 deletions(-)

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 4528c16..3222344 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
@@ -66,6 +66,13 @@
         BeanUtils.copyProperties(filmLocationDTO, filmLocation);
         filmLocation.create();
         filmLocationMapper.insert(filmLocation);
+        //此处传入参数是否有影视作品ID,如果不等于空,则需要保存关联关系
+        if (!StringUtils.isEmpty(filmLocationDTO.getFilmId())) {
+            FilmLocationWork filmLocationWork = new FilmLocationWork();
+            filmLocationWork.setFilmId(filmLocationDTO.getFilmId());
+            filmLocationWork.setLocationId(filmLocation.getId());
+            filmLocationWorkMapper.insert(filmLocationWork);
+        }
     }
 
     @Override
@@ -103,10 +110,10 @@
 
     @Override
     public Page<FilmLocationVO> queryPage(FilmLocationQueryDTO dto, Page page) {
-
         List<FilmLocationVO> list = filmLocationMapper.queryPage(dto, page);
         page.setRecords(list);
         return page;
+
     }
 
     @Override
@@ -238,6 +245,52 @@
         }
     }
 
+
+    @Override
+    public List<FilmWorksVO> city(String name) {
+        if(!StringUtils.isEmpty(name)){
+            List<FilmLocationVO> filmLocationVOS = filmLocationMapper.getFilmLocationByCity(name);
+            List<Long> ids = new ArrayList<>();
+            if(!CollectionUtils.isEmpty(filmLocationVOS)){
+                filmLocationVOS.forEach(f->ids.add(f.getId()));
+            }
+            Set<Long> filmIds = filmLocationWorkMapper.findFilmIdsWithWorks(ids);
+            if (!filmIds.isEmpty()) {
+                List<FilmWorksVO> filmWorksVOS = filmWorksMapper.getFilmWorksByIds(new ArrayList<>(filmIds));
+                return filmWorksVOS;
+            } else {
+                return null;
+            }
+        }else{
+            return null;
+        }
+    }
+
+    @Override
+    public List<FilmLocationVO> location(String name) {
+        if (!StringUtils.isEmpty(name)) {
+            List<FilmLocationVO> filmLocationVOS = filmLocationMapper.getFilmLocationByCity(name);
+            List<Long> ids = new ArrayList<>();
+            if (!CollectionUtils.isEmpty(filmLocationVOS)) {
+                filmLocationVOS.forEach(f -> ids.add(f.getId()));
+            }
+            List<FilmLocationVO> filmIds = filmLocationMapper.findLocationIdByids(ids);
+            return filmIds;
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public List<FilmLocationVO> getFilmLocationListTop3() {
+        return filmLocationMapper.getFilmLocationListTop3();
+    }
+
+    @Override
+    public List<FilmLocationVO> getFilmLocationLifo(FilmLocationQueryDTO dto) {
+        return filmLocationMapper.getFilmLocationLifo(dto.getContinent());
+    }
+
     private void updateLocationRelations(Long targetId, List<Long> mergeIds) {
         // 查询所有待更新的工作记录
         LambdaQueryWrapper<FilmLocationWork> query = new LambdaQueryWrapper<>();

--
Gitblit v1.9.3