Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
90047c10
提交
90047c10
authored
7月 28, 2020
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
商品规格 value 的迁移
上级
7dbbd412
隐藏空白字符变更
内嵌
并排
正在显示
21 个修改的文件
包含
561 行增加
和
116 行删除
+561
-116
ProductAttrController.java
...nagementweb/controller/product/ProductAttrController.java
+29
-5
ProductAttrValueCreateReqVO.java
...ntroller/product/vo/attr/ProductAttrValueCreateReqVO.java
+28
-0
ProductAttrValueRespVO.java
...eb/controller/product/vo/attr/ProductAttrValueRespVO.java
+22
-0
ProductAttrValueUpdateReqVO.java
...ntroller/product/vo/attr/ProductAttrValueUpdateReqVO.java
+28
-0
ProductAttrConvert.java
...all/managementweb/convert/product/ProductAttrConvert.java
+13
-10
ProductAttrKeyManager.java
.../managementweb/manager/product/ProductAttrKeyManager.java
+57
-21
ProductAttrRpc.java
.../iocoder/mall/productservice/rpc/attr/ProductAttrRpc.java
+32
-11
ProductAttrKeyCreateReqDTO.java
...oductservice/rpc/attr/dto/ProductAttrKeyCreateReqDTO.java
+3
-0
ProductAttrKeyUpdateReqDTO.java
...oductservice/rpc/attr/dto/ProductAttrKeyUpdateReqDTO.java
+3
-0
ProductAttrValueCreateReqDTO.java
...uctservice/rpc/attr/dto/ProductAttrValueCreateReqDTO.java
+36
-0
ProductAttrValueRespDTO.java
.../productservice/rpc/attr/dto/ProductAttrValueRespDTO.java
+16
-9
ProductAttrValueUpdateReqDTO.java
...uctservice/rpc/attr/dto/ProductAttrValueUpdateReqDTO.java
+44
-0
ProductAttrConvert.java
.../mall/productservice/convert/attr/ProductAttrConvert.java
+19
-8
ProductAttrValueDO.java
...service/dal/mysql/dataobject/attr/ProductAttrValueDO.java
+5
-3
ProductAttrValueMapper.java
...service/dal/mysql/mapper/attr/ProductAttrValueMapper.java
+4
-0
ProductAttrManager.java
.../mall/productservice/manager/attr/ProductAttrManager.java
+44
-13
ProductAttrRpcImpl.java
...oder/mall/productservice/rpc/attr/ProductAttrRpcImpl.java
+22
-10
ProductAttrService.java
.../mall/productservice/service/attr/ProductAttrService.java
+68
-16
ProductAttrValueBO.java
...ll/productservice/service/attr/bo/ProductAttrValueBO.java
+12
-10
ProductAttrValueCreateBO.java
...ductservice/service/attr/bo/ProductAttrValueCreateBO.java
+35
-0
ProductAttrValueUpdateBO.java
...ductservice/service/attr/bo/ProductAttrValueUpdateBO.java
+41
-0
没有找到文件。
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/ProductAttrController.java
浏览文件 @
90047c10
...
...
@@ -2,10 +2,7 @@ package cn.iocoder.mall.managementweb.controller.product;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyPageReqVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyRespVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyUpdateReqVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.*
;
import
cn.iocoder.mall.managementweb.manager.product.ProductAttrKeyManager
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
...
...
@@ -24,7 +21,7 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
*/
@RestController
@RequestMapping
(
"/product-attr/"
)
@Api
(
tags
=
"商品规格
键
"
)
@Api
(
tags
=
"商品规格"
)
@Validated
public
class
ProductAttrController
{
...
...
@@ -64,4 +61,31 @@ public class ProductAttrController {
return
success
(
productAttrKeyManager
.
pageProductAttrKey
(
pageVO
));
}
@PostMapping
(
"/value/create"
)
@ApiOperation
(
"创建商品规格值"
)
public
CommonResult
<
Integer
>
createProductAttrValue
(
@Valid
ProductAttrValueCreateReqVO
createVO
)
{
return
success
(
productAttrKeyManager
.
createProductAttrValue
(
createVO
));
}
@PostMapping
(
"/value/update"
)
@ApiOperation
(
"更新商品规格值"
)
public
CommonResult
<
Boolean
>
updateProductAttrValue
(
@Valid
ProductAttrValueUpdateReqVO
updateVO
)
{
productAttrKeyManager
.
updateProductAttrValue
(
updateVO
);
return
success
(
true
);
}
@GetMapping
(
"/value/get"
)
@ApiOperation
(
"获得商品规格值"
)
@ApiImplicitParam
(
name
=
"productAttrValueId"
,
value
=
"商品规格值编号"
,
required
=
true
)
public
CommonResult
<
ProductAttrValueRespVO
>
getProductAttrValue
(
@RequestParam
(
"productAttrValueId"
)
Integer
productAttrValueId
)
{
return
success
(
productAttrKeyManager
.
getProductAttrValue
(
productAttrValueId
));
}
@GetMapping
(
"/value/list"
)
@ApiOperation
(
"获得商品规格值列表"
)
@ApiImplicitParam
(
name
=
"productAttrValueIds"
,
value
=
"商品规格值编号列表"
,
required
=
true
)
public
CommonResult
<
List
<
ProductAttrValueRespVO
>>
listProductAttrValues
(
@RequestParam
(
"productAttrValueIds"
)
List
<
Integer
>
productAttrValueIds
)
{
return
success
(
productAttrKeyManager
.
listProductAttrValues
(
productAttrValueIds
));
}
}
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/vo/attr/ProductAttrValueCreateReqVO.java
0 → 100644
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
product
.
vo
.
attr
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"商品规格值创建 Request VO"
)
@Data
public
class
ProductAttrValueCreateReqVO
{
@ApiModelProperty
(
value
=
"规格键编号"
,
required
=
true
,
example
=
"2"
)
@NotNull
(
message
=
"规格键编号不能为空"
)
private
Integer
attrKeyId
;
@ApiModelProperty
(
value
=
"规格值名字"
,
required
=
true
,
example
=
"XXL"
)
@NotEmpty
(
message
=
"规格值名字不能为空"
)
private
String
name
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
,
notes
=
"见 CommonStatusEnum 枚举"
)
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/vo/attr/ProductAttrValueRespVO.java
0 → 100644
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
product
.
vo
.
attr
;
import
lombok.*
;
import
io.swagger.annotations.*
;
import
java.util.*
;
@ApiModel
(
"商品规格值 Response VO"
)
@Data
public
class
ProductAttrValueRespVO
{
@ApiModelProperty
(
value
=
"规格值编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"规格键编号"
,
required
=
true
,
example
=
"2"
)
private
Integer
attrKeyId
;
@ApiModelProperty
(
value
=
"规格值名字"
,
required
=
true
,
example
=
"XXL"
)
private
String
name
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
,
notes
=
"见 CommonStatusEnum 枚举"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
)
private
Date
createTime
;
}
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/vo/attr/ProductAttrValueUpdateReqVO.java
0 → 100644
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
product
.
vo
.
attr
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"商品规格值更新 Request VO"
)
@Data
public
class
ProductAttrValueUpdateReqVO
{
@ApiModelProperty
(
value
=
"规格值编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"规格值编号不能为空"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"规格值名字"
,
required
=
true
,
example
=
"XXL"
)
@NotEmpty
(
message
=
"规格值名字不能为空"
)
private
String
name
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
example
=
"1"
,
notes
=
"见 CommonStatusEnum 枚举"
)
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
management-web-app/src/main/java/cn/iocoder/mall/managementweb/convert/product/ProductAttr
Key
Convert.java
→
management-web-app/src/main/java/cn/iocoder/mall/managementweb/convert/product/ProductAttrConvert.java
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
managementweb
.
convert
.
product
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyPageReqVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyRespVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyUpdateReqVO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyCreateReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyPageReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyRespDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyUpdateReqDTO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.*
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.*
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
ProductAttr
Key
Convert
{
public
interface
ProductAttrConvert
{
ProductAttr
KeyConvert
INSTANCE
=
Mappers
.
getMapper
(
ProductAttrKey
Convert
.
class
);
ProductAttr
Convert
INSTANCE
=
Mappers
.
getMapper
(
ProductAttr
Convert
.
class
);
ProductAttrKeyCreateReqDTO
convert
(
ProductAttrKeyCreateReqVO
bean
);
...
...
@@ -31,4 +25,13 @@ public interface ProductAttrKeyConvert {
ProductAttrKeyPageReqDTO
convert
(
ProductAttrKeyPageReqVO
bean
);
ProductAttrValueCreateReqDTO
convert
(
ProductAttrValueCreateReqVO
bean
);
ProductAttrValueUpdateReqDTO
convert
(
ProductAttrValueUpdateReqVO
bean
);
ProductAttrValueRespVO
convert
(
ProductAttrValueRespDTO
bean
);
List
<
ProductAttrValueRespVO
>
convertList02
(
List
<
ProductAttrValueRespDTO
>
list
);
}
management-web-app/src/main/java/cn/iocoder/mall/managementweb/manager/product/ProductAttrKeyManager.java
浏览文件 @
90047c10
...
...
@@ -2,13 +2,11 @@ package cn.iocoder.mall.managementweb.manager.product;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyCreateReqVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyPageReqVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyRespVO
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.ProductAttrKeyUpdateReqVO
;
import
cn.iocoder.mall.managementweb.convert.product.ProductAttrKeyConvert
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.*
;
import
cn.iocoder.mall.managementweb.convert.product.ProductAttrConvert
;
import
cn.iocoder.mall.productservice.rpc.attr.ProductAttrRpc
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyRespDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrValueRespDTO
;
import
org.apache.dubbo.config.annotation.DubboReference
;
import
org.springframework.stereotype.Service
;
...
...
@@ -31,7 +29,7 @@ public class ProductAttrKeyManager {
*/
public
Integer
createProductAttrKey
(
ProductAttrKeyCreateReqVO
createVO
)
{
CommonResult
<
Integer
>
createProductAttrKeyResult
=
productAttrKeyRpc
.
createProductAttrKey
(
ProductAttr
Key
Convert
.
INSTANCE
.
convert
(
createVO
));
ProductAttrConvert
.
INSTANCE
.
convert
(
createVO
));
createProductAttrKeyResult
.
checkError
();
return
createProductAttrKeyResult
.
getData
();
}
...
...
@@ -43,20 +41,10 @@ public class ProductAttrKeyManager {
*/
public
void
updateProductAttrKey
(
ProductAttrKeyUpdateReqVO
updateVO
)
{
CommonResult
<
Boolean
>
updateProductAttrKeyResult
=
productAttrKeyRpc
.
updateProductAttrKey
(
ProductAttr
Key
Convert
.
INSTANCE
.
convert
(
updateVO
));
ProductAttrConvert
.
INSTANCE
.
convert
(
updateVO
));
updateProductAttrKeyResult
.
checkError
();
}
/**
* 删除商品规格键
*
* @param productAttrKeyId 商品规格键编号
*/
public
void
deleteProductAttrKey
(
Integer
productAttrKeyId
)
{
CommonResult
<
Boolean
>
deleteProductAttrKeyResult
=
productAttrKeyRpc
.
deleteProductAttrKey
(
productAttrKeyId
);
deleteProductAttrKeyResult
.
checkError
();
}
/**
* 获得商品规格键
*
...
...
@@ -66,7 +54,7 @@ public class ProductAttrKeyManager {
public
ProductAttrKeyRespVO
getProductAttrKey
(
Integer
productAttrKeyId
)
{
CommonResult
<
ProductAttrKeyRespDTO
>
getProductAttrKeyResult
=
productAttrKeyRpc
.
getProductAttrKey
(
productAttrKeyId
);
getProductAttrKeyResult
.
checkError
();
return
ProductAttr
Key
Convert
.
INSTANCE
.
convert
(
getProductAttrKeyResult
.
getData
());
return
ProductAttrConvert
.
INSTANCE
.
convert
(
getProductAttrKeyResult
.
getData
());
}
/**
...
...
@@ -78,7 +66,7 @@ public class ProductAttrKeyManager {
public
List
<
ProductAttrKeyRespVO
>
listProductAttrKeys
(
List
<
Integer
>
productAttrKeyIds
)
{
CommonResult
<
List
<
ProductAttrKeyRespDTO
>>
listProductAttrKeyResult
=
productAttrKeyRpc
.
listProductAttrKeys
(
productAttrKeyIds
);
listProductAttrKeyResult
.
checkError
();
return
ProductAttr
Key
Convert
.
INSTANCE
.
convertList
(
listProductAttrKeyResult
.
getData
());
return
ProductAttrConvert
.
INSTANCE
.
convertList
(
listProductAttrKeyResult
.
getData
());
}
/**
...
...
@@ -89,9 +77,57 @@ public class ProductAttrKeyManager {
*/
public
PageResult
<
ProductAttrKeyRespVO
>
pageProductAttrKey
(
ProductAttrKeyPageReqVO
pageVO
)
{
CommonResult
<
PageResult
<
ProductAttrKeyRespDTO
>>
pageProductAttrKeyResult
=
productAttrKeyRpc
.
pageProductAttrKey
(
ProductAttr
Key
Convert
.
INSTANCE
.
convert
(
pageVO
));
ProductAttrConvert
.
INSTANCE
.
convert
(
pageVO
));
pageProductAttrKeyResult
.
checkError
();
return
ProductAttrKeyConvert
.
INSTANCE
.
convertPage
(
pageProductAttrKeyResult
.
getData
());
return
ProductAttrConvert
.
INSTANCE
.
convertPage
(
pageProductAttrKeyResult
.
getData
());
}
/**
* 创建商品规格值
*
* @param createVO 创建商品规格值 VO
* @return 商品规格值
*/
public
Integer
createProductAttrValue
(
ProductAttrValueCreateReqVO
createVO
)
{
CommonResult
<
Integer
>
createProductAttrValueResult
=
productAttrKeyRpc
.
createProductAttrValue
(
ProductAttrConvert
.
INSTANCE
.
convert
(
createVO
));
createProductAttrValueResult
.
checkError
();
return
createProductAttrValueResult
.
getData
();
}
/**
* 更新商品规格值
*
* @param updateVO 更新商品规格值 VO
*/
public
void
updateProductAttrValue
(
ProductAttrValueUpdateReqVO
updateVO
)
{
CommonResult
<
Boolean
>
updateProductAttrValueResult
=
productAttrKeyRpc
.
updateProductAttrValue
(
ProductAttrConvert
.
INSTANCE
.
convert
(
updateVO
));
updateProductAttrValueResult
.
checkError
();
}
/**
* 获得商品规格值
*
* @param productAttrValueId 商品规格值编号
* @return 商品规格值
*/
public
ProductAttrValueRespVO
getProductAttrValue
(
Integer
productAttrValueId
)
{
CommonResult
<
ProductAttrValueRespDTO
>
getProductAttrValueResult
=
productAttrKeyRpc
.
getProductAttrValue
(
productAttrValueId
);
getProductAttrValueResult
.
checkError
();
return
ProductAttrConvert
.
INSTANCE
.
convert
(
getProductAttrValueResult
.
getData
());
}
/**
* 获得商品规格值列表
*
* @param productAttrValueIds 商品规格值编号列表
* @return 商品规格值列表
*/
public
List
<
ProductAttrValueRespVO
>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
)
{
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValueResult
=
productAttrKeyRpc
.
listProductAttrValues
(
productAttrValueIds
);
listProductAttrValueResult
.
checkError
();
return
ProductAttrConvert
.
INSTANCE
.
convertList02
(
listProductAttrValueResult
.
getData
());
}
}
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/ProductAttrRpc.java
浏览文件 @
90047c10
...
...
@@ -2,10 +2,7 @@ package cn.iocoder.mall.productservice.rpc.attr;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyCreateReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyPageReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyRespDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyUpdateReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.*
;
import
java.util.List
;
...
...
@@ -29,13 +26,6 @@ public interface ProductAttrRpc {
*/
CommonResult
<
Boolean
>
updateProductAttrKey
(
ProductAttrKeyUpdateReqDTO
updateDTO
);
/**
* 删除商品规格键
*
* @param productAttrKeyId 商品规格键编号
*/
CommonResult
<
Boolean
>
deleteProductAttrKey
(
Integer
productAttrKeyId
);
/**
* 获得商品规格键
*
...
...
@@ -60,4 +50,35 @@ public interface ProductAttrRpc {
*/
CommonResult
<
PageResult
<
ProductAttrKeyRespDTO
>>
pageProductAttrKey
(
ProductAttrKeyPageReqDTO
pageDTO
);
/**
* 创建商品规格值
*
* @param createDTO 创建商品规格值 DTO
* @return 商品规格值编号
*/
CommonResult
<
Integer
>
createProductAttrValue
(
ProductAttrValueCreateReqDTO
createDTO
);
/**
* 更新商品规格值
*
* @param updateDTO 更新商品规格值 DTO
*/
CommonResult
<
Boolean
>
updateProductAttrValue
(
ProductAttrValueUpdateReqDTO
updateDTO
);
/**
* 获得商品规格值
*
* @param productAttrValueId 商品规格值编号
* @return 商品规格值
*/
CommonResult
<
ProductAttrValueRespDTO
>
getProductAttrValue
(
Integer
productAttrValueId
);
/**
* 获得商品规格值列表
*
* @param productAttrValueIds 商品规格值编号列表
* @return 商品规格值列表
*/
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
);
}
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/dto/ProductAttrKeyCreateReqDTO.java
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
productservice
.
rpc
.
attr
.
dto
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
@@ -23,6 +25,7 @@ public class ProductAttrKeyCreateReqDTO implements Serializable {
* 状态
*/
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/dto/ProductAttrKeyUpdateReqDTO.java
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
productservice
.
rpc
.
attr
.
dto
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
@@ -28,6 +30,7 @@ public class ProductAttrKeyUpdateReqDTO implements Serializable {
* 状态
*/
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/dto/ProductAttrValueCreateReqDTO.java
0 → 100644
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
productservice
.
rpc
.
attr
.
dto
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 商品规格值创建 Request DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrValueCreateReqDTO
implements
Serializable
{
/**
* 规格键编号
*/
@NotNull
(
message
=
"规格键编号不能为空"
)
private
Integer
attrKeyId
;
/**
* 规格值名字
*/
@NotEmpty
(
message
=
"规格值名字不能为空"
)
private
String
name
;
/**
* 状态
*/
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
product
/product-service-impl/src/main/java/cn/iocoder/mall/product/dataobject/ProductAttrD
O.java
→
product
-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/dto/ProductAttrValueRespDT
O.java
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
product
.
dataobject
;
package
cn
.
iocoder
.
mall
.
product
service
.
rpc
.
attr
.
dto
;
import
cn.iocoder.mall.mybatis.core.dataobject.DeletableDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
*
Product 规格
*
商品规格值 Response DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttr
DO
extends
DeletableDO
{
public
class
ProductAttr
ValueRespDTO
implements
Serializable
{
/**
* 规格编号
* 规格
值
编号
*/
private
Integer
id
;
/**
* 名称
* 规格键编号
*/
private
Integer
attrKeyId
;
/**
* 规格值名字
*/
private
String
name
;
/**
* 状态
*
* 1-开启
* 2-禁用
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
}
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/dto/ProductAttrValueUpdateReqDTO.java
0 → 100644
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
productservice
.
rpc
.
attr
.
dto
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.*
;
import
lombok.experimental.*
;
import
io.swagger.annotations.*
;
import
java.util.*
;
import
java.io.Serializable
;
import
javax.validation.constraints.*
;
/**
* 商品规格值更新 Request DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrValueUpdateReqDTO
implements
Serializable
{
/**
* 规格值编号
*/
@NotNull
(
message
=
"规格值编号不能为空"
)
private
Integer
id
;
/**
* 规格键编号
*/
@NotNull
(
message
=
"规格键编号不能为空"
)
private
Integer
attrKeyId
;
/**
* 规格值名字
*/
@NotEmpty
(
message
=
"规格值名字不能为空"
)
private
String
name
;
/**
* 状态
*/
@NotNull
(
message
=
"状态不能为空"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/convert/attr/ProductAttrConvert.java
浏览文件 @
90047c10
...
...
@@ -2,14 +2,9 @@ package cn.iocoder.mall.productservice.convert.attr;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.productservice.dal.mysql.dataobject.attr.ProductAttrKeyDO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyCreateReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyPageReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyRespDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyUpdateReqDTO
;
import
cn.iocoder.mall.productservice.service.attr.bo.ProductAttrKeyBO
;
import
cn.iocoder.mall.productservice.service.attr.bo.ProductAttrKeyCreateBO
;
import
cn.iocoder.mall.productservice.service.attr.bo.ProductAttrKeyPageBO
;
import
cn.iocoder.mall.productservice.service.attr.bo.ProductAttrKeyUpdateBO
;
import
cn.iocoder.mall.productservice.dal.mysql.dataobject.attr.ProductAttrValueDO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.*
;
import
cn.iocoder.mall.productservice.service.attr.bo.*
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
...
...
@@ -43,4 +38,20 @@ public interface ProductAttrConvert {
PageResult
<
ProductAttrKeyRespDTO
>
convertPage
(
PageResult
<
ProductAttrKeyBO
>
page
);
ProductAttrValueDO
convert
(
ProductAttrValueCreateBO
bean
);
ProductAttrValueBO
convert
(
ProductAttrValueDO
bean
);
ProductAttrValueDO
convert
(
ProductAttrValueUpdateBO
bean
);
List
<
ProductAttrValueBO
>
convertList03
(
List
<
ProductAttrValueDO
>
list
);
ProductAttrValueCreateBO
convert
(
ProductAttrValueCreateReqDTO
bean
);
ProductAttrValueUpdateBO
convert
(
ProductAttrValueUpdateReqDTO
bean
);
ProductAttrValueRespDTO
convert
(
ProductAttrValueBO
bean
);
List
<
ProductAttrValueRespDTO
>
convertList04
(
List
<
ProductAttrValueBO
>
list
);
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/dal/mysql/dataobject/attr/ProductAttrValueDO.java
浏览文件 @
90047c10
...
...
@@ -21,11 +21,13 @@ public class ProductAttrValueDO extends DeletableDO {
*/
private
Integer
id
;
/**
* 规格编号
* 规格键编号
*
* 外键 {@link ProductAttrKeyDO#getId()}
*/
private
Integer
attrId
;
private
Integer
attr
Key
Id
;
/**
* 规格值
* 规格值
名字
*/
private
String
name
;
/**
...
...
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/dal/mysql/mapper/attr/ProductAttrValueMapper.java
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
productservice
.
dal
.
mysql
.
mapper
.
attr
;
import
cn.iocoder.mall.productservice.dal.mysql.dataobject.attr.ProductAttrValueDO
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
ProductAttrValueMapper
extends
BaseMapper
<
ProductAttrValueDO
>
{
default
ProductAttrValueDO
selectByAttrKeyIdAndName
(
Integer
attrKeyId
,
String
name
)
{
return
selectOne
(
new
QueryWrapper
<
ProductAttrValueDO
>().
eq
(
"attrKeyId"
,
attrKeyId
).
eq
(
"name"
,
name
));
}
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/manager/attr/ProductAttrManager.java
浏览文件 @
90047c10
...
...
@@ -2,12 +2,10 @@ package cn.iocoder.mall.productservice.manager.attr;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.productservice.convert.attr.ProductAttrConvert
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyCreateReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyPageReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyRespDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyUpdateReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.*
;
import
cn.iocoder.mall.productservice.service.attr.ProductAttrService
;
import
cn.iocoder.mall.productservice.service.attr.bo.ProductAttrKeyBO
;
import
cn.iocoder.mall.productservice.service.attr.bo.ProductAttrValueBO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -42,15 +40,6 @@ public class ProductAttrManager {
productAttrService
.
updateProductAttrKey
(
ProductAttrConvert
.
INSTANCE
.
convert
(
updateDTO
));
}
/**
* 删除商品规格键
*
* @param productAttrKeyId 商品规格键编号
*/
public
void
deleteProductAttrKey
(
Integer
productAttrKeyId
)
{
productAttrService
.
deleteProductAttrKey
(
productAttrKeyId
);
}
/**
* 获得商品规格键
*
...
...
@@ -84,4 +73,46 @@ public class ProductAttrManager {
return
ProductAttrConvert
.
INSTANCE
.
convertPage
(
pageResultBO
);
}
/**
* 创建商品规格值
*
* @param createDTO 创建商品规格值 DTO
* @return 商品规格值
*/
public
Integer
createProductAttrValue
(
ProductAttrValueCreateReqDTO
createDTO
)
{
ProductAttrValueBO
productAttrValueBO
=
productAttrService
.
createProductAttrValue
(
ProductAttrConvert
.
INSTANCE
.
convert
(
createDTO
));
return
productAttrValueBO
.
getId
();
}
/**
* 更新商品规格值
*
* @param updateDTO 更新商品规格值 DTO
*/
public
void
updateProductAttrValue
(
ProductAttrValueUpdateReqDTO
updateDTO
)
{
productAttrService
.
updateProductAttrValue
(
ProductAttrConvert
.
INSTANCE
.
convert
(
updateDTO
));
}
/**
* 获得商品规格值
*
* @param productAttrValueId 商品规格值编号
* @return 商品规格值
*/
public
ProductAttrValueRespDTO
getProductAttrValue
(
Integer
productAttrValueId
)
{
ProductAttrValueBO
productAttrValueBO
=
productAttrService
.
getProductAttrValue
(
productAttrValueId
);
return
ProductAttrConvert
.
INSTANCE
.
convert
(
productAttrValueBO
);
}
/**
* 获得商品规格值列表
*
* @param productAttrValueIds 商品规格值编号列表
* @return 商品规格值列表
*/
public
List
<
ProductAttrValueRespDTO
>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
)
{
List
<
ProductAttrValueBO
>
productAttrValueBOs
=
productAttrService
.
listProductAttrValues
(
productAttrValueIds
);
return
ProductAttrConvert
.
INSTANCE
.
convertList04
(
productAttrValueBOs
);
}
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/rpc/attr/ProductAttrRpcImpl.java
浏览文件 @
90047c10
...
...
@@ -3,10 +3,7 @@ package cn.iocoder.mall.productservice.rpc.attr;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.productservice.manager.attr.ProductAttrManager
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyCreateReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyPageReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyRespDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.ProductAttrKeyUpdateReqDTO
;
import
cn.iocoder.mall.productservice.rpc.attr.dto.*
;
import
org.apache.dubbo.config.annotation.DubboService
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -34,12 +31,6 @@ public class ProductAttrRpcImpl implements ProductAttrRpc {
return
success
(
true
);
}
@Override
public
CommonResult
<
Boolean
>
deleteProductAttrKey
(
Integer
productAttrKeyId
)
{
productAttrManager
.
deleteProductAttrKey
(
productAttrKeyId
);
return
success
(
true
);
}
@Override
public
CommonResult
<
ProductAttrKeyRespDTO
>
getProductAttrKey
(
Integer
productAttrKeyId
)
{
return
success
(
productAttrManager
.
getProductAttrKey
(
productAttrKeyId
));
...
...
@@ -55,4 +46,25 @@ public class ProductAttrRpcImpl implements ProductAttrRpc {
return
success
(
productAttrManager
.
pageProductAttrKey
(
pageDTO
));
}
@Override
public
CommonResult
<
Integer
>
createProductAttrValue
(
ProductAttrValueCreateReqDTO
createDTO
)
{
return
success
(
productAttrManager
.
createProductAttrValue
(
createDTO
));
}
@Override
public
CommonResult
<
Boolean
>
updateProductAttrValue
(
ProductAttrValueUpdateReqDTO
updateDTO
)
{
productAttrManager
.
updateProductAttrValue
(
updateDTO
);
return
success
(
true
);
}
@Override
public
CommonResult
<
ProductAttrValueRespDTO
>
getProductAttrValue
(
Integer
productAttrValueId
)
{
return
success
(
productAttrManager
.
getProductAttrValue
(
productAttrValueId
));
}
@Override
public
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
)
{
return
success
(
productAttrManager
.
listProductAttrValues
(
productAttrValueIds
));
}
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/service/attr/ProductAttrService.java
浏览文件 @
90047c10
...
...
@@ -50,7 +50,7 @@ public class ProductAttrService {
}
}
// 然后,校验规 Key
Set
<
Integer
>
attrKeyIds
=
CollectionUtils
.
convertSet
(
attrValues
,
ProductAttrValueDO:
:
getAttrId
);
Set
<
Integer
>
attrKeyIds
=
CollectionUtils
.
convertSet
(
attrValues
,
ProductAttrValueDO:
:
getAttr
Key
Id
);
List
<
ProductAttrKeyDO
>
attrKeys
=
productAttrKeyMapper
.
selectBatchIds
(
attrKeyIds
);
if
(
attrKeys
.
size
()
!=
attrKeyIds
.
size
())
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_ATTR_KEY_NOT_EXIST
);
...
...
@@ -66,7 +66,7 @@ public class ProductAttrService {
Map
<
Integer
,
ProductAttrKeyDO
>
attrKeyMap
=
CollectionUtils
.
convertMap
(
attrKeys
,
ProductAttrKeyDO:
:
getId
,
attrKeyDO
->
attrKeyDO
);
// ProductAttrDO 的映射,方便查找。
return
attrValues
.
stream
().
map
(
attrValueDO
->
new
ProductAttrKeyValueBO
()
.
setAttrKeyId
(
attrValueDO
.
getAttr
Id
()).
setAttrKeyName
(
attrKeyMap
.
get
(
attrValueDO
.
getAttr
Id
()).
getName
())
.
setAttrKeyId
(
attrValueDO
.
getAttr
KeyId
()).
setAttrKeyName
(
attrKeyMap
.
get
(
attrValueDO
.
getAttrKey
Id
()).
getName
())
.
setAttrValueId
(
attrValueDO
.
getId
()).
setAttrValueName
(
attrValueDO
.
getName
()))
.
collect
(
Collectors
.
toList
());
}
...
...
@@ -109,20 +109,6 @@ public class ProductAttrService {
productAttrKeyMapper
.
updateById
(
updateObject
);
}
/**
* 删除商品规格键
*
* @param productAttrKeyId 商品规格键编号
*/
public
void
deleteProductAttrKey
(
Integer
productAttrKeyId
)
{
// 校验删除的商品规格键是否存在
if
(
productAttrKeyMapper
.
selectById
(
productAttrKeyId
)
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_ATTR_KEY_NOT_EXIST
);
}
// 标记删除
productAttrKeyMapper
.
deleteById
(
productAttrKeyId
);
}
/**
* 获得商品规格键
*
...
...
@@ -156,4 +142,70 @@ public class ProductAttrService {
return
ProductAttrConvert
.
INSTANCE
.
convertPage
(
productAttrKeyDOPage
);
}
/**
* 创建商品规格值
*
* @param createBO 创建商品规格值 BO
* @return 商品规格值
*/
public
ProductAttrValueBO
createProductAttrValue
(
@Valid
ProductAttrValueCreateBO
createBO
)
{
// 校验规格键是否存在
if
(
productAttrKeyMapper
.
selectById
(
createBO
.
getAttrKeyId
())
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_ATTR_KEY_NOT_EXIST
);
}
// 校验规格值的名字是否重复
if
(
productAttrValueMapper
.
selectByAttrKeyIdAndName
(
createBO
.
getAttrKeyId
(),
createBO
.
getName
())
!=
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_ATTR_VALUE_EXISTS
);
}
// 插入到数据库
ProductAttrValueDO
productAttrValueDO
=
ProductAttrConvert
.
INSTANCE
.
convert
(
createBO
);
productAttrValueMapper
.
insert
(
productAttrValueDO
);
// 返回
return
ProductAttrConvert
.
INSTANCE
.
convert
(
productAttrValueDO
);
}
/**
* 更新商品规格值
*
* @param updateBO 更新商品规格值 BO
*/
public
void
updateProductAttrValue
(
@Valid
ProductAttrValueUpdateBO
updateBO
)
{
// 校验更新的商品规格值是否存在
ProductAttrValueDO
attrValueDO
=
productAttrValueMapper
.
selectById
(
updateBO
.
getId
());
if
(
attrValueDO
==
null
)
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_ATTR_VALUE_NOT_EXIST
);
}
// 校验规格值的名字是否重复
ProductAttrValueDO
attrValueDOByName
=
productAttrValueMapper
.
selectByAttrKeyIdAndName
(
attrValueDO
.
getAttrKeyId
(),
updateBO
.
getName
());
if
(
attrValueDOByName
!=
null
&&
!
attrValueDOByName
.
getId
().
equals
(
updateBO
.
getId
()))
{
throw
ServiceExceptionUtil
.
exception
(
PRODUCT_ATTR_VALUE_EXISTS
);
}
// 更新到数据库
ProductAttrValueDO
updateObject
=
ProductAttrConvert
.
INSTANCE
.
convert
(
updateBO
);
productAttrValueMapper
.
updateById
(
updateObject
);
}
/**
* 获得商品规格值
*
* @param productAttrValueId 商品规格值编号
* @return 商品规格值
*/
public
ProductAttrValueBO
getProductAttrValue
(
Integer
productAttrValueId
)
{
ProductAttrValueDO
productAttrValueDO
=
productAttrValueMapper
.
selectById
(
productAttrValueId
);
return
ProductAttrConvert
.
INSTANCE
.
convert
(
productAttrValueDO
);
}
/**
* 获得商品规格值列表
*
* @param productAttrValueIds 商品规格值编号列表
* @return 商品规格值列表
*/
public
List
<
ProductAttrValueBO
>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
)
{
List
<
ProductAttrValueDO
>
productAttrValueDOs
=
productAttrValueMapper
.
selectBatchIds
(
productAttrValueIds
);
return
ProductAttrConvert
.
INSTANCE
.
convertList03
(
productAttrValueDOs
);
}
}
product
/product-service-impl/src/main/java/cn/iocoder/mall/product/dataobject/ProductAttrValueD
O.java
→
product
-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/service/attr/bo/ProductAttrValueB
O.java
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
product
.
dataobject
;
package
cn
.
iocoder
.
mall
.
product
service
.
service
.
attr
.
bo
;
import
cn.iocoder.mall.mybatis.core.dataobject.DeletableDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
/**
*
Product 规格值
*
商品规格值 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrValue
DO
extends
DeletableD
O
{
public
class
ProductAttrValue
B
O
{
/**
* 规格值编号
*/
private
Integer
id
;
/**
* 规格编号
* 规格
键
编号
*/
private
Integer
attrId
;
private
Integer
attr
Key
Id
;
/**
* 规格值
* 规格值
名字
*/
private
String
name
;
/**
* 状态
*
* 1-正常
* 2-禁用
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/service/attr/bo/ProductAttrValueCreateBO.java
0 → 100644
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
productservice
.
service
.
attr
.
bo
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* 商品规格值创建 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrValueCreateBO
{
/**
* 规格键编号
*/
@NotNull
(
message
=
"规格键编号不能为空"
)
private
Integer
attrKeyId
;
/**
* 规格值名字
*/
@NotEmpty
(
message
=
"规格值名字不能为空"
)
private
String
name
;
/**
* 状态
*/
@NotNull
(
message
=
"状态"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/service/attr/bo/ProductAttrValueUpdateBO.java
0 → 100644
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
productservice
.
service
.
attr
.
bo
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* 商品规格值更新 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrValueUpdateBO
{
/**
* 规格值编号
*/
@NotNull
(
message
=
"规格值编号不能为空"
)
private
Integer
id
;
/**
* 规格键编号
*/
@NotNull
(
message
=
"规格键编号不能为空"
)
private
Integer
attrKeyId
;
/**
* 规格值名字
*/
@NotEmpty
(
message
=
"规格值名字不能为空"
)
private
String
name
;
/**
* 状态
*/
@NotNull
(
message
=
"状态"
)
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
private
Integer
status
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论