商品详情接口中添加品牌信息字段
This commit is contained in:
parent
9860ff79d5
commit
38ddb26051
@ -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));
|
||||||
|
@ -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 相关字段 =========
|
||||||
|
@ -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);
|
||||||
/**
|
/**
|
||||||
* 获得品牌列表
|
* 获得品牌列表
|
||||||
*
|
*
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user