Commit 8ed52701fd0c651b609c632b35447f572c1c0628

Authored by YunaiV
1 parent 4b643a7b

调整商品收藏的命名

yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/AppFavoriteController.java
1 package cn.iocoder.yudao.module.product.controller.app.favorite; 1 package cn.iocoder.yudao.module.product.controller.app.favorite;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
6 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoritePageReqVO; 6 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoritePageReqVO;
7 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO; 7 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO;
8 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteRespVO; 8 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteRespVO;
@@ -17,11 +17,11 @@ import org.springframework.web.bind.annotation.*; @@ -17,11 +17,11 @@ import org.springframework.web.bind.annotation.*;
17 17
18 import javax.annotation.Resource; 18 import javax.annotation.Resource;
19 import javax.validation.Valid; 19 import javax.validation.Valid;
20 -  
21 import java.util.List; 20 import java.util.List;
22 import java.util.Objects; 21 import java.util.Objects;
23 22
24 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 23 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  24 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
25 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; 25 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
26 26
27 @Tag(name = "用户 APP - 商品收藏") 27 @Tag(name = "用户 APP - 商品收藏")
@@ -51,17 +51,19 @@ public class AppFavoriteController { @@ -51,17 +51,19 @@ public class AppFavoriteController {
51 @GetMapping(value = "/page") 51 @GetMapping(value = "/page")
52 @Operation(summary = "分页获取商品收藏列表") 52 @Operation(summary = "分页获取商品收藏列表")
53 public CommonResult<PageResult<AppFavoriteRespVO>> getFavoritePage(AppFavoritePageReqVO reqVO) { 53 public CommonResult<PageResult<AppFavoriteRespVO>> getFavoritePage(AppFavoritePageReqVO reqVO) {
54 - PageResult<ProductFavoriteDO> favorites = productFavoriteService.getFavoritePage(getLoginUserId(), reqVO);  
55 - if (favorites.getTotal() <= 0) { 54 + PageResult<ProductFavoriteDO> favoritePage = productFavoriteService.getFavoritePage(getLoginUserId(), reqVO);
  55 + if (CollUtil.isEmpty(favoritePage.getList())) {
56 return success(PageResult.empty()); 56 return success(PageResult.empty());
57 } 57 }
58 - List<ProductFavoriteDO> productFavoriteList = favorites.getList(); 58 +
59 // 得到商品 spu 信息 59 // 得到商品 spu 信息
60 - List<Long> spuIds = CollectionUtils.convertList(productFavoriteList, ProductFavoriteDO::getSpuId);  
61 - List<ProductSpuDO> spuList = productSpuService.getSpuList(spuIds);  
62 - //转换 VO  
63 - PageResult<AppFavoriteRespVO> pageResult = new PageResult<>(favorites.getTotal());  
64 - pageResult.setList(ProductFavoriteConvert.INSTANCE.convertList(productFavoriteList, spuList)); 60 + List<ProductFavoriteDO> favorites = favoritePage.getList();
  61 + List<Long> spuIds = convertList(favorites, ProductFavoriteDO::getSpuId);
  62 + List<ProductSpuDO> spus = productSpuService.getSpuList(spuIds);
  63 +
  64 + // 转换 VO 结果
  65 + PageResult<AppFavoriteRespVO> pageResult = new PageResult<>(favoritePage.getTotal());
  66 + pageResult.setList(ProductFavoriteConvert.INSTANCE.convertList(favorites, spus));
65 return success(pageResult); 67 return success(pageResult);
66 } 68 }
67 69
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/favorite/vo/AppFavoriteReqVO.java
@@ -9,7 +9,7 @@ import javax.validation.constraints.NotNull; @@ -9,7 +9,7 @@ import javax.validation.constraints.NotNull;
9 9
10 import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; 10 import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;
11 11
12 -@Schema(description = "用户 APP - 商品收藏 Request VO") // 用于收藏、取消收藏, 获取收藏 12 +@Schema(description = "用户 APP - 商品收藏 Request VO") // 用于收藏、取消收藏、获取收藏
13 @Data 13 @Data
14 public class AppFavoriteReqVO { 14 public class AppFavoriteReqVO {
15 15
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/favorite/ProductFavoriteConvert.java
1 package cn.iocoder.yudao.module.product.convert.favorite; 1 package cn.iocoder.yudao.module.product.convert.favorite;
2 2
3 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
4 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO; 3 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO;
5 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteRespVO; 4 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteRespVO;
6 import cn.iocoder.yudao.module.product.dal.dataobject.favorite.ProductFavoriteDO; 5 import cn.iocoder.yudao.module.product.dal.dataobject.favorite.ProductFavoriteDO;
@@ -13,6 +12,8 @@ import java.util.ArrayList; @@ -13,6 +12,8 @@ import java.util.ArrayList;
13 import java.util.List; 12 import java.util.List;
14 import java.util.Map; 13 import java.util.Map;
15 14
  15 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  16 +
16 @Mapper 17 @Mapper
17 public interface ProductFavoriteConvert { 18 public interface ProductFavoriteConvert {
18 19
@@ -20,17 +21,18 @@ public interface ProductFavoriteConvert { @@ -20,17 +21,18 @@ public interface ProductFavoriteConvert {
20 21
21 ProductFavoriteDO convert(Long userId, AppFavoriteReqVO reqVO); 22 ProductFavoriteDO convert(Long userId, AppFavoriteReqVO reqVO);
22 23
23 - @Mapping(target = "id", source = "favoriteDO.id")  
24 - @Mapping(target = "spuName", source = "spuDO.name")  
25 - AppFavoriteRespVO convert(ProductSpuDO spuDO, ProductFavoriteDO favoriteDO); 24 + @Mapping(target = "id", source = "favorite.id")
  25 + @Mapping(target = "spuName", source = "spu.name")
  26 + AppFavoriteRespVO convert(ProductSpuDO spu, ProductFavoriteDO favorite);
26 27
27 - default List<AppFavoriteRespVO> convertList(List<ProductFavoriteDO> productFavoriteDOList, List<ProductSpuDO> productSpuDOList) {  
28 - List<AppFavoriteRespVO> resultList = new ArrayList<>(productFavoriteDOList.size());  
29 - Map<Long, ProductSpuDO> spuMap = CollectionUtils.convertMap(productSpuDOList, ProductSpuDO::getId);  
30 - for (ProductFavoriteDO item : productFavoriteDOList) {  
31 - ProductSpuDO spuDO = spuMap.get(item.getSpuId());  
32 - resultList.add(convert(spuDO, item)); 28 + default List<AppFavoriteRespVO> convertList(List<ProductFavoriteDO> favorites, List<ProductSpuDO> spus) {
  29 + List<AppFavoriteRespVO> resultList = new ArrayList<>(favorites.size());
  30 + Map<Long, ProductSpuDO> spuMap = convertMap(spus, ProductSpuDO::getId);
  31 + for (ProductFavoriteDO favorite : favorites) {
  32 + ProductSpuDO spuDO = spuMap.get(favorite.getSpuId());
  33 + resultList.add(convert(spuDO, favorite));
33 } 34 }
34 return resultList; 35 return resultList;
35 } 36 }
  37 +
36 } 38 }
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/favorite/ProductFavoriteMapper.java
1 package cn.iocoder.yudao.module.product.dal.mysql.favorite; 1 package cn.iocoder.yudao.module.product.dal.mysql.favorite;
2 2
3 -import cn.hutool.core.lang.Assert;  
4 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
@@ -13,9 +12,6 @@ import org.apache.ibatis.annotations.Mapper; @@ -13,9 +12,6 @@ import org.apache.ibatis.annotations.Mapper;
13 public interface ProductFavoriteMapper extends BaseMapperX<ProductFavoriteDO> { 12 public interface ProductFavoriteMapper extends BaseMapperX<ProductFavoriteDO> {
14 13
15 default ProductFavoriteDO selectByUserAndSpuAndType(Long userId, Long spuId, Integer type) { 14 default ProductFavoriteDO selectByUserAndSpuAndType(Long userId, Long spuId, Integer type) {
16 - Assert.notNull(userId, "the userId must not be null");  
17 - Assert.notNull(spuId, "the spuId must not be null");  
18 - Assert.notNull(type, "the type must not be null");  
19 return selectOne(new LambdaQueryWrapperX<ProductFavoriteDO>() 15 return selectOne(new LambdaQueryWrapperX<ProductFavoriteDO>()
20 .eq(ProductFavoriteDO::getUserId, userId) 16 .eq(ProductFavoriteDO::getUserId, userId)
21 .eq(ProductFavoriteDO::getSpuId, spuId) 17 .eq(ProductFavoriteDO::getSpuId, spuId)
@@ -23,9 +19,6 @@ public interface ProductFavoriteMapper extends BaseMapperX&lt;ProductFavoriteDO&gt; { @@ -23,9 +19,6 @@ public interface ProductFavoriteMapper extends BaseMapperX&lt;ProductFavoriteDO&gt; {
23 } 19 }
24 20
25 default PageResult<ProductFavoriteDO> selectPageByUserAndType(Long userId, Integer type, PageParam pageParam) { 21 default PageResult<ProductFavoriteDO> selectPageByUserAndType(Long userId, Integer type, PageParam pageParam) {
26 - Assert.notNull(userId, "the userId must not be null");  
27 - Assert.notNull(type, "the type must not be null");  
28 - Assert.notNull(pageParam, "the pageParam must not be null");  
29 return selectPage(pageParam, new LambdaQueryWrapper<ProductFavoriteDO>() 22 return selectPage(pageParam, new LambdaQueryWrapper<ProductFavoriteDO>()
30 .eq(ProductFavoriteDO::getUserId, userId) 23 .eq(ProductFavoriteDO::getUserId, userId)
31 .eq(ProductFavoriteDO::getType, type) 24 .eq(ProductFavoriteDO::getType, type)
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/favorite/ProductFavoriteServiceImpl.java
1 package cn.iocoder.yudao.module.product.service.favorite; 1 package cn.iocoder.yudao.module.product.service.favorite;
2 2
3 -import cn.hutool.core.lang.Assert;  
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
6 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoritePageReqVO; 4 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoritePageReqVO;
7 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO; 5 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO;
8 import cn.iocoder.yudao.module.product.convert.favorite.ProductFavoriteConvert; 6 import cn.iocoder.yudao.module.product.convert.favorite.ProductFavoriteConvert;
9 import cn.iocoder.yudao.module.product.dal.dataobject.favorite.ProductFavoriteDO; 7 import cn.iocoder.yudao.module.product.dal.dataobject.favorite.ProductFavoriteDO;
10 -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;  
11 import cn.iocoder.yudao.module.product.dal.mysql.favorite.ProductFavoriteMapper; 8 import cn.iocoder.yudao.module.product.dal.mysql.favorite.ProductFavoriteMapper;
12 -import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteRespVO;  
13 -import cn.iocoder.yudao.module.product.service.spu.ProductSpuService;  
14 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
15 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
16 11
17 import javax.annotation.Resource; 12 import javax.annotation.Resource;
18 import javax.validation.Valid; 13 import javax.validation.Valid;
19 -import java.util.ArrayList;  
20 -import java.util.List;  
21 -import java.util.Map;  
22 import java.util.Objects; 14 import java.util.Objects;
23 15
24 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 16 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -39,10 +31,12 @@ public class ProductFavoriteServiceImpl implements ProductFavoriteService { @@ -39,10 +31,12 @@ public class ProductFavoriteServiceImpl implements ProductFavoriteService {
39 31
40 @Override 32 @Override
41 public Long createFavorite(Long userId, @Valid AppFavoriteReqVO reqVO) { 33 public Long createFavorite(Long userId, @Valid AppFavoriteReqVO reqVO) {
42 - ProductFavoriteDO favoriteDO = productFavoriteMapper.selectByUserAndSpuAndType(userId, reqVO.getSpuId(), reqVO.getType());  
43 - if (Objects.nonNull(favoriteDO)) { 34 + ProductFavoriteDO favorite = productFavoriteMapper.selectByUserAndSpuAndType(
  35 + userId, reqVO.getSpuId(), reqVO.getType());
  36 + if (Objects.nonNull(favorite)) {
44 throw exception(FAVORITE_EXISTS); 37 throw exception(FAVORITE_EXISTS);
45 } 38 }
  39 +
46 ProductFavoriteDO entity = ProductFavoriteConvert.INSTANCE.convert(userId, reqVO); 40 ProductFavoriteDO entity = ProductFavoriteConvert.INSTANCE.convert(userId, reqVO);
47 productFavoriteMapper.insert(entity); 41 productFavoriteMapper.insert(entity);
48 return entity.getId(); 42 return entity.getId();
@@ -50,16 +44,18 @@ public class ProductFavoriteServiceImpl implements ProductFavoriteService { @@ -50,16 +44,18 @@ public class ProductFavoriteServiceImpl implements ProductFavoriteService {
50 44
51 @Override 45 @Override
52 public void deleteFavorite(Long userId, @Valid AppFavoriteReqVO reqVO) { 46 public void deleteFavorite(Long userId, @Valid AppFavoriteReqVO reqVO) {
53 - ProductFavoriteDO favoriteDO = productFavoriteMapper.selectByUserAndSpuAndType(userId, reqVO.getSpuId(), reqVO.getType());  
54 - if (Objects.isNull(favoriteDO)) { 47 + ProductFavoriteDO favorite = productFavoriteMapper.selectByUserAndSpuAndType(
  48 + userId, reqVO.getSpuId(), reqVO.getType());
  49 + if (Objects.isNull(favorite)) {
55 throw exception(FAVORITE_NOT_EXISTS); 50 throw exception(FAVORITE_NOT_EXISTS);
56 } 51 }
57 - productFavoriteMapper.deleteById(favoriteDO.getId()); 52 +
  53 + productFavoriteMapper.deleteById(favorite.getId());
58 } 54 }
59 55
60 @Override 56 @Override
61 public PageResult<ProductFavoriteDO> getFavoritePage(Long userId, @Valid AppFavoritePageReqVO reqVO) { 57 public PageResult<ProductFavoriteDO> getFavoritePage(Long userId, @Valid AppFavoritePageReqVO reqVO) {
62 - return productFavoriteMapper.selectPageByUserAndType(userId, reqVO.getType(), reqVO); 58 + return productFavoriteMapper.selectPageByUserAndType(userId, reqVO.getType(), reqVO);
63 } 59 }
64 60
65 @Override 61 @Override