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