From 6392e2a39c07d13066a115e294a87a8cce1cb11e Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期二, 29 七月 2025 16:49:04 +0800 Subject: [PATCH] add: --- src/main/resources/mapper/film/FilmCollectsMapper.xml | 25 ++++++++ src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java | 2 src/main/java/com/mzl/flower/entity/film/FilmLocation.java | 3 + src/main/java/com/mzl/flower/service/film/impl/FilmLocationServiceImpl.java | 2 src/main/java/com/mzl/flower/service/film/impl/FilmWorksServiceImpl.java | 32 ++++++---- src/main/java/com/mzl/flower/web/film/FilmWorksController.java | 12 ++++ src/main/java/com/mzl/flower/constant/Constants.java | 2 src/main/java/com/mzl/flower/service/customer/CustomerService.java | 4 + src/main/java/com/mzl/flower/dto/response/film/FilmLocationVO.java | 2 src/main/resources/mapper/film/FilmWorksMapper.xml | 53 +++++++++++++++++ src/main/java/com/mzl/flower/service/film/impl/FilmCollectsServiceImpl.java | 8 ++ src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java | 4 + src/main/java/com/mzl/flower/service/film/FilmWorksService.java | 2 src/main/java/com/mzl/flower/mapper/film/FilmCollectsMapper.java | 6 ++ 14 files changed, 138 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/mzl/flower/constant/Constants.java b/src/main/java/com/mzl/flower/constant/Constants.java index f700953..beb7f8d 100644 --- a/src/main/java/com/mzl/flower/constant/Constants.java +++ b/src/main/java/com/mzl/flower/constant/Constants.java @@ -811,6 +811,4 @@ - - } diff --git a/src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java b/src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java index 7f567d7..9946f00 100644 --- a/src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/film/FilmLocationDTO.java @@ -143,4 +143,6 @@ */ private String updateBy; + 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 3834ad0..e17aee7 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 @@ -143,4 +143,6 @@ */ private Integer operationWeight; + private String continent; + } 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 1b7c8a6..3cd3e7d 100644 --- a/src/main/java/com/mzl/flower/entity/film/FilmLocation.java +++ b/src/main/java/com/mzl/flower/entity/film/FilmLocation.java @@ -149,4 +149,7 @@ */ private Integer operationWeight; + + private String continent; + } diff --git a/src/main/java/com/mzl/flower/mapper/film/FilmCollectsMapper.java b/src/main/java/com/mzl/flower/mapper/film/FilmCollectsMapper.java index a1e32e9..bce905f 100644 --- a/src/main/java/com/mzl/flower/mapper/film/FilmCollectsMapper.java +++ b/src/main/java/com/mzl/flower/mapper/film/FilmCollectsMapper.java @@ -1,6 +1,9 @@ package com.mzl.flower.mapper.film; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.dto.request.film.FilmCollectsQueryDTO; +import com.mzl.flower.dto.response.film.FilmCollectsVO; import com.mzl.flower.entity.film.FilmCollects; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -8,6 +11,7 @@ import org.springframework.stereotype.Repository; import java.time.LocalDate; +import java.util.List; /** * <p> @@ -30,4 +34,6 @@ @Select("SELECT COUNT(*) FROM film_collects WHERE film_id = #{filmId} AND DATE(create_time) = #{date} and deleted = '0' ") int countByFilmIdAndDate(Long id, LocalDate yesterday); + + List<FilmCollectsVO> queryPage(@Param("dto")FilmCollectsQueryDTO dto, Page page); } diff --git a/src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java b/src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java index 3aeff4b..7527f89 100644 --- a/src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java +++ b/src/main/java/com/mzl/flower/mapper/film/FilmWorksMapper.java @@ -50,4 +50,8 @@ @Select("select * from film_works where deleted = '0' and name_cn = #{nameCn} and type = #{type} and release_year = #{releaseYear} limit 1") FilmWorks getFilmWorksByName(@Param("nameCn") String nameCn, @Param("type")String type, @Param("releaseYear") String releaseYear); + + List<FilmWorksVO> getFilmWorksCollectList(@Param("dto")FilmWorksQueryDTO dto, Page page); + + List<FilmWorksVO> getFilmWorksLikeList(@Param("dto")FilmWorksQueryDTO dto, Page page); } diff --git a/src/main/java/com/mzl/flower/service/customer/CustomerService.java b/src/main/java/com/mzl/flower/service/customer/CustomerService.java index 91f59f1..5f42395 100644 --- a/src/main/java/com/mzl/flower/service/customer/CustomerService.java +++ b/src/main/java/com/mzl/flower/service/customer/CustomerService.java @@ -99,6 +99,8 @@ customerMapper.insert(customer); } else {//重新修改 customer = customerMapper.selectById(dto.getId()); + String tempUserId = customer.getUserId(); + Boolean tempIsMember = customer.getIsMember(); if (customer == null) { throw new ValidationException("商户信息不存在"); } @@ -110,6 +112,8 @@ customer.setPartnerId(byPartnerId.getId()); } customer.update(SecurityUtils.getUserId()); + customer.setIsMember(tempIsMember); + customer.setUserId(tempUserId); customerMapper.updateById(customer); } diff --git a/src/main/java/com/mzl/flower/service/film/FilmWorksService.java b/src/main/java/com/mzl/flower/service/film/FilmWorksService.java index 5a159b1..af79e26 100644 --- a/src/main/java/com/mzl/flower/service/film/FilmWorksService.java +++ b/src/main/java/com/mzl/flower/service/film/FilmWorksService.java @@ -26,6 +26,8 @@ void deleteFilmWorks(String id); Page<FilmWorksVO> queryPage(FilmWorksQueryDTO filmWorksQueryDTO, Page page); + Page<FilmWorksVO> getFilmWorksCollectList(FilmWorksQueryDTO filmWorksQueryDTO, Page page); + Page<FilmWorksVO> getFilmWorksLikeList(FilmWorksQueryDTO filmWorksQueryDTO, Page page); List<FilmWorksVO> getFilmWorksAll(); diff --git a/src/main/java/com/mzl/flower/service/film/impl/FilmCollectsServiceImpl.java b/src/main/java/com/mzl/flower/service/film/impl/FilmCollectsServiceImpl.java index 5b66fb0..44587ea 100644 --- a/src/main/java/com/mzl/flower/service/film/impl/FilmCollectsServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/film/impl/FilmCollectsServiceImpl.java @@ -7,6 +7,7 @@ import com.mzl.flower.dto.request.film.FilmCollectsDTO; import com.mzl.flower.dto.request.film.FilmCollectsQueryDTO; import com.mzl.flower.dto.response.film.FilmCollectsVO; +import com.mzl.flower.dto.response.film.FilmLocationVO; import com.mzl.flower.entity.film.FilmCollects; import com.mzl.flower.mapper.film.FilmCollectsMapper; import com.mzl.flower.service.film.FilmCollectsService; @@ -14,6 +15,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.List; /** * <p> @@ -77,7 +79,9 @@ } @Override - public Page<FilmCollectsVO> queryPage(FilmCollectsQueryDTO filmCollectsQueryDTO, Page page) { - return null; + public Page<FilmCollectsVO> queryPage(FilmCollectsQueryDTO dto, Page page) { + List<FilmCollectsVO> list = filmCollectsMapper.queryPage(dto, page); + page.setRecords(list); + return page; } } 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 507a3d3..49a67a5 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 @@ -110,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 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 f777319..881e5eb 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 @@ -143,21 +143,25 @@ dto.setUserId(null); } List<FilmWorksVO> list = filmWorksMapper.queryPage(dto,page); - // 测试前端展示用代码,部署发布不适用 -// list.forEach(l->{ -// if (l.getCoverUrl().contains("doubanio")) { -// String encodedUrl = null; -// try { -// encodedUrl = URLEncoder.encode(l.getCoverUrl(), String.valueOf(StandardCharsets.UTF_8)); -// } catch (UnsupportedEncodingException e) { -// throw new RuntimeException(e); -// } -// l.setCoverUrl("https://images.weserv.nl/?url=" + encodedUrl); -// } -// }); page.setRecords(list); + return page; + } + + @Override + public Page<FilmWorksVO> getFilmWorksCollectList(FilmWorksQueryDTO dto, Page page) { + dto.setUserId(SecurityUtils.getUserId()); + List<FilmWorksVO> list = filmWorksMapper.getFilmWorksCollectList(dto, page); + page.setRecords(list); + return page; + } + + @Override + public Page<FilmWorksVO> getFilmWorksLikeList(FilmWorksQueryDTO dto, Page page) { + dto.setUserId(SecurityUtils.getUserId()); + List<FilmWorksVO> list = filmWorksMapper.getFilmWorksLikeList(dto, page); + page.setRecords(list); return page; } @@ -215,10 +219,10 @@ if (filmWork == null) { throw new ValidationException("找不到id为" + id + "的作品"); } - if (Constants.COMMON_PUBLISH_STATUS.pending_create.name().equals(filmWork.getStatus()) || Constants.COMMON_PUBLISH_STATUS.create_cancel.name().equals(filmWork.getStatus()) || Constants.COMMON_PUBLISH_STATUS.create_failed.name().equals(filmWork.getStatus())) { + if (Constants.COMMON_PUBLISH_STATUS.pending_create.name().equals(filmWork.getStatus()) || Constants.COMMON_PUBLISH_STATUS.create_cancel.name().equals(filmWork.getStatus()) || Constants.COMMON_PUBLISH_STATUS.rejected.name().equals(filmWork.getStatus()) || Constants.COMMON_PUBLISH_STATUS.create_failed.name().equals(filmWork.getStatus())) { if (Constants.COMMON_PUBLISH_STATUS.create_cancel.name().equals(filmWork.getStatus())) { filmWork.setStatus(Constants.COMMON_PUBLISH_STATUS.pending_create.name()); - } else if (Constants.COMMON_PUBLISH_STATUS.create_failed.name().equals(filmWork.getStatus())) { + } else if (Constants.COMMON_PUBLISH_STATUS.create_failed.name().equals(filmWork.getStatus()) || Constants.COMMON_PUBLISH_STATUS.rejected.name().equals(filmWork.getStatus()) ) { filmWork.setStatus(Constants.COMMON_PUBLISH_STATUS.pending_create.name()); } else { filmWork.setStatus(Constants.COMMON_PUBLISH_STATUS.create_cancel.name()); diff --git a/src/main/java/com/mzl/flower/web/film/FilmWorksController.java b/src/main/java/com/mzl/flower/web/film/FilmWorksController.java index 39235b4..5449ce4 100644 --- a/src/main/java/com/mzl/flower/web/film/FilmWorksController.java +++ b/src/main/java/com/mzl/flower/web/film/FilmWorksController.java @@ -52,6 +52,18 @@ return returnData(R.SUCCESS.getCode(), filmWorksService.queryPage(dto, page)); } + @GetMapping("/filmWorks/collect/list") + @ApiOperation(value = "个人影视作品收藏列表", httpMethod = "GET") + public ResponseEntity<ReturnDataDTO<Page<FilmWorksVO>>> getFilmWorksCollectList(Page page, FilmWorksQueryDTO dto) { + return returnData(R.SUCCESS.getCode(), filmWorksService.getFilmWorksCollectList(dto, page)); + } + + @GetMapping("/filmWorks/like/list") + @ApiOperation(value = "个人影视作品点赞列表", httpMethod = "GET") + public ResponseEntity<ReturnDataDTO<Page<FilmWorksVO>>> getFilmWorksLikeList(Page page, FilmWorksQueryDTO dto) { + return returnData(R.SUCCESS.getCode(), filmWorksService.getFilmWorksLikeList(dto, page)); + } + @GetMapping(value = "/filmWorks/delete") @ApiOperation(value = "删除影视作品 ", httpMethod = "GET", notes = "ID") diff --git a/src/main/resources/mapper/film/FilmCollectsMapper.xml b/src/main/resources/mapper/film/FilmCollectsMapper.xml index bd18a86..5a133ca 100644 --- a/src/main/resources/mapper/film/FilmCollectsMapper.xml +++ b/src/main/resources/mapper/film/FilmCollectsMapper.xml @@ -2,4 +2,29 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mzl.flower.mapper.film.FilmCollectsMapper"> + <select id="queryPage" resultType="com.mzl.flower.dto.response.film.FilmCollectsVO"> + SELECT + t.* + FROM + film_location t + WHERE + t.deleted = 0 + <if test="dto.locationName != null and dto.locationName != ''"> + AND t.location_name LIKE concat('%', #{dto.locationName},'%') + </if> + <if test="dto.province != null and dto.province != ''"> + AND t.province LIKE concat('%', #{dto.province},'%') + </if> + <if test="dto.city != null and dto.city != ''"> + AND t.city LIKE concat('%', #{dto.city},'%') + </if> + <if test="dto.region != null and dto.region != ''"> + AND t.region LIKE concat('%', #{dto.region},'%') + </if> + <if test="dto.isEnabled!=null"> + AND t.is_enabled = #{dto.isEnabled} + </if> + ORDER BY + t.location_weight DESC + </select> </mapper> diff --git a/src/main/resources/mapper/film/FilmWorksMapper.xml b/src/main/resources/mapper/film/FilmWorksMapper.xml index fdcdac5..f77600e 100644 --- a/src/main/resources/mapper/film/FilmWorksMapper.xml +++ b/src/main/resources/mapper/film/FilmWorksMapper.xml @@ -150,4 +150,57 @@ t.update_time DESC </select> + + <select id="getFilmWorksCollectList" resultType="com.mzl.flower.dto.response.film.FilmWorksVO"> + SELECT fw.*, + c.name AS nickname, + c.cover AS avatar, + COALESCE(l.like_count, 0) AS vo_like_count + FROM film_works fw + JOIN ( + SELECT DISTINCT film_id + FROM film_collects + WHERE 1=1 + AND create_by = #{dto.userId} and status = '1' + ) fc ON fw.id = fc.film_id + LEFT JOIN + t_customer_info c + ON + fw.create_by = c.user_id + LEFT JOIN ( + SELECT film_id, COUNT(*) AS like_count + FROM film_likes + WHERE status = 1 + GROUP BY film_id + ) l ON fw.id = l.film_id + WHERE fw.deleted = '0' + AND fw.`status` = 'published' + </select> + + <select id="getFilmWorksLikeList" resultType="com.mzl.flower.dto.response.film.FilmWorksVO"> + SELECT fw.*, + c.name AS nickname, + c.cover AS avatar, + COALESCE(l.like_count, 0) AS vo_like_count + FROM film_works fw + JOIN ( + SELECT DISTINCT film_id + FROM film_likes + WHERE 1=1 + AND create_by = #{dto.userId} and status = '1' + ) fc ON fw.id = fc.film_id + LEFT JOIN + t_customer_info c + ON + fw.create_by = c.user_id + LEFT JOIN ( + SELECT film_id, COUNT(*) AS like_count + FROM film_likes + WHERE status = 1 + GROUP BY film_id + ) l ON fw.id = l.film_id + WHERE fw.deleted = '0' + AND fw.`status` = 'published' + </select> + </mapper> -- Gitblit v1.9.3