zxl
2025-07-14 ab95fdd0d06f409b4f41ff9696f292248e86d9bc
buyer-api/src/main/java/cn/lili/controller/goods/GoodsBuyerController.java
@@ -1,8 +1,11 @@
package cn.lili.controller.goods;
import cn.lili.base.Result;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.goods.entity.dos.Goods;
@@ -11,6 +14,7 @@
import cn.lili.modules.goods.entity.vos.GoodsVO;
import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.lmk.domain.query.VideoGoodsEsQuery;
import cn.lili.modules.search.entity.dos.EsGoodsIndex;
import cn.lili.modules.search.entity.dos.EsGoodsRelatedInfo;
import cn.lili.modules.search.entity.dto.EsGoodsSearchDTO;
@@ -18,6 +22,7 @@
import cn.lili.modules.search.service.HotWordsService;
import cn.lili.modules.statistics.aop.PageViewPoint;
import cn.lili.modules.statistics.aop.enums.PageViewEnum;
import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
@@ -34,6 +39,7 @@
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
 * 买家端,商品接口
@@ -65,6 +71,9 @@
    @Autowired
    private HotWordsService hotWordsService;
    @Autowired
    private COSUtil cosUtil;
    @ApiOperation(value = "通过id获取商品信息")
    @ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "path", dataType = "Long")
@@ -112,7 +121,29 @@
    @GetMapping("/es")
    public ResultMessage<Page<EsGoodsIndex>> getGoodsByPageFromEs(EsGoodsSearchDTO goodsSearchParams, PageVO pageVO) {
        pageVO.setNotConvert(true);
        return ResultUtil.data(goodsSearchService.searchGoodsByPage(goodsSearchParams, pageVO));
        Page<EsGoodsIndex> ePage = goodsSearchService.searchGoodsByPage(goodsSearchParams, pageVO);
        ePage.getRecords().forEach(item -> {
            String small = item.getSmall();
            String thumbnail = item.getThumbnail();
            String goodsVideo = item.getGoodsVideo();
            if (StringUtils.isNotBlank(small) && !small.contains("http")) {
                item.setSmall(cosUtil.getPreviewUrl(small));
            }
            if (StringUtils.isNotBlank(thumbnail) && !thumbnail.contains("http")) {
                item.setThumbnail(cosUtil.getPreviewUrl(thumbnail));
            }
            if (StringUtils.isNotBlank(goodsVideo) && !goodsVideo.contains("http")) {
                item.setGoodsVideo(cosUtil.getPreviewUrl(goodsVideo));
            }
        });
        return ResultUtil.data(ePage);
    }
    @ApiOperation(value = "商品分页-发布视频时关联商品")
    @GetMapping("/video/es")
    public Result videoGoodsEsPage(VideoGoodsEsQuery query) {
        return goodsSearchService.videoGoodsEsPage(query);
    }
    @ApiOperation(value = "从ES中获取相关商品品牌名称,分类名称及属性")
@@ -130,4 +161,28 @@
        return ResultUtil.data(hotWords);
    }
    @ApiOperation(value = "供应商分页获取商品列表")
    @GetMapping(value = "/store/list")
    public ResultMessage<IPage<Goods>> getManagerPage(GoodsSearchParams goodsSearchParams) {
        //获取当前登录商家账号
        String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
        goodsSearchParams.setStoreId(storeId);
        IPage<Goods> page = goodsService.queryByParams(goodsSearchParams);
        page.getRecords().forEach(goodsVO -> {
            if (StringUtils.isNotBlank(goodsVO.getOriginal())) {
                goodsVO.setOriginal(cosUtil.getPreviewUrl(goodsVO.getOriginal()));
            }
            if (StringUtils.isNotBlank(goodsVO.getGoodsVideo())) {
                goodsVO.setGoodsVideo(cosUtil.getPreviewUrl(goodsVO.getGoodsVideo()));
            }
            if (StringUtils.isNotBlank(goodsVO.getThumbnail())) {
                goodsVO.setThumbnail(cosUtil.getPreviewUrl(goodsVO.getThumbnail()));
            }
            if (StringUtils.isNotBlank(goodsVO.getSmall())) {
                goodsVO.setSmall(cosUtil.getPreviewUrl(goodsVO.getSmall()));
            }
        });
        return ResultUtil.data(page);
    }
}