Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
5192472e
提交
5192472e
authored
3月 04, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
商品分类提交~
上级
13e9b552
显示空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
418 行增加
和
16 行删除
+418
-16
MVCConfiguration.java
...coder/mall/admin/application/config/MVCConfiguration.java
+2
-2
AdminsProductCategoryController.java
...on/controller/admins/AdminsProductCategoryController.java
+114
-3
ProductCategoryConvert.java
...l/product/application/convert/ProductCategoryConvert.java
+7
-0
ProductCategoryTreeNodeVO.java
...all/product/application/vo/ProductCategoryTreeNodeVO.java
+103
-0
ProductCategoryVO.java
...ocoder/mall/product/application/vo/ProductCategoryVO.java
+97
-0
ProductCategoryService.java
...a/cn/iocoder/mall/product/api/ProductCategoryService.java
+1
-1
ProductCategoryBO.java
...ava/cn/iocoder/mall/product/api/bo/ProductCategoryBO.java
+45
-0
ProductCategoryConstants.java
...r/mall/product/api/constant/ProductCategoryConstants.java
+1
-1
ProductCategoryAddDTO.java
...n/iocoder/mall/product/api/dto/ProductCategoryAddDTO.java
+1
-1
ProductCategoryUpdateDTO.java
...ocoder/mall/product/api/dto/ProductCategoryUpdateDTO.java
+1
-1
ServiceExceptionConfiguration.java
...er/mall/product/config/ServiceExceptionConfiguration.java
+27
-0
ProductCategoryDO.java
...cn/iocoder/mall/product/dataobject/ProductCategoryDO.java
+1
-0
ProductCategoryServiceImpl.java
...oder/mall/product/service/ProductCategoryServiceImpl.java
+16
-5
ProductCategoryMapper.xml
...-impl/src/main/resources/mapper/ProductCategoryMapper.xml
+2
-2
没有找到文件。
admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/config/MVCConfiguration.java
浏览文件 @
5192472e
...
...
@@ -22,8 +22,8 @@ public class MVCConfiguration implements WebMvcConfigurer {
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// registry.addInterceptor(securityInterceptor).addPathPatterns("/user/**", "/admin/**"); // 只拦截我们定义的接口
registry
.
addInterceptor
(
adminSecurityInterceptor
).
addPathPatterns
(
"/admin/**"
)
.
excludePathPatterns
(
"/admin/passport/login"
);
// 排除登陆接口
registry
.
addInterceptor
(
adminSecurityInterceptor
).
addPathPatterns
(
"/admin
s
/**"
)
.
excludePathPatterns
(
"/admin
s
/passport/login"
);
// 排除登陆接口
}
@Override
...
...
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/admins/AdminsProductCategoryController.java
浏览文件 @
5192472e
package
cn
.
iocoder
.
mall
.
product
.
application
.
controller
.
admins
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
cn.iocoder.mall.product.api.ProductCategoryService
;
import
cn.iocoder.mall.product.api.bo.ProductCategoryBO
;
import
cn.iocoder.mall.product.api.constant.ProductCategoryConstants
;
import
cn.iocoder.mall.product.api.dto.ProductCategoryAddDTO
;
import
cn.iocoder.mall.product.api.dto.ProductCategoryUpdateDTO
;
import
cn.iocoder.mall.product.application.convert.ProductCategoryConvert
;
import
cn.iocoder.mall.product.application.vo.ProductCategoryTreeNodeVO
;
import
cn.iocoder.mall.product.application.vo.ProductCategoryVO
;
import
com.alibaba.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@RestController
@RequestMapping
(
"admins/
product/
category"
)
@RequestMapping
(
"admins/category"
)
@Api
(
"商品分类"
)
public
class
AdminsProductCategoryController
{
@Reference
(
validation
=
"true"
)
private
ProductCategoryService
productCategoryService
;
@GetMapping
(
"/tree"
)
@ApiOperation
(
"获得分类树结构"
)
public
CommonResult
<
List
<
ProductCategoryTreeNodeVO
>>
tree
()
{
List
<
ProductCategoryBO
>
productCategories
=
productCategoryService
.
getAll
().
getData
();
// 创建 ProductCategoryTreeNodeVO Map
Map
<
Integer
,
ProductCategoryTreeNodeVO
>
treeNodeMap
=
productCategories
.
stream
().
collect
(
Collectors
.
toMap
(
ProductCategoryBO:
:
getId
,
ProductCategoryConvert
.
INSTANCE
::
convert
));
// 处理父子关系
treeNodeMap
.
values
().
stream
()
.
filter
(
node
->
!
node
.
getPid
().
equals
(
ProductCategoryConstants
.
PID_ROOT
))
.
forEach
((
childNode
)
->
{
// 获得父节点
ProductCategoryTreeNodeVO
parentNode
=
treeNodeMap
.
get
(
childNode
.
getPid
());
if
(
parentNode
.
getChildren
()
==
null
)
{
// 初始化 children 数组
parentNode
.
setChildren
(
new
ArrayList
<>());
}
// 将自己添加到父节点中
parentNode
.
getChildren
().
add
(
childNode
);
});
// 获得到所有的根节点
List
<
ProductCategoryTreeNodeVO
>
rootNodes
=
treeNodeMap
.
values
().
stream
()
.
filter
(
node
->
node
.
getPid
().
equals
(
ProductCategoryConstants
.
PID_ROOT
))
.
sorted
(
Comparator
.
comparing
(
ProductCategoryTreeNodeVO:
:
getSort
))
.
collect
(
Collectors
.
toList
());
return
CommonResult
.
success
(
rootNodes
);
}
@PostMapping
(
"/add"
)
@ApiOperation
(
value
=
"创建商品分类"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"pid"
,
value
=
"父级分类编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分类名字(标识)"
,
required
=
true
,
example
=
"admin/info"
),
@ApiImplicitParam
(
name
=
"description"
,
value
=
"描述"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"picUrl"
,
value
=
"分类图片"
,
example
=
"http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg/"
),
@ApiImplicitParam
(
name
=
"sort"
,
value
=
"排序"
,
required
=
true
,
example
=
"1"
),
})
public
CommonResult
<
ProductCategoryVO
>
add
(
@RequestParam
(
"pid"
)
Integer
pid
,
@RequestParam
(
"name"
)
String
name
,
@RequestParam
(
"description"
)
String
description
,
@RequestParam
(
value
=
"picUrl"
,
required
=
false
)
String
picUrl
,
@RequestParam
(
"sort"
)
Integer
sort
)
{
// 创建 ProductCategoryAddDTO 对象
ProductCategoryAddDTO
productCategoryAddDTO
=
new
ProductCategoryAddDTO
().
setPid
(
pid
).
setName
(
name
)
.
setDescription
(
description
).
setPicUrl
(
picUrl
).
setSort
(
sort
);
// 创建商品分类
CommonResult
<
ProductCategoryBO
>
result
=
productCategoryService
.
addProductCategory
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
productCategoryAddDTO
);
// 返回结果
return
ProductCategoryConvert
.
INSTANCE
.
convert
(
result
);
}
@PostMapping
(
"/update"
)
@ApiOperation
(
value
=
"更新商品分类"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"分类编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pid"
,
value
=
"父级分类编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分类名字(标识)"
,
required
=
true
,
example
=
"admin/info"
),
@ApiImplicitParam
(
name
=
"description"
,
value
=
"描述"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"picUrl"
,
value
=
"分类图片"
,
example
=
"http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg/"
),
@ApiImplicitParam
(
name
=
"sort"
,
value
=
"排序"
,
required
=
true
,
example
=
"1"
),
})
public
CommonResult
<
Boolean
>
update
(
@RequestParam
(
"id"
)
Integer
id
,
@RequestParam
(
"pid"
)
Integer
pid
,
@RequestParam
(
"name"
)
String
name
,
@RequestParam
(
"description"
)
String
description
,
@RequestParam
(
value
=
"picUrl"
,
required
=
false
)
String
picUrl
,
@RequestParam
(
"sort"
)
Integer
sort
)
{
// 创建 ProductCategoryUpdateDTO 对象
ProductCategoryUpdateDTO
productCategoryAddDTO
=
new
ProductCategoryUpdateDTO
().
setId
(
id
).
setPid
(
pid
).
setName
(
name
)
.
setDescription
(
description
).
setPicUrl
(
picUrl
).
setSort
(
sort
);
// 更新商品分类
return
productCategoryService
.
updateProductCategory
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
productCategoryAddDTO
);
}
@PostMapping
(
"/update_status"
)
@ApiOperation
(
value
=
"更新商品分类状态"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"商品分类编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"status"
,
value
=
"状态。1 - 开启;2 - 禁用"
,
required
=
true
,
example
=
"1"
),
})
public
CommonResult
<
Boolean
>
updateStatus
(
@RequestParam
(
"id"
)
Integer
id
,
@RequestParam
(
"status"
)
Integer
status
)
{
return
productCategoryService
.
updateProductCategoryStatus
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
id
,
status
);
}
@PostMapping
(
"/delete"
)
@ApiOperation
(
value
=
"删除商品分类"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"商品分类编号"
,
required
=
true
,
example
=
"1"
)
public
CommonResult
<
Boolean
>
delete
(
@RequestParam
(
"id"
)
Integer
id
)
{
return
productCategoryService
.
deleteProductCategory
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
id
);
}
}
\ No newline at end of file
product/product-application/src/main/java/cn/iocoder/mall/product/application/convert/ProductCategoryConvert.java
浏览文件 @
5192472e
package
cn
.
iocoder
.
mall
.
product
.
application
.
convert
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.product.api.bo.ProductCategoryBO
;
import
cn.iocoder.mall.product.application.vo.ProductCategorySimpleVO
;
import
cn.iocoder.mall.product.application.vo.ProductCategoryTreeNodeVO
;
import
cn.iocoder.mall.product.application.vo.ProductCategoryVO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
...
...
@@ -18,5 +21,8 @@ public interface ProductCategoryConvert {
List
<
ProductCategorySimpleVO
>
convertToVO
(
List
<
ProductCategoryBO
>
categoryList
);
ProductCategoryTreeNodeVO
convert
(
ProductCategoryBO
category
);
CommonResult
<
ProductCategoryVO
>
convert
(
CommonResult
<
ProductCategoryBO
>
result
);
}
\ No newline at end of file
product/product-application/src/main/java/cn/iocoder/mall/product/application/vo/ProductCategoryTreeNodeVO.java
浏览文件 @
5192472e
package
cn
.
iocoder
.
mall
.
product
.
application
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.Date
;
import
java.util.List
;
@ApiModel
(
"产品分类树节点 VO"
)
public
class
ProductCategoryTreeNodeVO
{
@ApiModelProperty
(
value
=
"分类编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"父分类编号"
,
required
=
true
,
example
=
"0"
)
private
Integer
pid
;
@ApiModelProperty
(
value
=
"分类名"
,
required
=
true
,
example
=
"手机"
)
private
String
name
;
@ApiModelProperty
(
value
=
"描述"
,
required
=
true
,
example
=
"这个商品很吊"
)
private
String
description
;
@ApiModelProperty
(
value
=
"分类图片"
,
notes
=
"一般情况下,只有根分类才有图片"
,
example
=
"http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg"
)
private
String
picUrl
;
@ApiModelProperty
(
value
=
"排序值"
,
required
=
true
,
example
=
"10"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
notes
=
"1-开启;2-关闭"
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
,
example
=
"时间戳"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"子节点数组"
)
private
List
<
ProductCategoryTreeNodeVO
>
children
;
public
Integer
getId
()
{
return
id
;
}
public
ProductCategoryTreeNodeVO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
public
Integer
getPid
()
{
return
pid
;
}
public
ProductCategoryTreeNodeVO
setPid
(
Integer
pid
)
{
this
.
pid
=
pid
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
public
ProductCategoryTreeNodeVO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
public
String
getDescription
()
{
return
description
;
}
public
ProductCategoryTreeNodeVO
setDescription
(
String
description
)
{
this
.
description
=
description
;
return
this
;
}
public
String
getPicUrl
()
{
return
picUrl
;
}
public
ProductCategoryTreeNodeVO
setPicUrl
(
String
picUrl
)
{
this
.
picUrl
=
picUrl
;
return
this
;
}
public
Integer
getSort
()
{
return
sort
;
}
public
ProductCategoryTreeNodeVO
setSort
(
Integer
sort
)
{
this
.
sort
=
sort
;
return
this
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
ProductCategoryTreeNodeVO
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
return
this
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
ProductCategoryTreeNodeVO
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
return
this
;
}
public
List
<
ProductCategoryTreeNodeVO
>
getChildren
()
{
return
children
;
}
public
ProductCategoryTreeNodeVO
setChildren
(
List
<
ProductCategoryTreeNodeVO
>
children
)
{
this
.
children
=
children
;
return
this
;
}
}
\ No newline at end of file
product/product-application/src/main/java/cn/iocoder/mall/product/application/vo/ProductCategoryVO.java
浏览文件 @
5192472e
package
cn
.
iocoder
.
mall
.
product
.
application
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.Date
;
@ApiModel
(
"产品分类 VO"
)
public
class
ProductCategoryVO
{
@ApiModelProperty
(
value
=
"分类编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"父分类编号"
,
required
=
true
,
example
=
"0"
)
private
Integer
pid
;
@ApiModelProperty
(
value
=
"分类名"
,
required
=
true
,
example
=
"手机"
)
private
String
name
;
@ApiModelProperty
(
value
=
"描述"
,
required
=
true
,
example
=
"这个商品很吊"
)
private
String
description
;
@ApiModelProperty
(
value
=
"分类图片"
,
notes
=
"一般情况下,只有根分类才有图片"
,
example
=
"http://www.iocoder.cn/images/common/wechat_mp_2017_07_31_bak.jpg"
)
private
String
picUrl
;
@ApiModelProperty
(
value
=
"排序值"
,
required
=
true
,
example
=
"10"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
true
,
notes
=
"1-开启;2-关闭"
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
,
example
=
"时间戳"
)
private
Date
createTime
;
public
Integer
getId
()
{
return
id
;
}
public
ProductCategoryVO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
public
Integer
getPid
()
{
return
pid
;
}
public
ProductCategoryVO
setPid
(
Integer
pid
)
{
this
.
pid
=
pid
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
public
ProductCategoryVO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
public
String
getDescription
()
{
return
description
;
}
public
ProductCategoryVO
setDescription
(
String
description
)
{
this
.
description
=
description
;
return
this
;
}
public
String
getPicUrl
()
{
return
picUrl
;
}
public
ProductCategoryVO
setPicUrl
(
String
picUrl
)
{
this
.
picUrl
=
picUrl
;
return
this
;
}
public
Integer
getSort
()
{
return
sort
;
}
public
ProductCategoryVO
setSort
(
Integer
sort
)
{
this
.
sort
=
sort
;
return
this
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
ProductCategoryVO
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
return
this
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
ProductCategoryVO
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
return
this
;
}
}
\ No newline at end of file
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductCategoryService.java
浏览文件 @
5192472e
...
...
@@ -18,7 +18,7 @@ public interface ProductCategoryService {
/**
* @return 返回所有产品分类们
*/
List
<
ProductCategoryBO
>
getAll
();
CommonResult
<
List
<
ProductCategoryBO
>
>
getAll
();
CommonResult
<
ProductCategoryBO
>
addProductCategory
(
Integer
adminId
,
ProductCategoryAddDTO
productCategoryAddDTO
);
...
...
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/bo/ProductCategoryBO.java
浏览文件 @
5192472e
package
cn
.
iocoder
.
mall
.
product
.
api
.
bo
;
import
java.util.Date
;
/**
* 商品分类 BO
*/
...
...
@@ -19,6 +21,10 @@ public class ProductCategoryBO {
* 名称
*/
private
String
name
;
/**
* 描述
*/
private
String
description
;
/**
* 分类图片
*/
...
...
@@ -27,6 +33,17 @@ public class ProductCategoryBO {
* 排序值
*/
private
Integer
sort
;
/**
* 状态
*
* 1-开启
* 2-关闭
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
public
Integer
getId
()
{
return
id
;
...
...
@@ -67,4 +84,32 @@ public class ProductCategoryBO {
public
void
setSort
(
Integer
sort
)
{
this
.
sort
=
sort
;
}
public
String
getDescription
()
{
return
description
;
}
public
ProductCategoryBO
setDescription
(
String
description
)
{
this
.
description
=
description
;
return
this
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
ProductCategoryBO
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
return
this
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
ProductCategoryBO
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
return
this
;
}
}
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/constant/ProductCategoryConstants.java
浏览文件 @
5192472e
...
...
@@ -9,7 +9,7 @@ public class ProductCategoryConstants {
/**
* 状态 - 关闭
*/
public
static
final
Integer
STATUS_DISABLE
=
1
;
public
static
final
Integer
STATUS_DISABLE
=
2
;
/**
* 父分类编号 - 根节点
...
...
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/dto/ProductCategoryAddDTO.java
浏览文件 @
5192472e
...
...
@@ -25,7 +25,7 @@ public class ProductCategoryAddDTO {
/**
* 分类图片
*/
@NotNull
(
message
=
"分类图片不能为空"
)
//
@NotNull(message = "分类图片不能为空")
private
String
picUrl
;
/**
* 排序值
...
...
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/dto/ProductCategoryUpdateDTO.java
浏览文件 @
5192472e
...
...
@@ -30,7 +30,7 @@ public class ProductCategoryUpdateDTO {
/**
* 分类图片
*/
@NotNull
(
message
=
"分类图片不能为空"
)
//
@NotNull(message = "分类图片不能为空")
private
String
picUrl
;
/**
* 排序值
...
...
product/product-service-impl/src/main/java/cn/iocoder/mall/product/config/ServiceExceptionConfiguration.java
0 → 100644
浏览文件 @
5192472e
package
cn
.
iocoder
.
mall
.
product
.
config
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
cn.iocoder.mall.product.api.constant.ProductErrorCodeEnum
;
import
org.springframework.boot.context.event.ApplicationReadyEvent
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.event.EventListener
;
@Configuration
public
class
ServiceExceptionConfiguration
{
@EventListener
(
ApplicationReadyEvent
.
class
)
// 可参考 https://www.cnblogs.com/ssslinppp/p/7607509.html
public
void
initMessages
()
{
// 从 service_exception_message.properties 加载错误码的方案
// Properties properties;
// try {
// properties = PropertiesLoaderUtils.loadAllProperties("classpath:service_exception_message.properties");
// } catch (IOException e) {
// throw new RuntimeException(e);
// }
for
(
ProductErrorCodeEnum
item
:
ProductErrorCodeEnum
.
values
())
{
ServiceExceptionUtil
.
put
(
item
.
getCode
(),
item
.
getMessage
());
}
}
}
\ No newline at end of file
product/product-service-impl/src/main/java/cn/iocoder/mall/product/dataobject/ProductCategoryDO.java
浏览文件 @
5192472e
...
...
@@ -7,6 +7,7 @@ import cn.iocoder.common.framework.dataobject.BaseDO;
*/
public
class
ProductCategoryDO
extends
BaseDO
{
@Deprecated
public
static
final
Integer
STATUS_ENABLE
=
1
;
/**
...
...
product/product-service-impl/src/main/java/cn/iocoder/mall/product/service/ProductCategoryServiceImpl.java
浏览文件 @
5192472e
package
cn
.
iocoder
.
mall
.
product
.
service
;
import
cn.iocoder.common.framework.constant.SysErrorCodeEnum
;
import
cn.iocoder.common.framework.dataobject.BaseDO
;
import
cn.iocoder.common.framework.util.ServiceExceptionUtil
;
import
cn.iocoder.common.framework.vo.CommonResult
;
...
...
@@ -32,15 +33,15 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
}
@Override
public
List
<
ProductCategoryBO
>
getAll
()
{
public
CommonResult
<
List
<
ProductCategoryBO
>
>
getAll
()
{
List
<
ProductCategoryDO
>
categoryList
=
productCategoryMapper
.
selectList
();
return
ProductCategoryConvert
.
INSTANCE
.
convertToBO
(
categoryList
);
return
CommonResult
.
success
(
ProductCategoryConvert
.
INSTANCE
.
convertToBO
(
categoryList
)
);
}
@Override
public
CommonResult
<
ProductCategoryBO
>
addProductCategory
(
Integer
adminId
,
ProductCategoryAddDTO
productCategoryAddDTO
)
{
// 校验父分类是否存在
if
(
ProductCategoryConstants
.
PID_ROOT
.
equals
(
productCategoryAddDTO
.
getPid
())
if
(
!
ProductCategoryConstants
.
PID_ROOT
.
equals
(
productCategoryAddDTO
.
getPid
())
&&
productCategoryMapper
.
selectById
(
productCategoryAddDTO
.
getPid
())
==
null
)
{
return
ServiceExceptionUtil
.
error
(
ProductErrorCodeEnum
.
PRODUCT_CATEGORY_PARENT_NOT_EXISTS
.
getCode
());
}
...
...
@@ -65,7 +66,7 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
return
ServiceExceptionUtil
.
error
(
ProductErrorCodeEnum
.
PRODUCT_CATEGORY_PARENT_NOT_SELF
.
getCode
());
}
// 校验父分类是否存在
if
(
ProductCategoryConstants
.
PID_ROOT
.
equals
(
productCategoryUpdateDTO
.
getPid
())
if
(
!
ProductCategoryConstants
.
PID_ROOT
.
equals
(
productCategoryUpdateDTO
.
getPid
())
&&
productCategoryMapper
.
selectById
(
productCategoryUpdateDTO
.
getPid
())
==
null
)
{
return
ServiceExceptionUtil
.
error
(
ProductErrorCodeEnum
.
PRODUCT_CATEGORY_PARENT_NOT_EXISTS
.
getCode
());
}
...
...
@@ -78,6 +79,10 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
@Override
public
CommonResult
<
Boolean
>
updateProductCategoryStatus
(
Integer
adminId
,
Integer
productCategoryId
,
Integer
status
)
{
// 校验参数
if
(!
isValidStatus
(
status
))
{
return
CommonResult
.
error
(
SysErrorCodeEnum
.
VALIDATION_REQUEST_PARAM_ERROR
.
getCode
(),
"变更状态必须是开启(1)或关闭(2)"
);
// TODO 有点搓
}
// 校验分类是否存在
ProductCategoryDO
productCategory
=
productCategoryMapper
.
selectById
(
productCategoryId
);
if
(
productCategory
==
null
)
{
...
...
@@ -107,11 +112,16 @@ public class ProductCategoryServiceImpl implements ProductCategoryService {
}
// TODO 芋艿:考虑下,是否需要判断下该分类下是否有商品
// 标记删除商品分类
ProductCategoryDO
updateProductCategory
=
new
ProductCategoryDO
();
ProductCategoryDO
updateProductCategory
=
new
ProductCategoryDO
()
.
setId
(
productCategoryId
)
;
updateProductCategory
.
setDeleted
(
BaseDO
.
DELETED_YES
);
productCategoryMapper
.
update
(
updateProductCategory
);
// TODO 操作日志
return
CommonResult
.
success
(
true
);
}
private
boolean
isValidStatus
(
Integer
status
)
{
return
ProductCategoryConstants
.
STATUS_ENABLE
.
equals
(
status
)
||
ProductCategoryConstants
.
STATUS_DISABLE
.
equals
(
status
);
}
}
\ No newline at end of file
product/product-service-impl/src/main/resources/mapper/ProductCategoryMapper.xml
浏览文件 @
5192472e
...
...
@@ -3,7 +3,7 @@
<mapper
namespace=
"cn.iocoder.mall.product.dao.ProductCategoryMapper"
>
<sql
id=
"FIELDS"
>
id, pid, name, descrption, pic_url,
id, pid, name, descr
i
ption, pic_url,
sort, status, create_time
</sql>
...
...
@@ -43,7 +43,7 @@
</insert>
<update
id=
"update"
parameterType=
"ProductCategoryDO"
>
UPDATE
resource
UPDATE
product_category
<set>
<if
test=
"pid != null"
>
pid = #{pid},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论