From f05ad4d8b035dbeda40efb5f9bbdaa3a9a899b90 Mon Sep 17 00:00:00 2001
From: Autorun <20293349@qq.com>
Date: Wed, 15 May 2019 15:13:54 +0800
Subject: [PATCH 1/5] use mybatis-plus config
---
.../main/resources/config/application.yaml | 3 ++-
.../main/resources/config/application.yaml | 2 +-
.../main/resources/config/application.yaml | 21 +++++++++----------
3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/order/order-service-impl/src/main/resources/config/application.yaml b/order/order-service-impl/src/main/resources/config/application.yaml
index a60232b1b..7a190c48a 100644
--- a/order/order-service-impl/src/main/resources/config/application.yaml
+++ b/order/order-service-impl/src/main/resources/config/application.yaml
@@ -7,7 +7,7 @@ spring:
password: ${MALL_MYSQL_PASSWORD}
# mybatis
-mybatis:
+#mybatis:
# config-location: classpath:mybatis-config.xml
# mapper-locations: classpath:mapper/*.xml
# type-aliases-package: cn.iocoder.mall.order.biz.dataobject
@@ -21,6 +21,7 @@ mybatis-plus:
id-type: auto
mapper-locations: classpath*:mapper/*.xml
type-aliases-package: cn.iocoder.mall.order.biz.dataobject
+ config-location: classpath:mybatis-config.xml
# dubbo
dubbo:
diff --git a/promotion/promotion-service-impl/src/main/resources/config/application.yaml b/promotion/promotion-service-impl/src/main/resources/config/application.yaml
index 0d7dfd6e7..8694fcf5f 100644
--- a/promotion/promotion-service-impl/src/main/resources/config/application.yaml
+++ b/promotion/promotion-service-impl/src/main/resources/config/application.yaml
@@ -26,7 +26,7 @@ mybatis-plus:
id-type: auto
mapper-locations: classpath*:mapper/*.xml
type-aliases-package: cn.iocoder.mall.promotion.biz.dataobject
-
+ config-location: classpath:mybatis-config.xml
# dubbo
dubbo:
application:
diff --git a/user/user-service-impl/src/main/resources/config/application.yaml b/user/user-service-impl/src/main/resources/config/application.yaml
index 8d8573feb..515785456 100644
--- a/user/user-service-impl/src/main/resources/config/application.yaml
+++ b/user/user-service-impl/src/main/resources/config/application.yaml
@@ -7,19 +7,18 @@ spring:
password: ${MALL_MYSQL_PASSWORD}
# mybatis
-mybatis:
- config-location: classpath:mybatis-config.xml
- mapper-locations: classpath:mapper/*.xml
- type-aliases-package: cn.iocoder.mall.user.biz.dataobject
+#mybatis:
+# config-location: classpath:mybatis-config.xml
+# mapper-locations: classpath:mapper/*.xml
+# type-aliases-package: cn.iocoder.mall.user.biz.dataobject
# mybatis-plus
-#mybatis-plus:
-# configuration:
-# mapUnderscoreToCamelCase: true # 虽然默认为 true ,但是还是显示去指定下。
-# mapperLocations: classpath*:mapper/*.xml
-# typeAliasesPackage: cn.iocoder.mall.user.biz.dataobject
-# mapper-locations: classpath*:mapper/*.xml
-# type-aliases-package: cn.iocoder.mall.user.biz.dataobject
+mybatis-plus:
+ configuration:
+ mapUnderscoreToCamelCase: true # 虽然默认为 true ,但是还是显示去指定下。
+ mapperLocations: classpath*:mapper/*.xml
+ typeAliasesPackage: cn.iocoder.mall.user.biz.dataobject
+ config-location: classpath:mybatis-config.xml
# dubbo
dubbo:
From 633c7504a47ef7375673a224bf63df15559c4e96 Mon Sep 17 00:00:00 2001
From: sin <2943460818@qq.com>
Date: Wed, 15 May 2019 16:44:13 +0800
Subject: [PATCH 2/5] =?UTF-8?q?-=20=E6=B7=BB=E5=8A=A0=20sentinel?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 7 +++++++
system/system-application/pom.xml | 5 +++--
.../src/main/resources/application.yaml | 8 ++++++++
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 373f2a96b..21447e170 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,6 +46,7 @@
2.0.1
27.0.1-jre
2.0.1
+ 0.9.0.RELEASE
3.8.0
1.16.14
@@ -216,6 +217,12 @@
spring-boot-admin-starter-client
${spring-boot-admin-starter-client.version}
+
+ org.springframework.cloud
+ spring-cloud-starter-alibaba-sentinel
+ ${sentinel.version}
+
+
diff --git a/system/system-application/pom.xml b/system/system-application/pom.xml
index 84f761223..e4add584c 100644
--- a/system/system-application/pom.xml
+++ b/system/system-application/pom.xml
@@ -60,9 +60,10 @@
de.codecentric
spring-boot-admin-starter-client
+
- org.springframework.boot
- spring-boot-starter-actuator
+ org.springframework.cloud
+ spring-cloud-starter-alibaba-sentinel
diff --git a/system/system-application/src/main/resources/application.yaml b/system/system-application/src/main/resources/application.yaml
index 160cae4a2..6f89a4cad 100644
--- a/system/system-application/src/main/resources/application.yaml
+++ b/system/system-application/src/main/resources/application.yaml
@@ -1,6 +1,14 @@
spring:
application:
name: admin-application
+ cloud:
+ sentinel:
+ transport:
+ port: 8719
+ dashboard: localhost:18001
+ metric:
+ charset: UTF-8
+ eager: false
# server
server:
From e2a2fb2b115017561f9dc34c0ca871996a7c5f53 Mon Sep 17 00:00:00 2001
From: sin <2943460818@qq.com>
Date: Wed, 15 May 2019 19:57:45 +0800
Subject: [PATCH 3/5] =?UTF-8?q?-=20=E6=B7=BB=E5=8A=A0=20sentinel?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
order/order-application/pom.xml | 4 ++++
pay/pay-application/pom.xml | 4 ++++
product/product-application/pom.xml | 6 ++++++
promotion/promotion-application/pom.xml | 6 ++++++
search/search-application/pom.xml | 6 ++++++
system/system-application/pom.xml | 1 -
6 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/order/order-application/pom.xml b/order/order-application/pom.xml
index 2eb28a15c..cc0bcf65a 100644
--- a/order/order-application/pom.xml
+++ b/order/order-application/pom.xml
@@ -63,6 +63,10 @@
org.springframework.boot
spring-boot-starter-actuator
+
+ org.springframework.cloud
+ spring-cloud-starter-alibaba-sentinel
+
diff --git a/pay/pay-application/pom.xml b/pay/pay-application/pom.xml
index 51ffd85a6..b65fe4b72 100644
--- a/pay/pay-application/pom.xml
+++ b/pay/pay-application/pom.xml
@@ -70,6 +70,10 @@
org.springframework.boot
spring-boot-starter-actuator
+
+ org.springframework.cloud
+ spring-cloud-starter-alibaba-sentinel
+
diff --git a/product/product-application/pom.xml b/product/product-application/pom.xml
index 2549c1527..0cab41c92 100644
--- a/product/product-application/pom.xml
+++ b/product/product-application/pom.xml
@@ -59,6 +59,12 @@
swagger-bootstrap-ui
+
+
+ org.springframework.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
org.springframework.boot
diff --git a/promotion/promotion-application/pom.xml b/promotion/promotion-application/pom.xml
index f00b8e4be..ba80d881d 100644
--- a/promotion/promotion-application/pom.xml
+++ b/promotion/promotion-application/pom.xml
@@ -70,6 +70,12 @@
swagger-bootstrap-ui
+
+
+ org.springframework.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
org.springframework.boot
diff --git a/search/search-application/pom.xml b/search/search-application/pom.xml
index 243e92aed..acbefe1ae 100644
--- a/search/search-application/pom.xml
+++ b/search/search-application/pom.xml
@@ -59,6 +59,12 @@
swagger-bootstrap-ui
+
+
+ org.springframework.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
org.springframework.boot
diff --git a/system/system-application/pom.xml b/system/system-application/pom.xml
index e4add584c..850280b11 100644
--- a/system/system-application/pom.xml
+++ b/system/system-application/pom.xml
@@ -60,7 +60,6 @@
de.codecentric
spring-boot-admin-starter-client
-
org.springframework.cloud
spring-cloud-starter-alibaba-sentinel
From 236f0f3333b56c635d48e46d26f85d946b0f55b9 Mon Sep 17 00:00:00 2001
From: sin <2943460818@qq.com>
Date: Wed, 15 May 2019 20:01:30 +0800
Subject: [PATCH 4/5] =?UTF-8?q?-=20=E6=B7=BB=E5=8A=A0=20sentinel=EF=BC=8C?=
=?UTF-8?q?=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../order-application/src/main/resources/application.yaml | 8 ++++++++
pay/pay-application/src/main/resources/application.yaml | 8 ++++++++
.../src/main/resources/application.yaml | 8 ++++++++
.../src/main/resources/application.yaml | 8 ++++++++
.../src/main/resources/application.yaml | 8 ++++++++
.../src/main/resources/application.yaml | 2 +-
user/user-application/src/main/resources/application.yaml | 8 ++++++++
7 files changed, 49 insertions(+), 1 deletion(-)
diff --git a/order/order-application/src/main/resources/application.yaml b/order/order-application/src/main/resources/application.yaml
index da8336365..827377e97 100644
--- a/order/order-application/src/main/resources/application.yaml
+++ b/order/order-application/src/main/resources/application.yaml
@@ -1,6 +1,14 @@
spring:
application:
name: order-application
+ cloud:
+ sentinel:
+ transport:
+ port: 8719
+ dashboard: localhost:12088
+ metric:
+ charset: UTF-8
+ eager: false
# server
server:
diff --git a/pay/pay-application/src/main/resources/application.yaml b/pay/pay-application/src/main/resources/application.yaml
index 689842999..fec2024fe 100644
--- a/pay/pay-application/src/main/resources/application.yaml
+++ b/pay/pay-application/src/main/resources/application.yaml
@@ -1,6 +1,14 @@
spring:
application:
name: pay-application
+ cloud:
+ sentinel:
+ transport:
+ port: 8719
+ dashboard: localhost:12088
+ metric:
+ charset: UTF-8
+ eager: false
# server
server:
diff --git a/product/product-application/src/main/resources/application.yaml b/product/product-application/src/main/resources/application.yaml
index 67a4b43dd..e6c88ddad 100644
--- a/product/product-application/src/main/resources/application.yaml
+++ b/product/product-application/src/main/resources/application.yaml
@@ -1,6 +1,14 @@
spring:
application:
name: product-application
+ cloud:
+ sentinel:
+ transport:
+ port: 8719
+ dashboard: localhost:12088
+ metric:
+ charset: UTF-8
+ eager: false
# server
server:
diff --git a/promotion/promotion-application/src/main/resources/application.yaml b/promotion/promotion-application/src/main/resources/application.yaml
index 9d226a880..5b2be8800 100644
--- a/promotion/promotion-application/src/main/resources/application.yaml
+++ b/promotion/promotion-application/src/main/resources/application.yaml
@@ -1,6 +1,14 @@
spring:
application:
name: promotion-application
+ cloud:
+ sentinel:
+ transport:
+ port: 8719
+ dashboard: localhost:12088
+ metric:
+ charset: UTF-8
+ eager: false
# server
server:
diff --git a/search/search-application/src/main/resources/application.yaml b/search/search-application/src/main/resources/application.yaml
index 26de4509d..8304ceb64 100644
--- a/search/search-application/src/main/resources/application.yaml
+++ b/search/search-application/src/main/resources/application.yaml
@@ -1,6 +1,14 @@
spring:
application:
name: search-application
+ cloud:
+ sentinel:
+ transport:
+ port: 8719
+ dashboard: localhost:12088
+ metric:
+ charset: UTF-8
+ eager: false
# server
server:
diff --git a/system/system-application/src/main/resources/application.yaml b/system/system-application/src/main/resources/application.yaml
index 6f89a4cad..0ec850138 100644
--- a/system/system-application/src/main/resources/application.yaml
+++ b/system/system-application/src/main/resources/application.yaml
@@ -5,7 +5,7 @@ spring:
sentinel:
transport:
port: 8719
- dashboard: localhost:18001
+ dashboard: localhost:12088
metric:
charset: UTF-8
eager: false
diff --git a/user/user-application/src/main/resources/application.yaml b/user/user-application/src/main/resources/application.yaml
index 535145830..e8930c403 100644
--- a/user/user-application/src/main/resources/application.yaml
+++ b/user/user-application/src/main/resources/application.yaml
@@ -1,6 +1,14 @@
spring:
application:
name: user-application
+ cloud:
+ sentinel:
+ transport:
+ port: 8719
+ dashboard: localhost:12088
+ metric:
+ charset: UTF-8
+ eager: false
# server
server:
From 39f36837eab251da281f9a369706ba6ff35f124b Mon Sep 17 00:00:00 2001
From: YunaiV
Date: Wed, 15 May 2019 20:18:09 +0800
Subject: [PATCH 5/5] =?UTF-8?q?-=20=E5=90=8E=E7=AB=AF=EF=BC=9A=E9=87=8D?=
=?UTF-8?q?=E6=9E=84=20system=20=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
admin-web/src/models/admin/roleList.js | 6 +-
admin-web/src/pages/Admin/AdminList.js | 30 ++++-
admin-web/src/pages/Admin/RoleList.js | 16 +--
common/common-framework/pom.xml | 9 ++
.../framework/mybatis/QueryWrapperX.java | 22 ++++
.../common/framework/util/CollectionUtil.java | 26 +++-
.../common/framework/vo/PageParam.java | 45 +++++++
.../common/framework/vo/PageResult.java | 36 ++++++
.../web/handler/GlobalExceptionHandler.java | 4 +-
.../web/interceptor/AccessLogInterceptor.java | 2 +-
docs/guides/功能列表/功能列表-管理后台.md | 6 +-
.../controller/users/OrderController.java | 2 +-
.../users/OrderLogisticsController.java | 2 +-
.../users/OrderReturnController.java | 2 +-
.../biz/service/OrderReturnServiceImpl.java | 2 +-
pom.xml | 11 ++
.../controller/admins/AdminController.java | 84 +++++-------
.../controller/admins/DataDictController.java | 10 +-
.../controller/admins/PassportController.java | 2 +-
.../controller/admins/ResourceController.java | 53 ++------
.../controller/admins/RoleController.java | 61 ++++-----
.../application/convert/AdminConvert.java | 20 +--
.../application/convert/DataDictConvert.java | 8 +-
.../application/convert/PassportConvert.java | 4 +-
.../application/convert/ResourceConvert.java | 12 +-
.../application/convert/RoleConvert.java | 22 +---
.../admin/application/vo/AdminPageVO.java | 20 ---
.../mall/admin/application/vo/AdminVO.java | 30 -----
.../mall/admin/application/vo/RolePageVO.java | 20 ---
.../mall/admin/application/vo/RoleVO.java | 22 ----
.../vo/{ => admin}/AdminInfoVO.java | 4 +-
.../vo/{ => admin}/AdminMenuTreeNodeVO.java | 2 +-
.../vo/{ => admin}/AdminRoleVO.java | 2 +-
.../admin/application/vo/admin/AdminVO.java | 31 +++++
.../vo/{ => datadict}/DataDictEnumVO.java | 2 +-
.../vo/{ => datadict}/DataDictVO.java | 2 +-
.../vo/{ => datadict}/DataDictValueVO.java | 2 +-
.../{ => vo/oauth2}/SystemApplication.java | 2 +-
.../vo/{ => resource}/ResourceTreeNodeVO.java | 2 +-
.../vo/{ => resource}/ResourceVO.java | 2 +-
.../vo/{ => role}/RoleResourceTreeNodeVO.java | 2 +-
.../interceptor/AdminSecurityInterceptor.java | 2 +-
system/system-service-api/pom.xml | 4 +-
.../iocoder/mall/admin/api/AdminService.java | 48 +++++--
.../mall/admin/api/DataDictService.java | 6 +-
.../iocoder/mall/admin/api/OAuth2Service.java | 6 +-
.../mall/admin/api/ResourceService.java | 15 +--
.../iocoder/mall/admin/api/RoleService.java | 38 +++---
.../mall/admin/api/SystemLogService.java | 4 +-
.../iocoder/mall/admin/api/bo/ResourceBO.java | 49 -------
.../iocoder/mall/admin/api/bo/RolePageBO.java | 25 ----
.../mall/admin/api/bo/admin/AdminBO.java | 2 +-
.../api/bo/{ => datadict}/DataDictBO.java | 2 +-
.../bo/{ => oauth2}/OAuth2AccessTokenBO.java | 2 +-
.../{ => oauth2}/OAuth2AuthenticationBO.java | 2 +-
.../admin/api/bo/resource/ResourceBO.java | 40 ++++++
.../mall/admin/api/bo/{ => role}/RoleBO.java | 2 +-
.../api/constant/AdminErrorCodeEnum.java | 4 +-
.../admin/api/constant/ResourceConstants.java | 6 +-
.../mall/admin/api/dto/ResourceAddDTO.java | 46 -------
.../mall/admin/api/dto/ResourceUpdateDTO.java | 46 -------
.../mall/admin/api/dto/RolePageDTO.java | 45 -------
.../api/dto/admin/AdminAssignRoleDTO.java | 23 ++++
.../admin/api/dto/admin/AdminPageDTO.java | 18 +--
.../admin/api/dto/admin/AdminUpdateDTO.java | 33 ++---
.../api/dto/admin/AdminUpdateStatusDTO.java | 26 ++++
.../dto/{ => datadict}/DataDictAddDTO.java | 2 +-
.../dto/{ => datadict}/DataDictUpdateDTO.java | 2 +-
.../api/dto/resource/ResourceAddDTO.java | 43 ++++++
.../api/dto/resource/ResourceUpdateDTO.java | 47 +++++++
.../admin/api/dto/{ => role}/RoleAddDTO.java | 12 +-
.../api/dto/role/RoleAssignResourceDTO.java | 23 ++++
.../mall/admin/api/dto/role/RolePageDTO.java | 17 +++
.../api/dto/{ => role}/RoleUpdateDTO.java | 17 +--
.../dto/{ => systemlog}/AccessLogAddDTO.java | 2 +-
.../{ => systemlog}/ExceptionLogAddDTO.java | 2 +-
.../admin/config/DatabaseConfiguration.java | 6 +
.../mall/admin/convert/AccessLogConvert.java | 4 +-
.../mall/admin/convert/AdminConvert.java | 8 ++
.../mall/admin/convert/DataDictConvert.java | 8 +-
.../mall/admin/convert/OAuth2Convert.java | 6 +-
.../mall/admin/convert/ResourceConvert.java | 20 ++-
.../mall/admin/convert/RoleConvert.java | 16 ++-
.../iocoder/mall/admin/dao/AdminMapper.java | 17 ++-
.../mall/admin/dao/AdminRoleMapper.java | 11 +-
.../cn/iocoder/mall/admin/dao/RoleMapper.java | 36 +++---
.../mall/admin/dataobject/AccessLogDO.java | 3 +-
.../mall/admin/dataobject/AdminRoleDO.java | 2 +
.../mall/admin/dataobject/ExceptionLogDO.java | 3 +-
.../mall/admin/dataobject/ResourceDO.java | 39 ++----
.../iocoder/mall/admin/dataobject/RoleDO.java | 2 +
.../mall/admin/service/AdminServiceImpl.java | 122 +++++++++++-------
.../admin/service/DataDictServiceImpl.java | 6 +-
.../mall/admin/service/OAuth2ServiceImpl.java | 4 +-
.../admin/service/ResourceServiceImpl.java | 99 +++++++-------
.../mall/admin/service/RoleServiceImpl.java | 89 ++++++-------
.../admin/service/SystemLogServiceImpl.java | 4 +-
.../main/resources/config/application.yaml | 6 +
.../src/main/resources/mapper/AdminMapper.xml | 65 ----------
.../main/resources/mapper/ResourceMapper.xml | 20 +--
.../src/main/resources/mapper/RoleMapper.xml | 81 ------------
.../src/main/resources/mybatis-config.xml | 19 ---
102 files changed, 943 insertions(+), 1056 deletions(-)
create mode 100644 common/common-framework/src/main/java/cn/iocoder/common/framework/mybatis/QueryWrapperX.java
create mode 100644 common/common-framework/src/main/java/cn/iocoder/common/framework/vo/PageParam.java
create mode 100644 common/common-framework/src/main/java/cn/iocoder/common/framework/vo/PageResult.java
delete mode 100644 system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminPageVO.java
delete mode 100644 system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminVO.java
delete mode 100644 system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RolePageVO.java
delete mode 100644 system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RoleVO.java
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => admin}/AdminInfoVO.java (75%)
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => admin}/AdminMenuTreeNodeVO.java (95%)
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => admin}/AdminRoleVO.java (91%)
create mode 100644 system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminVO.java
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => datadict}/DataDictEnumVO.java (90%)
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => datadict}/DataDictVO.java (93%)
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => datadict}/DataDictValueVO.java (89%)
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/{ => vo/oauth2}/SystemApplication.java (93%)
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => resource}/ResourceTreeNodeVO.java (96%)
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => resource}/ResourceVO.java (95%)
rename system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/{ => role}/RoleResourceTreeNodeVO.java (95%)
delete mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/ResourceBO.java
delete mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/RolePageBO.java
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/{ => datadict}/DataDictBO.java (93%)
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/{ => oauth2}/OAuth2AccessTokenBO.java (90%)
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/{ => oauth2}/OAuth2AuthenticationBO.java (89%)
create mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/resource/ResourceBO.java
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/{ => role}/RoleBO.java (90%)
delete mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ResourceAddDTO.java
delete mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ResourceUpdateDTO.java
delete mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RolePageDTO.java
create mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminAssignRoleDTO.java
create mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminUpdateStatusDTO.java
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/{ => datadict}/DataDictAddDTO.java (94%)
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/{ => datadict}/DataDictUpdateDTO.java (94%)
create mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/resource/ResourceAddDTO.java
create mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/resource/ResourceUpdateDTO.java
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/{ => role}/RoleAddDTO.java (51%)
create mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleAssignResourceDTO.java
create mode 100644 system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RolePageDTO.java
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/{ => role}/RoleUpdateDTO.java (56%)
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/{ => systemlog}/AccessLogAddDTO.java (96%)
rename system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/{ => systemlog}/ExceptionLogAddDTO.java (97%)
delete mode 100644 system/system-service-impl/src/main/resources/mapper/AdminMapper.xml
delete mode 100644 system/system-service-impl/src/main/resources/mapper/RoleMapper.xml
delete mode 100644 system/system-service-impl/src/main/resources/mybatis-config.xml
diff --git a/admin-web/src/models/admin/roleList.js b/admin-web/src/models/admin/roleList.js
index 1b8b97e8f..0933e493e 100644
--- a/admin-web/src/models/admin/roleList.js
+++ b/admin-web/src/models/admin/roleList.js
@@ -65,12 +65,12 @@ export default {
*query({ payload }, { call, put }) {
const response = yield call(queryRole, payload);
message.info('查询成功!');
- const { count, roles } = response.data;
+ const { total, list } = response.data;
yield put({
type: 'querySuccess',
payload: {
- list: roles,
- count,
+ list: list,
+ count: total,
},
});
},
diff --git a/admin-web/src/pages/Admin/AdminList.js b/admin-web/src/pages/Admin/AdminList.js
index 91206b454..8e4e77ca5 100644
--- a/admin-web/src/pages/Admin/AdminList.js
+++ b/admin-web/src/pages/Admin/AdminList.js
@@ -65,13 +65,29 @@ function List ({ dataSource, loading, pagination, searchParams, dispatch,
const columns = [
{
- title: '用户名',
+ title: '账号',
dataIndex: 'username'
},
{
- title: '昵称',
+ title: '员工姓名',
dataIndex: 'nickname',
},
+ {
+ title: '角色',
+ dataIndex: 'roles',
+ render(roles) {
+ let text = '';
+ if (roles) {
+ for (let i in roles) {
+ if (i > 0) {
+ text += ' ';
+ }
+ text += roles[i].name;
+ }
+ }
+ return ({text});
+ }
+ },
{
title: '状态',
dataIndex: 'status',
@@ -174,7 +190,7 @@ const SearchForm = Form.create()(props => {
+
+ io.swagger
+ swagger-annotations
+
+
org.mybatis
@@ -36,6 +41,10 @@
com.baomidou
mybatis-plus-annotation
+
+ com.baomidou
+ mybatis-plus-core
+
diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/mybatis/QueryWrapperX.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/mybatis/QueryWrapperX.java
new file mode 100644
index 000000000..a1de9eeee
--- /dev/null
+++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/mybatis/QueryWrapperX.java
@@ -0,0 +1,22 @@
+package cn.iocoder.common.framework.mybatis;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.util.StringUtils;
+
+/**
+ * 拓展 MyBatis Plus QueryWrapper 类,主要增加如下功能:
+ *
+ * 1. 拼接条件的方法,增加 xxxIfPresent 方法,用于判断值不存在的时候,不要拼接到条件中。
+ *
+ * @param 数据类型
+ */
+public class QueryWrapperX extends QueryWrapper {
+
+ public QueryWrapperX likeIfPresent(String column, String val) {
+ if (StringUtils.hasText(val)) {
+ return (QueryWrapperX) super.like(column, val);
+ }
+ return this;
+ }
+
+}
diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/util/CollectionUtil.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/util/CollectionUtil.java
index f1af58317..81cdbcb3d 100644
--- a/common/common-framework/src/main/java/cn/iocoder/common/framework/util/CollectionUtil.java
+++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/util/CollectionUtil.java
@@ -1,9 +1,8 @@
package cn.iocoder.common.framework.util;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
public class CollectionUtil {
@@ -14,4 +13,21 @@ public class CollectionUtil {
public static Set asSet(T... objs) {
return new HashSet<>(Arrays.asList(objs));
}
-}
\ No newline at end of file
+
+ public static List convertList(List from, Function func) {
+ return from.stream().map(func).collect(Collectors.toList());
+ }
+
+ public static Set convertSet(List from, Function func) {
+ return from.stream().map(func).collect(Collectors.toSet());
+ }
+
+ public static Map convertMap(List from, Function keyFunc, Function valueFunc) {
+ return from.stream().collect(Collectors.toMap(keyFunc, valueFunc));
+ }
+
+ public static Map convertMap(List from, Function keyFunc) {
+ return from.stream().collect(Collectors.toMap(keyFunc, item -> item));
+ }
+
+}
diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/vo/PageParam.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/vo/PageParam.java
new file mode 100644
index 000000000..5b4d4f6e8
--- /dev/null
+++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/vo/PageParam.java
@@ -0,0 +1,45 @@
+package cn.iocoder.common.framework.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.hibernate.validator.constraints.Range;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+@ApiModel("分页参数")
+public class PageParam {
+
+ @ApiModelProperty(value = "页码,从 1 开始", required = true,example = "1")
+ @NotNull(message = "页码不能为空")
+ @Min(value = 1, message = "页码最小值为 1")
+ private Integer pageNo;
+
+ @ApiModelProperty(value = "每页条数,最大值为 100", required = true, example = "10")
+ @NotNull(message = "每页条数不能为空")
+ @Range(min = 1, max = 100, message = "条数范围为 [1, 100]")
+ private Integer pageSize;
+
+ public Integer getPageNo() {
+ return pageNo;
+ }
+
+ public PageParam setPageNo(Integer pageNo) {
+ this.pageNo = pageNo;
+ return this;
+ }
+
+ public Integer getPageSize() {
+ return pageSize;
+ }
+
+ public PageParam setPageSize(Integer pageSize) {
+ this.pageSize = pageSize;
+ return this;
+ }
+
+ public final int getOffset() {
+ return (pageNo - 1) * pageSize;
+ }
+
+}
diff --git a/common/common-framework/src/main/java/cn/iocoder/common/framework/vo/PageResult.java b/common/common-framework/src/main/java/cn/iocoder/common/framework/vo/PageResult.java
new file mode 100644
index 000000000..b454c54bb
--- /dev/null
+++ b/common/common-framework/src/main/java/cn/iocoder/common/framework/vo/PageResult.java
@@ -0,0 +1,36 @@
+package cn.iocoder.common.framework.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+@ApiModel("分页结果")
+public final class PageResult implements Serializable {
+
+ @ApiModelProperty(value = "数据", required = true)
+ private List list;
+
+ @ApiModelProperty(value = "总量", required = true)
+ private Integer total;
+
+ public List getList() {
+ return list;
+ }
+
+ public PageResult setList(List list) {
+ this.list = list;
+ return this;
+ }
+
+ public Integer getTotal() {
+ return total;
+ }
+
+ public PageResult setTotal(Integer total) {
+ this.total = total;
+ return this;
+ }
+
+}
diff --git a/common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/handler/GlobalExceptionHandler.java b/common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/handler/GlobalExceptionHandler.java
index 7c11be672..b4d4b77bb 100644
--- a/common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/handler/GlobalExceptionHandler.java
+++ b/common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/handler/GlobalExceptionHandler.java
@@ -7,8 +7,8 @@ import cn.iocoder.common.framework.util.HttpUtil;
import cn.iocoder.common.framework.util.MallUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.SystemLogService;
-import cn.iocoder.mall.admin.api.dto.AccessLogAddDTO;
-import cn.iocoder.mall.admin.api.dto.ExceptionLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.AccessLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.ExceptionLogAddDTO;
import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.dubbo.config.annotation.Reference;
diff --git a/common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/interceptor/AccessLogInterceptor.java b/common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/interceptor/AccessLogInterceptor.java
index 335054e23..46c90c6e1 100644
--- a/common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/interceptor/AccessLogInterceptor.java
+++ b/common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/interceptor/AccessLogInterceptor.java
@@ -4,7 +4,7 @@ import cn.iocoder.common.framework.util.HttpUtil;
import cn.iocoder.common.framework.util.MallUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.SystemLogService;
-import cn.iocoder.mall.admin.api.dto.AccessLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.AccessLogAddDTO;
import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.dubbo.config.annotation.Reference;
diff --git a/docs/guides/功能列表/功能列表-管理后台.md b/docs/guides/功能列表/功能列表-管理后台.md
index 9b79f4d35..bb534edfc 100644
--- a/docs/guides/功能列表/功能列表-管理后台.md
+++ b/docs/guides/功能列表/功能列表-管理后台.md
@@ -18,7 +18,7 @@
- [ ] 订单管理
- [ ] 销售单 开发中
- [ ] 售后单 开发中
- - [ ] 订单评价【待认领】
+ - [ ] 订单评价【开发中】
- [ ] 会员管理
- [ ] 会员资料 20%【待认领】
- TODO 需要补充
@@ -31,8 +31,8 @@
- [ ] 限制折扣 20% 【待认领】
- [ ] 多人拼团【待认领】
- [ ] 系统管理
- - [ ] 员工管理
- - [ ] 角色管理
+ - [x] 员工管理
+ - [x] 角色管理
- [ ] 权限管理
- [ ] 短信管理
- [ ] 短信模板
diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderController.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderController.java
index 8b718e357..587559b1e 100644
--- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderController.java
+++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderController.java
@@ -4,7 +4,7 @@ import cn.iocoder.common.framework.util.HttpUtil;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.DataDictService;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
import cn.iocoder.mall.order.api.CartService;
import cn.iocoder.mall.order.api.OrderService;
import cn.iocoder.mall.order.api.bo.*;
diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderLogisticsController.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderLogisticsController.java
index 75bbf0c0b..34cbcf972 100644
--- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderLogisticsController.java
+++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderLogisticsController.java
@@ -3,7 +3,7 @@ package cn.iocoder.mall.order.application.controller.users;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.DataDictService;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
import cn.iocoder.mall.order.api.OrderLogisticsService;
import cn.iocoder.mall.order.api.bo.OrderLogisticsInfoBO;
import cn.iocoder.mall.order.api.bo.OrderLogisticsInfoWithOrderBO;
diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderReturnController.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderReturnController.java
index 663816cb9..b17359796 100644
--- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderReturnController.java
+++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderReturnController.java
@@ -2,7 +2,7 @@ package cn.iocoder.mall.order.application.controller.users;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.DataDictService;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
import cn.iocoder.mall.order.api.OrderReturnService;
import cn.iocoder.mall.order.api.bo.OrderReturnInfoBO;
import cn.iocoder.mall.order.api.constant.DictKeyConstants;
diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnServiceImpl.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnServiceImpl.java
index c96a7a19e..3c77c12d1 100644
--- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnServiceImpl.java
+++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnServiceImpl.java
@@ -4,7 +4,7 @@ import cn.iocoder.common.framework.constant.DeletedStatusEnum;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.DataDictService;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
import cn.iocoder.mall.order.api.OrderLogisticsService;
import cn.iocoder.mall.order.api.OrderReturnService;
import cn.iocoder.mall.order.api.bo.OrderLastLogisticsInfoBO;
diff --git a/pom.xml b/pom.xml
index d646411cf..45f2f5994 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,6 +38,7 @@
2.13.0
+ 1.5.21
2.9.2
1.9.3
2.0.0
@@ -88,6 +89,11 @@
${springboot.version}
+
+ io.swagger
+ swagger-annotations
+ ${swagger.version}
+
io.springfox
springfox-swagger2
@@ -144,6 +150,11 @@
mybatis-plus-annotation
${mybatis-plus.version}
+
+ com.baomidou
+ mybatis-plus-core
+ ${mybatis-plus.version}
+
com.baomidou
mybatis-plus-boot-starter
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/AdminController.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/AdminController.java
index b7bcb0b23..ff043b462 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/AdminController.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/AdminController.java
@@ -1,27 +1,25 @@
package cn.iocoder.mall.admin.application.controller.admins;
import cn.iocoder.common.framework.constant.MallConstants;
+import cn.iocoder.common.framework.util.CollectionUtil;
import cn.iocoder.common.framework.vo.CommonResult;
+import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.mall.admin.api.AdminService;
import cn.iocoder.mall.admin.api.ResourceService;
import cn.iocoder.mall.admin.api.RoleService;
-import cn.iocoder.mall.admin.api.bo.ResourceBO;
-import cn.iocoder.mall.admin.api.bo.RoleBO;
+import cn.iocoder.mall.admin.api.bo.resource.ResourceBO;
+import cn.iocoder.mall.admin.api.bo.role.RoleBO;
import cn.iocoder.mall.admin.api.bo.admin.AdminBO;
-import cn.iocoder.mall.admin.api.bo.admin.AdminPageBO;
import cn.iocoder.mall.admin.api.constant.ResourceConstants;
-import cn.iocoder.mall.admin.api.dto.admin.AdminAddDTO;
-import cn.iocoder.mall.admin.api.dto.admin.AdminPageDTO;
-import cn.iocoder.mall.admin.api.dto.admin.AdminUpdateDTO;
+import cn.iocoder.mall.admin.api.dto.admin.*;
import cn.iocoder.mall.admin.application.convert.AdminConvert;
import cn.iocoder.mall.admin.application.convert.ResourceConvert;
-import cn.iocoder.mall.admin.application.vo.AdminMenuTreeNodeVO;
-import cn.iocoder.mall.admin.application.vo.AdminPageVO;
-import cn.iocoder.mall.admin.application.vo.AdminRoleVO;
+import cn.iocoder.mall.admin.application.vo.admin.AdminMenuTreeNodeVO;
+import cn.iocoder.mall.admin.application.vo.admin.AdminRoleVO;
+import cn.iocoder.mall.admin.application.vo.admin.AdminVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.*;
@@ -38,8 +36,10 @@ public class AdminController {
@Reference(validation = "true", version = "${dubbo.provider.ResourceService.version}")
private ResourceService resourceService;
+
@Reference(validation = "true", version = "${dubbo.provider.AdminService.version}")
private AdminService adminService;
+
@Reference(validation = "true", version = "${dubbo.provider.RoleService.version}")
private RoleService roleService;
@@ -51,7 +51,8 @@ public class AdminController {
@GetMapping("/menu_resource_tree")
@ApiOperation(value = "获得当前登陆的管理员拥有的菜单权限", notes = "以树结构返回")
public CommonResult> menuResourceTree() {
- List resources = resourceService.getResourcesByTypeAndRoleIds(ResourceConstants.TYPE_MENU, AdminSecurityContextHolder.getContext().getRoleIds());
+ List resources = resourceService.getResourcesByTypeAndRoleIds(ResourceConstants.TYPE_MENU,
+ AdminSecurityContextHolder.getContext().getRoleIds());
// 创建 AdminMenuTreeNodeVO Map
Map treeNodeMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 的原因,是为了排序 。实际也可以用 Stream API ,就是太丑了。
resources.stream().sorted(Comparator.comparing(ResourceBO::getSort)).forEach(resourceBO -> treeNodeMap.put(resourceBO.getId(), ResourceConvert.INSTANCE.convert(resourceBO)));
@@ -77,9 +78,8 @@ public class AdminController {
@GetMapping("/url_resource_list")
@ApiOperation(value = "获得当前登陆的管理员拥有的 URL 权限列表")
-// @ApiModelProperty(value = "data", example = "['/admin/role/add', '/admin/role/update']") 没效果
public CommonResult> urlResourceList() {
- List resources = resourceService.getResourcesByTypeAndRoleIds(ResourceConstants.TYPE_URL, AdminSecurityContextHolder.getContext().getRoleIds());
+ List resources = resourceService.getResourcesByTypeAndRoleIds(ResourceConstants.TYPE_BUTTON, AdminSecurityContextHolder.getContext().getRoleIds());
return success(resources.stream().map(ResourceBO::getHandler).collect(Collectors.toSet()));
}
@@ -87,15 +87,16 @@ public class AdminController {
@GetMapping("/page")
@ApiOperation(value = "管理员分页")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "nickname", value = "昵称,模糊匹配", example = "小王"),
- @ApiImplicitParam(name = "pageNo", value = "页码,从 1 开始", example = "1"),
- @ApiImplicitParam(name = "pageSize", value = "每页条数", required = true, example = "10"),
- })
- public CommonResult page(AdminPageDTO adminPageDTO) {
-// CommonResult result = adminService.getAdminPage(new AdminPageDTO().setNickname(nickname).setPageNo(pageNo).setPageSize(pageSize));
- CommonResult result = adminService.getAdminPage(adminPageDTO);
- return AdminConvert.INSTANCE.convert(result);
+ public CommonResult> page(AdminPageDTO adminPageDTO) {
+ PageResult page = adminService.getAdminPage(adminPageDTO);
+ PageResult resultPage = AdminConvert.INSTANCE.convertAdminVOPage(page);
+ // 拼接结果
+ if (!resultPage.getList().isEmpty()) {
+ // 查询角色数组
+ Map> roleMap = adminService.getAdminRolesMap(CollectionUtil.convertList(resultPage.getList(), AdminBO::getId));
+ resultPage.getList().forEach(admin -> admin.setRoles(AdminConvert.INSTANCE.convertAdminVORoleList(roleMap.get(admin.getId()))));
+ }
+ return success(resultPage);
}
@PostMapping("/add")
@@ -106,46 +107,30 @@ public class AdminController {
@PostMapping("/update")
@ApiOperation(value = "更新管理员")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "id", value = "管理员编号", required = true, example = "1"),
- @ApiImplicitParam(name = "username", value = "账号", required = true, example = "15601691300"),
- @ApiImplicitParam(name = "nickname", value = "昵称", required = true, example = "小王"),
- @ApiImplicitParam(name = "password", value = "密码", example = "buzhidao"),
- })
- public CommonResult update(@RequestParam("id") Integer id,
- @RequestParam("username") String username,
- @RequestParam("nickname") String nickname,
- @RequestParam(value = "password", required = false) String password) {
- AdminUpdateDTO adminUpdateDTO = new AdminUpdateDTO().setId(id).setUsername(username).setNickname(nickname).setPassword(password);
- return adminService.updateAdmin(AdminSecurityContextHolder.getContext().getAdminId(), adminUpdateDTO);
+ public CommonResult update(AdminUpdateDTO adminUpdateDTO) {
+ return success(adminService.updateAdmin(AdminSecurityContextHolder.getContext().getAdminId(), adminUpdateDTO));
}
@PostMapping("/update_status")
@ApiOperation(value = "更新管理员状态")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "id", value = "管理员编号", required = true, example = "1"),
- @ApiImplicitParam(name = "status", value = "状态。1 - 开启;2 - 禁用", required = true, example = "1"),
- })
- public CommonResult updateStatus(@RequestParam("id") Integer id,
- @RequestParam("status") Integer status) {
- return adminService.updateAdminStatus(AdminSecurityContextHolder.getContext().getAdminId(), id, status);
+ public CommonResult updateStatus(AdminUpdateStatusDTO adminUpdateStatusDTO) {
+ return success(adminService.updateAdminStatus(AdminSecurityContextHolder.getContext().getAdminId(), adminUpdateStatusDTO));
}
@PostMapping("/delete")
@ApiOperation(value = "删除管理员")
@ApiImplicitParam(name = "id", value = "管理员编号", required = true, example = "1")
public CommonResult delete(@RequestParam("id") Integer id) {
- return adminService.deleteAdmin(AdminSecurityContextHolder.getContext().getAdminId(), id);
+ return success(adminService.deleteAdmin(AdminSecurityContextHolder.getContext().getAdminId(), id));
}
@GetMapping("/role_list")
@ApiOperation(value = "指定管理员拥有的角色列表")
@ApiImplicitParam(name = "id", value = "管理员编号", required = true, example = "1")
public CommonResult> roleList(@RequestParam("id") Integer id) {
- // 获得管理员拥有的角色集合
- Set adminRoleIdSet = roleService.getRoleList(id).getData();
// 获得所有角色数组
- List allRoleList = roleService.getRoleList().getData();
+ List allRoleList = adminService.getRoleList(id);
+ Set adminRoleIdSet = CollectionUtil.convertSet(allRoleList, RoleBO::getId);
// 转换出返回结果
List result = AdminConvert.INSTANCE.convert(allRoleList);
// 设置每个角色是否赋予给改管理员
@@ -155,13 +140,8 @@ public class AdminController {
@PostMapping("/assign_role")
@ApiOperation(value = "分配给管理员角色")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "id", value = "管理员编号", required = true, example = "1"),
- @ApiImplicitParam(name = "roleIds", value = "角色编号集合", required = true, example = "1,2,3"),
- })
- public CommonResult assignRole(@RequestParam("id") Integer id,
- @RequestParam("roleIds")Set roleIds) {
- return adminService.assignRole(AdminSecurityContextHolder.getContext().getAdminId(), id, roleIds);
+ public CommonResult assignRole(AdminAssignRoleDTO adminAssignRoleDTO) {
+ return success(adminService.assignAdminRole(AdminSecurityContextHolder.getContext().getAdminId(), adminAssignRoleDTO));
}
}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/DataDictController.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/DataDictController.java
index 5bf48c041..95103301f 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/DataDictController.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/DataDictController.java
@@ -2,12 +2,12 @@ package cn.iocoder.mall.admin.application.controller.admins;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.DataDictService;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
-import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
-import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
+import cn.iocoder.mall.admin.api.dto.datadict.DataDictAddDTO;
+import cn.iocoder.mall.admin.api.dto.datadict.DataDictUpdateDTO;
import cn.iocoder.mall.admin.application.convert.DataDictConvert;
-import cn.iocoder.mall.admin.application.vo.DataDictEnumVO;
-import cn.iocoder.mall.admin.application.vo.DataDictVO;
+import cn.iocoder.mall.admin.application.vo.datadict.DataDictEnumVO;
+import cn.iocoder.mall.admin.application.vo.datadict.DataDictVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Multimaps;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/PassportController.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/PassportController.java
index 5c20907fa..ed3b3ce33 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/PassportController.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/PassportController.java
@@ -2,7 +2,7 @@ package cn.iocoder.mall.admin.application.controller.admins;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.OAuth2Service;
-import cn.iocoder.mall.admin.api.bo.OAuth2AccessTokenBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AccessTokenBO;
import cn.iocoder.mall.admin.application.convert.PassportConvert;
import cn.iocoder.mall.admin.application.vo.PassportLoginVO;
import io.swagger.annotations.Api;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/ResourceController.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/ResourceController.java
index 5ccc3b010..71a31013a 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/ResourceController.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/ResourceController.java
@@ -2,17 +2,15 @@ package cn.iocoder.mall.admin.application.controller.admins;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.ResourceService;
-import cn.iocoder.mall.admin.api.bo.ResourceBO;
+import cn.iocoder.mall.admin.api.bo.resource.ResourceBO;
import cn.iocoder.mall.admin.api.constant.ResourceConstants;
-import cn.iocoder.mall.admin.api.dto.ResourceAddDTO;
-import cn.iocoder.mall.admin.api.dto.ResourceUpdateDTO;
+import cn.iocoder.mall.admin.api.dto.resource.ResourceAddDTO;
+import cn.iocoder.mall.admin.api.dto.resource.ResourceUpdateDTO;
import cn.iocoder.mall.admin.application.convert.ResourceConvert;
-import cn.iocoder.mall.admin.application.vo.ResourceTreeNodeVO;
-import cn.iocoder.mall.admin.application.vo.ResourceVO;
+import cn.iocoder.mall.admin.application.vo.resource.ResourceTreeNodeVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.*;
@@ -23,6 +21,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
+import static cn.iocoder.common.framework.vo.CommonResult.success;
+
@RestController
@RequestMapping("admins/resource")
@Api("资源模块")
@@ -55,55 +55,26 @@ public class ResourceController {
.filter(node -> node.getPid().equals(ResourceConstants.PID_ROOT))
.sorted(Comparator.comparing(ResourceTreeNodeVO::getSort))
.collect(Collectors.toList());
- return CommonResult.success(rootNodes);
+ return success(rootNodes);
}
@PostMapping("/add")
@ApiOperation(value = "创建资源", notes = "例如说,菜单资源,Url 资源")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "name", value = "资源名字(标识)", required = true, example = "admin/info"),
- @ApiImplicitParam(name = "type", value = "资源类型。1 代表【菜单】;2 代表【Url】", required = true, example = "1"),
- @ApiImplicitParam(name = "sort", value = "排序", required = true, example = "1"),
- @ApiImplicitParam(name = "displayName", value = "菜单展示名", required = true, example = "商品管理"),
- @ApiImplicitParam(name = "pid", value = "父级资源编号", required = true, example = "1"),
- @ApiImplicitParam(name = "handler", value = "操作", example = "/order/list"),
- })
- public CommonResult add(@RequestParam("name") String name,
- @RequestParam("type") Integer type,
- @RequestParam("sort") Integer sort,
- @RequestParam("displayName") String displayName,
- @RequestParam("pid") Integer pid,
- @RequestParam(value = "handler", required = false) String handler) {
- ResourceAddDTO resourceAddDTO = new ResourceAddDTO().setName(name).setType(type).setSort(sort)
- .setDisplayName(displayName).setPid(pid).setHandler(handler);
- return ResourceConvert.INSTANCE.convert3(resourceService.addResource(AdminSecurityContextHolder.getContext().getAdminId(), resourceAddDTO));
+ public CommonResult add(ResourceAddDTO resourceAddDTO) {
+ return success(resourceService.addResource(AdminSecurityContextHolder.getContext().getAdminId(), resourceAddDTO));
}
@PostMapping("/update")
@ApiOperation(value = "更新资源")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "id", value = "资源编号", required = true, example = "1"),
- @ApiImplicitParam(name = "name", value = "资源名字(标识)", required = true, example = "admin/info"),
- @ApiImplicitParam(name = "sort", value = "排序", required = true, example = "1"),
- @ApiImplicitParam(name = "displayName", value = "菜单展示名", required = true, example = "商品管理"),
- @ApiImplicitParam(name = "pid", value = "父级资源编号", required = true, example = "1"),
- @ApiImplicitParam(name = "handler", value = "操作", example = "/order/list"),
- })
- public CommonResult update(@RequestParam("id") Integer id,
- @RequestParam("name") String name,
- @RequestParam("sort") Integer sort,
- @RequestParam("displayName") String displayName,
- @RequestParam("pid") Integer pid,
- @RequestParam(value = "handler", required = false) String handler) {
- ResourceUpdateDTO resourceUpdateDTO = new ResourceUpdateDTO().setId(id).setName(name).setSort(sort).setDisplayName(displayName).setPid(pid).setHandler(handler);
- return resourceService.updateResource(AdminSecurityContextHolder.getContext().getAdminId(), resourceUpdateDTO);
+ public CommonResult update(ResourceUpdateDTO resourceUpdateDTO) {
+ return success(resourceService.updateResource(AdminSecurityContextHolder.getContext().getAdminId(), resourceUpdateDTO));
}
@PostMapping("/delete")
@ApiOperation(value = "删除资源")
@ApiImplicitParam(name = "id", value = "资源编号", required = true, example = "1")
public CommonResult delete(@RequestParam("id") Integer id) {
- return resourceService.deleteResource(AdminSecurityContextHolder.getContext().getAdminId(), id);
+ return success(resourceService.deleteResource(AdminSecurityContextHolder.getContext().getAdminId(), id));
}
}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/RoleController.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/RoleController.java
index 34e9e22b2..3846fe8d1 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/RoleController.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/RoleController.java
@@ -2,20 +2,20 @@ package cn.iocoder.mall.admin.application.controller.admins;
import cn.iocoder.common.framework.util.CollectionUtil;
import cn.iocoder.common.framework.vo.CommonResult;
+import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.mall.admin.api.ResourceService;
import cn.iocoder.mall.admin.api.RoleService;
-import cn.iocoder.mall.admin.api.bo.ResourceBO;
-import cn.iocoder.mall.admin.api.bo.RolePageBO;
+import cn.iocoder.mall.admin.api.bo.resource.ResourceBO;
+import cn.iocoder.mall.admin.api.bo.role.RoleBO;
import cn.iocoder.mall.admin.api.constant.ResourceConstants;
-import cn.iocoder.mall.admin.api.dto.RoleAddDTO;
-import cn.iocoder.mall.admin.api.dto.RolePageDTO;
-import cn.iocoder.mall.admin.api.dto.RoleUpdateDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleAddDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleAssignResourceDTO;
+import cn.iocoder.mall.admin.api.dto.role.RolePageDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleUpdateDTO;
import cn.iocoder.mall.admin.application.convert.ResourceConvert;
-import cn.iocoder.mall.admin.application.convert.RoleConvert;
-import cn.iocoder.mall.admin.application.vo.RolePageVO;
-import cn.iocoder.mall.admin.application.vo.RoleResourceTreeNodeVO;
-import cn.iocoder.mall.admin.application.vo.RoleVO;
+import cn.iocoder.mall.admin.application.vo.role.RoleResourceTreeNodeVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -25,56 +25,42 @@ import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.stream.Collectors;
+import static cn.iocoder.common.framework.vo.CommonResult.success;
+
@RestController
@RequestMapping("admins/role")
+@Api("角色模块")
public class RoleController {
@Reference(validation = "true", version = "${dubbo.provider.RoleService.version}")
private RoleService roleService;
+
@Reference(validation = "true", version = "${dubbo.provider.ResourceService.version}")
private ResourceService resourceService;
@GetMapping("/page")
@ApiOperation(value = "角色分页")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "name", value = "角色名,模糊匹配", required = true, example = "系统管理员"),
- @ApiImplicitParam(name = "pageNo", value = "页码,从 1 开始", example = "1"),
- @ApiImplicitParam(name = "pageSize", value = "每页条数", required = true, example = "10"),
- })
- public CommonResult page(@RequestParam(value = "name", required = false) String name,
- @RequestParam(value = "pageNo", defaultValue = "0") Integer pageNo,
- @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
- CommonResult result = roleService.getRolePage(new RolePageDTO().setName(name).setPageNo(pageNo).setPageSize(pageSize));
- return RoleConvert.INSTANCE.convert2(result);
+ public CommonResult> page(RolePageDTO rolePageDTO) {
+ return success(roleService.getRolePage(rolePageDTO));
}
@PostMapping("/add")
@ApiOperation(value = "创建角色")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "name", value = "角色", required = true, example = "系统管理员"),
- })
- public CommonResult add(@RequestParam("name") String name) {
- RoleAddDTO roleAddDTO = new RoleAddDTO().setName(name);
- return RoleConvert.INSTANCE.convert(roleService.addRole(AdminSecurityContextHolder.getContext().getAdminId(), roleAddDTO));
+ public CommonResult add(RoleAddDTO roleAddDTO) {
+ return success(roleService.addRole(AdminSecurityContextHolder.getContext().getAdminId(), roleAddDTO));
}
@PostMapping("/update")
@ApiOperation(value = "更新角色")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "id", value = "角色编号", required = true, example = "1"),
- @ApiImplicitParam(name = "name", value = "角色名", required = true, example = "系统管理员"),
- })
- public CommonResult update(@RequestParam("id") Integer id,
- @RequestParam("name") String name) {
- RoleUpdateDTO roleUpdateDTO = new RoleUpdateDTO().setId(id).setName(name);
- return roleService.updateRole(AdminSecurityContextHolder.getContext().getAdminId(), roleUpdateDTO);
+ public CommonResult update(RoleUpdateDTO roleUpdateDTO) {
+ return success(roleService.updateRole(AdminSecurityContextHolder.getContext().getAdminId(), roleUpdateDTO));
}
@PostMapping("/delete")
@ApiOperation(value = "删除角色")
@ApiImplicitParam(name = "id", value = "角色编号", required = true, example = "1")
public CommonResult delete(@RequestParam("id") Integer id) {
- return roleService.deleteRole(AdminSecurityContextHolder.getContext().getAdminId(), id);
+ return success(roleService.deleteRole(AdminSecurityContextHolder.getContext().getAdminId(), id));
}
@SuppressWarnings("Duplicates")
@@ -110,7 +96,7 @@ public class RoleController {
// 第三步,设置角色是否有该角色
treeNodeMap.values().forEach(nodeVO -> nodeVO.setAssigned(roleResources.contains(nodeVO.getId())));
// 返回结果
- return CommonResult.success(rootNodes);
+ return success(rootNodes);
}
@PostMapping("/assign_resource")
@@ -119,9 +105,8 @@ public class RoleController {
@ApiImplicitParam(name = "id", value = "角色编号", required = true, example = "1"),
@ApiImplicitParam(name = "resourceIds", value = "资源数组", required = true, example = "1,2,3"),
})
- public CommonResult assignResource(@RequestParam("id") Integer id,
- @RequestParam(value = "resourceIds", required = false) Set resourceIds) {
- return roleService.assignResource(AdminSecurityContextHolder.getContext().getAdminId(), id, resourceIds);
+ public CommonResult assignResource(RoleAssignResourceDTO roleAssignResourceDTO) {
+ return success(roleService.assignRoleResource(AdminSecurityContextHolder.getContext().getAdminId(), roleAssignResourceDTO));
}
}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/AdminConvert.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/AdminConvert.java
index 42b4e57a6..0c3a459fd 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/AdminConvert.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/AdminConvert.java
@@ -1,18 +1,18 @@
package cn.iocoder.mall.admin.application.convert;
import cn.iocoder.common.framework.vo.CommonResult;
+import cn.iocoder.common.framework.vo.PageResult;
+import cn.iocoder.mall.admin.api.bo.role.RoleBO;
import cn.iocoder.mall.admin.api.bo.admin.AdminBO;
-import cn.iocoder.mall.admin.api.bo.admin.AdminPageBO;
-import cn.iocoder.mall.admin.api.bo.RoleBO;
-import cn.iocoder.mall.admin.application.vo.AdminInfoVO;
-import cn.iocoder.mall.admin.application.vo.AdminPageVO;
-import cn.iocoder.mall.admin.application.vo.AdminRoleVO;
-import cn.iocoder.mall.admin.application.vo.AdminVO;
+import cn.iocoder.mall.admin.application.vo.admin.AdminInfoVO;
+import cn.iocoder.mall.admin.application.vo.admin.AdminRoleVO;
+import cn.iocoder.mall.admin.application.vo.admin.AdminVO;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContext;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
+import java.util.Collection;
import java.util.List;
@Mapper
@@ -29,10 +29,12 @@ public interface AdminConvert {
@Mappings({})
CommonResult convert2(CommonResult result);
- @Mappings({})
- CommonResult convert(CommonResult result);
-
@Mappings({})
List convert(List roleList);
+ @Mappings({})
+ PageResult convertAdminVOPage(PageResult page);
+
+ List convertAdminVORoleList(Collection list);
+
}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/DataDictConvert.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/DataDictConvert.java
index 1b18244e6..8d875c4d9 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/DataDictConvert.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/DataDictConvert.java
@@ -1,9 +1,9 @@
package cn.iocoder.mall.admin.application.convert;
import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
-import cn.iocoder.mall.admin.application.vo.DataDictVO;
-import cn.iocoder.mall.admin.application.vo.DataDictValueVO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
+import cn.iocoder.mall.admin.application.vo.datadict.DataDictVO;
+import cn.iocoder.mall.admin.application.vo.datadict.DataDictValueVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
@@ -30,4 +30,4 @@ public interface DataDictConvert {
@Mappings({})
List convert2(List dataDictBOs);
-}
\ No newline at end of file
+}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/PassportConvert.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/PassportConvert.java
index 35389ac90..ee82785d1 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/PassportConvert.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/PassportConvert.java
@@ -1,7 +1,7 @@
package cn.iocoder.mall.admin.application.convert;
import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.mall.admin.api.bo.OAuth2AccessTokenBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AccessTokenBO;
import cn.iocoder.mall.admin.application.vo.PassportLoginVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
@@ -18,4 +18,4 @@ public interface PassportConvert {
@Mappings({})
CommonResult convert(CommonResult oauth2AccessTokenBO);
-}
\ No newline at end of file
+}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/ResourceConvert.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/ResourceConvert.java
index a3fda7381..223ac6689 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/ResourceConvert.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/ResourceConvert.java
@@ -1,11 +1,11 @@
package cn.iocoder.mall.admin.application.convert;
import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.mall.admin.api.bo.ResourceBO;
-import cn.iocoder.mall.admin.application.vo.AdminMenuTreeNodeVO;
-import cn.iocoder.mall.admin.application.vo.ResourceTreeNodeVO;
-import cn.iocoder.mall.admin.application.vo.ResourceVO;
-import cn.iocoder.mall.admin.application.vo.RoleResourceTreeNodeVO;
+import cn.iocoder.mall.admin.api.bo.resource.ResourceBO;
+import cn.iocoder.mall.admin.application.vo.admin.AdminMenuTreeNodeVO;
+import cn.iocoder.mall.admin.application.vo.resource.ResourceTreeNodeVO;
+import cn.iocoder.mall.admin.application.vo.resource.ResourceVO;
+import cn.iocoder.mall.admin.application.vo.role.RoleResourceTreeNodeVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
@@ -30,4 +30,4 @@ public interface ResourceConvert {
@Mappings({})
CommonResult convert3(CommonResult resourceBO);
-}
\ No newline at end of file
+}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/RoleConvert.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/RoleConvert.java
index 1d8b47007..eb365885e 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/RoleConvert.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/RoleConvert.java
@@ -1,31 +1,11 @@
package cn.iocoder.mall.admin.application.convert;
-import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.mall.admin.api.bo.RoleBO;
-import cn.iocoder.mall.admin.api.bo.RolePageBO;
-import cn.iocoder.mall.admin.application.vo.RolePageVO;
-import cn.iocoder.mall.admin.application.vo.RoleVO;
import org.mapstruct.Mapper;
-import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
-import java.util.List;
-
@Mapper
public interface RoleConvert {
RoleConvert INSTANCE = Mappers.getMapper(RoleConvert.class);
- @Mappings({})
- RoleVO convert(RoleBO roleBO);
-
- @Mappings({})
- List convert(List roleBO);
-
- @Mappings({})
- CommonResult convert(CommonResult resourceBO);
-
- @Mappings({})
- CommonResult convert2(CommonResult resourceBO);
-
-}
\ No newline at end of file
+}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminPageVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminPageVO.java
deleted file mode 100644
index f446bc6fb..000000000
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminPageVO.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.iocoder.mall.admin.application.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.List;
-
-@ApiModel("管理员分页 VO")
-@Data
-@Accessors(chain = true)
-public class AdminPageVO {
-
- @ApiModelProperty(value = "管理员数组")
- private List list;
- @ApiModelProperty(value = "管理员总数")
- private Integer total;
-
-}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminVO.java
deleted file mode 100644
index 4090bbfe9..000000000
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminVO.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cn.iocoder.mall.admin.application.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.Date;
-
-@ApiModel("管理员 VO")
-@Data
-@Accessors(chain = true)
-public class AdminVO {
-
- @ApiModelProperty(value = "管理员编号", required = true, example = "1")
- private Integer id;
-
- @ApiModelProperty(value = "登陆账号", required = true, example = "15601691300")
- private String username;
-
- @ApiModelProperty(value = "昵称", required = true, example = "小王")
- private String nickname;
-
- @ApiModelProperty(value = "账号状态", required = true, example = "1")
- private Integer status;
-
- @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
-
-}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RolePageVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RolePageVO.java
deleted file mode 100644
index c1f574496..000000000
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RolePageVO.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cn.iocoder.mall.admin.application.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.List;
-
-@ApiModel("角色分页 VO")
-@Data
-@Accessors(chain = true)
-public class RolePageVO {
-
- @ApiModelProperty(value = "角色数组")
- private List roles;
- @ApiModelProperty(value = "角色总数")
- private Integer count;
-
-}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RoleVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RoleVO.java
deleted file mode 100644
index 517dd80d4..000000000
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RoleVO.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cn.iocoder.mall.admin.application.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.util.Date;
-
-@ApiModel("角色 VO")
-@Data
-@Accessors(chain = true)
-public class RoleVO {
-
- @ApiModelProperty(value = "角色编号", required = true, example = "1")
- private Integer id;
- @ApiModelProperty(value = "角色名字", required = true, example = "系统管理员")
- private String name;
- @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
-
-}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminInfoVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminInfoVO.java
similarity index 75%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminInfoVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminInfoVO.java
index 676ea0c55..931d34c68 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminInfoVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminInfoVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -12,7 +12,7 @@ import java.util.Set;
@Accessors(chain = true)
public class AdminInfoVO {
- @ApiModelProperty(value = "管理员比那好", required = true, example = "1")
+ @ApiModelProperty(value = "管理员编号", required = true, example = "1")
private Integer adminId;
@ApiModelProperty(value = "角色编号的数组", required = true, example = "[1, 2]")
private Set roleIds;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminMenuTreeNodeVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminMenuTreeNodeVO.java
similarity index 95%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminMenuTreeNodeVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminMenuTreeNodeVO.java
index 277777fa0..e88174be2 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminMenuTreeNodeVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminMenuTreeNodeVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminRoleVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminRoleVO.java
similarity index 91%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminRoleVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminRoleVO.java
index 4e4b1ae3a..417d86b91 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/AdminRoleVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminRoleVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminVO.java
new file mode 100644
index 000000000..086e4266e
--- /dev/null
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/admin/AdminVO.java
@@ -0,0 +1,31 @@
+package cn.iocoder.mall.admin.application.vo.admin;
+
+import cn.iocoder.mall.admin.api.bo.admin.AdminBO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@ApiModel("管理员 VO")
+@Data
+@Accessors(chain = true)
+public class AdminVO extends AdminBO {
+
+ private List roles;
+
+ @ApiModel("管理员 VO - 角色")
+ @Data
+ @Accessors(chain = true)
+ public static class Role {
+
+ @ApiModelProperty(value = "角色编号", required = true, example = "1")
+ private Integer id;
+
+ @ApiModelProperty(value = "角色名", required = true, example = "码神")
+ private String name;
+
+ }
+
+}
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictEnumVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictEnumVO.java
similarity index 90%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictEnumVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictEnumVO.java
index 1ac524c91..d9814747b 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictEnumVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictEnumVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.datadict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictVO.java
similarity index 93%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictVO.java
index 9ebdbb854..1524ce4c6 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.datadict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictValueVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictValueVO.java
similarity index 89%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictValueVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictValueVO.java
index 917ad493f..7ed6eeff4 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/DataDictValueVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictValueVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.datadict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/SystemApplication.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/oauth2/SystemApplication.java
similarity index 93%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/SystemApplication.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/oauth2/SystemApplication.java
index d4b1b995f..01adad7c4 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/SystemApplication.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/oauth2/SystemApplication.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application;
+package cn.iocoder.mall.admin.application.vo.oauth2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/ResourceTreeNodeVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/resource/ResourceTreeNodeVO.java
similarity index 96%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/ResourceTreeNodeVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/resource/ResourceTreeNodeVO.java
index bba3696ae..3feda78ed 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/ResourceTreeNodeVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/resource/ResourceTreeNodeVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.resource;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/ResourceVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/resource/ResourceVO.java
similarity index 95%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/ResourceVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/resource/ResourceVO.java
index e16cb4208..d7078d7e1 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/ResourceVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/resource/ResourceVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.resource;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RoleResourceTreeNodeVO.java b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/role/RoleResourceTreeNodeVO.java
similarity index 95%
rename from system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RoleResourceTreeNodeVO.java
rename to system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/role/RoleResourceTreeNodeVO.java
index fed45cac6..1994c7826 100644
--- a/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/RoleResourceTreeNodeVO.java
+++ b/system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/role/RoleResourceTreeNodeVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.application.vo;
+package cn.iocoder.mall.admin.application.vo.role;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/system/system-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java b/system/system-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
index 3578f878b..d04cd7419 100644
--- a/system/system-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
+++ b/system/system-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
@@ -6,7 +6,7 @@ import cn.iocoder.common.framework.util.HttpUtil;
import cn.iocoder.common.framework.util.MallUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.OAuth2Service;
-import cn.iocoder.mall.admin.api.bo.OAuth2AuthenticationBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AuthenticationBO;
import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContext;
import cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder;
diff --git a/system/system-service-api/pom.xml b/system/system-service-api/pom.xml
index 644cc079e..3b77e0d06 100644
--- a/system/system-service-api/pom.xml
+++ b/system/system-service-api/pom.xml
@@ -21,8 +21,8 @@
- io.springfox
- springfox-swagger2
+ io.swagger
+ swagger-annotations
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/AdminService.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/AdminService.java
index cce2eebc7..9337ecd11 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/AdminService.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/AdminService.java
@@ -1,32 +1,52 @@
package cn.iocoder.mall.admin.api;
-import cn.iocoder.common.framework.constant.CommonStatusEnum;
-import cn.iocoder.common.framework.validator.InEnum;
-import cn.iocoder.common.framework.vo.CommonResult;
+import cn.iocoder.common.framework.vo.PageResult;
+import cn.iocoder.mall.admin.api.bo.role.RoleBO;
import cn.iocoder.mall.admin.api.bo.admin.AdminBO;
-import cn.iocoder.mall.admin.api.bo.admin.AdminPageBO;
-import cn.iocoder.mall.admin.api.dto.admin.AdminAddDTO;
-import cn.iocoder.mall.admin.api.dto.admin.AdminPageDTO;
-import cn.iocoder.mall.admin.api.dto.admin.AdminUpdateDTO;
+import cn.iocoder.mall.admin.api.dto.admin.*;
-import java.util.Set;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
/**
* 管理员 Service 接口
*/
public interface AdminService {
- CommonResult getAdminPage(AdminPageDTO adminPageDTO);
+ PageResult getAdminPage(AdminPageDTO adminPageDTO);
AdminBO addAdmin(Integer adminId, AdminAddDTO adminAddDTO);
- CommonResult updateAdmin(Integer adminId, AdminUpdateDTO adminUpdateDTO);
+ Boolean updateAdmin(Integer adminId, AdminUpdateDTO adminUpdateDTO);
- CommonResult updateAdminStatus(Integer adminId, Integer updateAdminId,
- @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") Integer status);
+ Boolean updateAdminStatus(Integer adminId, AdminUpdateStatusDTO adminUpdateStatusDTO);
- CommonResult deleteAdmin(Integer adminId, Integer updateAdminId);
+ Boolean deleteAdmin(Integer adminId, Integer updateAdminId);
- CommonResult assignRole(Integer adminId, Integer updateAdminId, Set roleIds);
+ /**
+ * 批量查询每个管理员拥有的角色
+ *
+ * @param adminIds 管理员编号数组
+ * @return 每个管理员拥有的角色
+ */
+ Map> getAdminRolesMap(Collection adminIds);
+
+ /**
+ * 获得指定管理员拥有的角色数组
+ *
+ * @param adminId 指定管理员
+ * @return 角色编号数组
+ */
+ List getRoleList(Integer adminId);
+
+ /**
+ * 分配管理员角色
+ *
+ * @param adminId 操作管理员编号
+ * @param adminAssignRoleDTO 分配信息
+ * @return 是否成功。目前,默认返回 true
+ */
+ Boolean assignAdminRole(Integer adminId, AdminAssignRoleDTO adminAssignRoleDTO);
}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/DataDictService.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/DataDictService.java
index 601c3cb18..7d92b8bee 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/DataDictService.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/DataDictService.java
@@ -1,9 +1,9 @@
package cn.iocoder.mall.admin.api;
import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
-import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
-import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
+import cn.iocoder.mall.admin.api.dto.datadict.DataDictAddDTO;
+import cn.iocoder.mall.admin.api.dto.datadict.DataDictUpdateDTO;
import java.util.Collection;
import java.util.List;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/OAuth2Service.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/OAuth2Service.java
index cdf9a7531..1041a3ba9 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/OAuth2Service.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/OAuth2Service.java
@@ -1,8 +1,8 @@
package cn.iocoder.mall.admin.api;
import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.mall.admin.api.bo.OAuth2AccessTokenBO;
-import cn.iocoder.mall.admin.api.bo.OAuth2AuthenticationBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AccessTokenBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AuthenticationBO;
import java.util.Set;
@@ -30,4 +30,4 @@ public interface OAuth2Service {
// TODO @see 刷新 token
-}
\ No newline at end of file
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/ResourceService.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/ResourceService.java
index 7edacb804..0af97d266 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/ResourceService.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/ResourceService.java
@@ -1,9 +1,8 @@
package cn.iocoder.mall.admin.api;
-import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.mall.admin.api.bo.ResourceBO;
-import cn.iocoder.mall.admin.api.dto.ResourceAddDTO;
-import cn.iocoder.mall.admin.api.dto.ResourceUpdateDTO;
+import cn.iocoder.mall.admin.api.bo.resource.ResourceBO;
+import cn.iocoder.mall.admin.api.dto.resource.ResourceAddDTO;
+import cn.iocoder.mall.admin.api.dto.resource.ResourceUpdateDTO;
import org.springframework.lang.Nullable;
import java.util.List;
@@ -28,10 +27,10 @@ public interface ResourceService {
*/
List getResourcesByType(@Nullable Integer type);
- CommonResult addResource(Integer adminId, ResourceAddDTO resourceAddDTO);
+ ResourceBO addResource(Integer adminId, ResourceAddDTO resourceAddDTO);
- CommonResult updateResource(Integer adminId, ResourceUpdateDTO resourceUpdateDTO);
+ Boolean updateResource(Integer adminId, ResourceUpdateDTO resourceUpdateDTO);
- CommonResult deleteResource(Integer adminId, Integer resourceId);
+ Boolean deleteResource(Integer adminId, Integer resourceId);
-}
\ No newline at end of file
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/RoleService.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/RoleService.java
index bb8c92f06..22358ad53 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/RoleService.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/RoleService.java
@@ -1,38 +1,32 @@
package cn.iocoder.mall.admin.api;
-import cn.iocoder.common.framework.vo.CommonResult;
-import cn.iocoder.mall.admin.api.bo.RoleBO;
-import cn.iocoder.mall.admin.api.bo.RolePageBO;
-import cn.iocoder.mall.admin.api.dto.RoleAddDTO;
-import cn.iocoder.mall.admin.api.dto.RolePageDTO;
-import cn.iocoder.mall.admin.api.dto.RoleUpdateDTO;
+import cn.iocoder.common.framework.vo.PageResult;
+import cn.iocoder.mall.admin.api.bo.role.RoleBO;
+import cn.iocoder.mall.admin.api.dto.role.RoleAddDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleAssignResourceDTO;
+import cn.iocoder.mall.admin.api.dto.role.RolePageDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleUpdateDTO;
+import java.util.Collection;
import java.util.List;
-import java.util.Set;
public interface RoleService {
- CommonResult getRolePage(RolePageDTO rolePageDTO);
-
- /**
- * 获得指定管理员拥有的角色编号数组
- *
- * @param adminId 指定管理员
- * @return 角色编号数组
- */
- CommonResult> getRoleList(Integer adminId);
+ PageResult getRolePage(RolePageDTO rolePageDTO);
/**
* @return 返回角色列表
*/
- CommonResult> getRoleList();
+ List getRoleList();
- CommonResult addRole(Integer adminId, RoleAddDTO roleAddDTO);
+ List getRoleList(Collection ids);
- CommonResult updateRole(Integer adminId, RoleUpdateDTO roleUpdateDTO);
+ RoleBO addRole(Integer adminId, RoleAddDTO roleAddDTO);
- CommonResult deleteRole(Integer adminId, Integer roleId);
+ Boolean updateRole(Integer adminId, RoleUpdateDTO roleUpdateDTO);
- CommonResult assignResource(Integer adminId, Integer roleId, Set resourceIds);
+ Boolean deleteRole(Integer adminId, Integer roleId);
-}
\ No newline at end of file
+ Boolean assignRoleResource(Integer adminId, RoleAssignResourceDTO roleAssignResourceDTO);
+
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/SystemLogService.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/SystemLogService.java
index 044a5edcb..f39fbfc4f 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/SystemLogService.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/SystemLogService.java
@@ -1,7 +1,7 @@
package cn.iocoder.mall.admin.api;
-import cn.iocoder.mall.admin.api.dto.AccessLogAddDTO;
-import cn.iocoder.mall.admin.api.dto.ExceptionLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.AccessLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.ExceptionLogAddDTO;
/**
* 系统日志 Service 接口
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/ResourceBO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/ResourceBO.java
deleted file mode 100644
index 8cbebc291..000000000
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/ResourceBO.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package cn.iocoder.mall.admin.api.bo;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 资源 BO
- */
-@Data
-@Accessors(chain = true)
-public class ResourceBO implements Serializable {
-
- /**
- * 资源编号
- */
- private Integer id;
- /**
- * 资源名字(标识)
- */
- private String name;
- /**
- * 资源类型
- */
- private Integer type;
- /**
- * 排序
- */
- private Integer sort;
- /**
- * 展示名
- */
- private String displayName;
- /**
- * 添加时间
- */
- private Date createTime;
- /**
- * 父级资源编号
- */
- private Integer pid;
- /**
- * 操作
- */
- private String handler;
-
-}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/RolePageBO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/RolePageBO.java
deleted file mode 100644
index d6eecf4c4..000000000
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/RolePageBO.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package cn.iocoder.mall.admin.api.bo;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 角色分页 BO
- */
-@Data
-@Accessors(chain = true)
-public class RolePageBO implements Serializable {
-
- /**
- * 角色数组
- */
- private List roles;
- /**
- * 总量
- */
- private Integer count;
-
-}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/admin/AdminBO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/admin/AdminBO.java
index 65673e18f..88dbb3428 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/admin/AdminBO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/admin/AdminBO.java
@@ -22,7 +22,7 @@ public class AdminBO implements Serializable {
@ApiModelProperty(value = "昵称", required = true, example = "小王")
private String nickname;
- @ApiModelProperty(value = "账号状态", required = true, example = "1", dataType= "CommonStatusEnum")
+ @ApiModelProperty(value = "账号状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
private Integer status;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/DataDictBO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/datadict/DataDictBO.java
similarity index 93%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/DataDictBO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/datadict/DataDictBO.java
index 479388802..03eafa2c8 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/DataDictBO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/datadict/DataDictBO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.api.bo;
+package cn.iocoder.mall.admin.api.bo.datadict;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/OAuth2AccessTokenBO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/oauth2/OAuth2AccessTokenBO.java
similarity index 90%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/OAuth2AccessTokenBO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/oauth2/OAuth2AccessTokenBO.java
index 59c70e5f0..25a5f466b 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/OAuth2AccessTokenBO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/oauth2/OAuth2AccessTokenBO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.api.bo;
+package cn.iocoder.mall.admin.api.bo.oauth2;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/OAuth2AuthenticationBO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/oauth2/OAuth2AuthenticationBO.java
similarity index 89%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/OAuth2AuthenticationBO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/oauth2/OAuth2AuthenticationBO.java
index fc3769474..68e5ff9ea 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/OAuth2AuthenticationBO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/oauth2/OAuth2AuthenticationBO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.api.bo;
+package cn.iocoder.mall.admin.api.bo.oauth2;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/resource/ResourceBO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/resource/ResourceBO.java
new file mode 100644
index 000000000..d8be6097a
--- /dev/null
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/resource/ResourceBO.java
@@ -0,0 +1,40 @@
+package cn.iocoder.mall.admin.api.bo.resource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@ApiModel("资源 BO")
+@Data
+@Accessors(chain = true)
+public class ResourceBO implements Serializable {
+
+ @ApiModelProperty(value = "资源编号", required = true, example = "1")
+ private Integer id;
+
+ @ApiModelProperty(value = "资源类型", required = true, example = "1")
+ private Integer type;
+
+ @ApiModelProperty(value = "排序", required = true, example = "1")
+ private Integer sort;
+
+ @ApiModelProperty(value = "菜单展示名", required = true, example = "商品管理")
+ private String displayName;
+
+ @ApiModelProperty(value = "父级资源编号", required = true, example = "1", notes = "如果无父资源,则值为 0")
+ private Integer pid;
+
+ @ApiModelProperty(value = "操作", required = true, example = "/order/list")
+ private String handler;
+
+ @ApiModelProperty(value = "图标", example = "add")
+ private String icon;
+
+ @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
+ private Date createTime;
+
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/RoleBO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/role/RoleBO.java
similarity index 90%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/RoleBO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/role/RoleBO.java
index c80d62475..6ade9ca96 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/RoleBO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/bo/role/RoleBO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.api.bo;
+package cn.iocoder.mall.admin.api.bo.role;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/constant/AdminErrorCodeEnum.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/constant/AdminErrorCodeEnum.java
index eb1a05736..61f4dfd1d 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/constant/AdminErrorCodeEnum.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/constant/AdminErrorCodeEnum.java
@@ -28,6 +28,7 @@ public enum AdminErrorCodeEnum {
ADMIN_STATUS_EQUALS(1002002003, "账号已经是该状态"),
ADMIN_DELETE_ONLY_DISABLE(1002002004, "只有关闭的账号才可以删除"),
ADMIN_ADMIN_STATUS_CAN_NOT_UPDATE(1002002005, "管理员的账号状态不允许变更"),
+ ADMIN_ASSIGN_ROLE_NOT_EXISTS(1002002006, "分配员工角色时,有角色不存在"),
// ========== 资源模块 1002003000 ==========
RESOURCE_NAME_DUPLICATE(1002003000, "已经存在该名字的资源"),
@@ -35,6 +36,7 @@ public enum AdminErrorCodeEnum {
RESOURCE_PARENT_ERROR(1002003002, "不能设置自己为父资源"),
RESOURCE_NOT_EXISTS(1002003003, "资源不存在"),
RESOURCE_EXISTS_CHILDREN(1002003004, "存在子资源,无法删除"),
+ RESOURCE_PARENT_NOT_MENU(1002003005, "父资源的类型必须是菜单"),
// ========== 角色模块 1002004000 ==========
ROLE_NOT_EXISTS(1002004000, "角色不存在"),
@@ -62,4 +64,4 @@ public enum AdminErrorCodeEnum {
return message;
}
-}
\ No newline at end of file
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/constant/ResourceConstants.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/constant/ResourceConstants.java
index 863192b59..ee31f1898 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/constant/ResourceConstants.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/constant/ResourceConstants.java
@@ -10,13 +10,13 @@ public interface ResourceConstants {
*/
Integer TYPE_MENU = 1;
/**
- * 类型 - URL
+ * 类型 - 按钮
*/
- Integer TYPE_URL = 2;
+ Integer TYPE_BUTTON = 2;
/**
* 父资源编号 - 根节点
*/
Integer PID_ROOT = 0;
-}
\ No newline at end of file
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ResourceAddDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ResourceAddDTO.java
deleted file mode 100644
index 4892adad9..000000000
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ResourceAddDTO.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package cn.iocoder.mall.admin.api.dto;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-
-/**
- * 资源添加 DTO
- */
-@Data
-@Accessors(chain = true)
-public class ResourceAddDTO implements Serializable {
-
- /**
- * 资源名字(标识)
- */
- @NotEmpty(message = "资源名字不能为空")
- private String name;
- /**
- * 类型
- */
- @NotNull(message = "类型不能为空")
- private Integer type;
- /**
- * 排序值
- */
- @NotNull(message = "类型不能为空")
- private Integer sort;
- /**
- * 展示名
- */
- @NotEmpty(message = "资源名字不能为空")
- private String displayName;
- /**
- * 父资源编号
- */
- private Integer pid;
- /**
- * 操作
- */
- private String handler;
-
-}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ResourceUpdateDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ResourceUpdateDTO.java
deleted file mode 100644
index ee915e59f..000000000
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ResourceUpdateDTO.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package cn.iocoder.mall.admin.api.dto;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-
-/**
- * 资源更新 DTO
- */
-@Data
-@Accessors(chain = true)
-public class ResourceUpdateDTO implements Serializable {
-
- /**
- * 资源编号
- */
- @NotNull(message = "资源编号不能为空")
- private Integer id;
- /**
- * 资源名字(标识)
- */
- @NotEmpty(message = "资源名字不能为空")
- private String name;
- /**
- * 排序值
- */
- @NotNull(message = "类型不能为空")
- private Integer sort;
- /**
- * 展示名
- */
- @NotEmpty(message = "资源名字不能为空")
- private String displayName;
- /**
- * 父资源编号
- */
- private Integer pid;
- /**
- * 操作
- */
- private String handler;
-
-}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RolePageDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RolePageDTO.java
deleted file mode 100644
index 3f7ee4c80..000000000
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RolePageDTO.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package cn.iocoder.mall.admin.api.dto;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * 角色分页 DTO
- */
-@Data
-@Accessors(chain = true)
-public class RolePageDTO implements Serializable {
-
- private Integer pageNo;
- private Integer pageSize;
- private String name;
-
- public Integer getPageNo() {
- return pageNo;
- }
-
- public RolePageDTO setPageNo(Integer pageNo) {
- this.pageNo = pageNo;
- return this;
- }
-
- public Integer getPageSize() {
- return pageSize;
- }
-
- public RolePageDTO setPageSize(Integer pageSize) {
- this.pageSize = pageSize;
- return this;
- }
-
- public String getName() {
- return name;
- }
-
- public RolePageDTO setName(String name) {
- this.name = name;
- return this;
- }
-}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminAssignRoleDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminAssignRoleDTO.java
new file mode 100644
index 000000000..ad42d01b1
--- /dev/null
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminAssignRoleDTO.java
@@ -0,0 +1,23 @@
+package cn.iocoder.mall.admin.api.dto.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+import java.util.Set;
+
+@ApiModel("管理员分配角色 DTO")
+@Data
+@Accessors(chain = true)
+public class AdminAssignRoleDTO {
+
+ @ApiModelProperty(value = "管理员编号", required = true, example = "1")
+ @NotNull(message = "管理员编号不能为空")
+ private Integer id;
+
+ @ApiModelProperty(value = "角色编号数组", example = "1")
+ private Set roleIds;
+
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminPageDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminPageDTO.java
index 953ec6edb..923890f56 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminPageDTO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminPageDTO.java
@@ -1,26 +1,20 @@
package cn.iocoder.mall.admin.api.dto.admin;
+import cn.iocoder.common.framework.vo.PageParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-
-/**
- * 管理员分页 DTO
- */
+@ApiModel(value = "管理员分页 DTO")
@Data
@Accessors(chain = true)
-public class AdminPageDTO implements Serializable {
+public class AdminPageDTO extends PageParam {
/**
* 昵称,模糊匹配
*/
+ @ApiModelProperty(value = "昵称,模糊匹配", example = "小王")
private String nickname;
- @NotNull(message = "页码不能为空")
- private Integer pageNo;
- @NotNull(message = "每页条数不能为空")
- private Integer pageSize;
-
}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminUpdateDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminUpdateDTO.java
index 13c6ccecc..fd8d1f25d 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminUpdateDTO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminUpdateDTO.java
@@ -1,7 +1,7 @@
package cn.iocoder.mall.admin.api.dto.admin;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
@@ -11,40 +11,27 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
-/**
- * 管理员更新 DTO
- */
+@ApiModel("管理员更新 DTO")
@Data
@Accessors(chain = true)
-@ApiImplicitParams({
- @ApiImplicitParam(name = "id", value = "管理员编号", required = true, example = "1"),
- @ApiImplicitParam(name = "username", value = "账号", required = true, example = "15601691300"),
- @ApiImplicitParam(name = "nickname", value = "昵称", required = true, example = "小王"),
- @ApiImplicitParam(name = "password", value = "密码", example = "buzhidao"),
-})
public class AdminUpdateDTO implements Serializable {
- /**
- * 管理员编号
- */
+ @ApiModelProperty(value = "管理员编号", required = true, example = "1")
@NotNull(message = "管理员编号不能为空")
private Integer id;
- /**
- * 登陆账号
- */
+
+ @ApiModelProperty(value = "登陆账号", required = true, example = "15601691300")
@NotEmpty(message = "登陆账号不能为空")
@Length(min = 6, max = 16, message = "账号长度为 6-16 位")
@Pattern(regexp = "^[A-Za-z0-9]+$", message = "账号格式为数字以及字母")
private String username;
- /**
- * 昵称
- */
+
+ @ApiModelProperty(value = "昵称", required = true, example = "小王")
@NotEmpty(message = "昵称不能为空")
@Length(max = 10, message = "昵称长度最大为 10 位")
private String nickname;
- /**
- * 密码
- */
+
+ @ApiModelProperty(value = "密码", example = "buzhidao")
@Length(min = 6, max = 16, message = "密码长度为 6-16 位")
private String password;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminUpdateStatusDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminUpdateStatusDTO.java
new file mode 100644
index 000000000..4155ae8dd
--- /dev/null
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/admin/AdminUpdateStatusDTO.java
@@ -0,0 +1,26 @@
+package cn.iocoder.mall.admin.api.dto.admin;
+
+import cn.iocoder.common.framework.constant.CommonStatusEnum;
+import cn.iocoder.common.framework.validator.InEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+
+@ApiModel("管理员更新状态 DTO")
+@Data
+@Accessors(chain = true)
+public class AdminUpdateStatusDTO {
+
+ @ApiModelProperty(value = "管理员编号", required = true, example = "1")
+ @NotNull(message = "管理员编号不能为空")
+ private Integer id;
+
+ @ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举")
+ @NotNull(message = "状态不能为空")
+ @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
+ private Integer status;
+
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/DataDictAddDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/datadict/DataDictAddDTO.java
similarity index 94%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/DataDictAddDTO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/datadict/DataDictAddDTO.java
index ca451df94..574a66ae5 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/DataDictAddDTO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/datadict/DataDictAddDTO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.api.dto;
+package cn.iocoder.mall.admin.api.dto.datadict;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/DataDictUpdateDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/datadict/DataDictUpdateDTO.java
similarity index 94%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/DataDictUpdateDTO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/datadict/DataDictUpdateDTO.java
index 582f958ce..9653beb2b 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/DataDictUpdateDTO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/datadict/DataDictUpdateDTO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.api.dto;
+package cn.iocoder.mall.admin.api.dto.datadict;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/resource/ResourceAddDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/resource/ResourceAddDTO.java
new file mode 100644
index 000000000..f52b08514
--- /dev/null
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/resource/ResourceAddDTO.java
@@ -0,0 +1,43 @@
+package cn.iocoder.mall.admin.api.dto.resource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+@ApiModel("资源添加 DTO")
+@Data
+@Accessors(chain = true)
+public class ResourceAddDTO implements Serializable {
+
+ @ApiModelProperty(value = "资源类型。1 代表【菜单】;2 代表【按钮】", required = true, example = "1")
+ @NotNull(message = "类型不能为空")
+ private Integer type;
+
+ @ApiModelProperty(value = "排序", required = true, example = "1")
+ @NotNull(message = "类型不能为空")
+ private Integer sort;
+
+ @ApiModelProperty(value = "菜单展示名", required = true, example = "商品管理")
+ @NotEmpty(message = "资源名字不能为空")
+ private String displayName;
+
+ @ApiModelProperty(value = "父级资源编号", required = true, example = "1")
+ @NotNull(message = "父级资源编号不能为空")
+ private Integer pid;
+
+ @ApiModelProperty(value = "操作", example = "/order/list")
+ private String handler;
+
+ @ApiModelProperty(value = "图标", example = "add")
+ private String icon;
+
+ @ApiModelProperty(value = "权限标识数组", example = "system.order.add,system.order.update")
+ private List permissions;
+
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/resource/ResourceUpdateDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/resource/ResourceUpdateDTO.java
new file mode 100644
index 000000000..2b72f3020
--- /dev/null
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/resource/ResourceUpdateDTO.java
@@ -0,0 +1,47 @@
+package cn.iocoder.mall.admin.api.dto.resource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+@ApiModel("资源更新 DTO")
+@Data
+@Accessors(chain = true)
+public class ResourceUpdateDTO implements Serializable {
+
+ @ApiModelProperty(value = "资源编号", required = true, example = "1")
+ @NotNull(message = "资源编号不能为空")
+ private Integer id;
+
+ @ApiModelProperty(value = "资源类型。1 代表【菜单】;2 代表【按钮】", required = true, example = "1")
+ @NotNull(message = "类型不能为空")
+ private Integer type;
+
+ @ApiModelProperty(value = "排序", required = true, example = "1")
+ @NotNull(message = "类型不能为空")
+ private Integer sort;
+
+ @ApiModelProperty(value = "菜单展示名", required = true, example = "商品管理")
+ @NotEmpty(message = "资源名字不能为空")
+ private String displayName;
+
+ @ApiModelProperty(value = "父级资源编号", required = true, example = "1")
+ @NotNull(message = "父级资源编号不能为空")
+ private Integer pid;
+
+ @ApiModelProperty(value = "操作", example = "/order/list")
+ private String handler;
+
+ @ApiModelProperty(value = "图标", example = "add")
+ private String icon;
+
+ @ApiModelProperty(value = "权限标识数组", example = "system.order.add,system.order.update")
+ private List permissions;
+
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RoleAddDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleAddDTO.java
similarity index 51%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RoleAddDTO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleAddDTO.java
index 02268f4a2..53591c497 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RoleAddDTO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleAddDTO.java
@@ -1,21 +1,19 @@
-package cn.iocoder.mall.admin.api.dto;
+package cn.iocoder.mall.admin.api.dto.role;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
-/**
- * 角色添加 DTO
- */
+@ApiModel("角色添加 DTO")
@Data
@Accessors(chain = true)
public class RoleAddDTO implements Serializable {
- /**
- * 角色名字(标识)
- */
+ @ApiModelProperty(name = "name", value = "角色名字(标识)", required = true, example = "系统管理员")
@NotEmpty(message = "角色名字不能为空")
private String name;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleAssignResourceDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleAssignResourceDTO.java
new file mode 100644
index 000000000..64b1027fb
--- /dev/null
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleAssignResourceDTO.java
@@ -0,0 +1,23 @@
+package cn.iocoder.mall.admin.api.dto.role;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+import java.util.Set;
+
+@ApiModel("角色分配资源 DTO")
+@Data
+@Accessors(chain = true)
+public class RoleAssignResourceDTO {
+
+ @ApiModelProperty(value = "角色编号", required = true, example = "1")
+ @NotNull(message = "角色编号不能为空")
+ private Integer id;
+
+ @ApiModelProperty(value = "资源编号数组", example = "1,2")
+ private Set resourceIds;
+
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RolePageDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RolePageDTO.java
new file mode 100644
index 000000000..7fe363d70
--- /dev/null
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RolePageDTO.java
@@ -0,0 +1,17 @@
+package cn.iocoder.mall.admin.api.dto.role;
+
+import cn.iocoder.common.framework.vo.PageParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@ApiModel("角色分页 DTO")
+@Data
+@Accessors(chain = true)
+public class RolePageDTO extends PageParam {
+
+ @ApiModelProperty( value = "角色名,模糊匹配", example = "系统管理员")
+ private String name;
+
+}
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RoleUpdateDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleUpdateDTO.java
similarity index 56%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RoleUpdateDTO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleUpdateDTO.java
index 66e2d7bb4..fc50fe3e3 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/RoleUpdateDTO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/role/RoleUpdateDTO.java
@@ -1,5 +1,7 @@
-package cn.iocoder.mall.admin.api.dto;
+package cn.iocoder.mall.admin.api.dto.role;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -7,21 +9,16 @@ import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
-/**
- * 角色添加 DTO
- */
+@ApiModel("角色添加 DTO")
@Data
@Accessors(chain = true)
public class RoleUpdateDTO implements Serializable {
- /**
- * 角色编号
- */
+ @ApiModelProperty(value = "角色编号", required = true, example = "1")
@NotNull(message = "角色编号不能为空")
private Integer id;
- /**
- * 角色名字(标识)
- */
+
+ @ApiModelProperty(value = "角色名", required = true, example = "系统管理员")
@NotEmpty(message = "角色名字不能为空")
private String name;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/AccessLogAddDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/systemlog/AccessLogAddDTO.java
similarity index 96%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/AccessLogAddDTO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/systemlog/AccessLogAddDTO.java
index 04c29a80b..289f2056c 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/AccessLogAddDTO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/systemlog/AccessLogAddDTO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.api.dto;
+package cn.iocoder.mall.admin.api.dto.systemlog;
import lombok.Data;
diff --git a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ExceptionLogAddDTO.java b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/systemlog/ExceptionLogAddDTO.java
similarity index 97%
rename from system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ExceptionLogAddDTO.java
rename to system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/systemlog/ExceptionLogAddDTO.java
index 5767238f9..7cdc61b0e 100644
--- a/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/ExceptionLogAddDTO.java
+++ b/system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/systemlog/ExceptionLogAddDTO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.mall.admin.api.dto;
+package cn.iocoder.mall.admin.api.dto.systemlog;
import lombok.Data;
import lombok.experimental.Accessors;
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/config/DatabaseConfiguration.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/config/DatabaseConfiguration.java
index fef005762..6a944d0ec 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/config/DatabaseConfiguration.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/config/DatabaseConfiguration.java
@@ -2,6 +2,7 @@ package cn.iocoder.mall.admin.config;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -19,4 +20,9 @@ public class DatabaseConfiguration {
return new DefaultSqlInjector(); // MyBatis Plus 逻辑删除
}
+ @Bean
+ public PaginationInterceptor paginationInterceptor() {
+ return new PaginationInterceptor(); // MyBatis Plus 分页插件
+ }
+
}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/AccessLogConvert.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/AccessLogConvert.java
index 1ba100c0a..7dcdd4c90 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/AccessLogConvert.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/AccessLogConvert.java
@@ -1,7 +1,7 @@
package cn.iocoder.mall.admin.convert;
-import cn.iocoder.mall.admin.api.dto.AccessLogAddDTO;
-import cn.iocoder.mall.admin.api.dto.ExceptionLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.AccessLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.ExceptionLogAddDTO;
import cn.iocoder.mall.admin.dataobject.AccessLogDO;
import cn.iocoder.mall.admin.dataobject.ExceptionLogDO;
import org.mapstruct.Mapper;
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/AdminConvert.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/AdminConvert.java
index ce27ed781..4a02b8caa 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/AdminConvert.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/AdminConvert.java
@@ -1,10 +1,13 @@
package cn.iocoder.mall.admin.convert;
+import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.mall.admin.api.bo.admin.AdminBO;
import cn.iocoder.mall.admin.api.dto.admin.AdminAddDTO;
import cn.iocoder.mall.admin.api.dto.admin.AdminUpdateDTO;
import cn.iocoder.mall.admin.dataobject.AdminDO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
@@ -27,4 +30,9 @@ public interface AdminConvert {
@Mappings({})
List convert(List adminBOs);
+ @Mappings({
+ @Mapping(source = "records", target = "list"),
+ })
+ PageResult convert(IPage page);
+
}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/DataDictConvert.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/DataDictConvert.java
index 2ccde04d7..d5dcb15ce 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/DataDictConvert.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/DataDictConvert.java
@@ -1,8 +1,8 @@
package cn.iocoder.mall.admin.convert;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
-import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
-import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
+import cn.iocoder.mall.admin.api.dto.datadict.DataDictAddDTO;
+import cn.iocoder.mall.admin.api.dto.datadict.DataDictUpdateDTO;
import cn.iocoder.mall.admin.dataobject.DataDictDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@@ -22,4 +22,4 @@ public interface DataDictConvert {
List convert(List dataDictDOs);
-}
\ No newline at end of file
+}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/OAuth2Convert.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/OAuth2Convert.java
index a58c8d271..4629e552f 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/OAuth2Convert.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/OAuth2Convert.java
@@ -1,7 +1,7 @@
package cn.iocoder.mall.admin.convert;
-import cn.iocoder.mall.admin.api.bo.OAuth2AccessTokenBO;
-import cn.iocoder.mall.admin.api.bo.OAuth2AuthenticationBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AccessTokenBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AuthenticationBO;
import cn.iocoder.mall.admin.dataobject.AdminRoleDO;
import cn.iocoder.mall.admin.dataobject.OAuth2AccessTokenDO;
import org.mapstruct.Mapper;
@@ -35,4 +35,4 @@ public interface OAuth2Convert {
.setRoleIds(adminRoleDOs.stream().map(AdminRoleDO::getRoleId).collect(Collectors.toSet()));
}
-}
\ No newline at end of file
+}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/ResourceConvert.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/ResourceConvert.java
index 49b168941..844d35ea1 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/ResourceConvert.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/ResourceConvert.java
@@ -1,11 +1,14 @@
package cn.iocoder.mall.admin.convert;
-import cn.iocoder.mall.admin.api.bo.ResourceBO;
-import cn.iocoder.mall.admin.api.dto.ResourceAddDTO;
-import cn.iocoder.mall.admin.api.dto.ResourceUpdateDTO;
+import cn.iocoder.common.framework.util.StringUtil;
+import cn.iocoder.mall.admin.api.bo.resource.ResourceBO;
+import cn.iocoder.mall.admin.api.dto.resource.ResourceAddDTO;
+import cn.iocoder.mall.admin.api.dto.resource.ResourceUpdateDTO;
import cn.iocoder.mall.admin.dataobject.ResourceDO;
import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
+import org.mapstruct.Named;
import org.mapstruct.factory.Mappers;
import java.util.List;
@@ -15,7 +18,9 @@ public interface ResourceConvert {
ResourceConvert INSTANCE = Mappers.getMapper(ResourceConvert.class);
- @Mappings({})
+ @Mappings({
+ @Mapping(source = "permissions", target = "permissions", qualifiedByName = "translateListFromString")
+ })
ResourceBO convert(ResourceDO resourceDO);
@Mappings({})
@@ -27,4 +32,9 @@ public interface ResourceConvert {
@Mappings({})
ResourceDO convert(ResourceUpdateDTO resourceUpdateDTO);
-}
\ No newline at end of file
+ @Named("translateListFromString")
+ default List translateListFromString(String picUrls) {
+ return StringUtil.split(picUrls, ",");
+ }
+
+}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/RoleConvert.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/RoleConvert.java
index 73ad2c417..e1657fc4b 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/RoleConvert.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/convert/RoleConvert.java
@@ -1,10 +1,13 @@
package cn.iocoder.mall.admin.convert;
-import cn.iocoder.mall.admin.api.bo.RoleBO;
-import cn.iocoder.mall.admin.api.dto.RoleAddDTO;
-import cn.iocoder.mall.admin.api.dto.RoleUpdateDTO;
+import cn.iocoder.common.framework.vo.PageResult;
+import cn.iocoder.mall.admin.api.bo.role.RoleBO;
+import cn.iocoder.mall.admin.api.dto.role.RoleAddDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleUpdateDTO;
import cn.iocoder.mall.admin.dataobject.RoleDO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
@@ -27,4 +30,9 @@ public interface RoleConvert {
@Mappings({})
List convert(List roleDOs);
-}
\ No newline at end of file
+ @Mappings({
+ @Mapping(source = "records", target = "list"),
+ })
+ PageResult convert(IPage page);
+
+}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/AdminMapper.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/AdminMapper.java
index b8d04138c..49e049537 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/AdminMapper.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/AdminMapper.java
@@ -1,13 +1,15 @@
package cn.iocoder.mall.admin.dao;
+import cn.iocoder.common.framework.mybatis.QueryWrapperX;
+import cn.iocoder.mall.admin.api.dto.admin.AdminPageDTO;
import cn.iocoder.mall.admin.dataobject.AdminDO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
-import java.util.List;
-
@Repository
public interface AdminMapper extends BaseMapper {
@@ -15,12 +17,9 @@ public interface AdminMapper extends BaseMapper {
return selectOne(new QueryWrapper().eq("username", username));
}
- List selectListByNicknameLike(@Param("nickname") String nickname,
- @Param("offset") Integer offset,
- @Param("limit") Integer limit);
-
- Integer selectCountByNicknameLike(@Param("nickname") String nickname);
-
- int update(AdminDO admin);
+ default IPage selectPage(AdminPageDTO adminPageDTO) {
+ return selectPage(new Page<>(adminPageDTO.getPageNo(), adminPageDTO.getPageSize()),
+ new QueryWrapperX().likeIfPresent("nickname", adminPageDTO.getNickname()));
+ }
}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/AdminRoleMapper.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/AdminRoleMapper.java
index 3c69199c2..9112a484e 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/AdminRoleMapper.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/AdminRoleMapper.java
@@ -1,20 +1,27 @@
package cn.iocoder.mall.admin.dao;
import cn.iocoder.mall.admin.dataobject.AdminRoleDO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
+import java.util.Collection;
import java.util.List;
@Repository
-public interface AdminRoleMapper {
+public interface AdminRoleMapper extends BaseMapper {
List selectByAdminId(@Param("adminId") Integer adminId);
+ default List selectListByAdminIds(Collection adminIds) {
+ return selectList(new QueryWrapper().in("admin_id", adminIds));
+ }
+
int updateToDeletedByAdminId(@Param("adminId") Integer adminId);
int updateToDeletedByRoleId(@Param("roleId") Integer roleId);
void insertList(@Param("adminRoleDOs") List adminRoleDOs);
-}
\ No newline at end of file
+}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/RoleMapper.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/RoleMapper.java
index fce5428d8..3a4ed4a05 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/RoleMapper.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/RoleMapper.java
@@ -1,29 +1,31 @@
package cn.iocoder.mall.admin.dao;
+import cn.iocoder.common.framework.mybatis.QueryWrapperX;
+import cn.iocoder.mall.admin.api.dto.role.RolePageDTO;
import cn.iocoder.mall.admin.dataobject.RoleDO;
-import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Repository;
+import java.util.Collection;
import java.util.List;
-import java.util.Set;
@Repository
-public interface RoleMapper {
+public interface RoleMapper extends BaseMapper {
- void insert(RoleDO roleDO);
+ default List selectListByIds(Collection ids) {
+ return selectList(new QueryWrapper().in("id", ids));
+ }
- int update(RoleDO roleDO);
+ default List selectList() {
+ return selectList(new QueryWrapper<>());
+ }
- RoleDO selectById(@Param("id") Integer id);
+ default IPage selectPage(RolePageDTO rolePageDTO) {
+ return selectPage(new Page<>(rolePageDTO.getPageNo(), rolePageDTO.getPageSize()),
+ new QueryWrapperX().likeIfPresent("name", rolePageDTO.getName()));
+ }
- List selectListByNameLike(@Param("name") String name,
- @Param("offset") Integer offset,
- @Param("limit") Integer limit);
-
- Integer selectCountByNameLike(@Param("name") String name);
-
- List selectListByIds(@Param("ids") Set ids);
-
- List selectList();
-
-}
\ No newline at end of file
+}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/AccessLogDO.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/AccessLogDO.java
index 5ed0edd40..34ce8a1e2 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/AccessLogDO.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/AccessLogDO.java
@@ -2,6 +2,7 @@ package cn.iocoder.mall.admin.dataobject;
import cn.iocoder.common.framework.dataobject.BaseDO;
import cn.iocoder.common.framework.vo.CommonResult;
+import cn.iocoder.mall.admin.api.dto.systemlog.AccessLogAddDTO;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -29,7 +30,7 @@ public class AccessLogDO extends BaseDO {
/**
* 用户编号.
*
- * 当管理员为空时,该值为 {@link cn.iocoder.mall.admin.api.dto.AccessLogAddDTO#USER_ID_NULL}
+ * 当管理员为空时,该值为 {@link AccessLogAddDTO#USER_ID_NULL}
*/
private Integer userId;
/**
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/AdminRoleDO.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/AdminRoleDO.java
index 5b0a32e8f..b3e365b72 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/AdminRoleDO.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/AdminRoleDO.java
@@ -1,12 +1,14 @@
package cn.iocoder.mall.admin.dataobject;
import cn.iocoder.common.framework.dataobject.DeletableDO;
+import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* {@link AdminDO} 和 {@link RoleDO} 的关联表
*/
+@TableName("admin_role")
@Data
@Accessors(chain = true)
public class AdminRoleDO extends DeletableDO {
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/ExceptionLogDO.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/ExceptionLogDO.java
index 48af626e0..236ad95a3 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/ExceptionLogDO.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/ExceptionLogDO.java
@@ -1,6 +1,7 @@
package cn.iocoder.mall.admin.dataobject;
import cn.iocoder.common.framework.dataobject.BaseDO;
+import cn.iocoder.mall.admin.api.dto.systemlog.AccessLogAddDTO;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -28,7 +29,7 @@ public class ExceptionLogDO extends BaseDO {
/**
* 用户编号.
*
- * 当管理员为空时,该值为 {@link cn.iocoder.mall.admin.api.dto.AccessLogAddDTO#USER_ID_NULL}
+ * 当管理员为空时,该值为 {@link AccessLogAddDTO#USER_ID_NULL}
*/
private Integer userId;
/**
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/ResourceDO.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/ResourceDO.java
index 795338ccb..e2b8ad26c 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/ResourceDO.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/ResourceDO.java
@@ -4,8 +4,6 @@ import cn.iocoder.common.framework.dataobject.DeletableDO;
import lombok.Data;
import lombok.experimental.Accessors;
-import java.util.Date;
-
/**
* 资源实体
*/
@@ -13,27 +11,10 @@ import java.util.Date;
@Accessors(chain = true)
public class ResourceDO extends DeletableDO {
- /**
- * 资源类型 - 菜单
- */
- @Deprecated
- public static final Integer TYPE_MENU = 1;
- /**
- * 资源类型 - 操作
- *
- * 例如,按钮。
- */
- @Deprecated
- public static final Integer TYPE_OPERATION = 2;
-
/**
* 资源编号
*/
private Integer id;
- /**
- * 资源名字(标识)
- */
- private String name;
/**
* 资源类型
*/
@@ -46,10 +27,6 @@ public class ResourceDO extends DeletableDO {
* 展示名
*/
private String displayName;
- /**
- * 添加时间
- */
- private Date createTime;
/**
* 父级资源编号(外键:{@link ResourceDO#id})
*/
@@ -57,9 +34,21 @@ public class ResourceDO extends DeletableDO {
/**
* 操作
*
- * 当资源类型为【菜单】时,handler 配置为界面 URL ,或者前端组件名
- * 当资源类型为【URL】时,handler 配置为后端 URL 。举个例子,如果有一个「创建管理员」的表单,那么前端界面上的按钮可以根据这个 url 判断是否展示,后端接收到该 url 的请求时会判断是否有权限。
+ * 目前当且仅当资源类型为【菜单】时,才会生效,即 handler 配置为界面 URL ,或者前端组件名,或者前端的路由。
*/
private String handler;
+ /**
+ * 图表
+ *
+ * 目前当且仅当资源类型为【菜单】时,才会生效
+ */
+ private String icon;
+ /**
+ * 权限标识数组,使用逗号分隔。
+ *
+ * 例如:system.admin.add 。
+ * 推荐格式为 ${系统}.${模块}.${操作} 。
+ */
+ private String permissions;
}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/RoleDO.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/RoleDO.java
index d84fdf303..9fc58be16 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/RoleDO.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/RoleDO.java
@@ -1,12 +1,14 @@
package cn.iocoder.mall.admin.dataobject;
import cn.iocoder.common.framework.dataobject.DeletableDO;
+import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 角色实体
*/
+@TableName("role")
@Data
@Accessors(chain = true)
public class RoleDO extends DeletableDO {
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java
index 5ba6c61f7..5b926d3ad 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/AdminServiceImpl.java
@@ -2,30 +2,31 @@ package cn.iocoder.mall.admin.service;
import cn.iocoder.common.framework.constant.CommonStatusEnum;
import cn.iocoder.common.framework.constant.DeletedStatusEnum;
+import cn.iocoder.common.framework.util.CollectionUtil;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
import cn.iocoder.common.framework.vo.CommonResult;
+import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.mall.admin.api.AdminService;
+import cn.iocoder.mall.admin.api.bo.role.RoleBO;
import cn.iocoder.mall.admin.api.bo.admin.AdminBO;
-import cn.iocoder.mall.admin.api.bo.admin.AdminPageBO;
import cn.iocoder.mall.admin.api.constant.AdminConstants;
import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
-import cn.iocoder.mall.admin.api.dto.admin.AdminAddDTO;
-import cn.iocoder.mall.admin.api.dto.admin.AdminPageDTO;
-import cn.iocoder.mall.admin.api.dto.admin.AdminUpdateDTO;
+import cn.iocoder.mall.admin.api.dto.admin.*;
import cn.iocoder.mall.admin.convert.AdminConvert;
import cn.iocoder.mall.admin.dao.AdminMapper;
import cn.iocoder.mall.admin.dao.AdminRoleMapper;
import cn.iocoder.mall.admin.dataobject.AdminDO;
import cn.iocoder.mall.admin.dataobject.AdminRoleDO;
import cn.iocoder.mall.admin.dataobject.RoleDO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.Multimap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -67,15 +68,9 @@ public class AdminServiceImpl implements AdminService {
}
@Override
- public CommonResult getAdminPage(AdminPageDTO adminPageDTO) {
- AdminPageBO adminPage = new AdminPageBO();
- // 查询分页数据
- int offset = (adminPageDTO.getPageNo() - 1) * adminPageDTO.getPageSize();
- adminPage.setList(AdminConvert.INSTANCE.convert(adminMapper.selectListByNicknameLike(adminPageDTO.getNickname(),
- offset, adminPageDTO.getPageSize())));
- // 查询分页总数
- adminPage.setTotal(adminMapper.selectCountByNicknameLike(adminPageDTO.getNickname()));
- return CommonResult.success(adminPage);
+ public PageResult getAdminPage(AdminPageDTO adminPageDTO) {
+ IPage page = adminMapper.selectPage(adminPageDTO);
+ return AdminConvert.INSTANCE.convert(page);
}
@Override
@@ -97,94 +92,121 @@ public class AdminServiceImpl implements AdminService {
}
@Override
- public CommonResult updateAdmin(Integer adminId, AdminUpdateDTO adminUpdateDTO) {
+ public Boolean updateAdmin(Integer adminId, AdminUpdateDTO adminUpdateDTO) {
// 校验账号存在
if (adminMapper.selectById(adminUpdateDTO.getId()) == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ADMIN_USERNAME_NOT_REGISTERED.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_USERNAME_NOT_REGISTERED.getCode());
}
// 校验账号唯一
AdminDO usernameAdmin = adminMapper.selectByUsername(adminUpdateDTO.getUsername());
if (usernameAdmin != null && !usernameAdmin.getId().equals(adminUpdateDTO.getId())) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ADMIN_USERNAME_EXISTS.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_USERNAME_EXISTS.getCode());
}
// 更新到数据库
AdminDO updateAdmin = AdminConvert.INSTANCE.convert(adminUpdateDTO);
- adminMapper.update(updateAdmin);
+ adminMapper.updateById(updateAdmin);
// TODO 插入操作日志
// 返回成功
- return CommonResult.success(true);
+ return true;
}
@Override
@Transactional
- public CommonResult updateAdminStatus(Integer adminId, Integer updateAdminId, Integer status) {
+ public Boolean updateAdminStatus(Integer adminId, AdminUpdateStatusDTO adminUpdateStatusDTO) {
// 校验账号存在
- AdminDO admin = adminMapper.selectById(updateAdminId);
+ AdminDO admin = adminMapper.selectById(adminUpdateStatusDTO.getId());
if (admin == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ADMIN_USERNAME_NOT_REGISTERED.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_USERNAME_NOT_REGISTERED.getCode());
}
if (AdminConstants.USERNAME_ADMIN.equals(admin.getUsername())) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ADMIN_ADMIN_STATUS_CAN_NOT_UPDATE.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_ADMIN_STATUS_CAN_NOT_UPDATE.getCode());
}
// 如果状态相同,则返回错误
- if (status.equals(admin.getStatus())) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ADMIN_STATUS_EQUALS.getCode());
+ if (adminUpdateStatusDTO.getStatus().equals(admin.getStatus())) {
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_STATUS_EQUALS.getCode());
}
// 更新管理员状态
- AdminDO updateAdmin = new AdminDO().setId(updateAdminId).setStatus(status);
- adminMapper.update(updateAdmin);
+ AdminDO updateAdmin = new AdminDO().setId(adminUpdateStatusDTO.getId()).setStatus(adminUpdateStatusDTO.getStatus());
+ adminMapper.updateById(updateAdmin);
// 如果是关闭管理员,则标记 token 失效。否则,管理员还可以继续蹦跶
- if (CommonStatusEnum.DISABLE.getValue().equals(status)) {
- oAuth2Service.removeToken(updateAdminId);
+ if (CommonStatusEnum.DISABLE.getValue().equals(adminUpdateStatusDTO.getStatus())) {
+ oAuth2Service.removeToken(adminUpdateStatusDTO.getId());
}
// TODO 插入操作日志
// 返回成功
- return CommonResult.success(true);
+ return true;
}
@Override
@Transactional
- public CommonResult deleteAdmin(Integer adminId, Integer updateAdminId) {
+ public Boolean deleteAdmin(Integer adminId, Integer updateAdminId) {
// 校验账号存在
AdminDO admin = adminMapper.selectById(updateAdminId);
if (admin == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ADMIN_USERNAME_NOT_REGISTERED.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_USERNAME_NOT_REGISTERED.getCode());
}
// 只有禁用的账号才可以删除
if (CommonStatusEnum.ENABLE.getValue().equals(admin.getStatus())) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ADMIN_DELETE_ONLY_DISABLE.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_DELETE_ONLY_DISABLE.getCode());
}
// 标记删除 AdminDO
- AdminDO updateAdmin = new AdminDO().setId(updateAdminId);
- updateAdmin.setDeleted(DeletedStatusEnum.DELETED_YES.getValue());
- adminMapper.update(updateAdmin);
+ adminMapper.deleteById(updateAdminId); // 标记删除
// 标记删除 AdminRole
adminRoleMapper.updateToDeletedByAdminId(updateAdminId);
// TODO 插入操作日志
// 返回成功
- return CommonResult.success(true);
+ return true;
+ }
+
+ @Override
+ public Map> getAdminRolesMap(Collection adminIds) {
+ // 查询管理员拥有的角色关联数据
+ List adminRoleList = adminRoleMapper.selectListByAdminIds(adminIds);
+ if (adminRoleList.isEmpty()) {
+ return Collections.emptyMap();
+ }
+ // 查询角色数据
+ List roleList = roleService.getRoleList(CollectionUtil.convertSet(adminRoleList, AdminRoleDO::getRoleId));
+ Map roleMap = CollectionUtil.convertMap(roleList, RoleBO::getId);
+ // 拼接数据
+ Multimap result = ArrayListMultimap.create();
+ adminRoleList.forEach(adminRole -> result.put(adminRole.getAdminId(), roleMap.get(adminRole.getRoleId())));
+ return result.asMap();
+ }
+
+ @Override
+ public List getRoleList(Integer adminId) {
+ // 查询管理员拥有的角色关联数据
+ List adminRoleList = adminRoleMapper.selectByAdminId(adminId);
+ if (adminRoleList.isEmpty()) {
+ return Collections.emptyList();
+ }
+ // 查询角色数据
+ return roleService.getRoleList(CollectionUtil.convertSet(adminRoleList, AdminRoleDO::getRoleId));
}
@Override
@Transactional
- public CommonResult assignRole(Integer adminId, Integer updateAdminId, Set roleIds) {
+ public Boolean assignAdminRole(Integer adminId, AdminAssignRoleDTO adminAssignRoleDTO) {
// 校验账号存在
- AdminDO admin = adminMapper.selectById(updateAdminId);
+ AdminDO admin = adminMapper.selectById(adminAssignRoleDTO.getId());
if (admin == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ADMIN_USERNAME_NOT_REGISTERED.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_USERNAME_NOT_REGISTERED.getCode());
}
// 校验是否有不存在的角色
- List roles = roleService.getRoles(roleIds);
- if (roles.size() != roleIds.size()) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ROLE_ASSIGN_RESOURCE_NOT_EXISTS.getCode());
+ if (!CollectionUtil.isEmpty(adminAssignRoleDTO.getRoleIds())) {
+ List roles = roleService.getRoles(adminAssignRoleDTO.getRoleIds());
+ if (roles.size() != adminAssignRoleDTO.getRoleIds().size()) {
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ADMIN_ASSIGN_ROLE_NOT_EXISTS.getCode());
+ }
}
// TODO 芋艿,这里先简单实现。即方式是,删除老的分配的角色关系,然后添加新的分配的角色关系
// 标记管理员角色源关系都为删除
- adminRoleMapper.updateToDeletedByAdminId(updateAdminId);
+ adminRoleMapper.updateToDeletedByAdminId(adminAssignRoleDTO.getId());
// 创建 RoleResourceDO 数组,并插入到数据库
- if (!roleIds.isEmpty()) {
- List adminRoleDOs = roleIds.stream().map(roleId -> {
- AdminRoleDO roleResource = new AdminRoleDO().setAdminId(updateAdminId).setRoleId(roleId);
+ if (!CollectionUtil.isEmpty(adminAssignRoleDTO.getRoleIds())) {
+ List adminRoleDOs = adminAssignRoleDTO.getRoleIds().stream().map(roleId -> {
+ AdminRoleDO roleResource = new AdminRoleDO().setAdminId(adminAssignRoleDTO.getId()).setRoleId(roleId);
roleResource.setCreateTime(new Date());
roleResource.setDeleted(DeletedStatusEnum.DELETED_NO.getValue());
return roleResource;
@@ -193,7 +215,7 @@ public class AdminServiceImpl implements AdminService {
}
// TODO 插入操作日志
// 返回成功
- return CommonResult.success(true);
+ return true;
}
private String encodePassword(String password) {
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java
index 6651fe4fb..348d7bbf7 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java
@@ -4,10 +4,10 @@ import cn.iocoder.common.framework.constant.DeletedStatusEnum;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.DataDictService;
-import cn.iocoder.mall.admin.api.bo.DataDictBO;
+import cn.iocoder.mall.admin.api.bo.datadict.DataDictBO;
import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
-import cn.iocoder.mall.admin.api.dto.DataDictAddDTO;
-import cn.iocoder.mall.admin.api.dto.DataDictUpdateDTO;
+import cn.iocoder.mall.admin.api.dto.datadict.DataDictAddDTO;
+import cn.iocoder.mall.admin.api.dto.datadict.DataDictUpdateDTO;
import cn.iocoder.mall.admin.convert.DataDictConvert;
import cn.iocoder.mall.admin.dao.DataDictMapper;
import cn.iocoder.mall.admin.dataobject.DataDictDO;
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/OAuth2ServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/OAuth2ServiceImpl.java
index 2a63cb642..b40d34d40 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/OAuth2ServiceImpl.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/OAuth2ServiceImpl.java
@@ -3,8 +3,8 @@ package cn.iocoder.mall.admin.service;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.OAuth2Service;
-import cn.iocoder.mall.admin.api.bo.OAuth2AccessTokenBO;
-import cn.iocoder.mall.admin.api.bo.OAuth2AuthenticationBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AccessTokenBO;
+import cn.iocoder.mall.admin.api.bo.oauth2.OAuth2AuthenticationBO;
import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
import cn.iocoder.mall.admin.convert.OAuth2Convert;
import cn.iocoder.mall.admin.dao.OAuth2AccessTokenMapper;
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/ResourceServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/ResourceServiceImpl.java
index 03070f4e9..b65e3a3cf 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/ResourceServiceImpl.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/ResourceServiceImpl.java
@@ -3,13 +3,12 @@ package cn.iocoder.mall.admin.service;
import cn.iocoder.common.framework.constant.DeletedStatusEnum;
import cn.iocoder.common.framework.constant.SysErrorCodeEnum;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
-import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.admin.api.ResourceService;
-import cn.iocoder.mall.admin.api.bo.ResourceBO;
+import cn.iocoder.mall.admin.api.bo.resource.ResourceBO;
import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
import cn.iocoder.mall.admin.api.constant.ResourceConstants;
-import cn.iocoder.mall.admin.api.dto.ResourceAddDTO;
-import cn.iocoder.mall.admin.api.dto.ResourceUpdateDTO;
+import cn.iocoder.mall.admin.api.dto.resource.ResourceAddDTO;
+import cn.iocoder.mall.admin.api.dto.resource.ResourceUpdateDTO;
import cn.iocoder.mall.admin.convert.ResourceConvert;
import cn.iocoder.mall.admin.dao.ResourceMapper;
import cn.iocoder.mall.admin.dao.RoleResourceMapper;
@@ -51,81 +50,52 @@ public class ResourceServiceImpl implements ResourceService {
@Override
@SuppressWarnings("Duplicates")
- public CommonResult addResource(Integer adminId, ResourceAddDTO resourceAddDTO) {
+ public ResourceBO addResource(Integer adminId, ResourceAddDTO resourceAddDTO) {
// 补充未在 Validation 中校验的参数校验
if (!isValidResourceType(resourceAddDTO.getType())) {
- return CommonResult.error(SysErrorCodeEnum.VALIDATION_REQUEST_PARAM_ERROR.getCode(), "资源类型必须是菜单或 Url"); // TODO 有点搓
- }
- // 校验资源唯一性
- if (resourceMapper.selectByName(resourceAddDTO.getName()) != null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_NAME_DUPLICATE.getCode());
+ throw ServiceExceptionUtil.exception(SysErrorCodeEnum.VALIDATION_REQUEST_PARAM_ERROR.getCode(), "资源类型必须是菜单或 Url"); // TODO 有点搓
}
// 校验父资源存在
- if (resourceAddDTO.getPid() == null) {
- resourceAddDTO.setPid(ResourceConstants.PID_ROOT);
- }
- if (checkParentExists(resourceAddDTO.getPid())) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_PARENT_NOT_EXISTS.getCode());
- }
+ checkParentResource(resourceAddDTO.getPid(), null);
// 存储到数据库
ResourceDO resource = ResourceConvert.INSTANCE.convert(resourceAddDTO);
- if (ResourceConstants.PID_ROOT.equals(resourceAddDTO.getPid())) { // 根节点,必须没有操作
- resource.setHandler(null);
- } else if (!resource.getHandler().startsWith("/")) {
- resource.setHandler("/" + resource.getHandler());
- }
+ initResourceProperty(resource);
resource.setCreateTime(new Date());
resource.setDeleted(DeletedStatusEnum.DELETED_NO.getValue());
resourceMapper.insert(resource);
// TODO 操作日志
// 返回成功
- return CommonResult.success(ResourceConvert.INSTANCE.convert(resource));
+ return ResourceConvert.INSTANCE.convert(resource);
}
@Override
@SuppressWarnings("Duplicates")
- public CommonResult updateResource(Integer adminId, ResourceUpdateDTO resourceUpdateDTO) {
+ public Boolean updateResource(Integer adminId, ResourceUpdateDTO resourceUpdateDTO) {
// 校验更新的资源是否存在
if (resourceMapper.selectById(resourceUpdateDTO.getId()) == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
- }
- // 校验资源唯一性
- ResourceDO existNameResource = resourceMapper.selectByName(resourceUpdateDTO.getName());
- if (existNameResource != null && !existNameResource.getId().equals(resourceUpdateDTO.getId())) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_NAME_DUPLICATE.getCode());
- }
- // 不能设置自己为父资源
- if (resourceUpdateDTO.getId().equals(resourceUpdateDTO.getPid())) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_PARENT_ERROR.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
}
// 校验父资源存在
- if (resourceUpdateDTO.getPid() == null) {
- resourceUpdateDTO.setPid(ResourceConstants.PID_ROOT);
- }
- if (checkParentExists(resourceUpdateDTO.getPid())) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_PARENT_NOT_EXISTS.getCode());
- }
+ checkParentResource(resourceUpdateDTO.getPid(), resourceUpdateDTO.getId());
// 更新到数据库
ResourceDO resource = ResourceConvert.INSTANCE.convert(resourceUpdateDTO);
- if (ResourceConstants.PID_ROOT.equals(resourceUpdateDTO.getPid())) { // 根节点,必须没有操作
- resource.setHandler(null);
- }
+ initResourceProperty(resource);
resourceMapper.update(resource);
// TODO 操作日志
// 返回成功
- return CommonResult.success(true);
+ return true;
}
@Override
@Transactional
- public CommonResult deleteResource(Integer adminId, Integer resourceId) {
+ public Boolean deleteResource(Integer adminId, Integer resourceId) {
// 校验更新的资源是否存在
if (resourceMapper.selectById(resourceId) == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
}
// 校验是否还有子资源
if (resourceMapper.selectCountByPid(resourceId) > 0) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_EXISTS_CHILDREN.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_EXISTS_CHILDREN.getCode());
}
// 更新到数据库
ResourceDO resource = new ResourceDO().setId(resourceId);
@@ -134,7 +104,7 @@ public class ResourceServiceImpl implements ResourceService {
// 删除资源关联表
roleResourceMapper.updateToDeletedByResourceId(resourceId);
// 返回成功
- return CommonResult.success(true);
+ return true;
}
public List getResources(Set resourceIds) {
@@ -146,7 +116,7 @@ public class ResourceServiceImpl implements ResourceService {
private boolean isValidResourceType(Integer type) {
return ResourceConstants.TYPE_MENU.equals(type)
- || ResourceConstants.TYPE_URL.equals(type);
+ || ResourceConstants.TYPE_BUTTON.equals(type);
}
private boolean checkParentExists(Integer pid) {
@@ -156,4 +126,37 @@ public class ResourceServiceImpl implements ResourceService {
return false;
}
+ private void checkParentResource(Integer pid, Integer childId) {
+ if (pid == null || ResourceConstants.PID_ROOT.equals(pid)) {
+ return;
+ }
+ if (pid.equals(childId)) { // 不能设置自己为父资源
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_PARENT_ERROR.getCode());
+ }
+ ResourceDO resource = resourceMapper.selectById(pid);
+ if (resource == null) { // 父资源不存在
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_PARENT_NOT_EXISTS.getCode());
+ }
+ if (!ResourceConstants.TYPE_MENU.equals(resource.getType())) { // 父资源必须是菜单类型
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_PARENT_NOT_MENU.getCode());
+ }
+ }
+
+ /**
+ * 初始化资源的通用属性。
+ *
+ * 例如说,只有菜单类型的资源,才设置 icon
+ *
+ * @param resource 资源
+ */
+ private void initResourceProperty(ResourceDO resource) {
+ if (resource.getPid() == null) {
+ resource.setPid(ResourceConstants.PID_ROOT);
+ }
+ if (ResourceConstants.TYPE_BUTTON.equals(resource.getType())) {
+ resource.setHandler(null);
+ resource.setIcon(null);
+ }
+ }
+
}
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/RoleServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/RoleServiceImpl.java
index 07fb700fd..bb8048cfa 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/RoleServiceImpl.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/RoleServiceImpl.java
@@ -3,30 +3,27 @@ package cn.iocoder.mall.admin.service;
import cn.iocoder.common.framework.constant.DeletedStatusEnum;
import cn.iocoder.common.framework.util.CollectionUtil;
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
-import cn.iocoder.common.framework.vo.CommonResult;
+import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.mall.admin.api.RoleService;
-import cn.iocoder.mall.admin.api.bo.RoleBO;
-import cn.iocoder.mall.admin.api.bo.RolePageBO;
+import cn.iocoder.mall.admin.api.bo.role.RoleBO;
import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
-import cn.iocoder.mall.admin.api.dto.RoleAddDTO;
-import cn.iocoder.mall.admin.api.dto.RolePageDTO;
-import cn.iocoder.mall.admin.api.dto.RoleUpdateDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleAddDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleAssignResourceDTO;
+import cn.iocoder.mall.admin.api.dto.role.RolePageDTO;
+import cn.iocoder.mall.admin.api.dto.role.RoleUpdateDTO;
import cn.iocoder.mall.admin.convert.RoleConvert;
import cn.iocoder.mall.admin.dao.AdminRoleMapper;
import cn.iocoder.mall.admin.dao.RoleMapper;
import cn.iocoder.mall.admin.dao.RoleResourceMapper;
-import cn.iocoder.mall.admin.dataobject.AdminRoleDO;
import cn.iocoder.mall.admin.dataobject.ResourceDO;
import cn.iocoder.mall.admin.dataobject.RoleDO;
import cn.iocoder.mall.admin.dataobject.RoleResourceDO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -52,31 +49,25 @@ public class RoleServiceImpl implements RoleService {
}
@Override
- public CommonResult getRolePage(RolePageDTO rolePageDTO) {
- RolePageBO rolePage = new RolePageBO();
- // 查询分页数据
- int offset = rolePageDTO.getPageNo() * rolePageDTO.getPageSize();
- rolePage.setRoles(RoleConvert.INSTANCE.convert(roleMapper.selectListByNameLike(rolePageDTO.getName(),
- offset, rolePageDTO.getPageSize())));
- // 查询分页总数
- rolePage.setCount(roleMapper.selectCountByNameLike(rolePageDTO.getName()));
- return CommonResult.success(rolePage);
+ public PageResult getRolePage(RolePageDTO rolePageDTO) {
+ IPage page = roleMapper.selectPage(rolePageDTO);
+ return RoleConvert.INSTANCE.convert(page);
}
@Override
- public CommonResult> getRoleList(Integer adminId) {
- List adminRoleDOs = adminRoleMapper.selectByAdminId(adminId);
- return CommonResult.success(adminRoleDOs.stream().map(AdminRoleDO::getRoleId).collect(Collectors.toSet()));
- }
-
- @Override
- public CommonResult> getRoleList() {
+ public List getRoleList() {
List roleList = roleMapper.selectList();
- return CommonResult.success(RoleConvert.INSTANCE.convert(roleList));
+ return RoleConvert.INSTANCE.convert(roleList);
}
@Override
- public CommonResult addRole(Integer adminId, RoleAddDTO roleAddDTO) {
+ public List getRoleList(Collection ids) {
+ List roles = roleMapper.selectListByIds(ids);
+ return RoleConvert.INSTANCE.convert(roles);
+ }
+
+ @Override
+ public RoleBO addRole(Integer adminId, RoleAddDTO roleAddDTO) {
// TODO 芋艿,角色名是否要唯一呢?貌似一般系统都是允许的。
// 保存到数据库
RoleDO role = RoleConvert.INSTANCE.convert(roleAddDTO);
@@ -85,61 +76,63 @@ public class RoleServiceImpl implements RoleService {
roleMapper.insert(role);
// TODO 插入操作日志
// 返回成功
- return CommonResult.success(RoleConvert.INSTANCE.convert(role));
+ return RoleConvert.INSTANCE.convert(role);
}
@Override
- public CommonResult updateRole(Integer adminId, RoleUpdateDTO roleUpdateDTO) {
+ public Boolean updateRole(Integer adminId, RoleUpdateDTO roleUpdateDTO) {
// TODO 芋艿,角色名是否要唯一呢?貌似一般系统都是允许的。
// 校验角色是否存在
if (roleMapper.selectById(roleUpdateDTO.getId()) == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
}
// 更新到数据库
RoleDO roleDO = RoleConvert.INSTANCE.convert(roleUpdateDTO);
- roleMapper.update(roleDO);
+ roleMapper.updateById(roleDO);
// TODO 插入操作日志
// 返回成功
- return CommonResult.success(true);
+ return true;
}
@Override
@Transactional
- public CommonResult deleteRole(Integer adminId, Integer roleId) {
+ public Boolean deleteRole(Integer adminId, Integer roleId) {
// 校验角色是否存在
if (roleMapper.selectById(roleId) == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
}
// 更新到数据库,标记删除
- RoleDO roleDO = new RoleDO().setId(roleId);
- roleDO.setDeleted(DeletedStatusEnum.DELETED_YES.getValue());
- roleMapper.update(roleDO);
+ roleMapper.deleteById(roleId);
// 标记删除 RoleResource
roleResourceMapper.updateToDeletedByRoleId(roleId);
// 标记删除 AdminRole
adminRoleMapper.updateToDeletedByRoleId(roleId);
// TODO 插入操作日志
// 返回成功
- return CommonResult.success(true);
+ return true;
}
@Override
@Transactional
- public CommonResult assignResource(Integer adminId, Integer roleId, Set resourceIds) {
+ public Boolean assignRoleResource(Integer adminId, RoleAssignResourceDTO roleAssignResourceDTO) {
+ Integer roleId = roleAssignResourceDTO.getId();
+ Set resourceIds = roleAssignResourceDTO.getResourceIds();
// 校验角色是否存在
- if (roleMapper.selectById(roleId) == null) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
+ if (roleMapper.selectById(roleAssignResourceDTO.getId()) == null) {
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.RESOURCE_NOT_EXISTS.getCode());
}
// 校验是否有不存在的资源
- List resources = resourceService.getResources(resourceIds);
- if (resources.size() != resourceIds.size()) {
- return ServiceExceptionUtil.error(AdminErrorCodeEnum.ROLE_ASSIGN_RESOURCE_NOT_EXISTS.getCode());
+ if (!CollectionUtil.isEmpty(resourceIds)) {
+ List resources = resourceService.getResources(resourceIds);
+ if (resources.size() != resourceIds.size()) {
+ throw ServiceExceptionUtil.exception(AdminErrorCodeEnum.ROLE_ASSIGN_RESOURCE_NOT_EXISTS.getCode());
+ }
}
// TODO 芋艿,这里先简单实现。即方式是,删除老的分配的资源关系,然后添加新的分配的资源关系
// 标记角色原资源关系都为删除
roleResourceMapper.updateToDeletedByRoleId(roleId);
// 创建 RoleResourceDO 数组,并插入到数据库
- if (!resourceIds.isEmpty()) {
+ if (!CollectionUtil.isEmpty(resourceIds)) {
List roleResources = resourceIds.stream().map(resourceId -> {
RoleResourceDO roleResource = new RoleResourceDO().setRoleId(roleId).setResourceId(resourceId);
roleResource.setCreateTime(new Date());
@@ -150,7 +143,7 @@ public class RoleServiceImpl implements RoleService {
}
// TODO 插入操作日志
// 返回成功
- return CommonResult.success(true);
+ return true;
}
public List getRoles(Set roleIds) {
diff --git a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/SystemLogServiceImpl.java b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/SystemLogServiceImpl.java
index a44759691..e21525a54 100644
--- a/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/SystemLogServiceImpl.java
+++ b/system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/SystemLogServiceImpl.java
@@ -2,8 +2,8 @@ package cn.iocoder.mall.admin.service;
import cn.iocoder.common.framework.util.StringUtil;
import cn.iocoder.mall.admin.api.SystemLogService;
-import cn.iocoder.mall.admin.api.dto.AccessLogAddDTO;
-import cn.iocoder.mall.admin.api.dto.ExceptionLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.AccessLogAddDTO;
+import cn.iocoder.mall.admin.api.dto.systemlog.ExceptionLogAddDTO;
import cn.iocoder.mall.admin.convert.AccessLogConvert;
import cn.iocoder.mall.admin.dao.AccessLogMapper;
import cn.iocoder.mall.admin.dao.ExceptionLogMapper;
diff --git a/system/system-service-impl/src/main/resources/config/application.yaml b/system/system-service-impl/src/main/resources/config/application.yaml
index 0bb439c57..2030b1573 100644
--- a/system/system-service-impl/src/main/resources/config/application.yaml
+++ b/system/system-service-impl/src/main/resources/config/application.yaml
@@ -49,3 +49,9 @@ dubbo:
version: 1.0.0
RoleService:
version: 1.0.0
+
+# logging
+logging:
+ level:
+ # dao 开启 debug 模式 mybatis 输入 sql
+ cn.iocoder.mall.admin.dao: debug
diff --git a/system/system-service-impl/src/main/resources/mapper/AdminMapper.xml b/system/system-service-impl/src/main/resources/mapper/AdminMapper.xml
deleted file mode 100644
index 13272d4be..000000000
--- a/system/system-service-impl/src/main/resources/mapper/AdminMapper.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
- id, username, nickname, password, status,
- create_time
-
-
-
-
-
-
-
-
-
- UPDATE admin
-
-
- , username = #{username}
-
-
- , nickname = #{nickname}
-
-
- , password = #{password}
-
-
- , status = #{status}
-
-
- , deleted = #{deleted}
-
-
- WHERE id = #{id}
-
-
-
diff --git a/system/system-service-impl/src/main/resources/mapper/ResourceMapper.xml b/system/system-service-impl/src/main/resources/mapper/ResourceMapper.xml
index ee1ba621b..a3d8f281f 100644
--- a/system/system-service-impl/src/main/resources/mapper/ResourceMapper.xml
+++ b/system/system-service-impl/src/main/resources/mapper/ResourceMapper.xml
@@ -2,14 +2,6 @@
-
-
-
-
-
-
-
-
id, name, type, sort, display_name,
create_time, pid, handler
@@ -90,16 +82,6 @@
AND deleted = 0
-
- INSERT INTO resource (
- name, type, sort, display_name, handler,
- pid, create_time, deleted
- ) VALUES (
- #{name}, #{type}, #{sort}, #{displayName}, #{handler},
- #{pid}, #{createTime}, #{deleted}
- )
-
-
UPDATE resource
@@ -125,4 +107,4 @@
WHERE id = #{id}
-
\ No newline at end of file
+
diff --git a/system/system-service-impl/src/main/resources/mapper/RoleMapper.xml b/system/system-service-impl/src/main/resources/mapper/RoleMapper.xml
deleted file mode 100644
index 8b1b84b7f..000000000
--- a/system/system-service-impl/src/main/resources/mapper/RoleMapper.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
- id, name, create_time
-
-
-
- INSERT INTO role (
- name, create_time, deleted
- ) VALUES (
- #{name}, #{createTime}, #{deleted}
- )
-
-
-
- UPDATE role
-
-
- , name = #{name}
-
-
- , deleted = #{deleted}
-
-
- WHERE id = #{id}
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/system/system-service-impl/src/main/resources/mybatis-config.xml b/system/system-service-impl/src/main/resources/mybatis-config.xml
deleted file mode 100644
index 7f604cc7e..000000000
--- a/system/system-service-impl/src/main/resources/mybatis-config.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file