Skip to content

Commit

Permalink
修改 search 服务的 dev dubbo 配置
Browse files Browse the repository at this point in the history
完成 product 详情 rest 接口
  • Loading branch information
YunaiV committed Aug 4, 2020
1 parent 11b2f67 commit dfd25c1
Show file tree
Hide file tree
Showing 13 changed files with 115 additions and 103 deletions.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,6 @@ public class ProductSpuDetailRespDTO implements Serializable {
@Accessors(chain = true)
public static class Sku implements Serializable {

/**
* sku 编号
*/
private Integer id;
/**
* 商品编号
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ spring:
dubbo:
# Dubbo 注册中心
registry:
address: spring-cloud://400-infra.server.iocoder.cn:8848 # 指定 Dubbo 服务注册中心的地址
# address: spring-cloud://400-infra.server.iocoder.cn:8848 # 指定 Dubbo 服务注册中心的地址
address: nacos://400-infra.server.iocoder.cn:8848?namespace=dev # 指定 Dubbo 服务注册中心的地址
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuDetailRespVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuPageReqVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuRespVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuSearchConditionRespVO;
Expand Down Expand Up @@ -41,4 +42,11 @@ public CommonResult<ProductSpuSearchConditionRespVO> getProductSpuSearchConditio
return success(productSpuManager.getProductSpuSearchCondition(keyword));
}

@GetMapping("/get_detail")
@ApiOperation("获得商品 SPU 的明细,包括 SKU 等等信息")
@ApiImplicitParam(name = "id", required = true, value = "商品 SPU 编号", example = "1024")
public CommonResult<ProductSpuDetailRespVO> getProductSpuDetail(@RequestParam("id") Integer id) {
return success(productSpuManager.getProductSpuDetail(id));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package cn.iocoder.mall.shopweb.controller.product.vo.attr;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

@ApiModel(value = "商品规格 KEY + VALUE 对的 Response VO")
@Data
@Accessors(chain = true)
public class ProductAttrKeyValueRespVO {

@ApiModelProperty(value = "规格 KEY 编号", required = true, example = "1")
private Integer attrKeyId;
@ApiModelProperty(value = "规格 KEY 名字", required = true, example = "颜色")
private String attrKeyName;
@ApiModelProperty(value = "规格 VALUE 值", required = true, example = "10")
private Integer attrValueId;
@ApiModelProperty(value = "规格 VALUE 名字", required = true, example = "红色")
private String attrValueName;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package cn.iocoder.mall.shopweb.controller.product.vo.product;

import cn.iocoder.mall.shopweb.controller.product.vo.attr.ProductAttrKeyValueRespVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

@ApiModel(value = "商品 SPU 详细 Response VO", description = "包括 SKU 信息 VO")
@Data
@Accessors(chain = true)
public class ProductSpuDetailRespVO {

@ApiModelProperty(value = "SPU 编号", required = true, example = "1")
private Integer id;

// ========== 基本信息 =========
@ApiModelProperty(value = "SPU 名字", required = true, example = "芋艿")
private String name;
@ApiModelProperty(value = "卖点", required = true, example = "好吃好玩")
private String sellPoint;
@ApiModelProperty(value = "描述", required = true, example = "我是哈哈哈")
private String description;
@ApiModelProperty(value = "分类编号", required = true, example = "1")
private Integer cid;
@ApiModelProperty(value = "商品主图地址", required = true, example = "http://www.iocoder.cn/xxx.jpg", notes = "多个之间,使用逗号分隔")
private List<String> picUrls;

// ========== SKU =========

/**
* SKU 数组
*/
private List<Sku> skus;

@ApiModel("商品 SKU 详细 Response VO")
@Data
@Accessors(chain = true)
public static class Sku implements Serializable {

@ApiModelProperty(value = "sku 编号", required = true, example = "1")
private Integer id;
@ApiModelProperty(value = "SPU 编号", required = true, example = "1")
private Integer spuId;
@ApiModelProperty(value = "图片地址", required = true, example = "http://www.iocoder.cn")
private String picURL;
/**
* 规格值数组
*/
private List<ProductAttrKeyValueRespVO> attrs;
@ApiModelProperty(value = "价格,单位:分", required = true, example = "100")
private Integer price;
@ApiModelProperty(value = "库存数量", required = true, example = "100")
private Integer quantity;

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
@Accessors(chain = true)
public class ProductSpuRespVO {

@ApiModelProperty(value = "SPU 编号", required = true)
@ApiModelProperty(value = "SPU 编号", required = true, example = "1")
private Integer id;

// ========== 基本信息 =========
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.common.framework.vo.SortingField;
import cn.iocoder.mall.productservice.rpc.category.dto.ProductCategoryRespDTO;
import cn.iocoder.mall.productservice.rpc.spu.dto.ProductSpuDetailRespDTO;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductPageReqDTO;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuDetailRespVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuPageReqVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuRespVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuSearchConditionRespVO;
Expand Down Expand Up @@ -34,4 +36,6 @@ default SearchProductPageReqDTO convert(ProductSpuPageReqVO bean) {

List<ProductSpuSearchConditionRespVO.Category> convertList(List<ProductCategoryRespDTO> list);

ProductSpuDetailRespVO convert(ProductSpuDetailRespDTO bean);

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@
import cn.iocoder.common.framework.util.CollectionUtils;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.mall.productservice.enums.spu.ProductSpuDetailFieldEnum;
import cn.iocoder.mall.productservice.rpc.category.ProductCategoryRpc;
import cn.iocoder.mall.productservice.rpc.category.dto.ProductCategoryRespDTO;
import cn.iocoder.mall.productservice.rpc.spu.ProductSpuRpc;
import cn.iocoder.mall.productservice.rpc.spu.dto.ProductSpuDetailRespDTO;
import cn.iocoder.mall.searchservice.enums.product.SearchProductConditionFieldEnum;
import cn.iocoder.mall.searchservice.rpc.product.SearchProductRpc;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionReqDTO;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuDetailRespVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuPageReqVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuRespVO;
import cn.iocoder.mall.shopweb.controller.product.vo.product.ProductSpuSearchConditionRespVO;
Expand All @@ -18,6 +22,7 @@
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

Expand All @@ -34,6 +39,9 @@ public class ProductSpuManager {
@DubboReference(version = "${dubbo.consumer.ProductCategoryRpc.version}")
private ProductCategoryRpc productCategoryRpc;

@DubboReference(version = "${dubbo.consumer.ProductSpuRpc.version}")
private ProductSpuRpc productSpuRpc;

public PageResult<ProductSpuRespVO> pageProductSpu(ProductSpuPageReqVO pageReqVO) {
CommonResult<PageResult<SearchProductRespDTO>> pageResult =
searchProductRpc.pageSearchProduct(ProductSpuConvert.INSTANCE.convert(pageReqVO));
Expand All @@ -60,4 +68,11 @@ public ProductSpuSearchConditionRespVO getProductSpuSearchCondition(String keywo
return conditionRespVO;
}

public ProductSpuDetailRespVO getProductSpuDetail(Integer id) {
CommonResult<ProductSpuDetailRespDTO> getProductSpuDetailResult = productSpuRpc.getProductSpuDetail(id,
Arrays.asList(ProductSpuDetailFieldEnum.SKU.getField(), ProductSpuDetailFieldEnum.ATTR.getField()));
getProductSpuDetailResult.checkError();
return ProductSpuConvert.INSTANCE.convert(getProductSpuDetailResult.getData());
}

}
2 changes: 2 additions & 0 deletions shop-web-app/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ dubbo:
version: 1.0.0
ProductCategoryRpc:
version: 1.0.0
ProductSpuRpc:
version: 1.0.0
SearchProductRpc:
version: 1.0.0

Expand Down

0 comments on commit dfd25c1

Please sign in to comment.