Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
335c19e6
提交
335c19e6
authored
3月 06, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加 spu attr 相关接口
上级
cb23a58b
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
509 行增加
和
59 行删除
+509
-59
AdminsProductAttrController.java
...cation/controller/admins/AdminsProductAttrController.java
+27
-7
ProductAttrConvert.java
.../mall/product/application/convert/ProductAttrConvert.java
+9
-0
AdminsProductAttrVO.java
...ll/product/application/vo/admins/AdminsProductAttrVO.java
+36
-0
ProductAttrService.java
.../java/cn/iocoder/mall/product/api/ProductAttrService.java
+17
-1
ProductAttrBO.java
...in/java/cn/iocoder/mall/product/api/bo/ProductAttrBO.java
+63
-0
ProductAttrValueBO.java
...va/cn/iocoder/mall/product/api/bo/ProductAttrValueBO.java
+63
-0
ProductErrorCodeEnum.java
...coder/mall/product/api/constant/ProductErrorCodeEnum.java
+2
-1
ProductAttrAddDTO.java
...va/cn/iocoder/mall/product/api/dto/ProductAttrAddDTO.java
+26
-0
ProductAttrUpdateDTO.java
...cn/iocoder/mall/product/api/dto/ProductAttrUpdateDTO.java
+41
-0
ProductAttrValueAddDTO.java
.../iocoder/mall/product/api/dto/ProductAttrValueAddDTO.java
+41
-0
ProductAttrValueUpdateDTO.java
...coder/mall/product/api/dto/ProductAttrValueUpdateDTO.java
+43
-0
ProductAttrConvert.java
...a/cn/iocoder/mall/product/convert/ProductAttrConvert.java
+17
-5
ProductAttrMapper.java
...n/java/cn/iocoder/mall/product/dao/ProductAttrMapper.java
+7
-0
ProductAttrServiceImpl.java
.../iocoder/mall/product/service/ProductAttrServiceImpl.java
+86
-9
ProductAttrMapper.xml
...vice-impl/src/main/resources/mapper/ProductAttrMapper.xml
+31
-36
没有找到文件。
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/admins/AdminsProductAttrController.java
浏览文件 @
335c19e6
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.ProductAttrService
;
import
cn.iocoder.mall.product.api.bo.ProductAttrBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrPageBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrSimpleBO
;
import
cn.iocoder.mall.product.api.dto.ProductAttrAddDTO
;
import
cn.iocoder.mall.product.api.dto.ProductAttrPageDTO
;
import
cn.iocoder.mall.product.api.dto.ProductAttrUpdateDTO
;
import
cn.iocoder.mall.product.application.convert.ProductAttrConvert
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrPageVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrSimpleVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrVO
;
import
com.alibaba.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -43,29 +48,44 @@ public class AdminsProductAttrController {
}
@PostMapping
(
"/attr/add"
)
public
CommonResult
addAttr
()
{
return
null
;
public
CommonResult
<
AdminsProductAttrVO
>
addAttr
(
@RequestParam
(
"name"
)
String
name
)
{
// 创建 ProductAttrAddDTO 对象
ProductAttrAddDTO
productAttrAddDTO
=
new
ProductAttrAddDTO
().
setName
(
name
);
// 添加
CommonResult
<
ProductAttrBO
>
result
=
productAttrService
.
addProductAttr
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
productAttrAddDTO
);
// 返回结果
return
ProductAttrConvert
.
INSTANCE
.
convert3
(
result
);
}
public
CommonResult
<
Boolean
>
updateAttr
()
{
return
null
;
@PostMapping
(
"/attr/update"
)
public
CommonResult
<
Boolean
>
updateAttr
(
@RequestParam
(
"id"
)
Integer
id
,
@RequestParam
(
"name"
)
String
name
)
{
// 创建 ProductAttrUpdateDTO 对象
ProductAttrUpdateDTO
productAttrUpdateDTO
=
new
ProductAttrUpdateDTO
().
setId
(
id
).
setName
(
name
);
// 更新
return
productAttrService
.
updateProductAttr
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
productAttrUpdateDTO
);
}
public
CommonResult
<
Boolean
>
updateAttrStatus
()
{
return
null
;
@PostMapping
(
"/attr/update_status"
)
public
CommonResult
<
Boolean
>
updateAttrStatus
(
@RequestParam
(
"id"
)
Integer
id
,
@RequestParam
(
"status"
)
Integer
status
)
{
return
productAttrService
.
updateProductAttrStatus
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
id
,
status
);
}
// TODO 芋艿 暂时不考虑 delete Attr 。因为关联逻辑比较多
@PostMapping
(
"/attr_value/add"
)
public
CommonResult
addAttrValue
()
{
return
null
;
}
@PostMapping
(
"/attr_value/update"
)
public
CommonResult
<
Boolean
>
updateAttrValue
()
{
return
null
;
}
public
CommonResult
<
Boolean
>
updateAttrValueStr
()
{
@PostMapping
(
"/attr_value/update_status"
)
public
CommonResult
<
Boolean
>
updateAttrValueStatus
()
{
return
null
;
}
...
...
product/product-application/src/main/java/cn/iocoder/mall/product/application/convert/ProductAttrConvert.java
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
application
.
convert
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.product.api.bo.ProductAttrBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrPageBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrSimpleBO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrPageVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrSimpleVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrVO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
...
...
@@ -22,4 +24,10 @@ public interface ProductAttrConvert {
@Mappings
({})
CommonResult
<
List
<
AdminsProductAttrSimpleVO
>>
convert
(
CommonResult
<
List
<
ProductAttrSimpleBO
>>
result
);
@Mappings
({})
AdminsProductAttrVO
convert3
(
ProductAttrBO
productAttrBO
);
@Mappings
({})
CommonResult
<
AdminsProductAttrVO
>
convert3
(
CommonResult
<
ProductAttrBO
>
productAttrBO
);
}
\ No newline at end of file
product/product-application/src/main/java/cn/iocoder/mall/product/application/vo/admins/AdminsProductAttrVO.java
浏览文件 @
335c19e6
...
...
@@ -17,4 +17,39 @@ public class AdminsProductAttrVO {
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
true
,
example
=
"时间戳"
)
private
Date
createTime
;
public
Integer
getId
()
{
return
id
;
}
public
AdminsProductAttrVO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
public
AdminsProductAttrVO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
AdminsProductAttrVO
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
return
this
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
AdminsProductAttrVO
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/ProductAttrService.java
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
api
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.product.api.bo.ProductAttrBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrPageBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrSimpleBO
;
import
cn.iocoder.mall.product.api.dto.ProductAttrPageDTO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrValueBO
;
import
cn.iocoder.mall.product.api.dto.*
;
import
java.util.List
;
...
...
@@ -20,4 +22,17 @@ public interface ProductAttrService {
*/
CommonResult
<
List
<
ProductAttrSimpleBO
>>
getProductAttrList
();
CommonResult
<
ProductAttrBO
>
addProductAttr
(
Integer
adminId
,
ProductAttrAddDTO
productAttrAddDTO
);
CommonResult
<
Boolean
>
updateProductAttr
(
Integer
adminId
,
ProductAttrUpdateDTO
productAttrUpdateDTO
);
CommonResult
<
Boolean
>
updateProductAttrStatus
(
Integer
adminId
,
Integer
productAttrId
,
Integer
status
);
CommonResult
<
ProductAttrValueBO
>
addProductAttrValue
(
Integer
adminId
,
ProductAttrValueAddDTO
productAttrValueAddDTO
);
CommonResult
<
Boolean
>
updateProductAttrValue
(
Integer
adminId
,
ProductAttrValueUpdateDTO
productAttrValueUpdateDTO
);
CommonResult
<
Boolean
>
updateProductAttrValueStatus
(
Integer
adminId
,
Integer
productAttrValueId
,
Integer
status
);
}
\ No newline at end of file
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/bo/ProductAttrBO.java
0 → 100644
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
api
.
bo
;
import
java.util.Date
;
/**
* 商品规格 VO
*/
public
class
ProductAttrBO
{
/**
* 规格编号
*/
private
Integer
id
;
/**
* 规格名
*/
private
String
name
;
/**
* 状态
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
public
Integer
getId
()
{
return
id
;
}
public
ProductAttrBO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
public
ProductAttrBO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
ProductAttrBO
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
return
this
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
ProductAttrBO
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/bo/ProductAttrValueBO.java
0 → 100644
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
api
.
bo
;
import
java.util.Date
;
/**
* 商品规格值 VO
*/
public
class
ProductAttrValueBO
{
/**
* 规格值编号
*/
private
Integer
id
;
/**
* 规格值名
*/
private
String
name
;
/**
* 状态
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
public
Integer
getId
()
{
return
id
;
}
public
ProductAttrValueBO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
public
ProductAttrValueBO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
ProductAttrValueBO
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
return
this
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
ProductAttrValueBO
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/constant/ProductErrorCodeEnum.java
浏览文件 @
335c19e6
...
...
@@ -23,8 +23,9 @@ public enum ProductErrorCodeEnum {
// ========== PRODUCT ATTR + ATTR_VALUE 模块 ==========
PRODUCT_ATTR_VALUE_NOT_EXIST
(
1003003000
,
"商品属性值不存在"
),
PRODUCT_ATTR_NOT_EXIST
(
1003003001
,
"商品属性值不存在"
),
PRODUCT_ATTR_EXISTS
(
1003003002
,
"商品规格已经存在"
),
PRODUCT_ATTR_STATUS_EQUALS
(
1003003003
,
"商品规格已经是该状态"
),
;
...
...
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/dto/ProductAttrAddDTO.java
0 → 100644
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
api
.
dto
;
import
javax.validation.constraints.NotEmpty
;
/**
* Product 规格添加 DTO
*/
public
class
ProductAttrAddDTO
{
/**
* 名称
*/
@NotEmpty
(
message
=
"规格名不能为空"
)
private
String
name
;
public
String
getName
()
{
return
name
;
}
public
ProductAttrAddDTO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
}
\ No newline at end of file
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/dto/ProductAttrUpdateDTO.java
0 → 100644
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
api
.
dto
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* Product 规格修改 DTO
*/
public
class
ProductAttrUpdateDTO
{
/**
* 规格编号
*/
@NotNull
(
message
=
"规格编号不能为空"
)
private
Integer
id
;
/**
* 名称
*/
@NotEmpty
(
message
=
"规格名不能为空"
)
private
String
name
;
public
String
getName
()
{
return
name
;
}
public
ProductAttrUpdateDTO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
public
Integer
getId
()
{
return
id
;
}
public
ProductAttrUpdateDTO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
}
\ No newline at end of file
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/dto/ProductAttrValueAddDTO.java
0 → 100644
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
api
.
dto
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* Product 规格值添加 DTO
*/
public
class
ProductAttrValueAddDTO
{
/**
* 规格编号
*/
@NotNull
(
message
=
"规格编号不能为空"
)
private
Integer
attrId
;
/**
* 名称
*/
@NotEmpty
(
message
=
"规格值名不能为空"
)
private
String
name
;
public
Integer
getAttrId
()
{
return
attrId
;
}
public
ProductAttrValueAddDTO
setAttrId
(
Integer
attrId
)
{
this
.
attrId
=
attrId
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
public
ProductAttrValueAddDTO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
}
\ No newline at end of file
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/dto/ProductAttrValueUpdateDTO.java
0 → 100644
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
api
.
dto
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* Product 规格值修改 DTO
*
* 注意,不允许修改所属规格
*/
public
class
ProductAttrValueUpdateDTO
{
/**
* 规格值编号
*/
@NotNull
(
message
=
"规格编号不能为空"
)
private
Integer
id
;
/**
* 名称
*/
@NotEmpty
(
message
=
"规格名不能为空"
)
private
String
name
;
public
String
getName
()
{
return
name
;
}
public
ProductAttrValueUpdateDTO
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
public
Integer
getId
()
{
return
id
;
}
public
ProductAttrValueUpdateDTO
setId
(
Integer
id
)
{
this
.
id
=
id
;
return
this
;
}
}
\ No newline at end of file
product/product-service-impl/src/main/java/cn/iocoder/mall/product/convert/ProductAttrConvert.java
浏览文件 @
335c19e6
package
cn
.
iocoder
.
mall
.
product
.
convert
;
import
cn.iocoder.mall.product.api.bo.ProductAttrDetailBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrSimpleBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrValueDetailBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrValueSimpleBO
;
import
cn.iocoder.mall.product.api.bo.*
;
import
cn.iocoder.mall.product.api.dto.ProductAttrAddDTO
;
import
cn.iocoder.mall.product.api.dto.ProductAttrUpdateDTO
;
import
cn.iocoder.mall.product.dataobject.ProductAttrDO
;
import
cn.iocoder.mall.product.dataobject.ProductAttrValueDO
;
import
org.mapstruct.Mapper
;
...
...
@@ -34,5 +33,17 @@ public interface ProductAttrConvert {
//
@Mappings
({})
List
<
ProductAttrValueSimpleBO
>
convert4
(
List
<
ProductAttrValueDO
>
values
);
@Mappings
({})
ProductAttrDO
convert
(
ProductAttrAddDTO
productAttrAddDTO
);
@Mappings
({})
ProductAttrDO
convert
(
ProductAttrUpdateDTO
productAttrUpdateDTO
);
@Mappings
({})
ProductAttrBO
convert
(
ProductAttrDO
productAttrDO
);
@Mappings
({})
ProductAttrValueBO
convert2
(
ProductAttrValueDO
productAttrValueDO
);
}
\ No newline at end of file
product/product-service-impl/src/main/java/cn/iocoder/mall/product/dao/ProductAttrMapper.java
浏览文件 @
335c19e6
...
...
@@ -12,6 +12,8 @@ public interface ProductAttrMapper {
ProductAttrDO
selectById
(
@Param
(
"id"
)
Integer
id
);
ProductAttrDO
selectByName
(
@Param
(
"name"
)
String
name
);
List
<
ProductAttrDO
>
selectListByIds
(
@Param
(
"ids"
)
Collection
<
Integer
>
ids
);
List
<
ProductAttrDO
>
selectListByStatus
(
@Param
(
"status"
)
Integer
status
);
...
...
@@ -22,4 +24,8 @@ public interface ProductAttrMapper {
Integer
selectCountByNameLike
(
@Param
(
"name"
)
String
name
);
void
insert
(
ProductAttrDO
productAttrDO
);
void
update
(
ProductAttrDO
productAttrDO
);
}
\ No newline at end of file
product/product-service-impl/src/main/java/cn/iocoder/mall/product/service/ProductAttrServiceImpl.java
浏览文件 @
335c19e6
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
;
import
cn.iocoder.mall.product.api.ProductAttrService
;
import
cn.iocoder.mall.product.api.bo.ProductAttrAndValuePairBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrDetailBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrPageBO
;
import
cn.iocoder.mall.product.api.bo.ProductAttrSimpleBO
;
import
cn.iocoder.mall.product.api.bo.*
;
import
cn.iocoder.mall.product.api.constant.ProductAttrConstants
;
import
cn.iocoder.mall.product.api.constant.ProductErrorCodeEnum
;
import
cn.iocoder.mall.product.api.dto.
ProductAttrPageDTO
;
import
cn.iocoder.mall.product.api.dto.
*
;
import
cn.iocoder.mall.product.convert.ProductAttrConvert
;
import
cn.iocoder.mall.product.dao.ProductAttrMapper
;
import
cn.iocoder.mall.product.dao.ProductAttrValueMapper
;
...
...
@@ -20,10 +19,7 @@ import com.google.common.collect.Multimaps;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -114,4 +110,84 @@ public class ProductAttrServiceImpl implements ProductAttrService {
return
CommonResult
.
success
(
attrs
);
}
@Override
public
CommonResult
<
ProductAttrBO
>
addProductAttr
(
Integer
adminId
,
ProductAttrAddDTO
productAttrAddDTO
)
{
// 校验规格名不重复
if
(
productAttrMapper
.
selectByName
(
productAttrAddDTO
.
getName
())
!=
null
)
{
return
ServiceExceptionUtil
.
error
(
ProductErrorCodeEnum
.
PRODUCT_ATTR_EXISTS
.
getCode
());
}
// 插入到数据库
ProductAttrDO
productAttrDO
=
ProductAttrConvert
.
INSTANCE
.
convert
(
productAttrAddDTO
)
.
setStatus
(
ProductAttrConstants
.
ATTR_STATUS_ENABLE
);
productAttrDO
.
setCreateTime
(
new
Date
()).
setDeleted
(
BaseDO
.
DELETED_NO
);
productAttrMapper
.
insert
(
productAttrDO
);
// 返回成功
return
CommonResult
.
success
(
ProductAttrConvert
.
INSTANCE
.
convert
(
productAttrDO
));
}
@Override
public
CommonResult
<
Boolean
>
updateProductAttr
(
Integer
adminId
,
ProductAttrUpdateDTO
productAttrUpdateDTO
)
{
// 校验存在
if
(
productAttrMapper
.
selectById
(
productAttrUpdateDTO
.
getId
())
==
null
)
{
return
ServiceExceptionUtil
.
error
(
ProductErrorCodeEnum
.
PRODUCT_ATTR_NOT_EXIST
.
getCode
());
}
// 校验规格名不重复
ProductAttrDO
existsAttrDO
=
productAttrMapper
.
selectByName
(
productAttrUpdateDTO
.
getName
());
if
(
existsAttrDO
!=
null
&&
!
existsAttrDO
.
getId
().
equals
(
productAttrUpdateDTO
.
getId
()))
{
return
ServiceExceptionUtil
.
error
(
ProductErrorCodeEnum
.
PRODUCT_ATTR_EXISTS
.
getCode
());
}
// 更新到数据库
ProductAttrDO
updateProductAttr
=
ProductAttrConvert
.
INSTANCE
.
convert
(
productAttrUpdateDTO
);
productAttrMapper
.
update
(
updateProductAttr
);
// 返回成功
return
CommonResult
.
success
(
true
);
}
@Override
public
CommonResult
<
Boolean
>
updateProductAttrStatus
(
Integer
adminId
,
Integer
productAttrId
,
Integer
status
)
{
// 校验参数
if
(!
isValidAttrStatus
(
status
))
{
return
CommonResult
.
error
(
SysErrorCodeEnum
.
VALIDATION_REQUEST_PARAM_ERROR
.
getCode
(),
"变更状态必须是开启(1)或关闭(2)"
);
// TODO 有点搓
}
// 校验存在
ProductAttrDO
productAttrDO
=
productAttrMapper
.
selectById
(
productAttrId
);
if
(
productAttrDO
==
null
)
{
return
ServiceExceptionUtil
.
error
(
ProductErrorCodeEnum
.
PRODUCT_ATTR_NOT_EXIST
.
getCode
());
}
// 校验状态
if
(
productAttrDO
.
getStatus
().
equals
(
status
))
{
return
ServiceExceptionUtil
.
error
(
ProductErrorCodeEnum
.
PRODUCT_ATTR_STATUS_EQUALS
.
getCode
());
}
// 更新到数据库
ProductAttrDO
updateProductAttr
=
new
ProductAttrDO
().
setId
(
productAttrId
).
setStatus
(
status
);
productAttrMapper
.
update
(
updateProductAttr
);
// 返回成功
return
CommonResult
.
success
(
true
);
}
@Override
public
CommonResult
<
ProductAttrValueBO
>
addProductAttrValue
(
Integer
adminId
,
ProductAttrValueAddDTO
productAttrValueAddDTO
)
{
return
null
;
}
@Override
public
CommonResult
<
Boolean
>
updateProductAttrValue
(
Integer
adminId
,
ProductAttrValueUpdateDTO
productAttrValueUpdateDTO
)
{
return
null
;
}
@Override
public
CommonResult
<
Boolean
>
updateProductAttrValueStatus
(
Integer
adminId
,
Integer
productAttrValueId
,
Integer
status
)
{
return
null
;
}
private
boolean
isValidAttrStatus
(
Integer
status
)
{
return
ProductAttrConstants
.
ATTR_STATUS_ENABLE
.
equals
(
status
)
||
ProductAttrConstants
.
ATTR_STATUS_DISABLE
.
equals
(
status
);
}
private
boolean
isValidAttrValueStatus
(
Integer
status
)
{
return
ProductAttrConstants
.
ATTR_VALUE_STATUS_ENABLE
.
equals
(
status
)
||
ProductAttrConstants
.
ATTR_VALUE_STATUS_DISABLE
.
equals
(
status
);
}
}
\ No newline at end of file
product/product-service-impl/src/main/resources/mapper/ProductAttrMapper.xml
浏览文件 @
335c19e6
...
...
@@ -21,43 +21,38 @@
AND deleted = 0
</select>
<!--<insert id="insert" parameterType="ProductCategoryDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">-->
<!--INSERT INTO product_category (-->
<!--pid, name, description, pic_url, sort,-->
<!--status, create_time, deleted-->
<!--) VALUES (-->
<!--#{pid}, #{name}, #{description}, #{picUrl}, #{sort},-->
<!--#{status}, #{createTime}, #{deleted}-->
<!--)-->
<!--</insert>-->
<select
id=
"selectByName"
parameterType=
"String"
resultType=
"ProductAttrDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM product_attr
WHERE name = #{name}
AND deleted = 0
LIMIT 1
</select>
<insert
id=
"insert"
parameterType=
"ProductAttrDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO product_attr (
name, status, create_time, deleted
) VALUES (
#{name}, #{status}, #{createTime}, #{deleted}
)
</insert>
<!--<update id="update" parameterType="ProductCategoryDO">-->
<!--UPDATE product_category-->
<!--<set>-->
<!--<if test="pid != null">-->
<!--pid = #{pid},-->
<!--</if>-->
<!--<if test="name != null">-->
<!--name = #{name},-->
<!--</if>-->
<!--<if test="description != null">-->
<!--description = #{description},-->
<!--</if>-->
<!--<if test="picUrl != null">-->
<!--pic_url = #{picUrl},-->
<!--</if>-->
<!--<if test="sort != null">-->
<!--sort = #{sort},-->
<!--</if>-->
<!--<if test="status != null">-->
<!--status = #{status},-->
<!--</if>-->
<!--<if test="deleted != null">-->
<!--deleted = #{deleted}-->
<!--</if>-->
<!--</set>-->
<!--WHERE id = #{id}-->
<!--</update>-->
<update
id=
"update"
parameterType=
"ProductAttrDO"
>
UPDATE product_attr
<set>
<if
test=
"name != null"
>
name = #{name},
</if>
<if
test=
"status != null"
>
status = #{status},
</if>
<if
test=
"deleted != null"
>
deleted = #{deleted}
</if>
</set>
WHERE id = #{id}
</update>
<select
id=
"selectListByIds"
resultType=
"ProductAttrDO"
>
SELECT
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论