Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
72347c81
提交
72347c81
authored
7月 29, 2020
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
商品规格的迁移
上级
90047c10
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
111 行增加
和
146 行删除
+111
-146
GlobalExceptionHandler.java
...iocoder/mall/web/core/handler/GlobalExceptionHandler.java
+18
-16
ProductAttrController.http
...nagementweb/controller/product/ProductAttrController.http
+7
-0
ProductAttrController.java
...nagementweb/controller/product/ProductAttrController.java
+14
-5
ProductAttrValueListQueryReqVO.java
...oller/product/vo/attr/ProductAttrValueListQueryReqVO.java
+21
-0
ProductAttrConvert.java
...all/managementweb/convert/product/ProductAttrConvert.java
+2
-0
ProductAttrKeyManager.java
.../managementweb/manager/product/ProductAttrKeyManager.java
+4
-3
ProductAttrRpc.java
.../iocoder/mall/productservice/rpc/attr/ProductAttrRpc.java
+2
-2
ProductAttrValueListQueryRequestDTO.java
...ice/rpc/attr/dto/ProductAttrValueListQueryRequestDTO.java
+8
-7
ProductAttrValueUpdateReqDTO.java
...uctservice/rpc/attr/dto/ProductAttrValueUpdateReqDTO.java
+4
-12
ProductAttrConvert.java
.../mall/productservice/convert/attr/ProductAttrConvert.java
+5
-1
ProductAttrValueMapper.java
...service/dal/mysql/mapper/attr/ProductAttrValueMapper.java
+10
-1
ProductAttrManager.java
.../mall/productservice/manager/attr/ProductAttrManager.java
+3
-3
ProductAttrRpcImpl.java
...oder/mall/productservice/rpc/attr/ProductAttrRpcImpl.java
+2
-2
ProductAttrService.java
.../mall/productservice/service/attr/ProductAttrService.java
+3
-3
ProductAttrValueListQueryBO.java
...tservice/service/attr/bo/ProductAttrValueListQueryBO.java
+8
-8
ProductAttrDetailBO.java
...oder/mall/product/biz/bo/product/ProductAttrDetailBO.java
+0
-38
ProductAttrService.java
.../java/cn/iocoder/mall/product/api/ProductAttrService.java
+0
-7
ProductAttrDetailBO.java
...a/cn/iocoder/mall/product/api/bo/ProductAttrDetailBO.java
+0
-38
没有找到文件。
common/mall-spring-boot-starter-web/src/main/java/cn/iocoder/mall/web/core/handler/GlobalExceptionHandler.java
浏览文件 @
72347c81
...
@@ -66,8 +66,8 @@ public class GlobalExceptionHandler {
...
@@ -66,8 +66,8 @@ public class GlobalExceptionHandler {
@ExceptionHandler
(
value
=
MissingServletRequestParameterException
.
class
)
@ExceptionHandler
(
value
=
MissingServletRequestParameterException
.
class
)
public
CommonResult
missingServletRequestParameterExceptionHandler
(
MissingServletRequestParameterException
ex
)
{
public
CommonResult
missingServletRequestParameterExceptionHandler
(
MissingServletRequestParameterException
ex
)
{
logger
.
warn
(
"[missingServletRequestParameterExceptionHandler]"
,
ex
);
logger
.
warn
(
"[missingServletRequestParameterExceptionHandler]"
,
ex
);
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
String
.
format
(
"请求参数缺失:%s"
,
ex
.
getParameterName
()))
String
.
format
(
"请求参数缺失:%s"
,
ex
.
getParameterName
()
));
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
/**
/**
...
@@ -78,8 +78,8 @@ public class GlobalExceptionHandler {
...
@@ -78,8 +78,8 @@ public class GlobalExceptionHandler {
@ExceptionHandler
(
MethodArgumentTypeMismatchException
.
class
)
@ExceptionHandler
(
MethodArgumentTypeMismatchException
.
class
)
public
CommonResult
methodArgumentTypeMismatchExceptionHandler
(
MethodArgumentTypeMismatchException
ex
)
{
public
CommonResult
methodArgumentTypeMismatchExceptionHandler
(
MethodArgumentTypeMismatchException
ex
)
{
logger
.
warn
(
"[missingServletRequestParameterExceptionHandler]"
,
ex
);
logger
.
warn
(
"[missingServletRequestParameterExceptionHandler]"
,
ex
);
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
String
.
format
(
"请求参数类型错误:%s"
,
ex
.
getMessage
()))
String
.
format
(
"请求参数类型错误:%s"
,
ex
.
getMessage
()
));
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
/**
/**
...
@@ -90,8 +90,8 @@ public class GlobalExceptionHandler {
...
@@ -90,8 +90,8 @@ public class GlobalExceptionHandler {
logger
.
warn
(
"[methodArgumentNotValidExceptionExceptionHandler]"
,
ex
);
logger
.
warn
(
"[methodArgumentNotValidExceptionExceptionHandler]"
,
ex
);
FieldError
fieldError
=
ex
.
getBindingResult
().
getFieldError
();
FieldError
fieldError
=
ex
.
getBindingResult
().
getFieldError
();
assert
fieldError
!=
null
;
// 断言,避免告警
assert
fieldError
!=
null
;
// 断言,避免告警
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
String
.
format
(
"请求参数不正确:%s"
,
fieldError
.
getDefaultMessage
()))
String
.
format
(
"请求参数不正确:%s"
,
fieldError
.
getDefaultMessage
()
));
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
/**
/**
...
@@ -102,8 +102,8 @@ public class GlobalExceptionHandler {
...
@@ -102,8 +102,8 @@ public class GlobalExceptionHandler {
logger
.
warn
(
"[handleBindException]"
,
ex
);
logger
.
warn
(
"[handleBindException]"
,
ex
);
FieldError
fieldError
=
ex
.
getFieldError
();
FieldError
fieldError
=
ex
.
getFieldError
();
assert
fieldError
!=
null
;
// 断言,避免告警
assert
fieldError
!=
null
;
// 断言,避免告警
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
String
.
format
(
"请求参数不正确:%s"
,
fieldError
.
getDefaultMessage
()))
String
.
format
(
"请求参数不正确:%s"
,
fieldError
.
getDefaultMessage
()
));
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
/**
/**
...
@@ -113,8 +113,8 @@ public class GlobalExceptionHandler {
...
@@ -113,8 +113,8 @@ public class GlobalExceptionHandler {
public
CommonResult
constraintViolationExceptionHandler
(
ConstraintViolationException
ex
)
{
public
CommonResult
constraintViolationExceptionHandler
(
ConstraintViolationException
ex
)
{
logger
.
warn
(
"[constraintViolationExceptionHandler]"
,
ex
);
logger
.
warn
(
"[constraintViolationExceptionHandler]"
,
ex
);
ConstraintViolation
<?>
constraintViolation
=
ex
.
getConstraintViolations
().
iterator
().
next
();
ConstraintViolation
<?>
constraintViolation
=
ex
.
getConstraintViolations
().
iterator
().
next
();
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
String
.
format
(
"请求参数不正确:%s"
,
constraintViolation
.
getMessage
()))
String
.
format
(
"请求参数不正确:%s"
,
constraintViolation
.
getMessage
()
));
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
/**
/**
...
@@ -127,8 +127,8 @@ public class GlobalExceptionHandler {
...
@@ -127,8 +127,8 @@ public class GlobalExceptionHandler {
@ExceptionHandler
(
NoHandlerFoundException
.
class
)
@ExceptionHandler
(
NoHandlerFoundException
.
class
)
public
CommonResult
noHandlerFoundExceptionHandler
(
NoHandlerFoundException
ex
)
{
public
CommonResult
noHandlerFoundExceptionHandler
(
NoHandlerFoundException
ex
)
{
logger
.
warn
(
"[noHandlerFoundExceptionHandler]"
,
ex
);
logger
.
warn
(
"[noHandlerFoundExceptionHandler]"
,
ex
);
return
CommonResult
.
error
(
GlobalErrorCodeConstants
.
NOT_FOUND
.
getCode
(),
return
CommonResult
.
error
(
GlobalErrorCodeConstants
.
NOT_FOUND
.
getCode
(),
String
.
format
(
"请求地址不存在:%s"
,
ex
.
getRequestURL
()))
String
.
format
(
"请求地址不存在:%s"
,
ex
.
getRequestURL
()
));
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
/**
/**
...
@@ -139,8 +139,8 @@ public class GlobalExceptionHandler {
...
@@ -139,8 +139,8 @@ public class GlobalExceptionHandler {
@ExceptionHandler
(
HttpRequestMethodNotSupportedException
.
class
)
@ExceptionHandler
(
HttpRequestMethodNotSupportedException
.
class
)
public
CommonResult
httpRequestMethodNotSupportedExceptionHandler
(
HttpRequestMethodNotSupportedException
ex
)
{
public
CommonResult
httpRequestMethodNotSupportedExceptionHandler
(
HttpRequestMethodNotSupportedException
ex
)
{
logger
.
warn
(
"[httpRequestMethodNotSupportedExceptionHandler]"
,
ex
);
logger
.
warn
(
"[httpRequestMethodNotSupportedExceptionHandler]"
,
ex
);
return
CommonResult
.
error
(
GlobalErrorCodeConstants
.
METHOD_NOT_ALLOWED
.
getCode
(),
return
CommonResult
.
error
(
GlobalErrorCodeConstants
.
METHOD_NOT_ALLOWED
.
getCode
(),
String
.
format
(
"请求方法不正确:%s"
,
ex
.
getMessage
()))
String
.
format
(
"请求方法不正确:%s"
,
ex
.
getMessage
()
));
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
/**
/**
...
@@ -180,7 +180,8 @@ public class GlobalExceptionHandler {
...
@@ -180,7 +180,8 @@ public class GlobalExceptionHandler {
public
CommonResult
validationException
(
ValidationException
ex
)
{
public
CommonResult
validationException
(
ValidationException
ex
)
{
logger
.
warn
(
"[constraintViolationExceptionHandler]"
,
ex
);
logger
.
warn
(
"[constraintViolationExceptionHandler]"
,
ex
);
// 无法拼接明细的错误信息,因为 Dubbo Consumer 抛出 ValidationException 异常时,是直接的字符串信息,且人类不可读
// 无法拼接明细的错误信息,因为 Dubbo Consumer 抛出 ValidationException 异常时,是直接的字符串信息,且人类不可读
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
"请求参数不正确"
);
return
CommonResult
.
error
(
BAD_REQUEST
.
getCode
(),
"请求参数不正确"
)
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
/**
/**
...
@@ -192,7 +193,8 @@ public class GlobalExceptionHandler {
...
@@ -192,7 +193,8 @@ public class GlobalExceptionHandler {
// 插入异常日志
// 插入异常日志
this
.
createExceptionLog
(
req
,
ex
);
this
.
createExceptionLog
(
req
,
ex
);
// 返回 ERROR CommonResult
// 返回 ERROR CommonResult
return
CommonResult
.
error
(
INTERNAL_SERVER_ERROR
.
getCode
(),
INTERNAL_SERVER_ERROR
.
getMessage
());
return
CommonResult
.
error
(
INTERNAL_SERVER_ERROR
.
getCode
(),
INTERNAL_SERVER_ERROR
.
getMessage
())
.
setDetailMessage
(
ExceptionUtil
.
getRootCauseMessage
(
ex
));
}
}
public
void
createExceptionLog
(
HttpServletRequest
req
,
Throwable
e
)
{
public
void
createExceptionLog
(
HttpServletRequest
req
,
Throwable
e
)
{
...
...
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/ProductAttrController.http
0 → 100644
浏览文件 @
72347c81
### /product-attr/page 成功(全部)
GET {{baseUrl}}/product-attr/key/page?pageNo=1&pageSize=10
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {{accessToken}}
###
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/ProductAttrController.java
浏览文件 @
72347c81
...
@@ -4,6 +4,7 @@ import cn.iocoder.common.framework.vo.CommonResult;
...
@@ -4,6 +4,7 @@ import cn.iocoder.common.framework.vo.CommonResult;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.common.framework.vo.PageResult
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.*
;
import
cn.iocoder.mall.managementweb.controller.product.vo.attr.*
;
import
cn.iocoder.mall.managementweb.manager.product.ProductAttrKeyManager
;
import
cn.iocoder.mall.managementweb.manager.product.ProductAttrKeyManager
;
import
cn.iocoder.security.annotations.RequiresPermissions
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -30,12 +31,14 @@ public class ProductAttrController {
...
@@ -30,12 +31,14 @@ public class ProductAttrController {
@PostMapping
(
"/key/create"
)
@PostMapping
(
"/key/create"
)
@ApiOperation
(
"创建商品规格键"
)
@ApiOperation
(
"创建商品规格键"
)
@RequiresPermissions
(
"product:attr-key:create"
)
public
CommonResult
<
Integer
>
createProductAttrKey
(
@Valid
ProductAttrKeyCreateReqVO
createVO
)
{
public
CommonResult
<
Integer
>
createProductAttrKey
(
@Valid
ProductAttrKeyCreateReqVO
createVO
)
{
return
success
(
productAttrKeyManager
.
createProductAttrKey
(
createVO
));
return
success
(
productAttrKeyManager
.
createProductAttrKey
(
createVO
));
}
}
@PostMapping
(
"/key/update"
)
@PostMapping
(
"/key/update"
)
@ApiOperation
(
"更新商品规格键"
)
@ApiOperation
(
"更新商品规格键"
)
@RequiresPermissions
(
"product:attr-key:update"
)
public
CommonResult
<
Boolean
>
updateProductAttrKey
(
@Valid
ProductAttrKeyUpdateReqVO
updateVO
)
{
public
CommonResult
<
Boolean
>
updateProductAttrKey
(
@Valid
ProductAttrKeyUpdateReqVO
updateVO
)
{
productAttrKeyManager
.
updateProductAttrKey
(
updateVO
);
productAttrKeyManager
.
updateProductAttrKey
(
updateVO
);
return
success
(
true
);
return
success
(
true
);
...
@@ -43,32 +46,37 @@ public class ProductAttrController {
...
@@ -43,32 +46,37 @@ public class ProductAttrController {
@GetMapping
(
"/key/get"
)
@GetMapping
(
"/key/get"
)
@ApiOperation
(
"获得商品规格键"
)
@ApiOperation
(
"获得商品规格键"
)
@ApiImplicitParam
(
name
=
"productAttrKeyId"
,
value
=
"商品规格键编号"
,
required
=
true
)
@ApiImplicitParam
(
name
=
"productAttrKeyId"
,
value
=
"商品规格键编号"
,
required
=
true
,
example
=
"1"
)
@RequiresPermissions
(
"product:attr-key:page"
)
public
CommonResult
<
ProductAttrKeyRespVO
>
getProductAttrKey
(
@RequestParam
(
"productAttrKeyId"
)
Integer
productAttrKeyId
)
{
public
CommonResult
<
ProductAttrKeyRespVO
>
getProductAttrKey
(
@RequestParam
(
"productAttrKeyId"
)
Integer
productAttrKeyId
)
{
return
success
(
productAttrKeyManager
.
getProductAttrKey
(
productAttrKeyId
));
return
success
(
productAttrKeyManager
.
getProductAttrKey
(
productAttrKeyId
));
}
}
@GetMapping
(
"/key/list"
)
@GetMapping
(
"/key/list"
)
@ApiOperation
(
"获得商品规格键列表"
)
@ApiOperation
(
"获得商品规格键列表"
)
@ApiImplicitParam
(
name
=
"productAttrKeyIds"
,
value
=
"商品规格键编号列表"
,
required
=
true
)
@ApiImplicitParam
(
name
=
"productAttrKeyIds"
,
value
=
"商品规格键编号列表"
,
required
=
true
,
example
=
"1,3"
)
@RequiresPermissions
(
"product:attr-key:page"
)
public
CommonResult
<
List
<
ProductAttrKeyRespVO
>>
listProductAttrKeys
(
@RequestParam
(
"productAttrKeyIds"
)
List
<
Integer
>
productAttrKeyIds
)
{
public
CommonResult
<
List
<
ProductAttrKeyRespVO
>>
listProductAttrKeys
(
@RequestParam
(
"productAttrKeyIds"
)
List
<
Integer
>
productAttrKeyIds
)
{
return
success
(
productAttrKeyManager
.
listProductAttrKeys
(
productAttrKeyIds
));
return
success
(
productAttrKeyManager
.
listProductAttrKeys
(
productAttrKeyIds
));
}
}
@GetMapping
(
"/key/page"
)
@GetMapping
(
"/key/page"
)
@ApiOperation
(
"获得商品规格键分页"
)
@ApiOperation
(
"获得商品规格键分页"
)
@RequiresPermissions
(
"product:attr-key:page"
)
public
CommonResult
<
PageResult
<
ProductAttrKeyRespVO
>>
pageProductAttrKey
(
ProductAttrKeyPageReqVO
pageVO
)
{
public
CommonResult
<
PageResult
<
ProductAttrKeyRespVO
>>
pageProductAttrKey
(
ProductAttrKeyPageReqVO
pageVO
)
{
return
success
(
productAttrKeyManager
.
pageProductAttrKey
(
pageVO
));
return
success
(
productAttrKeyManager
.
pageProductAttrKey
(
pageVO
));
}
}
@PostMapping
(
"/value/create"
)
@PostMapping
(
"/value/create"
)
@ApiOperation
(
"创建商品规格值"
)
@ApiOperation
(
"创建商品规格值"
)
@RequiresPermissions
(
"product:attr-value:create"
)
public
CommonResult
<
Integer
>
createProductAttrValue
(
@Valid
ProductAttrValueCreateReqVO
createVO
)
{
public
CommonResult
<
Integer
>
createProductAttrValue
(
@Valid
ProductAttrValueCreateReqVO
createVO
)
{
return
success
(
productAttrKeyManager
.
createProductAttrValue
(
createVO
));
return
success
(
productAttrKeyManager
.
createProductAttrValue
(
createVO
));
}
}
@PostMapping
(
"/value/update"
)
@PostMapping
(
"/value/update"
)
@ApiOperation
(
"更新商品规格值"
)
@ApiOperation
(
"更新商品规格值"
)
@RequiresPermissions
(
"product:attr-value:update"
)
public
CommonResult
<
Boolean
>
updateProductAttrValue
(
@Valid
ProductAttrValueUpdateReqVO
updateVO
)
{
public
CommonResult
<
Boolean
>
updateProductAttrValue
(
@Valid
ProductAttrValueUpdateReqVO
updateVO
)
{
productAttrKeyManager
.
updateProductAttrValue
(
updateVO
);
productAttrKeyManager
.
updateProductAttrValue
(
updateVO
);
return
success
(
true
);
return
success
(
true
);
...
@@ -77,15 +85,16 @@ public class ProductAttrController {
...
@@ -77,15 +85,16 @@ public class ProductAttrController {
@GetMapping
(
"/value/get"
)
@GetMapping
(
"/value/get"
)
@ApiOperation
(
"获得商品规格值"
)
@ApiOperation
(
"获得商品规格值"
)
@ApiImplicitParam
(
name
=
"productAttrValueId"
,
value
=
"商品规格值编号"
,
required
=
true
)
@ApiImplicitParam
(
name
=
"productAttrValueId"
,
value
=
"商品规格值编号"
,
required
=
true
)
@RequiresPermissions
(
"product:attr-value:list"
)
public
CommonResult
<
ProductAttrValueRespVO
>
getProductAttrValue
(
@RequestParam
(
"productAttrValueId"
)
Integer
productAttrValueId
)
{
public
CommonResult
<
ProductAttrValueRespVO
>
getProductAttrValue
(
@RequestParam
(
"productAttrValueId"
)
Integer
productAttrValueId
)
{
return
success
(
productAttrKeyManager
.
getProductAttrValue
(
productAttrValueId
));
return
success
(
productAttrKeyManager
.
getProductAttrValue
(
productAttrValueId
));
}
}
@GetMapping
(
"/value/list"
)
@GetMapping
(
"/value/list"
)
@ApiOperation
(
"获得商品规格值列表"
)
@ApiOperation
(
"获得商品规格值列表"
)
@
ApiImplicitParam
(
name
=
"productAttrValueIds"
,
value
=
"商品规格值编号列表"
,
required
=
true
)
@
RequiresPermissions
(
"product:attr-value:list"
)
public
CommonResult
<
List
<
ProductAttrValueRespVO
>>
listProductAttrValues
(
@
RequestParam
(
"productAttrValueIds"
)
List
<
Integer
>
productAttrValueIds
)
{
public
CommonResult
<
List
<
ProductAttrValueRespVO
>>
listProductAttrValues
(
@
Valid
ProductAttrValueListQueryReqVO
queryReqVO
)
{
return
success
(
productAttrKeyManager
.
listProductAttrValues
(
productAttrValueIds
));
return
success
(
productAttrKeyManager
.
listProductAttrValues
(
queryReqVO
));
}
}
}
}
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/vo/attr/ProductAttrValueListQueryReqVO.java
0 → 100644
浏览文件 @
72347c81
package
cn
.
iocoder
.
mall
.
managementweb
.
controller
.
product
.
vo
.
attr
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
@ApiModel
(
"商品规格值的列表查询条件 Request VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrValueListQueryReqVO
{
@ApiModelProperty
(
value
=
"商品规格值编号列表"
,
example
=
"1, 3"
)
private
List
<
Integer
>
productAttrValueIds
;
@ApiModelProperty
(
value
=
"规格键编号"
,
required
=
true
,
example
=
"2"
)
private
Integer
productAttrKeyId
;
}
management-web-app/src/main/java/cn/iocoder/mall/managementweb/convert/product/ProductAttrConvert.java
浏览文件 @
72347c81
...
@@ -34,4 +34,6 @@ public interface ProductAttrConvert {
...
@@ -34,4 +34,6 @@ public interface ProductAttrConvert {
List
<
ProductAttrValueRespVO
>
convertList02
(
List
<
ProductAttrValueRespDTO
>
list
);
List
<
ProductAttrValueRespVO
>
convertList02
(
List
<
ProductAttrValueRespDTO
>
list
);
ProductAttrValueListQueryRequestDTO
convert
(
ProductAttrValueListQueryReqVO
bean
);
}
}
management-web-app/src/main/java/cn/iocoder/mall/managementweb/manager/product/ProductAttrKeyManager.java
浏览文件 @
72347c81
...
@@ -121,11 +121,12 @@ public class ProductAttrKeyManager {
...
@@ -121,11 +121,12 @@ public class ProductAttrKeyManager {
/**
/**
* 获得商品规格值列表
* 获得商品规格值列表
*
*
* @param
productAttrValueIds 商品规格值编号列表
* @param
queryReqVO 商品规格值的列表查询条件 VO
* @return 商品规格值列表
* @return 商品规格值列表
*/
*/
public
List
<
ProductAttrValueRespVO
>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
)
{
public
List
<
ProductAttrValueRespVO
>
listProductAttrValues
(
ProductAttrValueListQueryReqVO
queryReqVO
)
{
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValueResult
=
productAttrKeyRpc
.
listProductAttrValues
(
productAttrValueIds
);
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValueResult
=
productAttrKeyRpc
.
listProductAttrValues
(
ProductAttrConvert
.
INSTANCE
.
convert
(
queryReqVO
));
listProductAttrValueResult
.
checkError
();
listProductAttrValueResult
.
checkError
();
return
ProductAttrConvert
.
INSTANCE
.
convertList02
(
listProductAttrValueResult
.
getData
());
return
ProductAttrConvert
.
INSTANCE
.
convertList02
(
listProductAttrValueResult
.
getData
());
}
}
...
...
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/ProductAttrRpc.java
浏览文件 @
72347c81
...
@@ -76,9 +76,9 @@ public interface ProductAttrRpc {
...
@@ -76,9 +76,9 @@ public interface ProductAttrRpc {
/**
/**
* 获得商品规格值列表
* 获得商品规格值列表
*
*
* @param
productAttrValueIds 商品规格值编号列表
* @param
queryDTO 商品规格值的列表查询条件 DTO
* @return 商品规格值列表
* @return 商品规格值列表
*/
*/
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
);
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValues
(
ProductAttrValueListQueryRequestDTO
queryDTO
);
}
}
product
/product-biz/src/main/java/cn/iocoder/mall/product/biz/bo/product/ProductAttrPageB
O.java
→
product
-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/dto/ProductAttrValueListQueryRequestDT
O.java
浏览文件 @
72347c81
package
cn
.
iocoder
.
mall
.
product
.
biz
.
bo
.
product
;
package
cn
.
iocoder
.
mall
.
product
service
.
rpc
.
attr
.
dto
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
...
@@ -7,19 +7,20 @@ import java.io.Serializable;
...
@@ -7,19 +7,20 @@ import java.io.Serializable;
import
java.util.List
;
import
java.util.List
;
/**
/**
* 商品规格
明细分页 B
O
* 商品规格
值的列表查询条件 Request DT
O
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
ProductAttr
PageB
O
implements
Serializable
{
public
class
ProductAttr
ValueListQueryRequestDT
O
implements
Serializable
{
/**
/**
*
规格数组
*
商品规格值编号列表
*/
*/
private
List
<
ProductAttrDetailBO
>
attrs
;
private
List
<
Integer
>
productAttrValueIds
;
/**
/**
*
总数
*
商品规格键编号
*/
*/
private
Integer
count
;
private
Integer
productAttrKeyId
;
}
}
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/attr/dto/ProductAttrValueUpdateReqDTO.java
浏览文件 @
72347c81
...
@@ -2,16 +2,13 @@ package cn.iocoder.mall.productservice.rpc.attr.dto;
...
@@ -2,16 +2,13 @@ package cn.iocoder.mall.productservice.rpc.attr.dto;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.
*
;
import
lombok.
Data
;
import
lombok.experimental.
*
;
import
lombok.experimental.
Accessors
;
import
io.swagger.annotations.*
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.util.*
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
javax.validation.constraints.*
;
/**
/**
* 商品规格值更新 Request DTO
* 商品规格值更新 Request DTO
*/
*/
...
@@ -24,11 +21,6 @@ public class ProductAttrValueUpdateReqDTO implements Serializable {
...
@@ -24,11 +21,6 @@ public class ProductAttrValueUpdateReqDTO implements Serializable {
*/
*/
@NotNull
(
message
=
"规格值编号不能为空"
)
@NotNull
(
message
=
"规格值编号不能为空"
)
private
Integer
id
;
private
Integer
id
;
/**
* 规格键编号
*/
@NotNull
(
message
=
"规格键编号不能为空"
)
private
Integer
attrKeyId
;
/**
/**
* 规格值名字
* 规格值名字
*/
*/
...
...
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/convert/attr/ProductAttrConvert.java
浏览文件 @
72347c81
...
@@ -7,6 +7,7 @@ import cn.iocoder.mall.productservice.rpc.attr.dto.*;
...
@@ -7,6 +7,7 @@ import cn.iocoder.mall.productservice.rpc.attr.dto.*;
import
cn.iocoder.mall.productservice.service.attr.bo.*
;
import
cn.iocoder.mall.productservice.service.attr.bo.*
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapping
;
import
org.mapstruct.factory.Mappers
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
import
java.util.List
;
...
@@ -24,7 +25,8 @@ public interface ProductAttrConvert {
...
@@ -24,7 +25,8 @@ public interface ProductAttrConvert {
List
<
ProductAttrKeyBO
>
convertList
(
List
<
ProductAttrKeyDO
>
list
);
List
<
ProductAttrKeyBO
>
convertList
(
List
<
ProductAttrKeyDO
>
list
);
PageResult
<
ProductAttrKeyBO
>
convertPage
(
IPage
<
ProductAttrKeyDO
>
page
);
@Mapping
(
source
=
"records"
,
target
=
"list"
)
PageResult
<
ProductAttrKeyBO
>
convertPage
(
IPage
<
ProductAttrKeyDO
>
page
);
ProductAttrKeyCreateBO
convert
(
ProductAttrKeyCreateReqDTO
bean
);
ProductAttrKeyCreateBO
convert
(
ProductAttrKeyCreateReqDTO
bean
);
...
@@ -54,4 +56,6 @@ public interface ProductAttrConvert {
...
@@ -54,4 +56,6 @@ public interface ProductAttrConvert {
List
<
ProductAttrValueRespDTO
>
convertList04
(
List
<
ProductAttrValueBO
>
list
);
List
<
ProductAttrValueRespDTO
>
convertList04
(
List
<
ProductAttrValueBO
>
list
);
ProductAttrValueListQueryBO
convert
(
ProductAttrValueListQueryRequestDTO
bean
);
}
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/dal/mysql/mapper/attr/ProductAttrValueMapper.java
浏览文件 @
72347c81
package
cn
.
iocoder
.
mall
.
productservice
.
dal
.
mysql
.
mapper
.
attr
;
package
cn
.
iocoder
.
mall
.
productservice
.
dal
.
mysql
.
mapper
.
attr
;
import
cn.iocoder.mall.mybatis.core.query.QueryWrapperX
;
import
cn.iocoder.mall.productservice.dal.mysql.dataobject.attr.ProductAttrValueDO
;
import
cn.iocoder.mall.productservice.dal.mysql.dataobject.attr.ProductAttrValueDO
;
import
cn.iocoder.mall.productservice.service.attr.bo.ProductAttrValueListQueryBO
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
@Repository
public
interface
ProductAttrValueMapper
extends
BaseMapper
<
ProductAttrValueDO
>
{
public
interface
ProductAttrValueMapper
extends
BaseMapper
<
ProductAttrValueDO
>
{
default
ProductAttrValueDO
selectByAttrKeyIdAndName
(
Integer
attrKeyId
,
String
name
)
{
default
ProductAttrValueDO
selectByAttrKeyIdAndName
(
Integer
attrKeyId
,
String
name
)
{
return
selectOne
(
new
QueryWrapper
<
ProductAttrValueDO
>().
eq
(
"attrKeyId"
,
attrKeyId
).
eq
(
"name"
,
name
));
return
selectOne
(
new
QueryWrapper
<
ProductAttrValueDO
>().
eq
(
"attr_key_id"
,
attrKeyId
).
eq
(
"name"
,
name
));
}
default
List
<
ProductAttrValueDO
>
selectList
(
ProductAttrValueListQueryBO
queryBO
)
{
return
selectList
(
new
QueryWrapperX
<
ProductAttrValueDO
>().
inIfPresent
(
"id"
,
queryBO
.
getProductAttrValueIds
())
.
eqIfPresent
(
"attr_key_id"
,
queryBO
.
getProductAttrKeyId
()));
}
}
}
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/manager/attr/ProductAttrManager.java
浏览文件 @
72347c81
...
@@ -107,11 +107,11 @@ public class ProductAttrManager {
...
@@ -107,11 +107,11 @@ public class ProductAttrManager {
/**
/**
* 获得商品规格值列表
* 获得商品规格值列表
*
*
* @param
productAttrValueIds 商品规格值编号列表
* @param
queryDTO 商品规格值的列表查询条件 DTO
* @return 商品规格值列表
* @return 商品规格值列表
*/
*/
public
List
<
ProductAttrValueRespDTO
>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
)
{
public
List
<
ProductAttrValueRespDTO
>
listProductAttrValues
(
ProductAttrValueListQueryRequestDTO
queryDTO
)
{
List
<
ProductAttrValueBO
>
productAttrValueBOs
=
productAttrService
.
listProductAttrValues
(
productAttrValueIds
);
List
<
ProductAttrValueBO
>
productAttrValueBOs
=
productAttrService
.
listProductAttrValues
(
ProductAttrConvert
.
INSTANCE
.
convert
(
queryDTO
)
);
return
ProductAttrConvert
.
INSTANCE
.
convertList04
(
productAttrValueBOs
);
return
ProductAttrConvert
.
INSTANCE
.
convertList04
(
productAttrValueBOs
);
}
}
...
...
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/rpc/attr/ProductAttrRpcImpl.java
浏览文件 @
72347c81
...
@@ -63,8 +63,8 @@ public class ProductAttrRpcImpl implements ProductAttrRpc {
...
@@ -63,8 +63,8 @@ public class ProductAttrRpcImpl implements ProductAttrRpc {
}
}
@Override
@Override
public
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
)
{
public
CommonResult
<
List
<
ProductAttrValueRespDTO
>>
listProductAttrValues
(
ProductAttrValueListQueryRequestDTO
queryDTO
)
{
return
success
(
productAttrManager
.
listProductAttrValues
(
productAttrValueIds
));
return
success
(
productAttrManager
.
listProductAttrValues
(
queryDTO
));
}
}
}
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/service/attr/ProductAttrService.java
浏览文件 @
72347c81
...
@@ -200,11 +200,11 @@ public class ProductAttrService {
...
@@ -200,11 +200,11 @@ public class ProductAttrService {
/**
/**
* 获得商品规格值列表
* 获得商品规格值列表
*
*
* @param
productAttrValueIds 商品规格值编号列表
* @param
queryBO 商品规格值的列表查询条件 BO
* @return 商品规格值列表
* @return 商品规格值列表
*/
*/
public
List
<
ProductAttrValueBO
>
listProductAttrValues
(
List
<
Integer
>
productAttrValueIds
)
{
public
List
<
ProductAttrValueBO
>
listProductAttrValues
(
ProductAttrValueListQueryBO
queryBO
)
{
List
<
ProductAttrValueDO
>
productAttrValueDOs
=
productAttrValueMapper
.
select
BatchIds
(
productAttrValueIds
);
List
<
ProductAttrValueDO
>
productAttrValueDOs
=
productAttrValueMapper
.
select
List
(
queryBO
);
return
ProductAttrConvert
.
INSTANCE
.
convertList03
(
productAttrValueDOs
);
return
ProductAttrConvert
.
INSTANCE
.
convertList03
(
productAttrValueDOs
);
}
}
...
...
product
/product-service-api/src/main/java/cn/iocoder/mall/product/api/bo/ProductAttrPage
BO.java
→
product
-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/service/attr/bo/ProductAttrValueListQuery
BO.java
浏览文件 @
72347c81
package
cn
.
iocoder
.
mall
.
product
.
api
.
bo
;
package
cn
.
iocoder
.
mall
.
product
service
.
service
.
attr
.
bo
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* 商品规格
明细分页
BO
* 商品规格
值的列表查询条件
BO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
ProductAttr
PageBO
implements
Serializable
{
public
class
ProductAttr
ValueListQueryBO
{
/**
/**
*
规格数组
*
商品规格值编号列表
*/
*/
private
List
<
ProductAttrDetailBO
>
attrs
;
private
List
<
Integer
>
productAttrValueIds
;
/**
/**
*
总数
*
商品规格键编号
*/
*/
private
Integer
count
;
private
Integer
productAttrKeyId
;
}
}
product/product-biz/src/main/java/cn/iocoder/mall/product/biz/bo/product/ProductAttrDetailBO.java
deleted
100644 → 0
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
product
.
biz
.
bo
.
product
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 商品规格明细 VO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrDetailBO
implements
Serializable
{
/**
* 规格编号
*/
private
Integer
id
;
/**
* 规格名
*/
private
String
name
;
/**
* 状态
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 规格值数组
*/
private
List
<
ProductAttrValueDetailBO
>
values
;
}
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductAttrService.java
浏览文件 @
72347c81
...
@@ -23,11 +23,4 @@ public interface ProductAttrService {
...
@@ -23,11 +23,4 @@ public interface ProductAttrService {
*/
*/
List
<
ProductAttrSimpleBO
>
getProductAttrList
();
List
<
ProductAttrSimpleBO
>
getProductAttrList
();
ProductAttrValueBO
addProductAttrValue
(
Integer
adminId
,
ProductAttrValueAddDTO
productAttrValueAddDTO
);
Boolean
updateProductAttrValue
(
Integer
adminId
,
ProductAttrValueUpdateDTO
productAttrValueUpdateDTO
);
Boolean
updateProductAttrValueStatus
(
Integer
adminId
,
Integer
productAttrValueId
,
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
Integer
status
);
}
}
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/bo/ProductAttrDetailBO.java
deleted
100644 → 0
浏览文件 @
90047c10
package
cn
.
iocoder
.
mall
.
product
.
api
.
bo
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 商品规格明细 VO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductAttrDetailBO
implements
Serializable
{
/**
* 规格编号
*/
private
Integer
id
;
/**
* 规格名
*/
private
String
name
;
/**
* 状态
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 规格值数组
*/
private
List
<
ProductAttrValueDetailBO
>
values
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论