Commit 06887bff1630e13874e1b4f488ac6be5fc653baa

Authored by YunaiV
1 parent cee7e507

多模块重构 4:system 模块的创建,以及将相关的代码先进行迁移

Showing 407 changed files with 4739 additions and 4528 deletions

Too many changes.

To preserve performance only 100 of 407 files are displayed.

@@ -15,6 +15,8 @@ @@ -15,6 +15,8 @@
15 <module>yudao-core-service</module> 15 <module>yudao-core-service</module>
16 <module>yudao-module-member</module> 16 <module>yudao-module-member</module>
17 <module>yudao-module-bpm</module> 17 <module>yudao-module-bpm</module>
  18 + <module>yudao-module-system</module>
  19 + <module>yudao-module-system-api</module>
18 </modules> 20 </modules>
19 21
20 <name>${artifactId}</name> 22 <name>${artifactId}</name>
yudao-admin-server/pom.xml
@@ -27,6 +27,11 @@ @@ -27,6 +27,11 @@
27 <artifactId>yudao-module-member-impl</artifactId> 27 <artifactId>yudao-module-member-impl</artifactId>
28 <version>${revision}</version> 28 <version>${revision}</version>
29 </dependency> 29 </dependency>
  30 + <dependency>
  31 + <groupId>cn.iocoder.boot</groupId>
  32 + <artifactId>yudao-module-system-impl</artifactId>
  33 + <version>${revision}</version>
  34 + </dependency>
