|
@@ -1,12 +1,69 @@
|
|
|
package edu.travel.commodity.service.impl;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import edu.travel.commodity.dto.BaseDto;
|
|
|
import edu.travel.commodity.entity.ShopFavorite;
|
|
|
+import edu.travel.commodity.entity.ShopProduct;
|
|
|
import edu.travel.commodity.mapper.ShopFavoriteMapper;
|
|
|
import edu.travel.commodity.service.ShopFavoriteService;
|
|
|
+import edu.travel.commodity.service.ShopProductService;
|
|
|
+import edu.travel.commodity.utils.PageUtil;
|
|
|
+import edu.travel.commodity.utils.TokenData;
|
|
|
+import edu.travel.commodity.vo.ShopFavoriteVo;
|
|
|
+import edu.travel.commodity.vo.ShopProductVo;
|
|
|
+import edu.travel.service.SysServiceImpl;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+
|
|
|
@Service
|
|
|
-public class ShopFavoriteServiceImpl extends ServiceImpl<ShopFavoriteMapper, ShopFavorite> implements ShopFavoriteService {
|
|
|
+public class ShopFavoriteServiceImpl extends SysServiceImpl<ShopFavoriteMapper, ShopFavorite> implements ShopFavoriteService {
|
|
|
+ @Autowired
|
|
|
+ private ShopProductService shopProductService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<ShopFavoriteVo> getFavorite(BaseDto baseDto) {
|
|
|
+ String userId = TokenData.getUserId();
|
|
|
+ LambdaQueryWrapper<ShopFavorite> query = Wrappers.<ShopFavorite>lambdaQuery()
|
|
|
+ .eq(ShopFavorite::getUserId, userId).orderByDesc(ShopFavorite::getCreateTime);
|
|
|
+ Page<ShopFavorite> page = page(new Page<>(baseDto.getCurrentPage(), baseDto.getPageSize()), query);
|
|
|
+ Page<ShopFavoriteVo> pageEntity = PageUtil.toPageEntity(page, ShopFavoriteVo.class);
|
|
|
+ List<ShopFavoriteVo> records = pageEntity.getRecords();
|
|
|
+ if(ObjectUtil.isEmpty(records)){
|
|
|
+ return pageEntity;
|
|
|
+ }
|
|
|
+ //商品Ids
|
|
|
+ Set<String> productIds = records.stream().map(ShopFavoriteVo::getProductId).collect(Collectors.toSet());
|
|
|
|
|
|
+ List<ShopProduct> shopProducts = shopProductService.getBaseMapper().selectBatchIds(productIds);
|
|
|
+ Map<String, ShopProduct> map = new HashMap<>();
|
|
|
+ for (ShopProduct shopProduct : shopProducts) {
|
|
|
+ map.put(shopProduct.getId().toString(), shopProduct);
|
|
|
+ }
|
|
|
+ //填充商品详情信息
|
|
|
+ for (ShopFavoriteVo shopProductVo : records) {
|
|
|
+ ShopProduct shopProduct = map.get(shopProductVo.getProductId());
|
|
|
+ if(!ObjectUtil.isEmpty(shopProduct)){
|
|
|
+ shopProductVo.setProductName(shopProduct.getProductName());
|
|
|
+ shopProductVo.setDescription(shopProduct.getDescription());
|
|
|
+ shopProductVo.setMainImageUrl(shopProduct.getDescription());
|
|
|
+ shopProductVo.setHeatValue(shopProduct.getHeatValue());
|
|
|
+ shopProductVo.setSalesVolume(shopProduct.getSalesVolume());
|
|
|
+ shopProductVo.setDefaultPrice(shopProduct.getDefaultPrice());
|
|
|
+ shopProductVo.setScoring(shopProduct.getScoring());
|
|
|
+ shopProductVo.setCountryId(shopProduct.getCountryId().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return pageEntity;
|
|
|
+ }
|
|
|
}
|