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 1 package cn.iocoder.yudao.module.product.controller.app.favorite;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5   -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
6 6 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoritePageReqVO;
7 7 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO;
8 8 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteRespVO;
... ... @@ -17,11 +17,11 @@ import org.springframework.web.bind.annotation.*;
17 17  
18 18 import javax.annotation.Resource;
19 19 import javax.validation.Valid;
20   -
21 20 import java.util.List;
22 21 import java.util.Objects;
23 22  
24 23 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  24 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
25 25 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
26 26  
27 27 @Tag(name = "用户 APP - 商品收藏")
... ... @@ -51,17 +51,19 @@ public class AppFavoriteController {
51 51 @GetMapping(value = "/page")
52 52 @Operation(summary = "分页获取商品收藏列表")
53 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 56 return success(PageResult.empty());
57 57 }
58   - List<ProductFavoriteDO> productFavoriteList = favorites.getList();
  58 +
59 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 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 9  
10 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 13 @Data
14 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 1 package cn.iocoder.yudao.module.product.convert.favorite;
2 2  
3   -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
4 3 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO;
5 4 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteRespVO;
6 5 import cn.iocoder.yudao.module.product.dal.dataobject.favorite.ProductFavoriteDO;
... ... @@ -13,6 +12,8 @@ import java.util.ArrayList;
13 12 import java.util.List;
14 13 import java.util.Map;
15 14  
  15 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  16 +
16 17 @Mapper
17 18 public interface ProductFavoriteConvert {
18 19  
... ... @@ -20,17 +21,18 @@ public interface ProductFavoriteConvert {
20 21  
21 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 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 1 package cn.iocoder.yudao.module.product.dal.mysql.favorite;
2 2  
3   -import cn.hutool.core.lang.Assert;
4 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
5 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
... ... @@ -13,9 +12,6 @@ import org.apache.ibatis.annotations.Mapper;
13 12 public interface ProductFavoriteMapper extends BaseMapperX<ProductFavoriteDO> {
14 13  
15 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 15 return selectOne(new LambdaQueryWrapperX<ProductFavoriteDO>()
20 16 .eq(ProductFavoriteDO::getUserId, userId)
21 17 .eq(ProductFavoriteDO::getSpuId, spuId)
... ... @@ -23,9 +19,6 @@ public interface ProductFavoriteMapper extends BaseMapperX&lt;ProductFavoriteDO&gt; {
23 19 }
24 20  
25 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 22 return selectPage(pageParam, new LambdaQueryWrapper<ProductFavoriteDO>()
30 23 .eq(ProductFavoriteDO::getUserId, userId)
31 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 1 package cn.iocoder.yudao.module.product.service.favorite;
2 2  
3   -import cn.hutool.core.lang.Assert;
4 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5   -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
6 4 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoritePageReqVO;
7 5 import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoriteReqVO;
8 6 import cn.iocoder.yudao.module.product.convert.favorite.ProductFavoriteConvert;
9 7 import cn.iocoder.yudao.module.product.dal.dataobject.favorite.ProductFavoriteDO;
10   -import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
11 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 9 import org.springframework.stereotype.Service;
15 10 import org.springframework.validation.annotation.Validated;
16 11  
17 12 import javax.annotation.Resource;
18 13 import javax.validation.Valid;
19   -import java.util.ArrayList;
20   -import java.util.List;
21   -import java.util.Map;
22 14 import java.util.Objects;
23 15  
24 16 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
... ... @@ -39,10 +31,12 @@ public class ProductFavoriteServiceImpl implements ProductFavoriteService {
39 31  
40 32 @Override
41 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 37 throw exception(FAVORITE_EXISTS);
45 38 }
  39 +
46 40 ProductFavoriteDO entity = ProductFavoriteConvert.INSTANCE.convert(userId, reqVO);
47 41 productFavoriteMapper.insert(entity);
48 42 return entity.getId();
... ... @@ -50,16 +44,18 @@ public class ProductFavoriteServiceImpl implements ProductFavoriteService {
50 44  
51 45 @Override
52 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 50 throw exception(FAVORITE_NOT_EXISTS);
56 51 }
57   - productFavoriteMapper.deleteById(favoriteDO.getId());
  52 +
  53 + productFavoriteMapper.deleteById(favorite.getId());
58 54 }
59 55  
60 56 @Override
61 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 61 @Override
... ...