商品详情接口中添加品牌信息字段

This commit is contained in:
XinWei 2024-10-17 15:17:16 +08:00
parent 9860ff79d5
commit 38ddb26051
4 changed files with 23 additions and 1 deletions

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.product.controller.app.spu; package cn.iocoder.yudao.module.product.controller.app.spu;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@ -16,6 +17,7 @@ import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
import cn.iocoder.yudao.module.product.enums.ErrorCodeConstants; import cn.iocoder.yudao.module.product.enums.ErrorCodeConstants;
import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
import cn.iocoder.yudao.module.product.service.brand.ProductBrandService;
import cn.iocoder.yudao.module.product.service.history.ProductBrowseHistoryService; import cn.iocoder.yudao.module.product.service.history.ProductBrowseHistoryService;
import cn.iocoder.yudao.module.product.service.sku.ProductSkuService; import cn.iocoder.yudao.module.product.service.sku.ProductSkuService;
import cn.iocoder.yudao.module.product.service.spu.ProductSpuService; import cn.iocoder.yudao.module.product.service.spu.ProductSpuService;
@ -61,6 +63,8 @@ public class AppProductSpuController {
private MemberLevelApi memberLevelApi; private MemberLevelApi memberLevelApi;
@Resource @Resource
private MemberUserApi memberUserApi; private MemberUserApi memberUserApi;
@Resource
private ProductBrandService productBrandService;
@GetMapping("/list-by-ids") @GetMapping("/list-by-ids")
@Operation(summary = "获得商品 SPU 列表") @Operation(summary = "获得商品 SPU 列表")
@ -138,6 +142,8 @@ public class AppProductSpuController {
spu.setBrowseCount(spu.getBrowseCount() + spu.getVirtualSalesCount()); spu.setBrowseCount(spu.getBrowseCount() + spu.getVirtualSalesCount());
AppProductSpuDetailRespVO spuVO = BeanUtils.toBean(spu, AppProductSpuDetailRespVO.class) AppProductSpuDetailRespVO spuVO = BeanUtils.toBean(spu, AppProductSpuDetailRespVO.class)
.setSkus(BeanUtils.toBean(skus, AppProductSpuDetailRespVO.Sku.class)); .setSkus(BeanUtils.toBean(skus, AppProductSpuDetailRespVO.Sku.class));
// 添加品牌详细信息
spuVO.setProductBrand(productBrandService.getBrandByIdStatus(spu.getBrandId(), CommonStatusEnum.ENABLE.getStatus()));
// 处理 vip 价格 // 处理 vip 价格
MemberLevelRespDTO memberLevel = getMemberLevel(); MemberLevelRespDTO memberLevel = getMemberLevel();
spuVO.setVipPrice(calculateVipPrice(spuVO.getPrice(), memberLevel)); spuVO.setVipPrice(calculateVipPrice(spuVO.getPrice(), memberLevel));

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.product.controller.app.spu.vo; package cn.iocoder.yudao.module.product.controller.app.spu.vo;
import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO;
import cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@ -35,7 +36,7 @@ public class AppProductSpuDetailRespVO {
private List<String> sliderPicUrls; private List<String> sliderPicUrls;
@Schema(description = "商品品牌编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "商品品牌编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long brandId; private ProductBrandDO productBrand;
// ========== 营销相关字段 ========= // ========== 营销相关字段 =========
// ========== SKU 相关字段 ========= // ========== SKU 相关字段 =========

View File

@ -45,6 +45,13 @@ public interface ProductBrandService {
*/ */
ProductBrandDO getBrand(Long id); ProductBrandDO getBrand(Long id);
/**
* 根据编号和状态获取品牌
* @param id 编号
* @param status 状态
* @return cn.iocoder.yudao.module.product.dal.dataobject.brand.ProductBrandDO
*/
ProductBrandDO getBrandByIdStatus(Long id, Integer status);
/** /**
* 获得品牌列表 * 获得品牌列表
* *

View File

@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.product.service.brand;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandCreateReqVO; import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandCreateReqVO;
import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandListReqVO; import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandListReqVO;
import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandPageReqVO; import cn.iocoder.yudao.module.product.controller.admin.brand.vo.ProductBrandPageReqVO;
@ -88,6 +89,13 @@ public class ProductBrandServiceImpl implements ProductBrandService {
return brandMapper.selectById(id); return brandMapper.selectById(id);
} }
@Override
public ProductBrandDO getBrandByIdStatus(Long id, Integer status) {
LambdaQueryWrapperX<ProductBrandDO> wrapperX = new LambdaQueryWrapperX<>();
wrapperX.eq(ProductBrandDO::getId, id).eq(ProductBrandDO::getStatus, status);
return brandMapper.selectOne(wrapperX);
}
@Override @Override
public List<ProductBrandDO> getBrandList(Collection<Long> ids) { public List<ProductBrandDO> getBrandList(Collection<Long> ids) {
return brandMapper.selectBatchIds(ids); return brandMapper.selectBatchIds(ids);