30 35
31 <!-- 业务组件 --> 36 <!-- 业务组件 -->
32 <dependency> 37 <dependency>
@@ -50,10 +55,6 @@ @@ -50,10 +55,6 @@
50 <groupId>cn.iocoder.boot</groupId> 55 <groupId>cn.iocoder.boot</groupId>
51 <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId> 56 <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
52 </dependency> 57 </dependency>
53 - <dependency>  
54 - <groupId>cn.iocoder.boot</groupId>  
55 - <artifactId>yudao-spring-boot-starter-biz-data-permission</artifactId>  
56 - </dependency>  
57 58
58 <!-- 默认引入bpm-activiti. 可以替换为bpm-flowable --> 59 <!-- 默认引入bpm-activiti. 可以替换为bpm-flowable -->
59 <dependency> 60 <dependency>
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/AdminServerApplication.java
@@ -5,7 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -5,7 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
5 5
6 @SuppressWarnings("SpringComponentScan") // 忽略 IDEA 无法识别 ${yudao.info.base-package} 和 ${yudao.core-service.base-package} 6 @SuppressWarnings("SpringComponentScan") // 忽略 IDEA 无法识别 ${yudao.info.base-package} 和 ${yudao.core-service.base-package}
7 @SpringBootApplication(scanBasePackages = {"${yudao.info.base-package}", "${yudao.core-service.base-package}", 7 @SpringBootApplication(scanBasePackages = {"${yudao.info.base-package}", "${yudao.core-service.base-package}",
8 - "${yudao.info.member-package}"}) // TODO 芋艿:重构 8 + "${yudao.info.member-package}", "${yudao.info.system-package}"}) // TODO 芋艿:重构
9 public class AdminServerApplication { 9 public class AdminServerApplication {
10 10
11 public static void main(String[] args) { 11 public static void main(String[] args) {
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/framework/captcha/config/CaptchaProperties.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.framework.captcha.config;  
2 -  
3 -import lombok.Data;  
4 -import org.springframework.boot.context.properties.ConfigurationProperties;  
5 -import org.springframework.validation.annotation.Validated;  
6 -  
7 -import javax.validation.constraints.NotNull;  
8 -import java.time.Duration;  
9 -  
10 -@ConfigurationProperties(prefix = "yudao.captcha")  
11 -@Validated  
12 -@Data  
13 -public class CaptchaProperties {  
14 -  
15 - private static final Boolean ENABLE_DEFAULT = true;  
16 -  
17 - /**  
18 - * 是否开启  
19 - * 注意,这里仅仅是后端 Server 是否校验,暂时不控制前端的逻辑  
20 - */  
21 - private Boolean enable = ENABLE_DEFAULT;  
22 - /**  
23 - * 验证码的过期时间  
24 - */  
25 - @NotNull(message = "验证码的过期时间不为空")  
26 - private Duration timeout;  
27 - /**  
28 - * 验证码的高度  
29 - */  
30 - @NotNull(message = "验证码的高度不能为空")  
31 - private Integer height;  
32 - /**  
33 - * 验证码的宽度  
34 - */  
35 - @NotNull(message = "验证码的宽度不能为空")  
36 - private Integer width;  
37 -  
38 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/framework/captcha/package-info.java deleted
1 -/**  
2 - * 基于 Hutool captcha 库,实现验证码功能  
3 - */  
4 -package cn.iocoder.yudao.adminserver.modules.system.framework.captcha;  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/framework/codegen/config/CodegenProperties.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.framework.codegen.config;  
2 -  
3 -import lombok.Data;  
4 -import org.springframework.boot.context.properties.ConfigurationProperties;  
5 -import org.springframework.validation.annotation.Validated;  
6 -  
7 -import javax.validation.constraints.NotEmpty;  
8 -import javax.validation.constraints.NotNull;  
9 -import java.util.Collection;  
10 -  
11 -@ConfigurationProperties(prefix = "yudao.codegen")  
12 -@Validated  
13 -@Data  
14 -public class CodegenProperties {  
15 -  
16 - /**  
17 - * 生成的 Java 代码的基础包  
18 - */  
19 - @NotNull(message = "Java 代码的基础包不能为空")  
20 - private String basePackage;  
21 -  
22 - /**  
23 - * 数据库名数组  
24 - */  
25 - @NotEmpty(message = "数据库不能为空")  
26 - private Collection<String> dbSchemas;  
27 -  
28 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/framework/codegen/package-info.java deleted
1 -/**  
2 - * 代码生成器  
3 - */  
4 -package cn.iocoder.yudao.adminserver.modules.system.framework.codegen;  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/framework/datapermission/config/SysDataPermissionConfiguration.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.framework.datapermission.config;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
5 -import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRuleCustomizer;  
6 -import org.springframework.context.annotation.Bean;  
7 -import org.springframework.context.annotation.Configuration;  
8 -  
9 -/**  
10 - * system 模块的数据权限 Configuration  
11 - *  
12 - * @author 芋道源码  
13 - */  
14 -@Configuration  
15 -public class SysDataPermissionConfiguration {  
16 -  
17 - @Bean  
18 - public DeptDataPermissionRuleCustomizer sysDeptDataPermissionRuleCustomizer() {  
19 - return rule -> {  
20 - rule.addDeptColumn(SysUserDO.class);  
21 - rule.addDeptColumn(SysDeptDO.class, "id");  
22 - };  
23 - }  
24 -  
25 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/framework/datapermission/package-info.java deleted
1 -/**  
2 - * system 模块的数据权限配置  
3 - */  
4 -package cn.iocoder.yudao.adminserver.modules.system.framework.datapermission;  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/job/auth/SysUserSessionTimeoutJob.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.job.auth;  
2 -  
3 -import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;  
4 -import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService;  
5 -import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * 用户 Session 超时 Job  
13 - *  
14 - * @author 願  
15 - */  
16 -@Component  
17 -@TenantJob  
18 -@Slf4j  
19 -public class SysUserSessionTimeoutJob implements JobHandler {  
20 -  
21 - @Resource  
22 - private SysUserSessionService sysUserSessionService;  
23 -  
24 - @Override  
25 - public String execute(String param) throws Exception {  
26 - // 执行过期  
27 - Long timeoutCount = sysUserSessionService.clearSessionTimeout();  
28 - // 返回结果,记录每次的超时数量  
29 - return String.format("移除在线会话数量为 %s 个", timeoutCount);  
30 - }  
31 -  
32 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/job/package-info.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.job;  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/dept/SysDeptRefreshConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.dept;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;  
4 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.dept.SysDeptRefreshMessage;  
5 -import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * 针对 {@link SysDeptRefreshMessage} 的消费者  
13 - *  
14 - * @author 芋道源码  
15 - */  
16 -@Component  
17 -@Slf4j  
18 -public class SysDeptRefreshConsumer extends AbstractChannelMessageListener<SysDeptRefreshMessage> {  
19 -  
20 - @Resource  
21 - private SysDeptService deptService;  
22 -  
23 - @Override  
24 - public void onMessage(SysDeptRefreshMessage message) {  
25 - log.info("[onMessage][收到 Dept 刷新消息]");  
26 - deptService.initLocalCache();  
27 - }  
28 -  
29 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/dict/SysDictDataRefreshConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.dict;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.service.dict.SysDictDataCoreService;  
4 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;  
5 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.dict.SysDictDataRefreshMessage;  
6 -import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;  
7 -import lombok.extern.slf4j.Slf4j;  
8 -import org.springframework.stereotype.Component;  
9 -  
10 -import javax.annotation.Resource;  
11 -  
12 -/**  
13 - * 针对 {@link SysDictDataRefreshMessage} 的消费者  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Component  
18 -@Slf4j  
19 -public class SysDictDataRefreshConsumer extends AbstractChannelMessageListener<SysDictDataRefreshMessage> {  
20 -  
21 - @Resource  
22 - private SysDictDataCoreService dictDataCoreService;  
23 -  
24 - @Override  
25 - public void onMessage(SysDictDataRefreshMessage message) {  
26 - log.info("[onMessage][收到 DictData 刷新消息]");  
27 - dictDataCoreService.initLocalCache();  
28 - }  
29 -  
30 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/mail/SysMailSendConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.mail;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener;  
4 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.mail.SysMailSendMessage;  
5 -import lombok.extern.slf4j.Slf4j;  
6 -import org.springframework.stereotype.Component;  
7 -  
8 -@Component  
9 -@Slf4j  
10 -public class SysMailSendConsumer extends AbstractStreamMessageListener<SysMailSendMessage> {  
11 -  
12 - @Override  
13 - public void onMessage(SysMailSendMessage message) {  
14 - log.info("[onMessage][消息内容({})]", message);  
15 - }  
16 -  
17 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/permission/SysMenuRefreshConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.permission;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;  
4 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.permission.SysMenuRefreshMessage;  
5 -import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysMenuService;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * 针对 {@link SysMenuRefreshMessage} 的消费者  
13 - *  
14 - * @author 芋道源码  
15 - */  
16 -@Component  
17 -@Slf4j  
18 -public class SysMenuRefreshConsumer extends AbstractChannelMessageListener<SysMenuRefreshMessage> {  
19 -  
20 - @Resource  
21 - private SysMenuService menuService;  
22 -  
23 - @Override  
24 - public void onMessage(SysMenuRefreshMessage message) {  
25 - log.info("[onMessage][收到 Menu 刷新消息]");  
26 - menuService.initLocalCache();  
27 - }  
28 -  
29 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/permission/SysRoleMenuRefreshConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.permission;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;  
4 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.permission.SysRoleMenuRefreshMessage;  
5 -import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * 针对 {@link SysRoleMenuRefreshMessage} 的消费者  
13 - *  
14 - * @author 芋道源码  
15 - */  
16 -@Component  
17 -@Slf4j  
18 -public class SysRoleMenuRefreshConsumer extends AbstractChannelMessageListener<SysRoleMenuRefreshMessage> {  
19 -  
20 - @Resource  
21 - private SysPermissionService permissionService;  
22 -  
23 - @Override  
24 - public void onMessage(SysRoleMenuRefreshMessage message) {  
25 - log.info("[onMessage][收到 Role 与 Menu 的关联刷新消息]");  
26 - permissionService.initLocalCache();  
27 - }  
28 -  
29 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/permission/SysRoleRefreshConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.permission;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;  
4 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.permission.SysRoleRefreshMessage;  
5 -import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * 针对 {@link SysRoleRefreshMessage} 的消费者  
13 - *  
14 - * @author 芋道源码  
15 - */  
16 -@Component  
17 -@Slf4j  
18 -public class SysRoleRefreshConsumer extends AbstractChannelMessageListener<SysRoleRefreshMessage> {  
19 -  
20 - @Resource  
21 - private SysRoleService roleService;  
22 -  
23 - @Override  
24 - public void onMessage(SysRoleRefreshMessage message) {  
25 - log.info("[onMessage][收到 Role 刷新消息]");  
26 - roleService.initLocalCache();  
27 - }  
28 -  
29 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/sms/SysSmsChannelRefreshConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;  
4 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsChannelRefreshMessage;  
5 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsChannelService;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * 针对 {@link SysSmsChannelRefreshMessage} 的消费者  
13 - *  
14 - * @author 芋道源码  
15 - */  
16 -@Component  
17 -@Slf4j  
18 -public class SysSmsChannelRefreshConsumer extends AbstractChannelMessageListener<SysSmsChannelRefreshMessage> {  
19 -  
20 - @Resource  
21 - private SysSmsChannelService smsChannelService;  
22 -  
23 - @Override  
24 - public void onMessage(SysSmsChannelRefreshMessage message) {  
25 - log.info("[onMessage][收到 SmsChannel 刷新消息]");  
26 - smsChannelService.initSmsClients();  
27 - }  
28 -  
29 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/sms/SysSmsSendConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;  
4 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService;  
5 -import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * 针对 {@link SysSmsSendMessage} 的消费者  
13 - *  
14 - * @author zzf  
15 - * @date 2021/3/9 16:35  
16 - */  
17 -@Component  
18 -@Slf4j  
19 -public class SysSmsSendConsumer extends AbstractStreamMessageListener<SysSmsSendMessage> {  
20 -  
21 - @Resource  
22 - private SysSmsCoreService smsCoreService;  
23 -  
24 - @Override  
25 - public void onMessage(SysSmsSendMessage message) {  
26 - log.info("[onMessage][消息内容({})]", message);  
27 - smsCoreService.doSendSms(message);  
28 - }  
29 -  
30 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/sms/SysSmsTemplateRefreshConsumer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsTemplateRefreshMessage;  
4 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsTemplateCoreService;  
5 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * 针对 {@link SysSmsTemplateRefreshMessage} 的消费者  
13 - *  
14 - * @author 芋道源码  
15 - */  
16 -@Component  
17 -@Slf4j  
18 -public class SysSmsTemplateRefreshConsumer extends AbstractChannelMessageListener<SysSmsTemplateRefreshMessage> {  
19 -  
20 - @Resource  
21 - private SysSmsTemplateCoreService smsTemplateCoreService;  
22 -  
23 - @Override  
24 - public void onMessage(SysSmsTemplateRefreshMessage message) {  
25 - log.info("[onMessage][收到 SmsTemplate 刷新消息]");  
26 - smsTemplateCoreService.initLocalCache();  
27 - }  
28 -  
29 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/message/dept/SysDeptRefreshMessage.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.message.dept;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -/**  
8 - * 部门数据刷新 Message  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -public class SysDeptRefreshMessage extends AbstractChannelMessage {  
15 -  
16 - @Override  
17 - public String getChannel() {  
18 - return "system.dept.refresh";  
19 - }  
20 -  
21 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/message/dict/SysDictDataRefreshMessage.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.message.dict;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -/**  
8 - * 字典数据数据刷新 Message  
9 - */  
10 -@Data  
11 -@EqualsAndHashCode(callSuper = true)  
12 -public class SysDictDataRefreshMessage extends AbstractChannelMessage {  
13 -  
14 - @Override  
15 - public String getChannel() {  
16 - return "system.dict-data.refresh";  
17 - }  
18 -  
19 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/message/mail/SysMailSendMessage.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.message.mail;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessage;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -import javax.validation.constraints.NotNull;  
8 -import java.util.Map;  
9 -  
10 -/**  
11 - * 邮箱发送消息  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -@Data  
16 -@EqualsAndHashCode(callSuper = true)  
17 -public class SysMailSendMessage extends AbstractStreamMessage {  
18 -  
19 - /**  
20 - * 邮箱地址  
21 - */  
22 - @NotNull(message = "邮箱地址不能为空")  
23 - private String address;  
24 - /**  
25 - * 短信模板编号  
26 - */  
27 - @NotNull(message = "短信模板编号不能为空")  
28 - private String templateCode;  
29 - /**  
30 - * 短信模板参数  
31 - */  
32 - private Map<String, Object> templateParams;  
33 -  
34 - /**  
35 - * 用户编号,允许空  
36 - */  
37 - private Integer userId;  
38 - /**  
39 - * 用户类型,允许空  
40 - */  
41 - private Integer userType;  
42 -  
43 - @Override  
44 - public String getStreamKey() {  
45 - return "system.mail.send";  
46 - }  
47 -  
48 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/message/permission/SysMenuRefreshMessage.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.message.permission;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -/**  
8 - * 菜单数据刷新 Message  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -public class SysMenuRefreshMessage extends AbstractChannelMessage {  
15 -  
16 - @Override  
17 - public String getChannel() {  
18 - return "system.menu.refresh";  
19 - }  
20 -  
21 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/message/permission/SysRoleMenuRefreshMessage.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.message.permission;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -/**  
8 - * 角色与菜单数据刷新 Message  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -public class SysRoleMenuRefreshMessage extends AbstractChannelMessage {  
15 -  
16 - @Override  
17 - public String getChannel() {  
18 - return "system.role-menu.refresh";  
19 - }  
20 -  
21 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/message/permission/SysRoleRefreshMessage.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.message.permission;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -/**  
8 - * 角色数据刷新 Message  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -public class SysRoleRefreshMessage extends AbstractChannelMessage {  
15 -  
16 - @Override  
17 - public String getChannel() {  
18 - return "system.role.refresh";  
19 - }  
20 -  
21 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/message/sms/SysSmsChannelRefreshMessage.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.message.sms;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -/**  
8 - * 短信渠道的数据刷新 Message  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -public class SysSmsChannelRefreshMessage extends AbstractChannelMessage {  
15 -  
16 - @Override  
17 - public String getChannel() {  
18 - return "system.sms-channel.refresh";  
19 - }  
20 -  
21 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/message/sms/SysSmsTemplateRefreshMessage.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.message.sms;  
2 -  
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -/**  
8 - * 短信模板的数据刷新 Message  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -public class SysSmsTemplateRefreshMessage extends AbstractChannelMessage {  
15 -  
16 - @Override  
17 - public String getChannel() {  
18 - return "system.sms-template.refresh";  
19 - }  
20 -  
21 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/producer/dept/SysDeptProducer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.producer.dept;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.dept.SysDeptRefreshMessage;  
4 -import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;  
5 -import org.springframework.stereotype.Component;  
6 -  
7 -import javax.annotation.Resource;  
8 -  
9 -/**  
10 - * Dept 部门相关消息的 Producer  
11 - */  
12 -@Component  
13 -public class SysDeptProducer {  
14 -  
15 - @Resource  
16 - private RedisMQTemplate redisMQTemplate;  
17 -  
18 - /**  
19 - * 发送 {@link SysDeptRefreshMessage} 消息  
20 - */  
21 - public void sendDeptRefreshMessage() {  
22 - SysDeptRefreshMessage message = new SysDeptRefreshMessage();  
23 - redisMQTemplate.send(message);  
24 - }  
25 -  
26 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/producer/dict/SysDictDataProducer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.producer.dict;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.dict.SysDictDataRefreshMessage;  
4 -import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;  
5 -import org.springframework.stereotype.Component;  
6 -  
7 -import javax.annotation.Resource;  
8 -  
9 -/**  
10 - * DictData 字典数据相关消息的 Producer  
11 - */  
12 -@Component  
13 -public class SysDictDataProducer {  
14 -  
15 - @Resource  
16 - private RedisMQTemplate redisMQTemplate;  
17 -  
18 - /**  
19 - * 发送 {@link SysDictDataRefreshMessage} 消息  
20 - */  
21 - public void sendDictDataRefreshMessage() {  
22 - SysDictDataRefreshMessage message = new SysDictDataRefreshMessage();  
23 - redisMQTemplate.send(message);  
24 - }  
25 -  
26 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/producer/permission/SysMenuProducer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.producer.permission;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.permission.SysMenuRefreshMessage;  
4 -import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;  
5 -import org.springframework.stereotype.Component;  
6 -  
7 -import javax.annotation.Resource;  
8 -  
9 -/**  
10 - * Menu 菜单相关消息的 Producer  
11 - */  
12 -@Component  
13 -public class SysMenuProducer {  
14 -  
15 - @Resource  
16 - private RedisMQTemplate redisMQTemplate;  
17 -  
18 - /**  
19 - * 发送 {@link SysMenuRefreshMessage} 消息  
20 - */  
21 - public void sendMenuRefreshMessage() {  
22 - SysMenuRefreshMessage message = new SysMenuRefreshMessage();  
23 - redisMQTemplate.send(message);  
24 - }  
25 -  
26 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/producer/permission/SysPermissionProducer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.producer.permission;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.permission.SysRoleMenuRefreshMessage;  
4 -import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;  
5 -import org.springframework.stereotype.Component;  
6 -  
7 -import javax.annotation.Resource;  
8 -  
9 -/**  
10 - * Permission 权限相关消息的 Producer  
11 - */  
12 -@Component  
13 -public class SysPermissionProducer {  
14 -  
15 - @Resource  
16 - private RedisMQTemplate redisMQTemplate;  
17 -  
18 - /**  
19 - * 发送 {@link SysRoleMenuRefreshMessage} 消息  
20 - */  
21 - public void sendRoleMenuRefreshMessage() {  
22 - SysRoleMenuRefreshMessage message = new SysRoleMenuRefreshMessage();  
23 - redisMQTemplate.send(message);  
24 - }  
25 -  
26 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/producer/permission/SysRoleProducer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.producer.permission;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.permission.SysRoleRefreshMessage;  
4 -import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;  
5 -import org.springframework.stereotype.Component;  
6 -  
7 -import javax.annotation.Resource;  
8 -  
9 -/**  
10 - * Role 角色相关消息的 Producer  
11 - *  
12 - * @author 芋道源码  
13 - */  
14 -@Component  
15 -public class SysRoleProducer {  
16 -  
17 - @Resource  
18 - private RedisMQTemplate redisMQTemplate;  
19 -  
20 - /**  
21 - * 发送 {@link SysRoleRefreshMessage} 消息  
22 - */  
23 - public void sendRoleRefreshMessage() {  
24 - SysRoleRefreshMessage message = new SysRoleRefreshMessage();  
25 - redisMQTemplate.send(message);  
26 - }  
27 -  
28 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/producer/sms/SysSmsProducer.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsChannelRefreshMessage;  
4 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsTemplateRefreshMessage;  
5 -import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -  
11 -/**  
12 - * Sms 短信相关消息的 Producer  
13 - *  
14 - * @author zzf  
15 - * @date 2021/3/9 16:35  
16 - */  
17 -@Slf4j  
18 -@Component  
19 -public class SysSmsProducer {  
20 -  
21 - @Resource  
22 - private RedisMQTemplate redisMQTemplate;  
23 -  
24 - /**  
25 - * 发送 {@link SysSmsChannelRefreshMessage} 消息  
26 - */  
27 - public void sendSmsChannelRefreshMessage() {  
28 - SysSmsChannelRefreshMessage message = new SysSmsChannelRefreshMessage();  
29 - redisMQTemplate.send(message);  
30 - }  
31 -  
32 - /**  
33 - * 发送 {@link SysSmsTemplateRefreshMessage} 消息  
34 - */  
35 - public void sendSmsTemplateRefreshMessage() {  
36 - SysSmsTemplateRefreshMessage message = new SysSmsTemplateRefreshMessage();  
37 - redisMQTemplate.send(message);  
38 - }  
39 -  
40 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/package-info.java deleted
1 -/**  
2 - * system 包下,我们放通用业务,支撑上层的核心业务。  
3 - * 例如说:用户、部门、权限、数据字典等等  
4 - *  
5 - * 缩写:sys  
6 - */  
7 -package cn.iocoder.yudao.adminserver.modules.system;  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/SysAuthService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.auth;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.*;  
4 -import cn.iocoder.yudao.framework.security.core.service.SecurityAuthFrameworkService;  
5 -  
6 -import javax.validation.Valid;  
7 -  
8 -/**  
9 - * 管理后台的认证 Service 接口  
10 - *  
11 - * 提供用户的账号密码登录、token 的校验等认证相关的功能  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -public interface SysAuthService extends SecurityAuthFrameworkService {  
16 -  
17 - /**  
18 - * 账号登录  
19 - *  
20 - * @param reqVO 登录信息  
21 - * @param userIp 用户 IP  
22 - * @param userAgent 用户 UA  
23 - * @return 身份令牌,使用 JWT 方式  
24 - */  
25 - String login(@Valid SysAuthLoginReqVO reqVO, String userIp, String userAgent);  
26 -  
27 - /**  
28 - * 社交登录,使用 code 授权码  
29 - *  
30 - * @param reqVO 登录信息  
31 - * @param userIp 用户 IP  
32 - * @param userAgent 用户 UA  
33 - * @return 身份令牌,使用 JWT 方式  
34 - */  
35 - String socialLogin(@Valid SysAuthSocialLoginReqVO reqVO, String userIp, String userAgent);  
36 -  
37 - /**  
38 - * 社交登录,使用 code 授权码 + 账号密码  
39 - *  
40 - * @param reqVO 登录信息  
41 - * @param userIp 用户 IP  
42 - * @param userAgent 用户 UA  
43 - * @return 身份令牌,使用 JWT 方式  
44 - */  
45 - String socialLogin2(@Valid SysAuthSocialLogin2ReqVO reqVO, String userIp, String userAgent);  
46 -  
47 - /**  
48 - * 社交绑定,使用 code 授权码  
49 - *  
50 - * @param userId 用户编号  
51 - * @param reqVO 绑定信息  
52 - */  
53 - void socialBind(Long userId, @Valid SysAuthSocialBindReqVO reqVO);  
54 -  
55 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/SysUserSessionService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.auth;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -  
7 -/**  
8 - * 在线用户 Session Service 接口  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -public interface SysUserSessionService {  
13 -  
14 - /**  
15 - * 获得在线用户分页列表  
16 - *  
17 - * @param reqVO 分页条件  
18 - * @return 份额与列表  
19 - */  
20 - PageResult<SysUserSessionDO> getUserSessionPage(SysUserSessionPageReqVO reqVO);  
21 -  
22 - /**  
23 - * 移除超时的在线用户  
24 - *  
25 - * @return {@link Long } 移出的超时用户数量  
26 - **/  
27 - long clearSessionTimeout();  
28 -  
29 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/impl/SysUserSessionServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.auth.impl;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.util.StrUtil;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.auth.SysUserSessionMapper;  
7 -import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum;  
8 -import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum;  
9 -import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService;  
10 -import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;  
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;  
12 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
13 -import cn.iocoder.yudao.coreservice.modules.system.dal.redis.auth.SysLoginUserCoreRedisDAO;  
14 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;  
15 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO;  
16 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
17 -import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;  
18 -import com.google.common.collect.Lists;  
19 -import lombok.extern.slf4j.Slf4j;  
20 -import org.springframework.stereotype.Service;  
21 -  
22 -import javax.annotation.Resource;  
23 -import java.util.ArrayList;  
24 -import java.util.Collection;  
25 -import java.util.List;  
26 -import java.util.Map;  
27 -import java.util.stream.Collectors;  
28 -  
29 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;  
30 -  
31 -/**  
32 - * 在线用户 Session Service 实现类  
33 - *  
34 - * @author 芋道源码  
35 - */  
36 -@Slf4j  
37 -@Service  
38 -public class SysUserSessionServiceImpl implements SysUserSessionService {  
39 -  
40 - @Resource  
41 - private SysUserSessionMapper userSessionMapper;  
42 - @Resource  
43 - private SysUserService userService;  
44 - @Resource  
45 - private SysLoginLogCoreService loginLogCoreService;  
46 -  
47 - @Resource  
48 - private SysLoginUserCoreRedisDAO loginUserCoreRedisDAO;  
49 -  
50 - @Override  
51 - public PageResult<SysUserSessionDO> getUserSessionPage(SysUserSessionPageReqVO reqVO) {  
52 - // 处理基于用户昵称的查询  
53 - Collection<Long> userIds = null;  
54 - if (StrUtil.isNotEmpty(reqVO.getUsername())) {  
55 - userIds = convertSet(userService.getUsersByUsername(reqVO.getUsername()), SysUserDO::getId);  
56 - if (CollUtil.isEmpty(userIds)) {  
57 - return PageResult.empty();  
58 - }  
59 - }  
60 - return userSessionMapper.selectPage(reqVO, userIds);  
61 - }  
62 -  
63 - // TODO @芋艿:优化下该方法  
64 - @Override  
65 - public long clearSessionTimeout() {  
66 - // 获取db里已经超时的用户列表  
67 - List<SysUserSessionDO> sessionTimeoutDOS = userSessionMapper.selectListBySessionTimoutLt();  
68 - Map<String, SysUserSessionDO> timeoutSessionDOMap = sessionTimeoutDOS  
69 - .stream()  
70 - .filter(sessionDO -> loginUserCoreRedisDAO.get(sessionDO.getId()) == null)  
71 - .collect(Collectors.toMap(SysUserSessionDO::getId, o -> o));  
72 - // 确认已经超时,按批次移出在线用户列表  
73 - if (CollUtil.isNotEmpty(timeoutSessionDOMap)) {  
74 - Lists.partition(new ArrayList<>(timeoutSessionDOMap.keySet()), 100)  
75 - .forEach(userSessionMapper::deleteBatchIds);  
76 - // 记录用户超时退出日志  
77 - createTimeoutLogoutLog(timeoutSessionDOMap.values());  
78 - }  
79 - return timeoutSessionDOMap.size();  
80 - }  
81 -  
82 - private void createTimeoutLogoutLog(Collection<SysUserSessionDO> timeoutSessionDOS) {  
83 - for (SysUserSessionDO timeoutSessionDO : timeoutSessionDOS) {  
84 - SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO();  
85 - reqDTO.setLogType(SysLoginLogTypeEnum.LOGOUT_TIMEOUT.getType());  
86 - reqDTO.setTraceId(TracerUtils.getTraceId());  
87 - reqDTO.setUserId(timeoutSessionDO.getUserId());  
88 - reqDTO.setUserType(timeoutSessionDO.getUserType());  
89 - reqDTO.setUsername(timeoutSessionDO.getUsername());  
90 - reqDTO.setUserAgent(timeoutSessionDO.getUserAgent());  
91 - reqDTO.setUserIp(timeoutSessionDO.getUserIp());  
92 - reqDTO.setResult(SysLoginResultEnum.SUCCESS.getResult());  
93 - loginLogCoreService.createLoginLog(reqDTO);  
94 - }  
95 - }  
96 -  
97 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/common/SysCaptchaService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.common;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.common.vo.SysCaptchaImageRespVO;  
4 -  
5 -/**  
6 - * 验证码 Service 接口  
7 - */  
8 -public interface SysCaptchaService {  
9 -  
10 - /**  
11 - * 获得验证码图片  
12 - *  
13 - * @return 验证码图片  
14 - */  
15 - SysCaptchaImageRespVO getCaptchaImage();  
16 -  
17 - /**  
18 - * 是否开启图片验证码  
19 - *  
20 - * @return 是否  
21 - */  
22 - Boolean isCaptchaEnable();  
23 -  
24 - /**  
25 - * 获得 uuid 对应的验证码  
26 - *  
27 - * @param uuid 验证码编号  
28 - * @return 验证码  
29 - */  
30 - String getCaptchaCode(String uuid);  
31 -  
32 - /**  
33 - * 删除 uuid 对应的验证码  
34 - *  
35 - * @param uuid 验证码编号  
36 - */  
37 - void deleteCaptchaCode(String uuid);  
38 -  
39 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/common/impl/SysCaptchaServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.common.impl;  
2 -  
3 -import cn.hutool.captcha.CaptchaUtil;  
4 -import cn.hutool.captcha.CircleCaptcha;  
5 -import cn.hutool.core.util.IdUtil;  
6 -import cn.iocoder.yudao.adminserver.modules.system.framework.captcha.config.CaptchaProperties;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.common.vo.SysCaptchaImageRespVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.convert.common.SysCaptchaConvert;  
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.redis.common.SysCaptchaRedisDAO;  
10 -import cn.iocoder.yudao.adminserver.modules.system.service.common.SysCaptchaService;  
11 -import org.springframework.stereotype.Service;  
12 -  
13 -import javax.annotation.Resource;  
14 -  
15 -/**  
16 - * 验证码 Service 实现类  
17 - */  
18 -@Service  
19 -public class SysCaptchaServiceImpl implements SysCaptchaService {  
20 -  
21 - @Resource  
22 - private CaptchaProperties captchaProperties;  
23 -  
24 - @Resource  
25 - private SysCaptchaRedisDAO captchaRedisDAO;  
26 -  
27 - @Override  
28 - public SysCaptchaImageRespVO getCaptchaImage() {  
29 - // 生成验证码  
30 - CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(captchaProperties.getWidth(), captchaProperties.getHeight());  
31 - // 缓存到 Redis 中  
32 - String uuid = IdUtil.fastSimpleUUID();  
33 - captchaRedisDAO.set(uuid, captcha.getCode(), captchaProperties.getTimeout());  
34 - // 返回  
35 - return SysCaptchaConvert.INSTANCE.convert(uuid, captcha);  
36 - }  
37 -  
38 - @Override  
39 - public Boolean isCaptchaEnable() {  
40 - return captchaProperties.getEnable();  
41 - }  
42 -  
43 - @Override  
44 - public String getCaptchaCode(String uuid) {  
45 - return captchaRedisDAO.get(uuid);  
46 - }  
47 -  
48 - @Override  
49 - public void deleteCaptchaCode(String uuid) {  
50 - captchaRedisDAO.delete(uuid);  
51 - }  
52 -  
53 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/SysDeptService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.dept;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptCreateReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptUpdateReqVO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
8 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
9 -  
10 -import java.util.Collection;  
11 -import java.util.Collections;  
12 -import java.util.List;  
13 -import java.util.Map;  
14 -  
15 -/**  
16 - * 部门 Service 接口  
17 - *  
18 - * @author 芋道源码  
19 - */  
20 -public interface SysDeptService {  
21 -  
22 - /**  
23 - * 初始化部门的本地缓存  
24 - */  
25 - void initLocalCache();  
26 -  
27 - /**  
28 - * 创建部门  
29 - *  
30 - * @param reqVO 部门信息  
31 - * @return 部门编号  
32 - */  
33 - Long createDept(SysDeptCreateReqVO reqVO);  
34 -  
35 - /**  
36 - * 更新部门  
37 - *  
38 - * @param reqVO 部门信息  
39 - */  
40 - void updateDept(SysDeptUpdateReqVO reqVO);  
41 -  
42 - /**  
43 - * 删除部门  
44 - *  
45 - * @param id 部门编号  
46 - */  
47 - void deleteDept(Long id);  
48 -  
49 -  
50 - /**  
51 - * 筛选部门列表  
52 - *  
53 - * @param reqVO 筛选条件请求 VO  
54 - * @return 部门列表  
55 - */  
56 - List<SysDeptDO> getSimpleDepts(SysDeptListReqVO reqVO);  
57 -  
58 - /**  
59 - * 获得所有子部门,从缓存中  
60 - *  
61 - * @param parentId 部门编号  
62 - * @param recursive 是否递归获取所有  
63 - * @return 子部门列表  
64 - */  
65 - List<SysDeptDO> getDeptsByParentIdFromCache(Long parentId, boolean recursive);  
66 -  
67 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/SysPostService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.dept;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostCreateReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostExportReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostPageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostUpdateReqVO;  
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;  
10 -import org.springframework.lang.Nullable;  
11 -  
12 -import java.util.Collection;  
13 -import java.util.List;  
14 -  
15 -import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;  
16 -  
17 -/**  
18 - * 岗位 Service 接口  
19 - *  
20 - * @author 芋道源码  
21 - */  
22 -public interface SysPostService {  
23 -  
24 - /**  
25 - * 创建岗位  
26 - *  
27 - * @param reqVO 岗位信息  
28 - * @return 岗位编号  
29 - */  
30 - Long createPost(SysPostCreateReqVO reqVO);  
31 -  
32 - /**  
33 - * 更新岗位  
34 - *  
35 - * @param reqVO 岗位信息  
36 - */  
37 - void updatePost(SysPostUpdateReqVO reqVO);  
38 -  
39 - /**  
40 - * 删除岗位信息  
41 - *  
42 - * @param id 岗位编号  
43 - */  
44 - void deletePost(Long id);  
45 -  
46 - /**  
47 - * 获得岗位列表  
48 - *  
49 - * @param ids 岗位编号数组。如果为空,不进行筛选  
50 - * @return 部门列表  
51 - */  
52 - default List<SysPostDO> getPosts(@Nullable Collection<Long> ids) {  
53 - return getPosts(ids, asSet(CommonStatusEnum.ENABLE.getStatus(), CommonStatusEnum.DISABLE.getStatus()));  
54 - }  
55 -  
56 - /**  
57 - * 获得符合条件的岗位列表  
58 - *  
59 - * @param ids 岗位编号数组。如果为空,不进行筛选  
60 - * @param statuses 状态数组。如果为空,不进行筛选  
61 - * @return 部门列表  
62 - */  
63 - List<SysPostDO> getPosts(@Nullable Collection<Long> ids, @Nullable Collection<Integer> statuses);  
64 -  
65 - /**  
66 - * 获得岗位分页列表  
67 - *  
68 - * @param reqVO 分页条件  
69 - * @return 部门分页列表  
70 - */  
71 - PageResult<SysPostDO> getPostPage(SysPostPageReqVO reqVO);  
72 -  
73 - /**  
74 - * 获得岗位列表  
75 - *  
76 - * @param reqVO 查询条件  
77 - * @return 部门列表  
78 - */  
79 - List<SysPostDO> getPosts(SysPostExportReqVO reqVO);  
80 -  
81 - /**  
82 - * 获得岗位信息  
83 - *  
84 - * @param id 岗位编号  
85 - * @return 岗位信息  
86 - */  
87 - SysPostDO getPost(Long id);  
88 -  
89 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/impl/SysPostServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.dept.impl;  
2 -  
3 -import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostCreateReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostExportReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostPageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.post.SysPostUpdateReqVO;  
9 -import cn.iocoder.yudao.adminserver.modules.system.convert.dept.SysPostConvert;  
10 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept.SysPostMapper;  
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;  
12 -import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService;  
13 -import org.springframework.stereotype.Service;  
14 -import org.springframework.validation.annotation.Validated;  
15 -  
16 -import javax.annotation.Resource;  
17 -import java.util.Collection;  
18 -import java.util.List;  
19 -  
20 -import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;  
21 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
22 -  
23 -/**  
24 - * 岗位 Service 实现类  
25 - *  
26 - * @author 芋道源码  
27 - */  
28 -@Service  
29 -@Validated  
30 -public class SysPostServiceImpl implements SysPostService {  
31 -  
32 - @Resource  
33 - private SysPostMapper postMapper;  
34 -  
35 - @Override  
36 - public Long createPost(SysPostCreateReqVO reqVO) {  
37 - // 校验正确性  
38 - this.checkCreateOrUpdate(null, reqVO.getName(), reqVO.getCode());  
39 - // 插入岗位  
40 - SysPostDO post = SysPostConvert.INSTANCE.convert(reqVO);  
41 - postMapper.insert(post);  
42 - return post.getId();  
43 - }  
44 -  
45 - @Override  
46 - public void updatePost(SysPostUpdateReqVO reqVO) {  
47 - // 校验正确性  
48 - this.checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), reqVO.getCode());  
49 - // 更新岗位  
50 - SysPostDO updateObj = SysPostConvert.INSTANCE.convert(reqVO);  
51 - postMapper.updateById(updateObj);  
52 - }  
53 -  
54 - @Override  
55 - public void deletePost(Long id) {  
56 - // 校验是否存在  
57 - this.checkPostExists(id);  
58 - // 删除部门  
59 - postMapper.deleteById(id);  
60 - }  
61 -  
62 - @Override  
63 - public List<SysPostDO> getPosts(Collection<Long> ids, Collection<Integer> statuses) {  
64 - return postMapper.selectList(ids, statuses);  
65 - }  
66 -  
67 - @Override  
68 - public PageResult<SysPostDO> getPostPage(SysPostPageReqVO reqVO) {  
69 - return postMapper.selectPage(reqVO);  
70 - }  
71 -  
72 - @Override  
73 - public List<SysPostDO> getPosts(SysPostExportReqVO reqVO) {  
74 - return postMapper.selectList(reqVO);  
75 - }  
76 -  
77 - @Override  
78 - public SysPostDO getPost(Long id) {  
79 - return postMapper.selectById(id);  
80 - }  
81 -  
82 - private void checkCreateOrUpdate(Long id, String name, String code) {  
83 - // 校验自己存在  
84 - checkPostExists(id);  
85 - // 校验岗位名的唯一性  
86 - checkPostNameUnique(id, name);  
87 - // 校验岗位编码的唯一性  
88 - checkPostCodeUnique(id, code);  
89 - }  
90 -  
91 - private void checkPostNameUnique(Long id, String name) {  
92 - SysPostDO post = postMapper.selectByName(name);  
93 - if (post == null) {  
94 - return;  
95 - }  
96 - // 如果 id 为空,说明不用比较是否为相同 id 的岗位  
97 - if (id == null) {  
98 - throw ServiceExceptionUtil.exception(POST_NAME_DUPLICATE);  
99 - }  
100 - if (!post.getId().equals(id)) {  
101 - throw ServiceExceptionUtil.exception(POST_NAME_DUPLICATE);  
102 - }  
103 - }  
104 -  
105 - private void checkPostCodeUnique(Long id, String code) {  
106 - SysPostDO post = postMapper.selectByCode(code);  
107 - if (post == null) {  
108 - return;  
109 - }  
110 - // 如果 id 为空,说明不用比较是否为相同 id 的岗位  
111 - if (id == null) {  
112 - throw ServiceExceptionUtil.exception(POST_CODE_DUPLICATE);  
113 - }  
114 - if (!post.getId().equals(id)) {  
115 - throw ServiceExceptionUtil.exception(POST_CODE_DUPLICATE);  
116 - }  
117 - }  
118 -  
119 - private void checkPostExists(Long id) {  
120 - if (id == null) {  
121 - return;  
122 - }  
123 - SysPostDO post = postMapper.selectById(id);  
124 - if (post == null) {  
125 - throw ServiceExceptionUtil.exception(POST_NOT_FOUND);  
126 - }  
127 - }  
128 -  
129 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dict/SysDictDataService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.dict;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.dict.core.service.DictDataFrameworkService;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;  
9 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataUpdateReqVO;  
10 -  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 字典数据 Service 接口  
16 - *  
17 - * @author ruoyi  
18 - */  
19 -public interface SysDictDataService {  
20 -  
21 - /**  
22 - * 创建字典数据  
23 - *  
24 - * @param reqVO 字典数据信息  
25 - * @return 字典数据编号  
26 - */  
27 - Long createDictData(SysDictDataCreateReqVO reqVO);  
28 -  
29 - /**  
30 - * 更新字典数据  
31 - *  
32 - * @param reqVO 字典数据信息  
33 - */  
34 - void updateDictData(SysDictDataUpdateReqVO reqVO);  
35 -  
36 - /**  
37 - * 删除字典数据  
38 - *  
39 - * @param id 字典数据编号  
40 - */  
41 - void deleteDictData(Long id);  
42 -  
43 - /**  
44 - * 获得字典数据列表  
45 - *  
46 - * @return 字典数据全列表  
47 - */  
48 - List<SysDictDataDO> getDictDatas();  
49 -  
50 - /**  
51 - * 获得字典数据分页列表  
52 - *  
53 - * @param reqVO 分页请求  
54 - * @return 字典数据分页列表  
55 - */  
56 - PageResult<SysDictDataDO> getDictDataPage(SysDictDataPageReqVO reqVO);  
57 -  
58 - /**  
59 - * 获得字典数据列表  
60 - *  
61 - * @param reqVO 列表请求  
62 - * @return 字典数据列表  
63 - */  
64 - List<SysDictDataDO> getDictDatas(SysDictDataExportReqVO reqVO);  
65 -  
66 - /**  
67 - * 获得字典数据详情  
68 - *  
69 - * @param id 字典数据编号  
70 - * @return 字典数据  
71 - */  
72 - SysDictDataDO getDictData(Long id);  
73 -  
74 - /**  
75 - * 获得指定字典类型的数据数量  
76 - *  
77 - * @param dictType 字典类型  
78 - * @return 数据数量  
79 - */  
80 - int countByDictType(String dictType);  
81 -  
82 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dict/SysDictTypeService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.dict;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeCreateReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeExportReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypePageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeUpdateReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictTypeDO;  
9 -  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 字典类型 Service 接口  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -public interface SysDictTypeService {  
18 -  
19 - /**  
20 - * 创建字典类型  
21 - *  
22 - * @param reqVO 字典类型信息  
23 - * @return 字典类型编号  
24 - */  
25 - Long createDictType(SysDictTypeCreateReqVO reqVO);  
26 -  
27 - /**  
28 - * 更新字典类型  
29 - *  
30 - * @param reqVO 字典类型信息  
31 - */  
32 - void updateDictType(SysDictTypeUpdateReqVO reqVO);  
33 -  
34 - /**  
35 - * 删除字典类型  
36 - *  
37 - * @param id 字典类型编号  
38 - */  
39 - void deleteDictType(Long id);  
40 -  
41 - /**  
42 - * 获得字典类型分页列表  
43 - *  
44 - * @param reqVO 分页请求  
45 - * @return 字典类型分页列表  
46 - */  
47 - PageResult<SysDictTypeDO> getDictTypePage(SysDictTypePageReqVO reqVO);  
48 -  
49 - /**  
50 - * 获得字典类型列表  
51 - *  
52 - * @param reqVO 列表请求  
53 - * @return 字典类型列表  
54 - */  
55 - List<SysDictTypeDO> getDictTypeList(SysDictTypeExportReqVO reqVO);  
56 -  
57 - /**  
58 - * 获得字典类型详情  
59 - *  
60 - * @param id 字典类型编号  
61 - * @return 字典类型  
62 - */  
63 - SysDictTypeDO getDictType(Long id);  
64 -  
65 - /**  
66 - * 获得字典类型详情  
67 - *  
68 - * @param type 字典类型  
69 - * @return 字典类型详情  
70 - */  
71 - SysDictTypeDO getDictType(String type);  
72 -  
73 - /**  
74 - * 获得全部字典类型列表  
75 - *  
76 - * @return 字典类型列表  
77 - */  
78 - List<SysDictTypeDO> getDictTypeList();  
79 -  
80 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dict/impl/SysDictTypeServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.dict.impl;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeCreateReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeExportReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypePageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeUpdateReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.convert.dict.SysDictTypeConvert;  
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictTypeDO;  
10 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict.SysDictTypeMapper;  
11 -import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;  
12 -import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictTypeService;  
13 -import com.google.common.annotations.VisibleForTesting;  
14 -import org.springframework.stereotype.Service;  
15 -  
16 -import javax.annotation.Resource;  
17 -import java.util.List;  
18 -  
19 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
20 -import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;  
21 -  
22 -/**  
23 - * 字典类型 Service 实现类  
24 - *  
25 - * @author 芋道源码  
26 - */  
27 -@Service  
28 -public class SysDictTypeServiceImpl implements SysDictTypeService {  
29 -  
30 - @Resource  
31 - private SysDictDataService dictDataService;  
32 -  
33 - @Resource  
34 - private SysDictTypeMapper dictTypeMapper;  
35 -  
36 - @Override  
37 - public PageResult<SysDictTypeDO> getDictTypePage(SysDictTypePageReqVO reqVO) {  
38 - return dictTypeMapper.selectPage(reqVO);  
39 - }  
40 -  
41 - @Override  
42 - public List<SysDictTypeDO> getDictTypeList(SysDictTypeExportReqVO reqVO) {  
43 - return dictTypeMapper.selectList(reqVO);  
44 - }  
45 -  
46 - @Override  
47 - public SysDictTypeDO getDictType(Long id) {  
48 - return dictTypeMapper.selectById(id);  
49 - }  
50 -  
51 - @Override  
52 - public SysDictTypeDO getDictType(String type) {  
53 - return dictTypeMapper.selectByType(type);  
54 - }  
55 -  
56 - @Override  
57 - public Long createDictType(SysDictTypeCreateReqVO reqVO) {  
58 - // 校验正确性  
59 - this.checkCreateOrUpdate(null, reqVO.getName(), reqVO.getType());  
60 - // 插入字典类型  
61 - SysDictTypeDO dictType = SysDictTypeConvert.INSTANCE.convert(reqVO);  
62 - dictTypeMapper.insert(dictType);  
63 - return dictType.getId();  
64 - }  
65 -  
66 - @Override  
67 - public void updateDictType(SysDictTypeUpdateReqVO reqVO) {  
68 - // 校验正确性  
69 - this.checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), null);  
70 - // 更新字典类型  
71 - SysDictTypeDO updateObj = SysDictTypeConvert.INSTANCE.convert(reqVO);  
72 - dictTypeMapper.updateById(updateObj);  
73 - }  
74 -  
75 - @Override  
76 - public void deleteDictType(Long id) {  
77 - // 校验是否存在  
78 - SysDictTypeDO dictType = this.checkDictTypeExists(id);  
79 - // 校验是否有字典数据  
80 - if (dictDataService.countByDictType(dictType.getType()) > 0) {  
81 - throw exception(DICT_TYPE_HAS_CHILDREN);  
82 - }  
83 - // 删除字典类型  
84 - dictTypeMapper.deleteById(id);  
85 - }  
86 -  
87 - @Override  
88 - public List<SysDictTypeDO> getDictTypeList() {  
89 - return dictTypeMapper.selectList();  
90 - }  
91 -  
92 - private void checkCreateOrUpdate(Long id, String name, String type) {  
93 - // 校验自己存在  
94 - checkDictTypeExists(id);  
95 - // 校验字典类型的名字的唯一性  
96 - checkDictTypeNameUnique(id, name);  
97 - // 校验字典类型的类型的唯一性  
98 - checkDictTypeUnique(id, type);  
99 - }  
100 -  
101 - @VisibleForTesting  
102 - public void checkDictTypeNameUnique(Long id, String name) {  
103 - SysDictTypeDO dictType = dictTypeMapper.selectByName(name);  
104 - if (dictType == null) {  
105 - return;  
106 - }  
107 - // 如果 id 为空,说明不用比较是否为相同 id 的字典类型  
108 - if (id == null) {  
109 - throw exception(DICT_TYPE_NAME_DUPLICATE);  
110 - }  
111 - if (!dictType.getId().equals(id)) {  
112 - throw exception(DICT_TYPE_NAME_DUPLICATE);  
113 - }  
114 - }  
115 -  
116 - @VisibleForTesting  
117 - public void checkDictTypeUnique(Long id, String type) {  
118 - SysDictTypeDO dictType = dictTypeMapper.selectByType(type);  
119 - if (dictType == null) {  
120 - return;  
121 - }  
122 - // 如果 id 为空,说明不用比较是否为相同 id 的字典类型  
123 - if (id == null) {  
124 - throw exception(DICT_TYPE_TYPE_DUPLICATE);  
125 - }  
126 - if (!dictType.getId().equals(id)) {  
127 - throw exception(DICT_TYPE_TYPE_DUPLICATE);  
128 - }  
129 - }  
130 -  
131 - @VisibleForTesting  
132 - public SysDictTypeDO checkDictTypeExists(Long id) {  
133 - if (id == null) {  
134 - return null;  
135 - }  
136 - SysDictTypeDO dictType = dictTypeMapper.selectById(id);  
137 - if (dictType == null) {  
138 - throw exception(DICT_TYPE_NOT_EXISTS);  
139 - }  
140 - return dictType;  
141 - }  
142 -  
143 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/errorcode/SysErrorCodeService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.errorcode;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.service.ErrorCodeFrameworkService;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.errorcode.vo.SysErrorCodeCreateReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.errorcode.vo.SysErrorCodeExportReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.errorcode.vo.SysErrorCodePageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.controller.errorcode.vo.SysErrorCodeUpdateReqVO;  
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.errorcode.SysErrorCodeDO;  
10 -  
11 -import javax.validation.Valid;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 错误码 Service 接口  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -public interface SysErrorCodeService extends ErrorCodeFrameworkService {  
20 -  
21 - /**  
22 - * 创建错误码  
23 - *  
24 - * @param createReqVO 创建信息  
25 - * @return 编号  
26 - */  
27 - Long createErrorCode(@Valid SysErrorCodeCreateReqVO createReqVO);  
28 -  
29 - /**  
30 - * 更新错误码  
31 - *  
32 - * @param updateReqVO 更新信息  
33 - */  
34 - void updateErrorCode(@Valid SysErrorCodeUpdateReqVO updateReqVO);  
35 -  
36 - /**  
37 - * 删除错误码  
38 - *  
39 - * @param id 编号  
40 - */  
41 - void deleteErrorCode(Long id);  
42 -  
43 - /**  
44 - * 获得错误码  
45 - *  
46 - * @param id 编号  
47 - * @return 错误码  
48 - */  
49 - SysErrorCodeDO getErrorCode(Long id);  
50 -  
51 - /**  
52 - * 获得错误码分页  
53 - *  
54 - * @param pageReqVO 分页查询  
55 - * @return 错误码分页  
56 - */  
57 - PageResult<SysErrorCodeDO> getErrorCodePage(SysErrorCodePageReqVO pageReqVO);  
58 -  
59 - /**  
60 - * 获得错误码列表, 用于 Excel 导出  
61 - *  
62 - * @param exportReqVO 查询条件  
63 - * @return 错误码列表  
64 - */  
65 - List<SysErrorCodeDO> getErrorCodeList(SysErrorCodeExportReqVO exportReqVO);  
66 -  
67 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/SysLoginLogService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.logger;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -  
8 -import java.util.List;  
9 -  
10 -/**  
11 - * 登录日志 Service 接口  
12 - */  
13 -public interface SysLoginLogService {  
14 -  
15 - /**  
16 - * 获得登录日志分页  
17 - *  
18 - * @param reqVO 分页条件  
19 - * @return 登录日志分页  
20 - */  
21 - PageResult<SysLoginLogDO> getLoginLogPage(SysLoginLogPageReqVO reqVO);  
22 -  
23 - /**  
24 - * 获得登录日志列表  
25 - *  
26 - * @param reqVO 列表条件  
27 - * @return 登录日志列表  
28 - */  
29 - List<SysLoginLogDO> getLoginLogList(SysLoginLogExportReqVO reqVO);  
30 -  
31 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/SysOperateLogService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.logger;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.operatelog.core.service.OperateLogFrameworkService;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO;  
8 -  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * 操作日志 Service 接口  
13 - */  
14 -public interface SysOperateLogService extends OperateLogFrameworkService {  
15 -  
16 - /**  
17 - * 获得操作日志分页列表  
18 - *  
19 - * @param reqVO 分页条件  
20 - * @return 操作日志分页列表  
21 - */  
22 - PageResult<SysOperateLogDO> getOperateLogPage(SysOperateLogPageReqVO reqVO);  
23 -  
24 - /**  
25 - * 获得操作日志列表  
26 - *  
27 - * @param reqVO 列表条件  
28 - * @return 日志列表  
29 - */  
30 - List<SysOperateLogDO> getOperateLogs(SysOperateLogExportReqVO reqVO);  
31 -  
32 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/impl/SysLoginLogServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.logger.impl;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysLoginLogMapper;  
6 -import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysLoginLogService;  
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
9 -import org.springframework.stereotype.Service;  
10 -  
11 -import javax.annotation.Resource;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 登录日志 Service 实现  
16 - */  
17 -@Service  
18 -public class SysLoginLogServiceImpl implements SysLoginLogService {  
19 -  
20 - @Resource  
21 - private SysLoginLogMapper loginLogMapper;  
22 -  
23 - @Override  
24 - public PageResult<SysLoginLogDO> getLoginLogPage(SysLoginLogPageReqVO reqVO) {  
25 - return loginLogMapper.selectPage(reqVO);  
26 - }  
27 -  
28 - @Override  
29 - public List<SysLoginLogDO> getLoginLogList(SysLoginLogExportReqVO reqVO) {  
30 - return loginLogMapper.selectList(reqVO);  
31 - }  
32 -  
33 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/impl/SysOperateLogServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.logger.impl;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.util.StrUtil;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.convert.logger.SysOperateLogConvert;  
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO;  
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysOperateLogMapper;  
10 -import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysOperateLogService;  
11 -import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;  
12 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
13 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
14 -import cn.iocoder.yudao.framework.common.util.string.StrUtils;  
15 -import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;  
16 -import lombok.extern.slf4j.Slf4j;  
17 -import org.springframework.scheduling.annotation.Async;  
18 -import org.springframework.scheduling.annotation.AsyncResult;  
19 -import org.springframework.stereotype.Service;  
20 -  
21 -import javax.annotation.Resource;  
22 -import java.util.Collection;  
23 -import java.util.Collections;  
24 -import java.util.List;  
25 -import java.util.concurrent.Future;  
26 -  
27 -import static cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO.JAVA_METHOD_ARGS_MAX_LENGTH;  
28 -import static cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO.RESULT_MAX_LENGTH;  
29 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;  
30 -  
31 -@Service  
32 -@Slf4j  
33 -public class SysOperateLogServiceImpl implements SysOperateLogService {  
34 -  
35 - @Resource  
36 - private SysOperateLogMapper operateLogMapper;  
37 -  
38 - @Resource  
39 - private SysUserService userService;  
40 -  
41 - @Override  
42 - @Async  
43 - public Future<Boolean> createOperateLogAsync(OperateLogCreateReqDTO reqVO) {  
44 - boolean success = false;  
45 - try {  
46 - SysOperateLogDO logDO = SysOperateLogConvert.INSTANCE.convert(reqVO);  
47 - logDO.setJavaMethodArgs(StrUtils.maxLength(logDO.getJavaMethodArgs(), JAVA_METHOD_ARGS_MAX_LENGTH));  
48 - logDO.setResultData(StrUtils.maxLength(logDO.getResultData(), RESULT_MAX_LENGTH));  
49 - success = operateLogMapper.insert(logDO) == 1;  
50 - } catch (Throwable throwable) {  
51 - // 仅仅打印日志,不对外抛出。原因是,还是要保留现场数据。  
52 - log.error("[createOperateLogAsync][记录操作日志异常,日志为 ({})]", reqVO, throwable);  
53 - }  
54 - return new AsyncResult<>(success);  
55 - }  
56 -  
57 - @Override  
58 - public PageResult<SysOperateLogDO> getOperateLogPage(SysOperateLogPageReqVO reqVO) {  
59 - // 处理基于用户昵称的查询  
60 - Collection<Long> userIds = null;  
61 - if (StrUtil.isNotEmpty(reqVO.getUserNickname())) {  
62 - userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), SysUserDO::getId);  
63 - if (CollUtil.isEmpty(userIds)) {  
64 - return PageResult.empty();  
65 - }  
66 - }  
67 - // 查询分页  
68 - return operateLogMapper.selectPage(reqVO, userIds);  
69 - }  
70 -  
71 - @Override  
72 - public List<SysOperateLogDO> getOperateLogs(SysOperateLogExportReqVO reqVO) {  
73 - // 处理基于用户昵称的查询  
74 - Collection<Long> userIds = null;  
75 - if (StrUtil.isNotEmpty(reqVO.getUserNickname())) {  
76 - userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), SysUserDO::getId);  
77 - if (CollUtil.isEmpty(userIds)) {  
78 - return Collections.emptyList();  
79 - }  
80 - }  
81 - // 查询列表  
82 - return operateLogMapper.selectList(reqVO, userIds);  
83 - }  
84 -  
85 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/notice/SysNoticeService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.notice;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticeCreateReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticePageReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticeUpdateReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.notice.SysNoticeDO;  
8 -  
9 -/**  
10 - * 通知公告 Service 接口  
11 - */  
12 -public interface SysNoticeService {  
13 -  
14 - /**  
15 - * 创建岗位公告公告  
16 - *  
17 - * @param reqVO 岗位公告公告信息  
18 - * @return 岗位公告公告编号  
19 - */  
20 - Long createNotice(SysNoticeCreateReqVO reqVO);  
21 -  
22 - /**  
23 - * 更新岗位公告公告  
24 - *  
25 - * @param reqVO 岗位公告公告信息  
26 - */  
27 - void updateNotice(SysNoticeUpdateReqVO reqVO);  
28 -  
29 - /**  
30 - * 删除岗位公告公告信息  
31 - *  
32 - * @param id 岗位公告公告编号  
33 - */  
34 - void deleteNotice(Long id);  
35 -  
36 - /**  
37 - * 获得岗位公告公告分页列表  
38 - *  
39 - * @param reqVO 分页条件  
40 - * @return 部门分页列表  
41 - */  
42 - PageResult<SysNoticeDO> pageNotices(SysNoticePageReqVO reqVO);  
43 -  
44 - /**  
45 - * 获得岗位公告公告信息  
46 - *  
47 - * @param id 岗位公告公告编号  
48 - * @return 岗位公告公告信息  
49 - */  
50 - SysNoticeDO getNotice(Long id);  
51 -  
52 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/notice/impl/SysNoticeServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.notice.impl;  
2 -  
3 -import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticeCreateReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticePageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticeUpdateReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.convert.notice.SysNoticeConvert;  
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.notice.SysNoticeMapper;  
10 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.notice.SysNoticeDO;  
11 -import cn.iocoder.yudao.adminserver.modules.system.service.notice.SysNoticeService;  
12 -import com.google.common.annotations.VisibleForTesting;  
13 -import org.springframework.stereotype.Service;  
14 -  
15 -import javax.annotation.Resource;  
16 -  
17 -import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.NOTICE_NOT_FOUND;  
18 -  
19 -/**  
20 - * 通知公告 Service 实现类  
21 - *  
22 - * @author 芋道源码  
23 - */  
24 -@Service  
25 -public class SysNoticeServiceImpl implements SysNoticeService {  
26 -  
27 - @Resource  
28 - private SysNoticeMapper noticeMapper;  
29 -  
30 - @Override  
31 - public Long createNotice(SysNoticeCreateReqVO reqVO) {  
32 - SysNoticeDO notice = SysNoticeConvert.INSTANCE.convert(reqVO);  
33 - noticeMapper.insert(notice);  
34 - return notice.getId();  
35 - }  
36 -  
37 - @Override  
38 - public void updateNotice(SysNoticeUpdateReqVO reqVO) {  
39 - // 校验是否存在  
40 - this.checkNoticeExists(reqVO.getId());  
41 - // 更新通知公告  
42 - SysNoticeDO updateObj = SysNoticeConvert.INSTANCE.convert(reqVO);  
43 - noticeMapper.updateById(updateObj);  
44 - }  
45 -  
46 - @Override  
47 - public void deleteNotice(Long id) {  
48 - // 校验是否存在  
49 - this.checkNoticeExists(id);  
50 - // 删除通知公告  
51 - noticeMapper.deleteById(id);  
52 - }  
53 -  
54 - @Override  
55 - public PageResult<SysNoticeDO> pageNotices(SysNoticePageReqVO reqVO) {  
56 - return noticeMapper.selectPage(reqVO);  
57 - }  
58 -  
59 - @Override  
60 - public SysNoticeDO getNotice(Long id) {  
61 - return noticeMapper.selectById(id);  
62 - }  
63 -  
64 - @VisibleForTesting  
65 - public void checkNoticeExists(Long id) {  
66 - if (id == null) {  
67 - return;  
68 - }  
69 - SysNoticeDO notice = noticeMapper.selectById(id);  
70 - if (notice == null) {  
71 - throw ServiceExceptionUtil.exception(NOTICE_NOT_FOUND);  
72 - }  
73 - }  
74 -  
75 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/SysMenuService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.permission;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.menu.SysMenuCreateReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.menu.SysMenuListReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.menu.SysMenuUpdateReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;  
7 -  
8 -import java.util.Collection;  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * 菜单 Service 接口  
13 - *  
14 - * @author 芋道源码  
15 - */  
16 -public interface SysMenuService {  
17 -  
18 - /**  
19 - * 初始化菜单的本地缓存  
20 - */  
21 - void initLocalCache();  
22 -  
23 - /**  
24 - * 创建菜单  
25 - *  
26 - * @param reqVO 菜单信息  
27 - * @return 创建出来的菜单编号  
28 - */  
29 - Long createMenu(SysMenuCreateReqVO reqVO);  
30 -  
31 - /**  
32 - * 更新菜单  
33 - *  
34 - * @param reqVO 菜单信息  
35 - */  
36 - void updateMenu(SysMenuUpdateReqVO reqVO);  
37 -  
38 - /**  
39 - * 删除菜单  
40 - *  
41 - * @param id 菜单编号  
42 - */  
43 - void deleteMenu(Long id);  
44 -  
45 - /**  
46 - * 获得所有菜单列表  
47 - *  
48 - * @return 菜单列表  
49 - */  
50 - List<SysMenuDO> getMenus();  
51 -  
52 - /**  
53 - * 筛选菜单列表  
54 - *  
55 - * @param reqVO 筛选条件请求 VO  
56 - * @return 菜单列表  
57 - */  
58 - List<SysMenuDO> getMenus(SysMenuListReqVO reqVO);  
59 -  
60 - /**  
61 - * 获得所有菜单,从缓存中  
62 - *  
63 - * 任一参数为空时,则返回为空  
64 - *  
65 - * @param menuTypes 菜单类型数组  
66 - * @param menusStatuses 菜单状态数组  
67 - * @return 菜单列表  
68 - */  
69 - List<SysMenuDO> listMenusFromCache(Collection<Integer> menuTypes, Collection<Integer> menusStatuses);  
70 -  
71 - /**  
72 - * 获得指定编号的菜单数组,从缓存中  
73 - *  
74 - * 任一参数为空时,则返回为空  
75 - *  
76 - * @param menuIds 菜单编号数组  
77 - * @param menuTypes 菜单类型数组  
78 - * @param menusStatuses 菜单状态数组  
79 - * @return 菜单数组  
80 - */  
81 - List<SysMenuDO> listMenusFromCache(Collection<Long> menuIds, Collection<Integer> menuTypes,  
82 - Collection<Integer> menusStatuses);  
83 -  
84 - /**  
85 - * 获得权限对应的菜单数组  
86 - *  
87 - * @param permission 权限标识  
88 - * @return 数组  
89 - */  
90 - List<SysMenuDO> getMenuListByPermissionFromCache(String permission);  
91 -  
92 - /**  
93 - * 获得菜单  
94 - *  
95 - * @param id 菜单编号  
96 - * @return 菜单  
97 - */  
98 - SysMenuDO getMenu(Long id);  
99 -  
100 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/SysPermissionService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.permission;  
2 -  
3 -import cn.iocoder.yudao.framework.datapermission.core.dept.service.DeptDataPermissionFrameworkService;  
4 -import cn.iocoder.yudao.framework.security.core.service.SecurityPermissionFrameworkService;  
5 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;  
6 -import org.springframework.lang.Nullable;  
7 -  
8 -import java.util.Collection;  
9 -import java.util.List;  
10 -import java.util.Set;  
11 -  
12 -/**  
13 - * 权限 Service 接口  
14 - *  
15 - * 提供用户-角色、角色-菜单、角色-部门的关联权限处理  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -public interface SysPermissionService extends SecurityPermissionFrameworkService, DeptDataPermissionFrameworkService {  
20 -  
21 - /**  
22 - * 初始化权限的本地缓存  
23 - */  
24 - void initLocalCache();  
25 -  
26 - /**  
27 - * 获得角色们拥有的菜单列表,从缓存中获取  
28 - *  
29 - * 任一参数为空时,则返回为空  
30 - *  
31 - * @param roleIds 角色编号数组  
32 - * @param menuTypes 菜单类型数组  
33 - * @param menusStatuses 菜单状态数组  
34 - * @return 菜单列表  
35 - */  
36 - List<SysMenuDO> getRoleMenusFromCache(Collection<Long> roleIds, Collection<Integer> menuTypes,  
37 - Collection<Integer> menusStatuses);  
38 -  
39 - /**  
40 - * 获得用户拥有的角色编号集合  
41 - *  
42 - * @param userId 用户编号  
43 - * @param roleStatuses 角色状态集合. 允许为空,为空时不过滤  
44 - * @return 角色编号集合  
45 - */  
46 - Set<Long> getUserRoleIds(Long userId, @Nullable Collection<Integer> roleStatuses);  
47 -  
48 - /**  
49 - * 获得角色拥有的菜单编号集合  
50 - *  
51 - * @param roleId 角色编号  
52 - * @return 菜单编号集合  
53 - */  
54 - Set<Long> listRoleMenuIds(Long roleId);  
55 -  
56 - /**  
57 - * 设置角色菜单  
58 - *  
59 - * @param roleId 角色编号  
60 - * @param menuIds 菜单编号集合  
61 - */  
62 - void assignRoleMenu(Long roleId, Set<Long> menuIds);  
63 -  
64 - /**  
65 - * 获得用户拥有的角色编号集合  
66 - *  
67 - * @param userId 用户编号  
68 - * @return 角色编号集合  
69 - */  
70 - Set<Long> getUserRoleIdListByUserId(Long userId);  
71 -  
72 - /**  
73 - * 获得拥有某个角色的用户编号集合  
74 - *  
75 - * @param roleId 角色编号  
76 - * @return 用户编号集合  
77 - */  
78 - Set<Long> getUserRoleIdListByRoleId(Long roleId);  
79 -  
80 - /**  
81 - * 设置用户角色  
82 - *  
83 - * @param userId 角色编号  
84 - * @param roleIds 角色编号集合  
85 - */  
86 - void assignUserRole(Long userId, Set<Long> roleIds);  
87 -  
88 - /**  
89 - * 设置角色的数据权限  
90 - *  
91 - * @param roleId 角色编号  
92 - * @param dataScope 数据范围  
93 - * @param dataScopeDeptIds 部门编号数组  
94 - */  
95 - void assignRoleDataScope(Long roleId, Integer dataScope, Set<Long> dataScopeDeptIds);  
96 -  
97 - /**  
98 - * 处理角色删除时,删除关联授权数据  
99 - *  
100 - * @param roleId 角色编号  
101 - */  
102 - void processRoleDeleted(Long roleId);  
103 -  
104 - /**  
105 - * 处理菜单删除时,删除关联授权数据  
106 - *  
107 - * @param menuId 菜单编号  
108 - */  
109 - void processMenuDeleted(Long menuId);  
110 -  
111 - /**  
112 - * 处理用户删除是,删除关联授权数据  
113 - *  
114 - * @param userId 用户编号  
115 - */  
116 - void processUserDeleted(Long userId);  
117 -  
118 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/SysRoleService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.permission;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleCreateReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleExportReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRolePageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.role.SysRoleUpdateReqVO;  
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;  
9 -import org.springframework.lang.Nullable;  
10 -  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -import java.util.Set;  
14 -  
15 -/**  
16 - * 角色 Service 接口  
17 - *  
18 - * @author 芋道源码  
19 - */  
20 -public interface SysRoleService {  
21 -  
22 - /**  
23 - * 初始化角色的本地缓存  
24 - */  
25 - void initLocalCache();  
26 -  
27 - /**  
28 - * 创建角色  
29 - *  
30 - * @param reqVO 创建角色信息  
31 - * @return 角色编号  
32 - */  
33 - Long createRole(SysRoleCreateReqVO reqVO);  
34 -  
35 - /**  
36 - * 更新角色  
37 - *  
38 - * @param reqVO 更新角色信息  
39 - */  
40 - void updateRole(SysRoleUpdateReqVO reqVO);  
41 -  
42 - /**  
43 - * 删除角色  
44 - *  
45 - * @param id 角色编号  
46 - */  
47 - void deleteRole(Long id);  
48 -  
49 - /**  
50 - * 更新角色状态  
51 - *  
52 - * @param id 角色编号  
53 - * @param status 状态  
54 - */  
55 - void updateRoleStatus(Long id, Integer status);  
56 -  
57 - /**  
58 - * 设置角色的数据权限  
59 - *  
60 - * @param id 角色编号  
61 - * @param dataScope 数据范围  
62 - * @param dataScopeDeptIds 部门编号数组  
63 - */  
64 - void updateRoleDataScope(Long id, Integer dataScope, Set<Long> dataScopeDeptIds);  
65 -  
66 - /**  
67 - * 获得角色,从缓存中  
68 - *  
69 - * @param id 角色编号  
70 - * @return 角色  
71 - */  
72 - SysRoleDO getRoleFromCache(Long id);  
73 -  
74 - /**  
75 - * 获得角色列表  
76 - *  
77 - * @param statuses 筛选的状态。允许空,空时不筛选  
78 - * @return 角色列表  
79 - */  
80 - List<SysRoleDO> getRoles(@Nullable Collection<Integer> statuses);  
81 -  
82 - /**  
83 - * 获得角色数组,从缓存中  
84 - *  
85 - * @param ids 角色编号数组  
86 - * @return 角色数组  
87 - */  
88 - List<SysRoleDO> getRolesFromCache(Collection<Long> ids);  
89 -  
90 - /**  
91 - * 判断角色数组中,是否有管理员  
92 - *  
93 - * @param roleList 角色数组  
94 - * @return 是否有管理员  
95 - */  
96 - boolean hasAnyAdmin(Collection<SysRoleDO> roleList);  
97 -  
98 - /**  
99 - * 判断角色编号数组中,是否有管理员  
100 - *  
101 - * @param ids 角色编号数组  
102 - * @return 是否有管理员  
103 - */  
104 - default boolean hasAnyAdmin(Set<Long> ids) {  
105 - return hasAnyAdmin(getRolesFromCache(ids));  
106 - }  
107 -  
108 - /**  
109 - * 获得角色  
110 - *  
111 - * @param id 角色编号  
112 - * @return 角色  
113 - */  
114 - SysRoleDO getRole(Long id);  
115 -  
116 - /**  
117 - * 获得角色分页  
118 - *  
119 - * @param reqVO 角色分页查询  
120 - * @return 角色分页结果  
121 - */  
122 - PageResult<SysRoleDO> getRolePage(SysRolePageReqVO reqVO);  
123 -  
124 - /**  
125 - * 获得角色列表  
126 - *  
127 - * @param reqVO 列表查询  
128 - * @return 角色列表  
129 - */  
130 - List<SysRoleDO> getRoleList(SysRoleExportReqVO reqVO);  
131 -  
132 -  
133 -  
134 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsChannelService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.sms;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO;  
8 -  
9 -import javax.validation.Valid;  
10 -import java.util.Collection;  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * 短信渠道 Service 接口  
15 - *  
16 - * @author zzf  
17 - * @date 2021/1/25 9:24  
18 - */  
19 -public interface SysSmsChannelService {  
20 -  
21 - /**  
22 - * 初始化短信客户端  
23 - */  
24 - void initSmsClients();  
25 -  
26 - /**  
27 - * 创建短信渠道  
28 - *  
29 - * @param createReqVO 创建信息  
30 - * @return 编号  
31 - */  
32 - Long createSmsChannel(@Valid SysSmsChannelCreateReqVO createReqVO);  
33 -  
34 - /**  
35 - * 更新短信渠道  
36 - *  
37 - * @param updateReqVO 更新信息  
38 - */  
39 - void updateSmsChannel(@Valid SysSmsChannelUpdateReqVO updateReqVO);  
40 -  
41 - /**  
42 - * 删除短信渠道  
43 - *  
44 - * @param id 编号  
45 - */  
46 - void deleteSmsChannel(Long id);  
47 -  
48 - /**  
49 - * 获得短信渠道  
50 - *  
51 - * @param id 编号  
52 - * @return 短信渠道  
53 - */  
54 - SysSmsChannelDO getSmsChannel(Long id);  
55 -  
56 - /**  
57 - * 获得短信渠道列表  
58 - *  
59 - * @param ids 编号  
60 - * @return 短信渠道列表  
61 - */  
62 - List<SysSmsChannelDO> getSmsChannelList(Collection<Long> ids);  
63 -  
64 - /**  
65 - * 获得所有短信渠道列表  
66 - *  
67 - * @return 短信渠道列表  
68 - */  
69 - List<SysSmsChannelDO> getSmsChannelList();  
70 -  
71 - /**  
72 - * 获得短信渠道分页  
73 - *  
74 - * @param pageReqVO 分页查询  
75 - * @return 短信渠道分页  
76 - */  
77 - PageResult<SysSmsChannelDO> getSmsChannelPage(SysSmsChannelPageReqVO pageReqVO);  
78 -  
79 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsLogService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.sms;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -  
8 -import java.util.List;  
9 -  
10 -/**  
11 - * 短信日志 Service 接口  
12 - *  
13 - * @author zzf  
14 - * @date 13:48 2021/3/2  
15 - */  
16 -public interface SysSmsLogService {  
17 -  
18 - /**  
19 - * 获得短信日志分页  
20 - *  
21 - * @param pageReqVO 分页查询  
22 - * @return 短信日志分页  
23 - */  
24 - PageResult<SysSmsLogDO> getSmsLogPage(SysSmsLogPageReqVO pageReqVO);  
25 -  
26 - /**  
27 - * 获得短信日志列表, 用于 Excel 导出  
28 - *  
29 - * @param exportReqVO 查询条件  
30 - * @return 短信日志列表  
31 - */  
32 - List<SysSmsLogDO> getSmsLogList(SysSmsLogExportReqVO exportReqVO);  
33 -  
34 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsTemplateService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.sms;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
9 -  
10 -import javax.validation.Valid;  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 短信模板 Service 接口  
16 - *  
17 - * @author zzf  
18 - * @date 2021/1/25 9:24  
19 - */  
20 -public interface SysSmsTemplateService {  
21 -  
22 - /**  
23 - * 获得短信模板  
24 - *  
25 - * @param code 模板编码  
26 - * @return 短信模板  
27 - */  
28 - SysSmsTemplateDO getSmsTemplateByCode(String code);  
29 -  
30 - /**  
31 - * 创建短信模板  
32 - *  
33 - * @param createReqVO 创建信息  
34 - * @return 编号  
35 - */  
36 - Long createSmsTemplate(@Valid SysSmsTemplateCreateReqVO createReqVO);  
37 -  
38 - /**  
39 - * 更新短信模板  
40 - *  
41 - * @param updateReqVO 更新信息  
42 - */  
43 - void updateSmsTemplate(@Valid SysSmsTemplateUpdateReqVO updateReqVO);  
44 -  
45 - /**  
46 - * 删除短信模板  
47 - *  
48 - * @param id 编号  
49 - */  
50 - void deleteSmsTemplate(Long id);  
51 -  
52 - /**  
53 - * 获得短信模板  
54 - *  
55 - * @param id 编号  
56 - * @return 短信模板  
57 - */  
58 - SysSmsTemplateDO getSmsTemplate(Long id);  
59 -  
60 - /**  
61 - * 获得短信模板列表  
62 - *  
63 - * @param ids 编号  
64 - * @return 短信模板列表  
65 - */  
66 - List<SysSmsTemplateDO> getSmsTemplateList(Collection<Long> ids);  
67 -  
68 - /**  
69 - * 获得短信模板分页  
70 - *  
71 - * @param pageReqVO 分页查询  
72 - * @return 短信模板分页  
73 - */  
74 - PageResult<SysSmsTemplateDO> getSmsTemplatePage(SysSmsTemplatePageReqVO pageReqVO);  
75 -  
76 - /**  
77 - * 获得短信模板列表, 用于 Excel 导出  
78 - *  
79 - * @param exportReqVO 查询条件  
80 - * @return 短信模板分页  
81 - */  
82 - List<SysSmsTemplateDO> getSmsTemplateList(SysSmsTemplateExportReqVO exportReqVO);  
83 -  
84 - /**  
85 - * 获得指定短信渠道下的短信模板数量  
86 - *  
87 - * @param channelId 短信渠道编号  
88 - * @return 数量  
89 - */  
90 - Integer countByChannelId(Long channelId);  
91 -  
92 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/impl/SysSmsLogServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.sms.impl;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsLogMapper;  
6 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsLogService;  
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
9 -import lombok.extern.slf4j.Slf4j;  
10 -import org.springframework.stereotype.Service;  
11 -  
12 -import javax.annotation.Resource;  
13 -import java.util.List;  
14 -  
15 -/**  
16 - * 短信日志 Service 实现类  
17 - *  
18 - * @author zzf  
19 - * @date 2021/1/25 9:25  
20 - */  
21 -@Slf4j  
22 -@Service  
23 -public class SysSmsLogServiceImpl implements SysSmsLogService {  
24 -  
25 - @Resource  
26 - private SysSmsLogMapper smsLogMapper;  
27 -  
28 - @Override  
29 - public PageResult<SysSmsLogDO> getSmsLogPage(SysSmsLogPageReqVO pageReqVO) {  
30 - return smsLogMapper.selectPage(pageReqVO);  
31 - }  
32 -  
33 - @Override  
34 - public List<SysSmsLogDO> getSmsLogList(SysSmsLogExportReqVO exportReqVO) {  
35 - return smsLogMapper.selectList(exportReqVO);  
36 - }  
37 -  
38 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/tenant/SysTenantService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.tenant;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenantCreateReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenantExportReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenantPageReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenantUpdateReqVO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
9 -  
10 -import javax.validation.Valid;  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 租户 Service 接口  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -public interface SysTenantService {  
20 -  
21 - /**  
22 - * 创建租户  
23 - *  
24 - * @param createReqVO 创建信息  
25 - * @return 编号  
26 - */  
27 - Long createTenant(@Valid SysTenantCreateReqVO createReqVO);  
28 -  
29 - /**  
30 - * 更新租户  
31 - *  
32 - * @param updateReqVO 更新信息  
33 - */  
34 - void updateTenant(@Valid SysTenantUpdateReqVO updateReqVO);  
35 -  
36 - /**  
37 - * 删除租户  
38 - *  
39 - * @param id 编号  
40 - */  
41 - void deleteTenant(Long id);  
42 -  
43 - /**  
44 - * 获得租户  
45 - *  
46 - * @param id 编号  
47 - * @return 租户  
48 - */  
49 - SysTenantDO getTenant(Long id);  
50 -  
51 - /**  
52 - * 获得租户列表  
53 - *  
54 - * @param ids 编号  
55 - * @return 租户列表  
56 - */  
57 - List<SysTenantDO> getTenantList(Collection<Long> ids);  
58 -  
59 - /**  
60 - * 获得租户分页  
61 - *  
62 - * @param pageReqVO 分页查询  
63 - * @return 租户分页  
64 - */  
65 - PageResult<SysTenantDO> getTenantPage(SysTenantPageReqVO pageReqVO);  
66 -  
67 - /**  
68 - * 获得租户列表, 用于 Excel 导出  
69 - *  
70 - * @param exportReqVO 查询条件  
71 - * @return 租户列表  
72 - */  
73 - List<SysTenantDO> getTenantList(SysTenantExportReqVO exportReqVO);  
74 -  
75 - /**  
76 - * 获得名字对应的租户  
77 - *  
78 - * @param name 组户名  
79 - * @return 租户  
80 - */  
81 - SysTenantDO getTenantByName(String name);  
82 -  
83 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/tenant/impl/SysTenantServiceImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.tenant.impl;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenantCreateReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenantExportReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenantPageReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenantUpdateReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.convert.tenant.SysTenantConvert;  
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.tenant.SysTenantMapper;  
9 -import cn.iocoder.yudao.adminserver.modules.system.service.tenant.SysTenantService;  
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO;  
11 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
12 -import org.springframework.stereotype.Service;  
13 -import org.springframework.validation.annotation.Validated;  
14 -  
15 -import javax.annotation.Resource;  
16 -import java.util.Collection;  
17 -import java.util.List;  
18 -  
19 -import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.TENANT_NOT_EXISTS;  
20 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
21 -  
22 -/**  
23 - * 租户 Service 实现类  
24 - *  
25 - * @author 芋道源码  
26 - */  
27 -@Service  
28 -@Validated  
29 -public class SysTenantServiceImpl implements SysTenantService {  
30 -  
31 - @Resource  
32 - private SysTenantMapper tenantMapper;  
33 -  
34 - @Override  
35 - public Long createTenant(SysTenantCreateReqVO createReqVO) {  
36 - // 插入  
37 - SysTenantDO tenant = SysTenantConvert.INSTANCE.convert(createReqVO);  
38 - tenantMapper.insert(tenant);  
39 - // 返回  
40 - return tenant.getId();  
41 - }  
42 -  
43 - @Override  
44 - public void updateTenant(SysTenantUpdateReqVO updateReqVO) {  
45 - // 校验存在  
46 - this.validateTenantExists(updateReqVO.getId());  
47 - // 更新  
48 - SysTenantDO updateObj = SysTenantConvert.INSTANCE.convert(updateReqVO);  
49 - tenantMapper.updateById(updateObj);  
50 - }  
51 -  
52 - @Override  
53 - public void deleteTenant(Long id) {  
54 - // 校验存在  
55 - this.validateTenantExists(id);  
56 - // 删除  
57 - tenantMapper.deleteById(id);  
58 - }  
59 -  
60 - private void validateTenantExists(Long id) {  
61 - if (tenantMapper.selectById(id) == null) {  
62 - throw exception(TENANT_NOT_EXISTS);  
63 - }  
64 - }  
65 -  
66 - @Override  
67 - public SysTenantDO getTenant(Long id) {  
68 - return tenantMapper.selectById(id);  
69 - }  
70 -  
71 - @Override  
72 - public List<SysTenantDO> getTenantList(Collection<Long> ids) {  
73 - return tenantMapper.selectBatchIds(ids);  
74 - }  
75 -  
76 - @Override  
77 - public PageResult<SysTenantDO> getTenantPage(SysTenantPageReqVO pageReqVO) {  
78 - return tenantMapper.selectPage(pageReqVO);  
79 - }  
80 -  
81 - @Override  
82 - public List<SysTenantDO> getTenantList(SysTenantExportReqVO exportReqVO) {  
83 - return tenantMapper.selectList(exportReqVO);  
84 - }  
85 -  
86 - @Override  
87 - public SysTenantDO getTenantByName(String name) {  
88 - return tenantMapper.selectByName(name);  
89 - }  
90 -  
91 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/user/SysUserService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.user;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*;  
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
9 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
10 -  
11 -import java.io.InputStream;  
12 -import java.util.*;  
13 -  
14 -/**  
15 - * 后台用户 Service 接口  
16 - *  
17 - * @author 芋道源码  
18 - */  
19 -public interface SysUserService {  
20 -  
21 - /**  
22 - * 创建用户  
23 - *  
24 - * @param reqVO 用户信息  
25 - * @return 用户编号  
26 - */  
27 - Long createUser(SysUserCreateReqVO reqVO);  
28 -  
29 - /**  
30 - * 修改用户  
31 - *  
32 - * @param reqVO 用户信息  
33 - */  
34 - void updateUser(SysUserUpdateReqVO reqVO);  
35 -  
36 - /**  
37 - * 更新用户的最后登陆信息  
38 - *  
39 - * @param id 用户编号  
40 - * @param loginIp 登陆 IP  
41 - */  
42 - void updateUserLogin(Long id, String loginIp);  
43 -  
44 - /**  
45 - * 修改用户个人信息  
46 - *  
47 - * @param id 用户编号  
48 - * @param reqVO 用户个人信息  
49 - */  
50 - void updateUserProfile(Long id, SysUserProfileUpdateReqVO reqVO);  
51 -  
52 - /**  
53 - * 修改用户个人密码  
54 - *  
55 - * @param id 用户编号  
56 - * @param reqVO 更新用户个人密码  
57 - */  
58 - void updateUserPassword(Long id, SysUserProfileUpdatePasswordReqVO reqVO);  
59 -  
60 - /**  
61 - * 更新用户头像  
62 - *  
63 - * @param id 用户 id  
64 - * @param avatarFile 头像文件  
65 - */  
66 - String updateUserAvatar(Long id, InputStream avatarFile);  
67 -  
68 - /**  
69 - * 修改密码  
70 - *  
71 - * @param id 用户编号  
72 - * @param password 密码  
73 - */  
74 - void updateUserPassword(Long id, String password);  
75 -  
76 - /**  
77 - * 修改状态  
78 - *  
79 - * @param id 用户编号  
80 - * @param status 状态  
81 - */  
82 - void updateUserStatus(Long id, Integer status);  
83 -  
84 - /**  
85 - * 删除用户  
86 - *  
87 - * @param id 用户编号  
88 - */  
89 - void deleteUser(Long id);  
90 -  
91 - /**  
92 - * 通过用户名查询用户  
93 - *  
94 - * @param username 用户名  
95 - * @return 用户对象信息  
96 - */  
97 - SysUserDO getUserByUsername(String username);  
98 -  
99 - /**  
100 - * 获得用户分页列表  
101 - *  
102 - * @param reqVO 分页条件  
103 - * @return 分页列表  
104 - */  
105 - PageResult<SysUserDO> getUserPage(SysUserPageReqVO reqVO);  
106 -  
107 - /**  
108 - * 获得用户  
109 - *  
110 - * @param id 用户编号  
111 - * @return 用户  
112 - */  
113 - SysUserDO getUser(Long id);  
114 -  
115 - /**  
116 - * 获得用户列表  
117 - *  
118 - * @param reqVO 列表请求  
119 - * @return 用户列表  
120 - */  
121 - List<SysUserDO> getUsers(SysUserExportReqVO reqVO);  
122 -  
123 -  
124 -  
125 - /**  
126 - * 获得用户列表,基于昵称模糊匹配  
127 - *  
128 - * @param nickname 昵称  
129 - * @return 用户列表  
130 - */  
131 - List<SysUserDO> getUsersByNickname(String nickname);  
132 -  
133 - /**  
134 - * 获得用户列表,基于用户账号模糊匹配  
135 - *  
136 - * @param username 用户账号  
137 - * @return 用户列表  
138 - */  
139 - List<SysUserDO> getUsersByUsername(String username);  
140 -  
141 - /**  
142 - * 批量导入用户  
143 - *  
144 - * @param importUsers 导入用户列表  
145 - * @param isUpdateSupport 是否支持更新  
146 - * @return 导入结果  
147 - */  
148 - SysUserImportRespVO importUsers(List<SysUserImportExcelVO> importUsers, boolean isUpdateSupport);  
149 -  
150 - /**  
151 - * 获得指定状态的用户们  
152 - *  
153 - * @param status 状态  
154 - * @return 用户们  
155 - */  
156 - List<SysUserDO> getUsersByStatus(Integer status);  
157 -  
158 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/dataobject/codegen/ToolCodegenColumnDO.java
1 package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen; 1 package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictTypeDO;  
5 import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenColumnHtmlTypeEnum; 4 import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenColumnHtmlTypeEnum;
6 import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenColumnListConditionEnum; 5 import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenColumnListConditionEnum;
7 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
@@ -80,7 +79,7 @@ public class ToolCodegenColumnDO extends BaseDO { @@ -80,7 +79,7 @@ public class ToolCodegenColumnDO extends BaseDO {
80 /** 79 /**
81 * 字典类型 80 * 字典类型
82 * 81 *
83 - * 关联 {@link SysDictTypeDO#getType()} 82 + * 关联 DictTypeDO 的 type 属性
84 */ 83 */
85 private String dictType; 84 private String dictType;
86 /** 85 /**
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/dataobject/codegen/ToolCodegenTableDO.java
1 package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen; 1 package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;  
5 import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenTemplateTypeEnum; 4 import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenTemplateTypeEnum;
6 import com.baomidou.mybatisplus.annotation.TableName; 5 import com.baomidou.mybatisplus.annotation.TableName;
7 import lombok.Data; 6 import lombok.Data;
@@ -89,7 +88,7 @@ public class ToolCodegenTableDO extends BaseDO { @@ -89,7 +88,7 @@ public class ToolCodegenTableDO extends BaseDO {
89 /** 88 /**
90 * 父菜单编号 89 * 父菜单编号
91 * 90 *
92 - * 关联 {@link SysMenuDO#getId()} 91 + * 关联 MenuDO 的 id 属性
93 */ 92 */
94 private Long parentMenuId; 93 private Long parentMenuId;
95 94
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/framework/codegen/config/CodegenConfiguration.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/codegen/config/CodegenConfiguration.java
1 -package cn.iocoder.yudao.adminserver.modules.system.framework.codegen.config; 1 +package cn.iocoder.yudao.adminserver.modules.tool.framework.codegen.config;
2 2
3 import org.springframework.boot.context.properties.EnableConfigurationProperties; 3 import org.springframework.boot.context.properties.EnableConfigurationProperties;
4 import org.springframework.context.annotation.Configuration; 4 import org.springframework.context.annotation.Configuration;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/codegen/config/CodegenProperties.java 0 → 100644
  1 +package cn.iocoder.yudao.adminserver.modules.tool.framework.codegen.config;
  2 +
  3 +import lombok.Data;
  4 +import org.springframework.boot.context.properties.ConfigurationProperties;
  5 +import org.springframework.validation.annotation.Validated;
  6 +
  7 +import javax.validation.constraints.NotEmpty;
  8 +import javax.validation.constraints.NotNull;
  9 +import java.util.Collection;
  10 +
  11 +@ConfigurationProperties(prefix = "yudao.codegen")
  12 +@Validated
  13 +@Data
  14 +public class CodegenProperties {
  15 +
  16 + /**
  17 + * 生成的 Java 代码的基础包
  18 + */
  19 + @NotNull(message = "Java 代码的基础包不能为空")
  20 + private String basePackage;
  21 +
  22 + /**
  23 + * 数据库名数组
  24 + */
  25 + @NotEmpty(message = "数据库不能为空")
  26 + private Collection<String> dbSchemas;
  27 +
  28 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/codegen/package-info.java 0 → 100644
  1 +/**
  2 + * 代码生成器
  3 + */
  4 +package cn.iocoder.yudao.adminserver.modules.tool.framework.codegen;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/config/ErrorCodeConfiguration.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.config;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.generator.ErrorCodeAutoGenerator;  
4 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.loader.ErrorCodeLoader;  
5 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.service.ErrorCodeFrameworkService;  
6 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.loader.ErrorCodeLoaderImpl;  
7 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.generator.ErrorCodeAutoGeneratorImpl;  
8 -import org.springframework.beans.factory.annotation.Value;  
9 -import org.springframework.boot.context.properties.EnableConfigurationProperties;  
10 -import org.springframework.context.annotation.Bean;  
11 -import org.springframework.context.annotation.Configuration;  
12 -import org.springframework.scheduling.annotation.EnableScheduling;  
13 -  
14 -/**  
15 - * 错误码配置类  
16 - */  
17 -@Configuration  
18 -@EnableConfigurationProperties(ErrorCodeProperties.class)  
19 -@EnableScheduling // 开启调度任务的功能,因为 ErrorCodeRemoteLoader 通过定时刷新错误码  
20 -public class ErrorCodeConfiguration {  
21 -  
22 - @Bean  
23 - public ErrorCodeAutoGenerator errorCodeAutoGenerator(@Value("${spring.application.name}") String applicationName,  
24 - ErrorCodeProperties errorCodeProperties,  
25 - ErrorCodeFrameworkService errorCodeFrameworkService) {  
26 - return new ErrorCodeAutoGeneratorImpl(applicationName, errorCodeProperties.getConstantsClassList(),  
27 - errorCodeFrameworkService);  
28 - }  
29 -  
30 - @Bean  
31 - public ErrorCodeLoader errorCodeLoader(@Value("${spring.application.name}") String applicationName,  
32 - ErrorCodeFrameworkService errorCodeFrameworkService) {  
33 - return new ErrorCodeLoaderImpl(applicationName, errorCodeFrameworkService);  
34 - }  
35 -  
36 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/config/ErrorCodeProperties.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.config;  
2 -  
3 -import lombok.Data;  
4 -import org.springframework.boot.context.properties.ConfigurationProperties;  
5 -import org.springframework.validation.annotation.Validated;  
6 -  
7 -import javax.validation.constraints.NotNull;  
8 -import java.util.List;  
9 -  
10 -/**  
11 - * 错误码的配置属性类  
12 - *  
13 - * @author dlyan  
14 - */  
15 -@ConfigurationProperties("yudao.error-code")  
16 -@Data  
17 -@Validated  
18 -public class ErrorCodeProperties {  
19 -  
20 - /**  
21 - * 错误码枚举类  
22 - */  
23 - @NotNull(message = "错误码枚举类不能为空")  
24 - private List<String> constantsClassList;  
25 -  
26 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/core/dto/ErrorCodeAutoGenerateReqDTO.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.dto;  
2 -  
3 -import lombok.Data;  
4 -import lombok.experimental.Accessors;  
5 -  
6 -import javax.validation.constraints.NotEmpty;  
7 -import javax.validation.constraints.NotNull;  
8 -  
9 -/**  
10 - * 错误码自动生成 DTO  
11 - *  
12 - * @author dylan  
13 - */  
14 -@Data  
15 -@Accessors(chain = true)  
16 -public class ErrorCodeAutoGenerateReqDTO {  
17 -  
18 - /**  
19 - * 应用名  
20 - */  
21 - @NotNull(message = "应用名不能为空")  
22 - private String applicationName;  
23 - /**  
24 - * 错误码编码  
25 - */  
26 - @NotNull(message = "错误码编码不能为空")  
27 - private Integer code;  
28 - /**  
29 - * 错误码错误提示  
30 - */  
31 - @NotEmpty(message = "错误码错误提示不能为空")  
32 - private String message;  
33 -  
34 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/core/dto/ErrorCodeRespDTO.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.dto;  
2 -  
3 -import lombok.Data;  
4 -  
5 -import java.util.Date;  
6 -  
7 -/**  
8 - * 错误码的 Response DTO  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -@Data  
13 -public class ErrorCodeRespDTO {  
14 -  
15 - /**  
16 - * 错误码编码  
17 - */  
18 - private Integer code;  
19 - /**  
20 - * 错误码错误提示  
21 - */  
22 - private String message;  
23 - /**  
24 - * 更新时间  
25 - */  
26 - private Date updateTime;  
27 -  
28 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/core/generator/ErrorCodeAutoGenerator.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.generator;  
2 -  
3 -/**  
4 - * 错误码的自动生成器  
5 - *  
6 - * @author dylan  
7 - */  
8 -public interface ErrorCodeAutoGenerator {  
9 -  
10 - /**  
11 - * 将配置类到错误码写入数据库  
12 - */  
13 - void execute();  
14 -  
15 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/core/generator/ErrorCodeAutoGeneratorImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.generator;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.util.ClassUtil;  
5 -import cn.hutool.core.util.ReflectUtil;  
6 -import cn.iocoder.yudao.framework.common.exception.ErrorCode;  
7 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.dto.ErrorCodeAutoGenerateReqDTO;  
8 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.service.ErrorCodeFrameworkService;  
9 -import lombok.RequiredArgsConstructor;  
10 -import lombok.extern.slf4j.Slf4j;  
11 -import org.springframework.boot.context.event.ApplicationReadyEvent;  
12 -import org.springframework.context.event.EventListener;  
13 -import org.springframework.scheduling.annotation.Async;  
14 -  
15 -import java.util.ArrayList;  
16 -import java.util.Arrays;  
17 -import java.util.List;  
18 -  
19 -/**  
20 - * ErrorCodeAutoGenerator 的实现类  
21 - * 目的是,扫描指定的 {@link #constantsClassList} 类,写入到 system 服务中  
22 - *  
23 - * @author dylan  
24 - */  
25 -@RequiredArgsConstructor  
26 -@Slf4j  
27 -public class ErrorCodeAutoGeneratorImpl implements ErrorCodeAutoGenerator {  
28 -  
29 - /**  
30 - * 应用分组  
31 - */  
32 - private final String applicationName;  
33 - /**  
34 - * 错误码枚举类  
35 - */  
36 - private final List<String> constantsClassList;  
37 - /**  
38 - * 错误码 Service  
39 - */  
40 - private final ErrorCodeFrameworkService errorCodeService;  
41 -  
42 - @Override  
43 - @EventListener(ApplicationReadyEvent.class)  
44 - @Async // 异步,保证项目的启动过程,毕竟非关键流程  
45 - public void execute() {  
46 - // 第一步,解析错误码  
47 - List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs = parseErrorCode();  
48 - log.info("[execute][解析到错误码数量为 ({}) 个]", autoGenerateDTOs.size());  
49 -  
50 - // 第二步,写入到 system 服务  
51 - errorCodeService.autoGenerateErrorCodes(autoGenerateDTOs);  
52 - log.info("[execute][写入到 system 组件完成]");  
53 - }  
54 -  
55 - /**  
56 - * 解析 constantsClassList 变量,转换成错误码数组  
57 - *  
58 - * @return 错误码数组  
59 - */  
60 - private List<ErrorCodeAutoGenerateReqDTO> parseErrorCode() {  
61 - // 校验 errorCodeConstantsClass 参数  
62 - if (CollUtil.isEmpty(constantsClassList)) {  
63 - log.info("[execute][未配置 yudao.error-code.constants-class-list 配置项,不进行自动写入到 system 服务中]");  
64 - return new ArrayList<>();  
65 - }  
66 -  
67 - // 解析错误码  
68 - List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs = new ArrayList<>();  
69 - constantsClassList.forEach(constantsClass -> {  
70 - // 解析错误码枚举类  
71 - Class<?> errorCodeConstantsClazz = ClassUtil.loadClass(constantsClass);  
72 - // 解析错误码  
73 - autoGenerateDTOs.addAll(parseErrorCode(errorCodeConstantsClazz));  
74 - });  
75 - return autoGenerateDTOs;  
76 - }  
77 -  
78 - /**  
79 - * 解析错误码类,获得错误码数组  
80 - *  
81 - * @return 错误码数组  
82 - */  
83 - private List<ErrorCodeAutoGenerateReqDTO> parseErrorCode(Class<?> constantsClass) {  
84 - List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs = new ArrayList<>();  
85 - Arrays.stream(constantsClass.getFields()).forEach(field -> {  
86 - if (field.getType() != ErrorCode.class) {  
87 - return;  
88 - }  
89 - // 转换成 ErrorCodeAutoGenerateReqDTO 对象  
90 - ErrorCode errorCode = (ErrorCode) ReflectUtil.getFieldValue(constantsClass, field);  
91 - autoGenerateDTOs.add(new ErrorCodeAutoGenerateReqDTO().setApplicationName(applicationName)  
92 - .setCode(errorCode.getCode()).setMessage(errorCode.getMsg()));  
93 - });  
94 - return autoGenerateDTOs;  
95 - }  
96 -  
97 -}  
98 -  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/core/loader/ErrorCodeLoader.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.loader;  
2 -  
3 -import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;  
4 -  
5 -/**  
6 - * 错误码加载器  
7 - *  
8 - * 注意,错误码最终加载到 {@link ServiceExceptionUtil} 的 MESSAGES 变量中!  
9 - *  
10 - * @author dlyan  
11 - */  
12 -public interface ErrorCodeLoader {  
13 -  
14 - /**  
15 - * 添加错误码  
16 - *  
17 - * @param code 错误码的编号  
18 - * @param msg 错误码的提示  
19 - */  
20 - default void putErrorCode(Integer code, String msg) {  
21 - ServiceExceptionUtil.put(code, msg);  
22 - }  
23 -  
24 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/core/loader/ErrorCodeLoaderImpl.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.loader;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.dto.ErrorCodeRespDTO;  
5 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.service.ErrorCodeFrameworkService;  
6 -import cn.iocoder.yudao.framework.common.util.date.DateUtils;  
7 -import lombok.RequiredArgsConstructor;  
8 -import lombok.extern.slf4j.Slf4j;  
9 -import org.springframework.boot.context.event.ApplicationReadyEvent;  
10 -import org.springframework.context.event.EventListener;  
11 -import org.springframework.scheduling.annotation.Scheduled;  
12 -  
13 -import java.util.Date;  
14 -import java.util.List;  
15 -  
16 -/**  
17 - * ErrorCodeLoader 的实现类,从 infra 的数据库中,加载错误码。  
18 - *  
19 - * 考虑到错误码会刷新,所以按照 {@link #REFRESH_ERROR_CODE_PERIOD} 频率,增量加载错误码。  
20 - *  
21 - * @author dlyan  
22 - */  
23 -@RequiredArgsConstructor  
24 -@Slf4j  
25 -public class ErrorCodeLoaderImpl implements ErrorCodeLoader {  
26 -  
27 - /**  
28 - * 刷新错误码的频率,单位:毫秒  
29 - */  
30 - private static final int REFRESH_ERROR_CODE_PERIOD = 60 * 1000;  
31 -  
32 - /**  
33 - * 应用分组  
34 - */  
35 - private final String applicationName;  
36 - /**  
37 - * 错误码 Service  
38 - */  
39 - private final ErrorCodeFrameworkService errorCodeService;  
40 -  
41 - /**  
42 - * 缓存错误码的最大更新时间,用于后续的增量轮询,判断是否有更新  
43 - */  
44 - private Date maxUpdateTime;  
45 -  
46 - @EventListener(ApplicationReadyEvent.class)  
47 - public void loadErrorCodes() {  
48 - this.loadErrorCodes0();  
49 - }  
50 -  
51 - @Scheduled(fixedDelay = REFRESH_ERROR_CODE_PERIOD, initialDelay = REFRESH_ERROR_CODE_PERIOD)  
52 - public void refreshErrorCodes() {  
53 - this.loadErrorCodes0();  
54 - }  
55 -  
56 - private void loadErrorCodes0() {  
57 - // 加载错误码  
58 - List<ErrorCodeRespDTO> errorCodeRespDTOs = errorCodeService.getErrorCodeList(applicationName, maxUpdateTime);  
59 - if (CollUtil.isEmpty(errorCodeRespDTOs)) {  
60 - return;  
61 - }  
62 - log.info("[loadErrorCodes0][加载到 ({}) 个错误码]", errorCodeRespDTOs.size());  
63 -  
64 - // 刷新错误码的缓存  
65 - errorCodeRespDTOs.forEach(errorCodeRespDTO -> {  
66 - // 写入到错误码的缓存  
67 - putErrorCode(errorCodeRespDTO.getCode(), errorCodeRespDTO.getMessage());  
68 - // 记录下更新时间,方便增量更新  
69 - maxUpdateTime = DateUtils.max(maxUpdateTime, errorCodeRespDTO.getUpdateTime());  
70 - });  
71 - }  
72 -  
73 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/errorcode/core/service/ErrorCodeFrameworkService.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.service;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.dto.ErrorCodeAutoGenerateReqDTO;  
4 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.core.dto.ErrorCodeRespDTO;  
5 -  
6 -import javax.validation.Valid;  
7 -import java.util.Date;  
8 -import java.util.List;  
9 -  
10 -/**  
11 - * 错误码 Framework Service 接口  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -public interface ErrorCodeFrameworkService {  
16 -  
17 - /**  
18 - * 自动创建错误码  
19 - *  
20 - * @param autoGenerateDTOs 错误码信息  
21 - */  
22 - void autoGenerateErrorCodes(@Valid List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs);  
23 -  
24 - /**  
25 - * 增量获得错误码数组  
26 - *  
27 - * 如果 minUpdateTime 为空时,则获取所有错误码  
28 - *  
29 - * @param applicationName 应用名  
30 - * @param minUpdateTime 最小更新时间  
31 - * @return 错误码数组  
32 - */  
33 - List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, Date minUpdateTime);  
34 -  
35 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/impl/ToolCodegenEngine.java
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; @@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
9 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 9 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
10 import cn.iocoder.yudao.framework.common.pojo.PageParam; 10 import cn.iocoder.yudao.framework.common.pojo.PageParam;
11 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
12 -import cn.iocoder.yudao.adminserver.modules.system.framework.codegen.config.CodegenProperties; 12 +import cn.iocoder.yudao.adminserver.modules.tool.framework.codegen.config.CodegenProperties;
13 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 13 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
14 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 14 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
15 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 15 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/impl/ToolCodegenServiceImpl.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 -import cn.iocoder.yudao.adminserver.modules.system.framework.codegen.config.CodegenProperties; 5 +import cn.iocoder.yudao.adminserver.modules.tool.framework.codegen.config.CodegenProperties;
6 import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenUpdateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenUpdateReqVO;
7 import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO; 7 import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO;
8 import cn.iocoder.yudao.adminserver.modules.tool.convert.codegen.ToolCodegenConvert; 8 import cn.iocoder.yudao.adminserver.modules.tool.convert.codegen.ToolCodegenConvert;
yudao-admin-server/src/main/resources/application.yaml
@@ -49,6 +49,7 @@ yudao: @@ -49,6 +49,7 @@ yudao:
49 version: 1.0.0 49 version: 1.0.0
50 base-package: cn.iocoder.yudao.adminserver 50 base-package: cn.iocoder.yudao.adminserver
51 member-package: cn.iocoder.yudao.module.member 51 member-package: cn.iocoder.yudao.module.member
  52 + system-package: cn.iocoder.yudao.module.system
52 core-service: 53 core-service:
53 base-package: cn.iocoder.yudao.coreservice 54 base-package: cn.iocoder.yudao.coreservice
54 web: 55 web:
@@ -74,7 +75,7 @@ yudao: @@ -74,7 +75,7 @@ yudao:
74 error-code: # 错误码相关配置项 75 error-code: # 错误码相关配置项
75 constants-class-list: 76 constants-class-list:
76 - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants 77 - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants
77 - - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants 78 + - cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants
78 - cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants 79 - cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants
79 tenant: # 多租户相关配置项 80 tenant: # 多租户相关配置项
80 tables: # 配置需要开启多租户的表;如果实体已经继承 TenantBaseDO 类,则无需重复配置 81 tables: # 配置需要开启多租户的表;如果实体已经继承 TenantBaseDO 类,则无需重复配置
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/quartz/core/SchedulerManagerTest.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.framework.quartz.core; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.framework.quartz.core;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
5 -import cn.iocoder.yudao.adminserver.modules.system.job.auth.SysUserSessionTimeoutJob; 5 +import cn.iocoder.yudao.module.system.job.auth.SysUserSessionTimeoutJob;
6 import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; 6 import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager;
7 import org.junit.jupiter.api.Test; 7 import org.junit.jupiter.api.Test;
8 import org.quartz.SchedulerException; 8 import org.quartz.SchedulerException;
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/redis/core/stream/RedisStreamTest.java
@@ -2,9 +2,9 @@ package cn.iocoder.yudao.adminserver.framework.redis.core.stream; @@ -2,9 +2,9 @@ package cn.iocoder.yudao.adminserver.framework.redis.core.stream;
2 2
3 import cn.hutool.core.thread.ThreadUtil; 3 import cn.hutool.core.thread.ThreadUtil;
4 import cn.iocoder.yudao.adminserver.BaseRedisIntegrationTest; 4 import cn.iocoder.yudao.adminserver.BaseRedisIntegrationTest;
5 -import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.mail.SysMailSendConsumer;  
6 -import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms.SysSmsSendConsumer;  
7 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.mail.SysMailSendMessage; 5 +import cn.iocoder.yudao.module.system.mq.consumer.mail.SysMailSendConsumer;
  6 +import cn.iocoder.yudao.module.system.mq.consumer.sms.SysSmsSendConsumer;
  7 +import cn.iocoder.yudao.module.system.mq.message.mail.SysMailSendMessage;
8 import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage; 8 import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;
9 import cn.iocoder.yudao.framework.mq.core.util.RedisMessageUtils; 9 import cn.iocoder.yudao.framework.mq.core.util.RedisMessageUtils;
10 import org.junit.jupiter.api.Disabled; 10 import org.junit.jupiter.api.Disabled;
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/system/service/package-info.java
1 -package cn.iocoder.yudao.adminserver.modules.system.service; 1 +package cn.iocoder.yudao.module.system.service;
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsServiceIntegrationTest.java
1 -package cn.iocoder.yudao.adminserver.modules.system.service.sms; 1 +package cn.iocoder.yudao.module.system.service.sms;
2 2
3 import cn.hutool.core.map.MapUtil; 3 import cn.hutool.core.map.MapUtil;
4 import cn.hutool.core.thread.ThreadUtil; 4 import cn.hutool.core.thread.ThreadUtil;
5 import cn.iocoder.yudao.adminserver.BaseDbAndRedisIntegrationTest; 5 import cn.iocoder.yudao.adminserver.BaseDbAndRedisIntegrationTest;
6 -import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms.SysSmsSendConsumer;  
7 -import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer;  
8 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsChannelServiceImpl;  
9 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsLogServiceImpl;  
10 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsTemplateServiceImpl;  
11 -import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 6 +import cn.iocoder.yudao.module.system.mq.consumer.sms.SysSmsSendConsumer;
  7 +import cn.iocoder.yudao.module.system.mq.producer.sms.SysSmsProducer;
  8 +import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsChannelServiceImpl;
  9 +import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsLogServiceImpl;
  10 +import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsTemplateServiceImpl;
  11 +import cn.iocoder.yudao.module.system.service.user.SysUserService;
12 import cn.iocoder.yudao.coreservice.modules.system.service.sms.impl.SysSmsCoreServiceImpl; 12 import cn.iocoder.yudao.coreservice.modules.system.service.sms.impl.SysSmsCoreServiceImpl;
13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
14 import cn.iocoder.yudao.framework.sms.config.YudaoSmsAutoConfiguration; 14 import cn.iocoder.yudao.framework.sms.config.YudaoSmsAutoConfiguration;
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/SysUserSessionServiceImplTest.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.auth;  
2 -  
3 -import cn.hutool.core.date.DateUtil;  
4 -import cn.iocoder.yudao.adminserver.BaseDbAndRedisUnitTest;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.auth.SysUserSessionMapper;  
7 -import cn.iocoder.yudao.adminserver.modules.system.service.auth.impl.SysUserSessionServiceImpl;  
8 -import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;  
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;  
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.redis.auth.SysLoginUserCoreRedisDAO;  
12 -import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;  
13 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;  
14 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
15 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
16 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
17 -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;  
18 -import cn.iocoder.yudao.framework.test.core.util.AssertUtils;  
19 -import org.junit.jupiter.api.Test;  
20 -import org.springframework.boot.test.mock.mockito.MockBean;  
21 -import org.springframework.context.annotation.Import;  
22 -  
23 -import javax.annotation.Resource;  
24 -import java.util.Date;  
25 -import java.util.List;  
26 -import java.util.stream.Collectors;  
27 -import java.util.stream.Stream;  
28 -  
29 -import static cn.hutool.core.util.RandomUtil.randomEle;  
30 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
31 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;  
32 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;  
33 -import static java.util.Collections.singletonList;  
34 -import static org.junit.jupiter.api.Assertions.assertEquals;  
35 -import static org.mockito.ArgumentMatchers.eq;  
36 -import static org.mockito.Mockito.when;  
37 -  
38 -/**  
39 - * {@link SysUserSessionServiceImpl} 的单元测试  
40 - *  
41 - * @author Lyon  
42 - */  
43 -@Import({SysUserSessionServiceImpl.class})  
44 -public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest {  
45 -  
46 - @Resource  
47 - private SysUserSessionServiceImpl userSessionService;  
48 -  
49 - @Resource  
50 - private SysUserSessionMapper userSessionMapper;  
51 -  
52 - @MockBean  
53 - private SysUserService userService;  
54 - @MockBean  
55 - private SysLoginLogCoreService loginLogCoreService;  
56 - @MockBean  
57 - private SysLoginUserCoreRedisDAO loginUserCoreRedisDAO;  
58 -  
59 - @Test  
60 - public void testGetUserSessionPage_success() {  
61 - // mock 数据  
62 - SysUserDO dbUser = randomPojo(SysUserDO.class, o -> {  
63 - o.setSex(randomEle(SysSexEnum.values()).getSex());  
64 - o.setStatus(CommonStatusEnum.ENABLE.getStatus());  
65 - });  
66 - when(userService.getUsersByUsername(eq(dbUser.getUsername()))).thenReturn(singletonList(dbUser));  
67 - // 插入可被查询到的数据  
68 - String userIp = randomString();  
69 - SysUserSessionDO dbSession = randomPojo(SysUserSessionDO.class, o -> {  
70 - o.setUserId(dbUser.getId());  
71 - o.setUserType(randomEle(UserTypeEnum.values()).getValue());  
72 - o.setUserIp(userIp);  
73 - });  
74 - userSessionMapper.insert(dbSession);  
75 - // 测试 username 不匹配  
76 - userSessionMapper.insert(ObjectUtils.cloneIgnoreId(dbSession, o -> {  
77 - o.setId(randomString());  
78 - o.setUserId(123456L);  
79 - }));  
80 - // 测试 userIp 不匹配  
81 - userSessionMapper.insert(ObjectUtils.cloneIgnoreId(dbSession, o -> {  
82 - o.setId(randomString());  
83 - o.setUserIp("testUserIp");  
84 - }));  
85 - // 准备参数  
86 - SysUserSessionPageReqVO reqVO = new SysUserSessionPageReqVO();  
87 - reqVO.setUsername(dbUser.getUsername());  
88 - reqVO.setUserIp(userIp);  
89 -  
90 - // 调用  
91 - PageResult<SysUserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO);  
92 - // 断言  
93 - assertEquals(1, pageResult.getTotal());  
94 - assertEquals(1, pageResult.getList().size());  
95 - assertPojoEquals(dbSession, pageResult.getList().get(0));  
96 - }  
97 -  
98 - // TODO 芋艿:单测写的有问题  
99 - @Test  
100 - public void testClearSessionTimeout_success() {  
101 - // 准备超时数据 120 条, 在线用户 1 条  
102 - int expectedTimeoutCount = 120, expectedTotal = 1;  
103 -  
104 - // 准备数据  
105 - List<SysUserSessionDO> prepareData = Stream  
106 - .iterate(0, i -> i)  
107 - .limit(expectedTimeoutCount)  
108 - .map(i -> randomPojo(SysUserSessionDO.class, o -> {  
109 - o.setUserType(randomEle(UserTypeEnum.values()).getValue());  
110 - o.setSessionTimeout(DateUtil.offsetSecond(new Date(), -1));  
111 - }))  
112 - .collect(Collectors.toList());  
113 - SysUserSessionDO sessionDO = randomPojo(SysUserSessionDO.class, o -> {  
114 - o.setUserType(randomEle(UserTypeEnum.values()).getValue());  
115 - o.setSessionTimeout(DateUtil.offsetMinute(new Date(), 30));  
116 - });  
117 - prepareData.add(sessionDO);  
118 - prepareData.forEach(userSessionMapper::insert);  
119 -  
120 - // 清空超时数据  
121 - long actualTimeoutCount = userSessionService.clearSessionTimeout();  
122 - // 校验  
123 - assertEquals(expectedTimeoutCount, actualTimeoutCount);  
124 - List<SysUserSessionDO> userSessionDOS = userSessionMapper.selectList();  
125 - assertEquals(expectedTotal, userSessionDOS.size());  
126 - AssertUtils.assertPojoEquals(sessionDO, userSessionDOS.get(0), "updateTime");  
127 - }  
128 -  
129 -}  
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/common/SysCaptchaServiceTest.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.common;  
2 -  
3 -import cn.iocoder.yudao.adminserver.BaseRedisUnitTest;  
4 -import cn.iocoder.yudao.adminserver.modules.system.framework.captcha.config.CaptchaProperties;  
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.common.vo.SysCaptchaImageRespVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.redis.common.SysCaptchaRedisDAO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.service.common.impl.SysCaptchaServiceImpl;  
8 -import org.junit.jupiter.api.Test;  
9 -import org.springframework.context.annotation.Import;  
10 -  
11 -import javax.annotation.Resource;  
12 -  
13 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;  
14 -import static org.junit.jupiter.api.Assertions.*;  
15 -  
16 -@Import({SysCaptchaServiceImpl.class, CaptchaProperties.class, SysCaptchaRedisDAO.class})  
17 -public class SysCaptchaServiceTest extends BaseRedisUnitTest {  
18 -  
19 - @Resource  
20 - private SysCaptchaServiceImpl captchaService;  
21 -  
22 - @Resource  
23 - private SysCaptchaRedisDAO captchaRedisDAO;  
24 - @Resource  
25 - private CaptchaProperties captchaProperties;  
26 -  
27 - @Test  
28 - public void testGetCaptchaImage() {  
29 - // 调用  
30 - SysCaptchaImageRespVO respVO = captchaService.getCaptchaImage();  
31 - // 断言  
32 - assertNotNull(respVO.getUuid());  
33 - assertNotNull(respVO.getImg());  
34 - String captchaCode = captchaRedisDAO.get(respVO.getUuid());  
35 - assertNotNull(captchaCode);  
36 - }  
37 -  
38 - @Test  
39 - public void testGetCaptchaCode() {  
40 - // 准备参数  
41 - String uuid = randomString();  
42 - String code = randomString();  
43 - // mock 数据  
44 - captchaRedisDAO.set(uuid, code, captchaProperties.getTimeout());  
45 -  
46 - // 调用  
47 - String resultCode = captchaService.getCaptchaCode(uuid);  
48 - // 断言  
49 - assertEquals(code, resultCode);  
50 - }  
51 -  
52 - @Test  
53 - public void testDeleteCaptchaCode() {  
54 - // 准备参数  
55 - String uuid = randomString();  
56 - String code = randomString();  
57 - // mock 数据  
58 - captchaRedisDAO.set(uuid, code, captchaProperties.getTimeout());  
59 -  
60 - // 调用  
61 - captchaService.deleteCaptchaCode(uuid);  
62 - // 断言  
63 - assertNull(captchaRedisDAO.get(uuid));  
64 - }  
65 -  
66 -}  
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/SysLoginLogServiceImplTest.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.logger;  
2 -  
3 -import cn.hutool.core.util.RandomUtil;  
4 -import cn.iocoder.yudao.adminserver.BaseDbUnitTest;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;  
6 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
7 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
8 -import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;  
9 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO;  
10 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO;  
11 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysLoginLogMapper;  
12 -import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum;  
13 -import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum;  
14 -import cn.iocoder.yudao.adminserver.modules.system.service.logger.impl.SysLoginLogServiceImpl;  
15 -import cn.iocoder.yudao.framework.test.core.util.RandomUtils;  
16 -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;  
17 -import org.junit.jupiter.api.Test;  
18 -import org.springframework.context.annotation.Import;  
19 -  
20 -import javax.annotation.Resource;  
21 -import java.util.List;  
22 -  
23 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
24 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;  
25 -import static org.junit.jupiter.api.Assertions.assertEquals;  
26 -  
27 -@Import(SysLoginLogServiceImpl.class)  
28 -public class SysLoginLogServiceImplTest extends BaseDbUnitTest {  
29 -  
30 - @Resource  
31 - private SysLoginLogServiceImpl sysLoginLogService;  
32 -  
33 - @Resource  
34 - private SysLoginLogMapper loginLogMapper;  
35 -  
36 - @Test  
37 - public void testGetLoginLogPage() {  
38 - // 构造测试数据  
39 - // 登录成功的  
40 - SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> {  
41 - logDO.setLogType(RandomUtil.randomEle(SysLoginLogTypeEnum.values()).getType());  
42 - logDO.setTraceId(TracerUtils.getTraceId());  
43 - logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue());  
44 -  
45 - logDO.setUserIp("192.168.199.16");  
46 - logDO.setUsername("wangkai");  
47 - logDO.setCreateTime(buildTime(2021, 3, 6));  
48 - logDO.setResult(SysLoginResultEnum.SUCCESS.getResult());  
49 - });  
50 - loginLogMapper.insert(loginLogDO);  
51 -  
52 - // 下面几个都是不匹配的数据  
53 - // 登录失败的  
54 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(SysLoginResultEnum.CAPTCHA_CODE_ERROR.getResult())));  
55 - // 不同ip段的  
56 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUserIp("192.168.128.18")));  
57 - // 不同username  
58 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUsername("yunai")));  
59 - // 构造一个早期时间 2021-02-06 00:00:00  
60 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildTime(2021, 2, 6))));  
61 -  
62 -  
63 - // 构造调用参数  
64 - SysLoginLogPageReqVO reqVO = new SysLoginLogPageReqVO();  
65 - reqVO.setUsername("wangkai");  
66 - reqVO.setUserIp("192.168.199");  
67 - reqVO.setStatus(true);  
68 - reqVO.setBeginTime(buildTime(2021, 3, 5));  
69 - reqVO.setEndTime(buildTime(2021, 3, 7));  
70 -  
71 - // 调用service方法  
72 - PageResult<SysLoginLogDO> pageResult = sysLoginLogService.getLoginLogPage(reqVO);  
73 -  
74 - // 断言,只查到了一条符合条件的  
75 - assertEquals(1, pageResult.getTotal());  
76 - assertEquals(1, pageResult.getList().size());  
77 - assertPojoEquals(loginLogDO, pageResult.getList().get(0));  
78 - }  
79 -  
80 - @Test  
81 - public void testGetLoginLogList() {  
82 - // 构造测试数据  
83 -  
84 - // 登录成功的  
85 - SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> {  
86 - logDO.setLogType(RandomUtil.randomEle(SysLoginLogTypeEnum.values()).getType());  
87 - logDO.setTraceId(TracerUtils.getTraceId());  
88 - logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue());  
89 -  
90 - logDO.setUserIp("192.168.111.16");  
91 - logDO.setUsername("wangxiaokai");  
92 - logDO.setCreateTime(buildTime(2021, 3, 6));  
93 - logDO.setResult(SysLoginResultEnum.SUCCESS.getResult());  
94 - });  
95 - loginLogMapper.insert(loginLogDO);  
96 -  
97 - // 下面几个都是不匹配的数据  
98 - // 登录失败的  
99 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(SysLoginResultEnum.CAPTCHA_CODE_ERROR.getResult())));  
100 - // 不同ip段的  
101 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUserIp("192.168.128.18")));  
102 - // 不同username  
103 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUsername("yunai")));  
104 - // 构造一个早期时间 2021-02-06 00:00:00  
105 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildTime(2021, 2, 6))));  
106 -  
107 -  
108 - // 构造调用参数  
109 - SysLoginLogExportReqVO reqVO = new SysLoginLogExportReqVO();  
110 - reqVO.setUsername("wangxiaokai");  
111 - reqVO.setUserIp("192.168.111");  
112 - reqVO.setStatus(true);  
113 - reqVO.setBeginTime(buildTime(2021, 3, 5));  
114 - reqVO.setEndTime(buildTime(2021, 3, 7));  
115 -  
116 -  
117 - // 调用service方法  
118 - List<SysLoginLogDO> loginLogList = sysLoginLogService.getLoginLogList(reqVO);  
119 -  
120 - // 断言  
121 - assertEquals(1, loginLogList.size());  
122 - assertPojoEquals(loginLogDO, loginLogList.get(0));  
123 - }  
124 -}  
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/notice/SysNoticeServiceImplTest.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.service.notice;  
2 -  
3 -import cn.iocoder.yudao.adminserver.BaseDbUnitTest;  
4 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticeCreateReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticePageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.controller.notice.vo.SysNoticeUpdateReqVO;  
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.notice.SysNoticeDO;  
10 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.notice.SysNoticeMapper;  
11 -import cn.iocoder.yudao.adminserver.modules.system.enums.notice.SysNoticeTypeEnum;  
12 -import cn.iocoder.yudao.adminserver.modules.system.service.notice.impl.SysNoticeServiceImpl;  
13 -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;  
14 -import org.junit.jupiter.api.Test;  
15 -import org.springframework.context.annotation.Import;  
16 -  
17 -import javax.annotation.Resource;  
18 -  
19 -import java.util.function.Consumer;  
20 -  
21 -import static cn.hutool.core.util.RandomUtil.randomEle;  
22 -import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.NOTICE_NOT_FOUND;  
23 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
24 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;  
25 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;  
26 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;  
27 -import static org.junit.jupiter.api.Assertions.*;  
28 -  
29 -@Import(SysNoticeServiceImpl.class)  
30 -class SysNoticeServiceImplTest extends BaseDbUnitTest {  
31 -  
32 - @Resource  
33 - private SysNoticeServiceImpl sysNoticeService;  
34 -  
35 - @Resource  
36 - private SysNoticeMapper sysNoticeMapper;  
37 -  
38 - @Test  
39 - public void testPageNotices_success() {  
40 - // 插入前置数据  
41 - SysNoticeDO dbNotice = randomPojo(SysNoticeDO.class, o -> {  
42 - o.setTitle("尼古拉斯赵四来啦!");  
43 - o.setStatus(CommonStatusEnum.ENABLE.getStatus());  
44 - o.setType(randomEle(SysNoticeTypeEnum.values()).getType());  
45 - });  
46 - sysNoticeMapper.insert(dbNotice);  
47 -  
48 - // 测试 title 不匹配  
49 - sysNoticeMapper.insert(ObjectUtils.cloneIgnoreId(dbNotice, o -> o.setTitle("尼古拉斯凯奇也来啦!")));  
50 - // 测试 status 不匹配  
51 - sysNoticeMapper.insert(ObjectUtils.cloneIgnoreId(dbNotice, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));  
52 -  
53 -  
54 - // 查询  
55 - SysNoticePageReqVO reqVO = new SysNoticePageReqVO();  
56 - reqVO.setTitle("尼古拉斯赵四来啦!");  
57 - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());  
58 - PageResult<SysNoticeDO> pageResult = sysNoticeService.pageNotices(reqVO);  
59 -  
60 - // 验证查询结果经过筛选  
61 - assertEquals(1, pageResult.getTotal());  
62 - assertEquals(1, pageResult.getList().size());  
63 - assertPojoEquals(dbNotice, pageResult.getList().get(0));  
64 -  
65 - }  
66 -  
67 - @Test  
68 - public void testGetNotice_success() {  
69 - // 插入前置数据  
70 - SysNoticeDO dbNotice = randomSysNoticeDO();  
71 - sysNoticeMapper.insert(dbNotice);  
72 -  
73 - // 查询  
74 - SysNoticeDO notice = sysNoticeService.getNotice(dbNotice.getId());  
75 -  
76 - // 验证插入与读取对象是否一致  
77 - assertNotNull(notice);  
78 - assertPojoEquals(dbNotice, notice);  
79 - }  
80 -  
81 - @Test  
82 - public void testCreateNotice_success() {  
83 - // 准备参数  
84 - SysNoticeCreateReqVO reqVO = randomSysNoticeCreateReqVO();  
85 -  
86 - // 校验插入是否成功  
87 - Long noticeId = sysNoticeService.createNotice(reqVO);  
88 - assertNotNull(noticeId);  
89 -  
90 - // 校验插入属性是否正确  
91 - SysNoticeDO notice = sysNoticeMapper.selectById(noticeId);  
92 - assertPojoEquals(reqVO, notice);  
93 - }  
94 -  
95 - @Test  
96 - public void testUpdateNotice_success() {  
97 - // 插入前置数据  
98 - SysNoticeDO dbNoticeDO = randomSysNoticeDO();  
99 - sysNoticeMapper.insert(dbNoticeDO);  
100 -  
101 - // 准备更新参数  
102 - SysNoticeUpdateReqVO reqVO = randomSysNoticeUpdateReqVO(o -> o.setId(dbNoticeDO.getId()));  
103 -  
104 - // 更新  
105 - sysNoticeService.updateNotice(reqVO);  
106 -  
107 - // 检验是否更新成功  
108 - SysNoticeDO notice = sysNoticeMapper.selectById(reqVO.getId());  
109 - assertPojoEquals(reqVO, notice);  
110 - }  
111 -  
112 - @Test  
113 - public void testDeleteNotice_success() {  
114 - // 插入前置数据  
115 - SysNoticeDO dbNotice = randomSysNoticeDO();  
116 - sysNoticeMapper.insert(dbNotice);  
117 -  
118 - // 删除  
119 - sysNoticeService.deleteNotice(dbNotice.getId());  
120 -  
121 - // 检查是否删除成功  
122 - assertNull(sysNoticeMapper.selectById(dbNotice.getId()));  
123 - }  
124 -  
125 - @Test  
126 - public void checkNoticeExists_success() {  
127 - // 插入前置数据  
128 - SysNoticeDO dbNotice = randomSysNoticeDO();  
129 - sysNoticeMapper.insert(dbNotice);  
130 -  
131 - // 成功调用  
132 - sysNoticeService.checkNoticeExists(dbNotice.getId());  
133 - }  
134 -  
135 - @Test  
136 - public void checkNoticeExists_noExists() {  
137 - assertServiceException(() -> sysNoticeService.checkNoticeExists(randomLongId()), NOTICE_NOT_FOUND);  
138 - }  
139 -  
140 - @SafeVarargs  
141 - private static SysNoticeDO randomSysNoticeDO(Consumer<SysNoticeDO>... consumers) {  
142 - SysNoticeDO notice = randomPojo(SysNoticeDO.class, consumers);  
143 - notice.setType(randomEle(SysNoticeTypeEnum.values()).getType());  
144 - notice.setStatus(CommonStatusEnum.ENABLE.getStatus());  
145 - return notice;  
146 - }  
147 -  
148 - @SafeVarargs  
149 - private static SysNoticeUpdateReqVO randomSysNoticeUpdateReqVO(Consumer<SysNoticeUpdateReqVO>... consumers) {  
150 - SysNoticeUpdateReqVO reqVO = randomPojo(SysNoticeUpdateReqVO.class, consumers);  
151 - reqVO.setType(randomEle(SysNoticeTypeEnum.values()).getType());  
152 - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());  
153 - return reqVO;  
154 - }  
155 -  
156 - private static SysNoticeCreateReqVO randomSysNoticeCreateReqVO() {  
157 - SysNoticeCreateReqVO reqVO = randomPojo(SysNoticeCreateReqVO.class);  
158 - reqVO.setType(randomEle(SysNoticeTypeEnum.values()).getType());  
159 - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());  
160 - return reqVO;  
161 - }  
162 -  
163 -  
164 -}  
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java
@@ -15,7 +15,8 @@ import org.springframework.context.annotation.Configuration; @@ -15,7 +15,8 @@ import org.springframework.context.annotation.Configuration;
15 * @author 芋道源码 15 * @author 芋道源码
16 */ 16 */
17 @Configuration 17 @Configuration
18 -@MapperScan(value = {"${yudao.info.base-package}", "${yudao.core-service.base-package}", "${yudao.info.member-package}"}, 18 +@MapperScan(value = {"${yudao.info.base-package}", "${yudao.core-service.base-package}",
  19 + "${yudao.info.member-package}", "${yudao.info.system-package}"},
19 annotationClass = Mapper.class, 20 annotationClass = Mapper.class,
20 lazyInitialization = "${mybatis.lazy-initialization:false}") // Mapper 懒加载,目前仅用于单元测试 21 lazyInitialization = "${mybatis.lazy-initialization:false}") // Mapper 懒加载,目前仅用于单元测试
21 public class YudaoMybatisAutoConfiguration { 22 public class YudaoMybatisAutoConfiguration {
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/SqlConstants.java renamed to yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/enums/SqlConstants.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.enums; 1 +package cn.iocoder.yudao.framework.mybatis.core.enums;
2 2
3 /** 3 /**
4 * SQL相关常量类 4 * SQL相关常量类
yudao-module-member/yudao-module-member-impl/pom.xml
@@ -34,10 +34,7 @@ @@ -34,10 +34,7 @@
34 <groupId>cn.iocoder.boot</groupId> 34 <groupId>cn.iocoder.boot</groupId>
35 <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId> 35 <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
36 </dependency> 36 </dependency>
37 - <dependency>  
38 - <groupId>cn.iocoder.boot</groupId>  
39 - <artifactId>yudao-spring-boot-starter-biz-sms</artifactId>  
40 - </dependency> 37 +
41 <dependency> 38 <dependency>
42 <groupId>cn.iocoder.boot</groupId> 39 <groupId>cn.iocoder.boot</groupId>
43 <artifactId>yudao-spring-boot-starter-biz-weixin</artifactId> 40 <artifactId>yudao-spring-boot-starter-biz-weixin</artifactId>
yudao-module-system/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>cn.iocoder.boot</groupId>
  7 + <artifactId>yudao</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <modules>
  12 + <module>yudao-module-system-api</module>
  13 + <module>yudao-module-system-impl</module>
  14 + </modules>
  15 + <artifactId>yudao-module-system</artifactId>
  16 + <packaging>pom</packaging>
  17 +
  18 + <name>${artifactId}</name>
  19 + <description>
  20 + system 模块下,我们放通用业务,支撑上层的核心业务。
  21 + 例如说:用户、部门、权限、数据字典等等
  22 + </description>
  23 +
  24 +</project>
yudao-module-system/yudao-module-system-api/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>cn.iocoder.boot</groupId>
  7 + <artifactId>yudao-module-system</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-system-api</artifactId>
  12 + <packaging>jar</packaging>
  13 +
  14 + <name>${artifactId}</name>
  15 + <description>
  16 + system 模块 API,暴露给其它模块调用
  17 + </description>
  18 +
  19 + <dependencies>
  20 + <dependency>
  21 + <groupId>cn.iocoder.boot</groupId>
  22 + <artifactId>yudao-common</artifactId>
  23 + </dependency>
  24 + </dependencies>
  25 +
  26 +</project>
yudao-module-system/yudao-module-system-impl/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>cn.iocoder.boot</groupId>
  7 + <artifactId>yudao-module-system</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-system-impl</artifactId>
  12 + <packaging>jar</packaging>
  13 +
  14 + <name>${artifactId}</name>
  15 + <description>
  16 + system 模块下,我们放通用业务,支撑上层的核心业务。
  17 + 例如说:用户、部门、权限、数据字典等等
  18 + </description>
  19 +
  20 + <dependencies>
  21 + <dependency>
  22 + <groupId>cn.iocoder.boot</groupId>
  23 + <artifactId>yudao-module-system-api</artifactId>
  24 + <version>${revision}</version>
  25 + </dependency>
  26 +
  27 + <!-- 业务组件 -->
  28 + <dependency>
  29 + <groupId>cn.iocoder.boot</groupId>
  30 + <artifactId>yudao-core-service</artifactId>
  31 + </dependency>
  32 +
  33 + <dependency>
  34 + <groupId>cn.iocoder.boot</groupId>
  35 + <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
  36 + </dependency>
  37 + <dependency>
  38 + <groupId>cn.iocoder.boot</groupId>
  39 + <artifactId>yudao-spring-boot-starter-biz-sms</artifactId>
  40 + </dependency>
  41 + <dependency>
  42 + <groupId>cn.iocoder.boot</groupId>
  43 + <artifactId>yudao-spring-boot-starter-biz-data-permission</artifactId>
  44 + </dependency>
  45 +
  46 + <!-- Web 相关 -->
  47 + <dependency>
  48 + <groupId>cn.iocoder.boot</groupId>
  49 + <artifactId>yudao-spring-boot-starter-security</artifactId>
  50 + </dependency>
  51 +
  52 + <!-- DB 相关 -->
  53 + <dependency>
  54 + <groupId>cn.iocoder.boot</groupId>
  55 + <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
  56 + </dependency>
  57 +
  58 + <dependency>
  59 + <groupId>cn.iocoder.boot</groupId>
  60 + <artifactId>yudao-spring-boot-starter-redis</artifactId>
  61 + </dependency>
  62 +
  63 + <!-- 消息队列相关 -->
  64 + <dependency>
  65 + <groupId>cn.iocoder.boot</groupId>
  66 + <artifactId>yudao-spring-boot-starter-mq</artifactId>
  67 + </dependency>
  68 +
  69 + <!-- Test 测试相关 -->
  70 + <dependency>
  71 + <groupId>cn.iocoder.boot</groupId>
  72 + <artifactId>yudao-spring-boot-starter-test</artifactId>
  73 + <scope>test</scope>
  74 + </dependency>
  75 +
  76 + <!-- 工具类相关 -->
  77 + <dependency>
  78 + <groupId>cn.iocoder.boot</groupId>
  79 + <artifactId>yudao-spring-boot-starter-excel</artifactId>
  80 + </dependency>
  81 +
  82 + </dependencies>
  83 +
  84 + <build>
  85 + <!-- 设置构建的 jar 包名 -->
  86 + <finalName>${artifactId}</finalName>
  87 + <plugins>
  88 + <!-- 打包 -->
  89 + <plugin>
  90 + <groupId>org.springframework.boot</groupId>
  91 + <artifactId>spring-boot-maven-plugin</artifactId>
  92 + <configuration>
  93 + <fork>true</fork>
  94 + </configuration>
  95 + <executions>
  96 + <execution>
  97 + <goals>
  98 + <goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
  99 + </goals>
  100 + </execution>
  101 + </executions>
  102 + </plugin>
  103 + </plugins>
  104 + </build>
  105 +
  106 +</project>
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/SysAuthController.http renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/auth/SysAuthController.http
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/SysAuthController.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/auth/SysAuthController.java
1 -package cn.iocoder.yudao.adminserver.modules.system.controller.auth; 1 +package cn.iocoder.yudao.module.system.controller.auth;
2 2
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.*;  
4 -import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysAuthConvert;  
5 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO; 3 +import cn.iocoder.yudao.module.system.controller.auth.vo.auth.*;
  4 +import cn.iocoder.yudao.module.system.convert.auth.SysAuthConvert;
  5 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysMenuDO;
6 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 6 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;
7 -import cn.iocoder.yudao.adminserver.modules.system.enums.permission.MenuTypeEnum;  
8 -import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysAuthService;  
9 -import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;  
10 -import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService; 7 +import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum;
  8 +import cn.iocoder.yudao.module.system.service.auth.SysAuthService;
  9 +import cn.iocoder.yudao.module.system.service.permission.SysPermissionService;
  10 +import cn.iocoder.yudao.module.system.service.permission.SysRoleService;
11 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 11 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
12 import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService; 12 import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService;
13 import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 13 import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/SysUserSessionController.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/auth/SysUserSessionController.java
1 -package cn.iocoder.yudao.adminserver.modules.system.controller.auth; 1 +package cn.iocoder.yudao.module.system.controller.auth;
2 2
3 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageItemRespVO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysUserSessionConvert; 3 +import cn.iocoder.yudao.module.system.controller.auth.vo.session.SysUserSessionPageItemRespVO;
  4 +import cn.iocoder.yudao.module.system.controller.auth.vo.session.SysUserSessionPageReqVO;
  5 +import cn.iocoder.yudao.module.system.convert.auth.SysUserSessionConvert;
6 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 6 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;
7 -import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService;  
8 -import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;  
9 -import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 7 +import cn.iocoder.yudao.module.system.service.auth.SysUserSessionService;
10 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO; 8 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;
11 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 9 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
12 import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService; 10 import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/vo/auth/SysAuthLoginReqVO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/auth/vo/auth/SysAuthLoginReqVO.java
1 -package cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.auth.vo.auth;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/vo/auth/SysAuthLoginRespVO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/auth/vo/auth/SysAuthLoginRespVO.java
1 -package cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.auth.vo.auth;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/vo/auth/SysAuthMenuRespVO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/auth/vo/auth/SysAuthMenuRespVO.java
1 -package cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth; 1 +package cn.iocoder.yudao.module.system.controller.auth.vo.auth;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;