├── .github
└── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── custom.md
│ └── feature_request.md
├── .gitignore
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE
├── README.assets
├── image-20230307201459082.png
├── image-20230307201555115.png
├── image-20230307201616518.png
├── image-20230307201633847.png
├── image-20230307201651822.png
├── image-20230307201712965.png
├── image-20230307201727617.png
├── image-20230307201745265.png
├── image-20230307201812718.png
├── image-20230307201828736.png
├── image-20230307201842248.png
├── image-20230307201902578.png
├── image-20230307201916189.png
├── image-20230307201926703.png
├── image-20230307201948791.png
├── image-20230307201959302.png
├── image-20230307202026989.png
├── image-20230307202043628.png
├── image-20230307202053723.png
├── image-20230307202117817.png
├── image-20230307202151603.png
└── image-20230307202202968.png
├── README.md
├── SQL
└── jyadmin.sql
├── jyadmin-code-generate
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── jyadmin
│ │ └── generate
│ │ ├── common
│ │ ├── config
│ │ │ └── CodeGenerateConfig.java
│ │ ├── constant
│ │ │ └── CodeGenerateConstant.java
│ │ └── utils
│ │ │ ├── CodeGenerateMetaDataUtils.java
│ │ │ ├── VelocityUtils.java
│ │ │ └── ZipUtils.java
│ │ ├── controller
│ │ └── CodeGenerateController.java
│ │ ├── domain
│ │ ├── CodeGenerateField.java
│ │ ├── CodeGenerateFieldConfig.java
│ │ ├── CodeGenerateFieldType.java
│ │ ├── CodeGenerateTable.java
│ │ └── CodeGenerateTableConfig.java
│ │ ├── mapper
│ │ ├── CodeGenerateFieldConfigMapper.java
│ │ ├── CodeGenerateFieldMapper.java
│ │ ├── CodeGenerateFieldTypeMapper.java
│ │ ├── CodeGenerateTableConfigMapper.java
│ │ └── CodeGenerateTableMapper.java
│ │ ├── model
│ │ ├── dto
│ │ │ ├── CodeGenerateMetaDataDTO.java
│ │ │ ├── TemplateConfig.java
│ │ │ ├── TemplateContextDTO.java
│ │ │ └── TemplateModelDTO.java
│ │ └── vo
│ │ │ ├── CodeGenerateJavaFieldTypeResVO.java
│ │ │ ├── CodePreviewResVO.java
│ │ │ ├── TableOptionRespVO.java
│ │ │ ├── TableQueryReqVO.java
│ │ │ ├── UserConfigReqVO.java
│ │ │ └── UserConfigResVO.java
│ │ └── service
│ │ ├── CodeGenerateFieldConfigService.java
│ │ ├── CodeGenerateFieldService.java
│ │ ├── CodeGenerateFieldTypeService.java
│ │ ├── CodeGenerateService.java
│ │ ├── CodeGenerateTableConfigService.java
│ │ ├── CodeGenerateTableService.java
│ │ └── impl
│ │ ├── CodeGenerateFieldConfigServiceImpl.java
│ │ ├── CodeGenerateFieldServiceImpl.java
│ │ ├── CodeGenerateFieldTypeServiceImpl.java
│ │ ├── CodeGenerateServiceImpl.java
│ │ ├── CodeGenerateTableConfigServiceImpl.java
│ │ └── CodeGenerateTableServiceImpl.java
│ └── resources
│ ├── mapper
│ ├── CodeGenerateFieldConfigMapper.xml
│ ├── CodeGenerateFieldMapper.xml
│ ├── CodeGenerateFieldTypeMapper.xml
│ ├── CodeGenerateTableConfigMapper.xml
│ └── CodeGenerateTableMapper.xml
│ └── template
│ ├── java
│ ├── simple-controller.java.vm
│ ├── simple-createReqVO.java.vm
│ ├── simple-domain.java.vm
│ ├── simple-mapper.java.vm
│ ├── simple-mapper.xml.vm
│ ├── simple-queryReqVO.java.vm
│ ├── simple-service.java.vm
│ ├── simple-serviceImpl.java.vm
│ └── simple-updateReqVO.java.vm
│ └── vue
│ ├── index.vue.vm
│ ├── simple-api.js.vm
│ ├── simple-detail.vue.vm
│ └── simple-form.vue.vm
├── jyadmin-common
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── jyadmin
│ │ ├── annotation
│ │ ├── DataAccessControl.java
│ │ ├── Idempotent.java
│ │ └── RateLimit.java
│ │ ├── aspect
│ │ ├── IdempotentAspect.java
│ │ ├── IpBlackListAspect.java
│ │ └── RateLimitAspect.java
│ │ ├── config
│ │ ├── CacheConfig.java
│ │ ├── GlobalConfig.java
│ │ ├── Knife4jConfig.java
│ │ ├── MybatisPlusConfig.java
│ │ ├── OtherConfig.java
│ │ ├── RedisConfig.java
│ │ ├── SecurityPermissionHandler.java
│ │ ├── WebAppConfig.java
│ │ ├── mybatisplus
│ │ │ ├── DataAccessControllerInterceptor.java
│ │ │ └── MybatisPlusMetaObjectHandler.java
│ │ └── properties
│ │ │ ├── JyApiDocumentProperties.java
│ │ │ ├── JyAuthProperties.java
│ │ │ ├── JyBaseProperties.java
│ │ │ ├── JyCacheProperties.java
│ │ │ ├── JyConfigItemConstant.java
│ │ │ ├── JyIdempotentProperties.java
│ │ │ ├── JyJwtProperties.java
│ │ │ ├── JyRateLimitProperties.java
│ │ │ ├── JyRsaProperties.java
│ │ │ ├── JyRuntimeLogProperties.java
│ │ │ ├── JySecurityProperties.java
│ │ │ └── JyXssFilterProperties.java
│ │ ├── consts
│ │ ├── DataAccessControlConstant.java
│ │ ├── GlobalConstants.java
│ │ └── ResultStatus.java
│ │ ├── domain
│ │ ├── PageResult.java
│ │ ├── Result.java
│ │ ├── UserCacheInfo.java
│ │ └── base
│ │ │ ├── BaseDTO.java
│ │ │ ├── BaseEntity.java
│ │ │ ├── BasePageVO.java
│ │ │ ├── BaseReqVO.java
│ │ │ ├── BaseResVO.java
│ │ │ ├── BaseResult.java
│ │ │ └── BaseTrEntity.java
│ │ ├── exception
│ │ ├── ApiException.java
│ │ └── handler
│ │ │ └── GlobalExceptionHandler.java
│ │ ├── interceptor
│ │ └── DemoSystemHttpMethodInterceptor.java
│ │ └── util
│ │ ├── AppInfoUtil.java
│ │ ├── DataUtil.java
│ │ ├── IpUtil.java
│ │ ├── JWTUtil.java
│ │ ├── JasyptEncryptorUtil.java
│ │ ├── PageUtil.java
│ │ ├── RandomIdUtil.java
│ │ ├── RedisUtil.java
│ │ ├── RequestUtil.java
│ │ ├── ResponseUtil.java
│ │ ├── ResultUtil.java
│ │ ├── RsaUtil.java
│ │ ├── SecurityUtil.java
│ │ ├── StringUtil.java
│ │ ├── ThrowableUtil.java
│ │ ├── VerifyCodeUtil.java
│ │ └── XssUtil.java
│ └── resources
│ └── spy.properties
├── jyadmin-logging
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── jyadmin
│ │ └── log
│ │ ├── annotation
│ │ └── Log.java
│ │ ├── aspect
│ │ └── LogAspect.java
│ │ ├── controller
│ │ └── LogController.java
│ │ ├── domain
│ │ └── Log.java
│ │ ├── mapper
│ │ └── LogMapper.java
│ │ ├── model
│ │ └── vo
│ │ │ ├── LogQueryVO.java
│ │ │ └── UserLoginLog.java
│ │ └── service
│ │ ├── LogService.java
│ │ └── impl
│ │ └── LogServiceImpl.java
│ └── resources
│ └── mapper
│ └── LogMapper.xml
├── jyadmin-module
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── jyadmin
│ │ └── module
│ │ ├── blog
│ │ ├── controller
│ │ │ └── BlogController.java
│ │ ├── domain
│ │ │ └── Blog.java
│ │ ├── mapper
│ │ │ └── BlogMapper.java
│ │ ├── model
│ │ │ └── vo
│ │ │ │ ├── BlogCreateVO.java
│ │ │ │ ├── BlogQueryVO.java
│ │ │ │ └── BlogUpdateVO.java
│ │ └── service
│ │ │ ├── BlogService.java
│ │ │ └── impl
│ │ │ └── BlogServiceImpl.java
│ │ ├── category
│ │ ├── controller
│ │ │ └── CategoryController.java
│ │ ├── domain
│ │ │ └── Category.java
│ │ ├── mapper
│ │ │ └── CategoryMapper.java
│ │ ├── model
│ │ │ └── vo
│ │ │ │ ├── CategoryCreateVO.java
│ │ │ │ ├── CategoryExportResVO.java
│ │ │ │ ├── CategoryQueryVO.java
│ │ │ │ └── CategoryUpdateVO.java
│ │ └── service
│ │ │ ├── CategoryService.java
│ │ │ └── impl
│ │ │ └── CategoryServiceImpl.java
│ │ └── tag
│ │ ├── controller
│ │ └── TagController.java
│ │ ├── domain
│ │ └── Tag.java
│ │ ├── mapper
│ │ └── TagMapper.java
│ │ ├── model
│ │ └── vo
│ │ │ ├── TagCreateVO.java
│ │ │ ├── TagQueryVO.java
│ │ │ └── TagUpdateVO.java
│ │ └── service
│ │ ├── TagService.java
│ │ └── impl
│ │ └── TagServiceImpl.java
│ └── resources
│ └── mapper
│ ├── BlogMapper.xml
│ ├── CategoryMapper.xml
│ └── TagMapper.xml
├── jyadmin-security
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── jyadmin
│ │ └── security
│ │ ├── config
│ │ └── JySecurityConfig.java
│ │ ├── controller
│ │ └── AuthController.java
│ │ ├── domain
│ │ ├── PermissionAction.java
│ │ ├── SecurityUser.java
│ │ ├── User.java
│ │ ├── UserInfo.java
│ │ ├── UserLoginVO.java
│ │ ├── UserRegisterVO.java
│ │ └── UserRole.java
│ │ ├── filter
│ │ ├── TokenAuthenticationFilter.java
│ │ └── XssVerifyFilter.java
│ │ ├── handler
│ │ ├── DefaultAccessDeniedHandler.java
│ │ └── DefaultUnAuthHandler.java
│ │ ├── mapper
│ │ ├── AuthMapper.java
│ │ └── AuthUserRoleMapper.java
│ │ ├── model
│ │ ├── DelegatingServletInputStream.java
│ │ └── JsonBodyHttpServletRequestWrapper.java
│ │ └── service
│ │ ├── AuthService.java
│ │ ├── CacheService.java
│ │ └── impl
│ │ ├── AuthServiceImpl.java
│ │ ├── RedisCacheServiceImpl.java
│ │ └── UserDetailsServiceImpl.java
│ └── resources
│ └── mapper
│ └── AuthMapper.xml
├── jyadmin-starter
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── jyadmin
│ │ │ └── AppRun.java
│ └── resources
│ │ ├── application-demo.yml
│ │ ├── application-dev.yml
│ │ ├── application-pre.yml
│ │ ├── application-prod.yml
│ │ ├── application-test.yml
│ │ ├── application.yml
│ │ ├── banner.txt
│ │ └── logback-spring.xml
│ └── test
│ └── java
│ └── com
│ └── jyadmin
│ └── test
│ └── RedisTest.java
├── jyadmin-system
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── jyadmin
│ │ ├── monitor
│ │ ├── offline
│ │ │ ├── controller
│ │ │ │ └── OfflineController.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ └── UserQueryVO.java
│ │ │ └── service
│ │ │ │ ├── OfflineService.java
│ │ │ │ └── impl
│ │ │ │ └── OfflineServiceImpl.java
│ │ ├── runtimeLog
│ │ │ ├── controller
│ │ │ │ └── RuntimeLogController.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ ├── RuntimeLogDirResVO.java
│ │ │ │ │ └── RuntimeLogReqVO.java
│ │ │ └── service
│ │ │ │ ├── RuntimeLogService.java
│ │ │ │ └── impl
│ │ │ │ └── RuntimeLogServiceImpl.java
│ │ └── server
│ │ │ ├── controller
│ │ │ └── ServerPerformanceController.java
│ │ │ ├── model
│ │ │ └── vo
│ │ │ │ ├── CpuInfo.java
│ │ │ │ ├── DiskInfo.java
│ │ │ │ ├── JvmInfo.java
│ │ │ │ ├── MemoryInfo.java
│ │ │ │ ├── NetworkInfo.java
│ │ │ │ └── SystemInfo.java
│ │ │ └── service
│ │ │ ├── ServerPerformanceService.java
│ │ │ └── impl
│ │ │ └── ServerPerformanceImpl.java
│ │ └── system
│ │ ├── announcements
│ │ ├── controller
│ │ │ └── AnnouncementsController.java
│ │ ├── domain
│ │ │ └── Announcements.java
│ │ ├── mapper
│ │ │ └── AnnouncementsMapper.java
│ │ ├── model
│ │ │ └── vo
│ │ │ │ ├── AnnouncementsCreateReqVO.java
│ │ │ │ ├── AnnouncementsQueryReqVO.java
│ │ │ │ └── AnnouncementsUpdateReqVO.java
│ │ └── service
│ │ │ ├── AnnouncementsService.java
│ │ │ └── impl
│ │ │ └── AnnouncementsServiceImpl.java
│ │ ├── basicset
│ │ ├── controller
│ │ │ └── BasicSettingController.java
│ │ ├── domain
│ │ │ └── BasicSetting.java
│ │ ├── mapper
│ │ │ └── BasicSettingMapper.java
│ │ └── service
│ │ │ ├── BasicSettingService.java
│ │ │ └── impl
│ │ │ └── BasicSettingServiceImpl.java
│ │ ├── config
│ │ ├── detail
│ │ │ ├── controller
│ │ │ │ └── ConfigDetailController.java
│ │ │ ├── domain
│ │ │ │ ├── ConfigDetail.java
│ │ │ │ └── ConfigDetailJsonModel.java
│ │ │ ├── mapper
│ │ │ │ └── ConfigDetailMapper.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ ├── ConfigDetailCreateVO.java
│ │ │ │ │ ├── ConfigDetailQueryVO.java
│ │ │ │ │ └── ConfigDetailUpdateVO.java
│ │ │ └── service
│ │ │ │ ├── ConfigDetailService.java
│ │ │ │ └── impl
│ │ │ │ └── ConfigDetailServiceImpl.java
│ │ ├── module
│ │ │ ├── domain
│ │ │ │ ├── ModuleConfig.java
│ │ │ │ ├── ModuleConfigWrapper.java
│ │ │ │ └── MultiModuleConfigWrapper.java
│ │ │ ├── mapper
│ │ │ │ └── ModuleConfigMapper.java
│ │ │ └── service
│ │ │ │ ├── ModuleConfigService.java
│ │ │ │ └── impl
│ │ │ │ └── ModuleConfigServiceImpl.java
│ │ └── template
│ │ │ ├── controller
│ │ │ └── ConfigTemplateController.java
│ │ │ ├── domain
│ │ │ ├── ConfigTemplate.java
│ │ │ └── ConfigTemplateJsonModel.java
│ │ │ ├── mapper
│ │ │ └── ConfigTemplateMapper.java
│ │ │ ├── model
│ │ │ └── vo
│ │ │ │ ├── ConfigTemplateCreateVO.java
│ │ │ │ ├── ConfigTemplateQueryVO.java
│ │ │ │ └── ConfigTemplateUpdateVO.java
│ │ │ └── service
│ │ │ ├── ConfigTemplateService.java
│ │ │ └── impl
│ │ │ └── ConfigTemplateServiceImpl.java
│ │ ├── datadict
│ │ ├── controller
│ │ │ ├── DataDictController.java
│ │ │ ├── SimpleDataDictController.java
│ │ │ └── SimpleDataDictDetailController.java
│ │ ├── domain
│ │ │ ├── DataDict.java
│ │ │ ├── SimpleDataDict.java
│ │ │ └── SimpleDataDictDetail.java
│ │ ├── mapper
│ │ │ ├── DataDictMapper.java
│ │ │ ├── SimpleDataDictDetailMapper.java
│ │ │ └── SimpleDataDictMapper.java
│ │ ├── model
│ │ │ ├── dto
│ │ │ │ └── DataDictQueryDTO.java
│ │ │ └── vo
│ │ │ │ ├── DataDictCreateNodeVO.java
│ │ │ │ ├── DataDictCreateRootVO.java
│ │ │ │ ├── DataDictQueryVO.java
│ │ │ │ ├── DataDictUpdateVO.java
│ │ │ │ ├── SimpleDataDictCreateVO.java
│ │ │ │ ├── SimpleDataDictDetailCreateVO.java
│ │ │ │ ├── SimpleDataDictDetailQueryVO.java
│ │ │ │ ├── SimpleDataDictDetailUpdateVO.java
│ │ │ │ ├── SimpleDataDictQueryVO.java
│ │ │ │ └── SimpleDataDictUpdateVO.java
│ │ └── service
│ │ │ ├── DataDictService.java
│ │ │ ├── SimpleDataDictDetailService.java
│ │ │ ├── SimpleDataDictService.java
│ │ │ └── impl
│ │ │ ├── DataDictServiceImpl.java
│ │ │ ├── SimpleDataDictDetailServiceImpl.java
│ │ │ └── SimpleDataDictServiceImpl.java
│ │ ├── department
│ │ ├── controller
│ │ │ └── DepartmentController.java
│ │ ├── domain
│ │ │ └── Department.java
│ │ ├── mapper
│ │ │ └── DepartmentMapper.java
│ │ ├── model
│ │ │ └── vo
│ │ │ │ ├── DepartmentCreateVO.java
│ │ │ │ ├── DepartmentQueryVO.java
│ │ │ │ └── DepartmentUpdateVO.java
│ │ └── service
│ │ │ ├── DepartmentService.java
│ │ │ └── impl
│ │ │ └── DepartmentServiceImpl.java
│ │ ├── email
│ │ ├── config
│ │ │ ├── controller
│ │ │ │ └── EmailConfigController.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ └── EmailConfigUpdateVO.java
│ │ │ └── service
│ │ │ │ ├── EmailConfigService.java
│ │ │ │ └── impl
│ │ │ │ └── EmailConfigServiceImpl.java
│ │ ├── process
│ │ │ ├── controller
│ │ │ │ └── EmailProcessController.java
│ │ │ ├── domain
│ │ │ │ └── EmailProcess.java
│ │ │ ├── model
│ │ │ │ ├── dto
│ │ │ │ │ └── EmailSendDTO.java
│ │ │ │ └── vo
│ │ │ │ │ └── EmailSendVO.java
│ │ │ └── service
│ │ │ │ ├── EmailProcessHandler.java
│ │ │ │ ├── EmailProcessService.java
│ │ │ │ └── impl
│ │ │ │ ├── EmailProcessServiceImpl.java
│ │ │ │ └── QQEmailProcessHandlerImpl.java
│ │ └── record
│ │ │ ├── controller
│ │ │ └── EmailRecordController.java
│ │ │ ├── domain
│ │ │ └── EmailRecord.java
│ │ │ ├── mapper
│ │ │ └── EmailRecordMapper.java
│ │ │ ├── model
│ │ │ └── vo
│ │ │ │ └── EmailRecordQueryVO.java
│ │ │ └── service
│ │ │ ├── EmailRecordService.java
│ │ │ └── impl
│ │ │ └── EmailRecordServiceImpl.java
│ │ ├── file
│ │ ├── config
│ │ │ ├── controller
│ │ │ │ └── FileConfigController.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ └── FileConfigUpdateVO.java
│ │ │ └── service
│ │ │ │ ├── FileConfigService.java
│ │ │ │ └── impl
│ │ │ │ └── FileConfigServiceImpl.java
│ │ ├── manage
│ │ │ ├── controller
│ │ │ │ └── FileRecordController.java
│ │ │ ├── domain
│ │ │ │ └── FileRecord.java
│ │ │ ├── mapper
│ │ │ │ └── FileRecordMapper.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ └── FileRecordQueryVO.java
│ │ │ └── service
│ │ │ │ ├── FileRecordService.java
│ │ │ │ └── impl
│ │ │ │ └── FileRecordServiceImpl.java
│ │ └── process
│ │ │ ├── controller
│ │ │ └── FileProcessController.java
│ │ │ ├── domain
│ │ │ └── FileProcess.java
│ │ │ ├── model
│ │ │ ├── dto
│ │ │ │ ├── FileProcessDownloadDTO.java
│ │ │ │ └── FileProcessUploadDTO.java
│ │ │ └── vo
│ │ │ │ └── FileProcessVO.java
│ │ │ └── service
│ │ │ ├── FileProcessHandler.java
│ │ │ ├── FileProcessService.java
│ │ │ └── impl
│ │ │ ├── AliFileProcessHandler.java
│ │ │ ├── FileProcessServiceImpl.java
│ │ │ ├── LocalFileProcessHandler.java
│ │ │ ├── QiniuFileProcessHandler.java
│ │ │ └── TencentFileProcessHandler.java
│ │ ├── job
│ │ ├── common
│ │ │ ├── ActiveJob.java
│ │ │ ├── JobRunningEntity.java
│ │ │ └── QuartzManage.java
│ │ ├── config
│ │ │ ├── JobApplicationRunner.java
│ │ │ └── QuartzConfig.java
│ │ ├── log
│ │ │ ├── controller
│ │ │ │ └── QuartzLogController.java
│ │ │ ├── domain
│ │ │ │ └── QuartzLog.java
│ │ │ ├── mapper
│ │ │ │ └── QuartzLogMapper.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ └── QuartzLogQueryVO.java
│ │ │ └── service
│ │ │ │ ├── QuartzLogService.java
│ │ │ │ └── impl
│ │ │ │ └── QuartzLogServiceImpl.java
│ │ ├── manage
│ │ │ ├── controller
│ │ │ │ └── QuartzJobController.java
│ │ │ ├── domain
│ │ │ │ └── QuartzJob.java
│ │ │ ├── mapper
│ │ │ │ └── QuartzJobMapper.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ ├── QuartzJobCreateVO.java
│ │ │ │ │ ├── QuartzJobQueryVO.java
│ │ │ │ │ ├── QuartzJobStatusUpdateVO.java
│ │ │ │ │ └── QuartzJobUpdateVO.java
│ │ │ └── service
│ │ │ │ ├── QuartzJobService.java
│ │ │ │ └── impl
│ │ │ │ └── QuartzJobServiceImpl.java
│ │ └── task
│ │ │ └── TestTask.java
│ │ ├── permission
│ │ ├── action
│ │ │ ├── controller
│ │ │ │ └── PermissionActionController.java
│ │ │ ├── domain
│ │ │ │ ├── PermissionAction.java
│ │ │ │ └── PermissionMenuAction.java
│ │ │ ├── mapper
│ │ │ │ ├── PermissionActionMapper.java
│ │ │ │ └── PermissionMenuActionMapper.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ ├── PermissionActionCreateVO.java
│ │ │ │ │ ├── PermissionActionQueryVO.java
│ │ │ │ │ └── PermissionActionUpdateVO.java
│ │ │ └── service
│ │ │ │ ├── PermissionActionService.java
│ │ │ │ ├── PermissionMenuActionService.java
│ │ │ │ └── impl
│ │ │ │ ├── PermissionActionServiceImpl.java
│ │ │ │ └── PermissionMenuActionServiceImpl.java
│ │ ├── group
│ │ │ ├── controller
│ │ │ │ └── PermissionGroupController.java
│ │ │ ├── domain
│ │ │ │ └── PermissionActionGroup.java
│ │ │ ├── mapper
│ │ │ │ └── PermissionActionGroupMapper.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ ├── PermissionGroupCreateVO.java
│ │ │ │ │ ├── PermissionGroupQueryVO.java
│ │ │ │ │ └── PermissionGroupUpdateVO.java
│ │ │ └── service
│ │ │ │ ├── PermissionActionGroupService.java
│ │ │ │ └── impl
│ │ │ │ └── PermissionActionGroupServiceImpl.java
│ │ └── menu
│ │ │ ├── controller
│ │ │ └── PermissionMenuController.java
│ │ │ ├── domain
│ │ │ ├── PermissionMenu.java
│ │ │ └── PermissionRoleMenu.java
│ │ │ ├── mapper
│ │ │ ├── PermissionMenuMapper.java
│ │ │ └── PermissionRoleMenuMapper.java
│ │ │ ├── model
│ │ │ ├── dto
│ │ │ │ └── PermissionMenuLayerDTO.java
│ │ │ └── vo
│ │ │ │ ├── PermissionMenuCreateVO.java
│ │ │ │ ├── PermissionMenuQueryVO.java
│ │ │ │ └── PermissionMenuUpdateVO.java
│ │ │ └── service
│ │ │ ├── PermissionMenuService.java
│ │ │ ├── PermissionRoleMenuService.java
│ │ │ └── impl
│ │ │ ├── PermissionMenuServiceImpl.java
│ │ │ └── PermissionRoleMenuServiceImpl.java
│ │ ├── post
│ │ ├── controller
│ │ │ └── PostController.java
│ │ ├── domain
│ │ │ └── Post.java
│ │ ├── mapper
│ │ │ └── PostMapper.java
│ │ ├── model
│ │ │ └── vo
│ │ │ │ ├── PostCreateVO.java
│ │ │ │ ├── PostQueryVO.java
│ │ │ │ └── PostUpdateVO.java
│ │ └── service
│ │ │ ├── PostService.java
│ │ │ └── impl
│ │ │ └── PostServiceImpl.java
│ │ ├── role
│ │ ├── controller
│ │ │ └── RoleController.java
│ │ ├── domain
│ │ │ ├── Role.java
│ │ │ └── UserRole.java
│ │ ├── mapper
│ │ │ ├── RoleMapper.java
│ │ │ └── UserRoleMapper.java
│ │ ├── model
│ │ │ └── vo
│ │ │ │ ├── RoleCreateVO.java
│ │ │ │ ├── RoleQueryVO.java
│ │ │ │ └── RoleUpdateVO.java
│ │ └── service
│ │ │ ├── RoleService.java
│ │ │ ├── UserRoleService.java
│ │ │ └── impl
│ │ │ ├── RoleServiceImpl.java
│ │ │ └── UserRoleServiceImpl.java
│ │ ├── sms
│ │ ├── config
│ │ │ ├── controller
│ │ │ │ └── SmsConfigController.java
│ │ │ ├── model
│ │ │ │ └── vo
│ │ │ │ │ └── SmsConfigUpdateVO.java
│ │ │ └── service
│ │ │ │ ├── SmsConfigService.java
│ │ │ │ └── impl
│ │ │ │ └── SmsConfigServiceImpl.java
│ │ ├── process
│ │ │ ├── controller
│ │ │ │ └── SmsProcessController.java
│ │ │ ├── domain
│ │ │ │ └── SmsProcess.java
│ │ │ ├── model
│ │ │ │ ├── dto
│ │ │ │ │ └── SmsSendDTO.java
│ │ │ │ └── vo
│ │ │ │ │ └── SmsSendVO.java
│ │ │ └── service
│ │ │ │ ├── SmsProcessHandler.java
│ │ │ │ ├── SmsProcessService.java
│ │ │ │ └── impl
│ │ │ │ ├── SmsProcessServiceImpl.java
│ │ │ │ ├── TencentSmsProcessHandlerImpl.java
│ │ │ │ └── UniSmsProcessHandlerImpl.java
│ │ └── record
│ │ │ ├── controller
│ │ │ └── SmsRecordController.java
│ │ │ ├── domain
│ │ │ └── SmsRecord.java
│ │ │ ├── mapper
│ │ │ └── SmsRecordMapper.java
│ │ │ ├── model
│ │ │ └── vo
│ │ │ │ └── SmsRecordQueryVO.java
│ │ │ └── service
│ │ │ ├── SmsRecordService.java
│ │ │ └── impl
│ │ │ └── SmsRecordServiceImpl.java
│ │ └── user
│ │ ├── controller
│ │ └── UserController.java
│ │ ├── domain
│ │ └── User.java
│ │ ├── mapper
│ │ └── UserMapper.java
│ │ ├── model
│ │ ├── dto
│ │ │ └── UserDTO.java
│ │ └── vo
│ │ │ ├── UserCreateVO.java
│ │ │ ├── UserQueryVO.java
│ │ │ ├── UserUpdateOwnPasswordVO.java
│ │ │ ├── UserUpdatePasswordVO.java
│ │ │ └── UserUpdateVO.java
│ │ └── service
│ │ ├── UserService.java
│ │ └── impl
│ │ └── UserServiceImpl.java
│ └── resources
│ └── mapper
│ ├── AnnouncementsMapper.xml
│ ├── BasicSettingMapper.xml
│ ├── ConfigDetailMapper.xml
│ ├── ConfigTemplateMapper.xml
│ ├── DataDictMapper.xml
│ ├── DepartmentMapper.xml
│ ├── EmailRecordMapper.xml
│ ├── FileRecordMapper.xml
│ ├── ModuleConfigMapper.xml
│ ├── PermissionActionGroupMapper.xml
│ ├── PermissionActionMapper.xml
│ ├── PermissionMenuActionMapper.xml
│ ├── PermissionMenuMapper.xml
│ ├── PermissionRoleMenuMapper.xml
│ ├── PostMapper.xml
│ ├── QuartzJobMapper.xml
│ ├── QuartzLogMapper.xml
│ ├── RoleMapper.xml
│ ├── SimpleDataDictDetailMapper.xml
│ ├── SimpleDataDictMapper.xml
│ ├── SmsRecordMapper.xml
│ ├── UserMapper.xml
│ └── UserRoleMapper.xml
└── pom.xml
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
39 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/custom.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Custom issue template
3 | about: Describe this issue template's purpose here.
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**/target/
5 | !**/src/test/**/target/
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 | *.log
22 |
23 | ### NetBeans ###
24 | /nbproject/private/
25 | /nbbuild/
26 | /dist/
27 | /nbdist/
28 | /.nb-gradle/
29 | build/
30 | !**/src/main/**/build/
31 | !**/src/test/**/build/
32 |
33 | ### VS Code ###
34 | .vscode/
35 |
36 | codegens/
37 |
38 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # 贡献指南
2 |
3 | 欢迎您为我们的项目做出贡献!在参与之前,请仔细阅读以下内容。
4 |
5 | ## 目标和愿景
6 |
7 | 我们的项目旨在提供一个高效、可靠、易用的解决方案,以满足用户在某一领域的需求。我们希望通过开放源代码、积极沟通和合作,来推进项目的发展和壮大。当前,我们已经实现了一些基本功能,并且在持续不断地改进中。我们希望您能够加入我们的行列,为项目的未来做出贡献。
8 |
9 | ## 如何贡献
10 |
11 | 您可以通过以下方式为项目做出贡献:
12 |
13 | - 编写代码或者测试用例;
14 | - 修复错误和漏洞;
15 | - 添加新功能和特性;
16 | - 完善文档和翻译;
17 | - 提出建议和改进建议。
18 |
19 | 如果您想要为项目做出贡献,请按照以下步骤进行:
20 |
21 | 1. 在 GitHub 上 Fork 项目的仓库;
22 | 2. 创建一个新的分支,命名规范为 `feature/xxx` 或者 `bugfix/xxx`;
23 | 3. 在新分支上进行修改和更新,并保证代码风格和质量;
24 | 4. 提交 Pull Request,并描述您的修改和意图;
25 | 5. 等待 Reviewer 的反馈和审核,进行必要的修改和更新;
26 | 6. 审核通过后,合并代码到主干分支。
27 |
28 | ## 报告错误和问题
29 |
30 | 如果您发现了任何错误、问题或者建议,请及时向我们反馈。您可以在项目的 Issues 中提出相关的内容,或者发送电子邮件至我们的官方邮箱。我们会尽快处理并回复您。
31 |
32 | ## 代码规范和提交规则
33 |
34 | 为了保证代码的一致性和可读性,我们制定了一些编码规范和提交规则。具体内容请参考 `/docs/CONTRIBUTING.md` 文件。在提交代码之前,请先仔细阅读并遵循相关规范。
35 |
36 | ## 构建和运行项目
37 |
38 | 在构建和运行项目之前,请确保您已经安装了必要的依赖项和环境。具体内容请参考 `/docs/INSTALLATION.md` 文件。如果您在使用过程中遇到了问题,请及时向我们反馈。
39 |
40 | ## 获取帮助和支持
41 |
42 | 如果您需要帮助和支持,请访问我们的社区论坛或者发送电子邮件至我们的官方邮箱。我们会尽快回复您并提供相应的解决方案。
43 |
44 | ## 许可证和版权信息
45 |
46 | 本项目采用 MIT 许可证,详情请参考 `/LICENSE` 文件。所有贡献者的名字将会被列在 `CONTRIBUTORS.md` 文件中。
47 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | # 使用OpenJDK 11 作为基础镜像
2 | FROM openjdk:11.0
3 |
4 | # 在容器内部创建目录
5 | RUN mkdir -p /app/uploads
6 | RUN mkdir -p /app/logs
7 |
8 | # 设置工作目录
9 | WORKDIR /app
10 |
11 | # 复制应用程序 JAR 包到容器中
12 | COPY jyadmin-starter-1.0-SNAPSHOT.jar ./
13 |
14 | # 暴露应用程序端口
15 | EXPOSE 8081
16 |
17 | # 启动容器时执行的命令
18 | CMD ["java", "-jar", "jyadmin-starter-1.0-SNAPSHOT.jar"]
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 LGX
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.assets/image-20230307201459082.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201459082.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201555115.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201555115.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201616518.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201616518.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201633847.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201633847.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201651822.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201651822.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201712965.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201712965.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201727617.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201727617.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201745265.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201745265.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201812718.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201812718.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201828736.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201828736.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201842248.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201842248.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201902578.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201902578.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201916189.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201916189.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201926703.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201926703.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201948791.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201948791.png
--------------------------------------------------------------------------------
/README.assets/image-20230307201959302.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307201959302.png
--------------------------------------------------------------------------------
/README.assets/image-20230307202026989.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307202026989.png
--------------------------------------------------------------------------------
/README.assets/image-20230307202043628.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307202043628.png
--------------------------------------------------------------------------------
/README.assets/image-20230307202053723.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307202053723.png
--------------------------------------------------------------------------------
/README.assets/image-20230307202117817.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307202117817.png
--------------------------------------------------------------------------------
/README.assets/image-20230307202151603.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307202151603.png
--------------------------------------------------------------------------------
/README.assets/image-20230307202202968.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/1336037686/jyadmin/793ccf72155c936d7e2e7c6795cb55f377e12835/README.assets/image-20230307202202968.png
--------------------------------------------------------------------------------
/jyadmin-code-generate/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | jyadmin
7 | com.jyadmin
8 | 1.0-SNAPSHOT
9 |
10 | 4.0.0
11 |
12 | jyadmin-code-generate
13 |
14 |
15 | 11
16 | 11
17 |
18 |
19 |
20 |
21 | com.jyadmin
22 | jyadmin-common
23 | 1.0-SNAPSHOT
24 |
25 |
26 |
27 |
28 | org.apache.velocity
29 | velocity-engine-core
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/common/config/CodeGenerateConfig.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.common.config;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.context.annotation.Configuration;
6 |
7 | /**
8 | * 代码生成器配置
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2023-05-13 11:04
12 | * @description: CodeGenerateConfig
13 | */
14 | @Configuration
15 | @ConfigurationProperties(prefix = "jyadmin.code-generate")
16 | @Data
17 | public class CodeGenerateConfig {
18 |
19 | /**
20 | * 数据库名称
21 | */
22 | private String dbName;
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/common/utils/VelocityUtils.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.common.utils;
2 |
3 | import cn.hutool.core.bean.BeanUtil;
4 | import cn.hutool.core.util.CharsetUtil;
5 | import cn.hutool.extra.template.TemplateConfig;
6 | import cn.hutool.extra.template.engine.velocity.VelocityEngine;
7 |
8 | import java.util.Map;
9 |
10 | /**
11 | * Velocity 工具类
12 | * @author LGX_TvT
13 | * @version 1.0
14 | * Create by 2023-05-13 18:59
15 | * @description: VelocityUtils
16 | */
17 | public class VelocityUtils {
18 |
19 | /**
20 | * 创建模板引擎
21 | * @return /
22 | */
23 | public static VelocityEngine createVelocityEngine() {
24 | TemplateConfig config = new TemplateConfig();
25 | config.setCharset(CharsetUtil.CHARSET_UTF_8);
26 | config.setResourceMode(TemplateConfig.ResourceMode.CLASSPATH);
27 | return new VelocityEngine(config);
28 | }
29 |
30 | /**
31 | * 对象转换Map对象
32 | */
33 | public static Map obj2MapModel(T obj) {
34 | return BeanUtil.beanToMap(obj);
35 | }
36 |
37 |
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/domain/CodeGenerateFieldType.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.domain;
2 |
3 | import com.baomidou.mybatisplus.annotation.TableField;
4 | import com.baomidou.mybatisplus.annotation.TableName;
5 | import com.jyadmin.domain.base.BaseEntity;
6 | import lombok.Data;
7 | import lombok.experimental.Accessors;
8 |
9 | import java.io.Serializable;
10 |
11 | /**
12 | *
13 | * @TableName code_generate_field_type
14 | */
15 | @TableName(value ="code_generate_field_type")
16 | @Accessors(chain = true)
17 | @Data
18 | public class CodeGenerateFieldType extends BaseEntity implements Serializable {
19 |
20 | /**
21 | * 数据库类型
22 | */
23 | @TableField(value = "jdbc_type")
24 | private String jdbcType;
25 |
26 | /**
27 | * 对应Java类型
28 | */
29 | @TableField(value = "java_type")
30 | private String javaType;
31 |
32 | /**
33 | * 全类名
34 | */
35 | @TableField(value = "class_name")
36 | private String className;
37 |
38 |
39 | @TableField(exist = false)
40 | private static final long serialVersionUID = 1L;
41 | }
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/mapper/CodeGenerateFieldConfigMapper.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.mapper;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateFieldConfig;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_field_config(代码生成器-表字段配置)】的数据库操作Mapper
9 | * @createDate 2023-05-11 11:15:25
10 | * @Entity com.jyadmin.generate.domain.CodeGenerateFieldConfig
11 | */
12 | public interface CodeGenerateFieldConfigMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/mapper/CodeGenerateFieldMapper.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.mapper;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateField;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_field(代码生成器-表字段信息)】的数据库操作Mapper
9 | * @createDate 2023-05-11 11:15:25
10 | * @Entity com.jyadmin.generate.domain.CodeGenerateField
11 | */
12 | public interface CodeGenerateFieldMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/mapper/CodeGenerateFieldTypeMapper.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.mapper;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateFieldType;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_field_type】的数据库操作Mapper
9 | * @createDate 2023-05-11 20:56:21
10 | * @Entity com.jyadmin.generate.domain.CodeGenerateFieldType
11 | */
12 | public interface CodeGenerateFieldTypeMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/mapper/CodeGenerateTableConfigMapper.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.mapper;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateTableConfig;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_table_config(代码生成器-数据库表配置)】的数据库操作Mapper
9 | * @createDate 2023-05-11 11:15:25
10 | * @Entity com.jyadmin.generate.domain.CodeGenerateTableConfig
11 | */
12 | public interface CodeGenerateTableConfigMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/mapper/CodeGenerateTableMapper.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.mapper;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateTable;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_table(代码生成器-数据库表信息)】的数据库操作Mapper
9 | * @createDate 2023-05-11 11:15:25
10 | * @Entity com.jyadmin.generate.domain.CodeGenerateTable
11 | */
12 | public interface CodeGenerateTableMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/model/dto/CodeGenerateMetaDataDTO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.model.dto;
2 |
3 | import cn.hutool.extra.template.Template;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * 代码生成元数据
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2023-05-18 22:33
12 | * @description: CodeGenerateMetaDataDTO
13 | */
14 | @Data
15 | @Accessors(chain = true)
16 | public class CodeGenerateMetaDataDTO {
17 |
18 | private Template template;
19 |
20 | private String parentPath;
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/model/dto/TemplateConfig.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.model.dto;
2 |
3 | import cn.hutool.core.io.FileUtil;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @author LGX_TvT
9 | * @version 1.0
10 | * Create by 2023-05-16 21:13
11 | * @description: TemplateConfig
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | public class TemplateConfig {
16 |
17 | /**
18 | * 基础名称
19 | */
20 | private String metaName;
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/model/dto/TemplateContextDTO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.model.dto;
2 |
3 |
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @author LGX_TvT
9 | * @version 1.0
10 | * Create by 2023-05-15 11:14
11 | * @description: TemplateContextDTO
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | public class TemplateContextDTO {
16 |
17 | /**
18 | * 模板配置信息
19 | */
20 | private TemplateConfig config;
21 |
22 | /**
23 | * 模板数据
24 | */
25 | private TemplateModelDTO model;
26 | }
27 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/model/vo/CodeGenerateJavaFieldTypeResVO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.model.vo;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * Java 类型 VO
8 | * @author LGX_TvT
9 | * @version 1.0
10 | * Create by 2023-05-22 18:45
11 | * @description: CodeGenerateJavaFieldTypeResVO
12 | */
13 | @Data
14 | @Accessors(chain = true)
15 | public class CodeGenerateJavaFieldTypeResVO {
16 |
17 | private String javaType;
18 |
19 | private String className;
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/model/vo/CodePreviewResVO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.model.vo;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | /**
7 | * @author LGX_TvT
8 | * @version 1.0
9 | * Create by 2023-05-20 23:28
10 | * @description: CodePreviewResVO
11 | */
12 | @Data
13 | @Accessors(chain = true)
14 | public class CodePreviewResVO {
15 |
16 | private String name;
17 |
18 | private String type;
19 |
20 | private String code;
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/model/vo/TableOptionRespVO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.model.vo;
2 |
3 | import io.swagger.annotations.ApiModel;
4 | import io.swagger.annotations.ApiModelProperty;
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | /**
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2023-05-11 10:33
12 | * @description: SimpleTableOptionsVO
13 | */
14 | @ApiModel("代码生成器-查询-表列表-数据模型")
15 | @Accessors(chain = true)
16 | @Data
17 | public class TableOptionRespVO {
18 |
19 | /**
20 | * 表名称
21 | */
22 | @ApiModelProperty(value = "表名称", name = "tableName")
23 | private String tableName;
24 |
25 | /**
26 | * 表备注
27 | */
28 | @ApiModelProperty(value = "表备注", name = "tableRemark")
29 | private String tableRemark;
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/model/vo/TableQueryReqVO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.model.vo;
2 |
3 | import com.jyadmin.domain.base.BasePageVO;
4 | import io.swagger.annotations.ApiModel;
5 | import io.swagger.annotations.ApiModelProperty;
6 | import lombok.Data;
7 |
8 | /**
9 | *
10 | * @author LGX_TvT
11 | * @version 1.0
12 | * Create by 2023-05-11 10:29
13 | * @description: TableQueryVO
14 | */
15 | @ApiModel("代码生成器-查询-表列表-数据模型")
16 | @Data
17 | public class TableQueryReqVO extends BasePageVO {
18 |
19 | /**
20 | * 表名称
21 | */
22 | @ApiModelProperty(value = "表名称", name = "tableName")
23 | private String tableName;
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/model/vo/UserConfigReqVO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.model.vo;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateField;
4 | import com.jyadmin.generate.domain.CodeGenerateFieldConfig;
5 | import com.jyadmin.generate.domain.CodeGenerateTable;
6 | import com.jyadmin.generate.domain.CodeGenerateTableConfig;
7 | import io.swagger.annotations.ApiModel;
8 | import io.swagger.annotations.ApiModelProperty;
9 | import lombok.Data;
10 |
11 | import java.util.List;
12 |
13 | /**
14 | * @author LGX_TvT
15 | * @version 1.0
16 | * Create by 2023-05-12 16:33
17 | * @description: UserConfigReqVO
18 | */
19 | @ApiModel("代码生成器-用户设置-数据模型")
20 | @Data
21 | public class UserConfigReqVO {
22 |
23 | /**
24 | * 表配置
25 | */
26 | @ApiModelProperty(value = "表配置", name = "tableConfig")
27 | private CodeGenerateTableConfig tableConfig;
28 |
29 | /**
30 | * 字段配置
31 | */
32 | @ApiModelProperty(value = "字段配置", name = "fieldConfigs")
33 | private List fieldConfigs;
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/CodeGenerateFieldConfigService.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateFieldConfig;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_field_config(代码生成器-表字段配置)】的数据库操作Service
9 | * @createDate 2023-05-11 11:15:25
10 | */
11 | public interface CodeGenerateFieldConfigService extends IService {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/CodeGenerateFieldService.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateField;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_field(代码生成器-表字段信息)】的数据库操作Service
9 | * @createDate 2023-05-11 11:15:25
10 | */
11 | public interface CodeGenerateFieldService extends IService {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/CodeGenerateFieldTypeService.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateFieldType;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_field_type】的数据库操作Service
9 | * @createDate 2023-05-11 20:56:21
10 | */
11 | public interface CodeGenerateFieldTypeService extends IService {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/CodeGenerateService.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service;
2 |
3 | import com.jyadmin.generate.model.vo.*;
4 |
5 | import javax.servlet.http.HttpServletResponse;
6 | import java.util.List;
7 | import java.util.Set;
8 |
9 | /**
10 | * @author LGX_TvT
11 | * @version 1.0
12 | * Create by 2023-05-11 11:10
13 | * @description: CodeGeneratorService
14 | */
15 | public interface CodeGenerateService {
16 |
17 | List getTableOptionsList(TableQueryReqVO vo);
18 |
19 | boolean saveTable(String tableName);
20 |
21 | boolean updateTable(Long tableId);
22 |
23 | boolean removeByIds(Set ids);
24 |
25 | boolean getTableExist(Long tableId);
26 |
27 | boolean updateTableConfig(UserConfigReqVO vo);
28 |
29 | void generateCode(Long tableId, HttpServletResponse response);
30 |
31 | UserConfigResVO getTableConfig(Long tableId);
32 |
33 | List generatePreviewCode(Long tableId);
34 | }
35 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/CodeGenerateTableConfigService.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateTableConfig;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_table_config(代码生成器-数据库表配置)】的数据库操作Service
9 | * @createDate 2023-05-11 11:15:25
10 | */
11 | public interface CodeGenerateTableConfigService extends IService {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/CodeGenerateTableService.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service;
2 |
3 | import com.jyadmin.generate.domain.CodeGenerateTable;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 |
6 | /**
7 | * @author 13360
8 | * @description 针对表【code_generate_table(代码生成器-数据库表信息)】的数据库操作Service
9 | * @createDate 2023-05-11 11:15:25
10 | */
11 | public interface CodeGenerateTableService extends IService {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/impl/CodeGenerateFieldConfigServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.jyadmin.generate.domain.CodeGenerateFieldConfig;
5 | import com.jyadmin.generate.service.CodeGenerateFieldConfigService;
6 | import com.jyadmin.generate.mapper.CodeGenerateFieldConfigMapper;
7 | import org.springframework.stereotype.Service;
8 |
9 | /**
10 | * @author 13360
11 | * @description 针对表【code_generate_field_config(代码生成器-表字段配置)】的数据库操作Service实现
12 | * @createDate 2023-05-11 11:15:25
13 | */
14 | @Service
15 | public class CodeGenerateFieldConfigServiceImpl extends ServiceImpl
16 | implements CodeGenerateFieldConfigService{
17 |
18 | }
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/impl/CodeGenerateFieldServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.jyadmin.generate.domain.CodeGenerateField;
5 | import com.jyadmin.generate.service.CodeGenerateFieldService;
6 | import com.jyadmin.generate.mapper.CodeGenerateFieldMapper;
7 | import org.springframework.stereotype.Service;
8 |
9 | /**
10 | * @author 13360
11 | * @description 针对表【code_generate_field(代码生成器-表字段信息)】的数据库操作Service实现
12 | * @createDate 2023-05-11 11:15:25
13 | */
14 | @Service
15 | public class CodeGenerateFieldServiceImpl extends ServiceImpl
16 | implements CodeGenerateFieldService{
17 |
18 | }
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/impl/CodeGenerateFieldTypeServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.jyadmin.generate.domain.CodeGenerateFieldType;
5 | import com.jyadmin.generate.service.CodeGenerateFieldTypeService;
6 | import com.jyadmin.generate.mapper.CodeGenerateFieldTypeMapper;
7 | import org.springframework.stereotype.Service;
8 |
9 | /**
10 | * @author 13360
11 | * @description 针对表【code_generate_field_type】的数据库操作Service实现
12 | * @createDate 2023-05-11 20:56:21
13 | */
14 | @Service
15 | public class CodeGenerateFieldTypeServiceImpl extends ServiceImpl
16 | implements CodeGenerateFieldTypeService{
17 |
18 | }
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/impl/CodeGenerateTableConfigServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.jyadmin.generate.domain.CodeGenerateTableConfig;
5 | import com.jyadmin.generate.service.CodeGenerateTableConfigService;
6 | import com.jyadmin.generate.mapper.CodeGenerateTableConfigMapper;
7 | import org.springframework.stereotype.Service;
8 |
9 | /**
10 | * @author 13360
11 | * @description 针对表【code_generate_table_config(代码生成器-数据库表配置)】的数据库操作Service实现
12 | * @createDate 2023-05-11 11:15:25
13 | */
14 | @Service
15 | public class CodeGenerateTableConfigServiceImpl extends ServiceImpl
16 | implements CodeGenerateTableConfigService{
17 |
18 | }
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/java/com/jyadmin/generate/service/impl/CodeGenerateTableServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.generate.service.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.jyadmin.generate.domain.CodeGenerateTable;
5 | import com.jyadmin.generate.service.CodeGenerateTableService;
6 | import com.jyadmin.generate.mapper.CodeGenerateTableMapper;
7 | import org.springframework.stereotype.Service;
8 |
9 | /**
10 | * @author 13360
11 | * @description 针对表【code_generate_table(代码生成器-数据库表信息)】的数据库操作Service实现
12 | * @createDate 2023-05-11 11:15:25
13 | */
14 | @Service
15 | public class CodeGenerateTableServiceImpl extends ServiceImpl
16 | implements CodeGenerateTableService{
17 |
18 | }
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/resources/template/java/simple-createReqVO.java.vm:
--------------------------------------------------------------------------------
1 | package ${packageName}.model.vo;
2 |
3 | import io.swagger.annotations.ApiModel;
4 | import io.swagger.annotations.ApiModelProperty;
5 | import lombok.Data;
6 |
7 | import javax.validation.constraints.NotBlank;
8 | import javax.validation.constraints.NotNull;
9 | import java.io.Serializable;
10 |
11 | /**
12 | * ${tableRemark}
13 | * @author ${author}
14 | * @version ${version}
15 | * Create by ${currTime}
16 | * @description: ${realTableNameUpperCamelCase}CreateReqVO
17 | */
18 | @ApiModel("${tableRemark}-新增-数据模型")
19 | @Data
20 | public class ${realTableNameUpperCamelCase}CreateReqVO implements Serializable {
21 | #foreach($field in $fields)
22 | #if($field.fieldIgnore == 0)
23 | #if($field.showForm == 1)
24 | #if($field.pk.equals('0'))
25 |
26 | /**
27 | * ${field.fieldRemark}
28 | */
29 | @ApiModelProperty(value = "${field.fieldRemark}", name = "${field.realFieldNameLowCamelCase}")
30 | #if($field.javaType.equals('String') && $field.formRequire == 1)
31 | @NotBlank(message = "${field.fieldRemark}不能为空")
32 | #else
33 | @NotNull(message = "${field.fieldRemark}不能为空")
34 | #end
35 | private ${field.javaType} ${field.realFieldNameLowCamelCase};
36 | #end
37 | #end
38 | #end
39 | #end
40 | }
41 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/resources/template/java/simple-mapper.java.vm:
--------------------------------------------------------------------------------
1 | package ${packageName}.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import ${packageName}.domain.${realTableNameUpperCamelCase};
5 | import org.apache.ibatis.annotations.Mapper;
6 |
7 |
8 | /**
9 | * ${tableRemark} Mapper
10 | * @author ${author}
11 | * @version ${version}
12 | * Create by ${currTime}
13 | * @Entity ${packageName}.domain.${realTableNameUpperCamelCase}
14 | * @description: ${realTableNameUpperCamelCase}Mapper
15 | */
16 | @Mapper
17 | public interface ${realTableNameUpperCamelCase}Mapper extends BaseMapper<${realTableNameUpperCamelCase}> {
18 |
19 | }
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/resources/template/java/simple-queryReqVO.java.vm:
--------------------------------------------------------------------------------
1 | package ${packageName}.model.vo;
2 |
3 | import com.jyadmin.domain.base.BasePageVO;
4 | import io.swagger.annotations.ApiModel;
5 | import io.swagger.annotations.ApiModelProperty;
6 | import lombok.Data;
7 |
8 | import java.io.Serializable;
9 |
10 | /**
11 | * ${tableRemark}
12 | * @author ${author}
13 | * @version ${version}
14 | * Create by ${currTime}
15 | * @description: ${realTableNameUpperCamelCase}QueryReqVO
16 | */
17 | @ApiModel("${tableRemark}-查询-数据模型")
18 | @Data
19 | public class ${realTableNameUpperCamelCase}QueryReqVO extends BasePageVO implements Serializable {
20 | #foreach($field in $fields)
21 | #if($field.fieldIgnore == 0)
22 | #if($field.showQuery == 1)
23 |
24 | /**
25 | * ${field.fieldRemark}
26 | */
27 | @ApiModelProperty(value = "${field.fieldRemark}", name = "${field.realFieldNameLowCamelCase}")
28 | private ${field.javaType} ${field.realFieldNameLowCamelCase};
29 | #end
30 | #end
31 | #end
32 | }
33 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/resources/template/java/simple-service.java.vm:
--------------------------------------------------------------------------------
1 | package ${packageName}.service;
2 |
3 | import com.baomidou.mybatisplus.extension.service.IService;
4 | import ${packageName}.domain.${realTableNameUpperCamelCase};
5 |
6 | /**
7 | * ${tableRemark} Service
8 | * @author ${author}
9 | * @version ${version}
10 | * Create by ${currTime}
11 | * @description: ${realTableNameUpperCamelCase}Service
12 | */
13 | public interface ${realTableNameUpperCamelCase}Service extends IService<${realTableNameUpperCamelCase}> {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/resources/template/java/simple-serviceImpl.java.vm:
--------------------------------------------------------------------------------
1 | package ${packageName}.service.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import ${packageName}.domain.${realTableNameUpperCamelCase};
5 | import ${packageName}.mapper.${realTableNameUpperCamelCase}Mapper;
6 | import ${packageName}.service.${realTableNameUpperCamelCase}Service;
7 | import org.springframework.stereotype.Service;
8 |
9 | /**
10 | * ${tableRemark} ServiceImpl
11 | * @author ${author}
12 | * @version ${version}
13 | * Create by ${currTime}
14 | * @description: ${realTableNameUpperCamelCase}ServiceImpl
15 | */
16 | @Service
17 | public class ${realTableNameUpperCamelCase}ServiceImpl extends ServiceImpl<${realTableNameUpperCamelCase}Mapper, ${realTableNameUpperCamelCase}> implements ${realTableNameUpperCamelCase}Service {
18 |
19 | }
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/resources/template/java/simple-updateReqVO.java.vm:
--------------------------------------------------------------------------------
1 | package ${packageName}.model.vo;
2 |
3 | import io.swagger.annotations.ApiModel;
4 | import io.swagger.annotations.ApiModelProperty;
5 | import lombok.Data;
6 |
7 | import javax.validation.constraints.NotBlank;
8 | import javax.validation.constraints.NotNull;
9 | import java.io.Serializable;
10 |
11 | /**
12 | * ${tableRemark}
13 | * @author ${author}
14 | * @version ${version}
15 | * Create by ${currTime}
16 | * @description: ${realTableNameUpperCamelCase}UpdateReqVO
17 | */
18 | @ApiModel("${tableRemark}-修改-数据模型")
19 | @Data
20 | public class ${realTableNameUpperCamelCase}UpdateReqVO implements Serializable {
21 | #foreach($field in $fields)
22 | #if($field.fieldIgnore == 0)
23 | #if($field.showForm == 1)
24 |
25 | /**
26 | * ${field.fieldRemark}
27 | */
28 | @ApiModelProperty(value = "${field.fieldRemark}", name = "${field.realFieldNameLowCamelCase}")
29 | #if($field.javaType.equals('String') && $field.formRequire == 1)
30 | @NotBlank(message = "${field.fieldRemark}不能为空")
31 | #else
32 | @NotNull(message = "${field.fieldRemark}不能为空")
33 | #end
34 | private ${field.javaType} ${field.realFieldNameLowCamelCase};
35 | #end
36 | #end
37 | #end
38 | }
39 |
--------------------------------------------------------------------------------
/jyadmin-code-generate/src/main/resources/template/vue/simple-api.js.vm:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request-api'
2 |
3 | export default {
4 | getList(query) {
5 | return request({
6 | url: '/api/${realTableNameLowCamelCase}/query',
7 | method: 'get',
8 | params: query
9 | })
10 | },
11 |
12 | getById(id) {
13 | return request({
14 | url: '/api/${realTableNameLowCamelCase}/query/' + id,
15 | method: 'get'
16 | })
17 | },
18 |
19 | add(data, idempotentToken) {
20 | return request({
21 | url: '/api/${realTableNameLowCamelCase}/create',
22 | method: 'post',
23 | params: { 'idempotent-token': idempotentToken },
24 | data
25 | })
26 | },
27 |
28 | update(data, idempotentToken) {
29 | return request({
30 | url: '/api/${realTableNameLowCamelCase}/update',
31 | method: 'put',
32 | params: { 'idempotent-token': idempotentToken },
33 | data
34 | })
35 | },
36 |
37 | remove(data) {
38 | return request({
39 | url: '/api/${realTableNameLowCamelCase}/remove',
40 | method: 'delete',
41 | data
42 | })
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/annotation/DataAccessControl.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 数据访问控制注解
10 | * @author LGX_TvT
11 | * @version 1.0
12 | * Create by 2023-06-06 17:40
13 | * @description: DataAccessControl
14 | */
15 | @Target({ElementType.METHOD, ElementType.TYPE})
16 | @Retention(RetentionPolicy.RUNTIME)
17 | public @interface DataAccessControl {
18 |
19 | /**
20 | * 进行数据访问控制的方法,该参数只标识在Class上启用
21 | * com.jyadmin.consts.DataAccessControlConstant#DEFAULT_BASE_MAPPER_SELECT_METHODS
22 | */
23 | String[] methods() default { };
24 |
25 | /**
26 | * 是否对MybatisPlus mapper 默认的方法启用数据权限控制
27 | * com.jyadmin.consts.DataAccessControlConstant#DEFAULT_BASE_MAPPER_SELECT_METHODS
28 | */
29 | boolean enableMybatisPlusDefaultMethods() default false;
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/annotation/Idempotent.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 接口幂等注解
10 | * @author LGX_TvT
11 | * @version 1.0
12 | * Create by 2022-07-09 00:17
13 | * @description: Idempotent
14 | */
15 | @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
16 | @Retention(RetentionPolicy.RUNTIME)
17 | public @interface Idempotent {
18 |
19 | String name() default "";
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/annotation/RateLimit.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.annotation;
2 |
3 |
4 | import java.lang.annotation.ElementType;
5 | import java.lang.annotation.Retention;
6 | import java.lang.annotation.RetentionPolicy;
7 | import java.lang.annotation.Target;
8 |
9 | /**
10 | * 流量控制注解
11 | * @author LGX_TvT
12 | * @version 1.0
13 | * Create by 2022-07-07 00:13
14 | * @description: Limit
15 | */
16 | @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
17 | @Retention(RetentionPolicy.RUNTIME)
18 | public @interface RateLimit {
19 |
20 | /**
21 | * 缓存key
22 | */
23 | String key() default "";
24 |
25 | /**
26 | * 缓存前缀
27 | * 默认使用 JyLimitProperties配置
28 | */
29 | String prefix() default "";
30 |
31 | /**
32 | * 默认限制间隔时间,单位秒
33 | * 默认使用 JyLimitProperties配置
34 | */
35 | int period() default 0;
36 |
37 | /**
38 | * 默认限制访问次数
39 | * 默认使用 JyLimitProperties配置
40 | */
41 | int count() default 0;
42 |
43 | /**
44 | * 限制类型
45 | * 默认使用 JyLimitProperties配置
46 | */
47 | String limitType() default "";
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/aspect/IpBlackListAspect.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.aspect;
2 |
3 | /**
4 | * IP黑名单过滤
5 | * @author LGX_TvT
6 | * @version 1.0
7 | * Create by 2022-07-09 00:22
8 | * @description: IpBlackListAspect
9 | */
10 | public class IpBlackListAspect {
11 | }
12 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/GlobalConfig.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config;
2 |
3 | import org.springframework.boot.context.properties.EnableConfigurationProperties;
4 | import org.springframework.cache.annotation.EnableCaching;
5 | import org.springframework.context.annotation.Configuration;
6 | import org.springframework.context.annotation.Import;
7 | import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
8 |
9 | /**
10 | * 全局配置 统一管理
11 | * @author LGX_TvT
12 | * @version 1.0
13 | * Create by 2022-07-04 22:25
14 | * @description: JyGlobalConfig
15 | */
16 | @EnableCaching // 开启缓存注解
17 | @EnableConfigurationProperties
18 | @Import(BeanValidatorPluginsConfiguration.class) // 开启使用JSR303注解 https://doc.xiaominfo.com/knife4j/documentation/jsr303.html
19 | @Configuration
20 | public class GlobalConfig {
21 | }
22 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/OtherConfig.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config;
2 |
3 | import org.springframework.context.annotation.Configuration;
4 | import org.springframework.context.annotation.Import;
5 |
6 | /**
7 | * 其他配置
8 | * @author LGX_TvT
9 | * @version 1.0
10 | * Create by 2022-04-29 21:35
11 | * @description: JyOtherConfig
12 | */
13 | // 引入hutool SpringUtil工具类
14 | @Import(cn.hutool.extra.spring.SpringUtil.class)
15 | @Configuration
16 | public class OtherConfig {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/properties/JyApiDocumentProperties.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config.properties;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.stereotype.Component;
6 |
7 | /**
8 | * Api文档配置
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2022-07-04 22:30
12 | * @description: JyApiDocumentProperties
13 | */
14 | @ConfigurationProperties(prefix = JyConfigItemConstant.API_DOC)
15 | @Component
16 | @Data
17 | public class JyApiDocumentProperties {
18 |
19 | /**
20 | * 描述
21 | */
22 | private String description = "jyadmin API文档";
23 |
24 | /**
25 | * 更新服务条款url
26 | */
27 | private String termsOfServiceUrl = "";
28 |
29 | /**
30 | * API负责人的联系信息
31 | */
32 | private String contact = "jyadmin";
33 |
34 | /**
35 | * 版本
36 | */
37 | private String version = "v0.1.0";
38 |
39 | /**
40 | * 分组名称
41 | */
42 | private String groupName = "默认";
43 |
44 | /**
45 | * 基础扫描包路径
46 | */
47 | private String basePackage = "com.jyadmin";
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/properties/JyBaseProperties.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config.properties;
2 |
3 | import com.google.common.collect.Lists;
4 | import lombok.Data;
5 | import org.springframework.boot.context.properties.ConfigurationProperties;
6 | import org.springframework.stereotype.Component;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * 基础配置
12 | * @author LGX_TvT
13 | * @version 1.0
14 | * Create by 2023-06-27 09:55
15 | * @description: JyBaseProperties
16 | */
17 | @ConfigurationProperties(prefix = JyConfigItemConstant.BASE)
18 | @Component
19 | @Data
20 | public class JyBaseProperties {
21 |
22 | /**
23 | * 超级管理员 账户名
24 | * 该账户将会拥有所有权限,全部放行
25 | */
26 | private List superAdmins = Lists.newArrayList("admin");
27 |
28 | /**
29 | * 演示系统拦截功能
30 | */
31 | private Boolean enableDemoIntercept = false;
32 |
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/properties/JyCacheProperties.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config.properties;
2 |
3 | import com.google.common.collect.Lists;
4 | import lombok.Data;
5 | import org.springframework.boot.context.properties.ConfigurationProperties;
6 | import org.springframework.stereotype.Component;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * @author LGX_TvT
12 | * @version 1.0
13 | * Create by 2023-08-23 15:24
14 | * @description: JyCacheProperties
15 | */
16 | @Data
17 | @Component
18 | @ConfigurationProperties(prefix = JyConfigItemConstant.CACHE)
19 | public class JyCacheProperties {
20 |
21 | /**
22 | * 缓存管理配置
23 | */
24 | List cacheManagers = Lists.newArrayList();
25 |
26 | /**
27 | * 用户自定义缓存管理器
28 | */
29 | @Data
30 | public static class UserDefinedCacheManager {
31 | /**
32 | * 缓存管理名称
33 | */
34 | private String cacheManagerName;
35 |
36 | /**
37 | * 初始的缓存空间大小
38 | */
39 | private Integer initialCapacity;
40 |
41 | /**
42 | * 缓存的最大条数
43 | */
44 | private Integer maximumSize;
45 |
46 | /**
47 | * 设置最后一次写入或访问后10s后过期 单位S
48 | */
49 | private Integer expireAfterWrite;
50 |
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/properties/JyIdempotentProperties.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config.properties;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.stereotype.Component;
6 |
7 | /**
8 | * 接口幂等实现配置
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2022-07-09 00:18
12 | * @description: JyIdempotentProperties
13 | */
14 | @Data
15 | @Component
16 | @ConfigurationProperties(prefix = JyConfigItemConstant.IDEMPOTENT)
17 | public class JyIdempotentProperties {
18 |
19 | /**
20 | * 是否启用
21 | */
22 | private Boolean enabled = false;
23 |
24 | /**
25 | * 缓存前缀
26 | */
27 | private String prefix = "jyadmin_idempotent";
28 |
29 | /**
30 | * 默认过期时间
31 | * 30min = 30 * 60s
32 | */
33 | private Integer defaultPeriod = 30 * 60;
34 |
35 | /**
36 | * 缓存Key默认存放值
37 | */
38 | private String defaultValue = "1";
39 |
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/properties/JyJwtProperties.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config.properties;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.stereotype.Component;
6 |
7 | /**
8 | * JWT配置
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2022-07-04 22:57
12 | * @description: JyJwtProperties
13 | */
14 | @ConfigurationProperties(prefix = JyConfigItemConstant.AUTH_JWT)
15 | @Component
16 | @Data
17 | public class JyJwtProperties {
18 |
19 | /**
20 | * accessToken过期时间
21 | * 默认:2h
22 | */
23 | private Long accessTokenExpiration= 2 * 60 * 60L;
24 |
25 | /**
26 | * refreshToken过期时间
27 | * 默认:48h
28 | */
29 | private Long refreshTokenExpiration = 48 * 60 * 60L;
30 |
31 | /**
32 | * 系统加密密钥
33 | */
34 | private String secretKey = "jyadmin";
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/properties/JyRsaProperties.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config.properties;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.stereotype.Component;
6 |
7 | /**
8 | * RSA加密
9 | * openssl genrsa -out private_key.pem 2048 # 生成私钥
10 | * openssl rsa -in private_key.pem -pubout -out public_key.pem # 生成公钥
11 | * @author LGX_TvT
12 | * @version 1.0
13 | * Create by 2023-06-21 18:00
14 | * @description: JyRsaProperties
15 | */
16 | @ConfigurationProperties(prefix = JyConfigItemConstant.RSA)
17 | @Component
18 | @Data
19 | public class JyRsaProperties {
20 |
21 | /**
22 | * 公钥
23 | */
24 | private String publicKey;
25 |
26 | /**
27 | * 私钥
28 | */
29 | private String privateKey;
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/config/properties/JyRuntimeLogProperties.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.config.properties;
2 |
3 | import lombok.Data;
4 | import org.springframework.boot.context.properties.ConfigurationProperties;
5 | import org.springframework.stereotype.Component;
6 |
7 | /**
8 | * 实时运行日志
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2023-06-04 09:51
12 | * @description: JyRuntimeLogProperties
13 | */
14 | @ConfigurationProperties(prefix = JyConfigItemConstant.LOG_RUNTIME_LOG)
15 | @Component
16 | @Data
17 | public class JyRuntimeLogProperties {
18 |
19 | /**
20 | * 基础路径
21 | */
22 | private String basePath;
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/domain/base/BaseDTO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.domain.base;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.time.LocalDateTime;
7 |
8 | /**
9 | * 公共DTO数据传输对象公共实体类
10 | * @author LGX_TvT
11 | * @version 1.0
12 | * Create by 2022-04-05 02:18
13 | * @description: BaseDTO
14 | */
15 | @Data
16 | public class BaseDTO implements Serializable {
17 |
18 | private static final long serialVersionUID = 1;
19 |
20 | /**
21 | * 创建人
22 | */
23 | private String createBy;
24 |
25 | /**
26 | * 更新人
27 | */
28 | private String updateBy;
29 |
30 | /**
31 | * 创建时间
32 | */
33 | private LocalDateTime createTime;
34 |
35 | /**
36 | * 更新时间
37 | */
38 | private LocalDateTime updateTime;
39 |
40 | /**
41 | * 是否删除
42 | */
43 | private Integer deleted;
44 | }
45 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/domain/base/BasePageVO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.domain.base;
2 |
3 | import io.swagger.annotations.ApiModelProperty;
4 | import lombok.Data;
5 |
6 | import javax.validation.constraints.Min;
7 | import javax.validation.constraints.NotNull;
8 | import java.io.Serializable;
9 |
10 | /**
11 | * 分页请求公共实体类
12 | * @author LGX_TvT
13 | * @version 1.0
14 | * Create by 2022-04-07 20:44
15 | * @description: BasePageVO
16 | */
17 | @Data
18 | public class BasePageVO extends BaseReqVO implements Serializable {
19 |
20 | private static final long serialVersionUID = 97792549823353464L;
21 |
22 | /**
23 | * 页码
24 | */
25 | @ApiModelProperty(value = "页码", name = "pageNumber")
26 | @NotNull(message = "页码不能为空")
27 | private int pageNumber = 1;
28 |
29 | /**
30 | * 每页结果数
31 | */
32 | @ApiModelProperty(value = "每页结果数", name = "pageSize")
33 | @NotNull(message = "每页结果数不能为空")
34 | @Min(value = 1, message = "最小值不能小于1")
35 | private int pageSize = 10;
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/domain/base/BaseReqVO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.domain.base;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * 基础ReqVO 请求VO
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2023-06-29 15:54
12 | * @description: BaseReqVO
13 | */
14 | @Data
15 | public class BaseReqVO implements Serializable {
16 |
17 | private static final long serialVersionUID = 1;
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/domain/base/BaseResVO.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.domain.base;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * 基础ResVO 相应VO
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2023-06-29 15:55
12 | * @description: BaseResVO
13 | */
14 | @Data
15 | public class BaseResVO implements Serializable {
16 |
17 | private static final long serialVersionUID = 1;
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/util/JasyptEncryptorUtil.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.util;
2 |
3 | import org.jasypt.util.text.BasicTextEncryptor;
4 |
5 | /**
6 | * 配置加密工具类
7 | * @author LGX_TvT
8 | * @version 1.0
9 | * Create by 2023-01-04 19:44
10 | * @description: JasyptEncryptorUtil
11 | */
12 | public final class JasyptEncryptorUtil {
13 |
14 | public static void main(String[] args) {
15 | BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
16 | //加密所需的salt(盐)
17 | textEncryptor.setPassword("jyadmin");
18 | //要加密的数据(数据库的用户名或密码)
19 | String username = textEncryptor.encrypt("root");
20 | String password = textEncryptor.encrypt("root");
21 | System.out.println("username:"+username);
22 | System.out.println("password:"+password);
23 | }
24 |
25 | }
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/util/RandomIdUtil.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.util;
2 |
3 | import cn.hutool.core.lang.Snowflake;
4 |
5 | /**
6 | * 随机ID生成
7 | * @author LGX_TvT
8 | * @version 1.0
9 | * Create by 2023-09-03 11:51
10 | * @description: RandomIdUtil
11 | */
12 | public class RandomIdUtil {
13 |
14 | private static Snowflake SNOWFLAKE = new Snowflake();
15 |
16 |
17 | public static String nextIdStr() {
18 | return SNOWFLAKE.nextIdStr();
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/util/RequestUtil.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.util;
2 |
3 | import org.springframework.util.AntPathMatcher;
4 |
5 | import javax.servlet.http.HttpServletRequest;
6 |
7 | /**
8 | * Request工具类
9 | * @author LGX_TvT
10 | * @version 1.0
11 | * Create by 2023-05-29 22:36
12 | * @description: RequestUtil
13 | */
14 | public class RequestUtil {
15 |
16 | /**
17 | * 当前请求是否是白名单路径
18 | * @param request 请求
19 | * @param ignoreUrls 白名单路径数组
20 | * @return boolean
21 | */
22 | public static boolean isIgnoreUrl(HttpServletRequest request, String[] ignoreUrls) {
23 | String path = request.getServletPath();
24 | AntPathMatcher matcher = new AntPathMatcher();
25 | for (String ignoreUrl : ignoreUrls) {
26 | boolean match = matcher.match(ignoreUrl, path);
27 | if (match) return match;
28 | }
29 | return false;
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/jyadmin-common/src/main/java/com/jyadmin/util/ResultUtil.java:
--------------------------------------------------------------------------------
1 | package com.jyadmin.util;
2 |
3 | import com.jyadmin.domain.Result;
4 |
5 | /**
6 | * 结果返回工具类
7 | * @author LGX_TvT
8 | * @version 1.0
9 | * Create by 2022-04-07 22:33
10 | * @description: ResultUtil
11 | */
12 | public class ResultUtil {
13 |
14 | public static Result