Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
b996ddfa
提交
b996ddfa
authored
5月 11, 2020
作者:
q2118cs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
product-sku-rpc
上级
a4ca27d6
显示空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
279 行增加
和
33 行删除
+279
-33
ProductSpuConvert.java
...r/mall/product/biz/convert/product/ProductSpuConvert.java
+0
-2
ProductSkuMapper.java
...ocoder/mall/product/biz/dao/product/ProductSkuMapper.java
+11
-2
ProductSpuMapper.java
...ocoder/mall/product/biz/dao/product/ProductSpuMapper.java
+2
-2
ProductAttrService.java
.../mall/product/biz/service/product/ProductAttrService.java
+3
-0
ProductSpuService.java
...r/mall/product/biz/service/product/ProductSpuService.java
+15
-0
ProductAttrServiceImpl.java
...duct/biz/service/product/impl/ProductAttrServiceImpl.java
+1
-0
ProductSpuServiceImpl.java
...oduct/biz/service/product/impl/ProductSpuServiceImpl.java
+59
-0
ProductSpuRpc.java
...n/java/cn/iocoder/mall/product/rpc/api/ProductSpuRpc.java
+12
-0
ProductSpuDetailResponse.java
...r/mall/product/rpc/response/ProductSpuDetailResponse.java
+127
-0
ProductSpuConvert.java
...n/iocoder/mall/product/rpc/convert/ProductSpuConvert.java
+16
-0
ProductSpuRpcImpl.java
...va/cn/iocoder/mall/product/rpc/rpc/ProductSpuRpcImpl.java
+24
-0
rpc.yaml
product/product-rpc/src/main/resources/rpc.yaml
+4
-22
pom.xml
promotion/promotion-service-impl/pom.xml
+1
-1
ProductRecommendServiceImpl.java
...ll/promotion/biz/service/ProductRecommendServiceImpl.java
+4
-4
没有找到文件。
product/product-biz/src/main/java/cn/iocoder/mall/product/biz/convert/product/ProductSpuConvert.java
浏览文件 @
b996ddfa
...
@@ -130,6 +130,4 @@ public interface ProductSpuConvert {
...
@@ -130,6 +130,4 @@ public interface ProductSpuConvert {
return
spuDetailList
;
return
spuDetailList
;
}
}
}
}
product/product-biz/src/main/java/cn/iocoder/mall/product/biz/dao/product/ProductSkuMapper.java
浏览文件 @
b996ddfa
package
cn
.
iocoder
.
mall
.
product
.
biz
.
dao
.
product
;
package
cn
.
iocoder
.
mall
.
product
.
biz
.
dao
.
product
;
import
cn.iocoder.mall.product.biz.dataobject.product.Product
Brand
DO
;
import
cn.iocoder.mall.product.biz.dataobject.product.Product
Sku
DO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
@Repository
public
interface
ProductSkuMapper
extends
BaseMapper
<
Product
Brand
DO
>
{
public
interface
ProductSkuMapper
extends
BaseMapper
<
Product
Sku
DO
>
{
default
List
<
ProductSkuDO
>
selectListBySpuIdAndStatus
(
Integer
spuId
,
Integer
status
)
{
return
selectList
(
Wrappers
.<
ProductSkuDO
>
query
().
lambda
()
.
eq
(
ProductSkuDO:
:
getSpuId
,
spuId
)
.
eq
(
ProductSkuDO:
:
getStatus
,
status
)
.
eq
(
ProductSkuDO:
:
getDeleted
,
false
));
}
}
}
product/product-biz/src/main/java/cn/iocoder/mall/product/biz/dao/product/ProductSpuMapper.java
浏览文件 @
b996ddfa
package
cn
.
iocoder
.
mall
.
product
.
biz
.
dao
.
product
;
package
cn
.
iocoder
.
mall
.
product
.
biz
.
dao
.
product
;
import
cn.iocoder.mall.product.biz.dataobject.product.Product
Brand
DO
;
import
cn.iocoder.mall.product.biz.dataobject.product.Product
Spu
DO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
@Repository
@Repository
public
interface
ProductSpuMapper
extends
BaseMapper
<
Product
Brand
DO
>
{
public
interface
ProductSpuMapper
extends
BaseMapper
<
Product
Spu
DO
>
{
}
}
product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/product/ProductAttrService.java
浏览文件 @
b996ddfa
...
@@ -7,9 +7,11 @@ import cn.iocoder.mall.product.biz.bo.attr.ProductAttrBO;
...
@@ -7,9 +7,11 @@ import cn.iocoder.mall.product.biz.bo.attr.ProductAttrBO;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrSimpleWithValueBO
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrSimpleWithValueBO
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrValueBO
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrValueBO
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrWithValueBO
;
import
cn.iocoder.mall.product.biz.bo.attr.ProductAttrWithValueBO
;
import
cn.iocoder.mall.product.biz.bo.product.ProductAttrAndValuePairBO
;
import
cn.iocoder.mall.product.biz.dto.attr.*
;
import
cn.iocoder.mall.product.biz.dto.attr.*
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
public
interface
ProductAttrService
{
public
interface
ProductAttrService
{
/**
/**
...
@@ -64,4 +66,5 @@ public interface ProductAttrService {
...
@@ -64,4 +66,5 @@ public interface ProductAttrService {
Boolean
updateProductAttrValueStatus
(
Integer
adminId
,
Integer
productAttrValueId
,
Boolean
updateProductAttrValueStatus
(
Integer
adminId
,
Integer
productAttrValueId
,
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
Integer
status
);
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
Integer
status
);
List
<
ProductAttrAndValuePairBO
>
validProductAttrAndValue
(
Set
<
Integer
>
productAttrValueIds
,
boolean
validStatus
);
}
}
product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/product/ProductSpuService.java
0 → 100644
浏览文件 @
b996ddfa
package
cn
.
iocoder
.
mall
.
product
.
biz
.
service
.
product
;
import
cn.iocoder.mall.product.biz.bo.product.ProductSpuDetailBO
;
public
interface
ProductSpuService
{
/**
* 获取SPU明细
*
* @param id spuId
* @return SPU明细
*/
ProductSpuDetailBO
getProductSpuDetail
(
Integer
id
);
}
product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/product/impl/ProductAttrServiceImpl.java
浏览文件 @
b996ddfa
...
@@ -204,6 +204,7 @@ public class ProductAttrServiceImpl implements ProductAttrService {
...
@@ -204,6 +204,7 @@ public class ProductAttrServiceImpl implements ProductAttrService {
return
i
>
0
;
return
i
>
0
;
}
}
@Override
public
List
<
ProductAttrAndValuePairBO
>
validProductAttrAndValue
(
Set
<
Integer
>
productAttrValueIds
,
boolean
validStatus
)
{
public
List
<
ProductAttrAndValuePairBO
>
validProductAttrAndValue
(
Set
<
Integer
>
productAttrValueIds
,
boolean
validStatus
)
{
// 首先,校验规格值
// 首先,校验规格值
List
<
ProductAttrValueDO
>
attrValues
=
productAttrValueMapper
.
selectBatchIds
(
productAttrValueIds
);
List
<
ProductAttrValueDO
>
attrValues
=
productAttrValueMapper
.
selectBatchIds
(
productAttrValueIds
);
...
...
product/product-biz/src/main/java/cn/iocoder/mall/product/biz/service/product/impl/ProductSpuServiceImpl.java
0 → 100644
浏览文件 @
b996ddfa
package
cn
.
iocoder
.
mall
.
product
.
biz
.
service
.
product
.
impl
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
cn.iocoder.common.framework.util.StringUtil
;
import
cn.iocoder.mall.product.biz.bo.product.ProductAttrAndValuePairBO
;
import
cn.iocoder.mall.product.biz.bo.product.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.biz.convert.product.ProductSpuConvert
;
import
cn.iocoder.mall.product.biz.dao.product.ProductCategoryMapper
;
import
cn.iocoder.mall.product.biz.dao.product.ProductSkuMapper
;
import
cn.iocoder.mall.product.biz.dao.product.ProductSpuMapper
;
import
cn.iocoder.mall.product.biz.dataobject.product.ProductCategoryDO
;
import
cn.iocoder.mall.product.biz.dataobject.product.ProductSkuDO
;
import
cn.iocoder.mall.product.biz.dataobject.product.ProductSpuDO
;
import
cn.iocoder.mall.product.biz.enums.ProductErrorCodeEnum
;
import
cn.iocoder.mall.product.biz.enums.product.ProductSpuConstants
;
import
cn.iocoder.mall.product.biz.service.product.ProductAttrService
;
import
cn.iocoder.mall.product.biz.service.product.ProductSpuService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.Assert
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
@Service
public
class
ProductSpuServiceImpl
implements
ProductSpuService
{
@Autowired
private
ProductSpuMapper
productSpuMapper
;
@Autowired
private
ProductSkuMapper
productSkuMapper
;
@Autowired
private
ProductCategoryMapper
productCategoryMapper
;
@Autowired
private
ProductAttrService
productAttrService
;
@Override
public
ProductSpuDetailBO
getProductSpuDetail
(
Integer
spuId
)
{
// 校验商品 spu 存在
ProductSpuDO
spu
=
productSpuMapper
.
selectById
(
spuId
);
if
(
spu
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
ProductErrorCodeEnum
.
PRODUCT_SPU_NOT_EXISTS
.
getCode
());
}
// 获得商品分类分类
ProductCategoryDO
category
=
productCategoryMapper
.
selectById
(
spu
.
getCid
());
Assert
.
notNull
(
category
,
String
.
format
(
"分类编号(%d) 对应"
,
spu
.
getCid
()));
// 获得商品 sku 数组
List
<
ProductSkuDO
>
skus
=
productSkuMapper
.
selectListBySpuIdAndStatus
(
spuId
,
ProductSpuConstants
.
SKU_STATUS_ENABLE
);
// 获得规格
Set
<
Integer
>
productAttrValueIds
=
new
HashSet
<>();
skus
.
forEach
(
sku
->
productAttrValueIds
.
addAll
(
StringUtil
.
splitToInt
(
sku
.
getAttrs
(),
","
)));
// 读取规格时,不考虑规格是否被禁用
List
<
ProductAttrAndValuePairBO
>
attrAndValuePairList
=
productAttrService
.
validProductAttrAndValue
(
productAttrValueIds
,
false
);
// 返回成功
return
ProductSpuConvert
.
INSTANCE
.
convert2
(
spu
,
skus
,
attrAndValuePairList
,
category
);
}
}
product/product-rpc-api/src/main/java/cn/iocoder/mall/product/rpc/api/ProductSpuRpc.java
0 → 100644
浏览文件 @
b996ddfa
package
cn
.
iocoder
.
mall
.
product
.
rpc
.
api
;
import
cn.iocoder.mall.product.rpc.response.ProductSpuDetailResponse
;
/**
* @author Rai
*/
public
interface
ProductSpuRpc
{
ProductSpuDetailResponse
getProductSpuDetail
(
Integer
spuId
);
}
product/product-rpc-api/src/main/java/cn/iocoder/mall/product/rpc/response/ProductSpuDetailResponse.java
0 → 100644
浏览文件 @
b996ddfa
package
cn
.
iocoder
.
mall
.
product
.
rpc
.
response
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 商品 Spu 明细 BO(包括 Sku 明细)
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductSpuDetailResponse
implements
Serializable
{
/**
* SPU 编号
*/
private
Integer
id
;
// ========== 基本信息 =========
/**
* SPU 名字
*/
private
String
name
;
/**
* 卖点
*/
private
String
sellPoint
;
/**
* 描述
*/
private
String
description
;
/**
* 分类编号
*/
private
Integer
cid
;
/**
* 分类名
*/
private
String
categoryName
;
/**
* 商品主图地址
* <p>
* 数组,以逗号分隔
* <p>
* 建议尺寸:800*800像素,你可以拖拽图片调整顺序,最多上传15张
*/
private
List
<
String
>
picUrls
;
// ========== 其他信息 =========
/**
* 是否上架商品(是否可见)。
* <p>
* true 为已上架
* false 为已下架
*/
private
Boolean
visible
;
/**
* 排序字段
*/
private
Integer
sort
;
// ========== SKU =========
/**
* SKU 数组
*/
private
List
<
Sku
>
skus
;
/**
* 商品 Sku 明细 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Sku
implements
Serializable
{
/**
* sku 编号
*/
private
Integer
id
;
/**
* 商品编号
*/
private
Integer
spuId
;
/**
* 图片地址
*/
private
String
picURL
;
/**
* 规格值数组
*/
private
List
<
ProductAttrAndValuePair
>
attrs
;
/**
* 价格,单位:分
*/
private
Integer
price
;
/**
* 库存数量
*/
private
Integer
quantity
;
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
ProductAttrAndValuePair
implements
Serializable
{
/**
* 规格编号
*/
private
Integer
attrId
;
/**
* 规格名
*/
private
String
attrName
;
/**
* 规格值
*/
private
Integer
attrValueId
;
/**
* 规格值名
*/
private
String
attrValueName
;
}
}
product/product-rpc/src/main/java/cn/iocoder/mall/product/rpc/convert/ProductSpuConvert.java
0 → 100644
浏览文件 @
b996ddfa
package
cn
.
iocoder
.
mall
.
product
.
rpc
.
convert
;
import
cn.iocoder.mall.product.biz.bo.product.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.rpc.response.ProductSpuDetailResponse
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
@Mapper
public
interface
ProductSpuConvert
{
ProductSpuConvert
INSTANCE
=
Mappers
.
getMapper
(
ProductSpuConvert
.
class
);
@Mappings
({})
ProductSpuDetailResponse
convertDetail
(
ProductSpuDetailBO
productSpuDetail
);
}
product/product-rpc/src/main/java/cn/iocoder/mall/product/rpc/rpc/ProductSpuRpcImpl.java
0 → 100644
浏览文件 @
b996ddfa
package
cn
.
iocoder
.
mall
.
product
.
rpc
.
rpc
;
import
cn.iocoder.mall.product.biz.bo.product.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.biz.service.product.ProductSpuService
;
import
cn.iocoder.mall.product.rpc.api.ProductSpuRpc
;
import
cn.iocoder.mall.product.rpc.convert.ProductSpuConvert
;
import
cn.iocoder.mall.product.rpc.response.ProductSpuDetailResponse
;
import
org.apache.dubbo.config.annotation.Service
;
import
org.springframework.beans.factory.annotation.Autowired
;
@Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductSpuService.version}"
)
public
class
ProductSpuRpcImpl
implements
ProductSpuRpc
{
@Autowired
private
ProductSpuService
productSpuService
;
@Override
public
ProductSpuDetailResponse
getProductSpuDetail
(
Integer
spuId
)
{
ProductSpuDetailBO
productSpuDetail
=
productSpuService
.
getProductSpuDetail
(
spuId
);
return
ProductSpuConvert
.
INSTANCE
.
convertDetail
(
productSpuDetail
);
}
}
product/product-rpc/src/main/resources/rpc.yaml
浏览文件 @
b996ddfa
...
@@ -2,39 +2,21 @@
...
@@ -2,39 +2,21 @@
dubbo
:
dubbo
:
# Spring Cloud Alibaba Dubbo 专属配置
# Spring Cloud Alibaba Dubbo 专属配置
cloud
:
cloud
:
subscribed-services
:
'
system
-application'
# 设置订阅的应用列表,默认为 * 订阅所有应用
subscribed-services
:
'
product
-application'
# 设置订阅的应用列表,默认为 * 订阅所有应用
# Dubbo 提供者的协议
# Dubbo 提供者的协议
protocol
:
protocol
:
name
:
dubbo
name
:
dubbo
port
:
-1
port
:
-1
# Dubbo 提供服务的扫描基础包
# Dubbo 提供服务的扫描基础包
scan
:
scan
:
base-packages
:
cn.iocoder.mall.
system
.rpc.rpc
base-packages
:
cn.iocoder.mall.
product
.rpc.rpc
# Dubbo 服务提供者的配置
# Dubbo 服务提供者的配置
provider
:
provider
:
filter
:
-exception
filter
:
-exception
SystemLogRPC
:
ProductSpuService
:
version
:
1.0.0
OAuth2RPC
:
version
:
1.0.0
AuthorizationRPC
:
version
:
1.0.0
AdminRPC
:
version
:
1.0.0
UserRPC
:
version
:
1.0.0
UserAddressRPC
:
version
:
1.0.0
version
:
1.0.0
# Dubbo 服务消费者的配置
# Dubbo 服务消费者的配置
consumer
:
consumer
:
SystemLogRPC
:
# 用于 AccessLogInterceptor 等拦截器,记录 HTTP API 请求的访问日志
ProductSpuService
:
version
:
1.0.0
OAuth2RPC
:
# 用于 AccountAuthInterceptor 拦截器,执行认证
version
:
1.0.0
AuthorizationRPC
:
# 用于 AccountAuthInterceptor 拦截器,执行鉴权(权限验证)
version
:
1.0.0
AdminRPC
:
version
:
1.0.0
UserRPC
:
version
:
1.0.0
version
:
1.0.0
promotion/promotion-service-impl/pom.xml
浏览文件 @
b996ddfa
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-
service
-api
</artifactId>
<artifactId>
product-
rpc
-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/ProductRecommendServiceImpl.java
浏览文件 @
b996ddfa
...
@@ -3,7 +3,7 @@ package cn.iocoder.mall.promotion.biz.service;
...
@@ -3,7 +3,7 @@ package cn.iocoder.mall.promotion.biz.service;
import
cn.iocoder.common.framework.constant.CommonStatusEnum
;
import
cn.iocoder.common.framework.constant.CommonStatusEnum
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
cn.iocoder.mall.mybatis.enums.DeletedStatusEnum
;
import
cn.iocoder.mall.mybatis.enums.DeletedStatusEnum
;
import
cn.iocoder.mall.product.
api.ProductSpuService
;
import
cn.iocoder.mall.product.
rpc.api.ProductSpuRpc
;
import
cn.iocoder.mall.promotion.api.ProductRecommendService
;
import
cn.iocoder.mall.promotion.api.ProductRecommendService
;
import
cn.iocoder.mall.promotion.api.bo.ProductRecommendBO
;
import
cn.iocoder.mall.promotion.api.bo.ProductRecommendBO
;
import
cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO
;
import
cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO
;
...
@@ -26,7 +26,7 @@ import java.util.List;
...
@@ -26,7 +26,7 @@ import java.util.List;
public
class
ProductRecommendServiceImpl
implements
ProductRecommendService
{
public
class
ProductRecommendServiceImpl
implements
ProductRecommendService
{
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.consumer.ProductSpuService.version}"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.consumer.ProductSpuService.version}"
)
private
ProductSpu
Service
productSpuService
;
private
ProductSpu
Rpc
productSpuRpc
;
@Autowired
@Autowired
private
ProductRecommendMapper
productRecommendMapper
;
private
ProductRecommendMapper
productRecommendMapper
;
...
@@ -52,7 +52,7 @@ public class ProductRecommendServiceImpl implements ProductRecommendService {
...
@@ -52,7 +52,7 @@ public class ProductRecommendServiceImpl implements ProductRecommendService {
@Override
@Override
public
ProductRecommendBO
addProductRecommend
(
Integer
adminId
,
ProductRecommendAddDTO
productRecommendAddDTO
)
{
public
ProductRecommendBO
addProductRecommend
(
Integer
adminId
,
ProductRecommendAddDTO
productRecommendAddDTO
)
{
// 校验商品不存在
// 校验商品不存在
if
(
productSpu
Service
.
getProductSpuDetail
(
productRecommendAddDTO
.
getProductSpuId
())
==
null
)
{
if
(
productSpu
Rpc
.
getProductSpuDetail
(
productRecommendAddDTO
.
getProductSpuId
())
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
.
getCode
());
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
.
getCode
());
}
}
// 校验商品是否已经推荐
// 校验商品是否已经推荐
...
@@ -74,7 +74,7 @@ public class ProductRecommendServiceImpl implements ProductRecommendService {
...
@@ -74,7 +74,7 @@ public class ProductRecommendServiceImpl implements ProductRecommendService {
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_NOT_EXISTS
.
getCode
());
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_NOT_EXISTS
.
getCode
());
}
}
// 校验商品不存在
// 校验商品不存在
if
(
productSpu
Service
.
getProductSpuDetail
(
productRecommendUpdateDTO
.
getProductSpuId
())
==
null
)
{
if
(
productSpu
Rpc
.
getProductSpuDetail
(
productRecommendUpdateDTO
.
getProductSpuId
())
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
.
getCode
());
throw
ServiceExceptionUtil
.
exception
(
PromotionErrorCodeEnum
.
PRODUCT_RECOMMEND_PRODUCT_NOT_EXISTS
.
getCode
());
}
}
// 校验商品是否已经推荐
// 校验商品是否已经推荐
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论