Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
de81e5f5
提交
de81e5f5
authored
7月 25, 2020
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加 c 端读取商品分类的接口
上级
24f3e697
显示空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
182 行增加
和
27 行删除
+182
-27
InEnumValidator.java
...n/iocoder/common/framework/validator/InEnumValidator.java
+4
-0
MobileValidator.java
...n/iocoder/common/framework/validator/MobileValidator.java
+6
-0
ProductCategoryController.http
...mentweb/controller/product/ProductCategoryController.http
+0
-0
ProductCategoryListQueryReqDTO.java
...vice/rpc/category/dto/ProductCategoryListQueryReqDTO.java
+7
-0
ProductBrandConvert.java
...all/productservice/convert/brand/ProductBrandConvert.java
+3
-0
ProductCategoryMapper.java
...vice/dal/mysql/mapper/category/ProductCategoryMapper.java
+2
-1
ProductCategoryListQueryBO.java
...rvice/service/category/bo/ProductCategoryListQueryBO.java
+7
-0
application.yaml
...t/product-service-app/src/main/resources/application.yaml
+1
-1
pom.xml
user-web-app/pom.xml
+6
-0
ProductCategoryController.http
...userweb/controller/product/ProductCategoryController.http
+4
-0
ProductCategoryController.java
...userweb/controller/product/ProductCategoryController.java
+40
-0
ProductCategoryRespVO.java
...controller/product/vo/category/ProductCategoryRespVO.java
+18
-0
package-info.java
...oder/mall/userweb/controller/product/vo/package-info.java
+1
-0
UserController.java
.../iocoder/mall/userweb/controller/user/UserController.java
+20
-25
ProductCategoryConvert.java
.../mall/userweb/convert/product/ProductCategoryConvert.java
+17
-0
ProductCategoryManager.java
.../mall/userweb/manager/product/ProductCategoryManager.java
+33
-0
UserManager.java
...ava/cn/iocoder/mall/userweb/manager/user/UserManager.java
+11
-0
application.yml
user-web-app/src/main/resources/application.yml
+2
-0
没有找到文件。
common/common-framework/src/main/java/cn/iocoder/common/framework/validator/InEnumValidator.java
浏览文件 @
de81e5f5
...
...
@@ -25,6 +25,10 @@ public class InEnumValidator implements ConstraintValidator<InEnum, Integer> {
@Override
public
boolean
isValid
(
Integer
value
,
ConstraintValidatorContext
context
)
{
// 为空时,默认不校验,即认为通过
if
(
value
==
null
)
{
return
true
;
}
// 校验通过
if
(
values
.
contains
(
value
))
{
return
true
;
...
...
common/common-framework/src/main/java/cn/iocoder/common/framework/validator/MobileValidator.java
浏览文件 @
de81e5f5
package
cn
.
iocoder
.
common
.
framework
.
validator
;
import
cn.iocoder.common.framework.util.StringUtils
;
import
cn.iocoder.common.framework.util.ValidationUtil
;
import
javax.validation.ConstraintValidator
;
...
...
@@ -13,6 +14,11 @@ public class MobileValidator implements ConstraintValidator<Mobile, String> {
@Override
public
boolean
isValid
(
String
value
,
ConstraintValidatorContext
context
)
{
// 如果手机号为空,默认不校验,即校验通过
if
(!
StringUtils
.
hasText
(
value
))
{
return
true
;
}
// 校验手机
return
ValidationUtil
.
isMobile
(
value
);
}
...
...
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/Produc
c
tCategoryController.http
→
management-web-app/src/main/java/cn/iocoder/mall/managementweb/controller/product/ProductCategoryController.http
浏览文件 @
de81e5f5
File moved
product-service-project/product-service-api/src/main/java/cn/iocoder/mall/productservice/rpc/category/dto/ProductCategoryListQueryReqDTO.java
浏览文件 @
de81e5f5
package
cn
.
iocoder
.
mall
.
productservice
.
rpc
.
category
.
dto
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
@@ -16,5 +18,10 @@ public class ProductCategoryListQueryReqDTO implements Serializable {
* 父编号
*/
private
Integer
pid
;
/**
* 状态
*/
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"状态必须是 {value}"
)
private
Integer
status
;
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/convert/brand/ProductBrandConvert.java
浏览文件 @
de81e5f5
...
...
@@ -12,6 +12,7 @@ import cn.iocoder.mall.productservice.service.brand.bo.ProductBrandPageBO;
import
cn.iocoder.mall.productservice.service.brand.bo.ProductBrandUpdateBO
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapping
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
...
...
@@ -29,6 +30,7 @@ public interface ProductBrandConvert {
List
<
ProductBrandBO
>
convertList
(
List
<
ProductBrandDO
>
list
);
@Mapping
(
source
=
"records"
,
target
=
"list"
)
PageResult
<
ProductBrandBO
>
convertPage
(
IPage
<
ProductBrandDO
>
page
);
ProductBrandCreateBO
convert
(
ProductBrandCreateReqDTO
bean
);
...
...
@@ -42,4 +44,5 @@ public interface ProductBrandConvert {
ProductBrandPageBO
convert
(
ProductBrandPageReqDTO
bean
);
PageResult
<
ProductBrandRespDTO
>
convertPage
(
PageResult
<
ProductBrandBO
>
page
);
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/dal/mysql/mapper/category/ProductCategoryMapper.java
浏览文件 @
de81e5f5
...
...
@@ -17,7 +17,8 @@ public interface ProductCategoryMapper extends BaseMapper<ProductCategoryDO> {
}
default
List
<
ProductCategoryDO
>
selectList
(
ProductCategoryListQueryBO
listQueryBO
)
{
return
selectList
(
new
QueryWrapperX
<
ProductCategoryDO
>().
eqIfPresent
(
"pid"
,
listQueryBO
.
getPid
()));
return
selectList
(
new
QueryWrapperX
<
ProductCategoryDO
>().
eqIfPresent
(
"pid"
,
listQueryBO
.
getPid
())
.
eqIfPresent
(
"status"
,
listQueryBO
.
getStatus
()));
}
}
product-service-project/product-service-app/src/main/java/cn/iocoder/mall/productservice/service/category/bo/ProductCategoryListQueryBO.java
浏览文件 @
de81e5f5
package
cn
.
iocoder
.
mall
.
productservice
.
service
.
category
.
bo
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
@@ -14,5 +16,10 @@ public class ProductCategoryListQueryBO {
* 父编号
*/
private
Integer
pid
;
/**
* 状态
*/
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"状态必须是 {value}"
)
private
Integer
status
;
}
product-service-project/product-service-app/src/main/resources/application.yaml
浏览文件 @
de81e5f5
...
...
@@ -37,7 +37,7 @@ dubbo:
ProductCategoryRpc
:
version
:
1.0.0
ProductBrandRpc
:
verion
:
1.0.0
ver
s
ion
:
1.0.0
# Dubbo 服务消费者的配置
consumer
:
ErrorCodeRpc
:
...
...
user-web-app/pom.xml
浏览文件 @
de81e5f5
...
...
@@ -53,6 +53,12 @@
<artifactId>
user-service-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<!-- 商品服务 -->
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
product-service-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<!-- 系统服务 -->
<groupId>
cn.iocoder.mall
</groupId>
...
...
user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/product/ProductCategoryController.http
0 → 100644
浏览文件 @
de81e5f5
### /user-address/get-default 成功
GET {{user-api-base-url}}/product-category/list?pid=0
###
user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/product/ProductCategoryController.java
0 → 100644
浏览文件 @
de81e5f5
package
cn
.
iocoder
.
mall
.
userweb
.
controller
.
product
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.userweb.controller.product.vo.category.ProductCategoryRespVO
;
import
cn.iocoder.mall.userweb.manager.product.ProductCategoryManager
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
/**
* 商品分类 Controller
*/
@RestController
@RequestMapping
(
"/product-category"
)
@Api
(
tags
=
"商品分类"
)
@Validated
// TODO 芋艿:稍后迁移到 shop-web-app 服务下
public
class
ProductCategoryController
{
@Autowired
private
ProductCategoryManager
productCategoryManager
;
@GetMapping
(
"/list"
)
@ApiOperation
(
"获得商品分类的列表"
)
@ApiImplicitParam
(
name
=
"pid"
,
value
=
"父分类编号"
,
required
=
true
,
example
=
"1024"
)
public
CommonResult
<
List
<
ProductCategoryRespVO
>>
listProductCategories
(
@RequestParam
(
"pid"
)
Integer
pid
)
{
return
success
(
productCategoryManager
.
listProductCategories
(
pid
));
}
}
user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/product/vo/category/ProductCategoryRespVO.java
0 → 100644
浏览文件 @
de81e5f5
package
cn
.
iocoder
.
mall
.
userweb
.
controller
.
product
.
vo
.
category
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"商品分类 Response VO"
)
@Data
public
class
ProductCategoryRespVO
{
@ApiModelProperty
(
value
=
"分类编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"分类名称"
,
required
=
true
,
example
=
"手机"
)
private
String
name
;
@ApiModelProperty
(
value
=
"分类图片"
,
notes
=
"一般情况下,只有根分类才有图片"
,
example
=
"http://www.iocoder.cn/xx.jpg"
)
private
String
picUrl
;
}
user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/product/vo/package-info.java
0 → 100644
浏览文件 @
de81e5f5
package
cn
.
iocoder
.
mall
.
userweb
.
controller
.
product
.
vo
;
user-web-app/src/main/java/cn/iocoder/mall/userweb/controller/user/UserController.java
浏览文件 @
de81e5f5
...
...
@@ -6,11 +6,10 @@ import cn.iocoder.mall.userweb.controller.user.vo.UserRespVO;
import
cn.iocoder.mall.userweb.manager.user.UserManager
;
import
cn.iocoder.security.annotations.RequiresAuthenticate
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
...
...
@@ -25,31 +24,27 @@ public class UserController {
@ApiOperation
(
value
=
"用户信息"
)
@GetMapping
(
"/info"
)
@RequiresAuthenticate
public
CommonResult
<
UserRespVO
>
i
nfo
()
{
public
CommonResult
<
UserRespVO
>
getUserI
nfo
()
{
UserRespVO
user
=
userManager
.
getUser
(
UserSecurityContextHolder
.
getUserId
());
return
success
(
user
);
}
// @PostMapping("/update_avatar")
// @RequiresLogin
// @ApiOperation(value = "更新头像")
// public CommonResult<Boolean> updateAvatar(@RequestParam("avatar") String avatar) {
// // 创建
// UserUpdateDTO userUpdateDTO = new UserUpdateDTO().setId(UserSecurityContextHolder.getContext().getUserId())
// .setAvatar(avatar);
// // 更新头像
// return success(userService.updateUser(userUpdateDTO));
// }
// @PostMapping("/update_nickname")
// @RequiresLogin
// @ApiOperation(value = "更新昵称")
// public CommonResult<Boolean> updateNickname(@RequestParam("nickname") String nickname) {
// // 创建
// UserUpdateDTO userUpdateDTO = new UserUpdateDTO().setId(UserSecurityContextHolder.getContext().getUserId())
// .setNickname(nickname);
// // 更新头像
// return success(userService.updateUser(userUpdateDTO));
// }
@PostMapping
(
"/update-avatar"
)
@RequiresAuthenticate
@ApiOperation
(
value
=
"更新头像"
)
@ApiImplicitParam
(
name
=
"avatar"
,
value
=
"头像"
,
required
=
true
,
example
=
"http://www.iocoder.cn/xxx.png"
)
public
CommonResult
<
Boolean
>
updateUserAvatar
(
@RequestParam
(
"avatar"
)
String
avatar
)
{
userManager
.
updateUserAvatar
(
UserSecurityContextHolder
.
getUserId
(),
avatar
);
return
success
(
true
);
}
@PostMapping
(
"/update-nickname"
)
@RequiresAuthenticate
@ApiOperation
(
value
=
"更新昵称"
)
@ApiImplicitParam
(
name
=
"nickname"
,
value
=
"昵称"
,
required
=
true
,
example
=
"蠢艿艿"
)
public
CommonResult
<
Boolean
>
updateUserNickname
(
@RequestParam
(
"nickname"
)
String
nickname
)
{
userManager
.
updateUserNickname
(
UserSecurityContextHolder
.
getUserId
(),
nickname
);
return
success
(
true
);
}
}
user-web-app/src/main/java/cn/iocoder/mall/userweb/convert/product/ProductCategoryConvert.java
0 → 100644
浏览文件 @
de81e5f5
package
cn
.
iocoder
.
mall
.
userweb
.
convert
.
product
;
import
cn.iocoder.mall.productservice.rpc.category.dto.ProductCategoryRespDTO
;
import
cn.iocoder.mall.userweb.controller.product.vo.category.ProductCategoryRespVO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
public
interface
ProductCategoryConvert
{
ProductCategoryConvert
INSTANCE
=
Mappers
.
getMapper
(
ProductCategoryConvert
.
class
);
List
<
ProductCategoryRespVO
>
convertList
(
List
<
ProductCategoryRespDTO
>
list
);
}
user-web-app/src/main/java/cn/iocoder/mall/userweb/manager/product/ProductCategoryManager.java
0 → 100644
浏览文件 @
de81e5f5
package
cn
.
iocoder
.
mall
.
userweb
.
manager
.
product
;
import
cn.iocoder.common.framework.enums.CommonStatusEnum
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.productservice.rpc.category.ProductCategoryRpc
;
import
cn.iocoder.mall.productservice.rpc.category.dto.ProductCategoryListQueryReqDTO
;
import
cn.iocoder.mall.productservice.rpc.category.dto.ProductCategoryRespDTO
;
import
cn.iocoder.mall.userweb.controller.product.vo.category.ProductCategoryRespVO
;
import
cn.iocoder.mall.userweb.convert.product.ProductCategoryConvert
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
import
java.util.List
;
/**
* Product 分类 Manager
*/
@Service
@Validated
public
class
ProductCategoryManager
{
@Reference
(
version
=
"${dubbo.consumer.ProductCategoryRpc.version}"
)
private
ProductCategoryRpc
productCategoryRpc
;
public
List
<
ProductCategoryRespVO
>
listProductCategories
(
Integer
pid
)
{
CommonResult
<
List
<
ProductCategoryRespDTO
>>
listProductCategoriesResult
=
productCategoryRpc
.
listProductCategories
(
new
ProductCategoryListQueryReqDTO
().
setPid
(
pid
).
setStatus
(
CommonStatusEnum
.
ENABLE
.
getValue
()));
listProductCategoriesResult
.
checkError
();
return
ProductCategoryConvert
.
INSTANCE
.
convertList
(
listProductCategoriesResult
.
getData
());
}
}
user-web-app/src/main/java/cn/iocoder/mall/userweb/manager/user/UserManager.java
浏览文件 @
de81e5f5
...
...
@@ -3,6 +3,7 @@ package cn.iocoder.mall.userweb.manager.user;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.userservice.rpc.user.UserRpc
;
import
cn.iocoder.mall.userservice.rpc.user.dto.UserRespDTO
;
import
cn.iocoder.mall.userservice.rpc.user.dto.UserUpdateReqDTO
;
import
cn.iocoder.mall.userweb.controller.user.vo.UserRespVO
;
import
cn.iocoder.mall.userweb.convert.user.UserConvert
;
import
org.apache.dubbo.config.annotation.DubboReference
;
...
...
@@ -20,4 +21,14 @@ public class UserManager {
return
UserConvert
.
INSTANCE
.
convert
(
userResult
.
getData
());
}
public
void
updateUserAvatar
(
Integer
userId
,
String
avatar
)
{
CommonResult
<
Boolean
>
updateUserResult
=
userRpc
.
updateUser
(
new
UserUpdateReqDTO
().
setId
(
userId
).
setAvatar
(
avatar
));
updateUserResult
.
checkError
();
}
public
void
updateUserNickname
(
Integer
userId
,
String
nickname
)
{
CommonResult
<
Boolean
>
updateUserResult
=
userRpc
.
updateUser
(
new
UserUpdateReqDTO
().
setId
(
userId
).
setNickname
(
nickname
));
updateUserResult
.
checkError
();
}
}
user-web-app/src/main/resources/application.yml
浏览文件 @
de81e5f5
...
...
@@ -37,6 +37,8 @@ dubbo:
version
:
1.0.0
UserAddressRpc
:
version
:
1.0.0
ProductCategoryRpc
:
version
:
1.0.0
# Swagger 配置项
swagger
:
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论