Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
d39a4160
提交
d39a4160
authored
5月 07, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
- 后端:临时解决 Dubbo 内嵌在 Spring Boot 时,对本地的 Dubbo Service 引用报错的问题。
- 前端:完善商品推荐 - 前端:完善优惠劵
上级
ab5d051f
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
69 个修改的文件
包含
338 行增加
和
174 行删除
+338
-174
couponCardTemplateList.js
admin-web/src/models/promotion/couponCardTemplateList.js
+29
-0
productRecommendList.js
admin-web/src/models/promotion/productRecommendList.js
+16
-0
ProductSpuList.js
admin-web/src/pages/Product/ProductSpuList.js
+1
-1
CouponCardTemplateList.js
admin-web/src/pages/Promotion/CouponCardTemplateList.js
+0
-0
ProductRecommendList.js
admin-web/src/pages/Promotion/ProductRecommendList.js
+42
-4
product.js
admin-web/src/services/product.js
+12
-0
pom.xml
common/common-framework/pom.xml
+6
-0
ReferenceAnnotationBeanPostProcessor.java
...tory/annotation/ReferenceAnnotationBeanPostProcessor.java
+0
-0
功能列表-H5 商城.md
docs/guides/功能列表/功能列表-H5 商城.md
+2
-0
功能列表-管理后台.md
docs/guides/功能列表/功能列表-管理后台.md
+5
-5
Application.java
...pl/src/test/java/cn/iocoder/mall/pay/biz/Application.java
+7
-0
MVCConfiguration.java
...der/mall/product/application/config/MVCConfiguration.java
+0
-6
AdminsProductAttrController.java
...cation/controller/admins/AdminsProductAttrController.java
+5
-6
AdminsProductCategoryController.java
...on/controller/admins/AdminsProductCategoryController.java
+1
-3
AdminsProductSpuController.java
...ication/controller/admins/AdminsProductSpuController.java
+35
-22
UsersProductCategoryController.java
...tion/controller/users/UsersProductCategoryController.java
+1
-1
UsersProductSpuController.java
...plication/controller/users/UsersProductSpuController.java
+2
-4
ProductSpuConvert.java
...r/mall/product/application/convert/ProductSpuConvert.java
+7
-0
ProductSpuService.java
...n/java/cn/iocoder/mall/product/api/ProductSpuService.java
+3
-0
ProductSpuSearchListDTO.java
...iocoder/mall/product/api/dto/ProductSpuSearchListDTO.java
+20
-0
ProductAttrServiceImpl.java
.../iocoder/mall/product/service/ProductAttrServiceImpl.java
+1
-1
ProductCategoryServiceImpl.java
...oder/mall/product/service/ProductCategoryServiceImpl.java
+1
-1
ProductSpuServiceImpl.java
...n/iocoder/mall/product/service/ProductSpuServiceImpl.java
+10
-5
application.yaml
...t-service-impl/src/main/resources/config/application.yaml
+7
-1
ProductSpuMapper.xml
...rvice-impl/src/main/resources/mapper/ProductSpuMapper.xml
+3
-1
pom.xml
promotion/promotion-application/pom.xml
+4
-5
MVCConfiguration.java
...r/mall/promotion/application/config/MVCConfiguration.java
+3
-3
AdminsBannerController.java
...application/controller/admins/AdminsBannerController.java
+2
-4
AdminsCouponController.java
...application/controller/admins/AdminsCouponController.java
+2
-4
AdminsProductRecommendController.java
...n/controller/admins/AdminsProductRecommendController.java
+2
-4
UsersBannerController.java
...n/application/controller/users/UsersBannerController.java
+2
-4
UsersCouponController.java
...n/application/controller/users/UsersCouponController.java
+2
-4
UsersProductRecommendController.java
...ion/controller/users/UsersProductRecommendController.java
+3
-6
ProductRecommendService.java
...n/iocoder/mall/promotion/api/ProductRecommendService.java
+4
-3
BannerAddDTO.java
.../java/cn/iocoder/mall/promotion/api/dto/BannerAddDTO.java
+2
-1
BannerPageDTO.java
...java/cn/iocoder/mall/promotion/api/dto/BannerPageDTO.java
+2
-1
BannerUpdateDTO.java
...va/cn/iocoder/mall/promotion/api/dto/BannerUpdateDTO.java
+2
-1
CouponCardPageDTO.java
.../cn/iocoder/mall/promotion/api/dto/CouponCardPageDTO.java
+2
-1
CouponCardTemplateAddDTO.java
...oder/mall/promotion/api/dto/CouponCardTemplateAddDTO.java
+2
-1
CouponCardTemplateUpdateDTO.java
...r/mall/promotion/api/dto/CouponCardTemplateUpdateDTO.java
+2
-1
CouponCodeTemplateAddDTO.java
...oder/mall/promotion/api/dto/CouponCodeTemplateAddDTO.java
+3
-1
CouponCodeTemplateUpdateDTO.java
...r/mall/promotion/api/dto/CouponCodeTemplateUpdateDTO.java
+3
-1
CouponTemplatePageDTO.java
...iocoder/mall/promotion/api/dto/CouponTemplatePageDTO.java
+2
-1
ProductRecommendAddDTO.java
...ocoder/mall/promotion/api/dto/ProductRecommendAddDTO.java
+2
-1
ProductRecommendPageDTO.java
...coder/mall/promotion/api/dto/ProductRecommendPageDTO.java
+2
-1
ProductRecommendUpdateDTO.java
...der/mall/promotion/api/dto/ProductRecommendUpdateDTO.java
+2
-1
CouponTemplateDO.java
...coder/mall/promotion/biz/dataobject/CouponTemplateDO.java
+1
-3
BannerServiceImpl.java
...iocoder/mall/promotion/biz/service/BannerServiceImpl.java
+1
-1
CouponServiceImpl.java
...iocoder/mall/promotion/biz/service/CouponServiceImpl.java
+1
-1
ProductRecommendServiceImpl.java
...ll/promotion/biz/service/ProductRecommendServiceImpl.java
+2
-2
PromotionActivityServiceImpl.java
...l/promotion/biz/service/PromotionActivityServiceImpl.java
+1
-1
application.yaml
...n-service-impl/src/main/resources/config/application.yaml
+14
-2
pom.xml
system/system-application/pom.xml
+9
-8
MVCConfiguration.java
...coder/mall/admin/application/config/MVCConfiguration.java
+3
-2
AdminController.java
.../admin/application/controller/admins/AdminController.java
+3
-7
DataDictController.java
...min/application/controller/admins/DataDictController.java
+2
-4
PassportController.java
...min/application/controller/admins/PassportController.java
+1
-3
ResourceController.java
...min/application/controller/admins/ResourceController.java
+2
-4
RoleController.java
...l/admin/application/controller/admins/RoleController.java
+3
-6
pom.xml
system/system-sdk/pom.xml
+4
-0
AdminAccessLogInterceptor.java
...mall/admin/sdk/interceptor/AdminAccessLogInterceptor.java
+1
-3
AdminSecurityInterceptor.java
.../mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
+5
-11
AdminAccessLogServiceImpl.java
...iocoder/mall/admin/service/AdminAccessLogServiceImpl.java
+1
-1
AdminServiceImpl.java
.../java/cn/iocoder/mall/admin/service/AdminServiceImpl.java
+1
-1
DataDictServiceImpl.java
...va/cn/iocoder/mall/admin/service/DataDictServiceImpl.java
+1
-1
OAuth2ServiceImpl.java
...java/cn/iocoder/mall/admin/service/OAuth2ServiceImpl.java
+1
-1
ResourceServiceImpl.java
...va/cn/iocoder/mall/admin/service/ResourceServiceImpl.java
+1
-1
RoleServiceImpl.java
...n/java/cn/iocoder/mall/admin/service/RoleServiceImpl.java
+1
-1
application.yaml
...m-service-impl/src/main/resources/config/application.yaml
+13
-0
没有找到文件。
admin-web/src/models/promotion/couponCardTemplateList.js
浏览文件 @
d39a4160
...
@@ -6,6 +6,7 @@ import {
...
@@ -6,6 +6,7 @@ import {
getCouponCardTemplatePage
,
getCouponCardTemplatePage
,
}
from
'../../services/promotion'
;
}
from
'../../services/promotion'
;
import
PaginationHelper
from
'../../../helpers/PaginationHelper'
;
import
PaginationHelper
from
'../../../helpers/PaginationHelper'
;
import
{
productSpuList
,
productSpuSearchList
}
from
"../../services/product"
;
const
SEARCH_PARAMS_DEFAULT
=
{
const
SEARCH_PARAMS_DEFAULT
=
{
title
:
''
,
title
:
''
,
...
@@ -26,6 +27,7 @@ export default {
...
@@ -26,6 +27,7 @@ export default {
modalType
:
undefined
,
// 'add' or 'update' 表单
modalType
:
undefined
,
// 'add' or 'update' 表单
formVals
:
{},
// 当前表单值
formVals
:
{},
// 当前表单值
modalLoading
:
false
,
modalLoading
:
false
,
searchProductSpuList
:
[],
},
},
effects
:
{
effects
:
{
...
@@ -153,6 +155,33 @@ export default {
...
@@ -153,6 +155,33 @@ export default {
// }
// }
// },
// },
*
searchProductSpu
({
payload
},
{
call
,
put
})
{
// 请求
const
response
=
yield
call
(
productSpuSearchList
,
payload
);
// 响应
if
(
response
.
code
===
0
)
{
yield
put
({
type
:
'setAll'
,
payload
:
{
searchProductSpuList
:
response
.
data
,
},
});
}
},
*
getProductSpuList
({
payload
},
{
call
,
put
})
{
// 请求
const
response
=
yield
call
(
productSpuList
,
payload
);
// 响应
if
(
response
.
code
===
0
)
{
yield
put
({
type
:
'setAll'
,
payload
:
{
formSpuValues
:
response
.
data
,
},
});
}
}
},
},
reducers
:
{
reducers
:
{
...
...
admin-web/src/models/promotion/productRecommendList.js
浏览文件 @
d39a4160
...
@@ -7,6 +7,7 @@ import {
...
@@ -7,6 +7,7 @@ import {
updateProductRecommendStatus
,
updateProductRecommendStatus
,
}
from
'../../services/promotion'
;
}
from
'../../services/promotion'
;
import
PaginationHelper
from
'../../../helpers/PaginationHelper'
;
import
PaginationHelper
from
'../../../helpers/PaginationHelper'
;
import
{
productSpuList
,
productSpuSearchList
}
from
"../../services/product"
;
const
SEARCH_PARAMS_DEFAULT
=
{
const
SEARCH_PARAMS_DEFAULT
=
{
type
:
undefined
,
type
:
undefined
,
...
@@ -27,6 +28,8 @@ export default {
...
@@ -27,6 +28,8 @@ export default {
modalType
:
undefined
,
// 'add' or 'update' 表单
modalType
:
undefined
,
// 'add' or 'update' 表单
formVals
:
{},
// 当前表单值
formVals
:
{},
// 当前表单值
modalLoading
:
false
,
modalLoading
:
false
,
searchProductSpuList
:
[],
// 搜索商品
formSpuValues
:
[],
// 编辑时,如果优惠劵选择的是商品,则需要获取该值。
},
},
effects
:
{
effects
:
{
...
@@ -151,6 +154,19 @@ export default {
...
@@ -151,6 +154,19 @@ export default {
}
}
},
},
*
searchProductSpu
({
payload
},
{
call
,
put
})
{
// 请求
const
response
=
yield
call
(
productSpuSearchList
,
payload
);
// 响应
if
(
response
.
code
===
0
)
{
yield
put
({
type
:
'setAll'
,
payload
:
{
searchProductSpuList
:
response
.
data
,
},
});
}
},
},
},
reducers
:
{
reducers
:
{
...
...
admin-web/src/pages/Product/ProductSpuList.js
浏览文件 @
d39a4160
...
@@ -217,7 +217,7 @@ const SearchForm = Form.create()(props => {
...
@@ -217,7 +217,7 @@ const SearchForm = Form.create()(props => {
<
/FormItem
>
<
/FormItem
>
<
/Col
>
<
/Col
>
<
Col
md
=
{
8
}
sm
=
{
24
}
>
<
Col
md
=
{
8
}
sm
=
{
24
}
>
<
FormItem
label
=
"商品
名称
"
>
<
FormItem
label
=
"商品
分类
"
>
{
getFieldDecorator
(
'cid'
)(
{
getFieldDecorator
(
'cid'
)(
<
TreeSelect
<
TreeSelect
showSearch
showSearch
...
...
admin-web/src/pages/Promotion/CouponCardTemplateList.js
浏览文件 @
d39a4160
差异被折叠。
点击展开。
admin-web/src/pages/Promotion/ProductRecommendList.js
浏览文件 @
d39a4160
...
@@ -211,7 +211,12 @@ const SearchForm = Form.create()(props => {
...
@@ -211,7 +211,12 @@ const SearchForm = Form.create()(props => {
// 添加 or 修改 Form 表单
// 添加 or 修改 Form 表单
const
AddOrUpdateForm
=
Form
.
create
()(
props
=>
{
const
AddOrUpdateForm
=
Form
.
create
()(
props
=>
{
const
{
dispatch
,
modalVisible
,
form
,
handleModalVisible
,
modalType
,
formVals
}
=
props
;
const
{
dispatch
,
modalVisible
,
form
,
handleModalVisible
,
modalType
,
formVals
,
searchProductSpuList
}
=
props
;
// let selectedSearchProductSpu = formVals.productSpuId ? {
// key: formVals.productSpuId,
// label: formVals.productSpuName,
// } : {};
const
okHandle
=
()
=>
{
const
okHandle
=
()
=>
{
form
.
validateFields
((
err
,
fields
)
=>
{
form
.
validateFields
((
err
,
fields
)
=>
{
...
@@ -257,6 +262,24 @@ const AddOrUpdateForm = Form.create()(props => {
...
@@ -257,6 +262,24 @@ const AddOrUpdateForm = Form.create()(props => {
});
});
};
};
const
searchProductSpu
=
(
value
)
=>
{
if
(
!
value
)
{
dispatch
({
type
:
'productRecommendList/setAll'
,
payload
:
{
searchProductSpuList
:
[],
},
});
return
;
}
dispatch
({
type
:
'productRecommendList/searchProductSpu'
,
payload
:
{
name
:
value
,
},
});
};
const
title
=
modalType
===
'add'
?
'新建商品推荐'
:
'更新商品推荐'
;
const
title
=
modalType
===
'add'
?
'新建商品推荐'
:
'更新商品推荐'
;
return
(
return
(
<
Modal
<
Modal
...
@@ -284,7 +307,20 @@ const AddOrUpdateForm = Form.create()(props => {
...
@@ -284,7 +307,20 @@ const AddOrUpdateForm = Form.create()(props => {
rules
:
[{
required
:
true
,
message
:
'请输入商品!'
},
// TODO 芋艿,临时先输入商品编号,后面做成搜索。
rules
:
[{
required
:
true
,
message
:
'请输入商品!'
},
// TODO 芋艿,临时先输入商品编号,后面做成搜索。
],
],
initialValue
:
formVals
.
productSpuId
,
initialValue
:
formVals
.
productSpuId
,
})(
<
Input
placeholder
=
"请输入"
/>
)}
})(
<
Select
// labelInValue
// value={formVals.productSpuId}
placeholder
=
"请搜索商品"
onSearch
=
{
searchProductSpu
}
showSearch
=
{
true
}
filterOption
=
{
false
}
style
=
{{
width
:
'100%'
}}
>
{
searchProductSpuList
.
map
(
d
=>
<
Option
key
=
{
d
.
id
}
value
=
{
d
.
id
}
>
{
d
.
name
}
<
/Option>
)
}
{
searchProductSpuList
.
length
===
0
&&
formVals
.
productSpuId
?
<
Option
key
=
{
formVals
.
productSpuId
}
value
=
{
formVals
.
productSpuId
}
>
{
formVals
.
productSpuName
}
<
/Option> : ''
}
<
/Select
>
)}
<
/FormItem
>
<
/FormItem
>
<
FormItem
labelCol
=
{{
span
:
5
}}
wrapperCol
=
{{
span
:
15
}}
label
=
"排序值"
>
<
FormItem
labelCol
=
{{
span
:
5
}}
wrapperCol
=
{{
span
:
15
}}
label
=
"排序值"
>
{
form
.
getFieldDecorator
(
'sort'
,
{
{
form
.
getFieldDecorator
(
'sort'
,
{
...
@@ -331,7 +367,8 @@ class BannerList extends PureComponent {
...
@@ -331,7 +367,8 @@ class BannerList extends PureComponent {
payload
:
{
payload
:
{
modalVisible
,
modalVisible
,
modalType
,
modalType
,
formVals
:
record
||
{}
formVals
:
record
||
{},
searchProductSpuList
:
[],
},
},
});
});
};
};
...
@@ -340,7 +377,7 @@ class BannerList extends PureComponent {
...
@@ -340,7 +377,7 @@ class BannerList extends PureComponent {
// let that = this;
// let that = this;
const
{
dispatch
,
const
{
dispatch
,
list
,
listLoading
,
searchParams
,
pagination
,
list
,
listLoading
,
searchParams
,
pagination
,
modalVisible
,
modalType
,
formVals
,
modalVisible
,
modalType
,
formVals
,
searchProductSpuList
,
confirmLoading
,
}
=
this
.
props
;
confirmLoading
,
}
=
this
.
props
;
// 列表属性
// 列表属性
...
@@ -365,6 +402,7 @@ class BannerList extends PureComponent {
...
@@ -365,6 +402,7 @@ class BannerList extends PureComponent {
modalType
,
modalType
,
formVals
,
formVals
,
dispatch
,
dispatch
,
searchProductSpuList
,
handleModalVisible
:
this
.
handleModalVisible
,
// Function
handleModalVisible
:
this
.
handleModalVisible
,
// Function
};
};
...
...
admin-web/src/services/product.js
浏览文件 @
d39a4160
...
@@ -44,6 +44,18 @@ export async function productSpuPage(params) {
...
@@ -44,6 +44,18 @@ export async function productSpuPage(params) {
});
});
}
}
export
async
function
productSpuSearchList
(
params
)
{
return
request
(
`/product-api/admins/spu/search_list?
${
stringify
(
params
)}
`
,
{
method
:
'GET'
,
});
}
export
async
function
productSpuList
(
params
)
{
return
request
(
`/product-api/admins/spu/list?
${
stringify
(
params
)}
`
,
{
method
:
'GET'
,
});
}
export
async
function
productSpuAdd
(
params
)
{
export
async
function
productSpuAdd
(
params
)
{
return
request
(
`/product-api/admins/spu/add?
${
stringify
(
params
)}
`
,
{
return
request
(
`/product-api/admins/spu/add?
${
stringify
(
params
)}
`
,
{
method
:
'POST'
,
method
:
'POST'
,
...
...
common/common-framework/pom.xml
浏览文件 @
d39a4160
...
@@ -84,6 +84,12 @@
...
@@ -84,6 +84,12 @@
<scope>
compile
</scope>
<scope>
compile
</scope>
</dependency>
</dependency>
<dependency>
<groupId>
org.apache.dubbo
</groupId>
<artifactId>
dubbo
</artifactId>
<scope>
compile
</scope>
</dependency>
</dependencies>
</dependencies>
</project>
</project>
common/common-framework/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
0 → 100644
浏览文件 @
d39a4160
差异被折叠。
点击展开。
docs/guides/功能列表/功能列表-H5 商城.md
浏览文件 @
d39a4160
...
@@ -4,6 +4,8 @@
...
@@ -4,6 +4,8 @@
*
未完成的功能,欢迎一起来开发,特别是【待认领】的任务。
*
未完成的功能,欢迎一起来开发,特别是【待认领】的任务。
-
[
x
]
首页
-
[
x
]
首页
-
[
x
]
首页广告
-
[
x
]
商品推荐(手动)
-
商品相关
-
商品相关
-
[
x
]
分类列表
-
[
x
]
分类列表
-
[
x
]
商品搜索
-
[
x
]
商品搜索
...
...
docs/guides/功能列表/功能列表-管理后台.md
浏览文件 @
d39a4160
...
@@ -22,12 +22,12 @@
...
@@ -22,12 +22,12 @@
-
TODO 需要补充
-
TODO 需要补充
-
[
]
营销管理
-
[
]
营销管理
-
[
x
]
首页广告
-
[
x
]
首页广告
-
[
]
优惠劵
-
[
x
]
商品推荐
-
[
x
]
优惠劵
-
[
]
优惠码【待认领】
-
[
]
优惠码【待认领】
-
[
]
商品推荐
-
[
]
满减送
-
[
]
满减送活动
-
[
]
限制折扣
-
[
]
限制折扣活动
-
[
]
多人拼团【待认领】
-
[
]
团购活动【待认领】
-
[
]
系统管理
-
[
]
系统管理
-
[
]
员工管理
-
[
]
员工管理
-
[
]
角色管理
-
[
]
角色管理
...
...
pay/pay-service-impl/src/test/java/cn/iocoder/mall/pay/biz/Application.java
0 → 100644
浏览文件 @
d39a4160
package
cn
.
iocoder
.
mall
.
pay
.
biz
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
(
scanBasePackages
=
{
"cn.iocoder.mall.pay"
})
public
class
Application
{
}
product/product-application/src/main/java/cn/iocoder/mall/product/application/config/MVCConfiguration.java
浏览文件 @
d39a4160
...
@@ -20,12 +20,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
...
@@ -20,12 +20,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
AdminSecurityInterceptor
.
class
,
AdminAccessLogInterceptor
.
class
})
AdminSecurityInterceptor
.
class
,
AdminAccessLogInterceptor
.
class
})
public
class
MVCConfiguration
implements
WebMvcConfigurer
{
public
class
MVCConfiguration
implements
WebMvcConfigurer
{
// @Autowired
// private SecurityInterceptor securityInterceptor;
// @Reference
// private OAuth2Service oauth2Service;
@Autowired
@Autowired
private
AdminSecurityInterceptor
adminSecurityInterceptor
;
private
AdminSecurityInterceptor
adminSecurityInterceptor
;
@Autowired
@Autowired
...
...
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/admins/AdminsProductAttrController.java
浏览文件 @
d39a4160
...
@@ -13,30 +13,29 @@ import cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrPageVO;
...
@@ -13,30 +13,29 @@ 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.AdminsProductAttrSimpleVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrValueVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductAttrValueVO
;
import
org.apache.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.List
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.*;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
@RestController
@RestController
@RequestMapping
(
"admins"
)
@RequestMapping
(
"admins"
)
@Api
(
"商品规格"
)
@Api
(
"商品规格"
)
public
class
AdminsProductAttrController
{
public
class
AdminsProductAttrController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductAttrService.version}"
)
@Autowired
private
ProductAttrService
productAttrService
;
private
ProductAttrService
productAttrService
;
@GetMapping
(
"/attr/page"
)
@GetMapping
(
"/attr/page"
)
@ApiOperation
(
"获得规格分页"
)
@ApiOperation
(
"获得规格分页"
)
public
CommonResult
<
AdminsProductAttrPageVO
>
attrPage
(
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
public
CommonResult
<
AdminsProductAttrPageVO
>
attrPage
(
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
@RequestParam
(
value
=
"pageNo"
,
defaultValue
=
"
0
"
)
Integer
pageNo
,
@RequestParam
(
value
=
"pageNo"
,
defaultValue
=
"
1
"
)
Integer
pageNo
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
// 创建 ProductAttrPageDTO 对象
// 创建 ProductAttrPageDTO 对象
ProductAttrPageDTO
productAttrPageDTO
=
new
ProductAttrPageDTO
().
setName
(
name
).
setPageNo
(
pageNo
).
setPageSize
(
pageSize
);
ProductAttrPageDTO
productAttrPageDTO
=
new
ProductAttrPageDTO
().
setName
(
name
).
setPageNo
(
pageNo
).
setPageSize
(
pageSize
);
...
...
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/admins/AdminsProductCategoryController.java
浏览文件 @
d39a4160
...
@@ -15,7 +15,6 @@ import io.swagger.annotations.ApiImplicitParam;
...
@@ -15,7 +15,6 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -31,8 +30,7 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
...
@@ -31,8 +30,7 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
@Api
(
"商品分类"
)
@Api
(
"商品分类"
)
public
class
AdminsProductCategoryController
{
public
class
AdminsProductCategoryController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductCategoryService.version}"
)
@Autowired
private
ProductCategoryService
productCategoryService
;
private
ProductCategoryService
productCategoryService
;
@GetMapping
(
"/tree"
)
@GetMapping
(
"/tree"
)
...
...
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/admins/AdminsProductSpuController.java
浏览文件 @
d39a4160
...
@@ -3,26 +3,23 @@ package cn.iocoder.mall.product.application.controller.admins;
...
@@ -3,26 +3,23 @@ package cn.iocoder.mall.product.application.controller.admins;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
cn.iocoder.mall.product.api.ProductSpuService
;
import
cn.iocoder.mall.product.api.ProductSpuService
;
import
cn.iocoder.mall.product.api.bo.ProductSpuBO
;
import
cn.iocoder.mall.product.api.bo.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.api.bo.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.api.bo.ProductSpuPageBO
;
import
cn.iocoder.mall.product.api.bo.ProductSpuPageBO
;
import
cn.iocoder.mall.product.api.dto.ProductSkuAddOrUpdateDTO
;
import
cn.iocoder.mall.product.api.dto.*
;
import
cn.iocoder.mall.product.api.dto.ProductSpuAddDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuPageDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuUpdateDTO
;
import
cn.iocoder.mall.product.application.convert.ProductSpuConvert
;
import
cn.iocoder.mall.product.application.convert.ProductSpuConvert
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuPageVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuPageVO
;
import
c
om.fasterxml.jackson.databind.JavaType
;
import
c
n.iocoder.mall.product.application.vo.admins.AdminsProductSpuVO
;
import
com.
fasterxml.jackson.databind.ObjectMapper
;
import
com.
alibaba.fastjson.JSON
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.
io.IOExcep
tion
;
import
java.
util.Collec
tion
;
import
java.util.List
;
import
java.util.List
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
...
@@ -32,13 +29,9 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
...
@@ -32,13 +29,9 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
@Api
(
"商品 SPU + SKU"
)
@Api
(
"商品 SPU + SKU"
)
public
class
AdminsProductSpuController
{
public
class
AdminsProductSpuController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductSpuService.version}"
)
@Autowired
private
ProductSpuService
productSpuService
;
private
ProductSpuService
productSpuService
;
@Autowired
private
ObjectMapper
objectMapper
;
// jackson 解析
@PostMapping
(
"/spu/add"
)
@PostMapping
(
"/spu/add"
)
@ApiOperation
(
"创建商品"
)
@ApiOperation
(
"创建商品"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
...
@@ -109,15 +102,15 @@ public class AdminsProductSpuController {
...
@@ -109,15 +102,15 @@ public class AdminsProductSpuController {
@ApiOperation
(
"商品 SPU 分页列表"
)
@ApiOperation
(
"商品 SPU 分页列表"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"name"
,
value
=
"商品名称,模糊匹配"
,
example
=
"小王"
),
@ApiImplicitParam
(
name
=
"name"
,
value
=
"商品名称,模糊匹配"
,
example
=
"小王"
),
@ApiImplicitParam
(
name
=
"pageNo"
,
value
=
"页码,从 1 开始"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"status"
,
value
=
"状态"
,
example
=
"可选值:1-在售中;2-已售罄;3-仓库中;"
),
@ApiImplicitParam
(
name
=
"status"
,
value
=
"状态"
,
example
=
"可选值:1-在售中;2-已售罄;3-仓库中;"
),
@ApiImplicitParam
(
name
=
"cid"
,
value
=
"商品分类编号"
,
example
=
"10"
),
@ApiImplicitParam
(
name
=
"cid"
,
value
=
"商品分类编号"
,
example
=
"10"
),
@ApiImplicitParam
(
name
=
"pageNo"
,
value
=
"页码,从 1 开始"
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
example
=
"10"
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"每页条数"
,
required
=
true
,
example
=
"10"
),
})
})
public
CommonResult
<
AdminsProductSpuPageVO
>
spuPage
(
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
public
CommonResult
<
AdminsProductSpuPageVO
>
spuPage
(
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
@RequestParam
(
value
=
"status"
)
Integer
status
,
@RequestParam
(
value
=
"status"
)
Integer
status
,
@RequestParam
(
value
=
"cid"
,
required
=
false
)
Integer
cid
,
@RequestParam
(
value
=
"cid"
,
required
=
false
)
Integer
cid
,
@RequestParam
(
value
=
"pageNo"
,
defaultValue
=
"
0
"
)
Integer
pageNo
,
@RequestParam
(
value
=
"pageNo"
,
defaultValue
=
"
1
"
)
Integer
pageNo
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
// 创建 ProductSpuPageDTO 对象
// 创建 ProductSpuPageDTO 对象
ProductSpuPageDTO
productSpuPageDTO
=
new
ProductSpuPageDTO
().
setName
(
name
).
setCid
(
cid
).
setPageNo
(
pageNo
).
setPageSize
(
pageSize
);
ProductSpuPageDTO
productSpuPageDTO
=
new
ProductSpuPageDTO
().
setName
(
name
).
setCid
(
cid
).
setPageNo
(
pageNo
).
setPageSize
(
pageSize
);
...
@@ -136,20 +129,40 @@ public class AdminsProductSpuController {
...
@@ -136,20 +129,40 @@ public class AdminsProductSpuController {
return
success
(
ProductSpuConvert
.
INSTANCE
.
convert2
(
result
));
return
success
(
ProductSpuConvert
.
INSTANCE
.
convert2
(
result
));
}
}
@GetMapping
(
"/spu/search_list"
)
@ApiOperation
(
"商品 SPU 搜索列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"name"
,
value
=
"商品名称,模糊匹配"
,
example
=
"小王"
),
})
public
CommonResult
<
List
<
AdminsProductSpuVO
>>
spuSearchList
(
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
)
{
// 创建 ProductSpuSearchListDTO 对象
ProductSpuSearchListDTO
productSpuSearchListDTO
=
new
ProductSpuSearchListDTO
().
setName
(
name
);
// 执行搜索
List
<
ProductSpuBO
>
list
=
productSpuService
.
getProductSpuSearchList
(
productSpuSearchListDTO
);
// 转换返回
return
success
(
ProductSpuConvert
.
INSTANCE
.
convert3
(
list
));
}
@GetMapping
(
"/spu/info"
)
@GetMapping
(
"/spu/info"
)
@ApiOperation
(
"商品 SPU 明细"
)
@ApiOperation
(
"商品 SPU 明细"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"SPU 编号"
,
required
=
true
,
example
=
"100"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"SPU 编号"
,
required
=
true
,
example
=
"100"
)
public
CommonResult
<
AdminsProductSpuDetailVO
>
i
nfo
(
@RequestParam
(
"id"
)
Integer
id
)
{
public
CommonResult
<
AdminsProductSpuDetailVO
>
spuI
nfo
(
@RequestParam
(
"id"
)
Integer
id
)
{
return
success
(
ProductSpuConvert
.
INSTANCE
.
convert
(
productSpuService
.
getProductSpuDetail
(
id
)));
return
success
(
ProductSpuConvert
.
INSTANCE
.
convert
(
productSpuService
.
getProductSpuDetail
(
id
)));
}
}
@GetMapping
(
"/spu/list"
)
@ApiOperation
(
"商品 SPU 列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"商品 SPU 编号数组"
,
example
=
"1,2,3"
),
})
public
CommonResult
<
List
<
AdminsProductSpuVO
>>
spuList
(
@RequestParam
(
"ids"
)
Collection
<
Integer
>
ids
)
{
List
<
ProductSpuBO
>
list
=
productSpuService
.
getProductSpuList
(
ids
);
// 转换返回
return
success
(
ProductSpuConvert
.
INSTANCE
.
convert3
(
list
));
}
private
<
T
>
List
<
T
>
parseSkus
(
String
skuStr
,
Class
<
T
>
clazz
)
{
private
<
T
>
List
<
T
>
parseSkus
(
String
skuStr
,
Class
<
T
>
clazz
)
{
JavaType
type
=
objectMapper
.
getTypeFactory
().
constructParametricType
(
List
.
class
,
clazz
);
return
JSON
.
parseArray
(
skuStr
,
clazz
);
try
{
return
objectMapper
.
readValue
(
skuStr
,
type
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
}
}
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/users/UsersProductCategoryController.java
浏览文件 @
d39a4160
...
@@ -23,7 +23,7 @@ import java.util.List;
...
@@ -23,7 +23,7 @@ import java.util.List;
@Api
(
"商品分类"
)
@Api
(
"商品分类"
)
public
class
UsersProductCategoryController
{
public
class
UsersProductCategoryController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductCategoryService.version}"
)
@Autowired
@Autowired
private
ProductCategoryService
productCategoryService
;
private
ProductCategoryService
productCategoryService
;
...
...
product/product-application/src/main/java/cn/iocoder/mall/product/application/controller/users/UsersProductSpuController.java
浏览文件 @
d39a4160
...
@@ -8,12 +8,11 @@ import cn.iocoder.mall.product.application.convert.ProductSpuConvert;
...
@@ -8,12 +8,11 @@ import cn.iocoder.mall.product.application.convert.ProductSpuConvert;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuPageVO
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuPageVO
;
import
cn.iocoder.mall.user.sdk.annotation.PermitAll
;
import
cn.iocoder.mall.user.sdk.annotation.PermitAll
;
import
org.apache.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
...
@@ -26,8 +25,7 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
...
@@ -26,8 +25,7 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
@Api
(
"商品 SPU + SKU"
)
@Api
(
"商品 SPU + SKU"
)
public
class
UsersProductSpuController
{
public
class
UsersProductSpuController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductSpuService.version}"
)
@Autowired
private
ProductSpuService
productSpuService
;
private
ProductSpuService
productSpuService
;
@GetMapping
(
"/info"
)
@GetMapping
(
"/info"
)
...
...
product/product-application/src/main/java/cn/iocoder/mall/product/application/convert/ProductSpuConvert.java
浏览文件 @
d39a4160
package
cn
.
iocoder
.
mall
.
product
.
application
.
convert
;
package
cn
.
iocoder
.
mall
.
product
.
application
.
convert
;
import
cn.iocoder.mall.product.api.bo.ProductSpuBO
;
import
cn.iocoder.mall.product.api.bo.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.api.bo.ProductSpuDetailBO
;
import
cn.iocoder.mall.product.api.bo.ProductSpuPageBO
;
import
cn.iocoder.mall.product.api.bo.ProductSpuPageBO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuPageVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuPageVO
;
import
cn.iocoder.mall.product.application.vo.admins.AdminsProductSpuVO
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuDetailVO
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuPageVO
;
import
cn.iocoder.mall.product.application.vo.users.UsersProductSpuPageVO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
import
org.mapstruct.factory.Mappers
;
import
java.util.List
;
@Mapper
@Mapper
public
interface
ProductSpuConvert
{
public
interface
ProductSpuConvert
{
...
@@ -24,6 +28,9 @@ public interface ProductSpuConvert {
...
@@ -24,6 +28,9 @@ public interface ProductSpuConvert {
@Mappings
({})
@Mappings
({})
AdminsProductSpuPageVO
convert2
(
ProductSpuPageBO
result
);
AdminsProductSpuPageVO
convert2
(
ProductSpuPageBO
result
);
@Mappings
({})
List
<
AdminsProductSpuVO
>
convert3
(
List
<
ProductSpuBO
>
result
);
@Mappings
({})
@Mappings
({})
UsersProductSpuPageVO
convert3
(
ProductSpuPageBO
result
);
UsersProductSpuPageVO
convert3
(
ProductSpuPageBO
result
);
...
...
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/ProductSpuService.java
浏览文件 @
d39a4160
...
@@ -3,6 +3,7 @@ package cn.iocoder.mall.product.api;
...
@@ -3,6 +3,7 @@ package cn.iocoder.mall.product.api;
import
cn.iocoder.mall.product.api.bo.*
;
import
cn.iocoder.mall.product.api.bo.*
;
import
cn.iocoder.mall.product.api.dto.ProductSpuAddDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuAddDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuPageDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuPageDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuSearchListDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuUpdateDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuUpdateDTO
;
import
java.util.Collection
;
import
java.util.Collection
;
...
@@ -23,6 +24,8 @@ public interface ProductSpuService {
...
@@ -23,6 +24,8 @@ public interface ProductSpuService {
ProductSpuPageBO
getProductSpuPage
(
ProductSpuPageDTO
productSpuPageDTO
);
ProductSpuPageBO
getProductSpuPage
(
ProductSpuPageDTO
productSpuPageDTO
);
List
<
ProductSpuBO
>
getProductSpuSearchList
(
ProductSpuSearchListDTO
productSpuSearchListDTO
);
List
<
ProductSpuBO
>
getProductSpuList
(
Collection
<
Integer
>
ids
);
List
<
ProductSpuBO
>
getProductSpuList
(
Collection
<
Integer
>
ids
);
ProductSkuBO
getProductSku
(
Integer
id
);
ProductSkuBO
getProductSku
(
Integer
id
);
...
...
product/product-service-api/src/main/java/cn/iocoder/mall/product/api/dto/ProductSpuSearchListDTO.java
0 → 100644
浏览文件 @
d39a4160
package
cn
.
iocoder
.
mall
.
product
.
api
.
dto
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 商品 Spu 搜索列表 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
ProductSpuSearchListDTO
{
/**
* 商品名
*
* 模糊匹配
*/
private
String
name
;
}
product/product-service-impl/src/main/java/cn/iocoder/mall/product/service/ProductAttrServiceImpl.java
浏览文件 @
d39a4160
...
@@ -27,7 +27,7 @@ import java.util.stream.Collectors;
...
@@ -27,7 +27,7 @@ import java.util.stream.Collectors;
* @see cn.iocoder.mall.product.dataobject.ProductAttrValueDO
* @see cn.iocoder.mall.product.dataobject.ProductAttrValueDO
*/
*/
@Service
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductAttrService.version}"
)
public
class
ProductAttrServiceImpl
implements
ProductAttrService
{
public
class
ProductAttrServiceImpl
implements
ProductAttrService
{
@Autowired
@Autowired
...
...
product/product-service-impl/src/main/java/cn/iocoder/mall/product/service/ProductCategoryServiceImpl.java
浏览文件 @
d39a4160
...
@@ -19,7 +19,7 @@ import java.util.Date;
...
@@ -19,7 +19,7 @@ import java.util.Date;
import
java.util.List
;
import
java.util.List
;
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductCategoryService.version}"
)
public
class
ProductCategoryServiceImpl
implements
ProductCategoryService
{
public
class
ProductCategoryServiceImpl
implements
ProductCategoryService
{
@Autowired
@Autowired
...
...
product/product-service-impl/src/main/java/cn/iocoder/mall/product/service/ProductSpuServiceImpl.java
浏览文件 @
d39a4160
...
@@ -9,10 +9,7 @@ import cn.iocoder.mall.product.api.bo.*;
...
@@ -9,10 +9,7 @@ import cn.iocoder.mall.product.api.bo.*;
import
cn.iocoder.mall.product.api.constant.ProductCategoryConstants
;
import
cn.iocoder.mall.product.api.constant.ProductCategoryConstants
;
import
cn.iocoder.mall.product.api.constant.ProductErrorCodeEnum
;
import
cn.iocoder.mall.product.api.constant.ProductErrorCodeEnum
;
import
cn.iocoder.mall.product.api.constant.ProductSpuConstants
;
import
cn.iocoder.mall.product.api.constant.ProductSpuConstants
;
import
cn.iocoder.mall.product.api.dto.ProductSkuAddOrUpdateDTO
;
import
cn.iocoder.mall.product.api.dto.*
;
import
cn.iocoder.mall.product.api.dto.ProductSpuAddDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuPageDTO
;
import
cn.iocoder.mall.product.api.dto.ProductSpuUpdateDTO
;
import
cn.iocoder.mall.product.api.message.ProductUpdateMessage
;
import
cn.iocoder.mall.product.api.message.ProductUpdateMessage
;
import
cn.iocoder.mall.product.convert.ProductSpuConvert
;
import
cn.iocoder.mall.product.convert.ProductSpuConvert
;
import
cn.iocoder.mall.product.dao.ProductSkuMapper
;
import
cn.iocoder.mall.product.dao.ProductSkuMapper
;
...
@@ -31,7 +28,7 @@ import java.util.*;
...
@@ -31,7 +28,7 @@ import java.util.*;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"
1.0.0
"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"
${dubbo.provider.ProductSpuService.version}
"
)
public
class
ProductSpuServiceImpl
implements
ProductSpuService
{
public
class
ProductSpuServiceImpl
implements
ProductSpuService
{
@Autowired
@Autowired
...
@@ -237,6 +234,14 @@ public class ProductSpuServiceImpl implements ProductSpuService {
...
@@ -237,6 +234,14 @@ public class ProductSpuServiceImpl implements ProductSpuService {
return
productSpuPage
;
return
productSpuPage
;
}
}
@Override
public
List
<
ProductSpuBO
>
getProductSpuSearchList
(
ProductSpuSearchListDTO
productSpuSearchListDTO
)
{
return
ProductSpuConvert
.
INSTANCE
.
convert
(
productSpuMapper
.
selectListByNameLikeOrderBySortAsc
(
productSpuSearchListDTO
.
getName
(),
null
,
null
,
null
,
null
,
null
)
);
}
@Override
@Override
public
List
<
ProductSpuBO
>
getProductSpuList
(
Collection
<
Integer
>
ids
)
{
public
List
<
ProductSpuBO
>
getProductSpuList
(
Collection
<
Integer
>
ids
)
{
List
<
ProductSpuDO
>
spus
=
productSpuMapper
.
selectByIds
(
ids
);
List
<
ProductSpuDO
>
spus
=
productSpuMapper
.
selectByIds
(
ids
);
...
...
product/product-service-impl/src/main/resources/config/application.yaml
浏览文件 @
d39a4160
...
@@ -23,7 +23,13 @@ dubbo:
...
@@ -23,7 +23,13 @@ dubbo:
name
:
dubbo
name
:
dubbo
scan
:
scan
:
base-packages
:
cn.iocoder.mall.product.service
base-packages
:
cn.iocoder.mall.product.service
provider
:
ProductAttrService
:
version
:
1.0.0
ProductCategoryService
:
version
:
1.0.0
ProductSpuService
:
version
:
1.0.0
# rocketmq
# rocketmq
rocketmq
:
rocketmq
:
...
...
product/product-service-impl/src/main/resources/mapper/ProductSpuMapper.xml
浏览文件 @
d39a4160
...
@@ -113,7 +113,9 @@
...
@@ -113,7 +113,9 @@
AND deleted = 0
AND deleted = 0
</where>
</where>
ORDER BY sort ASC
ORDER BY sort ASC
LIMIT #{offset}, #{limit}
<if
test=
"offset != null and limit != null"
>
LIMIT #{offset}, #{limit}
</if>
</select>
</select>
<select
id=
"selectCountByNameLike"
resultType=
"Integer"
>
<select
id=
"selectCountByNameLike"
resultType=
"Integer"
>
...
...
promotion/promotion-application/pom.xml
浏览文件 @
d39a4160
...
@@ -14,21 +14,20 @@
...
@@ -14,21 +14,20 @@
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
promotion-service-api
</artifactId>
<artifactId>
common-framework
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
promotion-service-
impl
</artifactId>
<artifactId>
promotion-service-
api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
common-framework
</artifactId>
<artifactId>
promotion-service-impl
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
user-service-api
</artifactId>
<artifactId>
user-service-api
</artifactId>
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/config/MVCConfiguration.java
浏览文件 @
d39a4160
...
@@ -39,11 +39,11 @@ public class MVCConfiguration implements WebMvcConfigurer {
...
@@ -39,11 +39,11 @@ public class MVCConfiguration implements WebMvcConfigurer {
@Override
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// 用户
// 用户
//
registry.addInterceptor(userAccessLogInterceptor).addPathPatterns("/users/**");
registry
.
addInterceptor
(
userAccessLogInterceptor
).
addPathPatterns
(
"/users/**"
);
//
registry.addInterceptor(userSecurityInterceptor).addPathPatterns("/users/**"); // 只拦截我们定义的接口
registry
.
addInterceptor
(
userSecurityInterceptor
).
addPathPatterns
(
"/users/**"
);
// 只拦截我们定义的接口
// 管理员
// 管理员
// registry.addInterceptor(adminAccessLogInterceptor).addPathPatterns("/admins/**");
// registry.addInterceptor(adminAccessLogInterceptor).addPathPatterns("/admins/**");
//
registry.addInterceptor(adminSecurityInterceptor).addPathPatterns("/admins/**");
registry
.
addInterceptor
(
adminSecurityInterceptor
).
addPathPatterns
(
"/admins/**"
);
}
}
@Override
@Override
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/controller/admins/AdminsBannerController.java
浏览文件 @
d39a4160
...
@@ -10,12 +10,11 @@ import cn.iocoder.mall.promotion.api.dto.BannerUpdateDTO;
...
@@ -10,12 +10,11 @@ import cn.iocoder.mall.promotion.api.dto.BannerUpdateDTO;
import
cn.iocoder.mall.promotion.application.convert.BannerConvert
;
import
cn.iocoder.mall.promotion.application.convert.BannerConvert
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsBannerPageVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsBannerPageVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsBannerVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsBannerVO
;
import
org.apache.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
...
@@ -25,8 +24,7 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
...
@@ -25,8 +24,7 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
@Api
(
"Banner 模块"
)
@Api
(
"Banner 模块"
)
public
class
AdminsBannerController
{
public
class
AdminsBannerController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.BannerService.version}"
)
@Autowired
private
BannerService
bannerService
;
private
BannerService
bannerService
;
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/controller/admins/AdminsCouponController.java
浏览文件 @
d39a4160
...
@@ -12,12 +12,11 @@ import cn.iocoder.mall.promotion.api.dto.CouponTemplatePageDTO;
...
@@ -12,12 +12,11 @@ import cn.iocoder.mall.promotion.api.dto.CouponTemplatePageDTO;
import
cn.iocoder.mall.promotion.application.convert.CouponTemplateConvert
;
import
cn.iocoder.mall.promotion.application.convert.CouponTemplateConvert
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsCouponTemplatePageVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsCouponTemplatePageVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsCouponTemplateVO
;
import
cn.iocoder.mall.promotion.application.vo.admins.AdminsCouponTemplateVO
;
import
org.apache.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -28,8 +27,7 @@ import java.util.Date;
...
@@ -28,8 +27,7 @@ import java.util.Date;
@Api
(
"优惠劵(码)模块"
)
@Api
(
"优惠劵(码)模块"
)
public
class
AdminsCouponController
{
public
class
AdminsCouponController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.CouponService.version}"
)
@Autowired
private
CouponService
couponService
;
private
CouponService
couponService
;
// ========== 优惠劵(码)模板 ==========
// ========== 优惠劵(码)模板 ==========
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/controller/admins/AdminsProductRecommendController.java
浏览文件 @
d39a4160
...
@@ -18,7 +18,6 @@ import io.swagger.annotations.ApiImplicitParam;
...
@@ -18,7 +18,6 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.List
;
...
@@ -32,10 +31,9 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
...
@@ -32,10 +31,9 @@ import static cn.iocoder.common.framework.vo.CommonResult.success;
@Api
(
"商品推荐模块"
)
@Api
(
"商品推荐模块"
)
public
class
AdminsProductRecommendController
{
public
class
AdminsProductRecommendController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductRecommendService.version}"
)
@Autowired
private
ProductRecommendService
productRecommendService
;
private
ProductRecommendService
productRecommendService
;
@Reference
(
validation
=
"true"
,
version
=
"
*"
,
lazy
=
true
)
@Reference
(
validation
=
"true"
,
version
=
"
${dubbo.consumer.ProductSpuService.version}"
)
private
ProductSpuService
productSpuService
;
private
ProductSpuService
productSpuService
;
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersBannerController.java
浏览文件 @
d39a4160
...
@@ -7,10 +7,9 @@ import cn.iocoder.mall.promotion.api.bo.BannerBO;
...
@@ -7,10 +7,9 @@ import cn.iocoder.mall.promotion.api.bo.BannerBO;
import
cn.iocoder.mall.promotion.application.convert.BannerConvert
;
import
cn.iocoder.mall.promotion.application.convert.BannerConvert
;
import
cn.iocoder.mall.promotion.application.vo.users.UsersBannerVO
;
import
cn.iocoder.mall.promotion.application.vo.users.UsersBannerVO
;
import
cn.iocoder.mall.user.sdk.annotation.PermitAll
;
import
cn.iocoder.mall.user.sdk.annotation.PermitAll
;
import
org.apache.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
...
@@ -23,8 +22,7 @@ import java.util.List;
...
@@ -23,8 +22,7 @@ import java.util.List;
@Api
(
"Banner 模块"
)
@Api
(
"Banner 模块"
)
public
class
UsersBannerController
{
public
class
UsersBannerController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.BannerService.version}"
)
@Autowired
private
BannerService
bannerService
;
private
BannerService
bannerService
;
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersCouponController.java
浏览文件 @
d39a4160
...
@@ -13,12 +13,11 @@ import cn.iocoder.mall.promotion.application.vo.users.UsersCouponCardVO;
...
@@ -13,12 +13,11 @@ import cn.iocoder.mall.promotion.application.vo.users.UsersCouponCardVO;
import
cn.iocoder.mall.promotion.application.vo.users.UsersCouponTemplateVO
;
import
cn.iocoder.mall.promotion.application.vo.users.UsersCouponTemplateVO
;
import
cn.iocoder.mall.user.sdk.annotation.PermitAll
;
import
cn.iocoder.mall.user.sdk.annotation.PermitAll
;
import
cn.iocoder.mall.user.sdk.context.UserSecurityContextHolder
;
import
cn.iocoder.mall.user.sdk.context.UserSecurityContextHolder
;
import
org.apache.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RestController
...
@@ -26,8 +25,7 @@ import org.springframework.web.bind.annotation.*;
...
@@ -26,8 +25,7 @@ import org.springframework.web.bind.annotation.*;
@Api
(
"优惠劵(码)模块"
)
@Api
(
"优惠劵(码)模块"
)
public
class
UsersCouponController
{
public
class
UsersCouponController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.CouponService.version}"
)
@Autowired
private
CouponService
couponService
;
private
CouponService
couponService
;
// ========== 优惠劵(码)模板 ==========
// ========== 优惠劵(码)模板 ==========
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/controller/users/UsersProductRecommendController.java
浏览文件 @
d39a4160
...
@@ -9,12 +9,11 @@ import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
...
@@ -9,12 +9,11 @@ import cn.iocoder.mall.promotion.api.bo.ProductRecommendBO;
import
cn.iocoder.mall.promotion.application.convert.ProductRecommendConvert
;
import
cn.iocoder.mall.promotion.application.convert.ProductRecommendConvert
;
import
cn.iocoder.mall.promotion.application.vo.users.UsersProductRecommendVO
;
import
cn.iocoder.mall.promotion.application.vo.users.UsersProductRecommendVO
;
import
cn.iocoder.mall.user.sdk.annotation.PermitAll
;
import
cn.iocoder.mall.user.sdk.annotation.PermitAll
;
import
org.apache.dubbo.config.annotation.Reference
;
import
com.google.common.collect.HashMultimap
;
import
com.google.common.collect.HashMultimap
;
import
com.google.common.collect.Multimap
;
import
com.google.common.collect.Multimap
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
...
@@ -30,11 +29,9 @@ import java.util.stream.Collectors;
...
@@ -30,11 +29,9 @@ import java.util.stream.Collectors;
@Api
(
"商品推荐模块"
)
@Api
(
"商品推荐模块"
)
public
class
UsersProductRecommendController
{
public
class
UsersProductRecommendController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductRecommendService.version}"
)
@Autowired
private
ProductRecommendService
productRecommendService
;
private
ProductRecommendService
productRecommendService
;
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.consumer.ProductSpuService.version}"
)
@Reference
(
validation
=
"true"
,
version
=
"1.0.0"
)
private
ProductSpuService
productSpuService
;
private
ProductSpuService
productSpuService
;
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/ProductRecommendService.java
浏览文件 @
d39a4160
package
cn
.
iocoder
.
mall
.
promotion
.
api
;
package
cn
.
iocoder
.
mall
.
promotion
.
api
;
import
cn.iocoder.common.framework.constant.CommonStatusEnum
;
import
cn.iocoder.common.framework.constant.CommonStatusEnum
;
import
cn.iocoder.common.framework.exception.ServiceException
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.common.framework.validator.InEnum
;
import
cn.iocoder.mall.promotion.api.bo.ProductRecommendBO
;
import
cn.iocoder.mall.promotion.api.bo.ProductRecommendBO
;
import
cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO
;
import
cn.iocoder.mall.promotion.api.bo.ProductRecommendPageBO
;
...
@@ -16,12 +17,12 @@ public interface ProductRecommendService {
...
@@ -16,12 +17,12 @@ public interface ProductRecommendService {
ProductRecommendPageBO
getProductRecommendPage
(
ProductRecommendPageDTO
productRecommendPageDTO
);
ProductRecommendPageBO
getProductRecommendPage
(
ProductRecommendPageDTO
productRecommendPageDTO
);
ProductRecommendBO
addProductRecommend
(
Integer
adminId
,
ProductRecommendAddDTO
productRecommendAddDTO
);
ProductRecommendBO
addProductRecommend
(
Integer
adminId
,
ProductRecommendAddDTO
productRecommendAddDTO
)
throws
ServiceException
;
Boolean
updateProductRecommend
(
Integer
adminId
,
ProductRecommendUpdateDTO
productRecommendUpdateDTO
);
Boolean
updateProductRecommend
(
Integer
adminId
,
ProductRecommendUpdateDTO
productRecommendUpdateDTO
)
throws
ServiceException
;
Boolean
updateProductRecommendStatus
(
Integer
adminId
,
Integer
productRecommendId
,
Boolean
updateProductRecommendStatus
(
Integer
adminId
,
Integer
productRecommendId
,
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
Integer
status
);
@InEnum
(
value
=
CommonStatusEnum
.
class
,
message
=
"修改状态必须是 {value}"
)
Integer
status
)
throws
ServiceException
;
Boolean
deleteProductRecommend
(
Integer
adminId
,
Integer
productRecommendId
);
Boolean
deleteProductRecommend
(
Integer
adminId
,
Integer
productRecommendId
);
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/BannerAddDTO.java
浏览文件 @
d39a4160
...
@@ -7,13 +7,14 @@ import org.hibernate.validator.constraints.URL;
...
@@ -7,13 +7,14 @@ import org.hibernate.validator.constraints.URL;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* Banner 添加 DTO
* Banner 添加 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
BannerAddDTO
{
public
class
BannerAddDTO
implements
Serializable
{
@NotEmpty
(
message
=
"标题不能为空"
)
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
2
,
max
=
32
,
message
=
"标题长度为 2-32 位"
)
@Length
(
min
=
2
,
max
=
32
,
message
=
"标题长度为 2-32 位"
)
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/BannerPageDTO.java
浏览文件 @
d39a4160
...
@@ -4,13 +4,14 @@ import lombok.Data;
...
@@ -4,13 +4,14 @@ import lombok.Data;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* Banner 分页 DTO
* Banner 分页 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
BannerPageDTO
{
public
class
BannerPageDTO
implements
Serializable
{
/**
/**
* 标题,模糊匹配
* 标题,模糊匹配
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/BannerUpdateDTO.java
浏览文件 @
d39a4160
...
@@ -7,13 +7,14 @@ import org.hibernate.validator.constraints.URL;
...
@@ -7,13 +7,14 @@ import org.hibernate.validator.constraints.URL;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* Banner 更新 DTO
* Banner 更新 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
BannerUpdateDTO
{
public
class
BannerUpdateDTO
implements
Serializable
{
@NotNull
(
message
=
"编号不能为空"
)
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
private
Integer
id
;
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCardPageDTO.java
浏览文件 @
d39a4160
...
@@ -4,13 +4,14 @@ import lombok.Data;
...
@@ -4,13 +4,14 @@ import lombok.Data;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* 优惠劵分页 DTO
* 优惠劵分页 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
CouponCardPageDTO
{
public
class
CouponCardPageDTO
implements
Serializable
{
/**
/**
* 用户编号
* 用户编号
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCardTemplateAddDTO.java
浏览文件 @
d39a4160
...
@@ -12,6 +12,7 @@ import javax.validation.constraints.Max;
...
@@ -12,6 +12,7 @@ import javax.validation.constraints.Max;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.Date
;
/**
/**
...
@@ -19,7 +20,7 @@ import java.util.Date;
...
@@ -19,7 +20,7 @@ import java.util.Date;
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
CouponCardTemplateAddDTO
{
public
class
CouponCardTemplateAddDTO
implements
Serializable
{
// ========== 基本信息 BEGIN ==========
// ========== 基本信息 BEGIN ==========
/**
/**
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCardTemplateUpdateDTO.java
浏览文件 @
d39a4160
...
@@ -9,13 +9,14 @@ import org.hibernate.validator.constraints.Length;
...
@@ -9,13 +9,14 @@ import org.hibernate.validator.constraints.Length;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* 优惠劵模板更新 DTO
* 优惠劵模板更新 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
CouponCardTemplateUpdateDTO
{
public
class
CouponCardTemplateUpdateDTO
implements
Serializable
{
@NotNull
(
message
=
"编号不能为空"
)
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
private
Integer
id
;
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCodeTemplateAddDTO.java
浏览文件 @
d39a4160
...
@@ -3,10 +3,12 @@ package cn.iocoder.mall.promotion.api.dto;
...
@@ -3,10 +3,12 @@ package cn.iocoder.mall.promotion.api.dto;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
/**
* 优惠码模板添加 DTO
* 优惠码模板添加 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
CouponCodeTemplateAddDTO
{
public
class
CouponCodeTemplateAddDTO
implements
Serializable
{
}
}
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponCodeTemplateUpdateDTO.java
浏览文件 @
d39a4160
...
@@ -3,10 +3,12 @@ package cn.iocoder.mall.promotion.api.dto;
...
@@ -3,10 +3,12 @@ package cn.iocoder.mall.promotion.api.dto;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
/**
* 优惠码模板更新 DTO
* 优惠码模板更新 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
CouponCodeTemplateUpdateDTO
{
public
class
CouponCodeTemplateUpdateDTO
implements
Serializable
{
}
}
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/CouponTemplatePageDTO.java
浏览文件 @
d39a4160
...
@@ -4,13 +4,14 @@ import lombok.Data;
...
@@ -4,13 +4,14 @@ import lombok.Data;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* 优惠劵模板分页 DTO
* 优惠劵模板分页 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
CouponTemplatePageDTO
{
public
class
CouponTemplatePageDTO
implements
Serializable
{
/**
/**
* 类型
* 类型
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/ProductRecommendAddDTO.java
浏览文件 @
d39a4160
...
@@ -7,13 +7,14 @@ import lombok.experimental.Accessors;
...
@@ -7,13 +7,14 @@ import lombok.experimental.Accessors;
import
org.hibernate.validator.constraints.Length
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* 商品推荐添加 DTO
* 商品推荐添加 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
ProductRecommendAddDTO
{
public
class
ProductRecommendAddDTO
implements
Serializable
{
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"修改推荐类型必须是 {value}"
)
@InEnum
(
value
=
ProductRecommendTypeEnum
.
class
,
message
=
"修改推荐类型必须是 {value}"
)
@NotNull
(
message
=
"推荐类型不能为空"
)
@NotNull
(
message
=
"推荐类型不能为空"
)
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/ProductRecommendPageDTO.java
浏览文件 @
d39a4160
...
@@ -4,13 +4,14 @@ import lombok.Data;
...
@@ -4,13 +4,14 @@ import lombok.Data;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* 商品推荐分页 DTO
* 商品推荐分页 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
ProductRecommendPageDTO
{
public
class
ProductRecommendPageDTO
implements
Serializable
{
/**
/**
* 推荐类型
* 推荐类型
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/ProductRecommendUpdateDTO.java
浏览文件 @
d39a4160
...
@@ -7,13 +7,14 @@ import lombok.experimental.Accessors;
...
@@ -7,13 +7,14 @@ import lombok.experimental.Accessors;
import
org.hibernate.validator.constraints.Length
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
/**
* 商品推荐更新 DTO
* 商品推荐更新 DTO
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
public
class
ProductRecommendUpdateDTO
{
public
class
ProductRecommendUpdateDTO
implements
Serializable
{
@NotNull
(
message
=
"编号不能为空"
)
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
private
Integer
id
;
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/dataobject/CouponTemplateDO.java
浏览文件 @
d39a4160
...
@@ -38,9 +38,7 @@ public class CouponTemplateDO extends BaseDO {
...
@@ -38,9 +38,7 @@ public class CouponTemplateDO extends BaseDO {
/**
/**
* 优惠码状态
* 优惠码状态
*
*
* 1-开启中
* {@link cn.iocoder.mall.promotion.api.constant.CouponTemplateStatusEnum}
* 2-禁用中
* 3-已过期
*
*
* 当优惠劵(码)开启中,可以手动操作,设置禁用中。
* 当优惠劵(码)开启中,可以手动操作,设置禁用中。
*/
*/
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/BannerServiceImpl.java
浏览文件 @
d39a4160
...
@@ -20,7 +20,7 @@ import java.util.Date;
...
@@ -20,7 +20,7 @@ import java.util.Date;
import
java.util.List
;
import
java.util.List
;
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.BannerService.version}"
)
public
class
BannerServiceImpl
implements
BannerService
{
public
class
BannerServiceImpl
implements
BannerService
{
@Autowired
@Autowired
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/CouponServiceImpl.java
浏览文件 @
d39a4160
...
@@ -24,7 +24,7 @@ import java.util.*;
...
@@ -24,7 +24,7 @@ import java.util.*;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.CouponService.version}"
)
public
class
CouponServiceImpl
implements
CouponService
{
public
class
CouponServiceImpl
implements
CouponService
{
@Autowired
@Autowired
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/ProductRecommendServiceImpl.java
浏览文件 @
d39a4160
...
@@ -22,10 +22,10 @@ import java.util.Date;
...
@@ -22,10 +22,10 @@ import java.util.Date;
import
java.util.List
;
import
java.util.List
;
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.ProductRecommendService.version}"
)
public
class
ProductRecommendServiceImpl
implements
ProductRecommendService
{
public
class
ProductRecommendServiceImpl
implements
ProductRecommendService
{
@Reference
(
validation
=
"true"
,
version
=
"
1.0.0
"
)
@Reference
(
validation
=
"true"
,
version
=
"
${dubbo.consumer.ProductSpuService.version}
"
)
private
ProductSpuService
productSpuService
;
private
ProductSpuService
productSpuService
;
@Autowired
@Autowired
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/PromotionActivityServiceImpl.java
浏览文件 @
d39a4160
...
@@ -18,7 +18,7 @@ import java.util.Iterator;
...
@@ -18,7 +18,7 @@ import java.util.Iterator;
import
java.util.List
;
import
java.util.List
;
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@Service
// 实际上不用添加。添加的原因是,必须 Spring 报错提示
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.PromotionActivityService.version}"
)
public
class
PromotionActivityServiceImpl
implements
PromotionActivityService
{
public
class
PromotionActivityServiceImpl
implements
PromotionActivityService
{
@Autowired
@Autowired
...
...
promotion/promotion-service-impl/src/main/resources/config/application.yaml
浏览文件 @
d39a4160
...
@@ -23,8 +23,21 @@ dubbo:
...
@@ -23,8 +23,21 @@ dubbo:
name
:
dubbo
name
:
dubbo
scan
:
scan
:
base-packages
:
cn.iocoder.mall.promotion.biz.service
base-packages
:
cn.iocoder.mall.promotion.biz.service
consumer
:
ProductSpuService
:
version
:
1.0.0
provider
:
BannerService
:
version
:
1.0.0
CouponService
:
version
:
1.0.0
ProductRecommendService
:
version
:
1.0.0
PromotionActivityService
:
version
:
1.0.0
# logging
# logging
logging
:
logging
:
level
:
level
:
cn.iocoder.mall.promotion.dao
:
debug
cn.iocoder.mall.promotion.dao
:
debug
\ No newline at end of file
system/system-application/pom.xml
浏览文件 @
d39a4160
...
@@ -14,17 +14,18 @@
...
@@ -14,17 +14,18 @@
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
system-service-impl
</artifactId>
<artifactId>
common-framework
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
system-s
dk
</artifactId>
<artifactId>
system-s
ervice-impl
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
common-framewor
k
</artifactId>
<artifactId>
system-sd
k
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
...
@@ -48,11 +49,11 @@
...
@@ -48,11 +49,11 @@
<artifactId>
springfox-swagger-ui
</artifactId>
<artifactId>
springfox-swagger-ui
</artifactId>
</dependency>
</dependency>
<dependency
>
<!-- <dependency>--
>
<groupId>
org.springframework.boot
</groupId
>
<!-- <groupId>org.springframework.boot</groupId>--
>
<artifactId>
spring-boot-devtools
</artifactId
>
<!-- <artifactId>spring-boot-devtools</artifactId>--
>
<optional>
true
</optional
>
<!-- <optional>true</optional>--
>
</dependency
>
<!-- </dependency>--
>
<!--<dependency>-->
<!--<dependency>-->
<!--<groupId>de.codecentric</groupId>-->
<!--<groupId>de.codecentric</groupId>-->
...
...
system/system-application/src/main/java/cn/iocoder/mall/admin/application/config/MVCConfiguration.java
浏览文件 @
d39a4160
...
@@ -20,7 +20,9 @@ import java.util.Set;
...
@@ -20,7 +20,9 @@ import java.util.Set;
@EnableWebMvc
@EnableWebMvc
@Configuration
@Configuration
@Import
(
value
=
{
GlobalExceptionHandler
.
class
,
// 统一全局返回
@Import
(
value
=
{
GlobalExceptionHandler
.
class
,
// 统一全局返回
AdminSecurityInterceptor
.
class
})
AdminAccessLogInterceptor
.
class
,
AdminSecurityInterceptor
.
class
})
public
class
MVCConfiguration
implements
WebMvcConfigurer
{
public
class
MVCConfiguration
implements
WebMvcConfigurer
{
// @Autowired
// @Autowired
...
@@ -36,7 +38,6 @@ public class MVCConfiguration implements WebMvcConfigurer {
...
@@ -36,7 +38,6 @@ public class MVCConfiguration implements WebMvcConfigurer {
@Override
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// registry.addInterceptor(securityInterceptor).addPathPatterns("/user/**", "/admin/**"); // 只拦截我们定义的接口
registry
.
addInterceptor
(
adminAccessLogInterceptor
).
addPathPatterns
(
"/admins/**"
);
registry
.
addInterceptor
(
adminAccessLogInterceptor
).
addPathPatterns
(
"/admins/**"
);
registry
.
addInterceptor
(
adminSecurityInterceptor
.
setIgnoreUrls
(
ignoreUrls
)).
addPathPatterns
(
"/admins/**"
)
registry
.
addInterceptor
(
adminSecurityInterceptor
.
setIgnoreUrls
(
ignoreUrls
)).
addPathPatterns
(
"/admins/**"
)
.
excludePathPatterns
(
"/admins/passport/login"
);
// 排除登陆接口
.
excludePathPatterns
(
"/admins/passport/login"
);
// 排除登陆接口
...
...
system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/AdminController.java
浏览文件 @
d39a4160
...
@@ -23,7 +23,6 @@ import io.swagger.annotations.ApiImplicitParam;
...
@@ -23,7 +23,6 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.*
;
import
java.util.*
;
...
@@ -34,14 +33,11 @@ import java.util.stream.Collectors;
...
@@ -34,14 +33,11 @@ import java.util.stream.Collectors;
@Api
(
"管理员模块"
)
@Api
(
"管理员模块"
)
public
class
AdminController
{
public
class
AdminController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ResourceService.version}"
)
@Autowired
// TODO Dubbo 2.7.2 移除 bug
private
ResourceService
resourceService
;
private
ResourceService
resourceService
;
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.AdminService.version}"
)
@Autowired
// TODO Dubbo 2.7.2 移除 bug
private
AdminService
adminService
;
private
AdminService
adminService
;
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.RoleService.version}"
)
@Autowired
// TODO Dubbo 2.7.2 移除 bug
private
RoleService
roleService
;
private
RoleService
roleService
;
// =========== 当前管理员相关的资源 API ===========
// =========== 当前管理员相关的资源 API ===========
...
...
system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/DataDictController.java
浏览文件 @
d39a4160
...
@@ -9,14 +9,13 @@ import cn.iocoder.mall.admin.application.convert.DataDictConvert;
...
@@ -9,14 +9,13 @@ import cn.iocoder.mall.admin.application.convert.DataDictConvert;
import
cn.iocoder.mall.admin.application.vo.DataDictEnumVO
;
import
cn.iocoder.mall.admin.application.vo.DataDictEnumVO
;
import
cn.iocoder.mall.admin.application.vo.DataDictVO
;
import
cn.iocoder.mall.admin.application.vo.DataDictVO
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
org.apache.dubbo.config.annotation.Reference
;
import
com.google.common.collect.ImmutableListMultimap
;
import
com.google.common.collect.ImmutableListMultimap
;
import
com.google.common.collect.Multimaps
;
import
com.google.common.collect.Multimaps
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -27,8 +26,7 @@ import java.util.List;
...
@@ -27,8 +26,7 @@ import java.util.List;
@Api
(
"数据字典模块"
)
@Api
(
"数据字典模块"
)
public
class
DataDictController
{
public
class
DataDictController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.DataDictService.version}"
)
@Autowired
// TODO Dubbo 2.7.2 移除 bug
private
DataDictService
dataDictService
;
private
DataDictService
dataDictService
;
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
...
...
system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/PassportController.java
浏览文件 @
d39a4160
...
@@ -10,7 +10,6 @@ import io.swagger.annotations.ApiImplicitParam;
...
@@ -10,7 +10,6 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
...
@@ -21,8 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -21,8 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
@Api
(
"Admin Passport 模块"
)
@Api
(
"Admin Passport 模块"
)
public
class
PassportController
{
public
class
PassportController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.OAuth2Service.version}"
)
@Autowired
// TODO Dubbo 2.7.2 移除 bug
private
OAuth2Service
oauth2Service
;
private
OAuth2Service
oauth2Service
;
@PostMapping
(
"/login"
)
@PostMapping
(
"/login"
)
...
...
system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/ResourceController.java
浏览文件 @
d39a4160
...
@@ -10,12 +10,11 @@ import cn.iocoder.mall.admin.application.convert.ResourceConvert;
...
@@ -10,12 +10,11 @@ import cn.iocoder.mall.admin.application.convert.ResourceConvert;
import
cn.iocoder.mall.admin.application.vo.ResourceTreeNodeVO
;
import
cn.iocoder.mall.admin.application.vo.ResourceTreeNodeVO
;
import
cn.iocoder.mall.admin.application.vo.ResourceVO
;
import
cn.iocoder.mall.admin.application.vo.ResourceVO
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
org.apache.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -29,8 +28,7 @@ import java.util.stream.Collectors;
...
@@ -29,8 +28,7 @@ import java.util.stream.Collectors;
@Api
(
"资源模块"
)
@Api
(
"资源模块"
)
public
class
ResourceController
{
public
class
ResourceController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ResourceService.version}"
)
@Autowired
// TODO Dubbo 2.7.2 移除 bug
private
ResourceService
resourceService
;
private
ResourceService
resourceService
;
@SuppressWarnings
(
"Duplicates"
)
@SuppressWarnings
(
"Duplicates"
)
...
...
system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/RoleController.java
浏览文件 @
d39a4160
...
@@ -16,11 +16,10 @@ import cn.iocoder.mall.admin.application.vo.RolePageVO;
...
@@ -16,11 +16,10 @@ import cn.iocoder.mall.admin.application.vo.RolePageVO;
import
cn.iocoder.mall.admin.application.vo.RoleResourceTreeNodeVO
;
import
cn.iocoder.mall.admin.application.vo.RoleResourceTreeNodeVO
;
import
cn.iocoder.mall.admin.application.vo.RoleVO
;
import
cn.iocoder.mall.admin.application.vo.RoleVO
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
org.apache.dubbo.config.annotation.Reference
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.
springframework.beans.factory.annotation.Autowired
;
import
org.
apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.*
;
import
java.util.*
;
...
@@ -30,11 +29,9 @@ import java.util.stream.Collectors;
...
@@ -30,11 +29,9 @@ import java.util.stream.Collectors;
@RequestMapping
(
"admins/role"
)
@RequestMapping
(
"admins/role"
)
public
class
RoleController
{
public
class
RoleController
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.RoleService.version}"
)
@Autowired
// TODO Dubbo 2.7.2 移除 bug
private
RoleService
roleService
;
private
RoleService
roleService
;
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.provider.ResourceService.version}"
)
@Autowired
// TODO Dubbo 2.7.2 移除 bug
private
ResourceService
resourceService
;
private
ResourceService
resourceService
;
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
...
...
system/system-sdk/pom.xml
浏览文件 @
d39a4160
...
@@ -42,6 +42,10 @@
...
@@ -42,6 +42,10 @@
<groupId>
org.apache.dubbo
</groupId>
<groupId>
org.apache.dubbo
</groupId>
<artifactId>
dubbo
</artifactId>
<artifactId>
dubbo
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
org.apache.dubbo
</groupId>
<artifactId>
dubbo-spring-boot-starter
</artifactId>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-context
</artifactId>
<artifactId>
spring-context
</artifactId>
...
...
system/system-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminAccessLogInterceptor.java
浏览文件 @
d39a4160
...
@@ -8,7 +8,6 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
...
@@ -8,7 +8,6 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
...
@@ -33,8 +32,7 @@ public class AdminAccessLogInterceptor extends HandlerInterceptorAdapter {
...
@@ -33,8 +32,7 @@ public class AdminAccessLogInterceptor extends HandlerInterceptorAdapter {
*/
*/
private
static
final
ThreadLocal
<
Integer
>
ADMIN_ID
=
new
ThreadLocal
<>();
private
static
final
ThreadLocal
<
Integer
>
ADMIN_ID
=
new
ThreadLocal
<>();
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.consumer.AdminAccessLogService.version:1.0.0}"
)
@Autowired
(
required
=
false
)
// TODO 芋艿,初始化时,会存在 spring boot 启动时,服务无法引用的情况,先暂时这么解决。
private
AdminAccessLogService
adminAccessLogService
;
private
AdminAccessLogService
adminAccessLogService
;
@Override
@Override
...
...
system/system-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
浏览文件 @
d39a4160
...
@@ -8,15 +8,12 @@ import cn.iocoder.mall.admin.api.bo.OAuth2AuthenticationBO;
...
@@ -8,15 +8,12 @@ import cn.iocoder.mall.admin.api.bo.OAuth2AuthenticationBO;
import
cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum
;
import
cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContext
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContext
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
com.google.common.collect.Sets
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.HashSet
;
import
java.util.Set
;
import
java.util.Set
;
/**
/**
...
@@ -25,8 +22,7 @@ import java.util.Set;
...
@@ -25,8 +22,7 @@ import java.util.Set;
@Component
@Component
public
class
AdminSecurityInterceptor
extends
HandlerInterceptorAdapter
{
public
class
AdminSecurityInterceptor
extends
HandlerInterceptorAdapter
{
@Reference
(
validation
=
"true"
)
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.consumer.OAuth2Service.version:1.0.0}"
)
@Autowired
(
required
=
false
)
// TODO 芋艿,初始化时,会存在 spring boot 启动时,服务无法引用的情况,先暂时这么解决。
private
OAuth2Service
oauth2Service
;
private
OAuth2Service
oauth2Service
;
/**
/**
* 忽略的 URL 集合,即无需经过认证
* 忽略的 URL 集合,即无需经过认证
...
@@ -44,13 +40,11 @@ public class AdminSecurityInterceptor extends HandlerInterceptorAdapter {
...
@@ -44,13 +40,11 @@ public class AdminSecurityInterceptor extends HandlerInterceptorAdapter {
String
accessToken
=
HttpUtil
.
obtainAccess
(
request
);
String
accessToken
=
HttpUtil
.
obtainAccess
(
request
);
OAuth2AuthenticationBO
authentication
=
null
;
OAuth2AuthenticationBO
authentication
=
null
;
if
(
accessToken
!=
null
)
{
if
(
accessToken
!=
null
)
{
// CommonResult<OAuth2AuthenticationBO> result = oauth2Service.checkToken(accessToken);
CommonResult
<
OAuth2AuthenticationBO
>
result
=
oauth2Service
.
checkToken
(
accessToken
);
// TODO sin 先临时跳过 认证
// TODO sin 先临时跳过 认证
CommonResult
<
OAuth2AuthenticationBO
>
result
=
CommonResult
.
success
(
new
OAuth2AuthenticationBO
()
// CommonResult<OAuth2AuthenticationBO> result = CommonResult.success(new OAuth2AuthenticationBO()
.
setAdminId
(
1
)
// .setAdminId(1)
.
setRoleIds
(
Sets
.
newHashSet
(
1
,
2
,
3
,
4
)));
// .setRoleIds(Sets.newHashSet(1, 2, 3, 4)));
if
(
result
.
isError
())
{
// TODO 芋艿,如果访问的地址无需登录,这里也不用抛异常
if
(
result
.
isError
())
{
// TODO 芋艿,如果访问的地址无需登录,这里也不用抛异常
throw
new
ServiceException
(
result
.
getCode
(),
result
.
getMessage
());
throw
new
ServiceException
(
result
.
getCode
(),
result
.
getMessage
());
}
}
...
...
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminAccessLogServiceImpl.java
浏览文件 @
d39a4160
...
@@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
...
@@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
import
java.util.Date
;
import
java.util.Date
;
@Service
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.AdminAccessLogService.version}"
)
public
class
AdminAccessLogServiceImpl
implements
AdminAccessLogService
{
public
class
AdminAccessLogServiceImpl
implements
AdminAccessLogService
{
/**
/**
...
...
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java
浏览文件 @
d39a4160
...
@@ -29,7 +29,7 @@ import java.util.Set;
...
@@ -29,7 +29,7 @@ import java.util.Set;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.AdminService.version}"
)
public
class
AdminServiceImpl
implements
AdminService
{
public
class
AdminServiceImpl
implements
AdminService
{
@Autowired
@Autowired
...
...
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java
浏览文件 @
d39a4160
...
@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
...
@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
* 数据字典 Service
* 数据字典 Service
*/
*/
@Service
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.DataDictService.version}"
)
public
class
DataDictServiceImpl
implements
DataDictService
{
public
class
DataDictServiceImpl
implements
DataDictService
{
@Autowired
@Autowired
...
...
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/OAuth2ServiceImpl.java
浏览文件 @
d39a4160
...
@@ -21,7 +21,7 @@ import java.util.Set;
...
@@ -21,7 +21,7 @@ import java.util.Set;
import
java.util.UUID
;
import
java.util.UUID
;
@Service
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.OAuth2Service.version:1.0.0}"
)
public
class
OAuth2ServiceImpl
implements
OAuth2Service
{
public
class
OAuth2ServiceImpl
implements
OAuth2Service
{
/**
/**
...
...
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/ResourceServiceImpl.java
浏览文件 @
d39a4160
...
@@ -24,7 +24,7 @@ import java.util.List;
...
@@ -24,7 +24,7 @@ import java.util.List;
import
java.util.Set
;
import
java.util.Set
;
@Service
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.ResourceService.version}"
)
public
class
ResourceServiceImpl
implements
ResourceService
{
public
class
ResourceServiceImpl
implements
ResourceService
{
@Autowired
@Autowired
...
...
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/RoleServiceImpl.java
浏览文件 @
d39a4160
...
@@ -30,7 +30,7 @@ import java.util.Set;
...
@@ -30,7 +30,7 @@ import java.util.Set;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
)
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.RoleService.version}"
)
public
class
RoleServiceImpl
implements
RoleService
{
public
class
RoleServiceImpl
implements
RoleService
{
@Autowired
@Autowired
...
...
system/system-service-impl/src/main/resources/config/application.yaml
浏览文件 @
d39a4160
...
@@ -23,3 +23,16 @@ dubbo:
...
@@ -23,3 +23,16 @@ dubbo:
name
:
dubbo
name
:
dubbo
scan
:
scan
:
base-packages
:
cn.iocoder.mall.admin.service
base-packages
:
cn.iocoder.mall.admin.service
provider
:
AdminAccessLogService
:
version
:
1.0.0
AdminService
:
version
:
1.0.0
DataDictService
:
version
:
1.0.0
OAuth2Service
:
version
:
1.0.0
ResourceService
:
version
:
1.0.0
RoleService
:
version
:
1.0.0
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论