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/dto/request/film/FilmLocationQueryDTO.java | 2 +
src/main/java/com/mzl/flower/entity/film/FilmLocation.java | 3 +
src/main/java/com/mzl/flower/service/film/impl/FilmLocationServiceImpl.java | 41 ++++++++++++++++++++
src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java | 19 +++++++++
src/main/resources/mapper/film/FilmLocationMapper.xml | 3 +
src/main/java/com/mzl/flower/web/film/FilmLocationController.java | 20 ++++++++++
src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java | 2 +
src/main/java/com/mzl/flower/service/film/FilmLocationService.java | 6 +++
8 files changed, 96 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/request/film/FilmLocationQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmLocationQueryDTO.java
index 2638daa..27f991f 100644
--- a/src/main/java/com/mzl/flower/dto/request/film/FilmLocationQueryDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/film/FilmLocationQueryDTO.java
@@ -20,4 +20,6 @@
@ApiModelProperty("启用/禁用(USER_ENABLED_OR_DISABLED)")
private Integer isEnabled;
+
+ private String continent;
}
diff --git a/src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java b/src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java
index e17aee7..4de2208 100644
--- a/src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java
@@ -144,5 +144,7 @@
private Integer operationWeight;
private String continent;
+ private String pinyin;
+ private String country;
}
diff --git a/src/main/java/com/mzl/flower/entity/film/FilmLocation.java b/src/main/java/com/mzl/flower/entity/film/FilmLocation.java
index 3cd3e7d..7616b4e 100644
--- a/src/main/java/com/mzl/flower/entity/film/FilmLocation.java
+++ b/src/main/java/com/mzl/flower/entity/film/FilmLocation.java
@@ -152,4 +152,7 @@
private String continent;
+ private String pinyin;
+ private String country;
+
}
diff --git a/src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java b/src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java
index 1aa3157..2604b5f 100644
--- a/src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/film/FilmLocationMapper.java
@@ -13,6 +13,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* <p>
@@ -46,4 +47,22 @@
@Select("select * from film_location where is_enabled = '1' and deleted = '0' order by location_weight desc limit 3")
List<FilmLocationVO> getFilmLocationListTop3();
+
+
+ @Select("select id,city,pinyin,country,continent from film_location WHERE continent = #{continent} and deleted = '0' and city is not NULL GROUP BY city,pinyin")
+ List<FilmLocationVO> getFilmLocationLifo(String continent);
+
+
+ @Select("select * from film_location WHERE city = #{city} and deleted = '0'")
+ List<FilmLocationVO> getFilmLocationByCity(String city);
+
+
+ @Select("<script>" +
+ "SELECT * FROM film_location " +
+ "WHERE id IN " +
+ "<foreach item='id' collection='list' open='(' separator=',' close=')'>" +
+ "#{id}" +
+ "</foreach>" +
+ "</script>")
+ List<FilmLocationVO> findLocationIdByids(@Param("list") List<Long> ids);
}
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 5fdab4d..86aa726 100644
--- a/src/main/java/com/mzl/flower/service/film/FilmLocationService.java
+++ b/src/main/java/com/mzl/flower/service/film/FilmLocationService.java
@@ -42,4 +42,10 @@
List<FilmWorksVO> related(Long locationId);
List<FilmLocationVO> getFilmLocationListTop3();
+
+ List<FilmLocationVO> getFilmLocationLifo(FilmLocationQueryDTO dto);
+
+ List<FilmWorksVO> city(String name);
+
+ List<FilmLocationVO> location(String name);
}
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 49a67a5..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
@@ -245,11 +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<>();
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 6e98f4f..4f4e218 100644
--- a/src/main/java/com/mzl/flower/web/film/FilmLocationController.java
+++ b/src/main/java/com/mzl/flower/web/film/FilmLocationController.java
@@ -42,6 +42,13 @@
return returnData(R.SUCCESS.getCode(), filmLocationService.queryPage(dto, page));
}
+ @GetMapping("/filmLocation/info")
+ @ApiOperation(value = "城市列表", httpMethod = "GET")
+ public ResponseEntity<ReturnDataDTO<List<FilmLocationVO>>> getFilmLocationLifo(FilmLocationQueryDTO dto) {
+ return returnData(R.SUCCESS.getCode(), filmLocationService.getFilmLocationLifo(dto));
+ }
+
+
@GetMapping("/filmLocation/getTop3")
@ApiOperation(value = "影视拍摄场地前三", httpMethod = "GET")
public ResponseEntity<ReturnDataDTO<List<FilmLocationVO>>> getFilmLocationListTop3() {
@@ -110,4 +117,17 @@
return returnData(R.SUCCESS.getCode(), filmLocationService.related(locationId));
}
+ @GetMapping("/filmLocation/city")
+ @ApiOperation(value = "城市对应的影视作品", notes = "城市对应的影视作品")
+ public ResponseEntity<ReturnDataDTO<List<FilmWorksVO>>> city(@NotNull(message = "name不能为空") String name) {
+ return returnData(R.SUCCESS.getCode(), filmLocationService.city(name));
+ }
+
+ @GetMapping("/filmLocation/location")
+ @ApiOperation(value = "城市对应的影视作品", notes = "城市对应的影视作品")
+ public ResponseEntity<ReturnDataDTO<List<FilmLocationVO>>> location(@NotNull(message = "name不能为空") String name) {
+ return returnData(R.SUCCESS.getCode(), filmLocationService.location(name));
+ }
+
+
}
diff --git a/src/main/resources/mapper/film/FilmLocationMapper.xml b/src/main/resources/mapper/film/FilmLocationMapper.xml
index 011a66a..0a616ae 100644
--- a/src/main/resources/mapper/film/FilmLocationMapper.xml
+++ b/src/main/resources/mapper/film/FilmLocationMapper.xml
@@ -21,6 +21,9 @@
<if test="dto.region != null and dto.region != ''">
AND t.region LIKE concat('%', #{dto.region},'%')
</if>
+ <if test="dto.continent != null and dto.continent != ''">
+ AND t.continent LIKE concat('%', #{dto.continent},'%')
+ </if>
<if test="dto.isEnabled!=null">
AND t.is_enabled = #{dto.isEnabled}
</if>
--
Gitblit v1.9.3