From 4551fe660ceb72df4ca9bdecf661240bc2434995 Mon Sep 17 00:00:00 2001 From: Qing Date: Tue, 5 Mar 2024 18:04:58 +0800 Subject: [PATCH] feat: oss --- .gitignore | 2 + sms-auth/pom.xml | 55 ++++ sms-auth/sms-auth-common/pom.xml | 92 +++++++ .../auth/common/config/LocaleConfig.java | 25 ++ .../auth/common/entity/PageInfo.java | 32 +++ .../auth/common/entity/PageResult.java | 57 +++++ .../landaiqing/auth/common/entity/Result.java | 51 ++++ .../auth/common/enums/AuthUserStatusEnum.java | 34 +++ .../auth/common/enums/IsDeletedFlagEnum.java | 34 +++ .../auth/common/enums/LanguageEnum.java | 24 ++ .../auth/common/enums/ResultCodeEnum.java | 24 ++ .../auth/common/util/MessageUtil.java | 69 +++++ .../auth/common/util/SpringUtil.java | 34 +++ .../main/resources/i18n/messages.properties | 2 + .../resources/i18n/messages_en_US.properties | 2 + .../resources/i18n/messages_zh_CN.properties | 2 + sms-auth/sms-auth-controller/pom.xml | 37 +++ .../com/landaiqing/config/GlobalConfig.java | 38 +++ .../controller/StudentController.java | 150 +++++++++++ .../convert/PermissionDTOConvert.java | 27 ++ .../convert/StudentInfoDtoConvert.java | 26 ++ .../com/landaiqing/dto/PermissionDTO.java | 38 +++ .../java/com/landaiqing/dto/StudentDTO.java | 85 ++++++ sms-auth/sms-auth-domain/pom.xml | 32 +++ .../com/landaiqing/domain/bo/AdminBO.java | 43 ++++ .../com/landaiqing/domain/bo/ClazzBO.java | 50 ++++ .../com/landaiqing/domain/bo/CounselorBO.java | 43 ++++ .../com/landaiqing/domain/bo/GradeBO.java | 28 ++ .../landaiqing/domain/bo/PermissionBO.java | 54 ++++ .../java/com/landaiqing/domain/bo/RoleBO.java | 43 ++++ .../domain/bo/RolePermissionBO.java | 43 ++++ .../com/landaiqing/domain/bo/StudentBO.java | 85 ++++++ .../domain/constants/AuthConstant.java | 15 ++ .../domain/convert/PermissionBOConvert.java | 17 ++ .../domain/convert/StudentBOConvert.java | 15 ++ .../service/PermissionDomainService.java | 11 + .../service/RolePermissionDomainService.java | 10 + .../domain/service/StudentDomainService.java | 15 ++ .../StudentPermissionDomainService.java | 10 + .../service/StudentRoleDomainService.java | 11 + .../impl/PermissionDomainServiceImpl.java | 34 +++ .../impl/RolePermissionDomainServiceImpl.java | 33 +++ .../impl/StudentDomainServiceImpl.java | 68 +++++ .../StudentPermissionDomainServiceImpl.java | 43 ++++ .../impl/StudentRoleDomainServiceImpl.java | 38 +++ sms-auth/sms-auth-infra/pom.xml | 47 ++++ .../basic/config/MybatisConfiguration.java | 17 ++ .../basic/config/MybatisPlusAllSqlLog.java | 116 +++++++++ .../basic/config/SqlStatementInterceptor.java | 52 ++++ .../landaiqing/infra/basic/dao/ClazzDao.java | 83 ++++++ .../landaiqing/infra/basic/dao/GradeDao.java | 83 ++++++ .../infra/basic/dao/PermissionDao.java | 84 ++++++ .../landaiqing/infra/basic/dao/RoleDao.java | 83 ++++++ .../infra/basic/dao/RolePermissionDao.java | 84 ++++++ .../infra/basic/dao/StudentDao.java | 90 +++++++ .../infra/basic/dao/StudentRoleDao.java | 85 ++++++ .../landaiqing/infra/basic/dao/UserDao.java | 81 ++++++ .../infra/basic/dao/UserRoleDao.java | 83 ++++++ .../landaiqing/infra/basic/entity/Clazz.java | 50 ++++ .../landaiqing/infra/basic/entity/Grade.java | 28 ++ .../infra/basic/entity/Permission.java | 54 ++++ .../landaiqing/infra/basic/entity/Role.java | 43 ++++ .../infra/basic/entity/RolePermission.java | 43 ++++ .../infra/basic/entity/Student.java | 82 ++++++ .../infra/basic/entity/StudentRole.java | 46 ++++ .../landaiqing/infra/basic/entity/User.java | 46 ++++ .../infra/basic/entity/UserRole.java | 46 ++++ .../infra/basic/service/ClazzService.java | 48 ++++ .../infra/basic/service/GradeService.java | 49 ++++ .../basic/service/PermissionService.java | 52 ++++ .../basic/service/RolePermissionService.java | 52 ++++ .../infra/basic/service/RoleService.java | 48 ++++ .../basic/service/StudentRoleService.java | 51 ++++ .../infra/basic/service/StudentService.java | 56 ++++ .../infra/basic/service/UserRoleService.java | 47 ++++ .../infra/basic/service/UserService.java | 47 ++++ .../basic/service/impl/ClazzServiceImpl.java | 69 +++++ .../basic/service/impl/GradeServiceImpl.java | 70 +++++ .../service/impl/PermissionServiceImpl.java | 75 ++++++ .../impl/RolePermissionServiceImpl.java | 76 ++++++ .../basic/service/impl/RoleServiceImpl.java | 70 +++++ .../service/impl/StudentRoleServiceImpl.java | 75 ++++++ .../service/impl/StudentServiceImpl.java | 86 +++++++ .../service/impl/UserRoleServiceImpl.java | 70 +++++ .../basic/service/impl/UserServiceImpl.java | 71 +++++ .../infra/basic/utils/DruidEncryptUtil.java | 48 ++++ .../src/main/resources/mapper/ClazzDao.xml | 99 +++++++ .../src/main/resources/mapper/GradeDao.xml | 100 ++++++++ .../main/resources/mapper/PermissionDao.xml | 222 ++++++++++++++++ .../src/main/resources/mapper/RoleDao.xml | 152 +++++++++++ .../resources/mapper/RolePermissionDao.xml | 157 ++++++++++++ .../src/main/resources/mapper/StudentDao.xml | 242 ++++++++++++++++++ .../main/resources/mapper/StudentRoleDao.xml | 105 ++++++++ .../src/main/resources/mapper/UserDao.xml | 99 +++++++ .../src/main/resources/mapper/UserRoleDao.xml | 100 ++++++++ sms-auth/sms-auth-start/pom.xml | 93 +++++++ .../com/landaiqing/auth/AuthApplication.java | 21 ++ .../src/main/resources/application.yml | 82 ++++++ .../src/main/resources/log4j2-spring.xml | 87 +++++++ sms-oss/pom.xml | 111 ++++++++ .../com/landaiqing/oss/OssApplication.java | 20 ++ .../oss/adapter/MinioStorageAdapter.java | 85 ++++++ .../oss/adapter/StorageAdapter.java | 83 ++++++ .../landaiqing/oss/config/MinioConfig.java | 43 ++++ .../landaiqing/oss/config/StorageConfig.java | 23 ++ .../oss/controller/FileController.java | 45 ++++ .../com/landaiqing/oss/entity/FileInfo.java | 21 ++ .../com/landaiqing/oss/entity/Result.java | 50 ++++ .../landaiqing/oss/entity/ResultCodeEnum.java | 29 +++ .../landaiqing/oss/service/FileService.java | 50 ++++ .../com/landaiqing/oss/util/MinioUtil.java | 126 +++++++++ sms-oss/src/main/resources/application.yml | 6 + 112 files changed, 6518 insertions(+) create mode 100644 sms-auth/pom.xml create mode 100644 sms-auth/sms-auth-common/pom.xml create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/config/LocaleConfig.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/PageInfo.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/PageResult.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/Result.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/AuthUserStatusEnum.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/IsDeletedFlagEnum.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/LanguageEnum.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/ResultCodeEnum.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/util/MessageUtil.java create mode 100644 sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/util/SpringUtil.java create mode 100644 sms-auth/sms-auth-common/src/main/resources/i18n/messages.properties create mode 100644 sms-auth/sms-auth-common/src/main/resources/i18n/messages_en_US.properties create mode 100644 sms-auth/sms-auth-common/src/main/resources/i18n/messages_zh_CN.properties create mode 100644 sms-auth/sms-auth-controller/pom.xml create mode 100644 sms-auth/sms-auth-controller/src/main/java/com/landaiqing/config/GlobalConfig.java create mode 100644 sms-auth/sms-auth-controller/src/main/java/com/landaiqing/controller/StudentController.java create mode 100644 sms-auth/sms-auth-controller/src/main/java/com/landaiqing/convert/PermissionDTOConvert.java create mode 100644 sms-auth/sms-auth-controller/src/main/java/com/landaiqing/convert/StudentInfoDtoConvert.java create mode 100644 sms-auth/sms-auth-controller/src/main/java/com/landaiqing/dto/PermissionDTO.java create mode 100644 sms-auth/sms-auth-controller/src/main/java/com/landaiqing/dto/StudentDTO.java create mode 100644 sms-auth/sms-auth-domain/pom.xml create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/AdminBO.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/ClazzBO.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/CounselorBO.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/GradeBO.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/PermissionBO.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/RoleBO.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/RolePermissionBO.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/StudentBO.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/constants/AuthConstant.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/convert/PermissionBOConvert.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/convert/StudentBOConvert.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/PermissionDomainService.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/RolePermissionDomainService.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentDomainService.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentPermissionDomainService.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentRoleDomainService.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/PermissionDomainServiceImpl.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/RolePermissionDomainServiceImpl.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentDomainServiceImpl.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentPermissionDomainServiceImpl.java create mode 100644 sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentRoleDomainServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/pom.xml create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/MybatisConfiguration.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/MybatisPlusAllSqlLog.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/SqlStatementInterceptor.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/ClazzDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/GradeDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/PermissionDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/RoleDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/RolePermissionDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/StudentDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/StudentRoleDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/UserDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/UserRoleDao.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Clazz.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Grade.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Permission.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Role.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/RolePermission.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Student.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/StudentRole.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/User.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/UserRole.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/ClazzService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/GradeService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/PermissionService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/RolePermissionService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/RoleService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/StudentRoleService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/StudentService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/UserRoleService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/UserService.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/ClazzServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/GradeServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/PermissionServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/RolePermissionServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/RoleServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/StudentRoleServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/StudentServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/UserRoleServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/UserServiceImpl.java create mode 100644 sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/utils/DruidEncryptUtil.java create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/ClazzDao.xml create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/GradeDao.xml create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/PermissionDao.xml create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/RoleDao.xml create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/RolePermissionDao.xml create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/StudentDao.xml create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/StudentRoleDao.xml create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/UserDao.xml create mode 100644 sms-auth/sms-auth-infra/src/main/resources/mapper/UserRoleDao.xml create mode 100644 sms-auth/sms-auth-start/pom.xml create mode 100644 sms-auth/sms-auth-start/src/main/java/com/landaiqing/auth/AuthApplication.java create mode 100644 sms-auth/sms-auth-start/src/main/resources/application.yml create mode 100644 sms-auth/sms-auth-start/src/main/resources/log4j2-spring.xml create mode 100644 sms-oss/pom.xml create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/OssApplication.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/adapter/MinioStorageAdapter.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/adapter/StorageAdapter.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/config/MinioConfig.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/config/StorageConfig.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/controller/FileController.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/entity/FileInfo.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/entity/Result.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/entity/ResultCodeEnum.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/service/FileService.java create mode 100644 sms-oss/src/main/java/com/landaiqing/oss/util/MinioUtil.java create mode 100644 sms-oss/src/main/resources/application.yml diff --git a/.gitignore b/.gitignore index 9154f4c..66eadb2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ # ---> Java +# IDEA +.idea # Compiled class file *.class diff --git a/sms-auth/pom.xml b/sms-auth/pom.xml new file mode 100644 index 0000000..78667ad --- /dev/null +++ b/sms-auth/pom.xml @@ -0,0 +1,55 @@ + + 4.0.0 + + com.landaiqing + sms-auth + 1.0-SNAPSHOT + pom + + sms-auth + http://maven.apache.org + + sms-auth-start + sms-auth-infra + sms-auth-domain + sms-auth-common + sms-auth-controller + + + + 8 + 8 + 1.8 + UTF-8 + UTF-8 + 2.4.2 + 2021.1 + 2020.0.6 + + + + + org.springframework.boot + spring-boot-dependencies + 2.4.2 + pom + import + + + + + + central + aliyun maven + http://maven.aliyun.com/nexus/content/groups/public/ + default + + true + + + true + + + + diff --git a/sms-auth/sms-auth-common/pom.xml b/sms-auth/sms-auth-common/pom.xml new file mode 100644 index 0000000..19ce417 --- /dev/null +++ b/sms-auth/sms-auth-common/pom.xml @@ -0,0 +1,92 @@ + + 4.0.0 + + com.landaiqing + sms-auth + 1.0-SNAPSHOT + + + sms-auth-common + jar + + sms-auth-common + http://maven.apache.org + + + 8 + 8 + 1.8 + UTF-8 + UTF-8 + + + + + org.springframework.boot + spring-boot-starter-web + 2.4.2 + + + spring-boot-starter-logging + org.springframework.boot + + + + + org.projectlombok + lombok + 1.18.28 + + + org.mapstruct + mapstruct + 1.4.2.Final + + + org.mapstruct + mapstruct-processor + 1.4.2.Final + + + + org.springframework.boot + spring-boot-starter-log4j2 + 2.4.2 + + + com.alibaba + fastjson + 1.2.79 + + + com.google.guava + guava + 19.0 + + + org.apache.commons + commons-lang3 + 3.11 + + + + + + + + + + + + + + + + + + + + + + diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/config/LocaleConfig.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/config/LocaleConfig.java new file mode 100644 index 0000000..d8db9c9 --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/config/LocaleConfig.java @@ -0,0 +1,25 @@ +package com.landaiqing.auth.common.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.ResourceBundleMessageSource; + +import java.util.Locale; + +@Configuration +public class LocaleConfig { + + @Bean + public ResourceBundleMessageSource messageSource() { + Locale.setDefault(Locale.CHINA); + ResourceBundleMessageSource source = new ResourceBundleMessageSource(); + //设置国际化文件存储路径和名称 i18n目录,messages文件名 + source.setBasenames("i18n/messages"); + //设置根据key如果没有获取到对应的文本信息,则返回key作为信息 + source.setUseCodeAsDefaultMessage(true); + //设置字符编码 + source.setDefaultEncoding("UTF-8"); + return source; + } + +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/PageInfo.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/PageInfo.java new file mode 100644 index 0000000..5a1af9b --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/PageInfo.java @@ -0,0 +1,32 @@ +package com.landaiqing.auth.common.entity; + +import lombok.Data; + +/** + * 分页请求实体 + * + * @author: landaiqing + */ +@Data +public class PageInfo { + + private Integer pageNo = 1; + + private Integer pageSize = 20; + + public Integer getPageNo() { + if (pageNo == null || pageNo < 1) { + return 1; + } + return pageNo; + } + + public Integer getPageSize() { + if (pageSize == null || pageSize < 1 || pageSize > Integer.MAX_VALUE) { + return 20; + } + return pageSize; + } + + +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/PageResult.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/PageResult.java new file mode 100644 index 0000000..9f43aa6 --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/PageResult.java @@ -0,0 +1,57 @@ +package com.landaiqing.auth.common.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Collections; +import java.util.List; + +/** + * 分页返回实体 + * + * @author: landaiqing + */ +@Data +public class PageResult implements Serializable { + + private Integer pageNo = 1; + + private Integer pageSize = 20; + + private Integer total = 0; + + private Integer totalPages = 0; + + private List result = Collections.emptyList(); + + private Integer start = 1; + + private Integer end = 0; + + public void setRecords(List result) { + this.result = result; + if (result != null && result.size() > 0) { + setTotal(result.size()); + } + } + + public void setTotal(Integer total) { + this.total = total; + if (this.pageSize > 0) { + this.totalPages = (total / this.pageSize) + (total % this.pageSize == 0 ? 0 : 1); + } else { + this.totalPages = 0; + } + this.start = (this.pageSize > 0 ? (this.pageNo - 1) * this.pageSize : 0) + 1; + this.end = (this.start - 1 + this.pageSize * (this.pageNo > 0 ? 1 : 0)); + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public void setPageNo(Integer pageNo) { + this.pageNo = pageNo; + } + +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/Result.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/Result.java new file mode 100644 index 0000000..7abf6ee --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/entity/Result.java @@ -0,0 +1,51 @@ +package com.landaiqing.auth.common.entity; + +import com.landaiqing.auth.common.enums.ResultCodeEnum; +import lombok.Data; + +@Data +public class Result { + + private Boolean success; + + private Integer code; + + private String message; + + private T data; + + public static Result ok(){ + Result result = new Result(); + result.setSuccess(true); + result.setCode(ResultCodeEnum.SUCCESS.getCode()); + result.setMessage(ResultCodeEnum.SUCCESS.getDesc()); + return result; + } + + public static Result ok(T data){ + Result result = new Result(); + result.setSuccess(true); + result.setCode(ResultCodeEnum.SUCCESS.getCode()); + result.setMessage(ResultCodeEnum.SUCCESS.getDesc()); + result.setData(data); + return result; + } + + public static Result fail(){ + Result result = new Result(); + result.setSuccess(false); + result.setCode(ResultCodeEnum.FAIL.getCode()); + result.setMessage(ResultCodeEnum.FAIL.getDesc()); + return result; + } + + public static Result fail(T data){ + Result result = new Result(); + result.setSuccess(false); + result.setCode(ResultCodeEnum.FAIL.getCode()); + result.setMessage(ResultCodeEnum.FAIL.getDesc()); + result.setData(data); + return result; + } + +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/AuthUserStatusEnum.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/AuthUserStatusEnum.java new file mode 100644 index 0000000..02539a1 --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/AuthUserStatusEnum.java @@ -0,0 +1,34 @@ +package com.landaiqing.auth.common.enums; + +import lombok.Getter; + +/** + * 用户状态枚举 + * + * @author: landaiqing + */ +@Getter +public enum AuthUserStatusEnum { + + OPEN(0,"启用"), + CLOSE(1,"禁用"); + + public int code; + + public String desc; + + AuthUserStatusEnum(int code, String desc){ + this.code = code; + this.desc = desc; + } + + public static AuthUserStatusEnum getByCode(int codeVal){ + for(AuthUserStatusEnum resultCodeEnum : AuthUserStatusEnum.values()){ + if(resultCodeEnum.code == codeVal){ + return resultCodeEnum; + } + } + return null; + } + +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/IsDeletedFlagEnum.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/IsDeletedFlagEnum.java new file mode 100644 index 0000000..5664864 --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/IsDeletedFlagEnum.java @@ -0,0 +1,34 @@ +package com.landaiqing.auth.common.enums; + +import lombok.Getter; + +/** + * 删除状态枚举 + * + * @author: landaiqing + */ +@Getter +public enum IsDeletedFlagEnum { + + DELETED(1,"已删除"), + UN_DELETED(0,"未删除"); + + public int code; + + public String desc; + + IsDeletedFlagEnum(int code, String desc){ + this.code = code; + this.desc = desc; + } + + public static IsDeletedFlagEnum getByCode(int codeVal){ + for(IsDeletedFlagEnum resultCodeEnum : IsDeletedFlagEnum.values()){ + if(resultCodeEnum.code == codeVal){ + return resultCodeEnum; + } + } + return null; + } + +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/LanguageEnum.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/LanguageEnum.java new file mode 100644 index 0000000..adb963a --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/LanguageEnum.java @@ -0,0 +1,24 @@ +package com.landaiqing.auth.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum LanguageEnum { + + ZH_CN("zh_CN", "中文/中国"), + EN_US( "en_US", "英语/美国"), + ; + + /** + * 语言_国家缩写 + */ + private String name; + + /** + * 描述 + */ + private String desc; + +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/ResultCodeEnum.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/ResultCodeEnum.java new file mode 100644 index 0000000..1978ee0 --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/enums/ResultCodeEnum.java @@ -0,0 +1,24 @@ +package com.landaiqing.auth.common.enums; + +import lombok.Getter; + +@Getter +public enum ResultCodeEnum { + SUCCESS(200,"成功"), + FAIL(500,"失败"); + private int code; + private String desc; + + ResultCodeEnum(int code, String desc){ + this.code=code; + this.desc=desc; + } + public static ResultCodeEnum getByCode(int codeVal){ + for(ResultCodeEnum resultCodeEnum:ResultCodeEnum.values()){ + if(resultCodeEnum.code==codeVal){ + return resultCodeEnum; + } + } + return null; + } +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/util/MessageUtil.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/util/MessageUtil.java new file mode 100644 index 0000000..20b8e34 --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/util/MessageUtil.java @@ -0,0 +1,69 @@ +package com.landaiqing.auth.common.util; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.context.MessageSource; + +import java.util.Locale; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class MessageUtil { + + + /** + * 根据key信息获取对应语言的内容 + * + * @param key 消息key值 + * @param language 语言_国家 + * @return + */ + public static String get(String key, String language) { + if (!StringUtils.isEmpty(language)) { + String[] arrs = language.split("_"); + if (arrs.length == 2) { + return get(key, new Locale(arrs[0], arrs[1])); + } + } + //使用默认的国际化语言 + return get(key, Locale.getDefault()); + } + + /** + * 根据key信息获取对应语言的内容 + * + * @param key 消息key值 + * @param params 需要替换到占位符中的参数 占位符下标重0开始 格式如: {0} {1} + * @param language 语言_国家 + * @return + */ + public static String get(String key, Object[] params, String language) { + if (!StringUtils.isEmpty(language)) { + String arrs[] = language.split("_"); + if (arrs.length == 2) { + return get(key, params, new Locale(arrs[0], arrs[1])); + } + } + return get(key, params, Locale.getDefault()); + } + + private static String get(String key, Locale language) { + return get(key, new String[0], language); + } + + private static String get(String key, Object[] params, Locale language) { + return getInstance().getMessage(key, params, language); + } + + private static MessageSource getInstance() { + return Lazy.messageSource; + } + + /** + * 使用懒加载方式实例化messageSource国际化工具 + */ + private static class Lazy { + private static final MessageSource messageSource = SpringUtil.getBean(MessageSource.class); + } + +} diff --git a/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/util/SpringUtil.java b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/util/SpringUtil.java new file mode 100644 index 0000000..4600c2d --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/java/com/landaiqing/auth/common/util/SpringUtil.java @@ -0,0 +1,34 @@ +package com.landaiqing.auth.common.util; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @author Dominick Li + * @description 普通类调用Spring bean对象使用的工具栏 + **/ +@Component +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class SpringUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext = null; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + if (SpringUtil.applicationContext == null) { + SpringUtil.applicationContext = applicationContext; + } + } + + /** + * 通过class获取Bean. + */ + public static T getBean(Class clazz) { + return applicationContext.getBean(clazz); + } + +} diff --git a/sms-auth/sms-auth-common/src/main/resources/i18n/messages.properties b/sms-auth/sms-auth-common/src/main/resources/i18n/messages.properties new file mode 100644 index 0000000..345496f --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/resources/i18n/messages.properties @@ -0,0 +1,2 @@ +student_management=???? +sutdent_center=???? \ No newline at end of file diff --git a/sms-auth/sms-auth-common/src/main/resources/i18n/messages_en_US.properties b/sms-auth/sms-auth-common/src/main/resources/i18n/messages_en_US.properties new file mode 100644 index 0000000..94e2d81 --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/resources/i18n/messages_en_US.properties @@ -0,0 +1,2 @@ +student_management=student_management +sutdent_center=sutdent_center \ No newline at end of file diff --git a/sms-auth/sms-auth-common/src/main/resources/i18n/messages_zh_CN.properties b/sms-auth/sms-auth-common/src/main/resources/i18n/messages_zh_CN.properties new file mode 100644 index 0000000..345496f --- /dev/null +++ b/sms-auth/sms-auth-common/src/main/resources/i18n/messages_zh_CN.properties @@ -0,0 +1,2 @@ +student_management=???? +sutdent_center=???? \ No newline at end of file diff --git a/sms-auth/sms-auth-controller/pom.xml b/sms-auth/sms-auth-controller/pom.xml new file mode 100644 index 0000000..286f429 --- /dev/null +++ b/sms-auth/sms-auth-controller/pom.xml @@ -0,0 +1,37 @@ + + 4.0.0 + + com.landaiqing + sms-auth + 1.0-SNAPSHOT + + + sms-auth-controller + jar + + sms-auth-controller + http://maven.apache.org + + + UTF-8 + + + + + org.springframework.boot + spring-boot-starter-web + 2.4.2 + + + com.landaiqing + sms-auth-domain + 1.0-SNAPSHOT + + + com.landaiqing + sms-auth-infra + 1.0-SNAPSHOT + + + diff --git a/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/config/GlobalConfig.java b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/config/GlobalConfig.java new file mode 100644 index 0000000..87871b4 --- /dev/null +++ b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/config/GlobalConfig.java @@ -0,0 +1,38 @@ +package com.landaiqing.config; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; + +import java.util.List; + +/** + * @Classname GlobalConfig + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.subject.application.config + * @Author: landaiqing + * @CreateTime: 2024-02-16 15:57 + * @Description: MVC全局处理 + * @Version: 1.0 + */ +@Configuration +public class GlobalConfig extends WebMvcConfigurationSupport { + @Override + protected void configureMessageConverters(List> converters) { + super.configureMessageConverters(converters); + converters.add(mappingJackson2HttpMessageConverter()); + } + private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){ + ObjectMapper objectMapper=new ObjectMapper(); + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS,false); + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + MappingJackson2HttpMessageConverter converter=new MappingJackson2HttpMessageConverter(objectMapper); + return converter; + } + +} diff --git a/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/controller/StudentController.java b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/controller/StudentController.java new file mode 100644 index 0000000..3b01fea --- /dev/null +++ b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/controller/StudentController.java @@ -0,0 +1,150 @@ +package com.landaiqing.controller; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.base.Preconditions; +import com.landaiqing.auth.common.entity.PageInfo; +import com.landaiqing.auth.common.entity.PageResult; +import com.landaiqing.auth.common.entity.Result; +import com.landaiqing.auth.common.util.MessageUtil; +import com.landaiqing.convert.PermissionDTOConvert; +import com.landaiqing.convert.StudentInfoDtoConvert; +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.domain.service.StudentDomainService; +import com.landaiqing.domain.service.StudentPermissionDomainService; +import com.landaiqing.dto.PermissionDTO; +import com.landaiqing.dto.StudentDTO; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Classname StudentController + * @BelongsProject: student-Management-system + * @BelongsPackage: com.landaiqing.controller + * @Author: landaiqing + * @CreateTime: 2024-03-04 23:17 + * @Description: TODO + * @Version: 1.0 + */ +@RestController +@RequestMapping("/student/") +@Slf4j +public class StudentController { + @Resource + private StudentDomainService studentDomainService; + @Resource + private StudentPermissionDomainService studentPermissionDomainService; + + + /** + * @description: 头像上传 + * @param: [studentDTO] + * @return: com.landaiqing.auth.common.entity.Result + * @author landaiqing + * @date: 2024/3/4 23:47 + */ + @PostMapping("upload") + public Result uploadAvatar(@RequestBody StudentDTO studentDTO) { + try { + if (log.isInfoEnabled()) { + log.info("StudentController.uploadAvatar.dto:{}", JSON.toJSONString(studentDTO)); + } + Preconditions.checkArgument(!StringUtils.isBlank(studentDTO.getUrl()), "url不能为空!"); + Preconditions.checkNotNull(studentDTO.getId(), "id不能为空!"); + StudentBO studentBO = StudentInfoDtoConvert.INSTANCE.convertDtoToBO(studentDTO); + return Result.ok(studentDomainService.uploadAvatar(studentBO)); + } catch (Exception e) { + log.error("StudentController.uploadAvatar.error:{}", e.getMessage(), e); + return Result.fail("上传头像失败!"); + } + } + + /** + * @description: 分页查询所有学生信息 + * @param: [studentDTO] + * @return: com.landaiqing.auth.common.entity.Result> + * @author landaiqing + * @date: 2024/3/5 12:03 + */ + @RequestMapping("queryAllStudent") + public Result> queryAllStudent(@RequestBody StudentDTO studentDTO) { + try { + if (log.isInfoEnabled()) { + log.info("StudentController.queryAllStudent.dto:{}", JSON.toJSONString(studentDTO)); + } + StudentBO studentBO = StudentInfoDtoConvert.INSTANCE.convertDtoToBO(studentDTO); + studentBO.getPageNo(); + studentBO.getPageSize(); + PageResult pageResult = studentDomainService.queryAllStudentByPage(studentBO); + return Result.ok(pageResult); + } catch (Exception e) { + log.error("StudentController.queryAllStudent.error:{}", e.getMessage(), e); + return Result.fail("查询失败失败!"); + } + } + + /** + * @description: 查询指定学生的权限 + * @param: [studentDTO] + * @return: com.landaiqing.auth.common.entity.Result> + * @author landaiqing + * @date: 2024/3/5 12:03 + */ + @RequestMapping("queryPermission") + public Result> queryStudentPermission(@RequestBody StudentDTO studentDTO) { + try { + if (log.isInfoEnabled()) { + log.info("StudentController.queryStudentPermission.dto:{}", JSON.toJSONString(studentDTO)); + } + StudentBO studentBO = StudentInfoDtoConvert.INSTANCE.convertDtoToBO(studentDTO); + List permissionBOS = studentPermissionDomainService.queryStudentPermission(studentBO); + List permissionDTOS = PermissionDTOConvert.INSTANCE.convertBoToDtoList(permissionBOS); + return Result.ok(permissionDTOS); + } catch (Exception e) { + log.error("StudentController.queryStudentPermission.error:{}", e.getMessage(), e); + return Result.fail("查询失败失败!"); + } + } + + /** + * 测试国际化 + * en_US 英文 http://127.0.0.1:3001/en_US + * zh_CN 中文 http://127.0.0.1:3001/zh_CN + */ + @GetMapping("/{language}") + public String test(@PathVariable String language) { + + String text2 = MessageUtil.get("sutdent_center", language); + return text2; + } + + /** + * @description: 登录 + * @param: [studentDTO] + * @return: com.landaiqing.auth.common.entity.Result + * @author landaiqing + * @date: 2024/3/5 17:28 + */ + @RequestMapping("login") + public Result login(@RequestBody StudentDTO studentDTO) { + try { + if (log.isInfoEnabled()) { + log.info("StudentController.queryStudentPermission.dto:{}", JSON.toJSONString(studentDTO)); + } + Preconditions.checkArgument(!StringUtils.isBlank(studentDTO.getUsername()), "用户名不能为空!"); + Preconditions.checkArgument(!StringUtils.isBlank(studentDTO.getPassword()), "密码不能为空!"); + StudentBO studentBO = StudentInfoDtoConvert.INSTANCE.convertDtoToBO(studentDTO); + Boolean result = studentDomainService.login(studentBO); + return Result.ok(result); + } catch (Exception e) { + log.error("StudentController.queryStudentPermission.error:{}", e.getMessage(), e); + return Result.fail("查询失败失败!"); + } + } +} diff --git a/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/convert/PermissionDTOConvert.java b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/convert/PermissionDTOConvert.java new file mode 100644 index 0000000..9a792ae --- /dev/null +++ b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/convert/PermissionDTOConvert.java @@ -0,0 +1,27 @@ +package com.landaiqing.convert; + +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.dto.PermissionDTO; +import com.landaiqing.dto.StudentDTO; +import com.landaiqing.infra.basic.entity.Permission; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * @Classname PermissionDTOConvert + * @BelongsProject: student-Management-system + * @BelongsPackage: com.landaiqing.convert + * @Author: landaiqing + * @CreateTime: 2024-03-05 11:55 + * @Description: TODO + * @Version: 1.0 + */ +@Mapper +public interface PermissionDTOConvert { + PermissionDTOConvert INSTANCE= Mappers.getMapper(PermissionDTOConvert.class); + PermissionBO convertDtoToBO(PermissionDTO permissionDTO); + List convertBoToDtoList(List permissionBOList); +} diff --git a/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/convert/StudentInfoDtoConvert.java b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/convert/StudentInfoDtoConvert.java new file mode 100644 index 0000000..310f5f4 --- /dev/null +++ b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/convert/StudentInfoDtoConvert.java @@ -0,0 +1,26 @@ +package com.landaiqing.convert; + +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.dto.StudentDTO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * @Classname StudentInfoDtoConvert + * @BelongsProject: student-Management-system + * @BelongsPackage: com.landaiqing.convert + * @Author: landaiqing + * @CreateTime: 2024-03-04 23:22 + * @Description: TODO + * @Version: 1.0 + */ +@Mapper +public interface StudentInfoDtoConvert { + StudentInfoDtoConvert INSTANCE= Mappers.getMapper(StudentInfoDtoConvert.class); + + StudentBO convertDtoToBO(StudentDTO studentDTO); + List convertBOToDTOList(List studentBOList); + +} diff --git a/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/dto/PermissionDTO.java b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/dto/PermissionDTO.java new file mode 100644 index 0000000..3c81406 --- /dev/null +++ b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/dto/PermissionDTO.java @@ -0,0 +1,38 @@ +package com.landaiqing.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (PermissionBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:29:35 + */ +@Data +public class PermissionDTO implements Serializable { + + private Long id; + + private String name; + + private Long parentId; + + private Integer type; + + private String menuUrl; + + private Integer status; + + private Integer show; + + private String icon; + + private String permissionKey; + + + +} + diff --git a/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/dto/StudentDTO.java b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/dto/StudentDTO.java new file mode 100644 index 0000000..7311cd8 --- /dev/null +++ b/sms-auth/sms-auth-controller/src/main/java/com/landaiqing/dto/StudentDTO.java @@ -0,0 +1,85 @@ +package com.landaiqing.dto; + +import com.landaiqing.auth.common.entity.PageInfo; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (StudentDTO)实体类 + * + * @author makejava + * @since 2024-03-04 22:25:32 + */ +@Data +public class StudentDTO extends PageInfo implements Serializable { + + /** + * id + */ + private Long id; + /** + * 学号 + */ + private String sno; + /** + * 密码 + */ + private String password; + /** + * 姓名 + */ + private String username; + /** + * 班级 + */ + private Integer className; + /** + * 年级 + */ + private Integer grade; + /** + * 年龄 + */ + private Integer age; + /** + * 性别 + */ + private Integer sex; + /** + * 头像链接 + */ + private String avatar; + /** + * 出生日期 + */ + private Date dateOfBirth; + /** + * email + */ + private String email; + /** + * 电话 + */ + private String phoneNumber; + /** + * 班级id + */ + private Long classId; + /** + * 年级id + */ + private Long gradeId; + /** + * 角色id + */ + private Integer roleId; + + private Integer isDeleted; + + private String url; + + +} + diff --git a/sms-auth/sms-auth-domain/pom.xml b/sms-auth/sms-auth-domain/pom.xml new file mode 100644 index 0000000..c862559 --- /dev/null +++ b/sms-auth/sms-auth-domain/pom.xml @@ -0,0 +1,32 @@ + + 4.0.0 + + com.landaiqing + sms-auth + 1.0-SNAPSHOT + + + sms-auth-domain + jar + + sms-auth-domain + http://maven.apache.org + + + UTF-8 + + + + + com.landaiqing + sms-auth-infra + 1.0-SNAPSHOT + + + com.landaiqing + sms-auth-common + 1.0-SNAPSHOT + + + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/AdminBO.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/AdminBO.java new file mode 100644 index 0000000..eecc641 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/AdminBO.java @@ -0,0 +1,43 @@ +package com.landaiqing.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (AdminBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:28:30 + */ +@Data +public class AdminBO implements Serializable { + + private Long id; + + private String username; + + private String password; + /** + * 角色id + */ + private Integer roleId; + + private Integer isDeleted; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + + +} + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/ClazzBO.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/ClazzBO.java new file mode 100644 index 0000000..72a2696 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/ClazzBO.java @@ -0,0 +1,50 @@ +package com.landaiqing.domain.bo; + +import java.io.Serializable; + +/** + * (ClazzBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:44:00 + */ +public class ClazzBO implements Serializable { + private static final long serialVersionUID = -14659318323663338L; + + private Integer id; +/** + * 班级名称 + */ + private String className; +/** + * 班级人数 + */ + private Integer num; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public Integer getNum() { + return num; + } + + public void setNum(Integer num) { + this.num = num; + } + +} + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/CounselorBO.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/CounselorBO.java new file mode 100644 index 0000000..f4aa805 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/CounselorBO.java @@ -0,0 +1,43 @@ +package com.landaiqing.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (CounselorBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:29:04 + */ +@Data +public class CounselorBO implements Serializable { + + private Long id; + + private String username; + + private String password; + /** + * 角色id + */ + private Integer roleId; + + private Integer isDeleted; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + + +} + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/GradeBO.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/GradeBO.java new file mode 100644 index 0000000..d22126f --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/GradeBO.java @@ -0,0 +1,28 @@ +package com.landaiqing.domain.bo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * (GradeBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:29:20 + */ +@Data +public class GradeBO implements Serializable { + + private Long id; + /** + * 年级 + */ + private String gradeName; + /** + * 年级人数 + */ + private Long num; + + +} + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/PermissionBO.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/PermissionBO.java new file mode 100644 index 0000000..923c984 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/PermissionBO.java @@ -0,0 +1,54 @@ +package com.landaiqing.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (PermissionBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:29:35 + */ +@Data +public class PermissionBO implements Serializable { + + private Long id; + + private String name; + + private Long parentId; + + private Integer type; + + private String menuUrl; + + private Integer status; + + private Integer show; + + private String icon; + + private String permissionKey; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + + private Integer isDeleted; + +} + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/RoleBO.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/RoleBO.java new file mode 100644 index 0000000..da9fa6f --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/RoleBO.java @@ -0,0 +1,43 @@ +package com.landaiqing.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (RoleBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:29:56 + */ +@Data +public class RoleBO implements Serializable { + + private Long id; + + private String roleName; + + private String roleKey; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + + private Integer isDeleted; + + +} + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/RolePermissionBO.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/RolePermissionBO.java new file mode 100644 index 0000000..b1827ef --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/RolePermissionBO.java @@ -0,0 +1,43 @@ +package com.landaiqing.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (RolePermissionBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:30:14 + */ +@Data +public class RolePermissionBO implements Serializable { + + private Long id; + + private Long roleId; + + private Long permissionId; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + + private Integer isDeleted; + + +} + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/StudentBO.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/StudentBO.java new file mode 100644 index 0000000..13ffbf9 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/bo/StudentBO.java @@ -0,0 +1,85 @@ +package com.landaiqing.domain.bo; + +import com.landaiqing.auth.common.entity.PageInfo; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (StudentBO)实体类 + * + * @author makejava + * @since 2024-03-04 22:25:32 + */ +@Data +public class StudentBO extends PageInfo implements Serializable { + + /** + * id + */ + private Long id; + /** + * 学号 + */ + private String sno; + /** + * 密码 + */ + private String password; + /** + * 姓名 + */ + private String username; + /** + * 班级 + */ + private Integer className; + /** + * 年级 + */ + private Integer grade; + /** + * 年龄 + */ + private Integer age; + /** + * 性别 + */ + private Integer sex; + /** + * 头像链接 + */ + private String avatar; + /** + * 出生日期 + */ + private Date dateOfBirth; + /** + * email + */ + private String email; + /** + * 电话 + */ + private String phoneNumber; + /** + * 班级id + */ + private Long classId; + /** + * 年级id + */ + private Long gradeId; + /** + * 角色id + */ + private Integer roleId; + + private Integer isDeleted; + + private String url; + + +} + diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/constants/AuthConstant.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/constants/AuthConstant.java new file mode 100644 index 0000000..40baf39 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/constants/AuthConstant.java @@ -0,0 +1,15 @@ +package com.landaiqing.domain.constants; + +/** + * auth服务常量 + * + * @author: landaiqing + * @date: 2024/2/19 + */ +public class AuthConstant { + + public static final String STUDENT = "student"; + public static final String ADMIN = "admin"; + public static final String COUNSELOR = "counselor"; + +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/convert/PermissionBOConvert.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/convert/PermissionBOConvert.java new file mode 100644 index 0000000..f699add --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/convert/PermissionBOConvert.java @@ -0,0 +1,17 @@ +package com.landaiqing.domain.convert; + +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.infra.basic.entity.Permission; +import com.landaiqing.infra.basic.entity.Student; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +@Mapper +public interface PermissionBOConvert { + PermissionBOConvert INSTANCE= Mappers.getMapper(PermissionBOConvert.class); + + List convertToboList(List permissions); +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/convert/StudentBOConvert.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/convert/StudentBOConvert.java new file mode 100644 index 0000000..a3d0a8b --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/convert/StudentBOConvert.java @@ -0,0 +1,15 @@ +package com.landaiqing.domain.convert; + +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.infra.basic.entity.Student; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +@Mapper +public interface StudentBOConvert { + StudentBOConvert INSTANCE= Mappers.getMapper(StudentBOConvert.class); + Student convertBOToEntity(StudentBO studentBO); + List convertBOToDTOList(List students); +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/PermissionDomainService.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/PermissionDomainService.java new file mode 100644 index 0000000..a4d94f0 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/PermissionDomainService.java @@ -0,0 +1,11 @@ +package com.landaiqing.domain.service; + +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; + +import java.util.List; + +public interface PermissionDomainService { + + List queryPermission(List permissionList); +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/RolePermissionDomainService.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/RolePermissionDomainService.java new file mode 100644 index 0000000..cc287cd --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/RolePermissionDomainService.java @@ -0,0 +1,10 @@ +package com.landaiqing.domain.service; + +import com.landaiqing.domain.bo.StudentBO; + +import java.util.List; + +public interface RolePermissionDomainService { + + List queryPermissionByRoleId(Integer roleId); +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentDomainService.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentDomainService.java new file mode 100644 index 0000000..e519a27 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentDomainService.java @@ -0,0 +1,15 @@ +package com.landaiqing.domain.service; + +import com.landaiqing.auth.common.entity.PageResult; +import com.landaiqing.domain.bo.StudentBO; + +import java.util.List; + +public interface StudentDomainService { + + Boolean uploadAvatar(StudentBO studentBO); + + PageResult queryAllStudentByPage(StudentBO studentBO); + + Boolean login(StudentBO studentBO); +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentPermissionDomainService.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentPermissionDomainService.java new file mode 100644 index 0000000..1dfeb69 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentPermissionDomainService.java @@ -0,0 +1,10 @@ +package com.landaiqing.domain.service; + +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; + +import java.util.List; + +public interface StudentPermissionDomainService { + List queryStudentPermission(StudentBO studentBO); +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentRoleDomainService.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentRoleDomainService.java new file mode 100644 index 0000000..af276b6 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/StudentRoleDomainService.java @@ -0,0 +1,11 @@ +package com.landaiqing.domain.service; + +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.infra.basic.entity.Student; + +import java.util.List; + +public interface StudentRoleDomainService { + Integer queryStudentRole(StudentBO studentBO); +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/PermissionDomainServiceImpl.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/PermissionDomainServiceImpl.java new file mode 100644 index 0000000..fb431a0 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/PermissionDomainServiceImpl.java @@ -0,0 +1,34 @@ +package com.landaiqing.domain.service.impl; + +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.domain.convert.PermissionBOConvert; +import com.landaiqing.domain.service.*; +import com.landaiqing.infra.basic.entity.Permission; +import com.landaiqing.infra.basic.service.PermissionService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Classname StudentPermissionDomainServiceImpl + * @BelongsProject: student-Management-system + * @BelongsPackage: com.landaiqing.domain.service.impl + * @Author: landaiqing + * @CreateTime: 2024-03-05 11:59 + * @Description: TODO + * @Version: 1.0 + */ +@Service +public class PermissionDomainServiceImpl implements PermissionDomainService { + @Resource + private PermissionService permissionService; + + @Override + public List queryPermission(List permissionList) { + List permission= permissionService.queryPermission(permissionList); + List permissionBOList = PermissionBOConvert.INSTANCE.convertToboList(permission); + return permissionBOList; + } +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/RolePermissionDomainServiceImpl.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/RolePermissionDomainServiceImpl.java new file mode 100644 index 0000000..94c5498 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/RolePermissionDomainServiceImpl.java @@ -0,0 +1,33 @@ +package com.landaiqing.domain.service.impl; + +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.domain.convert.StudentBOConvert; +import com.landaiqing.domain.service.RolePermissionDomainService; +import com.landaiqing.domain.service.StudentRoleDomainService; +import com.landaiqing.infra.basic.entity.Student; +import com.landaiqing.infra.basic.service.RolePermissionService; +import com.landaiqing.infra.basic.service.StudentRoleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Classname StudentPermissionDomainServiceImpl + * @BelongsProject: student-Management-system + * @BelongsPackage: com.landaiqing.domain.service.impl + * @Author: landaiqing + * @CreateTime: 2024-03-05 11:59 + * @Description: TODO + * @Version: 1.0 + */ +@Service +public class RolePermissionDomainServiceImpl implements RolePermissionDomainService { + @Resource + private RolePermissionService rolePermissionService; + @Override + public List queryPermissionByRoleId(Integer roleId) { + List permissionList = rolePermissionService.queryPermissionById(roleId); + return permissionList; + } +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentDomainServiceImpl.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentDomainServiceImpl.java new file mode 100644 index 0000000..640f166 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentDomainServiceImpl.java @@ -0,0 +1,68 @@ +package com.landaiqing.domain.service.impl; + +import com.landaiqing.auth.common.entity.PageResult; +import com.landaiqing.auth.common.enums.IsDeletedFlagEnum; +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.domain.convert.StudentBOConvert; +import com.landaiqing.domain.service.StudentDomainService; +import com.landaiqing.infra.basic.entity.Student; +import com.landaiqing.infra.basic.service.StudentService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * @Classname StudentDomainServiceImpl + * @BelongsProject: student-Management-system + * @BelongsPackage: com.landaiqing.domain.service.impl + * @Author: landaiqing + * @CreateTime: 2024-03-04 23:14 + * @Description: TODO + * @Version: 1.0 + */ +@Service +@Slf4j +public class StudentDomainServiceImpl implements StudentDomainService { + @Resource + private StudentService studentService; + + @Override + public Boolean uploadAvatar(StudentBO studentBO) { + Student student = new Student(); + student.setId(studentBO.getId()); + student.setAvatar(studentBO.getUrl()); + student.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode()); + Integer count = studentService.update(student); + return count > 0; + } + + @Override + public PageResult queryAllStudentByPage(StudentBO studentBO) { + PageResult pageResult = new PageResult<>(); + pageResult.setPageNo(studentBO.getPageNo()); + pageResult.setPageSize(studentBO.getPageSize()); + int start = (studentBO.getPageNo() - 1) * studentBO.getPageSize(); + Student student = StudentBOConvert.INSTANCE.convertBOToEntity(studentBO); + Integer total = studentService.selectCount(); + if (total == 0) { + return pageResult; + } + List studentList = studentService.queryPage(student, start, studentBO.getPageSize()); + List studentBOS = StudentBOConvert.INSTANCE.convertBOToDTOList(studentList); + pageResult.setRecords(studentBOS); + pageResult.setTotal(total); + return pageResult; + } + + @Override + public Boolean login(StudentBO studentBO) { + Student student = StudentBOConvert.INSTANCE.convertBOToEntity(studentBO); + Integer count= studentService.login(student); + return count>0; + } + + +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentPermissionDomainServiceImpl.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentPermissionDomainServiceImpl.java new file mode 100644 index 0000000..37d8f95 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentPermissionDomainServiceImpl.java @@ -0,0 +1,43 @@ +package com.landaiqing.domain.service.impl; + +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.domain.service.*; +import com.landaiqing.infra.basic.entity.Student; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Classname StudentPermissionDomainServiceImpl + * @BelongsProject: student-Management-system + * @BelongsPackage: com.landaiqing.domain.service.impl + * @Author: landaiqing + * @CreateTime: 2024-03-05 11:59 + * @Description: TODO + * @Version: 1.0 + */ +@Service +public class StudentPermissionDomainServiceImpl implements StudentPermissionDomainService { + @Resource + private StudentPermissionDomainService studentPermissionDomainService; + + @Resource + private StudentRoleDomainService studentRoleDomainService; + + @Resource + private StudentDomainService studentDomainService; + + @Resource + private RolePermissionDomainService rolePermissionDomainService; + @Resource + private PermissionDomainService permissionDomainService; + @Override + public List queryStudentPermission(StudentBO studentBO) { + Integer roleId = studentRoleDomainService.queryStudentRole(studentBO); + List permissionList= rolePermissionDomainService.queryPermissionByRoleId(roleId); + List permissionBOList= permissionDomainService.queryPermission(permissionList); + return permissionBOList; + } +} diff --git a/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentRoleDomainServiceImpl.java b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentRoleDomainServiceImpl.java new file mode 100644 index 0000000..c399948 --- /dev/null +++ b/sms-auth/sms-auth-domain/src/main/java/com/landaiqing/domain/service/impl/StudentRoleDomainServiceImpl.java @@ -0,0 +1,38 @@ +package com.landaiqing.domain.service.impl; + +import com.landaiqing.domain.bo.PermissionBO; +import com.landaiqing.domain.bo.StudentBO; +import com.landaiqing.domain.convert.StudentBOConvert; +import com.landaiqing.domain.service.StudentDomainService; +import com.landaiqing.domain.service.StudentPermissionDomainService; +import com.landaiqing.domain.service.StudentRoleDomainService; +import com.landaiqing.infra.basic.entity.Student; +import com.landaiqing.infra.basic.service.StudentRoleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Classname StudentPermissionDomainServiceImpl + * @BelongsProject: student-Management-system + * @BelongsPackage: com.landaiqing.domain.service.impl + * @Author: landaiqing + * @CreateTime: 2024-03-05 11:59 + * @Description: TODO + * @Version: 1.0 + */ +@Service +public class StudentRoleDomainServiceImpl implements StudentRoleDomainService { + @Resource + private StudentRoleService studentRoleService; + + + @Override + public Integer queryStudentRole(StudentBO studentBO) { + + Student student = StudentBOConvert.INSTANCE.convertBOToEntity(studentBO); + Integer roleId = studentRoleService.queryRoleById(student); + return roleId; + } +} diff --git a/sms-auth/sms-auth-infra/pom.xml b/sms-auth/sms-auth-infra/pom.xml new file mode 100644 index 0000000..f902aed --- /dev/null +++ b/sms-auth/sms-auth-infra/pom.xml @@ -0,0 +1,47 @@ + + 4.0.0 + + com.landaiqing + sms-auth + 1.0-SNAPSHOT + + + sms-auth-infra + jar + + sms-auth-infra + http://maven.apache.org + + + + + org.springframework.boot + spring-boot-starter-jdbc + 2.4.2 + + + + com.alibaba + druid-spring-boot-starter + 1.1.21 + + + + mysql + mysql-connector-java + 8.0.33 + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.0 + + + com.landaiqing + sms-auth-common + 1.0-SNAPSHOT + + + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/MybatisConfiguration.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/MybatisConfiguration.java new file mode 100644 index 0000000..2863ee2 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/MybatisConfiguration.java @@ -0,0 +1,17 @@ +package com.landaiqing.infra.basic.config; + +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MybatisConfiguration { + + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor(){ + MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); + mybatisPlusInterceptor.addInnerInterceptor(new MybatisPlusAllSqlLog()); + return mybatisPlusInterceptor; + } + +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/MybatisPlusAllSqlLog.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/MybatisPlusAllSqlLog.java new file mode 100644 index 0000000..f42ff81 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/MybatisPlusAllSqlLog.java @@ -0,0 +1,116 @@ +package com.landaiqing.infra.basic.config; + +import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.ParameterMapping; +import org.apache.ibatis.reflection.MetaObject; +import org.apache.ibatis.session.Configuration; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; +import org.apache.ibatis.type.TypeHandlerRegistry; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.CollectionUtils; + +import java.sql.SQLException; +import java.text.DateFormat; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; + +public class MybatisPlusAllSqlLog implements InnerInterceptor { + public static final Logger log = LoggerFactory.getLogger("sys-sql"); + + @Override + public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException { + logInfo(boundSql, ms, parameter); + } + + @Override + public void beforeUpdate(Executor executor, MappedStatement ms, Object parameter) throws SQLException { + BoundSql boundSql = ms.getBoundSql(parameter); + logInfo(boundSql, ms, parameter); + } + + private static void logInfo(BoundSql boundSql, MappedStatement ms, Object parameter) { + try { + log.info("parameter = " + parameter); + // 获取到节点的id,即sql语句的id + String sqlId = ms.getId(); + log.info("sqlId = " + sqlId); + // 获取节点的配置 + Configuration configuration = ms.getConfiguration(); + // 获取到最终的sql语句 + String sql = getSql(configuration, boundSql, sqlId); + log.info("完整的sql:{}", sql); + } catch (Exception e) { + log.error("异常:{}", e.getLocalizedMessage(), e); + } + } + + // 封装了一下sql语句,使得结果返回完整xml路径下的sql语句节点id + sql语句 + public static String getSql(Configuration configuration, BoundSql boundSql, String sqlId) { + return sqlId + ":" + showSql(configuration, boundSql); + } + + // 进行?的替换 + public static String showSql(Configuration configuration, BoundSql boundSql) { + // 获取参数 + Object parameterObject = boundSql.getParameterObject(); + List parameterMappings = boundSql.getParameterMappings(); + // sql语句中多个空格都用一个空格代替 + String sql = boundSql.getSql().replaceAll("[\\s]+", " "); + if (!CollectionUtils.isEmpty(parameterMappings) && parameterObject != null) { + // 获取类型处理器注册器,类型处理器的功能是进行java类型和数据库类型的转换 + TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry(); + // 如果根据parameterObject.getClass()可以找到对应的类型,则替换 + if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) { + sql = sql.replaceFirst("\\?", + Matcher.quoteReplacement(getParameterValue(parameterObject))); + } else { + // MetaObject主要是封装了originalObject对象,提供了get和set的方法用于获取和设置originalObject的属性值,主要支持对JavaBean、Collection、Map三种类型对象的操作 + MetaObject metaObject = configuration.newMetaObject(parameterObject); + for (ParameterMapping parameterMapping : parameterMappings) { + String propertyName = parameterMapping.getProperty(); + if (metaObject.hasGetter(propertyName)) { + Object obj = metaObject.getValue(propertyName); + sql = sql.replaceFirst("\\?", + Matcher.quoteReplacement(getParameterValue(obj))); + } else if (boundSql.hasAdditionalParameter(propertyName)) { + // 该分支是动态sql + Object obj = boundSql.getAdditionalParameter(propertyName); + sql = sql.replaceFirst("\\?", + Matcher.quoteReplacement(getParameterValue(obj))); + } else { + // 打印出缺失,提醒该参数缺失并防止错位 + sql = sql.replaceFirst("\\?", "缺失"); + } + } + } + } + return sql; + } + + // 如果参数是String,则添加单引号, 如果是日期,则转换为时间格式器并加单引号; 对参数是null和不是null的情况作了处理 + private static String getParameterValue(Object obj) { + String value; + if (obj instanceof String) { + value = "'" + obj.toString() + "'"; + } else if (obj instanceof Date) { + DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, + DateFormat.DEFAULT, Locale.CHINA); + value = "'" + formatter.format(new Date()) + "'"; + } else { + if (obj != null) { + value = obj.toString(); + } else { + value = ""; + } + } + return value; + } + +} \ No newline at end of file diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/SqlStatementInterceptor.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/SqlStatementInterceptor.java new file mode 100644 index 0000000..4b20619 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/config/SqlStatementInterceptor.java @@ -0,0 +1,52 @@ +package com.landaiqing.infra.basic.config; + +import org.apache.ibatis.cache.CacheKey; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.plugin.*; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Properties; + + +@Intercepts({ + @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, + Object.class}), + @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, + Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class})}) +public class SqlStatementInterceptor implements Interceptor { + + public static final Logger log = LoggerFactory.getLogger("sys-sql"); + + @Override + public Object intercept(Invocation invocation) throws Throwable { + long startTime = System.currentTimeMillis(); + try { + return invocation.proceed(); + } finally { + long timeConsuming = System.currentTimeMillis() - startTime; + log.info("执行SQL:{}ms", timeConsuming); + if (timeConsuming > 999 && timeConsuming < 5000) { + log.info("执行SQL大于1s:{}ms", timeConsuming); + } else if (timeConsuming >= 5000 && timeConsuming < 10000) { + log.info("执行SQL大于5s:{}ms", timeConsuming); + } else if (timeConsuming >= 10000) { + log.info("执行SQL大于10s:{}ms", timeConsuming); + } + } + } + + @Override + public Object plugin(Object target) { + return Plugin.wrap(target, this); + } + + @Override + public void setProperties(Properties properties) { + + } +} \ No newline at end of file diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/ClazzDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/ClazzDao.java new file mode 100644 index 0000000..d2fb615 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/ClazzDao.java @@ -0,0 +1,83 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.infra.basic.entity.Clazz; +import org.apache.ibatis.annotations.Param; + +import java.awt.print.Pageable; +import java.util.List; + +/** + * (Clazz)表数据库访问层 + * + * @author makejava + * @since 2024-03-04 22:43:59 + */ +public interface ClazzDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Clazz queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param clazz 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(Clazz clazz); + + /** + * 统计总行数 + * + * @param clazz 查询条件 + * @return 总行数 + */ + long count(Clazz clazz); + + /** + * 新增数据 + * + * @param clazz 实例对象 + * @return 影响行数 + */ + int insert(Clazz clazz); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param clazz 实例对象 + * @return 影响行数 + */ + int update(Clazz clazz); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/GradeDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/GradeDao.java new file mode 100644 index 0000000..a179a2d --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/GradeDao.java @@ -0,0 +1,83 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.infra.basic.entity.Grade; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * (Grade)表数据库访问层 + * + * @author makejava + * @since 2024-03-04 22:29:20 + */ +public interface GradeDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Grade queryById(Long id); + + /** + * 查询指定行数据 + * + * @param grade 查询条件 + * @param pageable 分页对象 + * @return 对象列表 + */ + List queryAllByLimit(Grade grade); + + /** + * 统计总行数 + * + * @param grade 查询条件 + * @return 总行数 + */ + long count(Grade grade); + + /** + * 新增数据 + * + * @param grade 实例对象 + * @return 影响行数 + */ + int insert(Grade grade); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param grade 实例对象 + * @return 影响行数 + */ + int update(Grade grade); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Long id); + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/PermissionDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/PermissionDao.java new file mode 100644 index 0000000..2078132 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/PermissionDao.java @@ -0,0 +1,84 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.infra.basic.entity.Permission; +import org.apache.ibatis.annotations.Param; + +import java.awt.print.Pageable; +import java.util.List; + +/** + * (Permission)表数据库访问层 + * + * @author makejava + * @since 2024-03-04 22:29:35 + */ +public interface PermissionDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Permission queryById(Long id); + + /** + * 查询指定行数据 + * + * @param permission 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(Permission permission); + + /** + * 统计总行数 + * + * @param permission 查询条件 + * @return 总行数 + */ + long count(Permission permission); + + /** + * 新增数据 + * + * @param permission 实例对象 + * @return 影响行数 + */ + int insert(Permission permission); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param permission 实例对象 + * @return 影响行数 + */ + int update(Permission permission); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Long id); + + List queryPermission(@Param("list") List permissionList); +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/RoleDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/RoleDao.java new file mode 100644 index 0000000..0ef518a --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/RoleDao.java @@ -0,0 +1,83 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.infra.basic.entity.Role; +import org.apache.ibatis.annotations.Param; + +import java.awt.print.Pageable; +import java.util.List; + +/** + * (Role)表数据库访问层 + * + * @author makejava + * @since 2024-03-04 22:29:56 + */ +public interface RoleDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Role queryById(Long id); + + /** + * 查询指定行数据 + * + * @param role 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(Role role); + + /** + * 统计总行数 + * + * @param role 查询条件 + * @return 总行数 + */ + long count(Role role); + + /** + * 新增数据 + * + * @param role 实例对象 + * @return 影响行数 + */ + int insert(Role role); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param role 实例对象 + * @return 影响行数 + */ + int update(Role role); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Long id); + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/RolePermissionDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/RolePermissionDao.java new file mode 100644 index 0000000..fe3ac01 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/RolePermissionDao.java @@ -0,0 +1,84 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.infra.basic.entity.RolePermission; +import org.apache.ibatis.annotations.Param; + +import java.awt.print.Pageable; +import java.util.List; + +/** + * (RolePermission)表数据库访问层 + * + * @author makejava + * @since 2024-03-04 22:30:14 + */ +public interface RolePermissionDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + RolePermission queryById(Long id); + + /** + * 查询指定行数据 + * + * @param rolePermission 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(RolePermission rolePermission); + + /** + * 统计总行数 + * + * @param rolePermission 查询条件 + * @return 总行数 + */ + long count(RolePermission rolePermission); + + /** + * 新增数据 + * + * @param rolePermission 实例对象 + * @return 影响行数 + */ + int insert(RolePermission rolePermission); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param rolePermission 实例对象 + * @return 影响行数 + */ + int update(RolePermission rolePermission); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Long id); + + List queryPermissionById(@Param("roleId") Integer roleId); +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/StudentDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/StudentDao.java new file mode 100644 index 0000000..7c74cdd --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/StudentDao.java @@ -0,0 +1,90 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.auth.common.entity.PageResult; +import com.landaiqing.infra.basic.entity.Student; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * (Student)表数据库访问层 + * + * @author makejava + * @since 2024-03-04 22:25:32 + */ +public interface StudentDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Student queryById(Long id); + + /** + * 查询指定行数据 + * + * @param student 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(Student student); + + /** + * 统计总行数 + * + * @param student 查询条件 + * @return 总行数 + */ + long count(Student student); + + /** + * 新增数据 + * + * @param student 实例对象 + * @return 影响行数 + */ + int insert(Student student); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param student 实例对象 + * @return 影响行数 + */ + int update(Student student); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Long id); + + List queryPage(@Param("student") Student student, + @Param("start") int start, + @Param("pageSize") Integer pageSize); + + Integer selectCount(); + + Integer login(Student student); +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/StudentRoleDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/StudentRoleDao.java new file mode 100644 index 0000000..c77ce02 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/StudentRoleDao.java @@ -0,0 +1,85 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.infra.basic.entity.Student; +import com.landaiqing.infra.basic.entity.StudentRole; +import org.apache.ibatis.annotations.Param; + +import java.awt.print.Pageable; +import java.util.List; + +/** + * (StudentRole)表数据库访问层 + * + * @author makejava + * @since 2024-03-05 12:17:53 + */ +public interface StudentRoleDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + StudentRole queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param studentRole 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(StudentRole studentRole); + + /** + * 统计总行数 + * + * @param studentRole 查询条件 + * @return 总行数 + */ + long count(StudentRole studentRole); + + /** + * 新增数据 + * + * @param studentRole 实例对象 + * @return 影响行数 + */ + int insert(StudentRole studentRole); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param studentRole 实例对象 + * @return 影响行数 + */ + int update(StudentRole studentRole); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + Integer queryRoleById(Student student); +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/UserDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/UserDao.java new file mode 100644 index 0000000..ffe49f1 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/UserDao.java @@ -0,0 +1,81 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.infra.basic.entity.User; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * (User)表数据库访问层 + * + * @author makejava + * @since 2024-03-05 12:17:20 + */ +public interface UserDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + User queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param user 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(User user); + + /** + * 统计总行数 + * + * @param user 查询条件 + * @return 总行数 + */ + long count(User user); + + /** + * 新增数据 + * + * @param user 实例对象 + * @return 影响行数 + */ + int insert(User user); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param user 实例对象 + * @return 影响行数 + */ + int update(User user); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/UserRoleDao.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/UserRoleDao.java new file mode 100644 index 0000000..54ffe92 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/dao/UserRoleDao.java @@ -0,0 +1,83 @@ +package com.landaiqing.infra.basic.dao; + +import com.landaiqing.infra.basic.entity.UserRole; +import org.apache.ibatis.annotations.Param; + +import java.awt.print.Pageable; +import java.util.List; + +/** + * (UserRole)表数据库访问层 + * + * @author makejava + * @since 2024-03-05 12:18:10 + */ +public interface UserRoleDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + UserRole queryById(Long id); + + /** + * 查询指定行数据 + * + * @param userRole 查询条件 + * @return 对象列表 + */ + List queryAllByLimit(UserRole userRole); + + /** + * 统计总行数 + * + * @param userRole 查询条件 + * @return 总行数 + */ + long count(UserRole userRole); + + /** + * 新增数据 + * + * @param userRole 实例对象 + * @return 影响行数 + */ + int insert(UserRole userRole); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param userRole 实例对象 + * @return 影响行数 + */ + int update(UserRole userRole); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Long id); + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Clazz.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Clazz.java new file mode 100644 index 0000000..d04ebfb --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Clazz.java @@ -0,0 +1,50 @@ +package com.landaiqing.infra.basic.entity; + +import java.io.Serializable; + +/** + * (Clazz)实体类 + * + * @author makejava + * @since 2024-03-04 22:44:00 + */ +public class Clazz implements Serializable { + private static final long serialVersionUID = -14659318323663338L; + + private Integer id; +/** + * 班级名称 + */ + private String className; +/** + * 班级人数 + */ + private Integer num; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public Integer getNum() { + return num; + } + + public void setNum(Integer num) { + this.num = num; + } + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Grade.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Grade.java new file mode 100644 index 0000000..4cdfb24 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Grade.java @@ -0,0 +1,28 @@ +package com.landaiqing.infra.basic.entity; + +import lombok.Data; + +import java.io.Serializable; + +/** + * (Grade)实体类 + * + * @author makejava + * @since 2024-03-04 22:29:20 + */ +@Data +public class Grade implements Serializable { + + private Long id; + /** + * 年级 + */ + private String gradeName; + /** + * 年级人数 + */ + private Long num; + + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Permission.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Permission.java new file mode 100644 index 0000000..e035bf4 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Permission.java @@ -0,0 +1,54 @@ +package com.landaiqing.infra.basic.entity; + +import lombok.Data; + +import java.util.Date; +import java.io.Serializable; + +/** + * (Permission)实体类 + * + * @author makejava + * @since 2024-03-04 22:29:35 + */ +@Data +public class Permission implements Serializable { + + private Long id; + + private String name; + + private Long parentId; + + private Integer type; + + private String menuUrl; + + private Integer status; + + private Integer show; + + private String icon; + + private String permissionKey; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + + private Integer isDeleted; + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Role.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Role.java new file mode 100644 index 0000000..e63b456 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Role.java @@ -0,0 +1,43 @@ +package com.landaiqing.infra.basic.entity; + +import lombok.Data; + +import java.util.Date; +import java.io.Serializable; + +/** + * (Role)实体类 + * + * @author makejava + * @since 2024-03-04 22:29:56 + */ +@Data +public class Role implements Serializable { + + private Long id; + + private String roleName; + + private String roleKey; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + + private Integer isDeleted; + + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/RolePermission.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/RolePermission.java new file mode 100644 index 0000000..6311432 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/RolePermission.java @@ -0,0 +1,43 @@ +package com.landaiqing.infra.basic.entity; + +import lombok.Data; + +import java.util.Date; +import java.io.Serializable; + +/** + * (RolePermission)实体类 + * + * @author makejava + * @since 2024-03-04 22:30:14 + */ +@Data +public class RolePermission implements Serializable { + + private Long id; + + private Long roleId; + + private Long permissionId; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + + private Integer isDeleted; + + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Student.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Student.java new file mode 100644 index 0000000..c62b699 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/Student.java @@ -0,0 +1,82 @@ +package com.landaiqing.infra.basic.entity; + +import lombok.Data; + +import java.util.Date; +import java.io.Serializable; + +/** + * (Student)实体类 + * + * @author makejava + * @since 2024-03-04 22:25:32 + */ +@Data +public class Student implements Serializable { + + /** + * id + */ + private Long id; + /** + * 学号 + */ + private String sno; + /** + * 密码 + */ + private String password; + /** + * 姓名 + */ + private String username; + /** + * 班级 + */ + private Integer className; + /** + * 年级 + */ + private Integer grade; + /** + * 年龄 + */ + private Integer age; + /** + * 性别 + */ + private Integer sex; + /** + * 头像链接 + */ + private String avatar; + /** + * 出生日期 + */ + private Date dateOfBirth; + /** + * email + */ + private String email; + /** + * 电话 + */ + private String phoneNumber; + /** + * 班级id + */ + private Long classId; + /** + * 年级id + */ + private Long gradeId; + /** + * 角色id + */ + private Integer roleId; + + private Integer isDeleted; + + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/StudentRole.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/StudentRole.java new file mode 100644 index 0000000..c8126a2 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/StudentRole.java @@ -0,0 +1,46 @@ +package com.landaiqing.infra.basic.entity; + +import java.io.Serializable; + +/** + * (StudentRole)实体类 + * + * @author makejava + * @since 2024-03-05 12:17:53 + */ +public class StudentRole implements Serializable { + private static final long serialVersionUID = -31879713425539695L; + + private Integer id; + + private Long studentId; + + private Long roleId; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Long getStudentId() { + return studentId; + } + + public void setStudentId(Long studentId) { + this.studentId = studentId; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/User.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/User.java new file mode 100644 index 0000000..eee7cf6 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/User.java @@ -0,0 +1,46 @@ +package com.landaiqing.infra.basic.entity; + +import java.io.Serializable; + +/** + * (User)实体类 + * + * @author makejava + * @since 2024-03-05 12:17:20 + */ +public class User implements Serializable { + private static final long serialVersionUID = 722350032981333679L; + + private Integer id; + + private String username; + + private String password; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/UserRole.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/UserRole.java new file mode 100644 index 0000000..7293581 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/entity/UserRole.java @@ -0,0 +1,46 @@ +package com.landaiqing.infra.basic.entity; + +import java.io.Serializable; + +/** + * (UserRole)实体类 + * + * @author makejava + * @since 2024-03-05 12:18:10 + */ +public class UserRole implements Serializable { + private static final long serialVersionUID = -74671402061801196L; + + private Long id; + + private Long userId; + + private Long roleId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + +} + diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/ClazzService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/ClazzService.java new file mode 100644 index 0000000..4463a5f --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/ClazzService.java @@ -0,0 +1,48 @@ +package com.landaiqing.infra.basic.service; + +import com.landaiqing.infra.basic.entity.Clazz; + + +/** + * (Clazz)表服务接口 + * + * @author makejava + * @since 2024-03-04 22:44:00 + */ +public interface ClazzService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Clazz queryById(Integer id); + + + + /** + * 新增数据 + * + * @param clazz 实例对象 + * @return 实例对象 + */ + Clazz insert(Clazz clazz); + + /** + * 修改数据 + * + * @param clazz 实例对象 + * @return 实例对象 + */ + Clazz update(Clazz clazz); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/GradeService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/GradeService.java new file mode 100644 index 0000000..9f04009 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/GradeService.java @@ -0,0 +1,49 @@ +package com.landaiqing.infra.basic.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.Grade; + + +/** + * (Grade)表服务接口 + * + * @author makejava + * @since 2024-03-04 22:29:20 + */ +public interface GradeService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Grade queryById(Long id); + + + + /** + * 新增数据 + * + * @param grade 实例对象 + * @return 实例对象 + */ + Grade insert(Grade grade); + + /** + * 修改数据 + * + * @param grade 实例对象 + * @return 实例对象 + */ + Grade update(Grade grade); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/PermissionService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/PermissionService.java new file mode 100644 index 0000000..a663205 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/PermissionService.java @@ -0,0 +1,52 @@ +package com.landaiqing.infra.basic.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.Permission; + +import java.util.List; + + +/** + * (Permission)表服务接口 + * + * @author makejava + * @since 2024-03-04 22:29:35 + */ +public interface PermissionService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Permission queryById(Long id); + + + + /** + * 新增数据 + * + * @param permission 实例对象 + * @return 实例对象 + */ + Permission insert(Permission permission); + + /** + * 修改数据 + * + * @param permission 实例对象 + * @return 实例对象 + */ + Permission update(Permission permission); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + + List queryPermission(List permissionList); +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/RolePermissionService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/RolePermissionService.java new file mode 100644 index 0000000..d952a0b --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/RolePermissionService.java @@ -0,0 +1,52 @@ +package com.landaiqing.infra.basic.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.RolePermission; + +import java.util.List; + + +/** + * (RolePermission)表服务接口 + * + * @author makejava + * @since 2024-03-04 22:30:14 + */ +public interface RolePermissionService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + RolePermission queryById(Long id); + + + + /** + * 新增数据 + * + * @param rolePermission 实例对象 + * @return 实例对象 + */ + RolePermission insert(RolePermission rolePermission); + + /** + * 修改数据 + * + * @param rolePermission 实例对象 + * @return 实例对象 + */ + RolePermission update(RolePermission rolePermission); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + + List queryPermissionById(Integer roleId); +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/RoleService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/RoleService.java new file mode 100644 index 0000000..931d731 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/RoleService.java @@ -0,0 +1,48 @@ +package com.landaiqing.infra.basic.service; + +import com.landaiqing.infra.basic.entity.Role; + + +/** + * (Role)表服务接口 + * + * @author makejava + * @since 2024-03-04 22:29:56 + */ +public interface RoleService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Role queryById(Long id); + + + + /** + * 新增数据 + * + * @param role 实例对象 + * @return 实例对象 + */ + Role insert(Role role); + + /** + * 修改数据 + * + * @param role 实例对象 + * @return 实例对象 + */ + Role update(Role role); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/StudentRoleService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/StudentRoleService.java new file mode 100644 index 0000000..1ecee41 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/StudentRoleService.java @@ -0,0 +1,51 @@ +package com.landaiqing.infra.basic.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.Student; +import com.landaiqing.infra.basic.entity.StudentRole; + + +/** + * (StudentRole)表服务接口 + * + * @author makejava + * @since 2024-03-05 12:17:53 + */ +public interface StudentRoleService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + StudentRole queryById(Integer id); + + + + /** + * 新增数据 + * + * @param studentRole 实例对象 + * @return 实例对象 + */ + StudentRole insert(StudentRole studentRole); + + /** + * 修改数据 + * + * @param studentRole 实例对象 + * @return 实例对象 + */ + StudentRole update(StudentRole studentRole); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + Integer queryRoleById(Student student); +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/StudentService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/StudentService.java new file mode 100644 index 0000000..ef025f4 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/StudentService.java @@ -0,0 +1,56 @@ +package com.landaiqing.infra.basic.service; + +import com.landaiqing.auth.common.entity.PageResult; +import com.landaiqing.infra.basic.entity.Student; + + +import java.util.List; + +/** + * (Student)表服务接口 + * + * @author makejava + * @since 2024-03-04 22:25:33 + */ +public interface StudentService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Student queryById(Long id); + + + + /** + * 新增数据 + * + * @param student 实例对象 + * @return 实例对象 + */ + Student insert(Student student); + + /** + * 修改数据 + * + * @param student 实例对象 + * @return 实例对象 + */ + Integer update(Student student); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + + List queryPage(Student student,int start, Integer pageSize); + + Integer selectCount(); + + Integer login(Student student); +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/UserRoleService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/UserRoleService.java new file mode 100644 index 0000000..98c49ba --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/UserRoleService.java @@ -0,0 +1,47 @@ +package com.landaiqing.infra.basic.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.UserRole; + +/** + * (UserRole)表服务接口 + * + * @author makejava + * @since 2024-03-05 12:18:10 + */ +public interface UserRoleService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + UserRole queryById(Long id); + + + /** + * 新增数据 + * + * @param userRole 实例对象 + * @return 实例对象 + */ + UserRole insert(UserRole userRole); + + /** + * 修改数据 + * + * @param userRole 实例对象 + * @return 实例对象 + */ + UserRole update(UserRole userRole); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/UserService.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/UserService.java new file mode 100644 index 0000000..52f6840 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/UserService.java @@ -0,0 +1,47 @@ +package com.landaiqing.infra.basic.service; + +import com.landaiqing.infra.basic.entity.User; + + +/** + * (User)表服务接口 + * + * @author makejava + * @since 2024-03-05 12:17:20 + */ +public interface UserService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + User queryById(Integer id); + + + /** + * 新增数据 + * + * @param user 实例对象 + * @return 实例对象 + */ + User insert(User user); + + /** + * 修改数据 + * + * @param user 实例对象 + * @return 实例对象 + */ + User update(User user); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/ClazzServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/ClazzServiceImpl.java new file mode 100644 index 0000000..be5a5f4 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/ClazzServiceImpl.java @@ -0,0 +1,69 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.landaiqing.infra.basic.entity.Clazz; +import com.landaiqing.infra.basic.dao.ClazzDao; +import com.landaiqing.infra.basic.service.ClazzService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; + +/** + * (Clazz)表服务实现类 + * + * @author makejava + * @since 2024-03-04 22:44:00 + */ +@Service("clazzService") +public class ClazzServiceImpl implements ClazzService { + @Resource + private ClazzDao clazzDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public Clazz queryById(Integer id) { + return this.clazzDao.queryById(id); + } + + + + /** + * 新增数据 + * + * @param clazz 实例对象 + * @return 实例对象 + */ + @Override + public Clazz insert(Clazz clazz) { + this.clazzDao.insert(clazz); + return clazz; + } + + /** + * 修改数据 + * + * @param clazz 实例对象 + * @return 实例对象 + */ + @Override + public Clazz update(Clazz clazz) { + this.clazzDao.update(clazz); + return this.queryById(clazz.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.clazzDao.deleteById(id) > 0; + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/GradeServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/GradeServiceImpl.java new file mode 100644 index 0000000..1b8ae96 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/GradeServiceImpl.java @@ -0,0 +1,70 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.Grade; +import com.landaiqing.infra.basic.dao.GradeDao; +import com.landaiqing.infra.basic.service.GradeService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; + +/** + * (Grade)表服务实现类 + * + * @author makejava + * @since 2024-03-04 22:29:20 + */ +@Service("gradeService") +public class GradeServiceImpl implements GradeService { + @Resource + private GradeDao gradeDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public Grade queryById(Long id) { + return this.gradeDao.queryById(id); + } + + + + /** + * 新增数据 + * + * @param grade 实例对象 + * @return 实例对象 + */ + @Override + public Grade insert(Grade grade) { + this.gradeDao.insert(grade); + return grade; + } + + /** + * 修改数据 + * + * @param grade 实例对象 + * @return 实例对象 + */ + @Override + public Grade update(Grade grade) { + this.gradeDao.update(grade); + return this.queryById(grade.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.gradeDao.deleteById(id) > 0; + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/PermissionServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/PermissionServiceImpl.java new file mode 100644 index 0000000..ebe99f5 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/PermissionServiceImpl.java @@ -0,0 +1,75 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.Permission; +import com.landaiqing.infra.basic.dao.PermissionDao; +import com.landaiqing.infra.basic.service.PermissionService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; +import java.util.List; + +/** + * (Permission)表服务实现类 + * + * @author makejava + * @since 2024-03-04 22:29:36 + */ +@Service("permissionService") +public class PermissionServiceImpl implements PermissionService { + @Resource + private PermissionDao permissionDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public Permission queryById(Long id) { + return this.permissionDao.queryById(id); + } + + + /** + * 新增数据 + * + * @param permission 实例对象 + * @return 实例对象 + */ + @Override + public Permission insert(Permission permission) { + this.permissionDao.insert(permission); + return permission; + } + + /** + * 修改数据 + * + * @param permission 实例对象 + * @return 实例对象 + */ + @Override + public Permission update(Permission permission) { + this.permissionDao.update(permission); + return this.queryById(permission.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.permissionDao.deleteById(id) > 0; + } + + @Override + public List queryPermission(List permissionList) { + return this.permissionDao.queryPermission(permissionList); + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/RolePermissionServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/RolePermissionServiceImpl.java new file mode 100644 index 0000000..2e70683 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/RolePermissionServiceImpl.java @@ -0,0 +1,76 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.RolePermission; +import com.landaiqing.infra.basic.dao.RolePermissionDao; +import com.landaiqing.infra.basic.service.RolePermissionService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; +import java.util.List; + +/** + * (RolePermission)表服务实现类 + * + * @author makejava + * @since 2024-03-04 22:30:15 + */ +@Service("rolePermissionService") +public class RolePermissionServiceImpl implements RolePermissionService { + @Resource + private RolePermissionDao rolePermissionDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public RolePermission queryById(Long id) { + return this.rolePermissionDao.queryById(id); + } + + + + /** + * 新增数据 + * + * @param rolePermission 实例对象 + * @return 实例对象 + */ + @Override + public RolePermission insert(RolePermission rolePermission) { + this.rolePermissionDao.insert(rolePermission); + return rolePermission; + } + + /** + * 修改数据 + * + * @param rolePermission 实例对象 + * @return 实例对象 + */ + @Override + public RolePermission update(RolePermission rolePermission) { + this.rolePermissionDao.update(rolePermission); + return this.queryById(rolePermission.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.rolePermissionDao.deleteById(id) > 0; + } + + @Override + public List queryPermissionById(Integer roleId) { + return this.rolePermissionDao.queryPermissionById(roleId); + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/RoleServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/RoleServiceImpl.java new file mode 100644 index 0000000..3a7bc69 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/RoleServiceImpl.java @@ -0,0 +1,70 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.Role; +import com.landaiqing.infra.basic.dao.RoleDao; +import com.landaiqing.infra.basic.service.RoleService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; + +/** + * (Role)表服务实现类 + * + * @author makejava + * @since 2024-03-04 22:29:56 + */ +@Service("roleService") +public class RoleServiceImpl implements RoleService { + @Resource + private RoleDao roleDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public Role queryById(Long id) { + return this.roleDao.queryById(id); + } + + + + /** + * 新增数据 + * + * @param role 实例对象 + * @return 实例对象 + */ + @Override + public Role insert(Role role) { + this.roleDao.insert(role); + return role; + } + + /** + * 修改数据 + * + * @param role 实例对象 + * @return 实例对象 + */ + @Override + public Role update(Role role) { + this.roleDao.update(role); + return this.queryById(role.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.roleDao.deleteById(id) > 0; + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/StudentRoleServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/StudentRoleServiceImpl.java new file mode 100644 index 0000000..c8ebfc2 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/StudentRoleServiceImpl.java @@ -0,0 +1,75 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.Student; +import com.landaiqing.infra.basic.entity.StudentRole; +import com.landaiqing.infra.basic.dao.StudentRoleDao; +import com.landaiqing.infra.basic.service.StudentRoleService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; + +/** + * (StudentRole)表服务实现类 + * + * @author makejava + * @since 2024-03-05 12:17:53 + */ +@Service("studentRoleService") +public class StudentRoleServiceImpl implements StudentRoleService { + @Resource + private StudentRoleDao studentRoleDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public StudentRole queryById(Integer id) { + return this.studentRoleDao.queryById(id); + } + + + /** + * 新增数据 + * + * @param studentRole 实例对象 + * @return 实例对象 + */ + @Override + public StudentRole insert(StudentRole studentRole) { + this.studentRoleDao.insert(studentRole); + return studentRole; + } + + /** + * 修改数据 + * + * @param studentRole 实例对象 + * @return 实例对象 + */ + @Override + public StudentRole update(StudentRole studentRole) { + this.studentRoleDao.update(studentRole); + return this.queryById(studentRole.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.studentRoleDao.deleteById(id) > 0; + } + + @Override + public Integer queryRoleById(Student student) { + return this.studentRoleDao.queryRoleById(student); + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/StudentServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/StudentServiceImpl.java new file mode 100644 index 0000000..c1344db --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/StudentServiceImpl.java @@ -0,0 +1,86 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.landaiqing.auth.common.entity.PageResult; +import com.landaiqing.infra.basic.entity.Student; +import com.landaiqing.infra.basic.dao.StudentDao; +import com.landaiqing.infra.basic.service.StudentService; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; +import java.util.List; + +/** + * (Student)表服务实现类 + * + * @author makejava + * @since 2024-03-04 22:25:33 + */ +@Service("studentService") +public class StudentServiceImpl implements StudentService { + @Resource + private StudentDao studentDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public Student queryById(Long id) { + return this.studentDao.queryById(id); + } + + + + /** + * 新增数据 + * + * @param student 实例对象 + * @return 实例对象 + */ + @Override + public Student insert(Student student) { + this.studentDao.insert(student); + return student; + } + + /** + * 修改数据 + * + * @param student 实例对象 + * @return 实例对象 + */ + @Override + public Integer update(Student student) { + return this.studentDao.update(student); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.studentDao.deleteById(id) > 0; + } + + @Override + public List queryPage(Student student,int start,Integer pageSize) { + return this.studentDao.queryPage(student,start,pageSize); + } + + @Override + public Integer selectCount() { + return this.studentDao.selectCount(); + } + + @Override + public Integer login(Student student) { + return this.studentDao.login(student); + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/UserRoleServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/UserRoleServiceImpl.java new file mode 100644 index 0000000..125d31e --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/UserRoleServiceImpl.java @@ -0,0 +1,70 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.UserRole; +import com.landaiqing.infra.basic.dao.UserRoleDao; +import com.landaiqing.infra.basic.service.UserRoleService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; + +/** + * (UserRole)表服务实现类 + * + * @author makejava + * @since 2024-03-05 12:18:10 + */ +@Service("userRoleService") +public class UserRoleServiceImpl implements UserRoleService { + @Resource + private UserRoleDao userRoleDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public UserRole queryById(Long id) { + return this.userRoleDao.queryById(id); + } + + + + /** + * 新增数据 + * + * @param userRole 实例对象 + * @return 实例对象 + */ + @Override + public UserRole insert(UserRole userRole) { + this.userRoleDao.insert(userRole); + return userRole; + } + + /** + * 修改数据 + * + * @param userRole 实例对象 + * @return 实例对象 + */ + @Override + public UserRole update(UserRole userRole) { + this.userRoleDao.update(userRole); + return this.queryById(userRole.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.userRoleDao.deleteById(id) > 0; + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/UserServiceImpl.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..88e729e --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/service/impl/UserServiceImpl.java @@ -0,0 +1,71 @@ +package com.landaiqing.infra.basic.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.landaiqing.infra.basic.entity.User; +import com.landaiqing.infra.basic.dao.UserDao; +import com.landaiqing.infra.basic.service.UserService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; + +/** + * (User)表服务实现类 + * + * @author makejava + * @since 2024-03-05 12:17:20 + */ +@Service("userService") +public class UserServiceImpl implements UserService { + @Resource + private UserDao userDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public User queryById(Integer id) { + return this.userDao.queryById(id); + } + + + + + /** + * 新增数据 + * + * @param user 实例对象 + * @return 实例对象 + */ + @Override + public User insert(User user) { + this.userDao.insert(user); + return user; + } + + /** + * 修改数据 + * + * @param user 实例对象 + * @return 实例对象 + */ + @Override + public User update(User user) { + this.userDao.update(user); + return this.queryById(user.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.userDao.deleteById(id) > 0; + } +} diff --git a/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/utils/DruidEncryptUtil.java b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/utils/DruidEncryptUtil.java new file mode 100644 index 0000000..d95b0c0 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/java/com/landaiqing/infra/basic/utils/DruidEncryptUtil.java @@ -0,0 +1,48 @@ +package com.landaiqing.infra.basic.utils; + +import com.alibaba.druid.filter.config.ConfigTools; + +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; + +/** + * 数据库加密util + * + * @author: landaiqing + * @date: 2024/2/7 + */ +public class DruidEncryptUtil { + + private static String publicKey; + + private static String privateKey; + + static { + try { + String[] keyPair = ConfigTools.genKeyPair(512); + privateKey=keyPair[0]; + System.out.println("privateKey:"+privateKey); + publicKey=keyPair[1]; + System.out.println("publicKey:"+publicKey); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } catch (NoSuchProviderException e) { + throw new RuntimeException(e); + } + } + public static String encrypt(String plainText) throws Exception { + String encrypt = ConfigTools.encrypt(privateKey, plainText); + System.out.println("encrypt:"+encrypt); + return encrypt; + } + public static String decrypt(String encryptText) throws Exception { + String decrypt = ConfigTools.decrypt(publicKey, encryptText); + System.out.println("decrypt:"+decrypt); + return decrypt; + } + + public static void main(String[] args) throws Exception { + String encrypt = encrypt("1611"); + System.out.println("encrypt:"+encrypt); + } +} diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/ClazzDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/ClazzDao.xml new file mode 100644 index 0000000..a015a80 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/ClazzDao.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + insert into clazz(class_name, num) + values (#{className}, #{num}) + + + + insert into clazz(class_name,num) + values + + (#{entity.className},#{entity.num}) + + + + + insert into clazz(class_name,num) + values + + (#{entity.className},#{entity.num}) + + on duplicate key update +class_name = values(class_name)num = values(num) + + + + + update clazz + + + class_name = #{className}, + + + num = #{num}, + + + where id = #{id} + + + + + delete from clazz where id = #{id} + + + + diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/GradeDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/GradeDao.xml new file mode 100644 index 0000000..38cafc0 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/GradeDao.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + insert into grade(grade_name,num) + values (#{gradeName},#{num}) + + + + insert into grade(grade_name,num) + values + + (#{entity.gradeName},#{entity.num}) + + + + + insert into grade(grade_name,num) + values + + (#{entity.gradeName},#{entity.num}) + + on duplicate key update + grade_name = values(grade_name)num = values(num) + + + + + update grade + + + grade_name = #{gradeName}, + + + num = #{num}, + + + where id = #{id} + + + + + delete + from grade + where id = #{id} + + + + diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/PermissionDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/PermissionDao.xml new file mode 100644 index 0000000..195ec35 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/PermissionDao.xml @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into permission(name,parent_id,`type`,menu_url,status,`show`,icon,permission_key,created_by,created_time,update_by,update_time,is_deleted) + values (#{name},#{parentId},#{type},#{menuUrl},#{status},#{show},#{icon},#{permissionKey},#{createdBy},#{createdTime},#{updateBy},#{updateTime},#{isDeleted}) + + + + insert into + permission(name,parent_id,`type`,menu_url,status,`show`,icon,permission_key,created_by,created_time,update_by,update_time,is_deleted) + values + + (#{entity.name},#{entity.parentId},#{entity.type},#{entity.menuUrl},#{entity.status},#{entity.show},#{entity.icon},#{entity.permissionKey},#{entity.createdBy},#{entity.createdTime},#{entity.updateBy},#{entity.updateTime},#{entity.isDeleted}) + + + + + insert into + permission(name,parent_id,`type`,menu_url,status,`show`,icon,permission_key,created_by,created_time,update_by,update_time,is_deleted) + values + + (#{entity.name},#{entity.parentId},#{entity.type},#{entity.menuUrl},#{entity.status},#{entity.show},#{entity.icon},#{entity.permissionKey},#{entity.createdBy},#{entity.createdTime},#{entity.updateBy},#{entity.updateTime},#{entity.isDeleted}) + + on duplicate key update + name = values(name)parent_id = values(parent_id)type = values(type)menu_url = values(menu_url)status = + values(status)show = values(show)icon = values(icon)permission_key = values(permission_key)created_by = + values(created_by)created_time = values(created_time)update_by = values(update_by)update_time = + values(update_time)is_deleted = values(is_deleted) + + + + + update permission + + + name = #{name}, + + + parent_id = #{parentId}, + + + `type` = #{type}, + + + menu_url = #{menuUrl}, + + + status = #{status}, + + + show = #{show}, + + + icon = #{icon}, + + + permission_key = #{permissionKey}, + + + created_by = #{createdBy}, + + + created_time = #{createdTime}, + + + update_by = #{updateBy}, + + + update_time = #{updateTime}, + + + is_deleted = #{isDeleted}, + + + where id = #{id} + + + + + delete + from permission + where id = #{id} + + + + diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/RoleDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/RoleDao.xml new file mode 100644 index 0000000..e75ab92 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/RoleDao.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into role(role_name,role_key,created_by,created_time,update_by,update_time,is_deleted) + values (#{roleName},#{roleKey},#{createdBy},#{createdTime},#{updateBy},#{updateTime},#{isDeleted}) + + + + insert into role(role_name,role_key,created_by,created_time,update_by,update_time,is_deleted) + values + + (#{entity.roleName},#{entity.roleKey},#{entity.createdBy},#{entity.createdTime},#{entity.updateBy},#{entity.updateTime},#{entity.isDeleted}) + + + + + insert into role(role_name,role_key,created_by,created_time,update_by,update_time,is_deleted) + values + + (#{entity.roleName},#{entity.roleKey},#{entity.createdBy},#{entity.createdTime},#{entity.updateBy},#{entity.updateTime},#{entity.isDeleted}) + + on duplicate key update + role_name = values(role_name)role_key = values(role_key)created_by = values(created_by)created_time = + values(created_time)update_by = values(update_by)update_time = values(update_time)is_deleted = + values(is_deleted) + + + + + update role + + + role_name = #{roleName}, + + + role_key = #{roleKey}, + + + created_by = #{createdBy}, + + + created_time = #{createdTime}, + + + update_by = #{updateBy}, + + + update_time = #{updateTime}, + + + is_deleted = #{isDeleted}, + + + where id = #{id} + + + + + delete + from role + where id = #{id} + + + + diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/RolePermissionDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/RolePermissionDao.xml new file mode 100644 index 0000000..9a723c0 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/RolePermissionDao.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into role_permission(role_id,permission_id,created_by,created_time,update_by,update_time,is_deleted) + values (#{roleId},#{permissionId},#{createdBy},#{createdTime},#{updateBy},#{updateTime},#{isDeleted}) + + + + insert into role_permission(role_id,permission_id,created_by,created_time,update_by,update_time,is_deleted) + values + + (#{entity.roleId},#{entity.permissionId},#{entity.createdBy},#{entity.createdTime},#{entity.updateBy},#{entity.updateTime},#{entity.isDeleted}) + + + + + insert into role_permission(role_id,permission_id,created_by,created_time,update_by,update_time,is_deleted) + values + + (#{entity.roleId},#{entity.permissionId},#{entity.createdBy},#{entity.createdTime},#{entity.updateBy},#{entity.updateTime},#{entity.isDeleted}) + + on duplicate key update + role_id = values(role_id)permission_id = values(permission_id)created_by = values(created_by)created_time = + values(created_time)update_by = values(update_by)update_time = values(update_time)is_deleted = + values(is_deleted) + + + + + update role_permission + + + role_id = #{roleId}, + + + permission_id = #{permissionId}, + + + created_by = #{createdBy}, + + + created_time = #{createdTime}, + + + update_by = #{updateBy}, + + + update_time = #{updateTime}, + + + is_deleted = #{isDeleted}, + + + where id = #{id} + + + + + delete + from role_permission + where id = #{id} + + + + diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/StudentDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/StudentDao.xml new file mode 100644 index 0000000..f3331ee --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/StudentDao.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into student(sno,password,username,class_name,grade,age,sex,avatar,date_of_birth,email,phone_number,class_id,grade_id,role_id,is_deleted) + values (#{sno},#{password},#{username},#{className},#{grade},#{age},#{sex},#{avatar},#{dateOfBirth},#{email},#{phoneNumber},#{classId},#{gradeId},#{roleId},#{isDeleted}) + + + + insert into student(sno,password,username,class_name,grade,age,sex,avatar,date_of_birth,email,phone_number,class_id,grade_id,role_id,is_deleted) + values + + (#{entity.sno},#{entity.password},#{entity.username},#{entity.className},#{entity.grade},#{entity.age},#{entity.sex},#{entity.avatar},#{entity.dateOfBirth},#{entity.email},#{entity.phoneNumber},#{entity.classId},#{entity.gradeId},#{entity.roleId},#{entity.isDeleted}) + + + + + insert into student(sno,password,username,class_name,grade,age,sex,avatar,date_of_birth,email,phone_number,class_id,grade_id,role_id,is_deleted) + values + + (#{entity.sno},#{entity.password},#{entity.username},#{entity.className},#{entity.grade},#{entity.age},#{entity.sex},#{entity.avatar},#{entity.dateOfBirth},#{entity.email},#{entity.phoneNumber},#{entity.classId},#{entity.gradeId},#{entity.roleId},#{entity.isDeleted}) + + on duplicate key update +sno = values(sno)password = values(password)username = values(username)class_name = values(class_name)grade = values(grade)age = values(age)sex = values(sex)avatar = values(avatar)date_of_birth = values(date_of_birth)email = values(email)phone_number = values(phone_number)class_id = values(class_id)grade_id = values(grade_id)role_id = values(role_id)is_deleted = values(is_deleted) + + + + + update student + + + sno = #{sno}, + + + `password` = #{password}, + + + username = #{username}, + + + class_name = #{className}, + + + grade = #{grade}, + + + age = #{age}, + + + sex = #{sex}, + + + avatar = #{avatar}, + + + date_of_birth = #{dateOfBirth}, + + + email = #{email}, + + + phone_number = #{phoneNumber}, + + + class_id = #{classId}, + + + grade_id = #{gradeId}, + + + role_id = #{roleId}, + + + is_deleted = #{isDeleted}, + + + where id = #{id} + + + + + delete from student where id = #{id} + + + + diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/StudentRoleDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/StudentRoleDao.xml new file mode 100644 index 0000000..27ad552 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/StudentRoleDao.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + insert into student_role(student_id,role_id) + values (#{studentId},#{roleId}) + + + + insert into student_role(student_id,role_id) + values + + (#{entity.studentId},#{entity.roleId}) + + + + + insert into student_role(student_id,role_id) + values + + (#{entity.studentId},#{entity.roleId}) + + on duplicate key update + student_id = values(student_id)role_id = values(role_id) + + + + + update student_role + + + student_id = #{studentId}, + + + role_id = #{roleId}, + + + where id = #{id} + + + + + delete + from student_role + where id = #{id} + + + + diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/UserDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/UserDao.xml new file mode 100644 index 0000000..2cfaab1 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/UserDao.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + insert into user(username,password) + values (#{username},#{password}) + + + + insert into user(username,password) + values + + (#{entity.username},#{entity.password}) + + + + + insert into user(username,password) + values + + (#{entity.username},#{entity.password}) + + on duplicate key update +username = values(username)password = values(password) + + + + + update user + + + username = #{username}, + + + password = #{password}, + + + where id = #{id} + + + + + delete from user where id = #{id} + + + + diff --git a/sms-auth/sms-auth-infra/src/main/resources/mapper/UserRoleDao.xml b/sms-auth/sms-auth-infra/src/main/resources/mapper/UserRoleDao.xml new file mode 100644 index 0000000..5916033 --- /dev/null +++ b/sms-auth/sms-auth-infra/src/main/resources/mapper/UserRoleDao.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + insert into user_role(user_id,role_id) + values (#{userId},#{roleId}) + + + + insert into user_role(user_id,role_id) + values + + (#{entity.userId},#{entity.roleId}) + + + + + insert into user_role(user_id,role_id) + values + + (#{entity.userId},#{entity.roleId}) + + on duplicate key update + user_id = values(user_id)role_id = values(role_id) + + + + + update user_role + + + user_id = #{userId}, + + + role_id = #{roleId}, + + + where id = #{id} + + + + + delete + from user_role + where id = #{id} + + + + diff --git a/sms-auth/sms-auth-start/pom.xml b/sms-auth/sms-auth-start/pom.xml new file mode 100644 index 0000000..36a32bc --- /dev/null +++ b/sms-auth/sms-auth-start/pom.xml @@ -0,0 +1,93 @@ + + 4.0.0 + + com.landaiqing + sms-auth + 1.0-SNAPSHOT + + + sms-auth-starter + jar + + qing-yu-club-auth-starter + http://maven.apache.org + + + 8 + 8 + 1.8 + UTF-8 + UTF-8 + 2.4.2 + 2021.1 + 2020.0.6 + + + + + org.springframework.boot + spring-boot-starter-web + 2.4.2 + + + spring-boot-starter-logging + org.springframework.boot + + + + + com.landaiqing + sms-auth-infra + 1.0-SNAPSHOT + + + com.landaiqing + sms-auth-controller + 1.0-SNAPSHOT + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring-cloud-alibaba.version} + pom + import + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.0.RELEASE + + + + repackage + + + + + + + diff --git a/sms-auth/sms-auth-start/src/main/java/com/landaiqing/auth/AuthApplication.java b/sms-auth/sms-auth-start/src/main/java/com/landaiqing/auth/AuthApplication.java new file mode 100644 index 0000000..851e8f3 --- /dev/null +++ b/sms-auth/sms-auth-start/src/main/java/com/landaiqing/auth/AuthApplication.java @@ -0,0 +1,21 @@ +package com.landaiqing.auth; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * 服务启动类 + * + * @author: landaiqing + * @date: 2024/2/7 + */ +@SpringBootApplication +@ComponentScan("com.landaiqing") +@MapperScan("com.landaiqing.**.dao") +public class AuthApplication { + public static void main(String[] args) { + SpringApplication.run(AuthApplication.class); + } +} diff --git a/sms-auth/sms-auth-start/src/main/resources/application.yml b/sms-auth/sms-auth-start/src/main/resources/application.yml new file mode 100644 index 0000000..e5f8424 --- /dev/null +++ b/sms-auth/sms-auth-start/src/main/resources/application.yml @@ -0,0 +1,82 @@ +server: + port: 3001 + +spring: + messages: + basename: i18n/messages + datasource: + username: root + password: fJbWjC0gnwYGDiUV1CWZAnQCfoujrWqoN8sTwz+B5PGqgZi8ohRPSOQYVPnKPQ3mTbdYRLY7S2DQMQwLDySX8g== + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/sutdent-management-system?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true + type: com.alibaba.druid.pool.DruidDataSource + druid: + initial-size: 20 + min-idle: 20 + max-active: 100 + max-wait: 60000 + connectionProperties: config.decrypt=true;config.decrypt.key=${publicKey}; + stat-view-servlet: + enabled: true + url-pattern: /druid/* + login-username: admin + login-password: 123456 + filter: + stat: + enabled: true + slow-sql-millis: 2000 + log-slow-sql: true + wall: + enabled: true + config: + enabled: true +# # redis配置 +# redis: +# # Redis数据库索引(默认为0) +# database: 1 +# # Redis服务器地址 +# host: 116.196.80.239 +# # Redis服务器连接端口 +# port: 6379 +# # Redis服务器连接密码(默认为空) +# password: LDQ20020618xxx +# # 连接超时时间 +# timeout: 2s +# lettuce: +# pool: +# # 连接池最大连接数 +# max-active: 200 +# # 连接池最大阻塞等待时间(使用负值表示没有限制) +# max-wait: -1ms +# # 连接池中的最大空闲连接 +# max-idle: 10 +# # 连接池中的最小空闲连接 +# min-idle: 0 +publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAItqJKHg8SmHDzR2WyWQMY1vXCAYMqtRJTvHrmME9se4xL6/pR0+bXrPW1R/HHmOqba6WuyxveIYh/9m5brJr5cCAwEAAQ== +logging: + config: classpath:log4j2-spring.xml + +#mybatis-plus: +# configuration: +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +############## Sa-Token 配置 (文档: https://sa-token.cc) ############## +#sa-token: +# # token 名称(同时也是 cookie 名称) +# token-name: satoken +# # token 有效期(单位:秒) 默认30天,-1 代表永久有效 +# timeout: 2592000 +# # token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结 +# active-timeout: -1 +# # 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录) +# is-concurrent: true +# # 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token) +# is-share: true +# # token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik) +# token-style: random-32 +# # 是否输出操作日志 +# is-log: true +# token-prefix: auth + + + diff --git a/sms-auth/sms-auth-start/src/main/resources/log4j2-spring.xml b/sms-auth/sms-auth-start/src/main/resources/log4j2-spring.xml new file mode 100644 index 0000000..7edfa1a --- /dev/null +++ b/sms-auth/sms-auth-start/src/main/resources/log4j2-spring.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sms-oss/pom.xml b/sms-oss/pom.xml new file mode 100644 index 0000000..c4c3b5d --- /dev/null +++ b/sms-oss/pom.xml @@ -0,0 +1,111 @@ + + 4.0.0 + + com.landaiqing + sms-oss + 1.0-SNAPSHOT + jar + + sms-oss + http://maven.apache.org + + + 8 + 8 + 1.8 + UTF-8 + UTF-8 + 2.4.2 + 2021.1 + 2020.0.6 + + + + + org.springframework.boot + spring-boot-starter-web + + + spring-boot-starter-logging + org.springframework.boot + + + + + io.minio + minio + 8.2.0 + + + org.projectlombok + lombok + 1.18.20 + + + org.springframework.boot + spring-boot-starter-log4j2 + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring-cloud-alibaba.version} + pom + import + + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.0.RELEASE + + + + repackage + + + + + + + + + + central + aliyun maven + http://maven.aliyun.com/nexus/content/groups/public/ + default + + true + + + true + + + + diff --git a/sms-oss/src/main/java/com/landaiqing/oss/OssApplication.java b/sms-oss/src/main/java/com/landaiqing/oss/OssApplication.java new file mode 100644 index 0000000..b6c6b83 --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/OssApplication.java @@ -0,0 +1,20 @@ +package com.landaiqing.oss; + + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * oss 服务启动类 + * + * @author: landaiqing + * @date: 2024/3/4 + */ +@SpringBootApplication +@ComponentScan("com.landaiqing") +public class OssApplication { + public static void main(String[] args) { + SpringApplication.run(OssApplication.class); + } +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/adapter/MinioStorageAdapter.java b/sms-oss/src/main/java/com/landaiqing/oss/adapter/MinioStorageAdapter.java new file mode 100644 index 0000000..388c6bd --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/adapter/MinioStorageAdapter.java @@ -0,0 +1,85 @@ +package com.landaiqing.oss.adapter; + +import com.landaiqing.oss.entity.FileInfo; +import com.landaiqing.oss.util.MinioUtil; +import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.InputStream; +import java.util.List; + +/** + * @Classname MinioStorageServiceImpl + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.oss.service.impl + * @Author: landaiqing + * @CreateTime: 2024-02-17 16:35 + * @Description: TODO + * @Version: 1.0 + */ +public class MinioStorageAdapter implements StorageAdapter { + @Resource + private MinioUtil minioUtil; + + /** + * minioUrl + */ + @Value("${minio.url}") + private String url; + + @Override + @SneakyThrows + public void createBucket(String bucket) { + minioUtil.createBucket(bucket); + } + + @Override + @SneakyThrows + public void uploadFile(MultipartFile uploadFile, String bucket, String objectName) { + minioUtil.createBucket(bucket); + if (objectName != null) { + minioUtil.uploadFile(uploadFile.getInputStream(), bucket, objectName + "/" + uploadFile.getName()); + } else { + minioUtil.uploadFile(uploadFile.getInputStream(), bucket, uploadFile.getName()); + } + } + + @Override + @SneakyThrows + public List getAllBucket() { + return minioUtil.getAllBucket(); + } + + @Override + @SneakyThrows + public List getAllFile(String bucket) { + return minioUtil.getAllFile(bucket); + } + + @Override + @SneakyThrows + public InputStream download(String bucket, String objectName) { + return minioUtil.download(bucket, objectName); + } + + @Override + @SneakyThrows + public void deleteBucket(String bucket) { + minioUtil.deleteBucket(bucket); + } + + @Override + @SneakyThrows + public void deleteObject(String bucket, String objectName) { + minioUtil.deleteObject(bucket, objectName); + } + + @Override + @SneakyThrows + public String getUrl(String bucket, String objectName) { + return url + "/" + bucket + "/" + objectName; + } + +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/adapter/StorageAdapter.java b/sms-oss/src/main/java/com/landaiqing/oss/adapter/StorageAdapter.java new file mode 100644 index 0000000..f70e09e --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/adapter/StorageAdapter.java @@ -0,0 +1,83 @@ +package com.landaiqing.oss.adapter; + +import com.landaiqing.oss.entity.FileInfo; +import org.springframework.web.multipart.MultipartFile; + +import java.io.InputStream; +import java.util.List; + +/** + * @Classname StorageService + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.oss.service + * @Author: landaiqing + * @CreateTime: 2024-02-17 16:32 + * @Description: 文件存储适配器 + * @Version: 1.0 + */ +public interface StorageAdapter { + /** + * @description: 创建Bucket桶 + * @param: [bucket] + * @return: void + * @author landaiqing + * @date: 2024/2/17 15:53 + */ + void createBucket(String bucket); + + /** + * @description: 上传文件 + * @param: [inputStream, bucket, objectName] + * @return: void + * @author landaiqing + * @date: 2024/2/17 15:58 + */ + void uploadFile(MultipartFile uploadFile, String bucket, String objectName); + + /** + * @description: 列出所有桶 + * @param: [] + * @return: java.util.List + * @author landaiqing + * @date: 2024/2/17 16:00 + */ + List getAllBucket(); + + /** + * @description: 列出当前桶及文件 + * @param: [bucket] + * @return: java.util.List + * @author landaiqing + * @date: 2024/2/17 16:06 + */ + List getAllFile(String bucket); + + /** + * @description: 下载文件 + * @param: [bucket, objectName] + * @return: java.io.InputStream + * @author landaiqing + * @date: 2024/2/17 16:11 + */ + InputStream download(String bucket, String objectName); + + /** + * @description: 删除桶 + * @param: [bucket] + * @return: void + * @author landaiqing + * @date: 2024/2/17 16:14 + */ + void deleteBucket(String bucket); + + /** + * @description: 删除文件 + * @param: [bucket, objectName] + * @return: void + * @author landaiqing + * @date: 2024/2/17 16:14 + */ + void deleteObject(String bucket, String objectName); + + String getUrl(String bucket, String objectName); +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/config/MinioConfig.java b/sms-oss/src/main/java/com/landaiqing/oss/config/MinioConfig.java new file mode 100644 index 0000000..d37e03f --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/config/MinioConfig.java @@ -0,0 +1,43 @@ +package com.landaiqing.oss.config; + +import io.minio.MinioClient; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Classname MinioConfig + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.oss.config + * @Author: landaiqing + * @CreateTime: 2024-02-17 15:44 + * @Description: Minio配置管理 + * @Version: 1.0 + */ +@Configuration +public class MinioConfig { + /** + * minioUrl + */ + @Value("${minio.url}") + private String url; + /** + * minio账户 + */ + @Value("${minio.accessKey}") + private String accessKey; + /** + * minio密码 + */ + @Value("${minio.secretKey}") + private String secretKey; + + /** + * 构造minioClient + */ + @Bean + public MinioClient getMinioClient(){ + return MinioClient.builder().endpoint(url).credentials(accessKey,secretKey ).build(); + } + +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/config/StorageConfig.java b/sms-oss/src/main/java/com/landaiqing/oss/config/StorageConfig.java new file mode 100644 index 0000000..14cb558 --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/config/StorageConfig.java @@ -0,0 +1,23 @@ +package com.landaiqing.oss.config; + +import com.landaiqing.oss.adapter.MinioStorageAdapter; +import com.landaiqing.oss.adapter.StorageAdapter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 文件存储config + * + * @author: ChickenWing + * @date: 2023/10/14 + */ +@Configuration +public class StorageConfig { + + @Bean + public StorageAdapter storageService() { + return new MinioStorageAdapter(); + } + +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/controller/FileController.java b/sms-oss/src/main/java/com/landaiqing/oss/controller/FileController.java new file mode 100644 index 0000000..9ea8be1 --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/controller/FileController.java @@ -0,0 +1,45 @@ +package com.landaiqing.oss.controller; + +import com.landaiqing.oss.entity.Result; +import com.landaiqing.oss.service.FileService; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Classname FileController + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.oss.controller + * @Author: landaiqing + * @CreateTime: 2024-02-17 16:18 + * @Description: TODO + * @Version: 1.0 + */ +@RestController +public class FileController { + @Resource + private FileService fileService; + + @RequestMapping("/testGetAllBuckets") + public String testGetAllBuckets() throws Exception { + List allBucket = fileService.getAllBucket(); + return allBucket.get(0); + } + + @RequestMapping("/getUrl") + public String getUrl(String bucketName, String objectName) throws Exception { + return fileService.getUrl(bucketName, objectName); + } + + /** + * 上传文件 + */ + @RequestMapping("/upload") + public Result upload(MultipartFile uploadFile, String bucket, String objectName) throws Exception { + String url = fileService.uploadFile(uploadFile, bucket, objectName); + return Result.ok(url); + } +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/entity/FileInfo.java b/sms-oss/src/main/java/com/landaiqing/oss/entity/FileInfo.java new file mode 100644 index 0000000..13d9e3b --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/entity/FileInfo.java @@ -0,0 +1,21 @@ +package com.landaiqing.oss.entity; + +import lombok.Data; + +/** + * @Classname FileInfo + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.oss.entity + * @Author: landaiqing + * @CreateTime: 2024-02-17 16:04 + * @Description: 文件类 + * @Version: 1.0 + */ +@Data +public class FileInfo { + + + private String fileName; + private Boolean directoryFlag; + private String etag; +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/entity/Result.java b/sms-oss/src/main/java/com/landaiqing/oss/entity/Result.java new file mode 100644 index 0000000..bbe701e --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/entity/Result.java @@ -0,0 +1,50 @@ +package com.landaiqing.oss.entity; + +import lombok.Data; + +@Data +public class Result { + + private Boolean success; + + private Integer code; + + private String message; + + private T data; + + public static Result ok(){ + Result result = new Result(); + result.setSuccess(true); + result.setCode(ResultCodeEnum.SUCCESS.getCode()); + result.setMessage(ResultCodeEnum.SUCCESS.getDesc()); + return result; + } + + public static Result ok(T data){ + Result result = new Result(); + result.setSuccess(true); + result.setCode(ResultCodeEnum.SUCCESS.getCode()); + result.setMessage(ResultCodeEnum.SUCCESS.getDesc()); + result.setData(data); + return result; + } + + public static Result fail(){ + Result result = new Result(); + result.setSuccess(false); + result.setCode(ResultCodeEnum.FAIL.getCode()); + result.setMessage(ResultCodeEnum.FAIL.getDesc()); + return result; + } + + public static Result fail(T data){ + Result result = new Result(); + result.setSuccess(false); + result.setCode(ResultCodeEnum.FAIL.getCode()); + result.setMessage(ResultCodeEnum.FAIL.getDesc()); + result.setData(data); + return result; + } + +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/entity/ResultCodeEnum.java b/sms-oss/src/main/java/com/landaiqing/oss/entity/ResultCodeEnum.java new file mode 100644 index 0000000..91d14f1 --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/entity/ResultCodeEnum.java @@ -0,0 +1,29 @@ +package com.landaiqing.oss.entity; + +import lombok.Getter; + +@Getter +public enum ResultCodeEnum { + + SUCCESS(200,"成功"), + FAIL(500,"失败"); + + public int code; + + public String desc; + + ResultCodeEnum(int code,String desc){ + this.code = code; + this.desc = desc; + } + + public static ResultCodeEnum getByCode(int codeVal){ + for(ResultCodeEnum resultCodeEnum : ResultCodeEnum.values()){ + if(resultCodeEnum.code == codeVal){ + return resultCodeEnum; + } + } + return null; + } + +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/service/FileService.java b/sms-oss/src/main/java/com/landaiqing/oss/service/FileService.java new file mode 100644 index 0000000..cee1dd1 --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/service/FileService.java @@ -0,0 +1,50 @@ +package com.landaiqing.oss.service; + +import com.landaiqing.oss.adapter.StorageAdapter; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Classname FileService + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.oss.service + * @Author: landaiqing + * @CreateTime: 2024-02-17 16:50 + * @Description: TODO + * @Version: 1.0 + */ +@Service +public class FileService { + private final StorageAdapter storageAdapter; + + public FileService(StorageAdapter storageAdapter) { + this.storageAdapter = storageAdapter; + } + + + /** + * 列出所有桶 + */ + public List getAllBucket() { + return storageAdapter.getAllBucket(); + } + + /** + * 获取文件路径 + */ + public String getUrl(String bucketName,String objectName) { + return storageAdapter.getUrl(bucketName,objectName); + } + + /** + * 上传文件 + */ + public String uploadFile(MultipartFile uploadFile, String bucket, String objectName){ + storageAdapter.uploadFile(uploadFile,bucket,objectName); + objectName = objectName + "/" + uploadFile.getOriginalFilename(); + return storageAdapter.getUrl(bucket, objectName); + } +} diff --git a/sms-oss/src/main/java/com/landaiqing/oss/util/MinioUtil.java b/sms-oss/src/main/java/com/landaiqing/oss/util/MinioUtil.java new file mode 100644 index 0000000..cbd1eb6 --- /dev/null +++ b/sms-oss/src/main/java/com/landaiqing/oss/util/MinioUtil.java @@ -0,0 +1,126 @@ +package com.landaiqing.oss.util; + +import com.landaiqing.oss.entity.FileInfo; +import io.minio.*; +import io.minio.errors.*; +import io.minio.messages.Bucket; +import io.minio.messages.Item; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.IOException; +import java.io.InputStream; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Classname MinioUtil + * @BelongsProject: qing-yu-club + * @BelongsPackage: com.landaiqing.oss.util + * @Author: landaiqing + * @CreateTime: 2024-02-17 15:50 + * @Description: minio文件操作工具 + * @Version: 1.0 + */ +@Component +public class MinioUtil { + @Resource + private MinioClient minioClient; + + /** + * @description: 创建Bucket桶 + * @param: [bucket] + * @return: void + * @author landaiqing + * @date: 2024/2/17 15:53 + */ + public void createBucket(String bucket) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build()); + if (!exists) { + minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucket).build()); + } + } + + /** + * @description: 上传文件 + * @param: [inputStream, bucket, objectName] + * @return: void + * @author landaiqing + * @date: 2024/2/17 15:58 + */ + public void uploadFile(InputStream inputStream, String bucket, String objectName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + minioClient.putObject(PutObjectArgs.builder().bucket(bucket).object(objectName) + .stream(inputStream, -1, Integer.MAX_VALUE).build()); + } + + /** + * @description: 列出所有桶 + * @param: [] + * @return: java.util.List + * @author landaiqing + * @date: 2024/2/17 16:00 + */ + public List getAllBucket() throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + List buckets = minioClient.listBuckets(); + return buckets.stream().map(Bucket::name).collect(Collectors.toList()); + } + + /** + * @description: 列出当前桶及文件 + * @param: [bucket] + * @return: java.util.List + * @author landaiqing + * @date: 2024/2/17 16:06 + */ + public List getAllFile(String bucket) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + Iterable> results = minioClient.listObjects( + ListObjectsArgs.builder().bucket(bucket).build()); + List fileInfoList = new LinkedList<>(); + for (Result result : results) { + FileInfo fileInfo = new FileInfo(); + Item item = result.get(); + fileInfo.setFileName(item.objectName()); + fileInfo.setDirectoryFlag(item.isDir()); + fileInfo.setEtag(item.etag()); + fileInfoList.add(fileInfo); + } + return fileInfoList; + } + + /** + * @description: 下载文件 + * @param: [bucket, objectName] + * @return: java.io.InputStream + * @author landaiqing + * @date: 2024/2/17 16:11 + */ + public InputStream download(String bucket, String objectName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + return minioClient.getObject(GetObjectArgs.builder().bucket(bucket).object(objectName).build()); + } + + /** + * @description: 删除桶 + * @param: [bucket] + * @return: void + * @author landaiqing + * @date: 2024/2/17 16:14 + */ + public void deleteBucket(String bucket) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucket).build()); + } + + /** + * @description: 删除文件 + * @param: [bucket, objectName] + * @return: void + * @author landaiqing + * @date: 2024/2/17 16:14 + */ + public void deleteObject(String bucket, String objectName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + minioClient.removeObject( + RemoveObjectArgs.builder().bucket(bucket).object(objectName).build()); + } +} diff --git a/sms-oss/src/main/resources/application.yml b/sms-oss/src/main/resources/application.yml new file mode 100644 index 0000000..f890f70 --- /dev/null +++ b/sms-oss/src/main/resources/application.yml @@ -0,0 +1,6 @@ +server: + port: 4000 +minio: + url: http://116.196.80.239:9000/ + accessKey: landaiqing + secretKey: LDQ20020618xxx