From 80dd406f8c0b9f9a6b4a82187ce2116d9f20cb99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A5=9E=E7=A0=81-=E6=96=B9=E6=99=93=E8=BE=89?=
Date: Thu, 5 Feb 2026 09:55:04 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9EOpenApi=E5=9F=BA?=
=?UTF-8?q?=E7=A1=80=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=20+=20=E5=AD=A6?=
=?UTF-8?q?=E7=94=9F=E5=AE=8C=E6=95=B4=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?=
=?UTF-8?q?=20+=20UI=E6=96=87=E6=A1=88=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1. OpenApi新增接口:
- /open/api/student/listFull: 学生列表完整数据(不脱敏)
- /open/api/base/school/*: 学校查询接口(直接调用内部Service)
- /open/api/base/grade/*: 年级查询接口
- /open/api/base/class/*: 班级查询接口
2. 新增OpenApi专用VO:
- OpenSchoolVo, OpenGradeVo, OpenClassVo
3. 数据库脚本:
- V1.0.3__open_api_dict.sql: 接口字典数据
4. 前端文案优化:
- 将"教育身份"统一改为"任教信息"
---
.cursor/rules/pangu-project.mdc | 4 +-
.../java/org/dromara/DromaraApplication.java | 2 +-
.../dromara/DromaraServletInitializer.java | 2 +-
.../web/controller/AuthController.java | 2 +-
.../web/controller/CaptchaController.java | 2 +-
.../web/controller/IndexController.java | 2 +-
.../org/dromara/web/domain/vo/CaptchaVo.java | 2 +-
.../dromara/web/domain/vo/LoginTenantVo.java | 2 +-
.../org/dromara/web/domain/vo/LoginVo.java | 2 +-
.../dromara/web/domain/vo/TenantListVo.java | 2 +-
.../web/listener/UserActionListener.java | 2 +-
.../dromara/web/service/IAuthStrategy.java | 2 +-
.../dromara/web/service/SysLoginService.java | 2 +-
.../web/service/SysRegisterService.java | 2 +-
.../web/service/impl/EmailAuthStrategy.java | 2 +-
.../service/impl/PasswordAuthStrategy.java | 2 +-
.../web/service/impl/SmsAuthStrategy.java | 2 +-
.../web/service/impl/SocialAuthStrategy.java | 2 +-
.../web/service/impl/XcxAuthStrategy.java | 2 +-
.../src/main/resources/application.yml | 2 +
.../java/org/dromara/test/AssertUnitTest.java | 2 +-
.../java/org/dromara/test/DemoUnitTest.java | 2 +-
.../java/org/dromara/test/ParamUnitTest.java | 2 +-
.../java/org/dromara/test/TagUnitTest.java | 2 +-
.../common/core/config/ApplicationConfig.java | 2 +-
.../common/core/config/ThreadPoolConfig.java | 2 +-
.../common/core/config/ValidatorConfig.java | 2 +-
.../common/core/constant/CacheConstants.java | 2 +-
.../common/core/constant/CacheNames.java | 2 +-
.../common/core/constant/Constants.java | 2 +-
.../common/core/constant/GlobalConstants.java | 2 +-
.../common/core/constant/HttpStatus.java | 2 +-
.../common/core/constant/RegexConstants.java | 2 +-
.../common/core/constant/SystemConstants.java | 2 +-
.../common/core/constant/TenantConstants.java | 2 +-
.../org/dromara/common/core/domain/R.java | 2 +-
.../core/domain/dto/CompleteTaskDTO.java | 2 +-
.../common/core/domain/dto/DeptDTO.java | 2 +-
.../common/core/domain/dto/DictDataDTO.java | 2 +-
.../common/core/domain/dto/DictTypeDTO.java | 2 +-
.../common/core/domain/dto/FlowCopyDTO.java | 2 +-
.../domain/dto/FlowInstanceBizExtDTO.java | 2 +-
.../common/core/domain/dto/OssDTO.java | 2 +-
.../common/core/domain/dto/PostDTO.java | 2 +-
.../common/core/domain/dto/RoleDTO.java | 2 +-
.../core/domain/dto/StartProcessDTO.java | 2 +-
.../domain/dto/StartProcessReturnDTO.java | 2 +-
.../core/domain/dto/TaskAssigneeDTO.java | 2 +-
.../common/core/domain/dto/UserDTO.java | 2 +-
.../common/core/domain/dto/UserOnlineDTO.java | 2 +-
.../core/domain/event/ProcessDeleteEvent.java | 2 +-
.../core/domain/event/ProcessEvent.java | 2 +-
.../core/domain/event/ProcessTaskEvent.java | 2 +-
.../core/domain/model/EmailLoginBody.java | 2 +-
.../common/core/domain/model/LoginBody.java | 2 +-
.../common/core/domain/model/LoginUser.java | 2 +-
.../core/domain/model/PasswordLoginBody.java | 2 +-
.../core/domain/model/RegisterBody.java | 2 +-
.../core/domain/model/SmsLoginBody.java | 2 +-
.../core/domain/model/SocialLoginBody.java | 2 +-
.../core/domain/model/TaskAssigneeBody.java | 2 +-
.../core/domain/model/XcxLoginBody.java | 2 +-
.../core/domain/model/XcxLoginUser.java | 2 +-
.../common/core/enums/BusinessStatusEnum.java | 2 +-
.../dromara/common/core/enums/DeviceType.java | 2 +-
.../dromara/common/core/enums/LoginType.java | 2 +-
.../dromara/common/core/enums/UserStatus.java | 2 +-
.../dromara/common/core/enums/UserType.java | 2 +-
.../core/exception/ServiceException.java | 2 +-
.../common/core/exception/SseException.java | 2 +-
.../core/exception/base/BaseException.java | 2 +-
.../core/exception/file/FileException.java | 2 +-
.../FileNameLengthLimitExceededException.java | 2 +-
.../file/FileSizeLimitExceededException.java | 2 +-
.../core/exception/user/CaptchaException.java | 2 +-
.../user/CaptchaExpireException.java | 2 +-
.../core/exception/user/UserException.java | 2 +-
.../core/factory/RegexPatternPoolFactory.java | 2 +-
.../factory/YmlPropertySourceFactory.java | 2 +-
.../common/core/service/ConfigService.java | 2 +-
.../common/core/service/DeptService.java | 2 +-
.../common/core/service/DictService.java | 2 +-
.../common/core/service/OssService.java | 2 +-
.../core/service/PermissionService.java | 2 +-
.../common/core/service/PostService.java | 2 +-
.../common/core/service/RoleService.java | 2 +-
.../core/service/TaskAssigneeService.java | 2 +-
.../common/core/service/UserService.java | 2 +-
.../common/core/service/WorkflowService.java | 2 +-
.../dromara/common/core/utils/DateUtils.java | 2 +-
.../common/core/utils/DesensitizedUtils.java | 2 +-
.../common/core/utils/MapstructUtils.java | 2 +-
.../common/core/utils/MessageUtils.java | 2 +-
.../dromara/common/core/utils/NetUtils.java | 2 +-
.../common/core/utils/ObjectUtils.java | 2 +-
.../common/core/utils/ServletUtils.java | 2 +-
.../common/core/utils/SpringUtils.java | 2 +-
.../common/core/utils/StreamUtils.java | 2 +-
.../common/core/utils/StringUtils.java | 2 +-
.../common/core/utils/TreeBuildUtils.java | 2 +-
.../common/core/utils/ValidatorUtils.java | 2 +-
.../common/core/utils/file/FileUtils.java | 2 +-
.../common/core/utils/file/MimeTypeUtils.java | 2 +-
.../common/core/utils/ip/AddressUtils.java | 2 +-
.../common/core/utils/ip/RegionUtils.java | 2 +-
.../core/utils/reflect/ReflectUtils.java | 2 +-
.../common/core/utils/regex/RegexUtils.java | 2 +-
.../core/utils/regex/RegexValidator.java | 2 +-
.../common/core/utils/sql/SqlUtil.java | 2 +-
.../common/core/validate/AddGroup.java | 2 +-
.../common/core/validate/EditGroup.java | 2 +-
.../common/core/validate/QueryGroup.java | 2 +-
.../core/validate/dicts/DictPattern.java | 2 +-
.../validate/dicts/DictPatternValidator.java | 2 +-
.../core/validate/enumd/EnumPattern.java | 2 +-
.../validate/enumd/EnumPatternValidator.java | 2 +-
.../java/org/dromara/common/core/xss/Xss.java | 2 +-
.../dromara/common/core/xss/XssValidator.java | 2 +-
.../common/doc/config/SpringDocConfig.java | 4 +-
.../properties/SpringDocProperties.java | 2 +-
.../common/encrypt/annotation/ApiEncrypt.java | 2 +-
.../encrypt/annotation/EncryptField.java | 2 +-
.../config/ApiDecryptAutoConfiguration.java | 2 +-
.../config/EncryptorAutoConfiguration.java | 2 +-
.../common/encrypt/core/EncryptContext.java | 2 +-
.../common/encrypt/core/EncryptorManager.java | 2 +-
.../common/encrypt/core/IEncryptor.java | 2 +-
.../core/encryptor/AbstractEncryptor.java | 2 +-
.../encrypt/core/encryptor/AesEncryptor.java | 2 +-
.../core/encryptor/Base64Encryptor.java | 2 +-
.../encrypt/core/encryptor/RsaEncryptor.java | 2 +-
.../encrypt/core/encryptor/Sm2Encryptor.java | 2 +-
.../encrypt/core/encryptor/Sm4Encryptor.java | 2 +-
.../common/encrypt/enumd/AlgorithmType.java | 2 +-
.../common/encrypt/enumd/EncodeType.java | 2 +-
.../common/encrypt/filter/CryptoFilter.java | 2 +-
.../filter/DecryptRequestBodyWrapper.java | 2 +-
.../filter/EncryptResponseBodyWrapper.java | 2 +-
.../MybatisDecryptInterceptor.java | 2 +-
.../MybatisEncryptInterceptor.java | 2 +-
.../properties/ApiDecryptProperties.java | 2 +-
.../properties/EncryptorProperties.java | 2 +-
.../common/encrypt/utils/EncryptUtils.java | 2 +-
.../common/excel/annotation/CellMerge.java | 2 +-
.../excel/annotation/ExcelDictFormat.java | 2 +-
.../excel/annotation/ExcelDynamicOptions.java | 2 +-
.../excel/annotation/ExcelEnumFormat.java | 2 +-
.../excel/annotation/ExcelNotation.java | 2 +-
.../excel/annotation/ExcelRequired.java | 2 +-
.../excel/convert/ExcelBigNumberConvert.java | 2 +-
.../excel/convert/ExcelDictConvert.java | 2 +-
.../excel/convert/ExcelEnumConvert.java | 2 +-
.../common/excel/core/CellMergeHandler.java | 2 +-
.../common/excel/core/CellMergeStrategy.java | 2 +-
.../excel/core/DefaultExcelListener.java | 4 +-
.../common/excel/core/DefaultExcelResult.java | 4 +-
.../common/excel/core/DropDownOptions.java | 2 +-
.../common/excel/core/ExcelDownHandler.java | 2 +-
.../common/excel/core/ExcelListener.java | 2 +-
.../excel/core/ExcelOptionsProvider.java | 2 +-
.../common/excel/core/ExcelResult.java | 2 +-
.../excel/handler/DataWriteHandler.java | 2 +-
.../dromara/common/excel/utils/ExcelUtil.java | 2 +-
.../excel/utils/ExcelWriterWrapper.java | 2 +-
.../idempotent/annotation/RepeatSubmit.java | 2 +-
.../aspectj/RepeatSubmitAspect.java | 2 +-
.../idempotent/config/IdempotentConfig.java | 2 +-
.../common/job/config/SnailJobConfig.java | 2 +-
.../common/json/config/JacksonConfig.java | 2 +-
.../json/handler/BigNumberSerializer.java | 2 +-
.../json/handler/CustomDateDeserializer.java | 2 +-
.../dromara/common/json/utils/JsonUtils.java | 2 +-
.../common/json/validate/JsonPattern.java | 2 +-
.../json/validate/JsonPatternValidator.java | 2 +-
.../common/json/validate/JsonType.java | 2 +-
.../dromara/common/log/annotation/Log.java | 2 +-
.../dromara/common/log/aspect/LogAspect.java | 2 +-
.../common/log/enums/BusinessStatus.java | 2 +-
.../common/log/enums/BusinessType.java | 2 +-
.../common/log/enums/OperatorType.java | 2 +-
.../common/log/event/LogininforEvent.java | 2 +-
.../common/log/event/OperLogEvent.java | 2 +-
.../common/mail/config/MailConfig.java | 2 +-
.../config/properties/MailProperties.java | 2 +-
.../common/mybatis/annotation/DataColumn.java | 2 +-
.../mybatis/annotation/DataPermission.java | 2 +-
.../mybatis/aspect/DataPermissionAdvice.java | 2 +-
.../aspect/DataPermissionPointcut.java | 2 +-
.../aspect/DataPermissionPointcutAdvisor.java | 2 +-
.../mybatis/config/MybatisPlusConfig.java | 2 +-
.../mybatis/core/domain/BaseEntity.java | 2 +-
.../mybatis/core/mapper/BaseMapperPlus.java | 2 +-
.../common/mybatis/core/page/PageQuery.java | 2 +-
.../mybatis/core/page/TableDataInfo.java | 2 +-
.../common/mybatis/enums/DataBaseType.java | 2 +-
.../common/mybatis/enums/DataScopeType.java | 2 +-
.../handler/InjectionMetaObjectHandler.java | 2 +-
.../handler/MybatisExceptionHandler.java | 2 +-
.../handler/PlusDataPermissionHandler.java | 2 +-
.../handler/PlusPostInitTableInfoHandler.java | 2 +-
.../common/mybatis/helper/DataBaseHelper.java | 2 +-
.../mybatis/helper/DataPermissionHelper.java | 2 +-
.../PlusDataPermissionInterceptor.java | 2 +-
.../common/mybatis/utils/IdGeneratorUtil.java | 2 +-
.../common/oss/constant/OssConstant.java | 2 +-
.../dromara/common/oss/core/OssClient.java | 2 +-
.../common/oss/core/WriteOutSubscriber.java | 2 +-
.../common/oss/entity/UploadResult.java | 2 +-
.../common/oss/enums/AccessPolicyType.java | 2 +-
.../common/oss/exception/OssException.java | 2 +-
.../common/oss/factory/OssFactory.java | 2 +-
.../common/oss/properties/OssProperties.java | 2 +-
.../ratelimiter/annotation/RateLimiter.java | 2 +-
.../aspectj/RateLimiterAspect.java | 2 +-
.../ratelimiter/config/RateLimiterConfig.java | 2 +-
.../common/ratelimiter/enums/LimitType.java | 2 +-
.../common/redis/config/CacheConfig.java | 2 +-
.../common/redis/config/RedisConfig.java | 2 +-
.../config/properties/RedissonProperties.java | 2 +-
.../redis/handler/KeyPrefixHandler.java | 2 +-
.../redis/handler/RedisExceptionHandler.java | 2 +-
.../redis/manager/CaffeineCacheDecorator.java | 2 +-
.../redis/manager/PlusSpringCacheManager.java | 2 +-
.../common/redis/utils/CacheUtils.java | 2 +-
.../common/redis/utils/QueueUtils.java | 2 +-
.../common/redis/utils/RedisUtils.java | 2 +-
.../common/redis/utils/SequenceUtils.java | 2 +-
.../common/satoken/config/SaTokenConfig.java | 2 +-
.../satoken/core/dao/PlusSaTokenDao.java | 2 +-
.../core/service/SaPermissionImpl.java | 2 +-
.../handler/SaTokenExceptionHandler.java | 2 +-
.../common/satoken/utils/LoginHelper.java | 2 +-
.../security/config/SecurityConfig.java | 3 +-
.../config/properties/SecurityProperties.java | 2 +-
.../security/handler/AllUrlHandler.java | 2 +-
.../sensitive/annotation/Sensitive.java | 2 +-
.../sensitive/core/SensitiveService.java | 2 +-
.../sensitive/core/SensitiveStrategy.java | 2 +-
.../sensitive/handler/SensitiveHandler.java | 2 +-
.../sms/config/SmsAutoConfiguration.java | 2 +-
.../common/sms/core/dao/PlusSmsDao.java | 4 +-
.../sms/handler/SmsExceptionHandler.java | 2 +-
.../AbstractAuthWeChatEnterpriseRequest.java | 2 +-
.../oauth/request/AuthDingTalkV2Request.java | 2 +-
.../config/SocialAutoConfiguration.java | 2 +-
.../SocialLoginConfigProperties.java | 2 +-
.../config/properties/SocialProperties.java | 2 +-
.../common/social/gitea/AuthGiteaRequest.java | 2 +-
.../common/social/gitea/AuthGiteaSource.java | 2 +-
.../social/maxkey/AuthMaxKeyRequest.java | 2 +-
.../social/maxkey/AuthMaxKeySource.java | 2 +-
.../social/topiam/AuthTopIamRequest.java | 2 +-
.../social/topiam/AuthTopIamSource.java | 2 +-
.../common/social/utils/SocialUtils.java | 2 +-
.../sse/config/SseAutoConfiguration.java | 2 +-
.../common/sse/config/SseProperties.java | 2 +-
.../common/sse/controller/SseController.java | 2 +-
.../common/sse/core/SseEmitterManager.java | 2 +-
.../dromara/common/sse/dto/SseMessageDto.java | 2 +-
.../common/sse/listener/SseTopicListener.java | 2 +-
.../common/sse/utils/SseMessageUtils.java | 2 +-
.../common/tenant/config/TenantConfig.java | 2 +-
.../common/tenant/core/TenantEntity.java | 2 +-
.../common/tenant/core/TenantSaTokenDao.java | 2 +-
.../tenant/exception/TenantException.java | 2 +-
.../tenant/handle/PlusTenantLineHandler.java | 2 +-
.../tenant/handle/TenantKeyPrefixHandler.java | 2 +-
.../common/tenant/helper/TenantHelper.java | 2 +-
.../manager/TenantSpringCacheManager.java | 2 +-
.../tenant/properties/TenantProperties.java | 2 +-
.../translation/annotation/Translation.java | 2 +-
.../annotation/TranslationType.java | 2 +-
.../translation/config/TranslationConfig.java | 2 +-
.../translation/constant/TransConstant.java | 2 +-
.../core/TranslationInterface.java | 2 +-
.../TranslationBeanSerializerModifier.java | 2 +-
.../core/handler/TranslationHandler.java | 2 +-
.../core/impl/DeptNameTranslationImpl.java | 2 +-
.../core/impl/DictTypeTranslationImpl.java | 2 +-
.../core/impl/NicknameTranslationImpl.java | 2 +-
.../core/impl/OssUrlTranslationImpl.java | 2 +-
.../core/impl/UserNameTranslationImpl.java | 2 +-
.../common/web/config/CaptchaConfig.java | 2 +-
.../common/web/config/FilterConfig.java | 2 +-
.../dromara/common/web/config/I18nConfig.java | 2 +-
.../common/web/config/ResourcesConfig.java | 2 +-
.../common/web/config/UndertowConfig.java | 2 +-
.../config/properties/CaptchaProperties.java | 2 +-
.../web/config/properties/XssProperties.java | 2 +-
.../common/web/core/BaseController.java | 2 +-
.../common/web/core/I18nLocaleResolver.java | 2 +-
.../common/web/core/WaveAndCircleCaptcha.java | 2 +-
.../common/web/filter/RepeatableFilter.java | 2 +-
.../web/filter/RepeatedlyRequestWrapper.java | 2 +-
.../dromara/common/web/filter/XssFilter.java | 2 +-
.../filter/XssHttpServletRequestWrapper.java | 2 +-
.../web/handler/GlobalExceptionHandler.java | 2 +-
.../PlusWebInvokeTimeInterceptor.java | 2 +-
.../websocket/config/WebSocketConfig.java | 2 +-
.../properties/WebSocketProperties.java | 2 +-
.../constant/WebSocketConstants.java | 2 +-
.../websocket/dto/WebSocketMessageDto.java | 2 +-
.../handler/PlusWebSocketHandler.java | 2 +-
.../holder/WebSocketSessionHolder.java | 2 +-
.../interceptor/PlusWebSocketInterceptor.java | 2 +-
.../listener/WebSocketTopicListener.java | 2 +-
.../websocket/utils/WebSocketUtils.java | 2 +-
.../admin/MonitorAdminApplication.java | 2 +-
.../monitor/admin/config/SecurityConfig.java | 2 +-
.../admin/notifier/CustomNotifier.java | 2 +-
.../server/starter/filter/SecurityConfig.java | 2 +-
.../snailjob/SnailJobServerApplication.java | 2 +-
.../pangu-business/sql/README_导入说明.md | 216 +++
.../pangu-business/sql/check_and_import.sh | 245 ++++
.../pangu-business/sql/open_api_dict_data.sql | 6 +
.../pangu-business/sql/快速导入.txt | 47 +
.../controller/PgApiDictController.java | 101 ++
.../application/domain/PgApplication.java | 7 +
.../application/mapper/PgAppApiMapper.java | 13 +
.../service/IPgApiDictService.java | 39 +-
.../service/IPgApplicationService.java | 15 +
.../service/impl/PgApiDictServiceImpl.java | 60 +
.../impl/PgApplicationServiceImpl.java | 74 +-
.../openapi/config/ApiAuthInterceptor.java | 100 ++
.../openapi/config/OpenApiWebMvcConfig.java | 24 +
.../controller/OpenApiBaseController.java | 245 ++++
.../controller/OpenApiStudentController.java | 94 ++
.../pangu/openapi/domain/vo/OpenClassVo.java | 31 +
.../pangu/openapi/domain/vo/OpenGradeVo.java | 31 +
.../pangu/openapi/domain/vo/OpenSchoolVo.java | 40 +
.../openapi/domain/vo/OpenStudentVo.java | 61 +
.../service/IOpenApiStudentService.java | 46 +
.../impl/OpenApiStudentServiceImpl.java | 190 +++
.../pangu/openapi/utils/DataMaskUtil.java | 72 +
.../pangu/student/mapper/PgStudentMapper.java | 24 +
.../mapper/application/PgAppApiMapper.xml | 24 +
.../demo/controller/MailSendController.java | 2 +-
.../demo/controller/RedisCacheController.java | 2 +-
.../demo/controller/RedisLockController.java | 2 +-
.../controller/RedisPubSubController.java | 2 +-
.../RedisRateLimiterController.java | 2 +-
.../demo/controller/SmsController.java | 2 +-
.../controller/Swagger3DemoController.java | 2 +-
.../demo/controller/TestBatchController.java | 2 +-
.../demo/controller/TestDemoController.java | 2 +-
.../controller/TestEncryptController.java | 2 +-
.../demo/controller/TestExcelController.java | 2 +-
.../demo/controller/TestI18nController.java | 2 +-
.../controller/TestSensitiveController.java | 2 +-
.../demo/controller/TestTreeController.java | 2 +-
.../demo/controller/WebSocketController.java | 2 +-
.../queue/BoundedQueueController.java | 2 +-
.../queue/DelayedQueueController.java | 2 +-
.../demo/controller/queue/PriorityDemo.java | 2 +-
.../queue/PriorityQueueController.java | 2 +-
.../org/dromara/demo/domain/TestDemo.java | 2 +-
.../org/dromara/demo/domain/TestTree.java | 2 +-
.../dromara/demo/domain/bo/TestDemoBo.java | 2 +-
.../demo/domain/bo/TestDemoImportVo.java | 2 +-
.../dromara/demo/domain/bo/TestTreeBo.java | 2 +-
.../dromara/demo/domain/vo/ExportDemoVo.java | 2 +-
.../dromara/demo/domain/vo/TestDemoVo.java | 2 +-
.../dromara/demo/domain/vo/TestTreeVo.java | 2 +-
.../demo/listener/ExportDemoListener.java | 2 +-
.../demo/mapper/TestDemoEncryptMapper.java | 2 +-
.../dromara/demo/mapper/TestDemoMapper.java | 2 +-
.../dromara/demo/mapper/TestTreeMapper.java | 2 +-
.../demo/service/IExportExcelService.java | 2 +-
.../demo/service/ITestDemoService.java | 2 +-
.../demo/service/ITestTreeService.java | 2 +-
.../service/impl/ExportExcelServiceImpl.java | 2 +-
.../service/impl/TestDemoServiceImpl.java | 2 +-
.../service/impl/TestTreeServiceImpl.java | 2 +-
.../dromara/generator/config/GenConfig.java | 2 +-
.../config/MyBatisDataSourceMonitor.java | 2 +-
.../generator/constant/GenConstants.java | 2 +-
.../generator/controller/GenController.java | 2 +-
.../dromara/generator/domain/GenTable.java | 2 +-
.../generator/domain/GenTableColumn.java | 2 +-
.../mapper/GenTableColumnMapper.java | 2 +-
.../generator/mapper/GenTableMapper.java | 2 +-
.../service/GenTableServiceImpl.java | 2 +-
.../generator/service/IGenTableService.java | 2 +-
.../org/dromara/generator/util/GenUtils.java | 2 +-
.../generator/util/VelocityInitializer.java | 2 +-
.../dromara/generator/util/VelocityUtils.java | 2 +-
.../dromara/job/snailjob/AlipayBillTask.java | 2 +-
.../dromara/job/snailjob/SummaryBillTask.java | 2 +-
.../job/snailjob/TestAnnoJobExecutor.java | 2 +-
.../job/snailjob/TestBroadcastJob.java | 2 +-
.../job/snailjob/TestClassJobExecutor.java | 2 +-
.../job/snailjob/TestMapJobAnnotation.java | 2 +-
.../snailjob/TestMapReduceAnnotation1.java | 2 +-
.../job/snailjob/TestStaticShardingJob.java | 2 +-
.../dromara/job/snailjob/WechatBillTask.java | 2 +-
.../controller/monitor/CacheController.java | 2 +-
.../monitor/SysLogininforController.java | 2 +-
.../monitor/SysOperlogController.java | 2 +-
.../monitor/SysUserOnlineController.java | 2 +-
.../system/SysClientController.java | 2 +-
.../system/SysConfigController.java | 2 +-
.../controller/system/SysDeptController.java | 2 +-
.../system/SysDictDataController.java | 2 +-
.../system/SysDictTypeController.java | 2 +-
.../controller/system/SysMenuController.java | 2 +-
.../system/SysNoticeController.java | 2 +-
.../system/SysOssConfigController.java | 4 +-
.../controller/system/SysOssController.java | 2 +-
.../controller/system/SysPostController.java | 2 +-
.../system/SysProfileController.java | 2 +-
.../controller/system/SysRoleController.java | 2 +-
.../system/SysSocialController.java | 2 +-
.../system/SysTenantController.java | 2 +-
.../system/SysTenantPackageController.java | 2 +-
.../controller/system/SysUserController.java | 2 +-
.../org/dromara/system/domain/SysCache.java | 2 +-
.../org/dromara/system/domain/SysClient.java | 2 +-
.../org/dromara/system/domain/SysConfig.java | 2 +-
.../org/dromara/system/domain/SysDept.java | 2 +-
.../dromara/system/domain/SysDictData.java | 2 +-
.../dromara/system/domain/SysDictType.java | 2 +-
.../dromara/system/domain/SysLogininfor.java | 2 +-
.../org/dromara/system/domain/SysMenu.java | 2 +-
.../org/dromara/system/domain/SysNotice.java | 2 +-
.../org/dromara/system/domain/SysOperLog.java | 2 +-
.../org/dromara/system/domain/SysOss.java | 2 +-
.../dromara/system/domain/SysOssConfig.java | 2 +-
.../org/dromara/system/domain/SysOssExt.java | 2 +-
.../org/dromara/system/domain/SysPost.java | 2 +-
.../org/dromara/system/domain/SysRole.java | 2 +-
.../dromara/system/domain/SysRoleDept.java | 2 +-
.../dromara/system/domain/SysRoleMenu.java | 2 +-
.../org/dromara/system/domain/SysSocial.java | 2 +-
.../org/dromara/system/domain/SysTenant.java | 2 +-
.../system/domain/SysTenantPackage.java | 2 +-
.../org/dromara/system/domain/SysUser.java | 2 +-
.../dromara/system/domain/SysUserOnline.java | 2 +-
.../dromara/system/domain/SysUserPost.java | 2 +-
.../dromara/system/domain/SysUserRole.java | 2 +-
.../dromara/system/domain/bo/SysClientBo.java | 2 +-
.../dromara/system/domain/bo/SysConfigBo.java | 2 +-
.../dromara/system/domain/bo/SysDeptBo.java | 2 +-
.../system/domain/bo/SysDictDataBo.java | 2 +-
.../system/domain/bo/SysDictTypeBo.java | 2 +-
.../system/domain/bo/SysLogininforBo.java | 2 +-
.../dromara/system/domain/bo/SysMenuBo.java | 2 +-
.../dromara/system/domain/bo/SysNoticeBo.java | 2 +-
.../system/domain/bo/SysOperLogBo.java | 2 +-
.../dromara/system/domain/bo/SysOssBo.java | 2 +-
.../system/domain/bo/SysOssConfigBo.java | 4 +-
.../dromara/system/domain/bo/SysPostBo.java | 2 +-
.../dromara/system/domain/bo/SysRoleBo.java | 2 +-
.../dromara/system/domain/bo/SysSocialBo.java | 2 +-
.../dromara/system/domain/bo/SysTenantBo.java | 2 +-
.../system/domain/bo/SysTenantPackageBo.java | 2 +-
.../dromara/system/domain/bo/SysUserBo.java | 2 +-
.../system/domain/bo/SysUserProfileBo.java | 2 +-
.../org/dromara/system/domain/vo/MetaVo.java | 2 +-
.../system/domain/vo/ProfileUserVo.java | 2 +-
.../dromara/system/domain/vo/RouterVo.java | 2 +-
.../dromara/system/domain/vo/SysClientVo.java | 2 +-
.../dromara/system/domain/vo/SysConfigVo.java | 2 +-
.../dromara/system/domain/vo/SysDeptVo.java | 2 +-
.../system/domain/vo/SysDictDataVo.java | 2 +-
.../system/domain/vo/SysDictTypeVo.java | 2 +-
.../system/domain/vo/SysLogininforVo.java | 2 +-
.../dromara/system/domain/vo/SysMenuVo.java | 2 +-
.../dromara/system/domain/vo/SysNoticeVo.java | 2 +-
.../system/domain/vo/SysOperLogVo.java | 2 +-
.../system/domain/vo/SysOssConfigVo.java | 4 +-
.../system/domain/vo/SysOssUploadVo.java | 2 +-
.../dromara/system/domain/vo/SysOssVo.java | 2 +-
.../dromara/system/domain/vo/SysPostVo.java | 2 +-
.../dromara/system/domain/vo/SysRoleVo.java | 2 +-
.../dromara/system/domain/vo/SysSocialVo.java | 2 +-
.../system/domain/vo/SysTenantPackageVo.java | 2 +-
.../dromara/system/domain/vo/SysTenantVo.java | 2 +-
.../system/domain/vo/SysUserExportVo.java | 2 +-
.../system/domain/vo/SysUserImportVo.java | 2 +-
.../system/domain/vo/SysUserInfoVo.java | 2 +-
.../dromara/system/domain/vo/SysUserVo.java | 2 +-
.../dromara/system/domain/vo/UserInfoVo.java | 2 +-
.../listener/SysUserImportListener.java | 2 +-
.../system/mapper/SysClientMapper.java | 2 +-
.../system/mapper/SysConfigMapper.java | 2 +-
.../dromara/system/mapper/SysDeptMapper.java | 2 +-
.../system/mapper/SysDictDataMapper.java | 2 +-
.../system/mapper/SysDictTypeMapper.java | 2 +-
.../system/mapper/SysLogininforMapper.java | 2 +-
.../dromara/system/mapper/SysMenuMapper.java | 2 +-
.../system/mapper/SysNoticeMapper.java | 2 +-
.../system/mapper/SysOperLogMapper.java | 2 +-
.../system/mapper/SysOssConfigMapper.java | 4 +-
.../dromara/system/mapper/SysOssMapper.java | 2 +-
.../dromara/system/mapper/SysPostMapper.java | 2 +-
.../system/mapper/SysRoleDeptMapper.java | 2 +-
.../dromara/system/mapper/SysRoleMapper.java | 2 +-
.../system/mapper/SysRoleMenuMapper.java | 2 +-
.../system/mapper/SysSocialMapper.java | 2 +-
.../system/mapper/SysTenantMapper.java | 2 +-
.../system/mapper/SysTenantPackageMapper.java | 2 +-
.../dromara/system/mapper/SysUserMapper.java | 2 +-
.../system/mapper/SysUserPostMapper.java | 2 +-
.../system/mapper/SysUserRoleMapper.java | 2 +-
.../runner/SystemApplicationRunner.java | 2 +-
.../system/service/ISysClientService.java | 2 +-
.../system/service/ISysConfigService.java | 2 +-
.../system/service/ISysDataScopeService.java | 2 +-
.../system/service/ISysDeptService.java | 2 +-
.../system/service/ISysDictDataService.java | 2 +-
.../system/service/ISysDictTypeService.java | 2 +-
.../system/service/ISysLogininforService.java | 2 +-
.../system/service/ISysMenuService.java | 2 +-
.../system/service/ISysNoticeService.java | 2 +-
.../system/service/ISysOperLogService.java | 2 +-
.../system/service/ISysOssConfigService.java | 4 +-
.../system/service/ISysOssService.java | 2 +-
.../system/service/ISysPermissionService.java | 2 +-
.../system/service/ISysPostService.java | 2 +-
.../system/service/ISysRoleService.java | 2 +-
.../system/service/ISysSocialService.java | 2 +-
.../service/ISysTenantPackageService.java | 2 +-
.../system/service/ISysTenantService.java | 2 +-
.../system/service/ISysUserService.java | 2 +-
.../service/impl/SysClientServiceImpl.java | 2 +-
.../service/impl/SysConfigServiceImpl.java | 2 +-
.../service/impl/SysDataScopeServiceImpl.java | 2 +-
.../service/impl/SysDeptServiceImpl.java | 2 +-
.../service/impl/SysDictDataServiceImpl.java | 2 +-
.../service/impl/SysDictTypeServiceImpl.java | 2 +-
.../impl/SysLogininforServiceImpl.java | 2 +-
.../service/impl/SysMenuServiceImpl.java | 2 +-
.../service/impl/SysNoticeServiceImpl.java | 2 +-
.../service/impl/SysOperLogServiceImpl.java | 2 +-
.../service/impl/SysOssConfigServiceImpl.java | 4 +-
.../service/impl/SysOssServiceImpl.java | 2 +-
.../impl/SysPermissionServiceImpl.java | 2 +-
.../service/impl/SysPostServiceImpl.java | 2 +-
.../service/impl/SysRoleServiceImpl.java | 2 +-
.../service/impl/SysSensitiveServiceImpl.java | 2 +-
.../service/impl/SysSocialServiceImpl.java | 2 +-
.../impl/SysTaskAssigneeServiceImpl.java | 2 +-
.../impl/SysTenantPackageServiceImpl.java | 2 +-
.../service/impl/SysTenantServiceImpl.java | 2 +-
.../service/impl/SysUserServiceImpl.java | 2 +-
.../workflow/common/ConditionalOnEnable.java | 2 +-
.../common/constant/FlowConstant.java | 2 +-
.../common/enums/ButtonPermissionEnum.java | 2 +-
.../common/enums/CopySettingEnum.java | 2 +-
.../common/enums/MessageTypeEnum.java | 2 +-
.../workflow/common/enums/NodeExtEnum.java | 2 +-
.../common/enums/TaskAssigneeEnum.java | 2 +-
.../common/enums/TaskAssigneeType.java | 2 +-
.../workflow/common/enums/TaskStatusEnum.java | 2 +-
.../workflow/common/enums/VariablesEnum.java | 2 +-
.../workflow/config/WarmFlowConfig.java | 2 +-
.../controller/FlwCategoryController.java | 2 +-
.../controller/FlwDefinitionController.java | 2 +-
.../controller/FlwInstanceController.java | 2 +-
.../controller/FlwSpelController.java | 2 +-
.../controller/FlwTaskController.java | 2 +-
.../controller/TestLeaveController.java | 2 +-
.../dromara/workflow/domain/FlowCategory.java | 2 +-
.../workflow/domain/FlowInstanceBizExt.java | 2 +-
.../org/dromara/workflow/domain/FlowSpel.java | 2 +-
.../dromara/workflow/domain/TestLeave.java | 2 +-
.../workflow/domain/bo/BackProcessBo.java | 2 +-
.../workflow/domain/bo/CompleteTaskBo.java | 2 +-
.../workflow/domain/bo/FlowCancelBo.java | 2 +-
.../workflow/domain/bo/FlowCategoryBo.java | 2 +-
.../workflow/domain/bo/FlowCopyBo.java | 2 +-
.../workflow/domain/bo/FlowInstanceBo.java | 2 +-
.../workflow/domain/bo/FlowInvalidBo.java | 2 +-
.../workflow/domain/bo/FlowNextNodeBo.java | 2 +-
.../workflow/domain/bo/FlowSpelBo.java | 2 +-
.../workflow/domain/bo/FlowTaskBo.java | 2 +-
.../workflow/domain/bo/FlowTerminationBo.java | 2 +-
.../workflow/domain/bo/FlowUrgeTaskBo.java | 2 +-
.../workflow/domain/bo/FlowVariableBo.java | 2 +-
.../workflow/domain/bo/StartProcessBo.java | 2 +-
.../workflow/domain/bo/TaskOperationBo.java | 2 +-
.../workflow/domain/bo/TestLeaveBo.java | 2 +-
.../domain/vo/ButtonPermissionVo.java | 2 +-
.../workflow/domain/vo/FlowCategoryVo.java | 2 +-
.../workflow/domain/vo/FlowCopyVo.java | 2 +-
.../workflow/domain/vo/FlowDefinitionVo.java | 2 +-
.../workflow/domain/vo/FlowHisTaskVo.java | 2 +-
.../workflow/domain/vo/FlowInstanceVo.java | 2 +-
.../workflow/domain/vo/FlowSpelVo.java | 2 +-
.../workflow/domain/vo/FlowTaskVo.java | 2 +-
.../dromara/workflow/domain/vo/NodeExtVo.java | 2 +-
.../workflow/domain/vo/TestLeaveVo.java | 2 +-
.../handler/FlowProcessEventHandler.java | 2 +-
.../handler/WorkflowPermissionHandler.java | 2 +-
.../listener/WorkflowGlobalListener.java | 2 +-
.../workflow/mapper/FlwCategoryMapper.java | 2 +-
.../mapper/FlwInstanceBizExtMapper.java | 2 +-
.../workflow/mapper/FlwInstanceMapper.java | 2 +-
.../workflow/mapper/FlwSpelMapper.java | 2 +-
.../workflow/mapper/FlwTaskMapper.java | 2 +-
.../workflow/mapper/TestLeaveMapper.java | 2 +-
.../workflow/rule/SpelRuleComponent.java | 2 +-
.../workflow/service/IFlwCategoryService.java | 2 +-
.../workflow/service/IFlwCommonService.java | 2 +-
.../service/IFlwDefinitionService.java | 2 +-
.../workflow/service/IFlwInstanceService.java | 2 +-
.../workflow/service/IFlwNodeExtService.java | 2 +-
.../workflow/service/IFlwSpelService.java | 2 +-
.../service/IFlwTaskAssigneeService.java | 2 +-
.../workflow/service/IFlwTaskService.java | 2 +-
.../workflow/service/ITestLeaveService.java | 2 +-
.../impl/CategoryNameTranslationImpl.java | 2 +-
.../service/impl/FlwCategoryServiceImpl.java | 2 +-
.../service/impl/FlwChartExtServiceImpl.java | 2 +-
.../service/impl/FlwCommonServiceImpl.java | 2 +-
.../impl/FlwDefinitionServiceImpl.java | 2 +-
.../service/impl/FlwInstanceServiceImpl.java | 2 +-
.../service/impl/FlwNodeExtServiceImpl.java | 2 +-
.../service/impl/FlwSpelServiceImpl.java | 2 +-
.../impl/FlwTaskAssigneeServiceImpl.java | 2 +-
.../service/impl/FlwTaskServiceImpl.java | 2 +-
.../service/impl/TestLeaveServiceImpl.java | 2 +-
.../service/impl/WorkflowServiceImpl.java | 2 +-
docs/05-模块技术方案/会员管理/快速开始.md | 8 +-
docs/05-模块技术方案/学校管理/快速开始.md | 8 +-
.../开放API-学生列表授权-技术设计方案.md | 152 ++
.../开放API-学生列表授权-调用测试说明.md | 114 ++
.../开放API-学生列表授权-需求设计方案.md | 113 ++
docs/06-测试文档/UI自动化测试报告_v1.0.md | 2 +-
docs/06-测试文档/最终交付测试报告_v2.0.md | 4 +-
docs/06-测试文档/测试数据说明_v1.0.md | 2 +-
docs/多Agent协同开发指南.md | 16 +-
docs/应用管理-需求与技术设计方案.md | 1226 +++++++++++++++++
docs/应用管理使用说明.md | 118 ++
docs/应用管理技术方案.md | 417 ++++++
docs/开放接口实现说明.md | 382 +++++
docs/接口清单.md | 8 +
docs/接口清单.pdf | Bin 0 -> 414135 bytes
frontend/src/api/pangu/apiDict.js | 68 +
.../application/components/AppDialog.vue | 61 +-
frontend/src/views/application/index.vue | 97 +-
frontend/src/views/business/apiDict/index.vue | 319 +++++
.../src/views/business/application/index.vue | 15 +-
.../member/components/EducationDialog.vue | 8 +-
.../member/components/MemberDialog.vue | 32 +-
.../student/components/StudentDialog.vue | 15 +-
scripts/openapi-student-list-test.sh | 37 +
scripts/sql/V1.0.3__open_api_dict.sql | 44 +
scripts/test/OpenApiClient.php | 238 ++++
scripts/test/README.md | 335 +++++
scripts/test/index.html | 365 +++++
scripts/test/openapi-student-list-test.php | 210 +++
scripts/test/quickstart.php | 64 +
scripts/test/使用说明.txt | 188 +++
654 files changed, 6976 insertions(+), 716 deletions(-)
create mode 100644 backend/pangu-modules/pangu-business/sql/README_导入说明.md
create mode 100755 backend/pangu-modules/pangu-business/sql/check_and_import.sh
create mode 100644 backend/pangu-modules/pangu-business/sql/open_api_dict_data.sql
create mode 100644 backend/pangu-modules/pangu-business/sql/快速导入.txt
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/controller/PgApiDictController.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/config/ApiAuthInterceptor.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/config/OpenApiWebMvcConfig.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/controller/OpenApiBaseController.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/controller/OpenApiStudentController.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenClassVo.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenGradeVo.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenSchoolVo.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenStudentVo.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/service/IOpenApiStudentService.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/service/impl/OpenApiStudentServiceImpl.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/utils/DataMaskUtil.java
create mode 100644 backend/pangu-modules/pangu-business/src/main/resources/mapper/application/PgAppApiMapper.xml
create mode 100644 docs/05-模块技术方案/开放API-学生列表授权-技术设计方案.md
create mode 100644 docs/05-模块技术方案/开放API-学生列表授权-调用测试说明.md
create mode 100644 docs/05-模块技术方案/开放API-学生列表授权-需求设计方案.md
create mode 100644 docs/应用管理-需求与技术设计方案.md
create mode 100644 docs/应用管理使用说明.md
create mode 100644 docs/应用管理技术方案.md
create mode 100644 docs/开放接口实现说明.md
create mode 100644 docs/接口清单.pdf
create mode 100644 frontend/src/api/pangu/apiDict.js
create mode 100644 frontend/src/views/business/apiDict/index.vue
create mode 100755 scripts/openapi-student-list-test.sh
create mode 100644 scripts/sql/V1.0.3__open_api_dict.sql
create mode 100755 scripts/test/OpenApiClient.php
create mode 100644 scripts/test/README.md
create mode 100644 scripts/test/index.html
create mode 100755 scripts/test/openapi-student-list-test.php
create mode 100755 scripts/test/quickstart.php
create mode 100644 scripts/test/使用说明.txt
diff --git a/.cursor/rules/pangu-project.mdc b/.cursor/rules/pangu-project.mdc
index 868305d..5dd6225 100644
--- a/.cursor/rules/pangu-project.mdc
+++ b/.cursor/rules/pangu-project.mdc
@@ -6,9 +6,9 @@ alwaysApply: true
# 盘古用户平台(Pangu User Platform)项目规范
-> **项目路径**:`/Users/felix/hbxhWorkSpace/pangu-user-platform`
+> **项目路径**:`/Users/felix/pgWorkSpace/pangu-user-platform`
>
-> **重要声明**:本规范仅适用于 pangu-user-platform 项目,不受外部工程目录(如 `/Users/felix/hbxhWorkSpace/.cursorrules`)中其他规范的影响。当本规范与外部规范冲突时,以本规范为准。
+> **重要声明**:本规范仅适用于 pangu-user-platform 项目,不受外部工程目录(如 `/Users/felix/pgWorkSpace/.cursorrules`)中其他规范的影响。当本规范与外部规范冲突时,以本规范为准。
## 作者规范(必须遵守)
diff --git a/backend/pangu-admin/src/main/java/org/dromara/DromaraApplication.java b/backend/pangu-admin/src/main/java/org/dromara/DromaraApplication.java
index 8ef33fe..5c339d7 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/DromaraApplication.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/DromaraApplication.java
@@ -7,7 +7,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt
/**
* 启动程序
*
- * @author Lion Li
+ * @author pangu
*/
@SpringBootApplication
diff --git a/backend/pangu-admin/src/main/java/org/dromara/DromaraServletInitializer.java b/backend/pangu-admin/src/main/java/org/dromara/DromaraServletInitializer.java
index 066a683..e13310c 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/DromaraServletInitializer.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/DromaraServletInitializer.java
@@ -6,7 +6,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
/**
* web容器中进行部署
*
- * @author Lion Li
+ * @author pangu
*/
public class DromaraServletInitializer extends SpringBootServletInitializer {
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/controller/AuthController.java b/backend/pangu-admin/src/main/java/org/dromara/web/controller/AuthController.java
index c448a60..b3a9ef8 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/controller/AuthController.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/controller/AuthController.java
@@ -58,7 +58,7 @@ import java.util.concurrent.TimeUnit;
/**
* 认证
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@SaIgnore
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/controller/CaptchaController.java b/backend/pangu-admin/src/main/java/org/dromara/web/controller/CaptchaController.java
index 2586add..9ba3db1 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/controller/CaptchaController.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/controller/CaptchaController.java
@@ -40,7 +40,7 @@ import java.util.LinkedHashMap;
/**
* 验证码操作处理
*
- * @author Lion Li
+ * @author pangu
*/
@SaIgnore
@Slf4j
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/controller/IndexController.java b/backend/pangu-admin/src/main/java/org/dromara/web/controller/IndexController.java
index d26e0e1..0563d90 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/controller/IndexController.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/controller/IndexController.java
@@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
/**
* 首页
*
- * @author Lion Li
+ * @author pangu
*/
@SaIgnore
@RequiredArgsConstructor
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/CaptchaVo.java b/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/CaptchaVo.java
index 664df1e..ef28737 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/CaptchaVo.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/CaptchaVo.java
@@ -5,7 +5,7 @@ import lombok.Data;
/**
* 验证码信息
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
public class CaptchaVo {
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/LoginTenantVo.java b/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/LoginTenantVo.java
index 0a83ace..3b4139f 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/LoginTenantVo.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/LoginTenantVo.java
@@ -7,7 +7,7 @@ import java.util.List;
/**
* 登录租户对象
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
public class LoginTenantVo {
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/LoginVo.java b/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/LoginVo.java
index 834afe5..e1cf31f 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/LoginVo.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/LoginVo.java
@@ -6,7 +6,7 @@ import lombok.Data;
/**
* 登录验证信息
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
public class LoginVo {
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/TenantListVo.java b/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/TenantListVo.java
index db9c271..7294e5b 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/TenantListVo.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/domain/vo/TenantListVo.java
@@ -7,7 +7,7 @@ import lombok.Data;
/**
* 租户列表
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@AutoMapper(target = SysTenantVo.class)
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/listener/UserActionListener.java b/backend/pangu-admin/src/main/java/org/dromara/web/listener/UserActionListener.java
index 6c8accb..1a4e071 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/listener/UserActionListener.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/listener/UserActionListener.java
@@ -27,7 +27,7 @@ import java.time.Duration;
/**
* 用户行为 侦听器的实现
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Component
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/service/IAuthStrategy.java b/backend/pangu-admin/src/main/java/org/dromara/web/service/IAuthStrategy.java
index a75b913..07f1540 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/service/IAuthStrategy.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/service/IAuthStrategy.java
@@ -10,7 +10,7 @@ import org.dromara.web.domain.vo.LoginVo;
/**
* 授权策略
*
- * @author Michelle.Chung
+ * @author pangu
*/
public interface IAuthStrategy {
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/backend/pangu-admin/src/main/java/org/dromara/web/service/SysLoginService.java
index 41a802b..4dd6af4 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/service/SysLoginService.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/service/SysLoginService.java
@@ -43,7 +43,7 @@ import java.util.function.Supplier;
/**
* 登录校验方法
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Slf4j
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/service/SysRegisterService.java b/backend/pangu-admin/src/main/java/org/dromara/web/service/SysRegisterService.java
index 5a3351d..b3b818d 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/service/SysRegisterService.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/service/SysRegisterService.java
@@ -27,7 +27,7 @@ import org.springframework.stereotype.Service;
/**
* 注册校验方法
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java
index e4315dc..7b81bd6 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java
@@ -33,7 +33,7 @@ import org.springframework.stereotype.Service;
/**
* 邮件认证策略
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Slf4j
@Service("email" + IAuthStrategy.BASE_NAME)
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java
index abf590b..8ce5961 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java
@@ -36,7 +36,7 @@ import org.springframework.stereotype.Service;
/**
* 密码认证策略
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Slf4j
@Service("password" + IAuthStrategy.BASE_NAME)
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java
index 597a601..58f9e52 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java
@@ -33,7 +33,7 @@ import org.springframework.stereotype.Service;
/**
* 短信认证策略
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Slf4j
@Service("sms" + IAuthStrategy.BASE_NAME)
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/SocialAuthStrategy.java b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/SocialAuthStrategy.java
index e01666e..2333557 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/SocialAuthStrategy.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/SocialAuthStrategy.java
@@ -36,7 +36,7 @@ import java.util.Optional;
/**
* 第三方授权策略
*
- * @author thiszhc is 三三
+ * @author pangu
*/
@Slf4j
@Service("social" + IAuthStrategy.BASE_NAME)
diff --git a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java
index f223dd8..b831b79 100644
--- a/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java
+++ b/backend/pangu-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java
@@ -29,7 +29,7 @@ import org.springframework.stereotype.Service;
/**
* 小程序认证策略
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Slf4j
@Service("xcx" + IAuthStrategy.BASE_NAME)
diff --git a/backend/pangu-admin/src/main/resources/application.yml b/backend/pangu-admin/src/main/resources/application.yml
index 4bb5591..6c5fcf5 100644
--- a/backend/pangu-admin/src/main/resources/application.yml
+++ b/backend/pangu-admin/src/main/resources/application.yml
@@ -125,6 +125,8 @@ security:
# H5公开接口
- /h5/auth/**
- /h5/base/**
+ # 开放API(应用签名鉴权,不走登录)
+ - /open/api/**
# 多租户配置
tenant:
diff --git a/backend/pangu-admin/src/test/java/org/dromara/test/AssertUnitTest.java b/backend/pangu-admin/src/test/java/org/dromara/test/AssertUnitTest.java
index dba2323..c8f9651 100644
--- a/backend/pangu-admin/src/test/java/org/dromara/test/AssertUnitTest.java
+++ b/backend/pangu-admin/src/test/java/org/dromara/test/AssertUnitTest.java
@@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test;
/**
* 断言单元测试案例
*
- * @author Lion Li
+ * @author pangu
*/
@DisplayName("断言单元测试案例")
public class AssertUnitTest {
diff --git a/backend/pangu-admin/src/test/java/org/dromara/test/DemoUnitTest.java b/backend/pangu-admin/src/test/java/org/dromara/test/DemoUnitTest.java
index 2d11a10..606dbd6 100644
--- a/backend/pangu-admin/src/test/java/org/dromara/test/DemoUnitTest.java
+++ b/backend/pangu-admin/src/test/java/org/dromara/test/DemoUnitTest.java
@@ -10,7 +10,7 @@ import java.util.concurrent.TimeUnit;
/**
* 单元测试案例
*
- * @author Lion Li
+ * @author pangu
*/
@SpringBootTest // 此注解只能在 springboot 主包下使用 需包含 main 方法与 yml 配置文件
@DisplayName("单元测试案例")
diff --git a/backend/pangu-admin/src/test/java/org/dromara/test/ParamUnitTest.java b/backend/pangu-admin/src/test/java/org/dromara/test/ParamUnitTest.java
index 1db51df..2fa0468 100644
--- a/backend/pangu-admin/src/test/java/org/dromara/test/ParamUnitTest.java
+++ b/backend/pangu-admin/src/test/java/org/dromara/test/ParamUnitTest.java
@@ -17,7 +17,7 @@ import java.util.stream.Stream;
/**
* 带参数单元测试案例
*
- * @author Lion Li
+ * @author pangu
*/
@DisplayName("带参数单元测试案例")
public class ParamUnitTest {
diff --git a/backend/pangu-admin/src/test/java/org/dromara/test/TagUnitTest.java b/backend/pangu-admin/src/test/java/org/dromara/test/TagUnitTest.java
index b50afa6..7a80a4f 100644
--- a/backend/pangu-admin/src/test/java/org/dromara/test/TagUnitTest.java
+++ b/backend/pangu-admin/src/test/java/org/dromara/test/TagUnitTest.java
@@ -6,7 +6,7 @@ import org.springframework.boot.test.context.SpringBootTest;
/**
* 标签单元测试案例
*
- * @author Lion Li
+ * @author pangu
*/
@SpringBootTest
@DisplayName("标签单元测试案例")
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ApplicationConfig.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ApplicationConfig.java
index d9f70e4..ac974b7 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ApplicationConfig.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ApplicationConfig.java
@@ -7,7 +7,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
/**
* 程序注解配置
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration
@EnableAspectJAutoProxy
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java
index 1cc3bd6..d0416a7 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ThreadPoolConfig.java
@@ -13,7 +13,7 @@ import java.util.concurrent.*;
/**
* 线程池配置
*
- * @author Lion Li
+ * @author pangu
**/
@Slf4j
@AutoConfiguration
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ValidatorConfig.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ValidatorConfig.java
index ddcd836..88b2239 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ValidatorConfig.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/config/ValidatorConfig.java
@@ -13,7 +13,7 @@ import java.util.Properties;
/**
* 校验框架配置类
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration(before = ValidationAutoConfiguration.class)
public class ValidatorConfig {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java
index ceb8370..21c8161 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 缓存的key 常量
*
- * @author Lion Li
+ * @author pangu
*/
public interface CacheConstants {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java
index c38f39b..921b1cf 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java
@@ -12,7 +12,7 @@ package org.dromara.common.core.constant;
*
* 例子: test#60s、test#0#60s、test#0#1m#1000、test#1h#0#500、test#1h#0#500#0
*
- * @author Lion Li
+ * @author pangu
*/
public interface CacheNames {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/Constants.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/Constants.java
index 0c6671a..53894cc 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/Constants.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/Constants.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 通用常量信息
*
- * @author ruoyi
+ * @author pangu
*/
public interface Constants {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/GlobalConstants.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/GlobalConstants.java
index 5352b11..242861e 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/GlobalConstants.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/GlobalConstants.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 全局的key常量 (业务无关的key)
*
- * @author Lion Li
+ * @author pangu
*/
public interface GlobalConstants {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/HttpStatus.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/HttpStatus.java
index 85566e8..65a83b1 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/HttpStatus.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/HttpStatus.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 返回状态码
*
- * @author Lion Li
+ * @author pangu
*/
public interface HttpStatus {
/**
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/RegexConstants.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/RegexConstants.java
index f1e04f7..b38aea3 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/RegexConstants.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/RegexConstants.java
@@ -7,7 +7,7 @@ import cn.hutool.core.lang.RegexPool;
*
* 常用正则表达式集合,更多正则见: https://any86.github.io/any-rule/
*
- * @author Feng
+ * @author pangu
*/
public interface RegexConstants extends RegexPool {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java
index e38d9fd..9b63b84 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 系统常量信息
*
- * @author Lion Li
+ * @author pangu
*/
public interface SystemConstants {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/TenantConstants.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/TenantConstants.java
index 33ce0cf..ff7eb9d 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/TenantConstants.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/constant/TenantConstants.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.constant;
/**
* 租户常量信息
*
- * @author Lion Li
+ * @author pangu
*/
public interface TenantConstants {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/R.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/R.java
index be85805..ed44f88 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/R.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/R.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* 响应信息主体
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/CompleteTaskDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/CompleteTaskDTO.java
index 21a561e..d97b658 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/CompleteTaskDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/CompleteTaskDTO.java
@@ -12,7 +12,7 @@ import java.util.Objects;
/**
* 办理任务请求对象
*
- * @author may
+ * @author pangu
*/
@Data
public class CompleteTaskDTO implements Serializable {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DeptDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DeptDTO.java
index 7b748b0..b40f70d 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DeptDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DeptDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 部门
*
- * @author AprilWind
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DictDataDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DictDataDTO.java
index dff1a75..316d2b9 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DictDataDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DictDataDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 字典数据DTO
*
- * @author AprilWind
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DictTypeDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DictTypeDTO.java
index 43ab142..5913117 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DictTypeDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/DictTypeDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 字典类型DTO
*
- * @author AprilWind
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowCopyDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowCopyDTO.java
index 2f20b21..2826923 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowCopyDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowCopyDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 抄送
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowCopyDTO implements Serializable {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowInstanceBizExtDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowInstanceBizExtDTO.java
index d22937b..71706ea 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowInstanceBizExtDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowInstanceBizExtDTO.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
/**
* 流程实例业务扩展对象
*
- * @author may
+ * @author pangu
* @date 2025-08-05
*/
@Data
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/OssDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/OssDTO.java
index 463821c..9f48fb1 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/OssDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/OssDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* OSS对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/PostDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/PostDTO.java
index 7536ee3..6718c71 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/PostDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/PostDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 岗位
*
- * @author AprilWind
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/RoleDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/RoleDTO.java
index d14ffbb..fbb02de 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/RoleDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/RoleDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 角色
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessDTO.java
index fa35657..270057f 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessDTO.java
@@ -13,7 +13,7 @@ import java.util.Objects;
/**
* 启动流程对象
*
- * @author may
+ * @author pangu
*/
@Data
public class StartProcessDTO implements Serializable {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessReturnDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessReturnDTO.java
index 9bcbd12..bee8961 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessReturnDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessReturnDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 启动流程返回对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
public class StartProcessReturnDTO implements Serializable {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/TaskAssigneeDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/TaskAssigneeDTO.java
index 78fb40e..0d07bf0 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/TaskAssigneeDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/TaskAssigneeDTO.java
@@ -14,7 +14,7 @@ import java.util.stream.Collectors;
/**
* 任务受让人
*
- * @author AprilWind
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/UserDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/UserDTO.java
index 393a0f0..76f16a9 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/UserDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/UserDTO.java
@@ -11,7 +11,7 @@ import java.util.Date;
/**
* 用户
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/UserOnlineDTO.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/UserOnlineDTO.java
index 43d8c3c..5e8f94b 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/UserOnlineDTO.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/dto/UserOnlineDTO.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 当前在线会话
*
- * @author ruoyi
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessDeleteEvent.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessDeleteEvent.java
index d570c31..2cd4de9 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessDeleteEvent.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessDeleteEvent.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
/**
* 删除流程监听
*
- * @author AprilWind
+ * @author pangu
*/
@Data
public class ProcessDeleteEvent implements Serializable {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessEvent.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessEvent.java
index d830dbe..e49c07e 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessEvent.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessEvent.java
@@ -9,7 +9,7 @@ import java.util.Map;
/**
* 总体流程监听
*
- * @author may
+ * @author pangu
*/
@Data
public class ProcessEvent implements Serializable {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java
index 0984727..43d0bbc 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java
@@ -9,7 +9,7 @@ import java.util.Map;
/**
* 流程任务监听
*
- * @author may
+ * @author pangu
*/
@Data
public class ProcessTaskEvent implements Serializable {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/EmailLoginBody.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/EmailLoginBody.java
index ffde8c6..a33874e 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/EmailLoginBody.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/EmailLoginBody.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
/**
* 邮件登录对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/LoginBody.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/LoginBody.java
index 63bee0d..3378b6f 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/LoginBody.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/LoginBody.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 用户登录对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java
index 338d4d7..d0e7da0 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java
@@ -13,7 +13,7 @@ import java.util.Set;
/**
* 登录用户身份权限
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/PasswordLoginBody.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/PasswordLoginBody.java
index 143c959..4233345 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/PasswordLoginBody.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/PasswordLoginBody.java
@@ -8,7 +8,7 @@ import org.hibernate.validator.constraints.Length;
/**
* 密码登录对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/RegisterBody.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/RegisterBody.java
index 3f23249..45badca 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/RegisterBody.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/RegisterBody.java
@@ -8,7 +8,7 @@ import org.hibernate.validator.constraints.Length;
/**
* 用户注册对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/SmsLoginBody.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/SmsLoginBody.java
index a878348..9e4f077 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/SmsLoginBody.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/SmsLoginBody.java
@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 短信登录对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/SocialLoginBody.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/SocialLoginBody.java
index 0d1b121..4b04fdc 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/SocialLoginBody.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/SocialLoginBody.java
@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 三方登录对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/TaskAssigneeBody.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/TaskAssigneeBody.java
index 0cbed2f..f7b97e3 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/TaskAssigneeBody.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/TaskAssigneeBody.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 任务受让人
*
- * @author AprilWind
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginBody.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginBody.java
index 518fe2e..fdf0e07 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginBody.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginBody.java
@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 三方登录对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginUser.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginUser.java
index e5f3d6c..38ac9e2 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginUser.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginUser.java
@@ -9,7 +9,7 @@ import java.io.Serial;
/**
* 小程序登录用户身份权限
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java
index c1660ee..f1b245f 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java
@@ -15,7 +15,7 @@ import java.util.stream.Collectors;
/**
* 业务状态枚举
*
- * @author may
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/DeviceType.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/DeviceType.java
index 1667ac7..1896a3f 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/DeviceType.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/DeviceType.java
@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 设备类型
*
- * @author Lion Li
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/LoginType.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/LoginType.java
index f9cac66..eb0a4df 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/LoginType.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/LoginType.java
@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 登录类型
*
- * @author Lion Li
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/UserStatus.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/UserStatus.java
index be7e44d..4d36e52 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/UserStatus.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/UserStatus.java
@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 用户状态
*
- * @author ruoyi
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/UserType.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/UserType.java
index 636988f..f085452 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/UserType.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/enums/UserType.java
@@ -7,7 +7,7 @@ import org.dromara.common.core.utils.StringUtils;
/**
* 用户类型
*
- * @author Lion Li
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/ServiceException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/ServiceException.java
index 90f5752..0599f75 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/ServiceException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/ServiceException.java
@@ -11,7 +11,7 @@ import java.io.Serial;
/**
* 业务异常(支持占位符 {} )
*
- * @author ruoyi
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/SseException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/SseException.java
index a76e16d..3e9f868 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/SseException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/SseException.java
@@ -10,7 +10,7 @@ import java.io.Serial;
/**
* sse 特制异常
*
- * @author LionLi
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/base/BaseException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/base/BaseException.java
index 40ce01b..1a77c08 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/base/BaseException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/base/BaseException.java
@@ -12,7 +12,7 @@ import java.io.Serial;
/**
* 基础异常
*
- * @author ruoyi
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileException.java
index d374fc0..8f78908 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileException.java
@@ -7,7 +7,7 @@ import java.io.Serial;
/**
* 文件信息异常类
*
- * @author ruoyi
+ * @author pangu
*/
public class FileException extends BaseException {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileNameLengthLimitExceededException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileNameLengthLimitExceededException.java
index af98124..53335bf 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileNameLengthLimitExceededException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileNameLengthLimitExceededException.java
@@ -5,7 +5,7 @@ import java.io.Serial;
/**
* 文件名称超长限制异常类
*
- * @author ruoyi
+ * @author pangu
*/
public class FileNameLengthLimitExceededException extends FileException {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileSizeLimitExceededException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileSizeLimitExceededException.java
index 1eb8d40..3ba0c32 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileSizeLimitExceededException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/file/FileSizeLimitExceededException.java
@@ -5,7 +5,7 @@ import java.io.Serial;
/**
* 文件名大小限制异常类
*
- * @author ruoyi
+ * @author pangu
*/
public class FileSizeLimitExceededException extends FileException {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/CaptchaException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/CaptchaException.java
index 43824e0..0e7688c 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/CaptchaException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/CaptchaException.java
@@ -5,7 +5,7 @@ import java.io.Serial;
/**
* 验证码错误异常类
*
- * @author ruoyi
+ * @author pangu
*/
public class CaptchaException extends UserException {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/CaptchaExpireException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/CaptchaExpireException.java
index f4b8cac..8181be0 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/CaptchaExpireException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/CaptchaExpireException.java
@@ -5,7 +5,7 @@ import java.io.Serial;
/**
* 验证码失效异常类
*
- * @author ruoyi
+ * @author pangu
*/
public class CaptchaExpireException extends UserException {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/UserException.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/UserException.java
index 024fed6..abdae14 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/UserException.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/exception/user/UserException.java
@@ -7,7 +7,7 @@ import java.io.Serial;
/**
* 用户信息异常类
*
- * @author ruoyi
+ * @author pangu
*/
public class UserException extends BaseException {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/factory/RegexPatternPoolFactory.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/factory/RegexPatternPoolFactory.java
index fd907d2..8a2cb1f 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/factory/RegexPatternPoolFactory.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/factory/RegexPatternPoolFactory.java
@@ -10,7 +10,7 @@ import java.util.regex.Pattern;
*
初始化的时候将正则表达式加入缓存池当中
* 提高正则表达式的性能,避免重复编译相同的正则表达式
*
- * @author 21001
+ * @author pangu
*/
public class RegexPatternPoolFactory extends PatternPool {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/factory/YmlPropertySourceFactory.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/factory/YmlPropertySourceFactory.java
index af61b90..a3a6432 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/factory/YmlPropertySourceFactory.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/factory/YmlPropertySourceFactory.java
@@ -12,7 +12,7 @@ import java.io.IOException;
/**
* yml 配置源工厂
*
- * @author Lion Li
+ * @author pangu
*/
public class YmlPropertySourceFactory extends DefaultPropertySourceFactory {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/ConfigService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/ConfigService.java
index 9ae52c7..9644065 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/ConfigService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/ConfigService.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 通用 参数配置服务
*
- * @author Lion Li
+ * @author pangu
*/
public interface ConfigService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/DeptService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/DeptService.java
index 725718a..b5e094f 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/DeptService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/DeptService.java
@@ -8,7 +8,7 @@ import java.util.Map;
/**
* 通用 部门服务
*
- * @author Lion Li
+ * @author pangu
*/
public interface DeptService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/DictService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/DictService.java
index d80395c..47cfdc5 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/DictService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/DictService.java
@@ -9,7 +9,7 @@ import java.util.Map;
/**
* 通用 字典服务
*
- * @author Lion Li
+ * @author pangu
*/
public interface DictService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/OssService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/OssService.java
index 1a52de0..dfdc8dd 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/OssService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/OssService.java
@@ -7,7 +7,7 @@ import java.util.List;
/**
* 通用 OSS服务
*
- * @author Lion Li
+ * @author pangu
*/
public interface OssService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/PermissionService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/PermissionService.java
index d7db79a..c9e4de6 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/PermissionService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/PermissionService.java
@@ -5,7 +5,7 @@ import java.util.Set;
/**
* 用户权限处理
*
- * @author Lion Li
+ * @author pangu
*/
public interface PermissionService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/PostService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/PostService.java
index 58c68d6..d91b010 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/PostService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/PostService.java
@@ -6,7 +6,7 @@ import java.util.Map;
/**
* 通用 岗位服务
*
- * @author AprilWind
+ * @author pangu
*/
public interface PostService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/RoleService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/RoleService.java
index d2805b7..3929b4a 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/RoleService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/RoleService.java
@@ -6,7 +6,7 @@ import java.util.Map;
/**
* 通用 角色服务
*
- * @author AprilWind
+ * @author pangu
*/
public interface RoleService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/TaskAssigneeService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/TaskAssigneeService.java
index 9af6691..604c371 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/TaskAssigneeService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/TaskAssigneeService.java
@@ -6,7 +6,7 @@ import org.dromara.common.core.domain.model.TaskAssigneeBody;
/**
* 工作流设计器获取任务执行人
*
- * @author Lion Li
+ * @author pangu
*/
public interface TaskAssigneeService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/UserService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/UserService.java
index eefeef0..947b093 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/UserService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/UserService.java
@@ -8,7 +8,7 @@ import java.util.Map;
/**
* 通用 用户服务
*
- * @author Lion Li
+ * @author pangu
*/
public interface UserService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
index 8efeb76..ddc70b1 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
@@ -10,7 +10,7 @@ import java.util.Map;
/**
* 通用 工作流服务
*
- * @author may
+ * @author pangu
*/
public interface WorkflowService {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java
index 6c45085..5e922a3 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java
@@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit;
/**
* 时间工具类
*
- * @author ruoyi
+ * @author pangu
*/
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
private static final String[] PARSE_PATTERNS = {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java
index 8a2ffcf..9aebafb 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java
@@ -8,7 +8,7 @@ import lombok.NoArgsConstructor;
/**
* 脱敏工具类
*
- * @author AprilWind
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class DesensitizedUtils extends DesensitizedUtil {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/MapstructUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/MapstructUtils.java
index b6acff7..b5de1c3 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/MapstructUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/MapstructUtils.java
@@ -15,7 +15,7 @@ import java.util.Map;
* 参考文档:mapstruct-plus
*
*
- * @author Michelle.Chung
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class MapstructUtils {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/MessageUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/MessageUtils.java
index 48dfc08..8d7caaa 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/MessageUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/MessageUtils.java
@@ -9,7 +9,7 @@ import org.springframework.context.i18n.LocaleContextHolder;
/**
* 获取i18n资源文件
*
- * @author Lion Li
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class MessageUtils {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/NetUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/NetUtils.java
index 72fdf40..7dc304b 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/NetUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/NetUtils.java
@@ -14,7 +14,7 @@ import java.net.UnknownHostException;
/**
* 增强网络相关工具类
*
- * @author 秋辞未寒
+ * @author pangu
*/
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ObjectUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ObjectUtils.java
index 199fd82..fc58a39 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ObjectUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ObjectUtils.java
@@ -9,7 +9,7 @@ import java.util.function.Function;
/**
* 对象工具类
*
- * @author 秋辞未寒
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ObjectUtils extends ObjectUtil {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ServletUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ServletUtils.java
index 509026f..dc83df3 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ServletUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ServletUtils.java
@@ -27,7 +27,7 @@ import java.util.Map;
/**
* 客户端工具类,提供获取请求参数、响应处理、头部信息等常用操作
*
- * @author ruoyi
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ServletUtils extends JakartaServletUtil {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/SpringUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/SpringUtils.java
index 169c6e2..5e7af64 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/SpringUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/SpringUtils.java
@@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
/**
* spring工具类
*
- * @author Lion Li
+ * @author pangu
*/
@Component
public final class SpringUtils extends SpringUtil {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java
index c5487c0..611a36f 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java
@@ -14,7 +14,7 @@ import java.util.stream.Collectors;
/**
* stream 流工具类
*
- * @author Lion Li
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class StreamUtils {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java
index 6eac2fc..ed1e05f 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java
@@ -14,7 +14,7 @@ import java.util.stream.Collectors;
/**
* 字符串工具类
*
- * @author Lion Li
+ * @author pangu
*/
public class StringUtils extends org.apache.commons.lang3.StringUtils {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/TreeBuildUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/TreeBuildUtils.java
index 5f60ebf..7ce6bb3 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/TreeBuildUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/TreeBuildUtils.java
@@ -18,7 +18,7 @@ import java.util.stream.Stream;
/**
* 扩展 hutool TreeUtil 封装系统树构建
*
- * @author Lion Li
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class TreeBuildUtils extends TreeUtil {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ValidatorUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ValidatorUtils.java
index 06b8fd6..16624dc 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ValidatorUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ValidatorUtils.java
@@ -11,7 +11,7 @@ import java.util.Set;
/**
* Validator 校验框架工具
*
- * @author Lion Li
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ValidatorUtils {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/file/FileUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/file/FileUtils.java
index 573b207..13cd0fe 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/file/FileUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/file/FileUtils.java
@@ -11,7 +11,7 @@ import java.nio.charset.StandardCharsets;
/**
* 文件处理工具类
*
- * @author Lion Li
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class FileUtils extends FileUtil {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/file/MimeTypeUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/file/MimeTypeUtils.java
index 23fa2cf..85e527b 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/file/MimeTypeUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/file/MimeTypeUtils.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.utils.file;
/**
* 媒体类型工具类
*
- * @author ruoyi
+ * @author pangu
*/
public class MimeTypeUtils {
public static final String IMAGE_PNG = "image/png";
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ip/AddressUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ip/AddressUtils.java
index fe36d9c..c51f5a8 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ip/AddressUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ip/AddressUtils.java
@@ -10,7 +10,7 @@ import org.dromara.common.core.utils.StringUtils;
/**
* 获取地址类
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ip/RegionUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ip/RegionUtils.java
index 5c74a83..c3c8e0d 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ip/RegionUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/ip/RegionUtils.java
@@ -16,7 +16,7 @@ import java.time.Duration;
* 参考地址:ip2region xdb java 查询客户端实现
* xdb数据库文件下载:ip2region data
*
- * @author 秋辞未寒
+ * @author pangu
*/
@Slf4j
public class RegionUtils {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/reflect/ReflectUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/reflect/ReflectUtils.java
index 367e8c9..f7ece8a 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/reflect/ReflectUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/reflect/ReflectUtils.java
@@ -10,7 +10,7 @@ import java.lang.reflect.Method;
/**
* 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数.
*
- * @author Lion Li
+ * @author pangu
*/
@SuppressWarnings("rawtypes")
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/regex/RegexUtils.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/regex/RegexUtils.java
index 6dde129..eff9f1d 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/regex/RegexUtils.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/regex/RegexUtils.java
@@ -7,7 +7,7 @@ import org.dromara.common.core.constant.RegexConstants;
/**
* 正则相关工具类
*
- * @author Feng
+ * @author pangu
*/
public final class RegexUtils extends ReUtil {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/regex/RegexValidator.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/regex/RegexValidator.java
index c0dda20..a6a8fcc 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/regex/RegexValidator.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/regex/RegexValidator.java
@@ -10,7 +10,7 @@ import java.util.regex.Pattern;
* 正则字段校验器
* 主要验证字段非空、是否为满足指定格式等
*
- * @author Feng
+ * @author pangu
*/
public class RegexValidator extends Validator {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/sql/SqlUtil.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/sql/SqlUtil.java
index 1020c81..02fc367 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/sql/SqlUtil.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/utils/sql/SqlUtil.java
@@ -7,7 +7,7 @@ import org.dromara.common.core.utils.StringUtils;
/**
* sql操作工具类
*
- * @author ruoyi
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class SqlUtil {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/AddGroup.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/AddGroup.java
index 0275899..3cd7c46 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/AddGroup.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/AddGroup.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.validate;
/**
* 校验分组 add
*
- * @author Lion Li
+ * @author pangu
*/
public interface AddGroup {
}
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/EditGroup.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/EditGroup.java
index 77c5040..8e76d87 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/EditGroup.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/EditGroup.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.validate;
/**
* 校验分组 edit
*
- * @author Lion Li
+ * @author pangu
*/
public interface EditGroup {
}
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/QueryGroup.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/QueryGroup.java
index 02a0ac2..47a4245 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/QueryGroup.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/QueryGroup.java
@@ -3,7 +3,7 @@ package org.dromara.common.core.validate;
/**
* 校验分组 query
*
- * @author Lion Li
+ * @author pangu
*/
public interface QueryGroup {
}
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/dicts/DictPattern.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/dicts/DictPattern.java
index 73fc4c4..36f2170 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/dicts/DictPattern.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/dicts/DictPattern.java
@@ -11,7 +11,7 @@ import java.lang.annotation.Target;
/**
* 字典项校验注解
*
- * @author AprilWind
+ * @author pangu
*/
@Constraint(validatedBy = DictPatternValidator.class)
@Target({ElementType.FIELD, ElementType.PARAMETER})
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/dicts/DictPatternValidator.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/dicts/DictPatternValidator.java
index 558a343..b0ea707 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/dicts/DictPatternValidator.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/dicts/DictPatternValidator.java
@@ -9,7 +9,7 @@ import org.dromara.common.core.utils.StringUtils;
/**
* 自定义字典值校验器
*
- * @author AprilWind
+ * @author pangu
*/
public class DictPatternValidator implements ConstraintValidator {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java
index 3d4adb9..e4aa59c 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java
@@ -11,7 +11,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* 自定义枚举校验
*
- * @author 秋辞未寒
+ * @author pangu
* @date 2024-12-09
*/
@Documented
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java
index e63f44a..79672fb 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java
@@ -8,7 +8,7 @@ import org.dromara.common.core.utils.reflect.ReflectUtils;
/**
* 自定义枚举校验注解实现
*
- * @author 秋辞未寒
+ * @author pangu
* @date 2024-12-09
*/
public class EnumPatternValidator implements ConstraintValidator {
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/xss/Xss.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/xss/Xss.java
index eed495f..6c574c5 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/xss/Xss.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/xss/Xss.java
@@ -10,7 +10,7 @@ import java.lang.annotation.Target;
/**
* 自定义xss校验注解
*
- * @author Lion Li
+ * @author pangu
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
diff --git a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/xss/XssValidator.java b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/xss/XssValidator.java
index 9c32563..c5a08d2 100644
--- a/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/xss/XssValidator.java
+++ b/backend/pangu-common/pangu-common-core/src/main/java/org/dromara/common/core/xss/XssValidator.java
@@ -9,7 +9,7 @@ import jakarta.validation.ConstraintValidatorContext;
/**
* 自定义xss校验注解实现
*
- * @author Lion Li
+ * @author pangu
*/
public class XssValidator implements ConstraintValidator {
diff --git a/backend/pangu-common/pangu-common-doc/src/main/java/org/dromara/common/doc/config/SpringDocConfig.java b/backend/pangu-common/pangu-common-doc/src/main/java/org/dromara/common/doc/config/SpringDocConfig.java
index 35b6ce9..b916707 100644
--- a/backend/pangu-common/pangu-common-doc/src/main/java/org/dromara/common/doc/config/SpringDocConfig.java
+++ b/backend/pangu-common/pangu-common-doc/src/main/java/org/dromara/common/doc/config/SpringDocConfig.java
@@ -32,7 +32,7 @@ import java.util.Set;
/**
* 接口文档配置
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@AutoConfiguration(before = SpringDocConfiguration.class)
@@ -115,7 +115,7 @@ public class SpringDocConfig {
/**
* 单独使用一个类便于判断 解决springdoc路径拼接重复问题
*
- * @author Lion Li
+ * @author pangu
*/
static class PlusPaths extends Paths {
diff --git a/backend/pangu-common/pangu-common-doc/src/main/java/org/dromara/common/doc/config/properties/SpringDocProperties.java b/backend/pangu-common/pangu-common-doc/src/main/java/org/dromara/common/doc/config/properties/SpringDocProperties.java
index eae3b4c..0a1c25c 100644
--- a/backend/pangu-common/pangu-common-doc/src/main/java/org/dromara/common/doc/config/properties/SpringDocProperties.java
+++ b/backend/pangu-common/pangu-common-doc/src/main/java/org/dromara/common/doc/config/properties/SpringDocProperties.java
@@ -15,7 +15,7 @@ import java.util.List;
/**
* swagger 配置属性
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@ConfigurationProperties(prefix = "springdoc")
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/annotation/ApiEncrypt.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/annotation/ApiEncrypt.java
index 7f52de8..bd1feee 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/annotation/ApiEncrypt.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/annotation/ApiEncrypt.java
@@ -5,7 +5,7 @@ import java.lang.annotation.*;
/**
* 强制加密注解
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Documented
@Target({ElementType.METHOD})
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/annotation/EncryptField.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/annotation/EncryptField.java
index d357d72..97310ba 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/annotation/EncryptField.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/annotation/EncryptField.java
@@ -8,7 +8,7 @@ import java.lang.annotation.*;
/**
* 字段加密注解
*
- * @author 老马
+ * @author pangu
*/
@Documented
@Inherited
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/config/ApiDecryptAutoConfiguration.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/config/ApiDecryptAutoConfiguration.java
index 38b22f3..b133189 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/config/ApiDecryptAutoConfiguration.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/config/ApiDecryptAutoConfiguration.java
@@ -13,7 +13,7 @@ import org.springframework.context.annotation.Bean;
/**
* api 解密自动配置
*
- * @author wdhcr
+ * @author pangu
*/
@AutoConfiguration
@EnableConfigurationProperties(ApiDecryptProperties.class)
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java
index fbc4e52..9147cae 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java
@@ -16,7 +16,7 @@ import org.springframework.context.annotation.Bean;
/**
* 加解密配置
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
@AutoConfiguration(after = MybatisPlusAutoConfiguration.class)
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptContext.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptContext.java
index 2f02eaf..1f295ea 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptContext.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptContext.java
@@ -7,7 +7,7 @@ import lombok.Data;
/**
* 加密上下文 用于encryptor传递必要的参数。
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
@Data
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java
index 5e2c731..13d6ec6 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java
@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
/**
* 加密管理类
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
@Slf4j
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/IEncryptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/IEncryptor.java
index dbc4420..c276dd7 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/IEncryptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/IEncryptor.java
@@ -6,7 +6,7 @@ import org.dromara.common.encrypt.enumd.EncodeType;
/**
* 加解者
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
public interface IEncryptor {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/AbstractEncryptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/AbstractEncryptor.java
index 858d229..75577a6 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/AbstractEncryptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/AbstractEncryptor.java
@@ -6,7 +6,7 @@ import org.dromara.common.encrypt.core.IEncryptor;
/**
* 所有加密执行者的基类
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
public abstract class AbstractEncryptor implements IEncryptor {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/AesEncryptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/AesEncryptor.java
index e4dc597..38c234b 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/AesEncryptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/AesEncryptor.java
@@ -8,7 +8,7 @@ import org.dromara.common.encrypt.utils.EncryptUtils;
/**
* AES算法实现
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
public class AesEncryptor extends AbstractEncryptor {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Base64Encryptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Base64Encryptor.java
index 0028548..c36a8ed 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Base64Encryptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Base64Encryptor.java
@@ -8,7 +8,7 @@ import org.dromara.common.encrypt.utils.EncryptUtils;
/**
* Base64算法实现
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
public class Base64Encryptor extends AbstractEncryptor {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/RsaEncryptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/RsaEncryptor.java
index 5f03a4b..12d4ad1 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/RsaEncryptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/RsaEncryptor.java
@@ -10,7 +10,7 @@ import org.dromara.common.encrypt.utils.EncryptUtils;
/**
* RSA算法实现
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
public class RsaEncryptor extends AbstractEncryptor {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java
index aec5d82..151b9b3 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java
@@ -9,7 +9,7 @@ import org.dromara.common.encrypt.utils.EncryptUtils;
/**
* sm2算法实现
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
public class Sm2Encryptor extends AbstractEncryptor {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm4Encryptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm4Encryptor.java
index adaf674..de86266 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm4Encryptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm4Encryptor.java
@@ -8,7 +8,7 @@ import org.dromara.common.encrypt.utils.EncryptUtils;
/**
* sm4算法实现
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
public class Sm4Encryptor extends AbstractEncryptor {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/enumd/AlgorithmType.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/enumd/AlgorithmType.java
index 26ee1ee..c7900a1 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/enumd/AlgorithmType.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/enumd/AlgorithmType.java
@@ -7,7 +7,7 @@ import org.dromara.common.encrypt.core.encryptor.*;
/**
* 算法名称
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
@Getter
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/enumd/EncodeType.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/enumd/EncodeType.java
index f471221..7ba8706 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/enumd/EncodeType.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/enumd/EncodeType.java
@@ -3,7 +3,7 @@ package org.dromara.common.encrypt.enumd;
/**
* 编码类型
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
public enum EncodeType {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java
index 79d58da..fb330b7 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/CryptoFilter.java
@@ -22,7 +22,7 @@ import java.io.IOException;
/**
* Crypto 过滤器
*
- * @author wdhcr
+ * @author pangu
*/
public class CryptoFilter implements Filter {
private final ApiDecryptProperties properties;
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/DecryptRequestBodyWrapper.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/DecryptRequestBodyWrapper.java
index 98f4bc7..2397675 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/DecryptRequestBodyWrapper.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/DecryptRequestBodyWrapper.java
@@ -18,7 +18,7 @@ import java.nio.charset.StandardCharsets;
/**
* 解密请求参数工具类
*
- * @author wdhcr
+ * @author pangu
*/
public class DecryptRequestBodyWrapper extends HttpServletRequestWrapper {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java
index 78e06ff..90c8e63 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java
@@ -13,7 +13,7 @@ import java.nio.charset.StandardCharsets;
/**
* 加密响应参数包装类
*
- * @author Michelle.Chung
+ * @author pangu
*/
public class EncryptResponseBodyWrapper extends HttpServletResponseWrapper {
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/interceptor/MybatisDecryptInterceptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/interceptor/MybatisDecryptInterceptor.java
index d5faae7..fb0bdbc 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/interceptor/MybatisDecryptInterceptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/interceptor/MybatisDecryptInterceptor.java
@@ -23,7 +23,7 @@ import java.util.*;
/**
* 出参解密拦截器
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
@Slf4j
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/interceptor/MybatisEncryptInterceptor.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/interceptor/MybatisEncryptInterceptor.java
index bcc2f4c..07e3cdb 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/interceptor/MybatisEncryptInterceptor.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/interceptor/MybatisEncryptInterceptor.java
@@ -25,7 +25,7 @@ import java.util.*;
/**
* 入参加密拦截器
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
@Slf4j
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/ApiDecryptProperties.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/ApiDecryptProperties.java
index 6aadb3e..2729cb1 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/ApiDecryptProperties.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/ApiDecryptProperties.java
@@ -5,7 +5,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* api解密属性配置类
- * @author wdhcr
+ * @author pangu
*/
@Data
@ConfigurationProperties(prefix = "api-decrypt")
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/EncryptorProperties.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/EncryptorProperties.java
index ba445c1..aa0dcc3 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/EncryptorProperties.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/EncryptorProperties.java
@@ -8,7 +8,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* 加解密属性配置类
*
- * @author 老马
+ * @author pangu
* @version 4.6.0
*/
@Data
diff --git a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java
index ff0fbc8..58118e1 100644
--- a/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java
+++ b/backend/pangu-common/pangu-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java
@@ -16,7 +16,7 @@ import java.util.Map;
/**
* 安全相关工具类
*
- * @author 老马
+ * @author pangu
*/
public class EncryptUtils {
diff --git a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/CellMerge.java b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/CellMerge.java
index 6b9211b..8c26215 100644
--- a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/CellMerge.java
+++ b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/CellMerge.java
@@ -9,7 +9,7 @@ import java.lang.annotation.*;
*
* 需搭配 {@link CellMergeStrategy} 策略使用
*
- * @author Lion Li
+ * @author pangu
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDictFormat.java b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDictFormat.java
index 5c51842..bd0056e 100644
--- a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDictFormat.java
+++ b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDictFormat.java
@@ -7,7 +7,7 @@ import java.lang.annotation.*;
/**
* 字典格式化
*
- * @author Lion Li
+ * @author pangu
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDynamicOptions.java b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDynamicOptions.java
index c26bd68..825fee0 100644
--- a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDynamicOptions.java
+++ b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDynamicOptions.java
@@ -7,7 +7,7 @@ import java.lang.annotation.*;
/**
* Excel动态下拉选项注解
*
- * @author Angus
+ * @author pangu
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelEnumFormat.java b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelEnumFormat.java
index 290379d..349a249 100644
--- a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelEnumFormat.java
+++ b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelEnumFormat.java
@@ -5,7 +5,7 @@ import java.lang.annotation.*;
/**
* 枚举格式化
*
- * @author Liang
+ * @author pangu
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelNotation.java b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelNotation.java
index ed42371..8b15e77 100644
--- a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelNotation.java
+++ b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelNotation.java
@@ -7,7 +7,7 @@ import java.lang.annotation.Target;
/**
* 批注 此注解仅用于单表头 不支持多层级表头
- * @author guzhouyanyu
+ * @author pangu
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelRequired.java b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelRequired.java
index ca8083b..9522791 100644
--- a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelRequired.java
+++ b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelRequired.java
@@ -9,7 +9,7 @@ import java.lang.annotation.Target;
/**
* 是否必填 此注解仅用于单表头 不支持多层级表头
- * @author guzhouyanyu
+ * @author pangu
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelBigNumberConvert.java b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelBigNumberConvert.java
index b88c3e4..8e5363c 100644
--- a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelBigNumberConvert.java
+++ b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelBigNumberConvert.java
@@ -16,7 +16,7 @@ import java.math.BigDecimal;
* 大数值转换
* Excel 数值长度位15位 大于15位的数值转换位字符串
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class ExcelBigNumberConvert implements Converter {
diff --git a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java
index c54816f..2c45f94 100644
--- a/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java
+++ b/backend/pangu-common/pangu-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java
@@ -21,7 +21,7 @@ import java.lang.reflect.Field;
/**
* 字典格式化转换处理
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class ExcelDictConvert implements Converter
*
- * @author Lion Li
+ * @author pangu
* @version 3.5.0
*/
@Getter
diff --git a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java
index 38f7247..7fb373e 100644
--- a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java
+++ b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java
@@ -16,7 +16,7 @@ import java.util.Date;
/**
* MP注入处理器
*
- * @author Lion Li
+ * @author pangu
* @date 2021/4/25
*/
@Slf4j
diff --git a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/MybatisExceptionHandler.java b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/MybatisExceptionHandler.java
index 094785b..6d56bd1 100644
--- a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/MybatisExceptionHandler.java
+++ b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/MybatisExceptionHandler.java
@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* Mybatis异常处理器
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@RestControllerAdvice
diff --git a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java
index 5c2ca98..1cd3b20 100644
--- a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java
+++ b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java
@@ -32,7 +32,7 @@ import java.util.function.Function;
/**
* 数据权限过滤
*
- * @author Lion Li
+ * @author pangu
* @version 3.5.0
*/
@Slf4j
diff --git a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusPostInitTableInfoHandler.java b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusPostInitTableInfoHandler.java
index 60ca20b..9488977 100644
--- a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusPostInitTableInfoHandler.java
+++ b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusPostInitTableInfoHandler.java
@@ -11,7 +11,7 @@ import org.dromara.common.core.utils.reflect.ReflectUtils;
* 修改表信息初始化方式
* 目前用于全局修改是否使用逻辑删除
*
- * @author Lion Li
+ * @author pangu
*/
public class PlusPostInitTableInfoHandler implements PostInitTableInfoHandler {
diff --git a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java
index 84a8a5c..171a4ed 100644
--- a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java
+++ b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java
@@ -18,7 +18,7 @@ import java.util.List;
/**
* 数据库助手
*
- * @author Lion Li
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class DataBaseHelper {
diff --git a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java
index 8963648..32c9d93 100644
--- a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java
+++ b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java
@@ -19,7 +19,7 @@ import java.util.function.Supplier;
/**
* 数据权限助手
*
- * @author Lion Li
+ * @author pangu
* @version 3.5.0
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/interceptor/PlusDataPermissionInterceptor.java b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/interceptor/PlusDataPermissionInterceptor.java
index b37d96e..438a1d8 100644
--- a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/interceptor/PlusDataPermissionInterceptor.java
+++ b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/interceptor/PlusDataPermissionInterceptor.java
@@ -29,7 +29,7 @@ import java.util.List;
/**
* 数据权限拦截器
*
- * @author Lion Li
+ * @author pangu
* @version 3.5.0
*/
@Slf4j
diff --git a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/utils/IdGeneratorUtil.java b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/utils/IdGeneratorUtil.java
index 33b3f1c..6025e9a 100644
--- a/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/utils/IdGeneratorUtil.java
+++ b/backend/pangu-common/pangu-common-mybatis/src/main/java/org/dromara/common/mybatis/utils/IdGeneratorUtil.java
@@ -9,7 +9,7 @@ import org.dromara.common.core.utils.SpringUtils;
/**
* ID 生成工具类
*
- * @author AprilWind
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class IdGeneratorUtil {
diff --git a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/constant/OssConstant.java b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/constant/OssConstant.java
index 9d8db93..5c82aea 100644
--- a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/constant/OssConstant.java
+++ b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/constant/OssConstant.java
@@ -8,7 +8,7 @@ import java.util.List;
/**
* 对象存储常量
*
- * @author Lion Li
+ * @author pangu
*/
public interface OssConstant {
diff --git a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java
index 14fc4dc..0930b0e 100644
--- a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java
+++ b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java
@@ -43,7 +43,7 @@ import java.util.function.Consumer;
* S3 存储协议 所有兼容S3协议的云厂商均支持
* 阿里云 腾讯云 七牛云 minio
*
- * @author AprilWind
+ * @author pangu
*/
@Slf4j
public class OssClient {
diff --git a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/core/WriteOutSubscriber.java b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/core/WriteOutSubscriber.java
index d3a9841..09bd039 100644
--- a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/core/WriteOutSubscriber.java
+++ b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/core/WriteOutSubscriber.java
@@ -5,7 +5,7 @@ import java.io.IOException;
/**
* 写出订阅器
*
- * @author 秋辞未寒
+ * @author pangu
*/
@FunctionalInterface
public interface WriteOutSubscriber {
diff --git a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/entity/UploadResult.java b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/entity/UploadResult.java
index 81a18e6..50c0349 100644
--- a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/entity/UploadResult.java
+++ b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/entity/UploadResult.java
@@ -6,7 +6,7 @@ import lombok.Data;
/**
* 上传返回体
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@Builder
diff --git a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/enums/AccessPolicyType.java b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/enums/AccessPolicyType.java
index 45b13be..0dbb661 100644
--- a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/enums/AccessPolicyType.java
+++ b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/enums/AccessPolicyType.java
@@ -8,7 +8,7 @@ import software.amazon.awssdk.services.s3.model.ObjectCannedACL;
/**
* 桶访问策略配置
*
- * @author 陈賝
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/exception/OssException.java b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/exception/OssException.java
index 52e9623..0e595b4 100644
--- a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/exception/OssException.java
+++ b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/exception/OssException.java
@@ -5,7 +5,7 @@ import java.io.Serial;
/**
* OSS异常类
*
- * @author Lion Li
+ * @author pangu
*/
public class OssException extends RuntimeException {
diff --git a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/factory/OssFactory.java b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/factory/OssFactory.java
index 3da1ba5..19a5e1f 100644
--- a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/factory/OssFactory.java
+++ b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/factory/OssFactory.java
@@ -18,7 +18,7 @@ import java.util.concurrent.locks.ReentrantLock;
/**
* 文件上传Factory
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class OssFactory {
diff --git a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/properties/OssProperties.java b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/properties/OssProperties.java
index cb37206..f6992e9 100644
--- a/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/properties/OssProperties.java
+++ b/backend/pangu-common/pangu-common-oss/src/main/java/org/dromara/common/oss/properties/OssProperties.java
@@ -5,7 +5,7 @@ import lombok.Data;
/**
* OSS对象存储 配置属性
*
- * @author Lion Li
+ * @author pangu
*/
@Data
public class OssProperties {
diff --git a/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/annotation/RateLimiter.java b/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/annotation/RateLimiter.java
index 79272d4..a1716e1 100644
--- a/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/annotation/RateLimiter.java
+++ b/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/annotation/RateLimiter.java
@@ -7,7 +7,7 @@ import java.lang.annotation.*;
/**
* 限流注解
*
- * @author Lion Li
+ * @author pangu
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/aspectj/RateLimiterAspect.java b/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/aspectj/RateLimiterAspect.java
index 2d6d82e..6833e45 100644
--- a/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/aspectj/RateLimiterAspect.java
+++ b/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/aspectj/RateLimiterAspect.java
@@ -30,7 +30,7 @@ import java.lang.reflect.Method;
/**
* 限流处理
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@Aspect
diff --git a/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/config/RateLimiterConfig.java b/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/config/RateLimiterConfig.java
index 4b7e5b7..0265e1c 100644
--- a/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/config/RateLimiterConfig.java
+++ b/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/config/RateLimiterConfig.java
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConfiguration;
/**
- * @author guangxin
+ * @author pangu
* @date 2023/1/18
*/
@AutoConfiguration(after = RedisConfiguration.class)
diff --git a/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/enums/LimitType.java b/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/enums/LimitType.java
index b7f059f..a294714 100644
--- a/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/enums/LimitType.java
+++ b/backend/pangu-common/pangu-common-ratelimiter/src/main/java/org/dromara/common/ratelimiter/enums/LimitType.java
@@ -3,7 +3,7 @@ package org.dromara.common.ratelimiter.enums;
/**
* 限流类型
*
- * @author ruoyi
+ * @author pangu
*/
public enum LimitType {
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/CacheConfig.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/CacheConfig.java
index d57ba4e..463a698 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/CacheConfig.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/CacheConfig.java
@@ -13,7 +13,7 @@ import java.util.concurrent.TimeUnit;
/**
* 缓存配置
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration
@EnableCaching
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/RedisConfig.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/RedisConfig.java
index 4c39196..8dc9122 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/RedisConfig.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/RedisConfig.java
@@ -30,7 +30,7 @@ import java.util.TimeZone;
/**
* redis配置
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@AutoConfiguration
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/properties/RedissonProperties.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/properties/RedissonProperties.java
index ebec786..52b377b 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/properties/RedissonProperties.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/config/properties/RedissonProperties.java
@@ -9,7 +9,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Redisson 配置属性
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@ConfigurationProperties(prefix = "redisson")
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java
index 3bf3e34..8d199f2 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/handler/KeyPrefixHandler.java
@@ -6,7 +6,7 @@ import org.redisson.api.NameMapper;
/**
* redis缓存key前缀处理
*
- * @author ye
+ * @author pangu
* @date 2022/7/14 17:44
* @since 4.3.0
*/
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/handler/RedisExceptionHandler.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/handler/RedisExceptionHandler.java
index 5e904f3..a4fe58a 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/handler/RedisExceptionHandler.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/handler/RedisExceptionHandler.java
@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* Redis异常处理器
*
- * @author AprilWind
+ * @author pangu
*/
@Slf4j
@RestControllerAdvice
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java
index 8662c53..8ff21d9 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/manager/CaffeineCacheDecorator.java
@@ -8,7 +8,7 @@ import java.util.concurrent.Callable;
/**
* Cache 装饰器模式(用于扩展 Caffeine 一级缓存)
*
- * @author LionLi
+ * @author pangu
*/
public class CaffeineCacheDecorator implements Cache {
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/manager/PlusSpringCacheManager.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/manager/PlusSpringCacheManager.java
index 8428ef7..2de71e2 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/manager/PlusSpringCacheManager.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/manager/PlusSpringCacheManager.java
@@ -39,7 +39,7 @@ import java.util.concurrent.ConcurrentMap;
* 修改 RedissonSpringCacheManager 源码
* 重写 cacheName 处理方法 支持多参数
*
- * @author Nikita Koksharov
+ * @author pangu
*
*/
@SuppressWarnings("unchecked")
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/CacheUtils.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/CacheUtils.java
index 865ffa5..b2da919 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/CacheUtils.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/CacheUtils.java
@@ -9,7 +9,7 @@ import org.springframework.cache.CacheManager;
/**
* 缓存操作工具类
*
- * @author Michelle.Chung
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@SuppressWarnings(value = {"unchecked"})
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java
index 5b1c7f7..bcacd28 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/QueueUtils.java
@@ -14,7 +14,7 @@ import java.util.function.Function;
* 轻量级队列 重量级数据量 请使用 MQ
* 要求 redis 5.X 以上
*
- * @author Lion Li
+ * @author pangu
* @version 3.6.0 新增
* @deprecated redisson 新版本已经将队列功能标记删除 一些技术问题无法解决 建议搭建MQ使用
*/
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
index c433bff..135c2ad 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
@@ -18,7 +18,7 @@ import java.util.stream.Stream;
/**
* redis 工具类
*
- * @author Lion Li
+ * @author pangu
* @version 3.1.0 新增
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/SequenceUtils.java b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/SequenceUtils.java
index a3d0bad..9e8d693 100644
--- a/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/SequenceUtils.java
+++ b/backend/pangu-common/pangu-common-redis/src/main/java/org/dromara/common/redis/utils/SequenceUtils.java
@@ -18,7 +18,7 @@ import java.time.temporal.TemporalAccessor;
/**
* 发号器工具类
*
- * @author 秋辞未寒
+ * @author pangu
* @date 2024-12-10
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/config/SaTokenConfig.java b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/config/SaTokenConfig.java
index 61c6b9a..d03ea36 100644
--- a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/config/SaTokenConfig.java
+++ b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/config/SaTokenConfig.java
@@ -15,7 +15,7 @@ import org.springframework.context.annotation.PropertySource;
/**
* sa-token 配置
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration
@PropertySource(value = "classpath:common-satoken.yml", factory = YmlPropertySourceFactory.class)
diff --git a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java
index 14abf89..d6c9416 100644
--- a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java
+++ b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java
@@ -19,7 +19,7 @@ import java.util.concurrent.TimeUnit;
*
* SaTokenDaoBySessionFollowObject 是 SaTokenDao 子集简化了session方法处理
*
- * @author Lion Li
+ * @author pangu
*/
public class PlusSaTokenDao implements SaTokenDaoBySessionFollowObject {
diff --git a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/core/service/SaPermissionImpl.java b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/core/service/SaPermissionImpl.java
index c9f8c8c..25b55f3 100644
--- a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/core/service/SaPermissionImpl.java
+++ b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/core/service/SaPermissionImpl.java
@@ -17,7 +17,7 @@ import java.util.List;
/**
* sa-token 权限管理实现类
*
- * @author Lion Li
+ * @author pangu
*/
public class SaPermissionImpl implements StpInterface {
diff --git a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/handler/SaTokenExceptionHandler.java b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/handler/SaTokenExceptionHandler.java
index a45af89..ae1dd91 100644
--- a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/handler/SaTokenExceptionHandler.java
+++ b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/handler/SaTokenExceptionHandler.java
@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* SaToken异常处理器
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@RestControllerAdvice
diff --git a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
index 730bae2..8fcf5f9 100644
--- a/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
+++ b/backend/pangu-common/pangu-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java
@@ -26,7 +26,7 @@ import java.util.Set;
* 多用户体系 针对 多种用户类型 但权限控制不一致
* 可以组成 多用户类型表与多设备类型 分别控制权限
*
- * @author Lion Li
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class LoginHelper {
diff --git a/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java b/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java
index 655b0ee..8f81b1e 100644
--- a/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java
+++ b/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java
@@ -29,7 +29,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 权限安全配置
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@@ -47,6 +47,7 @@ public class SecurityConfig implements WebMvcConfigurer {
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
+ log.info(">>> SecurityConfig 排除路径配置: {}", java.util.Arrays.toString(securityProperties.getExcludes()));
// 注册路由拦截器,自定义验证规则
registry.addInterceptor(new SaInterceptor(handler -> {
AllUrlHandler allUrlHandler = SpringUtils.getBean(AllUrlHandler.class);
diff --git a/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/config/properties/SecurityProperties.java b/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/config/properties/SecurityProperties.java
index be1cc6e..a0af726 100644
--- a/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/config/properties/SecurityProperties.java
+++ b/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/config/properties/SecurityProperties.java
@@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Security 配置属性
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@ConfigurationProperties(prefix = "security")
diff --git a/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/handler/AllUrlHandler.java b/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/handler/AllUrlHandler.java
index a0c6ada..4f2c450 100644
--- a/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/handler/AllUrlHandler.java
+++ b/backend/pangu-common/pangu-common-security/src/main/java/org/dromara/common/security/handler/AllUrlHandler.java
@@ -14,7 +14,7 @@ import java.util.regex.Pattern;
/**
* 获取所有Url配置
*
- * @author Lion Li
+ * @author pangu
*/
@Data
public class AllUrlHandler implements InitializingBean {
diff --git a/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java b/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java
index e75dc5b..90a2b38 100644
--- a/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java
+++ b/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/annotation/Sensitive.java
@@ -13,7 +13,7 @@ import java.lang.annotation.Target;
/**
* 数据脱敏注解
*
- * @author zhujie
+ * @author pangu
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
diff --git a/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveService.java b/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveService.java
index 03a7f9c..239679b 100644
--- a/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveService.java
+++ b/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveService.java
@@ -5,7 +5,7 @@ package org.dromara.common.sensitive.core;
* 默认管理员不过滤
* 需自行根据业务重写实现
*
- * @author Lion Li
+ * @author pangu
* @version 3.6.0
*/
public interface SensitiveService {
diff --git a/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveStrategy.java b/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveStrategy.java
index 30de412..5936c7c 100644
--- a/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveStrategy.java
+++ b/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveStrategy.java
@@ -10,7 +10,7 @@ import java.util.function.Function;
/**
* 脱敏策略
*
- * @author Yjoioooo
+ * @author pangu
* @version 3.6.0
*/
@AllArgsConstructor
diff --git a/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/handler/SensitiveHandler.java b/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/handler/SensitiveHandler.java
index d454724..9c573d5 100644
--- a/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/handler/SensitiveHandler.java
+++ b/backend/pangu-common/pangu-common-sensitive/src/main/java/org/dromara/common/sensitive/handler/SensitiveHandler.java
@@ -20,7 +20,7 @@ import java.util.Objects;
/**
* 数据脱敏json序列化工具
*
- * @author Yjoioooo
+ * @author pangu
*/
@Slf4j
public class SensitiveHandler extends JsonSerializer implements ContextualSerializer {
diff --git a/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/config/SmsAutoConfiguration.java b/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/config/SmsAutoConfiguration.java
index 3a39cc2..6408727 100644
--- a/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/config/SmsAutoConfiguration.java
+++ b/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/config/SmsAutoConfiguration.java
@@ -11,7 +11,7 @@ import org.springframework.context.annotation.Primary;
/**
* 短信配置类
*
- * @author Feng
+ * @author pangu
*/
@AutoConfiguration(after = {RedisAutoConfiguration.class})
public class SmsAutoConfiguration {
diff --git a/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/core/dao/PlusSmsDao.java b/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/core/dao/PlusSmsDao.java
index a757655..7b1b8de 100644
--- a/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/core/dao/PlusSmsDao.java
+++ b/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/core/dao/PlusSmsDao.java
@@ -10,7 +10,7 @@ import java.time.Duration;
* SmsDao缓存配置 (使用框架自带RedisUtils实现 协议统一)
* 主要用于短信重试和拦截的缓存
*
- * @author Feng
+ * @author pangu
*/
public class PlusSmsDao implements SmsDao {
@@ -54,7 +54,7 @@ public class PlusSmsDao implements SmsDao {
*
* @param key 缓存键
* @return 被删除的value
- * @author :Wind
+ * @author pangu
*/
@Override
public Object remove(String key) {
diff --git a/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/handler/SmsExceptionHandler.java b/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/handler/SmsExceptionHandler.java
index 2c619a3..e5f16ac 100644
--- a/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/handler/SmsExceptionHandler.java
+++ b/backend/pangu-common/pangu-common-sms/src/main/java/org/dromara/common/sms/handler/SmsExceptionHandler.java
@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* SMS异常处理器
*
- * @author AprilWind
+ * @author pangu
*/
@Slf4j
@RestControllerAdvice
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/me/zhyd/oauth/request/AbstractAuthWeChatEnterpriseRequest.java b/backend/pangu-common/pangu-common-social/src/main/java/me/zhyd/oauth/request/AbstractAuthWeChatEnterpriseRequest.java
index f2a1f7b..8ce38dc 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/me/zhyd/oauth/request/AbstractAuthWeChatEnterpriseRequest.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/me/zhyd/oauth/request/AbstractAuthWeChatEnterpriseRequest.java
@@ -19,7 +19,7 @@ import me.zhyd.oauth.utils.UrlBuilder;
* 企业微信登录父类
*
*
- * @author liguanhua (347826496(a)qq.com)
+ * @author pangu
* @since 1.15.9
*/
public abstract class AbstractAuthWeChatEnterpriseRequest extends AuthDefaultRequest {
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/me/zhyd/oauth/request/AuthDingTalkV2Request.java b/backend/pangu-common/pangu-common-social/src/main/java/me/zhyd/oauth/request/AuthDingTalkV2Request.java
index 86532d4..7a991f8 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/me/zhyd/oauth/request/AuthDingTalkV2Request.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/me/zhyd/oauth/request/AuthDingTalkV2Request.java
@@ -21,7 +21,7 @@ import java.util.Map;
/**
* 新版钉钉二维码登录
*
- * @author yadong.zhang (yadong.zhang0415(a)gmail.com)
+ * @author pangu
* @since 1.16.7
*/
public class AuthDingTalkV2Request extends AuthDefaultRequest {
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/SocialAutoConfiguration.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/SocialAutoConfiguration.java
index 19b39d8..b9e8927 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/SocialAutoConfiguration.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/SocialAutoConfiguration.java
@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Bean;
/**
* Social 配置属性
- * @author thiszhc
+ * @author pangu
*/
@AutoConfiguration
@EnableConfigurationProperties(SocialProperties.class)
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java
index 667be4d..545757e 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/properties/SocialLoginConfigProperties.java
@@ -7,7 +7,7 @@ import java.util.List;
/**
* 社交登录配置
*
- * @author thiszhc
+ * @author pangu
*/
@Data
public class SocialLoginConfigProperties {
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java
index 1487a6a..fdd3a5d 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/config/properties/SocialProperties.java
@@ -9,7 +9,7 @@ import java.util.Map;
/**
* Social 配置属性
*
- * @author thiszhc
+ * @author pangu
*/
@Data
@Component
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/gitea/AuthGiteaRequest.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/gitea/AuthGiteaRequest.java
index d3fc751..0903184 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/gitea/AuthGiteaRequest.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/gitea/AuthGiteaRequest.java
@@ -15,7 +15,7 @@ import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.json.utils.JsonUtils;
/**
- * @author lcry
+ * @author pangu
*/
@Slf4j
public class AuthGiteaRequest extends AuthDefaultRequest {
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/gitea/AuthGiteaSource.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/gitea/AuthGiteaSource.java
index 201b223..dae0e7f 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/gitea/AuthGiteaSource.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/gitea/AuthGiteaSource.java
@@ -6,7 +6,7 @@ import me.zhyd.oauth.request.AuthDefaultRequest;
/**
* gitea Oauth2 默认接口说明
*
- * @author lcry
+ * @author pangu
*/
public enum AuthGiteaSource implements AuthSource {
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/maxkey/AuthMaxKeyRequest.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/maxkey/AuthMaxKeyRequest.java
index 97774ac..3eb7162 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/maxkey/AuthMaxKeyRequest.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/maxkey/AuthMaxKeyRequest.java
@@ -12,7 +12,7 @@ import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.json.utils.JsonUtils;
/**
- * @author 长春叭哥 2023年03月26日
+ * @author pangu
*/
public class AuthMaxKeyRequest extends AuthDefaultRequest {
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/maxkey/AuthMaxKeySource.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/maxkey/AuthMaxKeySource.java
index 1ff57f7..0aa26f6 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/maxkey/AuthMaxKeySource.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/maxkey/AuthMaxKeySource.java
@@ -6,7 +6,7 @@ import me.zhyd.oauth.request.AuthDefaultRequest;
/**
* Oauth2 默认接口说明
*
- * @author 长春叭哥 2023年03月26日
+ * @author pangu
*
*/
public enum AuthMaxKeySource implements AuthSource {
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/topiam/AuthTopIamRequest.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/topiam/AuthTopIamRequest.java
index 080c97a..fa4fc39 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/topiam/AuthTopIamRequest.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/topiam/AuthTopIamRequest.java
@@ -24,7 +24,7 @@ import static org.dromara.common.social.topiam.AuthTopIamSource.TOPIAM;
/**
* TopIAM 认证请求
*
- * @author xlsea
+ * @author pangu
* @since 2024-01-06
*/
@Slf4j
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/topiam/AuthTopIamSource.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/topiam/AuthTopIamSource.java
index 852d7f5..1b3aef7 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/topiam/AuthTopIamSource.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/topiam/AuthTopIamSource.java
@@ -6,7 +6,7 @@ import me.zhyd.oauth.request.AuthDefaultRequest;
/**
* Oauth2 默认接口说明
*
- * @author xlsea
+ * @author pangu
* @since 2024-01-06
*/
public enum AuthTopIamSource implements AuthSource {
diff --git a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java
index df21aa8..7f2fce7 100644
--- a/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java
+++ b/backend/pangu-common/pangu-common-social/src/main/java/org/dromara/common/social/utils/SocialUtils.java
@@ -17,7 +17,7 @@ import org.dromara.common.social.topiam.AuthTopIamRequest;
/**
* 认证授权工具类
*
- * @author thiszhc
+ * @author pangu
*/
public class SocialUtils {
diff --git a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/config/SseAutoConfiguration.java b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/config/SseAutoConfiguration.java
index 0cf8054..c72f23a 100644
--- a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/config/SseAutoConfiguration.java
+++ b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/config/SseAutoConfiguration.java
@@ -11,7 +11,7 @@ import org.springframework.context.annotation.Bean;
/**
* SSE 自动装配
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration
@ConditionalOnProperty(value = "sse.enabled", havingValue = "true")
diff --git a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/config/SseProperties.java b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/config/SseProperties.java
index ce4e173..73322a6 100644
--- a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/config/SseProperties.java
+++ b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/config/SseProperties.java
@@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* SSE 配置项
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@ConfigurationProperties("sse")
diff --git a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/controller/SseController.java b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/controller/SseController.java
index f77b5b5..95bb3c9 100644
--- a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/controller/SseController.java
+++ b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/controller/SseController.java
@@ -16,7 +16,7 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
/**
* SSE 控制器
*
- * @author Lion Li
+ * @author pangu
*/
@RestController
@ConditionalOnProperty(value = "sse.enabled", havingValue = "true")
diff --git a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java
index b80e561..e641abb 100644
--- a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java
+++ b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/core/SseEmitterManager.java
@@ -21,7 +21,7 @@ import java.util.function.Consumer;
/**
* 管理 Server-Sent Events (SSE) 连接
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class SseEmitterManager {
diff --git a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/dto/SseMessageDto.java b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/dto/SseMessageDto.java
index a2e1210..c2d03a1 100644
--- a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/dto/SseMessageDto.java
+++ b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/dto/SseMessageDto.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 消息的dto
*
- * @author zendwang
+ * @author pangu
*/
@Data
public class SseMessageDto implements Serializable {
diff --git a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/listener/SseTopicListener.java b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/listener/SseTopicListener.java
index 7a4dff1..006c175 100644
--- a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/listener/SseTopicListener.java
+++ b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/listener/SseTopicListener.java
@@ -11,7 +11,7 @@ import org.springframework.core.Ordered;
/**
* SSE 主题订阅监听器
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class SseTopicListener implements ApplicationRunner, Ordered {
diff --git a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/utils/SseMessageUtils.java b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/utils/SseMessageUtils.java
index ce3aad4..4bde476 100644
--- a/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/utils/SseMessageUtils.java
+++ b/backend/pangu-common/pangu-common-sse/src/main/java/org/dromara/common/sse/utils/SseMessageUtils.java
@@ -10,7 +10,7 @@ import org.dromara.common.sse.dto.SseMessageDto;
/**
* SSE工具类
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/config/TenantConfig.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/config/TenantConfig.java
index 3767fa2..e953f30 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/config/TenantConfig.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/config/TenantConfig.java
@@ -25,7 +25,7 @@ import org.springframework.context.annotation.Primary;
/**
* 租户配置类
*
- * @author Lion Li
+ * @author pangu
*/
@EnableConfigurationProperties(TenantProperties.class)
@AutoConfiguration(after = {RedisConfig.class})
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/core/TenantEntity.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/core/TenantEntity.java
index 8ad0d2c..b794667 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/core/TenantEntity.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/core/TenantEntity.java
@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
/**
* 租户基类
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/core/TenantSaTokenDao.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/core/TenantSaTokenDao.java
index 9aaa753..c4ed004 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/core/TenantSaTokenDao.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/core/TenantSaTokenDao.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* SaToken 认证数据持久层 适配多租户
*
- * @author Lion Li
+ * @author pangu
*/
public class TenantSaTokenDao extends PlusSaTokenDao {
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/exception/TenantException.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/exception/TenantException.java
index ee2bc97..5ac3f73 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/exception/TenantException.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/exception/TenantException.java
@@ -7,7 +7,7 @@ import java.io.Serial;
/**
* 租户异常类
*
- * @author Lion Li
+ * @author pangu
*/
public class TenantException extends BaseException {
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/handle/PlusTenantLineHandler.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/handle/PlusTenantLineHandler.java
index f6d224b..8f224fd 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/handle/PlusTenantLineHandler.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/handle/PlusTenantLineHandler.java
@@ -16,7 +16,7 @@ import java.util.List;
/**
* 自定义租户处理器
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@AllArgsConstructor
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java
index dcdef6e..a6354be 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java
@@ -10,7 +10,7 @@ import org.dromara.common.tenant.helper.TenantHelper;
/**
* 多租户redis缓存key前缀处理
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class TenantKeyPrefixHandler extends KeyPrefixHandler {
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java
index 98f03f3..b93b140 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java
@@ -23,7 +23,7 @@ import java.util.function.Supplier;
/**
* 租户助手
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/manager/TenantSpringCacheManager.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/manager/TenantSpringCacheManager.java
index 346e36f..153d3dc 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/manager/TenantSpringCacheManager.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/manager/TenantSpringCacheManager.java
@@ -11,7 +11,7 @@ import org.springframework.cache.Cache;
/**
* 重写 cacheName 处理方法 支持多租户
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class TenantSpringCacheManager extends PlusSpringCacheManager {
diff --git a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/properties/TenantProperties.java b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/properties/TenantProperties.java
index 1675ccf..83edce7 100644
--- a/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/properties/TenantProperties.java
+++ b/backend/pangu-common/pangu-common-tenant/src/main/java/org/dromara/common/tenant/properties/TenantProperties.java
@@ -8,7 +8,7 @@ import java.util.List;
/**
* 租户 配置属性
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@ConfigurationProperties(prefix = "tenant")
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java
index c24aa6f..21a2c2b 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java
@@ -9,7 +9,7 @@ import java.lang.annotation.*;
/**
* 通用翻译注解
*
- * @author Lion Li
+ * @author pangu
*/
@Inherited
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/annotation/TranslationType.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/annotation/TranslationType.java
index 43bfab0..d20ae86 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/annotation/TranslationType.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/annotation/TranslationType.java
@@ -7,7 +7,7 @@ import java.lang.annotation.*;
/**
* 翻译类型注解 (标注到{@link TranslationInterface} 的实现类)
*
- * @author Lion Li
+ * @author pangu
*/
@Inherited
@Retention(RetentionPolicy.RUNTIME)
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/config/TranslationConfig.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/config/TranslationConfig.java
index 5dcd0c1..908c67b 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/config/TranslationConfig.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/config/TranslationConfig.java
@@ -17,7 +17,7 @@ import java.util.Map;
/**
* 翻译模块配置类
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@AutoConfiguration
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java
index c084ea1..556380d 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/constant/TransConstant.java
@@ -3,7 +3,7 @@ package org.dromara.common.translation.constant;
/**
* 翻译常量
*
- * @author Lion Li
+ * @author pangu
*/
public interface TransConstant {
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/TranslationInterface.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/TranslationInterface.java
index e4d6dd3..cb94c8f 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/TranslationInterface.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/TranslationInterface.java
@@ -5,7 +5,7 @@ import org.dromara.common.translation.annotation.TranslationType;
/**
* 翻译接口 (实现类需标注 {@link TranslationType} 注解标明翻译类型)
*
- * @author Lion Li
+ * @author pangu
*/
public interface TranslationInterface {
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/handler/TranslationBeanSerializerModifier.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/handler/TranslationBeanSerializerModifier.java
index 727672f..99afcfe 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/handler/TranslationBeanSerializerModifier.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/handler/TranslationBeanSerializerModifier.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* Bean 序列化修改器 解决 Null 被单独处理问题
*
- * @author Lion Li
+ * @author pangu
*/
public class TranslationBeanSerializerModifier extends BeanSerializerModifier {
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/handler/TranslationHandler.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/handler/TranslationHandler.java
index e8c03ac..c441c5a 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/handler/TranslationHandler.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/handler/TranslationHandler.java
@@ -21,7 +21,7 @@ import java.util.concurrent.ConcurrentHashMap;
/**
* 翻译处理器
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class TranslationHandler extends JsonSerializer implements ContextualSerializer {
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/DeptNameTranslationImpl.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/DeptNameTranslationImpl.java
index c391437..6307776 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/DeptNameTranslationImpl.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/DeptNameTranslationImpl.java
@@ -9,7 +9,7 @@ import lombok.AllArgsConstructor;
/**
* 部门翻译实现
*
- * @author Lion Li
+ * @author pangu
*/
@AllArgsConstructor
@TranslationType(type = TransConstant.DEPT_ID_TO_NAME)
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java
index 859a93e..92edec8 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java
@@ -10,7 +10,7 @@ import lombok.AllArgsConstructor;
/**
* 字典翻译实现
*
- * @author Lion Li
+ * @author pangu
*/
@AllArgsConstructor
@TranslationType(type = TransConstant.DICT_TYPE_TO_LABEL)
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/NicknameTranslationImpl.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/NicknameTranslationImpl.java
index d1720f7..3ef382e 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/NicknameTranslationImpl.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/NicknameTranslationImpl.java
@@ -9,7 +9,7 @@ import org.dromara.common.translation.core.TranslationInterface;
/**
* 用户名称翻译实现
*
- * @author may
+ * @author pangu
*/
@AllArgsConstructor
@TranslationType(type = TransConstant.USER_ID_TO_NICKNAME)
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/OssUrlTranslationImpl.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/OssUrlTranslationImpl.java
index fc6f6df..d0f38b3 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/OssUrlTranslationImpl.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/OssUrlTranslationImpl.java
@@ -9,7 +9,7 @@ import lombok.AllArgsConstructor;
/**
* OSS翻译实现
*
- * @author Lion Li
+ * @author pangu
*/
@AllArgsConstructor
@TranslationType(type = TransConstant.OSS_ID_TO_URL)
diff --git a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/UserNameTranslationImpl.java b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/UserNameTranslationImpl.java
index 5fc7773..720029c 100644
--- a/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/UserNameTranslationImpl.java
+++ b/backend/pangu-common/pangu-common-translation/src/main/java/org/dromara/common/translation/core/impl/UserNameTranslationImpl.java
@@ -10,7 +10,7 @@ import lombok.AllArgsConstructor;
/**
* 用户名翻译实现
*
- * @author Lion Li
+ * @author pangu
*/
@AllArgsConstructor
@TranslationType(type = TransConstant.USER_ID_TO_NAME)
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/CaptchaConfig.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/CaptchaConfig.java
index 7140db9..4efa8c1 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/CaptchaConfig.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/CaptchaConfig.java
@@ -7,7 +7,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
/**
* 验证码配置
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration
@EnableConfigurationProperties(CaptchaProperties.class)
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/FilterConfig.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/FilterConfig.java
index 155a8d0..04ba4d9 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/FilterConfig.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/FilterConfig.java
@@ -14,7 +14,7 @@ import org.springframework.context.annotation.Bean;
/**
* Filter配置
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration
@EnableConfigurationProperties(XssProperties.class)
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/I18nConfig.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/I18nConfig.java
index 4e212cb..ca2cb82 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/I18nConfig.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/I18nConfig.java
@@ -9,7 +9,7 @@ import org.springframework.web.servlet.LocaleResolver;
/**
* 国际化配置
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration(before = WebMvcAutoConfiguration.class)
public class I18nConfig {
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/ResourcesConfig.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/ResourcesConfig.java
index 81ec905..cf077a7 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/ResourcesConfig.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/ResourcesConfig.java
@@ -20,7 +20,7 @@ import java.util.Date;
/**
* 通用配置
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration
public class ResourcesConfig implements WebMvcConfigurer {
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java
index 84f88ff..cbfafae 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java
@@ -13,7 +13,7 @@ import org.springframework.core.task.VirtualThreadTaskExecutor;
/**
* Undertow 自定义配置
*
- * @author Lion Li
+ * @author pangu
*/
@AutoConfiguration
public class UndertowConfig implements WebServerFactoryCustomizer {
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/properties/CaptchaProperties.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/properties/CaptchaProperties.java
index 6dcfe64..9dc0534 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/properties/CaptchaProperties.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/properties/CaptchaProperties.java
@@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* 验证码 配置属性
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@ConfigurationProperties(prefix = "captcha")
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/properties/XssProperties.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/properties/XssProperties.java
index bd3e59b..978e6da 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/properties/XssProperties.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/config/properties/XssProperties.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* xss过滤 配置属性
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@ConfigurationProperties(prefix = "xss")
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/BaseController.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/BaseController.java
index fd01dda..3b27e2e 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/BaseController.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/BaseController.java
@@ -6,7 +6,7 @@ import org.dromara.common.core.utils.StringUtils;
/**
* web层通用数据处理
*
- * @author Lion Li
+ * @author pangu
*/
public class BaseController {
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/I18nLocaleResolver.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/I18nLocaleResolver.java
index 98ddd06..9da65ce 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/I18nLocaleResolver.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/I18nLocaleResolver.java
@@ -9,7 +9,7 @@ import java.util.Locale;
/**
* 获取请求头国际化信息
*
- * @author Lion Li
+ * @author pangu
*/
public class I18nLocaleResolver implements LocaleResolver {
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/WaveAndCircleCaptcha.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/WaveAndCircleCaptcha.java
index 8b37be4..c896fe7 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/WaveAndCircleCaptcha.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/core/WaveAndCircleCaptcha.java
@@ -16,7 +16,7 @@ import java.util.concurrent.ThreadLocalRandom;
/**
* 带干扰线、波浪、圆的验证码
*
- * @author Lion Li
+ * @author pangu
*/
public class WaveAndCircleCaptcha extends AbstractCaptcha {
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/RepeatableFilter.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/RepeatableFilter.java
index e0a3bf2..e0cdf6b 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/RepeatableFilter.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/RepeatableFilter.java
@@ -10,7 +10,7 @@ import java.io.IOException;
/**
* Repeatable 过滤器
*
- * @author ruoyi
+ * @author pangu
*/
public class RepeatableFilter implements Filter {
@Override
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/RepeatedlyRequestWrapper.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/RepeatedlyRequestWrapper.java
index 8933225..5fa6e87 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/RepeatedlyRequestWrapper.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/RepeatedlyRequestWrapper.java
@@ -17,7 +17,7 @@ import java.io.InputStreamReader;
/**
* 构建可重复读取inputStream的request
*
- * @author ruoyi
+ * @author pangu
*/
public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper {
private final byte[] body;
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/XssFilter.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/XssFilter.java
index 95bcdd9..9bec895 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/XssFilter.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/XssFilter.java
@@ -15,7 +15,7 @@ import java.util.List;
/**
* 防止XSS攻击的过滤器
*
- * @author ruoyi
+ * @author pangu
*/
public class XssFilter implements Filter {
/**
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java
index 914e549..5cf73a0 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java
@@ -22,7 +22,7 @@ import java.util.Map;
/**
* XSS过滤处理
*
- * @author ruoyi
+ * @author pangu
*/
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
/**
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/handler/GlobalExceptionHandler.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/handler/GlobalExceptionHandler.java
index 7a5d82c..a939802 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/handler/GlobalExceptionHandler.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/handler/GlobalExceptionHandler.java
@@ -35,7 +35,7 @@ import java.io.IOException;
/**
* 全局异常处理器
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@RestControllerAdvice
diff --git a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/interceptor/PlusWebInvokeTimeInterceptor.java b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/interceptor/PlusWebInvokeTimeInterceptor.java
index b56cec1..0bad0f5 100644
--- a/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/interceptor/PlusWebInvokeTimeInterceptor.java
+++ b/backend/pangu-common/pangu-common-web/src/main/java/org/dromara/common/web/interceptor/PlusWebInvokeTimeInterceptor.java
@@ -28,7 +28,7 @@ import java.util.Set;
/**
* web的调用时间统计拦截器
*
- * @author Lion Li
+ * @author pangu
* @since 3.3.0
*/
@Slf4j
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/config/WebSocketConfig.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/config/WebSocketConfig.java
index ef5cfc9..af7fbf0 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/config/WebSocketConfig.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/config/WebSocketConfig.java
@@ -17,7 +17,7 @@ import org.springframework.web.socket.server.HandshakeInterceptor;
/**
* WebSocket 配置
*
- * @author zendwang
+ * @author pangu
*/
@AutoConfiguration
@ConditionalOnProperty(value = "websocket.enabled", havingValue = "true")
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/config/properties/WebSocketProperties.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/config/properties/WebSocketProperties.java
index d629fe5..7e2ff30 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/config/properties/WebSocketProperties.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/config/properties/WebSocketProperties.java
@@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* WebSocket 配置项
*
- * @author zendwang
+ * @author pangu
*/
@ConfigurationProperties("websocket")
@Data
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/constant/WebSocketConstants.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/constant/WebSocketConstants.java
index e243279..c02ed3f 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/constant/WebSocketConstants.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/constant/WebSocketConstants.java
@@ -3,7 +3,7 @@ package org.dromara.common.websocket.constant;
/**
* websocket的常量配置
*
- * @author zendwang
+ * @author pangu
*/
public interface WebSocketConstants {
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/dto/WebSocketMessageDto.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/dto/WebSocketMessageDto.java
index e2d4456..a68943f 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/dto/WebSocketMessageDto.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/dto/WebSocketMessageDto.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 消息的dto
*
- * @author zendwang
+ * @author pangu
*/
@Data
public class WebSocketMessageDto implements Serializable {
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java
index 3b6e076..75c1cfb 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/handler/PlusWebSocketHandler.java
@@ -18,7 +18,7 @@ import static org.dromara.common.websocket.constant.WebSocketConstants.LOGIN_USE
/**
* WebSocketHandler 实现类
*
- * @author zendwang
+ * @author pangu
*/
@Slf4j
public class PlusWebSocketHandler extends AbstractWebSocketHandler {
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/holder/WebSocketSessionHolder.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/holder/WebSocketSessionHolder.java
index 9c2372b..d436dc5 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/holder/WebSocketSessionHolder.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/holder/WebSocketSessionHolder.java
@@ -12,7 +12,7 @@ import java.util.concurrent.ConcurrentHashMap;
/**
* WebSocketSession 用于保存当前所有在线的会话信息
*
- * @author zendwang
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class WebSocketSessionHolder {
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java
index c70e377..549969e 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java
@@ -19,7 +19,7 @@ import static org.dromara.common.websocket.constant.WebSocketConstants.LOGIN_USE
/**
* WebSocket握手请求的拦截器
*
- * @author zendwang
+ * @author pangu
*/
@Slf4j
public class PlusWebSocketInterceptor implements HandshakeInterceptor {
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/listener/WebSocketTopicListener.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/listener/WebSocketTopicListener.java
index 0ad39af..f496362 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/listener/WebSocketTopicListener.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/listener/WebSocketTopicListener.java
@@ -11,7 +11,7 @@ import org.springframework.core.Ordered;
/**
* WebSocket 主题订阅监听器
*
- * @author zendwang
+ * @author pangu
*/
@Slf4j
public class WebSocketTopicListener implements ApplicationRunner, Ordered {
diff --git a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java
index afe76e0..3bb49f6 100644
--- a/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java
+++ b/backend/pangu-common/pangu-common-websocket/src/main/java/org/dromara/common/websocket/utils/WebSocketUtils.java
@@ -22,7 +22,7 @@ import static org.dromara.common.websocket.constant.WebSocketConstants.WEB_SOCKE
/**
* 工具类
*
- * @author zendwang
+ * @author pangu
*/
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/MonitorAdminApplication.java b/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/MonitorAdminApplication.java
index a733561..b3b7faa 100644
--- a/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/MonitorAdminApplication.java
+++ b/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/MonitorAdminApplication.java
@@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Admin 监控启动程序
*
- * @author Lion Li
+ * @author pangu
*/
@EnableAdminServer
@SpringBootApplication
diff --git a/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/config/SecurityConfig.java b/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/config/SecurityConfig.java
index 41372f2..563173e 100644
--- a/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/config/SecurityConfig.java
+++ b/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/config/SecurityConfig.java
@@ -15,7 +15,7 @@ import org.springframework.security.web.servlet.util.matcher.PathPatternRequestM
/**
* admin 监控 安全配置
*
- * @author Lion Li
+ * @author pangu
*/
@EnableWebSecurity
@Configuration
diff --git a/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java b/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java
index 838eefc..9e6fd56 100644
--- a/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java
+++ b/backend/pangu-extend/pangu-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java
@@ -14,7 +14,7 @@ import static de.codecentric.boot.admin.server.domain.values.StatusInfo.*;
/**
* 自定义事件通知处理
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@Component
diff --git a/backend/pangu-extend/pangu-snailjob-server/src/main/java/com/aizuda/snailjob/server/starter/filter/SecurityConfig.java b/backend/pangu-extend/pangu-snailjob-server/src/main/java/com/aizuda/snailjob/server/starter/filter/SecurityConfig.java
index 5196c77..c08c179 100644
--- a/backend/pangu-extend/pangu-snailjob-server/src/main/java/com/aizuda/snailjob/server/starter/filter/SecurityConfig.java
+++ b/backend/pangu-extend/pangu-snailjob-server/src/main/java/com/aizuda/snailjob/server/starter/filter/SecurityConfig.java
@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
/**
* 权限安全配置
*
- * @author Lion Li
+ * @author pangu
*/
@Configuration
public class SecurityConfig {
diff --git a/backend/pangu-extend/pangu-snailjob-server/src/main/java/org/dromara/snailjob/SnailJobServerApplication.java b/backend/pangu-extend/pangu-snailjob-server/src/main/java/org/dromara/snailjob/SnailJobServerApplication.java
index dfab068..b00ecd3 100644
--- a/backend/pangu-extend/pangu-snailjob-server/src/main/java/org/dromara/snailjob/SnailJobServerApplication.java
+++ b/backend/pangu-extend/pangu-snailjob-server/src/main/java/org/dromara/snailjob/SnailJobServerApplication.java
@@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* SnailJob Server 启动程序
*
- * @author opensnail
+ * @author pangu
* @date 2024-05-17
*/
@SpringBootApplication
diff --git a/backend/pangu-modules/pangu-business/sql/README_导入说明.md b/backend/pangu-modules/pangu-business/sql/README_导入说明.md
new file mode 100644
index 0000000..d1418cb
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/sql/README_导入说明.md
@@ -0,0 +1,216 @@
+# 应用管理模块 - 数据库导入说明
+
+## 📋 SQL 文件清单
+
+| 文件名 | 说明 | 执行顺序 |
+|--------|------|---------|
+| `pangu_tables.sql` | 表结构(pg_application, pg_api_dict, pg_app_api) | ① 必须 |
+| `pangu_menu.sql` | 菜单数据(应用管理菜单及权限) | ② 必须 |
+| `open_api_dict_data.sql` | API 字典初始数据(学生列表接口) | ③ 必须 |
+
+---
+
+## 🚀 方式一:自动检查并导入(推荐)
+
+使用提供的自动化脚本,会自动检查表和数据是否存在,缺失则自动导入。
+
+### 步骤:
+
+```bash
+cd /Users/felix/pgWorkSpace/pangu-user-platform/backend/pangu-modules/pangu-business/sql
+
+# 基本用法(使用默认配置)
+./check_and_import.sh -p your_password
+
+# 指定完整配置
+./check_and_import.sh -h 8.148.25.55 -P 3306 -d pguser-db -u root -p your_password
+```
+
+### 参数说明:
+
+| 参数 | 说明 | 默认值 |
+|------|------|--------|
+| -h, --host | 数据库主机 | 8.148.25.55 |
+| -P, --port | 数据库端口 | 3306 |
+| -d, --database | 数据库名称 | pguser-db |
+| -u, --user | 数据库用户 | root |
+| -p, --password | 数据库密码 | 无(必填) |
+
+### 脚本功能:
+
+✅ 自动检查数据库连接
+✅ 检查表是否存在
+✅ 检查菜单是否存在
+✅ 检查 API 字典数据是否存在
+✅ 缺失则自动导入
+✅ 彩色输出,清晰直观
+
+---
+
+## 🔧 方式二:手动导入
+
+如果需要手动导入,请按以下顺序执行:
+
+### 1. 导入表结构
+
+```bash
+mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db < pangu_tables.sql
+```
+
+**表结构说明**:
+- `pg_application` - 第三方应用表(存储应用信息、AppCode、AppSecret)
+- `pg_api_dict` - API 接口字典表(可授权的接口列表)
+- `pg_app_api` - 应用 API 授权表(多对多关系)
+
+### 2. 导入菜单数据
+
+```bash
+mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db < pangu_menu.sql
+```
+
+**菜单说明**:
+- menu_id: 2300 - 应用管理(一级菜单)
+- menu_id: 2301-2306 - 应用管理相关权限(查询、新增、修改、删除、重置密钥、接口授权)
+
+### 3. 导入 API 字典数据
+
+```bash
+mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db < open_api_dict_data.sql
+```
+
+**数据说明**:
+- api_code: OPEN_STUDENT_LIST - 学生列表查询接口
+
+---
+
+## ✅ 验证导入
+
+### 1. 检查表结构
+
+```sql
+-- 查看表是否存在
+SHOW TABLES LIKE 'pg_%';
+
+-- 查看表结构
+DESC pg_application;
+DESC pg_api_dict;
+DESC pg_app_api;
+
+-- 查看表数据量
+SELECT COUNT(*) FROM pg_application;
+SELECT COUNT(*) FROM pg_api_dict;
+SELECT COUNT(*) FROM pg_app_api;
+```
+
+### 2. 检查菜单数据
+
+```sql
+-- 查看应用管理菜单
+SELECT menu_id, menu_name, perms, icon
+FROM sys_menu
+WHERE menu_id >= 2300 AND menu_id < 2400
+ORDER BY menu_id;
+
+-- 预期结果:
+-- 2300 应用管理
+-- 2301 应用查询
+-- 2302 应用新增
+-- 2303 应用修改
+-- 2304 应用删除
+-- 2305 重置密钥
+-- 2306 接口授权
+```
+
+### 3. 检查 API 字典数据
+
+```sql
+-- 查看 API 字典
+SELECT * FROM pg_api_dict;
+
+-- 预期结果:
+-- api_code: OPEN_STUDENT_LIST
+-- api_name: 学生列表
+-- api_path: /open/api/student/list
+```
+
+---
+
+## 🔍 常见问题
+
+### Q1: 导入时报错 "Table already exists"
+
+**原因**:表已存在
+**解决**:这是正常的,说明表已经导入过了,可以忽略
+
+### Q2: 导入菜单时报错 "Duplicate entry"
+
+**原因**:菜单数据已存在
+**解决**:可以忽略,或者先删除旧菜单再导入
+
+```sql
+-- 删除旧菜单(谨慎操作)
+DELETE FROM sys_menu WHERE menu_id >= 2300 AND menu_id < 2400;
+```
+
+### Q3: 如何重新导入所有数据?
+
+```bash
+# 1. 删除表(会丢失所有应用数据)
+mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db -e "
+DROP TABLE IF EXISTS pg_app_api;
+DROP TABLE IF EXISTS pg_application;
+DROP TABLE IF EXISTS pg_api_dict;
+"
+
+# 2. 删除菜单
+mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db -e "
+DELETE FROM sys_menu WHERE menu_id >= 2300 AND menu_id < 2400;
+"
+
+# 3. 重新导入
+./check_and_import.sh -p your_password
+```
+
+---
+
+## 📝 导入后的操作
+
+### 1. 重启后端服务
+
+```bash
+cd /Users/felix/pgWorkSpace/pangu-user-platform/backend
+./build.sh -r
+```
+
+### 2. 刷新前端页面
+
+打开浏览器访问:http://localhost:80
+
+### 3. 检查菜单是否显示
+
+登录后台 → 左侧菜单 → 应该能看到"应用管理"菜单
+
+### 4. 创建测试应用
+
+进入【应用管理】→ 点击【新增】→ 填写应用信息 → 保存
+
+---
+
+## 🔗 相关文档
+
+- [应用管理技术方案](/docs/应用管理-需求与技术设计方案.md)
+- [开放接口实现说明](/docs/开放接口实现说明.md)
+- [PHP 客户端使用指南](/scripts/test/README.md)
+
+---
+
+## 📞 技术支持
+
+如导入过程中遇到问题,请检查:
+1. 数据库连接配置是否正确
+2. 数据库用户是否有足够权限
+3. SQL 文件是否完整
+4. 后端日志:`/tmp/pangu-admin.log`
+
+**pangu**
+2026-02-04
diff --git a/backend/pangu-modules/pangu-business/sql/check_and_import.sh b/backend/pangu-modules/pangu-business/sql/check_and_import.sh
new file mode 100755
index 0000000..57f7841
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/sql/check_and_import.sh
@@ -0,0 +1,245 @@
+#!/bin/bash
+# ============================================================
+# 应用管理模块 - 数据库检查与导入脚本
+# 功能:检查表是否存在,如不存在则导入
+# 作者:pangu
+# 日期:2026-02-04
+# ============================================================
+
+set -e
+
+# 颜色定义
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+BLUE='\033[0;34m'
+NC='\033[0m' # No Color
+
+# 数据库配置(从 application-dev.yml 读取)
+DB_HOST="${DB_HOST:-8.148.25.55}"
+DB_PORT="${DB_PORT:-3306}"
+DB_NAME="${DB_NAME:-pguser-db}"
+DB_USER="${DB_USER:-root}"
+DB_PASS="${DB_PASS}"
+
+# SQL 文件路径
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+TABLES_SQL="${SCRIPT_DIR}/pangu_tables.sql"
+MENU_SQL="${SCRIPT_DIR}/pangu_menu.sql"
+API_DICT_SQL="${SCRIPT_DIR}/open_api_dict_data.sql"
+
+# 打印函数
+print_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
+print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
+print_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
+print_error() { echo -e "${RED}[ERROR]${NC} $1"; }
+
+# 显示帮助
+show_help() {
+ echo "用法: ./check_and_import.sh [选项]"
+ echo ""
+ echo "选项:"
+ echo " -h, --host 数据库主机 (默认: 8.148.25.55)"
+ echo " -P, --port 数据库端口 (默认: 3306)"
+ echo " -d, --database 数据库名称 (默认: pguser-db)"
+ echo " -u, --user 数据库用户 (默认: root)"
+ echo " -p, --password 数据库密码 (必填)"
+ echo " --help 显示帮助信息"
+ echo ""
+ echo "示例:"
+ echo " ./check_and_import.sh -p your_password"
+ echo " ./check_and_import.sh -h localhost -u root -p 123456"
+}
+
+# 检查 MySQL 客户端
+check_mysql_client() {
+ if ! command -v mysql &> /dev/null; then
+ print_error "未找到 mysql 客户端,请先安装 MySQL"
+ print_info "macOS 安装: brew install mysql-client"
+ print_info "Ubuntu 安装: sudo apt-get install mysql-client"
+ exit 1
+ fi
+}
+
+# 检查表是否存在
+check_table_exists() {
+ local table_name=$1
+ local result=$(mysql -h"${DB_HOST}" -P"${DB_PORT}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" -se "SHOW TABLES LIKE '${table_name}';" 2>/dev/null)
+ if [ -n "$result" ]; then
+ return 0 # 表存在
+ else
+ return 1 # 表不存在
+ fi
+}
+
+# 检查菜单是否存在
+check_menu_exists() {
+ local menu_id=$1
+ local result=$(mysql -h"${DB_HOST}" -P"${DB_PORT}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" -se "SELECT COUNT(*) FROM sys_menu WHERE menu_id=${menu_id};" 2>/dev/null)
+ if [ "$result" -gt 0 ]; then
+ return 0 # 菜单存在
+ else
+ return 1 # 菜单不存在
+ fi
+}
+
+# 导入 SQL 文件
+import_sql() {
+ local sql_file=$1
+ local description=$2
+
+ print_info "正在导入: ${description}"
+ if mysql -h"${DB_HOST}" -P"${DB_PORT}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" < "${sql_file}" 2>/dev/null; then
+ print_success "导入成功: ${description}"
+ return 0
+ else
+ print_error "导入失败: ${description}"
+ return 1
+ fi
+}
+
+# 主逻辑
+main() {
+ # 解析参数
+ while [[ $# -gt 0 ]]; do
+ case $1 in
+ -h|--host)
+ DB_HOST="$2"
+ shift 2
+ ;;
+ -P|--port)
+ DB_PORT="$2"
+ shift 2
+ ;;
+ -d|--database)
+ DB_NAME="$2"
+ shift 2
+ ;;
+ -u|--user)
+ DB_USER="$2"
+ shift 2
+ ;;
+ -p|--password)
+ DB_PASS="$2"
+ shift 2
+ ;;
+ --help)
+ show_help
+ exit 0
+ ;;
+ *)
+ print_error "未知选项: $1"
+ show_help
+ exit 1
+ ;;
+ esac
+ done
+
+ # 检查密码
+ if [ -z "$DB_PASS" ]; then
+ print_error "请提供数据库密码 (-p 或 --password)"
+ show_help
+ exit 1
+ fi
+
+ # 检查 MySQL 客户端
+ check_mysql_client
+
+ echo "========================================"
+ echo " 应用管理模块 - 数据库检查与导入"
+ echo "========================================"
+ echo "数据库: ${DB_HOST}:${DB_PORT}/${DB_NAME}"
+ echo "用户: ${DB_USER}"
+ echo "========================================"
+ echo ""
+
+ # 测试数据库连接
+ print_info "测试数据库连接..."
+ if ! mysql -h"${DB_HOST}" -P"${DB_PORT}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" -e "SELECT 1;" &> /dev/null; then
+ print_error "数据库连接失败,请检查配置"
+ exit 1
+ fi
+ print_success "数据库连接成功"
+ echo ""
+
+ # 1. 检查表结构
+ print_info "【步骤 1】检查表结构"
+ echo "----------------------------------------"
+
+ tables=("pg_application" "pg_api_dict" "pg_app_api")
+ tables_missing=false
+
+ for table in "${tables[@]}"; do
+ if check_table_exists "$table"; then
+ print_success "✓ 表 ${table} 已存在"
+ else
+ print_warn "✗ 表 ${table} 不存在"
+ tables_missing=true
+ fi
+ done
+
+ if [ "$tables_missing" = true ]; then
+ echo ""
+ print_warn "检测到缺失的表,开始导入表结构..."
+ import_sql "${TABLES_SQL}" "表结构 (pangu_tables.sql)"
+ fi
+
+ echo ""
+
+ # 2. 检查菜单数据
+ print_info "【步骤 2】检查菜单数据"
+ echo "----------------------------------------"
+
+ if check_menu_exists "2300"; then
+ print_success "✓ 应用管理菜单已存在 (menu_id=2300)"
+ else
+ print_warn "✗ 应用管理菜单不存在"
+ echo ""
+ print_warn "开始导入菜单数据..."
+ import_sql "${MENU_SQL}" "菜单数据 (pangu_menu.sql)"
+ fi
+
+ echo ""
+
+ # 3. 检查 API 字典数据
+ print_info "【步骤 3】检查 API 字典数据"
+ echo "----------------------------------------"
+
+ if check_table_exists "pg_api_dict"; then
+ api_count=$(mysql -h"${DB_HOST}" -P"${DB_PORT}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" -se "SELECT COUNT(*) FROM pg_api_dict WHERE api_code='OPEN_STUDENT_LIST';" 2>/dev/null)
+
+ if [ "$api_count" -gt 0 ]; then
+ print_success "✓ API 字典数据已存在 (OPEN_STUDENT_LIST)"
+ else
+ print_warn "✗ API 字典数据不存在"
+ echo ""
+ print_warn "开始导入 API 字典数据..."
+ import_sql "${API_DICT_SQL}" "API 字典数据 (open_api_dict_data.sql)"
+ fi
+ else
+ print_warn "表 pg_api_dict 不存在,跳过数据检查"
+ fi
+
+ echo ""
+ echo "========================================"
+ print_success "检查完成!"
+ echo "========================================"
+ echo ""
+
+ # 显示验证 SQL
+ print_info "【验证命令】"
+ echo "-- 查看应用管理表"
+ echo "SELECT COUNT(*) FROM pg_application;"
+ echo "SELECT COUNT(*) FROM pg_api_dict;"
+ echo "SELECT COUNT(*) FROM pg_app_api;"
+ echo ""
+ echo "-- 查看应用管理菜单"
+ echo "SELECT menu_id, menu_name, perms FROM sys_menu WHERE menu_id >= 2300 AND menu_id < 2400;"
+ echo ""
+ echo "-- 查看 API 字典"
+ echo "SELECT * FROM pg_api_dict;"
+ echo ""
+}
+
+# 执行主函数
+main "$@"
diff --git a/backend/pangu-modules/pangu-business/sql/open_api_dict_data.sql b/backend/pangu-modules/pangu-business/sql/open_api_dict_data.sql
new file mode 100644
index 0000000..472e080
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/sql/open_api_dict_data.sql
@@ -0,0 +1,6 @@
+-- 开放API 接口字典数据:学生列表(供应用管理勾选授权)
+-- 执行前请确认 pg_api_dict 表已存在;若 api_code 已存在会报唯一键冲突,可忽略
+-- pangu
+
+INSERT INTO pg_api_dict (api_id, api_code, api_name, api_path, api_method, api_desc, status, order_num)
+VALUES (1700000000000000001, 'OPEN_STUDENT_LIST', '学生列表', '/open/api/student/list', 'GET', '开放API-学生列表分页查询', '0', 10);
diff --git a/backend/pangu-modules/pangu-business/sql/快速导入.txt b/backend/pangu-modules/pangu-business/sql/快速导入.txt
new file mode 100644
index 0000000..638768a
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/sql/快速导入.txt
@@ -0,0 +1,47 @@
+========================================
+应用管理模块 - 数据库快速导入指南
+========================================
+
+📋 需要导入的 SQL 文件:
+----------------------------
+1. pangu_tables.sql - 表结构(3张表)
+2. pangu_menu.sql - 菜单数据(7条菜单)
+3. open_api_dict_data.sql - API字典(1条数据)
+
+🚀 最简单的导入方式:
+----------------------------
+cd /Users/felix/pgWorkSpace/pangu-user-platform/backend/pangu-modules/pangu-business/sql
+./check_and_import.sh -p 数据库密码
+
+✨ 脚本会自动:
+ ✓ 检查表是否存在
+ ✓ 检查菜单是否存在
+ ✓ 检查数据是否存在
+ ✓ 缺失则自动导入
+
+💡 手动导入命令:
+----------------------------
+mysql -h 8.148.25.55 -u root -p pguser-db < pangu_tables.sql
+mysql -h 8.148.25.55 -u root -p pguser-db < pangu_menu.sql
+mysql -h 8.148.25.55 -u root -p pguser-db < open_api_dict_data.sql
+
+✅ 验证导入:
+----------------------------
+mysql -h 8.148.25.55 -u root -p pguser-db -e "
+SHOW TABLES LIKE 'pg_%';
+SELECT COUNT(*) FROM pg_application;
+SELECT * FROM pg_api_dict;
+SELECT menu_name FROM sys_menu WHERE menu_id=2300;
+"
+
+🔄 导入后操作:
+----------------------------
+1. 重启后端:cd backend && ./build.sh -r
+2. 刷新前端:浏览器访问 http://localhost:80
+3. 检查菜单:登录后查看是否有"应用管理"菜单
+
+📖 详细文档:
+----------------------------
+README_导入说明.md
+
+========================================
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/controller/PgApiDictController.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/controller/PgApiDictController.java
new file mode 100644
index 0000000..d2efae1
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/controller/PgApiDictController.java
@@ -0,0 +1,101 @@
+package org.dromara.pangu.application.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.pangu.application.domain.PgApiDict;
+import org.dromara.pangu.application.service.IPgApiDictService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 接口字典管理 Controller
+ *
+ * @author pangu
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/business/apiDict")
+public class PgApiDictController extends BaseController {
+
+ private final IPgApiDictService apiDictService;
+
+ /**
+ * 分页查询接口字典列表
+ */
+ @SaCheckPermission("business:apiDict:list")
+ @GetMapping("/list")
+ public TableDataInfo list(PgApiDict apiDict, PageQuery pageQuery) {
+ return apiDictService.selectPageList(apiDict, pageQuery);
+ }
+
+ /**
+ * 查询所有启用的接口列表(用于下拉选择)
+ */
+ @SaCheckPermission("business:apiDict:list")
+ @GetMapping("/listAll")
+ public R> listAll() {
+ return R.ok(apiDictService.selectList());
+ }
+
+ /**
+ * 获取接口详情
+ */
+ @SaCheckPermission("business:apiDict:query")
+ @GetMapping("/{apiId}")
+ public R getInfo(@PathVariable Long apiId) {
+ return R.ok(apiDictService.selectById(apiId));
+ }
+
+ /**
+ * 新增接口
+ */
+ @SaCheckPermission("business:apiDict:add")
+ @Log(title = "接口字典", businessType = BusinessType.INSERT)
+ @PostMapping
+ public R add(@Validated(AddGroup.class) @RequestBody PgApiDict apiDict) {
+ if (!apiDictService.checkApiCodeUnique(apiDict)) {
+ return R.fail("新增失败,接口编码'" + apiDict.getApiCode() + "'已存在");
+ }
+ if (!apiDictService.checkApiPathUnique(apiDict)) {
+ return R.fail("新增失败,接口路径'" + apiDict.getApiPath() + "'已存在");
+ }
+ return toAjax(apiDictService.insert(apiDict));
+ }
+
+ /**
+ * 修改接口
+ */
+ @SaCheckPermission("business:apiDict:edit")
+ @Log(title = "接口字典", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public R edit(@Validated(EditGroup.class) @RequestBody PgApiDict apiDict) {
+ if (!apiDictService.checkApiCodeUnique(apiDict)) {
+ return R.fail("修改失败,接口编码'" + apiDict.getApiCode() + "'已存在");
+ }
+ if (!apiDictService.checkApiPathUnique(apiDict)) {
+ return R.fail("修改失败,接口路径'" + apiDict.getApiPath() + "'已存在");
+ }
+ return toAjax(apiDictService.update(apiDict));
+ }
+
+ /**
+ * 删除接口
+ */
+ @SaCheckPermission("business:apiDict:remove")
+ @Log(title = "接口字典", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{apiIds}")
+ public R remove(@PathVariable Long[] apiIds) {
+ return toAjax(apiDictService.deleteByIds(apiIds));
+ }
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/domain/PgApplication.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/domain/PgApplication.java
index 37c9377..fda025f 100644
--- a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/domain/PgApplication.java
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/domain/PgApplication.java
@@ -1,6 +1,7 @@
package org.dromara.pangu.application.domain;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -8,6 +9,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
+import java.util.List;
+
/**
* 第三方应用表
*
@@ -39,4 +42,8 @@ public class PgApplication extends BaseEntity {
private String delFlag;
private String remark;
+
+ /** 接口授权:API 编码列表,用于新增/编辑时保存、详情回显,不落库 */
+ @TableField(exist = false)
+ private List apiCodes;
}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/mapper/PgAppApiMapper.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/mapper/PgAppApiMapper.java
index eecba6a..0422f2c 100644
--- a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/mapper/PgAppApiMapper.java
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/mapper/PgAppApiMapper.java
@@ -1,12 +1,25 @@
package org.dromara.pangu.application.mapper;
+import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.pangu.application.domain.PgAppApi;
+import java.util.List;
+
/**
* 应用API授权 Mapper 接口
*
* @author pangu
*/
public interface PgAppApiMapper extends BaseMapperPlus {
+
+ /**
+ * 按应用编码查询该应用已授权的接口路径列表(用于开放API鉴权)
+ */
+ List selectApiPathsByAppCode(@Param("appCode") String appCode);
+
+ /**
+ * 按应用ID查询已授权的接口编码列表(用于详情回显)
+ */
+ List selectApiCodesByAppId(@Param("appId") Long appId);
}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/IPgApiDictService.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/IPgApiDictService.java
index d93b85c..a0d3be6 100644
--- a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/IPgApiDictService.java
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/IPgApiDictService.java
@@ -1,5 +1,7 @@
package org.dromara.pangu.application.service;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.pangu.application.domain.PgApiDict;
import java.util.List;
@@ -12,7 +14,42 @@ import java.util.List;
public interface IPgApiDictService {
/**
- * 查询所有启用的API接口列表
+ * 分页查询接口字典列表
+ */
+ TableDataInfo selectPageList(PgApiDict apiDict, PageQuery pageQuery);
+
+ /**
+ * 查询所有启用的API接口列表(用于下拉选择)
*/
List selectList();
+
+ /**
+ * 根据ID查询接口详情
+ */
+ PgApiDict selectById(Long apiId);
+
+ /**
+ * 新增接口
+ */
+ int insert(PgApiDict apiDict);
+
+ /**
+ * 修改接口
+ */
+ int update(PgApiDict apiDict);
+
+ /**
+ * 删除接口
+ */
+ int deleteByIds(Long[] apiIds);
+
+ /**
+ * 校验接口编码是否唯一
+ */
+ boolean checkApiCodeUnique(PgApiDict apiDict);
+
+ /**
+ * 校验接口路径是否唯一
+ */
+ boolean checkApiPathUnique(PgApiDict apiDict);
}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/IPgApplicationService.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/IPgApplicationService.java
index 0da13dc..641aecd 100644
--- a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/IPgApplicationService.java
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/IPgApplicationService.java
@@ -18,4 +18,19 @@ public interface IPgApplicationService {
int insert(PgApplication app);
int update(PgApplication app);
int deleteByIds(Long[] appIds);
+
+ /**
+ * 按应用编码查询应用(开放API鉴权用)
+ */
+ PgApplication selectByAppCode(String appCode);
+
+ /**
+ * 校验应用是否已授权访问指定接口路径
+ */
+ boolean checkApiPermission(String appCode, String apiPath);
+
+ /**
+ * 保存应用接口授权(先删后插)
+ */
+ void saveAppApis(Long appId, List apiCodes);
}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/impl/PgApiDictServiceImpl.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/impl/PgApiDictServiceImpl.java
index 57e205b..c765bca 100644
--- a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/impl/PgApiDictServiceImpl.java
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/impl/PgApiDictServiceImpl.java
@@ -1,12 +1,17 @@
package org.dromara.pangu.application.service.impl;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.pangu.application.domain.PgApiDict;
import org.dromara.pangu.application.mapper.PgApiDictMapper;
import org.dromara.pangu.application.service.IPgApiDictService;
import org.springframework.stereotype.Service;
+import java.util.Arrays;
import java.util.List;
/**
@@ -20,6 +25,13 @@ public class PgApiDictServiceImpl implements IPgApiDictService {
private final PgApiDictMapper baseMapper;
+ @Override
+ public TableDataInfo selectPageList(PgApiDict apiDict, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(apiDict);
+ Page page = baseMapper.selectPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(page);
+ }
+
@Override
public List selectList() {
LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
@@ -27,4 +39,52 @@ public class PgApiDictServiceImpl implements IPgApiDictService {
lqw.orderByAsc(PgApiDict::getOrderNum);
return baseMapper.selectList(lqw);
}
+
+ @Override
+ public PgApiDict selectById(Long apiId) {
+ return baseMapper.selectById(apiId);
+ }
+
+ @Override
+ public int insert(PgApiDict apiDict) {
+ return baseMapper.insert(apiDict);
+ }
+
+ @Override
+ public int update(PgApiDict apiDict) {
+ return baseMapper.updateById(apiDict);
+ }
+
+ @Override
+ public int deleteByIds(Long[] apiIds) {
+ return baseMapper.deleteByIds(Arrays.asList(apiIds));
+ }
+
+ @Override
+ public boolean checkApiCodeUnique(PgApiDict apiDict) {
+ Long apiId = apiDict.getApiId() == null ? -1L : apiDict.getApiId();
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.eq(PgApiDict::getApiCode, apiDict.getApiCode());
+ PgApiDict one = baseMapper.selectOne(lqw);
+ return one == null || one.getApiId().equals(apiId);
+ }
+
+ @Override
+ public boolean checkApiPathUnique(PgApiDict apiDict) {
+ Long apiId = apiDict.getApiId() == null ? -1L : apiDict.getApiId();
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.eq(PgApiDict::getApiPath, apiDict.getApiPath());
+ PgApiDict one = baseMapper.selectOne(lqw);
+ return one == null || one.getApiId().equals(apiId);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(PgApiDict apiDict) {
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.like(StrUtil.isNotBlank(apiDict.getApiCode()), PgApiDict::getApiCode, apiDict.getApiCode());
+ lqw.like(StrUtil.isNotBlank(apiDict.getApiName()), PgApiDict::getApiName, apiDict.getApiName());
+ lqw.like(StrUtil.isNotBlank(apiDict.getApiPath()), PgApiDict::getApiPath, apiDict.getApiPath());
+ lqw.eq(StrUtil.isNotBlank(apiDict.getStatus()), PgApiDict::getStatus, apiDict.getStatus());
+ lqw.orderByAsc(PgApiDict::getOrderNum);
+ return lqw;
+ }
}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/impl/PgApplicationServiceImpl.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/impl/PgApplicationServiceImpl.java
index c5e341e..7c18b97 100644
--- a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/impl/PgApplicationServiceImpl.java
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/service/impl/PgApplicationServiceImpl.java
@@ -7,12 +7,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.pangu.application.domain.PgApiDict;
+import org.dromara.pangu.application.domain.PgAppApi;
import org.dromara.pangu.application.domain.PgApplication;
+import org.dromara.pangu.application.mapper.PgApiDictMapper;
+import org.dromara.pangu.application.mapper.PgAppApiMapper;
import org.dromara.pangu.application.mapper.PgApplicationMapper;
import org.dromara.pangu.application.service.IPgApplicationService;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
/**
@@ -25,6 +32,8 @@ import java.util.List;
public class PgApplicationServiceImpl implements IPgApplicationService {
private final PgApplicationMapper baseMapper;
+ private final PgAppApiMapper appApiMapper;
+ private final PgApiDictMapper apiDictMapper;
@Override
public TableDataInfo selectPageList(PgApplication app, PageQuery pageQuery) {
@@ -40,17 +49,25 @@ public class PgApplicationServiceImpl implements IPgApplicationService {
@Override
public PgApplication selectById(Long appId) {
- return baseMapper.selectById(appId);
+ PgApplication app = baseMapper.selectById(appId);
+ if (app != null && appId != null) {
+ List apiCodes = appApiMapper.selectApiCodesByAppId(appId);
+ app.setApiCodes(apiCodes != null ? apiCodes : Collections.emptyList());
+ }
+ return app;
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public int insert(PgApplication app) {
- // 自动生成应用编码:YY + 6位序号
String appCode = generateAppCode();
app.setAppCode(appCode);
- // 自动生成32位应用密钥
app.setAppSecret(IdUtil.fastSimpleUUID());
- return baseMapper.insert(app);
+ int rows = baseMapper.insert(app);
+ if (rows > 0 && app.getAppId() != null && app.getApiCodes() != null && !app.getApiCodes().isEmpty()) {
+ saveAppApis(app.getAppId(), app.getApiCodes());
+ }
+ return rows;
}
/**
@@ -79,8 +96,13 @@ public class PgApplicationServiceImpl implements IPgApplicationService {
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public int update(PgApplication app) {
- return baseMapper.updateById(app);
+ int rows = baseMapper.updateById(app);
+ if (rows > 0 && app.getAppId() != null && app.getApiCodes() != null) {
+ saveAppApis(app.getAppId(), app.getApiCodes());
+ }
+ return rows;
}
@Override
@@ -88,6 +110,48 @@ public class PgApplicationServiceImpl implements IPgApplicationService {
return baseMapper.deleteByIds(Arrays.asList(appIds));
}
+ @Override
+ public PgApplication selectByAppCode(String appCode) {
+ if (StrUtil.isBlank(appCode)) {
+ return null;
+ }
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.eq(PgApplication::getAppCode, appCode);
+ return baseMapper.selectOne(lqw);
+ }
+
+ @Override
+ public boolean checkApiPermission(String appCode, String apiPath) {
+ if (StrUtil.isBlank(appCode) || StrUtil.isBlank(apiPath)) {
+ return false;
+ }
+ List paths = appApiMapper.selectApiPathsByAppCode(appCode);
+ return paths != null && paths.contains(apiPath);
+ }
+
+ @Override
+ public void saveAppApis(Long appId, List apiCodes) {
+ appApiMapper.delete(new LambdaQueryWrapper().eq(PgAppApi::getAppId, appId));
+ if (apiCodes == null || apiCodes.isEmpty()) {
+ return;
+ }
+ List list = new ArrayList<>();
+ for (String apiCode : apiCodes) {
+ LambdaQueryWrapper q = new LambdaQueryWrapper<>();
+ q.eq(PgApiDict::getApiCode, apiCode);
+ PgApiDict dict = apiDictMapper.selectOne(q);
+ if (dict != null && dict.getApiId() != null) {
+ PgAppApi row = new PgAppApi();
+ row.setAppId(appId);
+ row.setApiId(dict.getApiId());
+ list.add(row);
+ }
+ }
+ if (!list.isEmpty()) {
+ list.forEach(appApiMapper::insert);
+ }
+ }
+
private LambdaQueryWrapper buildQueryWrapper(PgApplication app) {
LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
lqw.like(StrUtil.isNotBlank(app.getAppName()), PgApplication::getAppName, app.getAppName());
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/config/ApiAuthInterceptor.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/config/ApiAuthInterceptor.java
new file mode 100644
index 0000000..89a0c1b
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/config/ApiAuthInterceptor.java
@@ -0,0 +1,100 @@
+package org.dromara.pangu.openapi.config;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.crypto.digest.DigestUtil;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.exception.ServiceException;
+import org.dromara.pangu.application.domain.PgApplication;
+import org.dromara.pangu.application.service.IPgApplicationService;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * 开放API 应用签名鉴权 + 接口授权校验
+ * 仅对 /open/api/** 生效
+ *
+ * @author pangu
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class ApiAuthInterceptor implements HandlerInterceptor {
+
+ private static final String HEADER_APP_ID = "X-App-Id";
+ private static final String HEADER_TIMESTAMP = "X-Timestamp";
+ private static final String HEADER_SIGN = "X-Sign";
+ /** 时间戳有效期 5 分钟 */
+ private static final long TIMESTAMP_EXPIRE_MS = 5 * 60 * 1000L;
+
+ private final IPgApplicationService applicationService;
+
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+ log.info(">>> ApiAuthInterceptor 拦截请求: {}", request.getRequestURI());
+ String appId = request.getHeader(HEADER_APP_ID);
+ String timestamp = request.getHeader(HEADER_TIMESTAMP);
+ String sign = request.getHeader(HEADER_SIGN);
+
+ if (StrUtil.isBlank(appId) || StrUtil.isBlank(timestamp) || StrUtil.isBlank(sign)) {
+ throw new ServiceException("缺少认证参数");
+ }
+
+ long reqTime;
+ try {
+ reqTime = Long.parseLong(timestamp.trim());
+ } catch (NumberFormatException e) {
+ throw new ServiceException("时间戳格式错误");
+ }
+ if (Math.abs(System.currentTimeMillis() - reqTime) > TIMESTAMP_EXPIRE_MS) {
+ throw new ServiceException("请求已过期");
+ }
+
+ PgApplication app = applicationService.selectByAppCode(appId.trim());
+ if (app == null) {
+ throw new ServiceException("应用不存在");
+ }
+ if ("1".equals(app.getStatus())) {
+ throw new ServiceException("应用已停用");
+ }
+
+ String expectedSign = buildSign(request, app.getAppSecret());
+ if (!expectedSign.equalsIgnoreCase(sign.trim())) {
+ log.warn("开放API签名验证失败, appCode={}", appId);
+ throw new ServiceException("签名验证失败");
+ }
+
+ String apiPath = request.getRequestURI();
+ if (!applicationService.checkApiPermission(appId.trim(), apiPath)) {
+ throw new ServiceException("无权访问该接口");
+ }
+
+ return true;
+ }
+
+ /**
+ * 签名字符串:请求参数按 key ASCII 排序拼接,末尾追加 appSecret,MD5 大写
+ */
+ private String buildSign(HttpServletRequest request, String appSecret) {
+ Map params = new TreeMap<>();
+ request.getParameterMap().forEach((key, values) -> {
+ if (values != null && values.length > 0 && StrUtil.isNotBlank(values[0])) {
+ params.put(key, values[0].trim());
+ }
+ });
+ StringBuilder sb = new StringBuilder();
+ params.forEach((k, v) -> {
+ if (sb.length() > 0) {
+ sb.append("&");
+ }
+ sb.append(k).append("=").append(v);
+ });
+ sb.append("&appSecret=").append(appSecret != null ? appSecret : "");
+ return DigestUtil.md5Hex(sb.toString()).toUpperCase();
+ }
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/config/OpenApiWebMvcConfig.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/config/OpenApiWebMvcConfig.java
new file mode 100644
index 0000000..f5eb689
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/config/OpenApiWebMvcConfig.java
@@ -0,0 +1,24 @@
+package org.dromara.pangu.openapi.config;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * 开放API 拦截器注册,仅对 /open/api/** 生效
+ *
+ * @author pangu
+ */
+@Configuration
+@RequiredArgsConstructor
+public class OpenApiWebMvcConfig implements WebMvcConfigurer {
+
+ private final ApiAuthInterceptor apiAuthInterceptor;
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(apiAuthInterceptor)
+ .addPathPatterns("/open/api/**");
+ }
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/controller/OpenApiBaseController.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/controller/OpenApiBaseController.java
new file mode 100644
index 0000000..ae11864
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/controller/OpenApiBaseController.java
@@ -0,0 +1,245 @@
+package org.dromara.pangu.openapi.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.pangu.base.domain.PgClass;
+import org.dromara.pangu.base.domain.PgGrade;
+import org.dromara.pangu.base.service.IPgClassService;
+import org.dromara.pangu.base.service.IPgGradeService;
+import org.dromara.pangu.openapi.domain.vo.OpenClassVo;
+import org.dromara.pangu.openapi.domain.vo.OpenGradeVo;
+import org.dromara.pangu.openapi.domain.vo.OpenSchoolVo;
+import org.dromara.pangu.school.domain.PgSchool;
+import org.dromara.pangu.school.service.IPgSchoolService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 开放API - 基础数据接口(学校、年级、班级)
+ *
+ * 说明:
+ * 1. 直接调用内部 Service,这些 Service 通常不带 @DataPermission
+ * 2. 返回 OpenApi 专用 VO,与内部数据结构解耦
+ * 3. 需要应用签名 + 接口授权
+ *
+ * @author pangu
+ */
+@Tag(name = "开放接口 - 基础数据", description = "提供学校、年级、班级信息查询接口(需应用授权)")
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/open/api/base")
+public class OpenApiBaseController extends BaseController {
+
+ private final IPgSchoolService schoolService;
+ private final IPgGradeService gradeService;
+ private final IPgClassService classService;
+
+ // ==================== 学校接口 ====================
+
+ /**
+ * 学校列表分页查询
+ */
+ @Operation(summary = "学校列表查询(分页)", description = "分页查询学校信息")
+ @GetMapping("/school/list")
+ public TableDataInfo schoolList(
+ @Parameter(description = "学校名称(模糊查询)") @RequestParam(required = false) String schoolName,
+ @Parameter(description = "学校类型") @RequestParam(required = false) String schoolType,
+ PageQuery pageQuery
+ ) {
+ PgSchool query = new PgSchool();
+ query.setSchoolName(schoolName);
+ query.setSchoolType(schoolType);
+ query.setStatus("0"); // 只查询正常状态
+
+ TableDataInfo result = schoolService.selectPageList(query, pageQuery);
+ List voList = result.getRows().stream()
+ .map(this::convertToSchoolVo)
+ .collect(Collectors.toList());
+
+ return new TableDataInfo<>(voList, result.getTotal());
+ }
+
+ /**
+ * 学校列表查询(不分页)
+ */
+ @Operation(summary = "学校列表查询(全部)", description = "查询所有学校信息")
+ @GetMapping("/school/listAll")
+ public R> schoolListAll(
+ @Parameter(description = "学校名称(模糊查询)") @RequestParam(required = false) String schoolName,
+ @Parameter(description = "学校类型") @RequestParam(required = false) String schoolType
+ ) {
+ PgSchool query = new PgSchool();
+ query.setSchoolName(schoolName);
+ query.setSchoolType(schoolType);
+ query.setStatus("0");
+
+ List list = schoolService.selectList(query);
+ List voList = list.stream()
+ .map(this::convertToSchoolVo)
+ .collect(Collectors.toList());
+
+ return R.ok(voList);
+ }
+
+ /**
+ * 根据ID查询学校
+ */
+ @Operation(summary = "学校详情", description = "根据ID查询学校信息")
+ @GetMapping("/school/{schoolId}")
+ public R schoolInfo(
+ @Parameter(description = "学校ID") @PathVariable Long schoolId
+ ) {
+ PgSchool school = schoolService.selectById(schoolId);
+ if (school == null) {
+ return R.fail("学校不存在");
+ }
+ return R.ok(convertToSchoolVo(school));
+ }
+
+ // ==================== 年级接口 ====================
+
+ /**
+ * 年级列表分页查询
+ */
+ @Operation(summary = "年级列表查询(分页)", description = "分页查询年级信息")
+ @GetMapping("/grade/list")
+ public TableDataInfo gradeList(
+ @Parameter(description = "年级名称(模糊查询)") @RequestParam(required = false) String gradeName,
+ PageQuery pageQuery
+ ) {
+ PgGrade query = new PgGrade();
+ query.setGradeName(gradeName);
+ query.setStatus("0");
+
+ TableDataInfo result = gradeService.selectPageList(query, pageQuery);
+ List voList = result.getRows().stream()
+ .map(this::convertToGradeVo)
+ .collect(Collectors.toList());
+
+ return new TableDataInfo<>(voList, result.getTotal());
+ }
+
+ /**
+ * 年级列表查询(不分页)
+ */
+ @Operation(summary = "年级列表查询(全部)", description = "查询所有年级信息")
+ @GetMapping("/grade/listAll")
+ public R> gradeListAll(
+ @Parameter(description = "年级名称(模糊查询)") @RequestParam(required = false) String gradeName
+ ) {
+ PgGrade query = new PgGrade();
+ query.setGradeName(gradeName);
+ query.setStatus("0");
+
+ List list = gradeService.selectList(query);
+ List voList = list.stream()
+ .map(this::convertToGradeVo)
+ .collect(Collectors.toList());
+
+ return R.ok(voList);
+ }
+
+ /**
+ * 根据ID查询年级
+ */
+ @Operation(summary = "年级详情", description = "根据ID查询年级信息")
+ @GetMapping("/grade/{gradeId}")
+ public R gradeInfo(
+ @Parameter(description = "年级ID") @PathVariable Long gradeId
+ ) {
+ PgGrade grade = gradeService.selectById(gradeId);
+ if (grade == null) {
+ return R.fail("年级不存在");
+ }
+ return R.ok(convertToGradeVo(grade));
+ }
+
+ // ==================== 班级接口 ====================
+
+ /**
+ * 班级列表分页查询
+ */
+ @Operation(summary = "班级列表查询(分页)", description = "分页查询班级信息")
+ @GetMapping("/class/list")
+ public TableDataInfo classList(
+ @Parameter(description = "班级名称(模糊查询)") @RequestParam(required = false) String className,
+ PageQuery pageQuery
+ ) {
+ PgClass query = new PgClass();
+ query.setClassName(className);
+ query.setStatus("0");
+
+ TableDataInfo result = classService.selectPageList(query, pageQuery);
+ List voList = result.getRows().stream()
+ .map(this::convertToClassVo)
+ .collect(Collectors.toList());
+
+ return new TableDataInfo<>(voList, result.getTotal());
+ }
+
+ /**
+ * 班级列表查询(不分页)
+ */
+ @Operation(summary = "班级列表查询(全部)", description = "查询所有班级信息")
+ @GetMapping("/class/listAll")
+ public R> classListAll(
+ @Parameter(description = "班级名称(模糊查询)") @RequestParam(required = false) String className
+ ) {
+ PgClass query = new PgClass();
+ query.setClassName(className);
+ query.setStatus("0");
+
+ List list = classService.selectList(query);
+ List voList = list.stream()
+ .map(this::convertToClassVo)
+ .collect(Collectors.toList());
+
+ return R.ok(voList);
+ }
+
+ /**
+ * 根据ID查询班级
+ */
+ @Operation(summary = "班级详情", description = "根据ID查询班级信息")
+ @GetMapping("/class/{classId}")
+ public R classInfo(
+ @Parameter(description = "班级ID") @PathVariable Long classId
+ ) {
+ PgClass clazz = classService.selectById(classId);
+ if (clazz == null) {
+ return R.fail("班级不存在");
+ }
+ return R.ok(convertToClassVo(clazz));
+ }
+
+ // ==================== 转换方法 ====================
+
+ private OpenSchoolVo convertToSchoolVo(PgSchool source) {
+ OpenSchoolVo vo = new OpenSchoolVo();
+ BeanUtils.copyProperties(source, vo);
+ return vo;
+ }
+
+ private OpenGradeVo convertToGradeVo(PgGrade source) {
+ OpenGradeVo vo = new OpenGradeVo();
+ BeanUtils.copyProperties(source, vo);
+ return vo;
+ }
+
+ private OpenClassVo convertToClassVo(PgClass source) {
+ OpenClassVo vo = new OpenClassVo();
+ BeanUtils.copyProperties(source, vo);
+ return vo;
+ }
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/controller/OpenApiStudentController.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/controller/OpenApiStudentController.java
new file mode 100644
index 0000000..f9e47c1
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/controller/OpenApiStudentController.java
@@ -0,0 +1,94 @@
+package org.dromara.pangu.openapi.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.pangu.openapi.domain.vo.OpenStudentVo;
+import org.dromara.pangu.openapi.service.IOpenApiStudentService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 开放API - 学生接口(需应用签名 + 接口授权)
+ *
+ * 鉴权说明:
+ * 1. 所有 /open/api/** 路径的请求会被 ApiAuthInterceptor 拦截
+ * 2. 需要在请求头中携带:X-App-Id、X-Timestamp、X-Sign
+ * 3. 应用必须拥有该接口的授权才能调用
+ *
+ * 数据安全:
+ * 1. 返回数据已脱敏(姓名、手机号等)
+ * 2. 敏感字段(身份证号、住址等)不返回
+ * 3. 只返回开放接口专用 VO,与内部数据结构解耦
+ *
+ * 调用示例:
+ * GET /open/api/student/list?pageNum=1&pageSize=10&studentName=张
+ * Headers:
+ * X-App-Id: YY000001
+ * X-Timestamp: 1738656000000
+ * X-Sign: A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
+ *
+ * @author pangu
+ */
+@Tag(name = "开放接口 - 学生管理", description = "提供学生信息查询接口(需应用授权)")
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/open/api/student")
+public class OpenApiStudentController extends BaseController {
+
+ private final IOpenApiStudentService openApiStudentService; // 调用开放接口专用服务
+
+ /**
+ * 学生列表分页查询(对外开放接口,已脱敏)
+ *
+ * @param studentName 学生姓名(模糊查询,可选)
+ * @param schoolId 学校ID(可选)
+ * @param gradeId 年级ID(可选)
+ * @param classId 班级ID(可选)
+ * @param pageQuery 分页参数(pageNum、pageSize)
+ * @return 学生列表(已脱敏)
+ */
+ @Operation(summary = "学生列表查询(脱敏)", description = "分页查询学生信息,返回脱敏数据")
+ @GetMapping("/list")
+ public TableDataInfo list(
+ @Parameter(description = "学生姓名(模糊查询)") @RequestParam(required = false) String studentName,
+ @Parameter(description = "学校ID") @RequestParam(required = false) Long schoolId,
+ @Parameter(description = "年级ID") @RequestParam(required = false) Long gradeId,
+ @Parameter(description = "班级ID") @RequestParam(required = false) Long classId,
+ PageQuery pageQuery
+ ) {
+ return openApiStudentService.selectPageList(studentName, schoolId, gradeId, classId, pageQuery);
+ }
+
+ /**
+ * 学生列表分页查询(对外开放接口,完整数据不脱敏)
+ *
+ * 注意:此接口返回完整数据,包含敏感信息,仅授权给可信应用
+ *
+ * @param studentName 学生姓名(模糊查询,可选)
+ * @param schoolId 学校ID(可选)
+ * @param gradeId 年级ID(可选)
+ * @param classId 班级ID(可选)
+ * @param pageQuery 分页参数(pageNum、pageSize)
+ * @return 学生列表(完整数据)
+ */
+ @Operation(summary = "学生列表查询(完整)", description = "分页查询学生信息,返回完整数据(需特殊授权)")
+ @GetMapping("/listFull")
+ public TableDataInfo listFull(
+ @Parameter(description = "学生姓名(模糊查询)") @RequestParam(required = false) String studentName,
+ @Parameter(description = "学校ID") @RequestParam(required = false) Long schoolId,
+ @Parameter(description = "年级ID") @RequestParam(required = false) Long gradeId,
+ @Parameter(description = "班级ID") @RequestParam(required = false) Long classId,
+ PageQuery pageQuery
+ ) {
+ return openApiStudentService.selectPageListFull(studentName, schoolId, gradeId, classId, pageQuery);
+ }
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenClassVo.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenClassVo.java
new file mode 100644
index 0000000..da3ebc3
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenClassVo.java
@@ -0,0 +1,31 @@
+package org.dromara.pangu.openapi.domain.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 开放API - 班级信息VO
+ *
+ * @author pangu
+ */
+@Data
+@Schema(description = "开放接口班级信息")
+public class OpenClassVo implements Serializable {
+
+ @Schema(description = "班级ID")
+ private Long classId;
+
+ @Schema(description = "班级编码")
+ private String classCode;
+
+ @Schema(description = "班级名称")
+ private String className;
+
+ @Schema(description = "显示顺序")
+ private Integer orderNum;
+
+ @Schema(description = "状态(0正常 1停用)")
+ private String status;
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenGradeVo.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenGradeVo.java
new file mode 100644
index 0000000..6c63766
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenGradeVo.java
@@ -0,0 +1,31 @@
+package org.dromara.pangu.openapi.domain.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 开放API - 年级信息VO
+ *
+ * @author pangu
+ */
+@Data
+@Schema(description = "开放接口年级信息")
+public class OpenGradeVo implements Serializable {
+
+ @Schema(description = "年级ID")
+ private Long gradeId;
+
+ @Schema(description = "年级编码")
+ private String gradeCode;
+
+ @Schema(description = "年级名称")
+ private String gradeName;
+
+ @Schema(description = "显示顺序")
+ private Integer orderNum;
+
+ @Schema(description = "状态(0正常 1停用)")
+ private String status;
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenSchoolVo.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenSchoolVo.java
new file mode 100644
index 0000000..c3db8e5
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenSchoolVo.java
@@ -0,0 +1,40 @@
+package org.dromara.pangu.openapi.domain.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 开放API - 学校信息VO
+ *
+ * @author pangu
+ */
+@Data
+@Schema(description = "开放接口学校信息")
+public class OpenSchoolVo implements Serializable {
+
+ @Schema(description = "学校ID")
+ private Long schoolId;
+
+ @Schema(description = "学校编码")
+ private String schoolCode;
+
+ @Schema(description = "学校名称")
+ private String schoolName;
+
+ @Schema(description = "学校类型(1小学 2初中 3高中 4完全中学)")
+ private String schoolType;
+
+ @Schema(description = "区域ID")
+ private Long regionId;
+
+ @Schema(description = "区域名称")
+ private String regionName;
+
+ @Schema(description = "地址")
+ private String address;
+
+ @Schema(description = "状态(0正常 1停用)")
+ private String status;
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenStudentVo.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenStudentVo.java
new file mode 100644
index 0000000..8c21f13
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/domain/vo/OpenStudentVo.java
@@ -0,0 +1,61 @@
+package org.dromara.pangu.openapi.domain.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 开放API - 学生信息VO
+ *
+ * 说明:
+ * 1. 开放接口专用的 VO 应放在 openapi/domain/vo 目录下
+ * 2. 只包含可以对外暴露的字段
+ * 3. 敏感字段(如身份证号)不应出现在此类中
+ * 4. 敏感信息需要进行脱敏处理(如姓名、手机号)
+ *
+ * @author pangu
+ */
+@Data
+@Schema(description = "开放接口学生信息")
+public class OpenStudentVo implements Serializable {
+
+ @Schema(description = "学生ID")
+ private Long studentId;
+
+ @Schema(description = "学号")
+ private String studentCode;
+
+ @Schema(description = "学生姓名(已脱敏)")
+ private String studentName;
+
+ @Schema(description = "性别(0未知 1男 2女)")
+ private String gender;
+
+ @Schema(description = "学校ID")
+ private Long schoolId;
+
+ @Schema(description = "学校名称")
+ private String schoolName;
+
+ @Schema(description = "年级ID")
+ private Long gradeId;
+
+ @Schema(description = "年级名称")
+ private String gradeName;
+
+ @Schema(description = "班级ID")
+ private Long classId;
+
+ @Schema(description = "班级名称")
+ private String className;
+
+ @Schema(description = "联系电话(已脱敏)")
+ private String phone;
+
+ // 注意:以下敏感字段不对外暴露
+ // private String idCard; // 身份证号 - 不暴露
+ // private String address; // 家庭住址 - 不暴露
+ // private String parentPhone; // 家长电话 - 不暴露
+ // private Date birthday; // 出生日期 - 不暴露
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/service/IOpenApiStudentService.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/service/IOpenApiStudentService.java
new file mode 100644
index 0000000..8b80ad9
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/service/IOpenApiStudentService.java
@@ -0,0 +1,46 @@
+package org.dromara.pangu.openapi.service;
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.pangu.openapi.domain.vo.OpenStudentVo;
+
+/**
+ * 开放API - 学生服务接口
+ *
+ * 二次开发说明:
+ * 1. 开放接口的 Service 应放在 openapi/service 目录下
+ * 2. 可以调用已有的业务 Service,也可以直接调用 Mapper
+ * 3. 建议在此层做数据脱敏、字段过滤、权限控制等处理
+ *
+ * @author pangu
+ */
+public interface IOpenApiStudentService {
+
+ /**
+ * 分页查询学生列表(开放接口专用,已脱敏)
+ *
+ * @param studentName 学生姓名(模糊查询)
+ * @param schoolId 学校ID
+ * @param gradeId 年级ID
+ * @param classId 班级ID
+ * @param pageQuery 分页参数
+ * @return 学生列表(已脱敏)
+ */
+ TableDataInfo selectPageList(String studentName, Long schoolId,
+ Long gradeId, Long classId, PageQuery pageQuery);
+
+ /**
+ * 分页查询学生列表(开放接口专用,完整数据不脱敏)
+ *
+ * 注意:此接口返回完整数据,包含敏感信息,请确保只授权给可信应用
+ *
+ * @param studentName 学生姓名(模糊查询)
+ * @param schoolId 学校ID
+ * @param gradeId 年级ID
+ * @param classId 班级ID
+ * @param pageQuery 分页参数
+ * @return 学生列表(完整数据)
+ */
+ TableDataInfo selectPageListFull(String studentName, Long schoolId,
+ Long gradeId, Long classId, PageQuery pageQuery);
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/service/impl/OpenApiStudentServiceImpl.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/service/impl/OpenApiStudentServiceImpl.java
new file mode 100644
index 0000000..fe5a355
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/service/impl/OpenApiStudentServiceImpl.java
@@ -0,0 +1,190 @@
+package org.dromara.pangu.openapi.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.pangu.base.domain.PgGrade;
+import org.dromara.pangu.base.mapper.PgGradeMapper;
+import org.dromara.pangu.openapi.domain.vo.OpenStudentVo;
+import org.dromara.pangu.openapi.service.IOpenApiStudentService;
+import org.dromara.pangu.openapi.utils.DataMaskUtil;
+import org.dromara.pangu.school.domain.PgSchool;
+import org.dromara.pangu.school.domain.PgSchoolClass;
+import org.dromara.pangu.school.domain.PgSchoolGrade;
+import org.dromara.pangu.school.mapper.PgSchoolClassMapper;
+import org.dromara.pangu.school.mapper.PgSchoolGradeMapper;
+import org.dromara.pangu.school.mapper.PgSchoolMapper;
+import org.dromara.pangu.student.domain.PgStudent;
+import org.dromara.pangu.student.mapper.PgStudentMapper;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 开放API - 学生服务实现
+ *
+ * 技术架构说明:
+ * 1. 直接使用 Mapper 层的无数据权限方法(selectPageStudentListNoDataScope)
+ * 2. 开放接口使用应用级授权,不需要用户级数据权限过滤
+ * 3. 数据范围由接口参数(schoolId, gradeId 等)控制
+ * 4. 在此层进行数据转换和脱敏处理
+ * 5. 只返回开放接口专用 VO,不暴露敏感信息
+ *
+ * @author pangu
+ */
+@RequiredArgsConstructor
+@Service
+public class OpenApiStudentServiceImpl implements IOpenApiStudentService {
+
+ private final PgStudentMapper studentMapper;
+ private final PgSchoolMapper schoolMapper;
+ private final PgSchoolGradeMapper schoolGradeMapper;
+ private final PgSchoolClassMapper schoolClassMapper;
+ private final PgGradeMapper gradeMapper;
+
+ @Override
+ public TableDataInfo selectPageList(String studentName, Long schoolId,
+ Long gradeId, Long classId, PageQuery pageQuery) {
+ return doSelectPageList(studentName, schoolId, gradeId, classId, pageQuery, true);
+ }
+
+ @Override
+ public TableDataInfo selectPageListFull(String studentName, Long schoolId,
+ Long gradeId, Long classId, PageQuery pageQuery) {
+ return doSelectPageList(studentName, schoolId, gradeId, classId, pageQuery, false);
+ }
+
+ /**
+ * 内部通用查询方法
+ * @param maskData 是否脱敏
+ */
+ private TableDataInfo doSelectPageList(String studentName, Long schoolId,
+ Long gradeId, Long classId,
+ PageQuery pageQuery, boolean maskData) {
+ // 1. 构建查询条件
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.like(StrUtil.isNotBlank(studentName), PgStudent::getStudentName, studentName);
+ lqw.eq(schoolId != null, PgStudent::getSchoolId, schoolId);
+ lqw.eq(gradeId != null, PgStudent::getSchoolGradeId, gradeId);
+ lqw.eq(classId != null, PgStudent::getSchoolClassId, classId);
+ lqw.eq(PgStudent::getStatus, "0"); // 只查询正常状态的学生
+ lqw.orderByDesc(PgStudent::getCreateTime);
+
+ // 2. 使用无数据权限的分页查询方法
+ Page page = studentMapper.selectPageStudentListNoDataScope(pageQuery.build(), lqw);
+
+ // 3. 转换为开放接口专用VO(根据参数决定是否脱敏)
+ List openApiList = convertToOpenApiVoList(page.getRecords(), maskData);
+
+ // 4. 返回数据
+ return new TableDataInfo<>(openApiList, page.getTotal());
+ }
+
+ /**
+ * 批量转换为开放接口VO并填充关联数据
+ *
+ * @param students 学生列表
+ * @param maskData 是否脱敏
+ * @return 开放接口VO列表
+ */
+ private List convertToOpenApiVoList(List students, boolean maskData) {
+ if (students == null || students.isEmpty()) {
+ return Collections.emptyList();
+ }
+
+ // 收集所有需要查询的关联ID
+ Set schoolIds = new HashSet<>();
+ Set schoolGradeIds = new HashSet<>();
+ Set schoolClassIds = new HashSet<>();
+
+ for (PgStudent s : students) {
+ if (s.getSchoolId() != null) schoolIds.add(s.getSchoolId());
+ if (s.getSchoolGradeId() != null) schoolGradeIds.add(s.getSchoolGradeId());
+ if (s.getSchoolClassId() != null) schoolClassIds.add(s.getSchoolClassId());
+ }
+
+ // 批量查询学校信息
+ Map schoolMap = schoolIds.isEmpty() ? Collections.emptyMap() :
+ schoolMapper.selectByIds(schoolIds).stream()
+ .collect(Collectors.toMap(PgSchool::getSchoolId, Function.identity()));
+
+ // 批量查询学校年级信息
+ Map schoolGradeMap = schoolGradeIds.isEmpty() ? Collections.emptyMap() :
+ schoolGradeMapper.selectByIds(schoolGradeIds).stream()
+ .collect(Collectors.toMap(PgSchoolGrade::getId, Function.identity()));
+
+ // 批量查询学校班级信息
+ Map schoolClassMap = schoolClassIds.isEmpty() ? Collections.emptyMap() :
+ schoolClassMapper.selectByIds(schoolClassIds).stream()
+ .collect(Collectors.toMap(PgSchoolClass::getId, Function.identity()));
+
+ // 收集基础年级ID并查询年级名称
+ Set baseGradeIds = schoolGradeMap.values().stream()
+ .map(PgSchoolGrade::getGradeId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toSet());
+ Map gradeNameMap = baseGradeIds.isEmpty() ? Collections.emptyMap() :
+ gradeMapper.selectByIds(baseGradeIds).stream()
+ .collect(Collectors.toMap(PgGrade::getGradeId, PgGrade::getGradeName));
+
+ // 转换为VO列表
+ return students.stream()
+ .map(student -> convertToOpenApiVo(student, schoolMap, schoolGradeMap, schoolClassMap, gradeNameMap, maskData))
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * 转换单个学生为开放接口VO
+ * @param maskData 是否脱敏
+ */
+ private OpenStudentVo convertToOpenApiVo(PgStudent source,
+ Map schoolMap,
+ Map schoolGradeMap,
+ Map schoolClassMap,
+ Map gradeNameMap,
+ boolean maskData) {
+ if (source == null) {
+ return null;
+ }
+
+ OpenStudentVo vo = new OpenStudentVo();
+
+ // 基础信息(不敏感)
+ vo.setStudentId(source.getStudentId());
+ vo.setStudentCode(source.getStudentNo());
+ vo.setGender(source.getGender());
+
+ // 学校信息
+ vo.setSchoolId(source.getSchoolId());
+ PgSchool school = schoolMap.get(source.getSchoolId());
+ vo.setSchoolName(school != null ? school.getSchoolName() : null);
+
+ // 年级信息
+ vo.setGradeId(source.getSchoolGradeId());
+ PgSchoolGrade schoolGrade = schoolGradeMap.get(source.getSchoolGradeId());
+ if (schoolGrade != null && schoolGrade.getGradeId() != null) {
+ vo.setGradeName(gradeNameMap.get(schoolGrade.getGradeId()));
+ }
+
+ // 班级信息
+ vo.setClassId(source.getSchoolClassId());
+ PgSchoolClass schoolClass = schoolClassMap.get(source.getSchoolClassId());
+ vo.setClassName(schoolClass != null ? schoolClass.getClassName() : null);
+
+ // 敏感字段处理
+ if (maskData) {
+ // 脱敏模式
+ vo.setStudentName(DataMaskUtil.maskName(source.getStudentName()));
+ } else {
+ // 完整数据模式
+ vo.setStudentName(source.getStudentName());
+ }
+
+ return vo;
+ }
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/utils/DataMaskUtil.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/utils/DataMaskUtil.java
new file mode 100644
index 0000000..402971c
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/openapi/utils/DataMaskUtil.java
@@ -0,0 +1,72 @@
+package org.dromara.pangu.openapi.utils;
+
+import cn.hutool.core.util.StrUtil;
+
+/**
+ * 数据脱敏工具类
+ *
+ * 用于开放接口返回数据时对敏感信息进行脱敏处理
+ *
+ * @author pangu
+ */
+public class DataMaskUtil {
+
+ /**
+ * 姓名脱敏:张三 -> 张*
+ */
+ public static String maskName(String name) {
+ if (StrUtil.isBlank(name) || name.length() == 1) {
+ return name;
+ }
+ return name.charAt(0) + "*".repeat(name.length() - 1);
+ }
+
+ /**
+ * 手机号脱敏:13812345678 -> 138****5678
+ */
+ public static String maskPhone(String phone) {
+ if (StrUtil.isBlank(phone) || phone.length() != 11) {
+ return phone;
+ }
+ return phone.substring(0, 3) + "****" + phone.substring(7);
+ }
+
+ /**
+ * 身份证脱敏:110101199001011234 -> 110101********1234
+ */
+ public static String maskIdCard(String idCard) {
+ if (StrUtil.isBlank(idCard) || idCard.length() < 8) {
+ return idCard;
+ }
+ return idCard.substring(0, 6) + "********" + idCard.substring(idCard.length() - 4);
+ }
+
+ /**
+ * 邮箱脱敏:example@qq.com -> e****e@qq.com
+ */
+ public static String maskEmail(String email) {
+ if (StrUtil.isBlank(email) || !email.contains("@")) {
+ return email;
+ }
+ int atIndex = email.indexOf("@");
+ String prefix = email.substring(0, atIndex);
+ String suffix = email.substring(atIndex);
+
+ if (prefix.length() <= 2) {
+ return prefix.charAt(0) + "*" + suffix;
+ }
+ return prefix.charAt(0) + "****" + prefix.charAt(prefix.length() - 1) + suffix;
+ }
+
+ /**
+ * 地址脱敏:保留省市,其余用*代替
+ * 例如:北京市朝阳区建国路88号 -> 北京市朝阳区***
+ */
+ public static String maskAddress(String address) {
+ if (StrUtil.isBlank(address) || address.length() <= 6) {
+ return address;
+ }
+ // 保留前6个字符(通常是省市区)
+ return address.substring(0, 6) + "***";
+ }
+}
diff --git a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/student/mapper/PgStudentMapper.java b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/student/mapper/PgStudentMapper.java
index ec16114..8413cd0 100644
--- a/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/student/mapper/PgStudentMapper.java
+++ b/backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/student/mapper/PgStudentMapper.java
@@ -42,4 +42,28 @@ public interface PgStudentMapper extends BaseMapperPlus {
default Page selectPageStudentList(Page page, Wrapper queryWrapper) {
return this.selectPage(page, queryWrapper);
}
+
+ /**
+ * 分页查询学生列表(无数据权限,供开放接口使用)
+ *
+ * 说明:开放接口使用应用级授权,不需要用户级数据权限过滤。
+ * 数据范围由接口参数(schoolId, gradeId 等)控制。
+ *
+ * @param page 分页信息
+ * @param queryWrapper 查询条件
+ * @return 学生分页列表
+ */
+ default Page selectPageStudentListNoDataScope(Page page, Wrapper queryWrapper) {
+ return this.selectPage(page, queryWrapper);
+ }
+
+ /**
+ * 查询学生列表(无数据权限,供开放接口使用)
+ *
+ * @param queryWrapper 查询条件
+ * @return 学生列表
+ */
+ default List selectStudentListNoDataScope(Wrapper queryWrapper) {
+ return this.selectList(queryWrapper);
+ }
}
diff --git a/backend/pangu-modules/pangu-business/src/main/resources/mapper/application/PgAppApiMapper.xml b/backend/pangu-modules/pangu-business/src/main/resources/mapper/application/PgAppApiMapper.xml
new file mode 100644
index 0000000..c969306
--- /dev/null
+++ b/backend/pangu-modules/pangu-business/src/main/resources/mapper/application/PgAppApiMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/MailSendController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/MailSendController.java
index 48365a3..ca78e9f 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/MailSendController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/MailSendController.java
@@ -15,7 +15,7 @@ import java.util.Arrays;
/**
* 邮件发送案例
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java
index 2335da4..67b2a4b 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java
@@ -17,7 +17,7 @@ import java.time.Duration;
/**
* spring-cache 演示案例
*
- * @author Lion Li
+ * @author pangu
*/
// 类级别 缓存统一配置
//@CacheConfig(cacheNames = CacheNames.DEMO_CACHE)
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java
index 237b6ee..28a1a6f 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java
@@ -18,7 +18,7 @@ import java.time.LocalTime;
/**
* 测试分布式锁的样例
*
- * @author shenxinquan
+ * @author pangu
*/
@Slf4j
@RestController
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java
index bdbf033..17c1bba 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java
@@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
/**
* Redis 发布订阅 演示案例
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@RestController
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java
index f8adf7d..93fdf29 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java
@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
/**
* 测试分布式限流样例
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@RestController
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/SmsController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/SmsController.java
index b993f60..cc6c846 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/SmsController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/SmsController.java
@@ -16,7 +16,7 @@ import java.util.LinkedHashMap;
* 短信演示案例
* 请先阅读文档 否则无法使用
*
- * @author Lion Li
+ * @author pangu
* @version 4.2.0
*/
@Validated
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java
index bb02f98..512baed 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/Swagger3DemoController.java
@@ -11,7 +11,7 @@ import org.springframework.web.multipart.MultipartFile;
/**
* swagger3 用法示例
*
- * @author Lion Li
+ * @author pangu
*/
@RestController
@RequestMapping("/swagger/demo")
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java
index af8c77b..dd721c4 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java
@@ -17,7 +17,7 @@ import java.util.List;
/**
* 测试批量方法
*
- * @author Lion Li
+ * @author pangu
* @date 2021-05-30
*/
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java
index f31c540..b2e7b0c 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java
@@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit;
/**
* 测试单表Controller
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@Validated
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java
index 2b6886d..76051bc 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestEncryptController.java
@@ -17,7 +17,7 @@ import java.util.Map;
/**
* 测试数据库加解密功能
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RestController
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestExcelController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestExcelController.java
index 64243b7..f7103ca 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestExcelController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestExcelController.java
@@ -24,7 +24,7 @@ import java.util.Map;
/**
* 测试Excel功能
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@RestController
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java
index 40393c5..ff4cc84 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java
@@ -16,7 +16,7 @@ import jakarta.validation.constraints.NotNull;
/**
* 测试国际化
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RestController
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java
index eba0552..2295f58 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
* 默认管理员不过滤
* 需自行根据业务重写实现
*
- * @author Lion Li
+ * @author pangu
* @version 3.6.0
* @see SensitiveService
*/
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java
index 5c55205..510350a 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java
@@ -26,7 +26,7 @@ import java.util.List;
/**
* 测试树表Controller
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@Validated
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/WebSocketController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/WebSocketController.java
index 65bf68e..5ae6b3c 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/WebSocketController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/WebSocketController.java
@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
/**
* WebSocket 演示案例
*
- * @author zendwang
+ * @author pangu
*/
@RequiredArgsConstructor
@RestController
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/BoundedQueueController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/BoundedQueueController.java
index a3051b2..8931c41 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/BoundedQueueController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/BoundedQueueController.java
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
* 集群测试通过 同一个数据只会被消费一次 做好事务补偿
* 集群测试流程 在其中一台发送数据 两端分别调用获取接口 一次获取一条
*
- * @author Lion Li
+ * @author pangu
* @version 3.6.0
* @deprecated redisson 新版本已经将队列功能标记删除 一些技术问题无法解决 建议搭建MQ使用
*/
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java
index 7c494e2..6abe7b2 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/DelayedQueueController.java
@@ -20,7 +20,7 @@ import java.util.concurrent.TimeUnit;
* 集群测试通过 同一个数据只会被消费一次 做好事务补偿
* 集群测试流程 两台集群分别开启订阅 在其中一台发送数据 观察接收消息的规律
*
- * @author Lion Li
+ * @author pangu
* @version 3.6.0
* @deprecated redisson 新版本已经将队列功能标记删除 一些技术问题无法解决 建议搭建MQ使用
*/
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/PriorityDemo.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/PriorityDemo.java
index 43862a6..0e224a5 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/PriorityDemo.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/PriorityDemo.java
@@ -6,7 +6,7 @@ import lombok.NoArgsConstructor;
/**
* 实体类 注意不允许使用内部类 否则会找不到类
*
- * @author Lion Li
+ * @author pangu
* @version 3.6.0
* @deprecated redisson 新版本已经将队列功能标记删除 一些技术问题无法解决 建议搭建MQ使用
*/
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java
index 2f2b737..069423b 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java
@@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
* 集群测试通过 同一个消息只会被消费一次 做好事务补偿
* 集群测试流程 在其中一台发送数据 两端分别调用获取接口 一次获取一条
*
- * @author Lion Li
+ * @author pangu
* @version 3.6.0
* @deprecated redisson 新版本已经将队列功能标记删除 一些技术问题无法解决 建议搭建MQ使用
*/
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/TestDemo.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/TestDemo.java
index d3af0c9..d0c0241 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/TestDemo.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/TestDemo.java
@@ -10,7 +10,7 @@ import java.io.Serial;
/**
* 测试单表对象 test_demo
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@Data
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/TestTree.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/TestTree.java
index fd68253..3450ff1 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/TestTree.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/TestTree.java
@@ -13,7 +13,7 @@ import java.io.Serial;
/**
* 测试树表对象 test_tree
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@Data
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java
index ef21980..94cd882 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoBo.java
@@ -14,7 +14,7 @@ import jakarta.validation.constraints.NotNull;
/**
* 测试单表业务对象 test_demo
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java
index dc8b35f..346b6d1 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestDemoImportVo.java
@@ -9,7 +9,7 @@ import jakarta.validation.constraints.NotNull;
/**
* 测试单表业务对象 test_demo
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@Data
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java
index 1bbac0e..9f421b7 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/bo/TestTreeBo.java
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
/**
* 测试树表业务对象 test_tree
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java
index b42ce76..fb99c41 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java
@@ -21,7 +21,7 @@ import java.io.Serializable;
/**
* 带有下拉选的Excel导出
*
- * @author Emil.Zhang
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java
index 642e0f7..39aa94f 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java
@@ -19,7 +19,7 @@ import java.util.Date;
/**
* 测试单表视图对象 test_demo
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@Data
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java
index ee2336a..6b3b3f8 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java
@@ -14,7 +14,7 @@ import java.util.Date;
/**
* 测试树表视图对象 test_tree
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@Data
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java
index de92760..db13bca 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/listener/ExportDemoListener.java
@@ -14,7 +14,7 @@ import java.util.List;
/**
* Excel带下拉框的解析处理器
*
- * @author Emil.Zhang
+ * @author pangu
*/
public class ExportDemoListener extends DefaultExcelListener {
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java
index 601f97a..25f1405 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestDemoEncryptMapper.java
@@ -6,7 +6,7 @@ import org.dromara.demo.domain.TestDemoEncrypt;
/**
* 测试加密功能
*
- * @author Lion Li
+ * @author pangu
*/
public interface TestDemoEncryptMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java
index 19b2d52..3d1a579 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java
@@ -18,7 +18,7 @@ import java.util.List;
/**
* 测试单表Mapper接口
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
public interface TestDemoMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java
index e5f4c44..ddfeaba 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/mapper/TestTreeMapper.java
@@ -9,7 +9,7 @@ import org.dromara.demo.domain.vo.TestTreeVo;
/**
* 测试树表Mapper接口
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@DataPermission({
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/IExportExcelService.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/IExportExcelService.java
index ad2392b..4456c18 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/IExportExcelService.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/IExportExcelService.java
@@ -7,7 +7,7 @@ import java.io.IOException;
/**
* 导出下拉框Excel示例
*
- * @author Emil.Zhang
+ * @author pangu
*/
public interface IExportExcelService {
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java
index bca4192..d4948bb 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java
@@ -12,7 +12,7 @@ import java.util.List;
/**
* 测试单表Service接口
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
public interface ITestDemoService {
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/ITestTreeService.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/ITestTreeService.java
index 9155201..d84f9ab 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/ITestTreeService.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/ITestTreeService.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 测试树表Service接口
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
public interface ITestTreeService {
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java
index 2813cc2..3f89b2c 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
/**
* 导出下拉框Excel示例
*
- * @author Emil.Zhang
+ * @author pangu
*/
@Service
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java
index 415e440..b96f6e0 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java
@@ -23,7 +23,7 @@ import java.util.Map;
/**
* 测试单表Service业务层处理
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java
index 836a090..76ad605 100644
--- a/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java
+++ b/backend/pangu-modules/pangu-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java
@@ -19,7 +19,7 @@ import java.util.Map;
/**
* 测试树表Service业务层处理
*
- * @author Lion Li
+ * @author pangu
* @date 2021-07-26
*/
// @DS("slave") // 切换从库查询
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/config/GenConfig.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/config/GenConfig.java
index b29f8c9..3e77852 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/config/GenConfig.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/config/GenConfig.java
@@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
/**
* 读取代码生成相关配置
*
- * @author ruoyi
+ * @author pangu
*/
@Component
@ConfigurationProperties(prefix = "gen")
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/config/MyBatisDataSourceMonitor.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/config/MyBatisDataSourceMonitor.java
index 8c0f352..1a3e379 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/config/MyBatisDataSourceMonitor.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/config/MyBatisDataSourceMonitor.java
@@ -19,7 +19,7 @@ import java.util.Map;
/**
* anyline 适配 动态数据源改造
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@Component
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/constant/GenConstants.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/constant/GenConstants.java
index b9888fb..9208531 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/constant/GenConstants.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/constant/GenConstants.java
@@ -3,7 +3,7 @@ package org.dromara.generator.constant;
/**
* 代码生成通用常量
*
- * @author ruoyi
+ * @author pangu
*/
public interface GenConstants {
/**
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/controller/GenController.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/controller/GenController.java
index 802c43c..b832ee5 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/controller/GenController.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/controller/GenController.java
@@ -28,7 +28,7 @@ import java.util.Map;
/**
* 代码生成 操作处理
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/domain/GenTable.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/domain/GenTable.java
index f2d7257..b114418 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/domain/GenTable.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/domain/GenTable.java
@@ -17,7 +17,7 @@ import java.util.List;
/**
* 业务表 gen_table
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java
index 63fd1f5..4b8d534 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java
@@ -14,7 +14,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
* 代码生成业务字段表 gen_table_column
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java
index ed8ed20..ef5fd6f 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/mapper/GenTableColumnMapper.java
@@ -7,7 +7,7 @@ import org.dromara.generator.domain.GenTableColumn;
/**
* 业务字段 数据层
*
- * @author Lion Li
+ * @author pangu
*/
@InterceptorIgnore(dataPermission = "true", tenantLine = "true")
public interface GenTableColumnMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java
index 1798b4b..a340b6e 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 业务 数据层
*
- * @author Lion Li
+ * @author pangu
*/
@InterceptorIgnore(dataPermission = "true", tenantLine = "true")
public interface GenTableMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java
index 3e7bdf7..b851df6 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java
@@ -51,7 +51,7 @@ import java.util.zip.ZipOutputStream;
/**
* 业务 服务层实现
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/service/IGenTableService.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/service/IGenTableService.java
index b2c20c5..94ce9ef 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/service/IGenTableService.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/service/IGenTableService.java
@@ -11,7 +11,7 @@ import java.util.Map;
/**
* 业务 服务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface IGenTableService {
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/GenUtils.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/GenUtils.java
index ea97292..4551381 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/GenUtils.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/GenUtils.java
@@ -14,7 +14,7 @@ import java.util.Arrays;
/**
* 代码生成器 工具类
*
- * @author ruoyi
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class GenUtils {
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/VelocityInitializer.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/VelocityInitializer.java
index 09e0121..28175ad 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/VelocityInitializer.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/VelocityInitializer.java
@@ -10,7 +10,7 @@ import java.util.Properties;
/**
* VelocityEngine工厂
*
- * @author ruoyi
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class VelocityInitializer {
diff --git a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java
index 44c5979..bf19da6 100644
--- a/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java
+++ b/backend/pangu-modules/pangu-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java
@@ -20,7 +20,7 @@ import java.util.*;
/**
* 模板处理工具类
*
- * @author ruoyi
+ * @author pangu
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class VelocityUtils {
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/AlipayBillTask.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/AlipayBillTask.java
index d5c3ea7..f32bc6a 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/AlipayBillTask.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/AlipayBillTask.java
@@ -16,7 +16,7 @@ import java.math.BigDecimal;
* DAG工作流任务-模拟支付宝账单任务
*
*
- * @author 老马
+ * @author pangu
*/
@Component
@JobExecutor(name = "alipayBillTask")
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/SummaryBillTask.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/SummaryBillTask.java
index 47d7305..ca2ce21 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/SummaryBillTask.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/SummaryBillTask.java
@@ -15,7 +15,7 @@ import java.math.BigDecimal;
* DAG工作流任务-模拟汇总账单任务
*
*
- * @author 老马
+ * @author pangu
*/
@Component
@JobExecutor(name = "summaryBillTask")
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestAnnoJobExecutor.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestAnnoJobExecutor.java
index aa3d99e..080da59 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestAnnoJobExecutor.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestAnnoJobExecutor.java
@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
* 正常任务
*
*
- * @author 老马
+ * @author pangu
*/
@Component
@JobExecutor(name = "testJobExecutor")
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestBroadcastJob.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestBroadcastJob.java
index 9cb8309..15c2604 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestBroadcastJob.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestBroadcastJob.java
@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
* 广播任务
*
*
- * @author 老马
+ * @author pangu
*/
@Slf4j
@Component
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestClassJobExecutor.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestClassJobExecutor.java
index 93da0a9..b957329 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestClassJobExecutor.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestClassJobExecutor.java
@@ -6,7 +6,7 @@ import com.aizuda.snailjob.model.dto.ExecuteResult;
import org.springframework.stereotype.Component;
/**
- * @author opensnail
+ * @author pangu
* @date 2024-05-17
*/
@Component
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java
index f58d772..bd9af0d 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java
@@ -19,7 +19,7 @@ import java.util.stream.IntStream;
* Map任务 动态分配 只分片不关注结果
*
*
- * @author 老马
+ * @author pangu
*/
@Component
@JobExecutor(name = "testMapJobAnnotation")
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java
index f926016..baca823 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java
@@ -21,7 +21,7 @@ import java.util.stream.IntStream;
* MapReduce任务 动态分配 分片后合并结果
*
*
- * @author 老马
+ * @author pangu
*/
@Component
@JobExecutor(name = "testMapReduceAnnotation1")
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestStaticShardingJob.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestStaticShardingJob.java
index 060fcd4..a1444e2 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestStaticShardingJob.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/TestStaticShardingJob.java
@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
* 静态分片 根据服务端任务参数分片
*
*
- * @author 老马
+ * @author pangu
*/
@Component
@JobExecutor(name = "testStaticShardingJob")
diff --git a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/WechatBillTask.java b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/WechatBillTask.java
index e19a48e..889c562 100644
--- a/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/WechatBillTask.java
+++ b/backend/pangu-modules/pangu-job/src/main/java/org/dromara/job/snailjob/WechatBillTask.java
@@ -16,7 +16,7 @@ import java.math.BigDecimal;
* DAG工作流任务-模拟微信账单任务
*
*
- * @author 老马
+ * @author pangu
*/
@Component
@JobExecutor(name = "wechatBillTask")
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java
index 4a82536..247b4fb 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/CacheController.java
@@ -16,7 +16,7 @@ import java.util.*;
/**
* 缓存监控
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@RestController
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java
index 3787170..a547270 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java
@@ -25,7 +25,7 @@ import java.util.List;
/**
* 系统访问记录
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java
index d2e4c9e..691fd7e 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java
@@ -22,7 +22,7 @@ import java.util.List;
/**
* 操作日志记录
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java
index 0e6f171..132789d 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/monitor/SysUserOnlineController.java
@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
/**
* 在线用户监控
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@RestController
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysClientController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysClientController.java
index fb87df7..c84c55c 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysClientController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysClientController.java
@@ -26,7 +26,7 @@ import java.util.List;
/**
* 客户端管理
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-06-18
*/
@Validated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java
index 2be7858..4585c2d 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* 参数配置 信息操作处理
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java
index 3acb947..1a01b83 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java
@@ -22,7 +22,7 @@ import java.util.List;
/**
* 部门信息
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java
index ae6d580..c1422c6 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java
@@ -26,7 +26,7 @@ import java.util.List;
/**
* 数据字典信息
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java
index d88e6ec..0777cca 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java
@@ -24,7 +24,7 @@ import java.util.List;
/**
* 数据字典信息
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java
index bdf6afa..f2b3b03 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java
@@ -28,7 +28,7 @@ import java.util.List;
/**
* 菜单信息
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysNoticeController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysNoticeController.java
index 86abb9a..cc03d8b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysNoticeController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysNoticeController.java
@@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
/**
* 公告 信息操作处理
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysOssConfigController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysOssConfigController.java
index 2369980..c8492fa 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysOssConfigController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysOssConfigController.java
@@ -25,8 +25,8 @@ import java.util.List;
/**
* 对象存储配置
*
- * @author Lion Li
- * @author 孤舟烟雨
+ * @author pangu
+ * @author pangu
* @date 2021-08-13
*/
@Validated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysOssController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysOssController.java
index 35c1a89..2d59992 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysOssController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysOssController.java
@@ -28,7 +28,7 @@ import java.util.List;
/**
* 文件上传 控制层
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysPostController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysPostController.java
index 0f1b80c..5790ca7 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysPostController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysPostController.java
@@ -29,7 +29,7 @@ import java.util.List;
/**
* 岗位信息操作处理
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java
index 2edab3e..c4beba5 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java
@@ -33,7 +33,7 @@ import java.util.Arrays;
/**
* 个人信息 业务处理
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java
index 755a9ec..f7fa4bc 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java
@@ -29,7 +29,7 @@ import java.util.List;
/**
* 角色信息
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java
index b0281cf..6a42264 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysSocialController.java
@@ -16,7 +16,7 @@ import java.util.List;
/**
* 社会化关系
*
- * @author thiszhc
+ * @author pangu
* @date 2023-06-16
*/
@Validated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java
index b29e681..836fe21 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java
@@ -33,7 +33,7 @@ import java.util.List;
/**
* 租户管理
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java
index 0f724be..2e3a763 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java
@@ -29,7 +29,7 @@ import java.util.List;
/**
* 租户套餐管理
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysUserController.java
index 2847fc2..1bb8fb1 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysUserController.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/controller/system/SysUserController.java
@@ -43,7 +43,7 @@ import java.util.List;
/**
* 用户信息
*
- * @author Lion Li
+ * @author pangu
*/
@Validated
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysCache.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysCache.java
index e398a20..6d581e0 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysCache.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysCache.java
@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
/**
* 缓存信息
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysClient.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysClient.java
index ee2475d..b3b690b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysClient.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysClient.java
@@ -10,7 +10,7 @@ import java.io.Serial;
/**
* 授权管理对象 sys_client
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-05-15
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysConfig.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysConfig.java
index 6fcb88f..38a4047 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysConfig.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysConfig.java
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
/**
* 参数配置表 sys_config
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDept.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDept.java
index d436a1c..9bbcedf 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDept.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDept.java
@@ -15,7 +15,7 @@ import java.util.List;
/**
* 部门表 sys_dept
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDictData.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDictData.java
index 9d83736..56e246f 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDictData.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDictData.java
@@ -10,7 +10,7 @@ import org.dromara.common.tenant.core.TenantEntity;
/**
* 字典数据表 sys_dict_data
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDictType.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDictType.java
index 955af85..8adcf8c 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDictType.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysDictType.java
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
/**
* 字典类型表 sys_dict_type
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysLogininfor.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysLogininfor.java
index c57dc0a..fc0384a 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysLogininfor.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysLogininfor.java
@@ -11,7 +11,7 @@ import java.util.Date;
/**
* 系统访问记录表 sys_logininfor
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysMenu.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysMenu.java
index 5fe0de5..0668220 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysMenu.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysMenu.java
@@ -16,7 +16,7 @@ import java.util.List;
/**
* 菜单权限表 sys_menu
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysNotice.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysNotice.java
index bfcc2bc..a557d97 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysNotice.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysNotice.java
@@ -10,7 +10,7 @@ import lombok.EqualsAndHashCode;
/**
* 通知公告表 sys_notice
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOperLog.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOperLog.java
index 41a8c59..2ecfe53 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOperLog.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOperLog.java
@@ -11,7 +11,7 @@ import java.util.Date;
/**
* 操作日志记录表 oper_log
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOss.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOss.java
index 2285a5d..244692b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOss.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOss.java
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
/**
* OSS对象存储对象
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOssConfig.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOssConfig.java
index 4b67d63..bd78c8b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOssConfig.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOssConfig.java
@@ -9,7 +9,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
* 对象存储配置对象 sys_oss_config
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOssExt.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOssExt.java
index 15a95e7..c86838c 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOssExt.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysOssExt.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 附件扩展字段对象(存储在 SysOss.ext1 的 JSON 字符串中)
*
- * @author AprilWind
+ * @author pangu
*/
@Data
public class SysOssExt implements Serializable {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysPost.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysPost.java
index 2c985da..90ea1e4 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysPost.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysPost.java
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
/**
* 岗位表 sys_post
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRole.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRole.java
index aa1b19a..013f8f9 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRole.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRole.java
@@ -11,7 +11,7 @@ import lombok.NoArgsConstructor;
/**
* 角色表 sys_role
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRoleDept.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRoleDept.java
index ba77694..9b086bf 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRoleDept.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRoleDept.java
@@ -8,7 +8,7 @@ import lombok.Data;
/**
* 角色和部门关联 sys_role_dept
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRoleMenu.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRoleMenu.java
index ba28f17..eeaedf3 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRoleMenu.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysRoleMenu.java
@@ -8,7 +8,7 @@ import lombok.Data;
/**
* 角色和菜单关联 sys_role_menu
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysSocial.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysSocial.java
index 10f2936..be722ad 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysSocial.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysSocial.java
@@ -11,7 +11,7 @@ import java.io.Serial;
/**
* 社会化关系对象 sys_social
*
- * @author thiszhc
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysTenant.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysTenant.java
index 9800c30..f4d7ac2 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysTenant.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysTenant.java
@@ -13,7 +13,7 @@ import java.util.Date;
/**
* 租户对象 sys_tenant
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysTenantPackage.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysTenantPackage.java
index 5f58e3e..c6251c6 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysTenantPackage.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysTenantPackage.java
@@ -10,7 +10,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
* 租户套餐对象 sys_tenant_package
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUser.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUser.java
index a06172f..52f4c8b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUser.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUser.java
@@ -12,7 +12,7 @@ import java.util.Date;
/**
* 用户对象 sys_user
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserOnline.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserOnline.java
index ba30eb6..c95b072 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserOnline.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserOnline.java
@@ -5,7 +5,7 @@ import lombok.Data;
/**
* 当前在线会话
*
- * @author Lion Li
+ * @author pangu
*/
@Data
public class SysUserOnline {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserPost.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserPost.java
index 119c117..4a97eb9 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserPost.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserPost.java
@@ -8,7 +8,7 @@ import lombok.Data;
/**
* 用户和岗位关联 sys_user_post
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserRole.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserRole.java
index 0a50e80..dc3cc44 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserRole.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/SysUserRole.java
@@ -8,7 +8,7 @@ import lombok.Data;
/**
* 用户和角色关联 sys_user_role
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysClientBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysClientBo.java
index e5f5ffa..7ff8613 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysClientBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysClientBo.java
@@ -14,7 +14,7 @@ import java.util.List;
/**
* 授权管理业务对象 sys_client
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-05-15
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysConfigBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysConfigBo.java
index 257935d..c3915e2 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysConfigBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysConfigBo.java
@@ -11,7 +11,7 @@ import org.dromara.system.domain.SysConfig;
/**
* 参数配置业务对象 sys_config
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java
index 0d8ac84..f88df32 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDeptBo.java
@@ -13,7 +13,7 @@ import org.dromara.system.domain.SysDept;
/**
* 部门业务对象 sys_dept
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java
index 042946c..1da32be 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java
@@ -12,7 +12,7 @@ import org.dromara.system.domain.SysDictData;
/**
* 字典数据业务对象 sys_dict_data
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDictTypeBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDictTypeBo.java
index fcc1ac1..0f719a0 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDictTypeBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysDictTypeBo.java
@@ -13,7 +13,7 @@ import org.dromara.system.domain.SysDictType;
/**
* 字典类型业务对象 sys_dict_type
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java
index 4646162..3bb2997 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java
@@ -11,7 +11,7 @@ import java.util.Map;
/**
* 系统访问记录业务对象 sys_logininfor
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java
index 118c954..5fd2d61 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysMenuBo.java
@@ -17,7 +17,7 @@ import org.dromara.system.domain.SysMenu;
/**
* 菜单权限业务对象 sys_menu
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysNoticeBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysNoticeBo.java
index cdcc575..c00519c 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysNoticeBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysNoticeBo.java
@@ -12,7 +12,7 @@ import org.dromara.system.domain.SysNotice;
/**
* 通知公告业务对象 sys_notice
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java
index f16400a..977fda2 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java
@@ -13,7 +13,7 @@ import java.util.Map;
/**
* 操作日志记录业务对象 sys_oper_log
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-02-07
*/
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOssBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOssBo.java
index ff624c9..84386a0 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOssBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOssBo.java
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
/**
* OSS对象存储分页查询对象 sys_oss
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@EqualsAndHashCode(callSuper = true)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOssConfigBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOssConfigBo.java
index 3dc4328..e4a2f89 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOssConfigBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysOssConfigBo.java
@@ -14,8 +14,8 @@ import lombok.EqualsAndHashCode;
/**
* 对象存储配置业务对象 sys_oss_config
*
- * @author Lion Li
- * @author 孤舟烟雨
+ * @author pangu
+ * @author pangu
* @date 2021-08-13
*/
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysPostBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysPostBo.java
index 09805cd..b089cf6 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysPostBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysPostBo.java
@@ -12,7 +12,7 @@ import org.dromara.system.domain.SysPost;
/**
* 岗位信息业务对象 sys_post
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java
index 5e3e602..55b4f46 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java
@@ -14,7 +14,7 @@ import org.dromara.system.domain.SysRole;
/**
* 角色信息业务对象 sys_role
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java
index cede1e9..a3141ce 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java
@@ -14,7 +14,7 @@ import org.dromara.system.domain.SysSocial;
/**
* 社会化关系业务对象 sys_social
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@NoArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java
index 3757f9a..65dbb01 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java
@@ -15,7 +15,7 @@ import java.util.Date;
/**
* 租户业务对象 sys_tenant
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysTenantPackageBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysTenantPackageBo.java
index b27a406..5ff310e 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysTenantPackageBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysTenantPackageBo.java
@@ -14,7 +14,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
* 租户套餐业务对象 sys_tenant_package
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java
index 11c0166..6759fa8 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java
@@ -15,7 +15,7 @@ import org.dromara.system.domain.SysUser;
/**
* 用户信息业务对象 sys_user
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java
index 846dd79..ba51b1e 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java
@@ -15,7 +15,7 @@ import org.dromara.common.sensitive.core.SensitiveStrategy;
/**
* 个人信息业务处理
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/MetaVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/MetaVo.java
index 840ddaf..f795e70 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/MetaVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/MetaVo.java
@@ -6,7 +6,7 @@ import lombok.Data;
/**
* 路由显示信息
*
- * @author ruoyi
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/ProfileUserVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/ProfileUserVo.java
index 70fc5d3..9663206 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/ProfileUserVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/ProfileUserVo.java
@@ -12,7 +12,7 @@ import java.util.Date;
/**
* 用户信息视图对象 sys_user
*
- * @author Lion Li
+ * @author pangu
*/
@Data
public class ProfileUserVo implements Serializable {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/RouterVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/RouterVo.java
index d56e09d..4277bfb 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/RouterVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/RouterVo.java
@@ -8,7 +8,7 @@ import java.util.List;
/**
* 路由配置信息
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysClientVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysClientVo.java
index 82b0f46..721c250 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysClientVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysClientVo.java
@@ -16,7 +16,7 @@ import java.util.List;
/**
* 授权管理视图对象 sys_client
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-05-15
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java
index a35e132..2fc10e5 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java
@@ -16,7 +16,7 @@ import java.util.Date;
/**
* 参数配置视图对象 sys_config
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java
index c9f5a1f..96ff67a 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java
@@ -17,7 +17,7 @@ import java.util.List;
/**
* 部门视图对象 sys_dept
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java
index d97c00d..d0e8dbe 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java
@@ -16,7 +16,7 @@ import java.util.Date;
/**
* 字典数据视图对象 sys_dict_data
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java
index 4b62226..a11274a 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java
@@ -16,7 +16,7 @@ import java.util.Date;
/**
* 字典类型视图对象 sys_dict_type
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java
index 3086aa7..177c45a 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java
@@ -17,7 +17,7 @@ import java.io.Serializable;
/**
* 系统访问记录视图对象 sys_logininfor
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-02-07
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java
index 5214a33..0b47fb3 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java
@@ -14,7 +14,7 @@ import java.util.List;
/**
* 菜单权限视图对象 sys_menu
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@AutoMapper(target = SysMenu.class)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java
index afe7367..23b9369 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java
@@ -15,7 +15,7 @@ import java.util.Date;
/**
* 通知公告视图对象 sys_notice
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@AutoMapper(target = SysNotice.class)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java
index 00b3344..dec16f7 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java
@@ -16,7 +16,7 @@ import java.util.Date;
/**
* 操作日志记录视图对象 sys_oper_log
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-02-07
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssConfigVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssConfigVo.java
index a030722..57370f3 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssConfigVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssConfigVo.java
@@ -12,8 +12,8 @@ import java.io.Serializable;
/**
* 对象存储配置视图对象 sys_oss_config
*
- * @author Lion Li
- * @author 孤舟烟雨
+ * @author pangu
+ * @author pangu
* @date 2021-08-13
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssUploadVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssUploadVo.java
index 11e0ff8..0e0072b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssUploadVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssUploadVo.java
@@ -5,7 +5,7 @@ import lombok.Data;
/**
* 上传对象信息
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
public class SysOssUploadVo {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java
index fe05651..9733982 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java
@@ -13,7 +13,7 @@ import java.util.Date;
/**
* OSS对象存储视图对象 sys_oss
*
- * @author Lion Li
+ * @author pangu
*/
@Data
@AutoMapper(target = SysOss.class)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java
index 50140b6..0c494df 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java
@@ -17,7 +17,7 @@ import java.util.Date;
/**
* 岗位信息视图对象 sys_post
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java
index 1a205cc..ff6f552 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java
@@ -16,7 +16,7 @@ import java.util.Date;
/**
* 角色信息视图对象 sys_role
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java
index 948dbcc..1128168 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java
@@ -12,7 +12,7 @@ import java.util.Date;
/**
* 社会化关系视图对象 sys_social
*
- * @author thiszhc
+ * @author pangu
*/
@Data
@AutoMapper(target = SysSocial.class)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysTenantPackageVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysTenantPackageVo.java
index ead9229..92bb31f 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysTenantPackageVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysTenantPackageVo.java
@@ -15,7 +15,7 @@ import java.io.Serializable;
/**
* 租户套餐视图对象 sys_tenant_package
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java
index 021c664..89e295d 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java
@@ -16,7 +16,7 @@ import java.io.Serializable;
/**
* 租户视图对象 sys_tenant
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@ExcelIgnoreUnannotated
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java
index c600872..a9ac357 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java
@@ -15,7 +15,7 @@ import java.util.Date;
/**
* 用户对象导出VO
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java
index 4507f63..d5ba9a8 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java
@@ -12,7 +12,7 @@ import java.io.Serializable;
/**
* 用户对象导入VO
*
- * @author Lion Li
+ * @author pangu
*/
@Data
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserInfoVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserInfoVo.java
index e41355d..9c33484 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserInfoVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserInfoVo.java
@@ -7,7 +7,7 @@ import java.util.List;
/**
* 用户信息
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
public class SysUserInfoVo {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
index 755dcf8..fc92771 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
@@ -19,7 +19,7 @@ import java.util.List;
/**
* 用户信息视图对象 sys_user
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
@AutoMapper(target = SysUser.class)
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/UserInfoVo.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/UserInfoVo.java
index 48fa92a..83fd769 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/UserInfoVo.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/domain/vo/UserInfoVo.java
@@ -7,7 +7,7 @@ import java.util.Set;
/**
* 登录用户信息
*
- * @author Michelle.Chung
+ * @author pangu
*/
@Data
public class UserInfoVo {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java
index 66db5f5..b8d9e53 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java
@@ -27,7 +27,7 @@ import java.util.List;
/**
* 系统用户自定义导入
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
public class SysUserImportListener extends AnalysisEventListener implements ExcelListener {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java
index 15bcfb4..faa6a3a 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java
@@ -7,7 +7,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 授权管理Mapper接口
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-05-15
*/
public interface SysClientMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java
index 0eaaee8..5776174 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysConfigMapper.java
@@ -7,7 +7,7 @@ import org.dromara.system.domain.vo.SysConfigVo;
/**
* 参数配置 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysConfigMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java
index 80a99cf..c7e1fe5 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java
@@ -16,7 +16,7 @@ import java.util.List;
/**
* 部门管理 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysDeptMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java
index 7298db3..16c1c80 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 字典表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysDictDataMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDictTypeMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDictTypeMapper.java
index 9a9bdd5..6f91247 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDictTypeMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysDictTypeMapper.java
@@ -7,7 +7,7 @@ import org.dromara.system.domain.vo.SysDictTypeVo;
/**
* 字典表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysDictTypeMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysLogininforMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysLogininforMapper.java
index 85edd1d..171a7a5 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysLogininforMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysLogininforMapper.java
@@ -7,7 +7,7 @@ import org.dromara.system.domain.vo.SysLogininforVo;
/**
* 系统访问日志情况信息 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysLogininforMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java
index 05e2546..be02a3f 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java
@@ -15,7 +15,7 @@ import java.util.Set;
/**
* 菜单表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysMenuMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysNoticeMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysNoticeMapper.java
index 1e27b77..1681666 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysNoticeMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysNoticeMapper.java
@@ -7,7 +7,7 @@ import org.dromara.system.domain.vo.SysNoticeVo;
/**
* 通知公告表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysNoticeMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java
index 5d20404..a558ccd 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java
@@ -7,7 +7,7 @@ import org.dromara.system.domain.vo.SysOperLogVo;
/**
* 操作日志 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysOperLogMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOssConfigMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOssConfigMapper.java
index f93d34d..7882002 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOssConfigMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOssConfigMapper.java
@@ -7,8 +7,8 @@ import org.dromara.system.domain.vo.SysOssConfigVo;
/**
* 对象存储配置Mapper接口
*
- * @author Lion Li
- * @author 孤舟烟雨
+ * @author pangu
+ * @author pangu
* @date 2021-08-13
*/
public interface SysOssConfigMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java
index 3da621d..2e7f4e2 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java
@@ -7,7 +7,7 @@ import org.dromara.system.domain.vo.SysOssVo;
/**
* 文件上传 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysOssMapper extends BaseMapperPlus {
}
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java
index d8d0315..4456fd0 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java
@@ -14,7 +14,7 @@ import java.util.List;
/**
* 岗位信息 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysPostMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleDeptMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleDeptMapper.java
index 3de0bb6..064d28d 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleDeptMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleDeptMapper.java
@@ -6,7 +6,7 @@ import org.dromara.system.domain.SysRoleDept;
/**
* 角色与部门关联表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysRoleDeptMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java
index 9207805..7481830 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java
@@ -16,7 +16,7 @@ import java.util.List;
/**
* 角色表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysRoleMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleMenuMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleMenuMapper.java
index 8aa9dd3..753e055 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleMenuMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysRoleMenuMapper.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 角色与菜单关联表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysRoleMenuMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java
index b942061..f391579 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java
@@ -7,7 +7,7 @@ import org.dromara.system.domain.vo.SysSocialVo;
/**
* 社会化关系Mapper接口
*
- * @author thiszhc
+ * @author pangu
*/
public interface SysSocialMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java
index 7e1167a..876a6a0 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysTenantMapper.java
@@ -7,7 +7,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 租户Mapper接口
*
- * @author Michelle.Chung
+ * @author pangu
*/
public interface SysTenantMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysTenantPackageMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysTenantPackageMapper.java
index 10ca170..b888c8f 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysTenantPackageMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysTenantPackageMapper.java
@@ -7,7 +7,7 @@ import org.dromara.system.domain.vo.SysTenantPackageVo;
/**
* 租户套餐Mapper接口
*
- * @author Michelle.Chung
+ * @author pangu
*/
public interface SysTenantPackageMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java
index 2cfd3db..a3cd1bd 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java
@@ -17,7 +17,7 @@ import java.util.List;
/**
* 用户表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysUserMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserPostMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserPostMapper.java
index 07c1371..dea30f2 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserPostMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserPostMapper.java
@@ -6,7 +6,7 @@ import org.dromara.system.domain.SysUserPost;
/**
* 用户与岗位关联表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysUserPostMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java
index 4c1c8b9..cda019b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 用户与角色关联表 数据层
*
- * @author Lion Li
+ * @author pangu
*/
public interface SysUserRoleMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/runner/SystemApplicationRunner.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/runner/SystemApplicationRunner.java
index 27dad7d..7d23cc2 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/runner/SystemApplicationRunner.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/runner/SystemApplicationRunner.java
@@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
/**
* 初始化 system 模块对应业务数据
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysClientService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysClientService.java
index 9e742fd..4c3bb12 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysClientService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysClientService.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* 客户端管理Service接口
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-06-18
*/
public interface ISysClientService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysConfigService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysConfigService.java
index a101643..1ca93b7 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysConfigService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysConfigService.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 参数配置 服务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysConfigService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDataScopeService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDataScopeService.java
index 3f252f7..1905ef3 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDataScopeService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDataScopeService.java
@@ -3,7 +3,7 @@ package org.dromara.system.service;
/**
* 通用 数据权限 服务
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysDataScopeService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDeptService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDeptService.java
index 1397443..eb8ab5c 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDeptService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDeptService.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* 部门管理 服务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysDeptService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDictDataService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDictDataService.java
index fdabd31..4adf79a 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDictDataService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDictDataService.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 字典 业务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysDictDataService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java
index e3a04de..e84ba55 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* 字典 业务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysDictTypeService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysLogininforService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysLogininforService.java
index 1bc1ea9..79f058e 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysLogininforService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysLogininforService.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 系统访问日志情况信息 服务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysLogininforService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysMenuService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysMenuService.java
index 8888c3c..3a5aff2 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysMenuService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysMenuService.java
@@ -12,7 +12,7 @@ import java.util.Set;
/**
* 菜单 业务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysMenuService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysNoticeService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysNoticeService.java
index 8482cd0..1a159f9 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysNoticeService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysNoticeService.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 公告 服务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysNoticeService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOperLogService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOperLogService.java
index e8b340c..f4f3849 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOperLogService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOperLogService.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 操作日志 服务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysOperLogService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOssConfigService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOssConfigService.java
index 2f6dfc9..2459a9c 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOssConfigService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOssConfigService.java
@@ -10,8 +10,8 @@ import java.util.Collection;
/**
* 对象存储配置Service接口
*
- * @author Lion Li
- * @author 孤舟烟雨
+ * @author pangu
+ * @author pangu
* @date 2021-08-13
*/
public interface ISysOssConfigService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOssService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOssService.java
index 057c068..27437b8 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOssService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysOssService.java
@@ -15,7 +15,7 @@ import java.util.List;
/**
* 文件上传 服务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysOssService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysPermissionService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysPermissionService.java
index 0116df5..707bb69 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysPermissionService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysPermissionService.java
@@ -5,7 +5,7 @@ import java.util.Set;
/**
* 用户权限处理
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysPermissionService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysPostService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysPostService.java
index 1caaab2..e8ed858 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysPostService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysPostService.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 岗位信息 服务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysPostService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysRoleService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysRoleService.java
index abbfc79..f41fdfd 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysRoleService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysRoleService.java
@@ -12,7 +12,7 @@ import java.util.Set;
/**
* 角色业务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysRoleService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysSocialService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysSocialService.java
index cc7016e..9671871 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysSocialService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysSocialService.java
@@ -8,7 +8,7 @@ import java.util.List;
/**
* 社会化关系Service接口
*
- * @author thiszhc
+ * @author pangu
*/
public interface ISysSocialService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysTenantPackageService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysTenantPackageService.java
index d060b68..0fbb72d 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysTenantPackageService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysTenantPackageService.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* 租户套餐Service接口
*
- * @author Michelle.Chung
+ * @author pangu
*/
public interface ISysTenantPackageService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysTenantService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysTenantService.java
index 1c763e0..ddaf1af 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysTenantService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysTenantService.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* 租户Service接口
*
- * @author Michelle.Chung
+ * @author pangu
*/
public interface ISysTenantService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysUserService.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysUserService.java
index 9e255f9..994af6f 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysUserService.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/ISysUserService.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* 用户 业务层
*
- * @author Lion Li
+ * @author pangu
*/
public interface ISysUserService {
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java
index fc469ad..f0e3ff5 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java
@@ -29,7 +29,7 @@ import java.util.List;
/**
* 客户端管理Service业务层处理
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2023-06-18
*/
@Slf4j
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java
index 6b0b2a2..80b0296 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysConfigServiceImpl.java
@@ -35,7 +35,7 @@ import java.util.Map;
/**
* 参数配置 服务层实现
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java
index e300802..2574445 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java
@@ -22,7 +22,7 @@ import java.util.List;
* 注意: 此Service内不允许调用标注`数据权限`注解的方法
* 例如: deptMapper.selectList 此 selectList 方法标注了`数据权限`注解 会出现循环解析的问题
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service("sdss")
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
index 4e6db15..598eb6b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
@@ -41,7 +41,7 @@ import java.util.*;
/**
* 部门管理 服务实现
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java
index 018f043..0bf4d39 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDictDataServiceImpl.java
@@ -25,7 +25,7 @@ import java.util.List;
/**
* 字典 业务层处理
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
index 6d4d9fe..94d80b0 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
/**
* 字典 业务层处理
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java
index c388d99..9ce0449 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java
@@ -36,7 +36,7 @@ import java.util.Map;
/**
* 系统访问日志情况信息 服务层处理
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Slf4j
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java
index 0c69b1f..67c32c3 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java
@@ -38,7 +38,7 @@ import java.util.Set;
/**
* 菜单 业务层处理
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysNoticeServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysNoticeServiceImpl.java
index aa4135f..e90e998 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysNoticeServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysNoticeServiceImpl.java
@@ -25,7 +25,7 @@ import java.util.List;
/**
* 公告 服务层实现
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java
index 9399c90..68322fb 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java
@@ -27,7 +27,7 @@ import java.util.Map;
/**
* 操作日志 服务层处理
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOssConfigServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOssConfigServiceImpl.java
index 539c1fc..0fefed8 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOssConfigServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOssConfigServiceImpl.java
@@ -33,8 +33,8 @@ import java.util.List;
/**
* 对象存储配置Service业务层处理
*
- * @author Lion Li
- * @author 孤舟烟雨
+ * @author pangu
+ * @author pangu
* @date 2021-08-13
*/
@Slf4j
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
index d920ddb..2b3be31 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
@@ -47,7 +47,7 @@ import java.util.Map;
/**
* 文件上传 服务层实现
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysPermissionServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysPermissionServiceImpl.java
index 4bf6974..1439743 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysPermissionServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysPermissionServiceImpl.java
@@ -15,7 +15,7 @@ import java.util.Set;
/**
* 用户权限处理
*
- * @author ruoyi
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
index 56a0c4b..78420da 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
@@ -31,7 +31,7 @@ import java.util.Map;
/**
* 岗位信息 服务层处理
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java
index 53d270f..45e885d 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java
@@ -43,7 +43,7 @@ import java.util.*;
/**
* 角色 业务层处理
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java
index 8a0d45e..c446685 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysSensitiveServiceImpl.java
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
* 默认管理员不过滤
* 需自行根据业务重写实现
*
- * @author Lion Li
+ * @author pangu
* @version 3.6.0
*/
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java
index 9c54cbc..fa2f4e9 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java
@@ -17,7 +17,7 @@ import java.util.List;
/**
* 社会化关系Service业务层处理
*
- * @author thiszhc
+ * @author pangu
* @date 2023-06-12
*/
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java
index 7b31f7b..abe7650 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTaskAssigneeServiceImpl.java
@@ -28,7 +28,7 @@ import java.util.Map;
/**
* 工作流设计器获取任务执行人
*
- * @author Lion Li
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTenantPackageServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTenantPackageServiceImpl.java
index baefdf7..529662b 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTenantPackageServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTenantPackageServiceImpl.java
@@ -29,7 +29,7 @@ import java.util.List;
/**
* 租户套餐Service业务层处理
*
- * @author Michelle.Chung
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
index efbb040..3340321 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
@@ -40,7 +40,7 @@ import java.util.*;
/**
* 租户Service业务层处理
*
- * @author Michelle.Chung
+ * @author pangu
*/
@RequiredArgsConstructor
@Service
diff --git a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
index 39ad4cb..16ba4db 100644
--- a/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
+++ b/backend/pangu-modules/pangu-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
@@ -42,7 +42,7 @@ import java.util.*;
/**
* 用户 业务层处理
*
- * @author Lion Li
+ * @author pangu
*/
@Slf4j
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java
index e844398..0d199e8 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java
@@ -20,7 +20,7 @@ import java.lang.annotation.Target;
*
* 使用此注解时,可以动态控制工作流功能是否启用,而不需要修改代码逻辑
*
- * @author Lion Li
+ * @author pangu
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java
index 88372f0..a5d110c 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/constant/FlowConstant.java
@@ -4,7 +4,7 @@ package org.dromara.workflow.common.constant;
/**
* 工作流常量
*
- * @author may
+ * @author pangu
*/
public interface FlowConstant {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
index 3ad9cf9..959a749 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 按钮权限枚举
*
- * @author AprilWind
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/CopySettingEnum.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/CopySettingEnum.java
index a74af3b..fa0d602 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/CopySettingEnum.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/CopySettingEnum.java
@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 抄送设置枚举
*
- * @author AprilWind
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java
index 0fe5cfe..3041b21 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/MessageTypeEnum.java
@@ -11,7 +11,7 @@ import java.util.stream.Collectors;
/**
* 消息类型枚举
*
- * @author may
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java
index 9926a8e..2383764 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/NodeExtEnum.java
@@ -3,7 +3,7 @@ package org.dromara.workflow.common.enums;
/**
* 节点扩展属性枚举
*
- * @author AprilWind
+ * @author pangu
*/
public interface NodeExtEnum {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java
index fff2688..3c4289d 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeEnum.java
@@ -12,7 +12,7 @@ import java.util.stream.Collectors;
/**
* 任务分配人枚举
*
- * @author AprilWind
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeType.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeType.java
index eed1b91..0ade5cf 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeType.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskAssigneeType.java
@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 人员类型
*
- * @author AprilWind
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskStatusEnum.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskStatusEnum.java
index c7bced8..6cb9a24 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskStatusEnum.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/TaskStatusEnum.java
@@ -11,7 +11,7 @@ import java.util.stream.Collectors;
/**
* 任务状态枚举
*
- * @author may
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/VariablesEnum.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/VariablesEnum.java
index dbd54ed..a144c7f 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/VariablesEnum.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/common/enums/VariablesEnum.java
@@ -6,7 +6,7 @@ import lombok.Getter;
/**
* 变量枚举
*
- * @author AprilWind
+ * @author pangu
*/
@Getter
@AllArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java
index 08f1808..96cea05 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Configuration;
/**
* warmFlow配置
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Configuration
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java
index 3007921..ce6e039 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java
@@ -26,7 +26,7 @@ import java.util.List;
/**
* 流程分类
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Validated
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java
index 54e412a..c2bdd48 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java
@@ -26,7 +26,7 @@ import java.util.List;
/**
* 流程定义管理 控制层
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Validated
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java
index a8a5fc6..5baa6fb 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java
@@ -27,7 +27,7 @@ import java.util.Map;
/**
* 流程实例管理 控制层
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Validated
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwSpelController.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwSpelController.java
index 7d3932e..8f24a17 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwSpelController.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwSpelController.java
@@ -25,7 +25,7 @@ import java.util.List;
/**
* 流程spel表达式定义
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2025-07-04
*/
@ConditionalOnEnable
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java
index f372fbb..5f6d90b 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java
@@ -26,7 +26,7 @@ import java.util.List;
/**
* 任务管理 控制层
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Validated
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java
index 39bb41f..0d62de7 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java
@@ -27,7 +27,7 @@ import java.util.List;
/**
* 请假
*
- * @author may
+ * @author pangu
* @date 2023-07-21
*/
@ConditionalOnEnable
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowCategory.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowCategory.java
index 28918f1..ffe7afd 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowCategory.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowCategory.java
@@ -15,7 +15,7 @@ import java.util.List;
/**
* 流程分类对象 wf_category
*
- * @author may
+ * @author pangu
* @date 2023-06-27
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowInstanceBizExt.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowInstanceBizExt.java
index 932b038..e39c76f 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowInstanceBizExt.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowInstanceBizExt.java
@@ -12,7 +12,7 @@ import java.io.Serial;
/**
* 流程实例业务扩展对象 flow_instance_biz_ext
*
- * @author may
+ * @author pangu
* @date 2025-08-05
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowSpel.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowSpel.java
index 89a7ae9..1561399 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowSpel.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/FlowSpel.java
@@ -12,7 +12,7 @@ import java.io.Serial;
/**
* 流程spel表达式定义对象 flow_spel
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2025-07-04
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java
index b54873c..db58906 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java
@@ -12,7 +12,7 @@ import java.util.Date;
/**
* 请假对象 test_leave
*
- * @author may
+ * @author pangu
* @date 2023-07-21
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java
index a67a1f7..3eda048 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java
@@ -15,7 +15,7 @@ import java.util.Objects;
/**
* 驳回参数请求
*
- * @author may
+ * @author pangu
*/
@Data
public class BackProcessBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java
index e246293..a24489a 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java
@@ -14,7 +14,7 @@ import java.util.Objects;
/**
* 办理任务请求对象
*
- * @author may
+ * @author pangu
*/
@Data
public class CompleteTaskBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCancelBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCancelBo.java
index 31742ea..84e7683 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCancelBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCancelBo.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* 撤销任务请求对象
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowCancelBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCategoryBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCategoryBo.java
index fd626eb..1046736 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCategoryBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCategoryBo.java
@@ -13,7 +13,7 @@ import org.dromara.workflow.domain.FlowCategory;
/**
* 流程分类业务对象 wf_category
*
- * @author may
+ * @author pangu
* @date 2023-06-27
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java
index a45e521..0aef254 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java
@@ -9,7 +9,7 @@ import java.io.Serializable;
/**
* 抄送
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowCopyBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInstanceBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInstanceBo.java
index bb1621f..a42b122 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInstanceBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInstanceBo.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 流程实例请求对象
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowInstanceBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInvalidBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInvalidBo.java
index 297bd00..25d89e4 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInvalidBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowInvalidBo.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* 作废请求对象
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowInvalidBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowNextNodeBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowNextNodeBo.java
index 12f0653..4d3d561 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowNextNodeBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowNextNodeBo.java
@@ -11,7 +11,7 @@ import java.util.Objects;
/**
* 下一节点信息
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowNextNodeBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowSpelBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowSpelBo.java
index da78935..491114c 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowSpelBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowSpelBo.java
@@ -12,7 +12,7 @@ import org.dromara.workflow.domain.FlowSpel;
/**
* 流程spel表达式定义业务对象 flow_spel
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2025-07-04
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java
index 7540564..c4c3b34 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTaskBo.java
@@ -12,7 +12,7 @@ import java.util.Map;
/**
* 任务请求对象
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowTaskBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTerminationBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTerminationBo.java
index 897fc21..9c848b9 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTerminationBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowTerminationBo.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* 终止任务请求对象
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowTerminationBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowUrgeTaskBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowUrgeTaskBo.java
index 8e51b12..3ac6c4f 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowUrgeTaskBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowUrgeTaskBo.java
@@ -11,7 +11,7 @@ import java.util.List;
/**
* 流程变量参数
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowUrgeTaskBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowVariableBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowVariableBo.java
index 9361299..bf69251 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowVariableBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowVariableBo.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* 流程变量参数
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowVariableBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java
index b31f4fa..61939d3 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java
@@ -16,7 +16,7 @@ import java.util.Objects;
/**
* 启动流程对象
*
- * @author may
+ * @author pangu
*/
@Data
public class StartProcessBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java
index 4348e31..3130940 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java
@@ -14,7 +14,7 @@ import java.util.List;
* 任务操作业务对象,用于描述任务委派、转办、加签等操作的必要参数
* 包含了用户ID、任务ID、任务相关的消息、以及加签/减签的用户ID
*
- * @author AprilWind
+ * @author pangu
*/
@Data
public class TaskOperationBo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java
index 2463569..78884fd 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java
@@ -17,7 +17,7 @@ import java.util.Date;
/**
* 请假业务对象 test_leave
*
- * @author may
+ * @author pangu
* @date 2023-07-21
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/ButtonPermissionVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/ButtonPermissionVo.java
index 7175e5e..603c579 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/ButtonPermissionVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/ButtonPermissionVo.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
/**
* 按钮权限
*
- * @author may
+ * @author pangu
* @date 2025-02-28
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java
index c5427a5..783eaf5 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java
@@ -15,7 +15,7 @@ import java.util.Date;
/**
* 流程分类视图对象 wf_category
*
- * @author may
+ * @author pangu
* @date 2023-06-27
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCopyVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCopyVo.java
index 67ef9e2..f272eed 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCopyVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCopyVo.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* 抄送对象
*
- * @author AprilWind
+ * @author pangu
*/
@Data
public class FlowCopyVo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java
index aef7573..c43ad16 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java
@@ -11,7 +11,7 @@ import java.util.Date;
/**
* 流程定义视图
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowDefinitionVo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java
index a9f6a60..0a6ec58 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java
@@ -15,7 +15,7 @@ import java.util.List;
/**
* 历史任务视图
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowHisTaskVo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java
index b03f73b..9fefa6b 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java
@@ -10,7 +10,7 @@ import java.util.Date;
/**
* 流程实例视图
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowInstanceVo {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowSpelVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowSpelVo.java
index 76ead83..d24827a 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowSpelVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowSpelVo.java
@@ -16,7 +16,7 @@ import java.util.Date;
/**
* 流程spel表达式定义视图对象 flow_spel
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2025-07-04
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java
index ffe8049..c3ba94f 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java
@@ -16,7 +16,7 @@ import java.util.Map;
/**
* 任务视图
*
- * @author may
+ * @author pangu
*/
@Data
public class FlowTaskVo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/NodeExtVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/NodeExtVo.java
index 5fb3380..a8e1553 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/NodeExtVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/NodeExtVo.java
@@ -13,7 +13,7 @@ import java.util.Set;
*
* 用于封装从扩展属性 JSON 中解析出的各类信息,包括按钮权限、抄送对象和自定义参数。
*
- * @author AprilWind
+ * @author pangu
*/
@Data
public class NodeExtVo implements Serializable {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java
index 2f34158..a4d428f 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java
@@ -15,7 +15,7 @@ import java.util.Date;
/**
* 请假视图对象 test_leave
*
- * @author may
+ * @author pangu
* @date 2023-07-21
*/
@Data
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
index 1965f67..93b37d9 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
@@ -16,7 +16,7 @@ import java.util.Map;
/**
* 流程监听服务
*
- * @author may
+ * @author pangu
* @date 2024-06-02
*/
@ConditionalOnEnable
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java
index e908a20..3727ea8 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java
@@ -20,7 +20,7 @@ import java.util.List;
/**
* 办理人权限处理器
*
- * @author AprilWind
+ * @author pangu
*/
@ConditionalOnEnable
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java
index efd24ff..4f5405e 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java
@@ -39,7 +39,7 @@ import java.util.Set;
/**
* 全局任务办理监听
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Component
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java
index 7199d5c..1ccfe3a 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java
@@ -15,7 +15,7 @@ import java.util.stream.Stream;
/**
* 流程分类Mapper接口
*
- * @author may
+ * @author pangu
* @date 2023-06-27
*/
public interface FlwCategoryMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceBizExtMapper.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceBizExtMapper.java
index e11613c..3b0c529 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceBizExtMapper.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceBizExtMapper.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 流程实例业务扩展Mapper接口
*
- * @author may
+ * @author pangu
* @date 2025-08-05
*/
public interface FlwInstanceBizExtMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceMapper.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceMapper.java
index 92809c8..40988ab 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceMapper.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwInstanceMapper.java
@@ -10,7 +10,7 @@ import org.dromara.workflow.domain.vo.FlowInstanceVo;
/**
* 实例信息Mapper接口
*
- * @author may
+ * @author pangu
* @date 2024-03-02
*/
public interface FlwInstanceMapper {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwSpelMapper.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwSpelMapper.java
index 12dff9f..b809408 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwSpelMapper.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwSpelMapper.java
@@ -7,7 +7,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 流程spel表达式定义Mapper接口
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2025-07-04
*/
public interface FlwSpelMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java
index 0d0422d..3264f11 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/FlwTaskMapper.java
@@ -13,7 +13,7 @@ import org.dromara.workflow.domain.vo.FlowTaskVo;
/**
* 任务信息Mapper接口
*
- * @author may
+ * @author pangu
* @date 2024-03-02
*/
public interface FlwTaskMapper {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/TestLeaveMapper.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/TestLeaveMapper.java
index cd1edba..dce5274 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/TestLeaveMapper.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/mapper/TestLeaveMapper.java
@@ -7,7 +7,7 @@ import org.dromara.workflow.domain.vo.TestLeaveVo;
/**
* 请假Mapper接口
*
- * @author may
+ * @author pangu
* @date 2023-07-21
*/
public interface TestLeaveMapper extends BaseMapperPlus {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/rule/SpelRuleComponent.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/rule/SpelRuleComponent.java
index 7498db5..96fb5a4 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/rule/SpelRuleComponent.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/rule/SpelRuleComponent.java
@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
* 通过该组件统一管理流程定义中的spel表达式
*
*
- * @author Michelle.Chung
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java
index f66882b..417d444 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwCategoryService.java
@@ -9,7 +9,7 @@ import java.util.List;
/**
* 流程分类Service接口
*
- * @author may
+ * @author pangu
*/
public interface IFlwCategoryService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java
index f809f47..e8264cf 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java
@@ -7,7 +7,7 @@ import java.util.List;
/**
* 通用 工作流服务
*
- * @author LionLi
+ * @author pangu
*/
public interface IFlwCommonService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java
index 54743b7..98b2f50 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java
@@ -13,7 +13,7 @@ import java.util.List;
/**
* 流程定义 服务层
*
- * @author may
+ * @author pangu
*/
public interface IFlwDefinitionService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java
index 814b89d..435b0e4 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwInstanceService.java
@@ -15,7 +15,7 @@ import java.util.Map;
/**
* 流程实例 服务层
*
- * @author may
+ * @author pangu
*/
public interface IFlwInstanceService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwNodeExtService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwNodeExtService.java
index a94a225..3c5178f 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwNodeExtService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwNodeExtService.java
@@ -7,7 +7,7 @@ import java.util.Map;
/**
* 流程节点扩展属性 服务层
*
- * @author AprilWind
+ * @author pangu
*/
public interface IFlwNodeExtService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwSpelService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwSpelService.java
index 7c44534..04b7b86 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwSpelService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwSpelService.java
@@ -14,7 +14,7 @@ import java.util.Map;
/**
* 流程spel表达式定义Service接口
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2025-07-04
*/
public interface IFlwSpelService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java
index 830abaf..f938acc 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java
@@ -7,7 +7,7 @@ import java.util.List;
/**
* 流程设计器-获取办理人
*
- * @author AprilWind
+ * @author pangu
*/
public interface IFlwTaskAssigneeService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java
index f9dc45e..1f122c6 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java
@@ -18,7 +18,7 @@ import java.util.List;
/**
* 任务 服务层
*
- * @author may
+ * @author pangu
*/
public interface IFlwTaskService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/ITestLeaveService.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/ITestLeaveService.java
index 748a2b1..46db613 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/ITestLeaveService.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/ITestLeaveService.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 请假Service接口
*
- * @author may
+ * @author pangu
* @date 2023-07-21
*/
public interface ITestLeaveService {
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java
index 883a967..27b97b7 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java
@@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
/**
* 流程分类名称翻译实现
*
- * @author AprilWind
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java
index 3515ebb..063eacc 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java
@@ -32,7 +32,7 @@ import java.util.List;
/**
* 流程分类Service业务层处理
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@RequiredArgsConstructor
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwChartExtServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwChartExtServiceImpl.java
index cb82cbe..1a530f2 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwChartExtServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwChartExtServiceImpl.java
@@ -37,7 +37,7 @@ import java.util.stream.Collectors;
/**
* 流程图提示信息
*
- * @author AprilWind
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java
index 8d4708b..01c5a47 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java
@@ -29,7 +29,7 @@ import java.util.Set;
/**
* 工作流工具
*
- * @author LionLi
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java
index 1cc61fe..e6c408f 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java
@@ -50,7 +50,7 @@ import static org.dromara.common.core.constant.TenantConstants.DEFAULT_TENANT_ID
/**
* 流程定义 服务层实现
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java
index 4de669d..663c0ae 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java
@@ -56,7 +56,7 @@ import java.util.function.Function;
/**
* 流程实例 服务层实现
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
index ce845dc..ae33bbc 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java
@@ -30,7 +30,7 @@ import java.util.stream.Collectors;
/**
* 流程设计器-节点扩展属性
*
- * @author AprilWind
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwSpelServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwSpelServiceImpl.java
index 3790cdf..58b2897 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwSpelServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwSpelServiceImpl.java
@@ -30,7 +30,7 @@ import java.util.Map;
/**
* 流程spel表达式定义Service业务层处理
*
- * @author Michelle.Chung
+ * @author pangu
* @date 2025-07-04
*/
@ConditionalOnEnable
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java
index 9e9c091..8668998 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
/**
* 流程设计器-获取办理人权限设置列表
*
- * @author AprilWind
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java
index 0a8bdc7..9f268b3 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java
@@ -70,7 +70,7 @@ import static org.dromara.workflow.common.constant.FlowConstant.*;
/**
* 任务 服务层实现
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@Slf4j
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
index ec0be3c..a13413c 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
@@ -40,7 +40,7 @@ import java.util.Map;
/**
* 请假Service业务层处理
*
- * @author may
+ * @author pangu
* @date 2023-07-21
*/
@ConditionalOnEnable
diff --git a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
index 8d6b8d2..a40fca0 100644
--- a/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
+++ b/backend/pangu-modules/pangu-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
@@ -27,7 +27,7 @@ import java.util.Map;
/**
* 通用 工作流服务实现
*
- * @author may
+ * @author pangu
*/
@ConditionalOnEnable
@RequiredArgsConstructor
diff --git a/docs/05-模块技术方案/会员管理/快速开始.md b/docs/05-模块技术方案/会员管理/快速开始.md
index ad7f3cb..a609cf3 100644
--- a/docs/05-模块技术方案/会员管理/快速开始.md
+++ b/docs/05-模块技术方案/会员管理/快速开始.md
@@ -39,7 +39,7 @@ mysql -u root -p
USE pangu;
# 3. 执行建表SQL
-SOURCE /Users/felix/hbxhWorkSpace/pangu-user-platform/sql/pangu_member.sql;
+SOURCE /Users/felix/pgWorkSpace/pangu-user-platform/sql/pangu_member.sql;
# 4. 验证表是否创建成功
SHOW TABLES LIKE 'pg_member';
@@ -60,7 +60,7 @@ SHOW TABLES LIKE 'pg_member';
```bash
# 1. 进入项目目录
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform
+cd /Users/felix/pgWorkSpace/pangu-user-platform
# 2. 编译项目(如果还没编译)
mvn clean package -DskipTests
@@ -77,7 +77,7 @@ java -jar pangu-admin/target/pangu-admin.jar
```bash
# 1. 进入前端目录
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+cd /Users/felix/pgWorkSpace/pangu-user-platform/frontend
# 2. 安装依赖(如果还没安装)
npm install
@@ -333,7 +333,7 @@ curl http://localhost:8080/api/member/list
```bash
# 1. 进入项目目录
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform
+cd /Users/felix/pgWorkSpace/pangu-user-platform
# 2. 运行测试
mvn test -Dtest=MemberServiceTest
diff --git a/docs/05-模块技术方案/学校管理/快速开始.md b/docs/05-模块技术方案/学校管理/快速开始.md
index e90ab6a..74e4127 100644
--- a/docs/05-模块技术方案/学校管理/快速开始.md
+++ b/docs/05-模块技术方案/学校管理/快速开始.md
@@ -42,7 +42,7 @@ CREATE DATABASE IF NOT EXISTS pangu DEFAULT CHARACTER SET utf8mb4;
USE pangu;
# 4. 执行建表SQL
-SOURCE /Users/felix/hbxhWorkSpace/pangu-user-platform/sql/pangu_school.sql;
+SOURCE /Users/felix/pgWorkSpace/pangu-user-platform/sql/pangu_school.sql;
# 5. 验证表是否创建成功
SHOW TABLES LIKE 'pg_school%';
@@ -65,7 +65,7 @@ SHOW TABLES LIKE 'pg_school%';
```bash
# 1. 进入项目目录
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform
+cd /Users/felix/pgWorkSpace/pangu-user-platform
# 2. 编译项目(如果还没编译)
mvn clean package -DskipTests
@@ -94,7 +94,7 @@ Application started successfully on port 8080
```bash
# 1. 进入前端目录
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+cd /Users/felix/pgWorkSpace/pangu-user-platform/frontend
# 2. 安装依赖(如果还没安装)
npm install
@@ -339,7 +339,7 @@ curl http://localhost:8080/api/school/tree
```bash
# 1. 进入项目目录
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform
+cd /Users/felix/pgWorkSpace/pangu-user-platform
# 2. 运行测试
mvn test -Dtest=SchoolServiceTest
diff --git a/docs/05-模块技术方案/开放API-学生列表授权-技术设计方案.md b/docs/05-模块技术方案/开放API-学生列表授权-技术设计方案.md
new file mode 100644
index 0000000..b521866
--- /dev/null
+++ b/docs/05-模块技术方案/开放API-学生列表授权-技术设计方案.md
@@ -0,0 +1,152 @@
+# 开放API-学生列表授权 技术设计方案
+
+> 作者:pangu
+> 创建时间:2026-02-04
+> 评审状态:待评审
+
+---
+
+## 一、总体架构
+
+### 1.1 请求链路
+
+```
+外部请求 GET /open/api/student/list?pageNum=1&pageSize=10
+ → 不经过 Sa-Token 登录校验(security.excludes 排除 /open/api/**)
+ → ApiAuthInterceptor 拦截 /open/api/**
+ → 校验 X-App-Id、X-Timestamp、X-Sign
+ → 查应用信息、校验接口授权
+ → OpenApiStudentController.list() → IPgStudentService.selectPageList()
+ → 返回 TableDataInfo
+```
+
+### 1.2 模块与职责
+
+| 模块/组件 | 职责 |
+|-----------|------|
+| Security 配置 | 将 `/open/api/**` 加入排除路径,不校验登录 |
+| ApiAuthInterceptor | 仅对 `/open/api/**` 生效:校验头、签名、接口授权 |
+| OpenApiStudentController | 提供 GET `/open/api/student/list`,委托现有 StudentService |
+| IPgApplicationService | 新增 selectByAppCode、checkApiPermission;新增/编辑时同步 pg_app_api |
+| PgAppApiMapper | 新增按 appCode 查授权 api_path 列表方法(联表 pg_api_dict) |
+| pg_api_dict | 增加「学生列表」开放接口记录,api_path=/open/api/student/list |
+
+---
+
+## 二、安全与鉴权
+
+### 2.1 请求头约定
+
+| 请求头 | 必填 | 说明 |
+|--------|------|------|
+| X-App-Id | 是 | 应用编码(appCode) |
+| X-Timestamp | 是 | 当前时间毫秒时间戳,防重放 |
+| X-Sign | 是 | 签名,见 2.2 |
+
+### 2.2 签名算法
+
+1. 将请求参数(Query 与 Body,仅一层 key-value)按参数名 ASCII 升序排序。
+2. 拼接为:`key1=value1&key2=value2&...&appSecret=应用密钥`(appSecret 为服务端存储的密钥)。
+3. 对上述字符串做 **MD5**,结果转为 **大写**,即 X-Sign。
+
+示例(GET,无 body):
+
+- 请求:GET /open/api/student/list?pageNum=1&pageSize=10
+- 假设 appSecret=abc123
+- 参数字符串:`pageNum=1&pageSize=10&appSecret=abc123`
+- sign = MD5(参数字符串).toUpperCase()
+
+### 2.3 时间戳防重放
+
+- 服务端收到 X-Timestamp 后,与当前服务器时间比较,若 |now - timestamp| > 5 分钟,返回 400「请求已过期」。
+
+### 2.4 接口授权校验
+
+- 请求 URI 取 path(如 `/open/api/student/list`),与当前应用在 pg_app_api + pg_api_dict 中关联的 api_path 集合比对;不在集合内则返回 403「无权访问该接口」。
+
+---
+
+## 三、接口设计
+
+### 3.1 开放接口:学生列表
+
+| 项目 | 说明 |
+|------|------|
+| 方法 | GET |
+| 路径 | /open/api/student/list |
+| 鉴权 | 应用签名 + 接口授权 |
+| 参数 | 与现有 /business/student/list 一致:studentName、studentNo、schoolId、schoolGradeId、schoolClassId、status 等;分页 pageNum、pageSize |
+| 响应 | 与现有一致:`{ code, msg, rows, total }`(TableDataInfo) |
+
+### 3.2 错误响应
+
+| HTTP 状态 | 场景 | 示例 msg |
+|-----------|------|----------|
+| 400 | 缺少认证参数 / 时间戳格式错误 / 请求已过期 | 缺少认证参数 |
+| 401 | 应用不存在 / 应用已停用 / 签名验证失败 | 签名验证失败 |
+| 403 | 未授权该接口 | 无权访问该接口 |
+
+---
+
+## 四、数据与缓存
+
+### 4.1 表使用
+
+- **pg_application**:已有;需按 app_code 查询(selectByAppCode)。
+- **pg_api_dict**:已有;需新增一条 api_path=`/open/api/student/list` 的记录,供授权勾选与校验。
+- **pg_app_api**:已有;新增/编辑应用时按 apiCodes 写入/更新;鉴权时按 app_id 联表 pg_api_dict 得到 api_path 列表。
+
+### 4.2 授权生效
+
+- 方案 A:每次请求查库(或查缓存)。
+- 方案 B:应用授权变更时更新缓存,校验时先查缓存。
+本期可采用**不缓存**或**短 TTL(如 5 分钟)缓存**「应用授权 path 集合」,技术实现时在 Service 中按 appCode 查授权 path 列表即可;若后续性能有要求再加 Redis。
+
+---
+
+## 五、实现清单
+
+### 5.1 配置
+
+- **application.yml**:security.excludes 增加 `/open/api/**`。
+
+### 5.2 应用模块(application)
+
+- **IPgApplicationService**:新增 `PgApplication selectByAppCode(String appCode)`、`boolean checkApiPermission(String appCode, String apiPath)`。
+- **PgApplicationServiceImpl**:实现上述方法;insert/update 时增加对 apiCodes 的处理,同步 pg_app_api(先删后插)。
+- **PgApplication**:增加 `@TableField(exist = false) private List apiCodes;`,用于接收前端与返回详情。
+- **PgAppApiMapper**:新增方法,如 `List selectApiPathsByAppCode(String appCode)`(联表 pg_api_dict 取 api_path)。
+- **PgAppApiMapper.xml**:对应 SQL(a.app_id = app_id 且 a.api_id = d.api_id,d.api_path)。
+
+### 5.3 开放 API 模块(新建或放在 business 下)
+
+- **OpenApiConfig**:WebMvcConfigurer,注册 ApiAuthInterceptor,仅 addPathPatterns("/open/api/**")。
+- **ApiAuthInterceptor**:preHandle 中取 X-App-Id、X-Timestamp、X-Sign;校验时间戳 → selectByAppCode → 校验签名 → checkApiPermission(uri) → 通过则 return true。
+- **OpenApiStudentController**:GET `/open/api/student/list`,参数与 PgStudentController.list 一致,委托 IPgStudentService.selectPageList。
+
+### 5.4 接口字典数据
+
+- 在 pg_api_dict 中 INSERT 一条:api_code=OPEN_STUDENT_LIST,api_name=学生列表,api_path=/open/api/student/list,api_method=GET,status=0。可使用 SQL 脚本或启动时初始化。
+
+### 5.5 前端
+
+- 已有接口授权勾选(apiCodes)与 apiList 接口;只需保证后端保存/回显 apiCodes 与 pg_app_api 一致即可,无需改前端逻辑(若当前未回显 apiCodes,需后端在查询应用详情时填充 apiCodes)。
+
+---
+
+## 六、调用测试说明
+
+- 提供「开放API-学生列表授权-调用测试说明.md」或同目录下测试脚本:
+ - 签名算法说明与示例(含 GET 示例)。
+ - 示例:在管理端创建应用并勾选「学生列表」,记录 appCode、appSecret,用 curl 或 Postman 调用 GET /open/api/student/list,携带正确 X-App-Id、X-Timestamp、X-Sign。
+ - 预期:授权应用返回 200 与列表数据;未授权或错误签名返回 401/403。
+
+---
+
+## 七、评审要点
+
+1. 开放路径仅限 `/open/api/**`,与现有 /business、/h5 隔离,且不校验用户登录。
+2. 签名算法与请求头约定是否满足安全与对接方实现成本平衡。
+3. 学生列表参数与响应与现有一致,避免业务逻辑重复。
+4. 应用管理侧保存/回显接口授权与 pg_app_api、pg_api_dict 数据一致性。
+5. 后续扩展其他开放接口时,仅需在 pg_api_dict 加记录、新增对应 OpenApiXxxController 即可,鉴权与拦截器复用。
diff --git a/docs/05-模块技术方案/开放API-学生列表授权-调用测试说明.md b/docs/05-模块技术方案/开放API-学生列表授权-调用测试说明.md
new file mode 100644
index 0000000..3103805
--- /dev/null
+++ b/docs/05-模块技术方案/开放API-学生列表授权-调用测试说明.md
@@ -0,0 +1,114 @@
+# 开放API-学生列表 调用测试说明
+
+> 作者:pangu
+> 创建时间:2026-02-04
+
+---
+
+## 一、前置条件
+
+1. **执行接口字典数据**(若尚未执行):
+ ```bash
+ # 在数据库中执行
+ mysql -u用户 -p 库名 < backend/pangu-modules/pangu-business/sql/open_api_dict_data.sql
+ ```
+ 或在客户端执行 `open_api_dict_data.sql` 中的 INSERT 语句。
+
+2. **应用管理中**:
+ - 新增或编辑一个应用,在「接口授权」中勾选 **学生列表**,保存。
+ - 记录该应用的 **应用编码(appCode)** 和 **应用密钥(appSecret)**(重置密钥后可查看)。
+
+---
+
+## 二、签名算法
+
+1. 将请求参数(仅 Query 参数,按参数名 **ASCII 升序**)拼接:
+ `key1=value1&key2=value2&...`
+2. 末尾追加:`&appSecret=你的应用密钥`
+3. 对整串做 **MD5**,结果转为 **大写**,即 `X-Sign`。
+
+**示例(GET)**:
+- 请求:`/open/api/student/list?pageNum=1&pageSize=10`
+- 参数排序后:`pageNum=1&pageSize=10`
+- 假设 appSecret=`abc123`,则参数字符串:`pageNum=1&pageSize=10&appSecret=abc123`
+- sign = MD5(`pageNum=1&pageSize=10&appSecret=abc123`).toUpperCase()
+
+---
+
+## 三、请求头
+
+| 请求头 | 说明 |
+|-------------|-------------------------|
+| X-App-Id | 应用编码(appCode) |
+| X-Timestamp | 当前时间毫秒时间戳 |
+| X-Sign | 按上述算法计算的签名 |
+
+---
+
+## 四、curl 示例
+
+假设:
+- 应用编码:`YY000001`
+- 应用密钥:`a1b2c3d4e5f6789012345678901234ab`
+- 基础地址:`http://localhost:8080`
+
+**1. 先计算签名(示例用当前时间戳)**
+
+参数:`pageNum=1&pageSize=10&appSecret=a1b2c3d4e5f6789012345678901234ab`
+可用在线 MD5 或命令行(见下方脚本)得到大写 MD5 作为 X-Sign。
+
+**2. 调用**
+
+```bash
+# 将 TIMESTAMP 和 SIGN 替换为实际值
+TIMESTAMP=$(date +%s)000
+# SIGN 需根据 当前参数+appSecret 用 MD5 计算,此处为占位
+SIGN="这里填计算出的32位大写MD5"
+
+curl -s -X GET "http://localhost:8080/open/api/student/list?pageNum=1&pageSize=10" \
+ -H "X-App-Id: YY000001" \
+ -H "X-Timestamp: $TIMESTAMP" \
+ -H "X-Sign: $SIGN"
+```
+
+---
+
+## 五、测试脚本(含签名计算)
+
+在项目根目录执行:
+
+```bash
+./scripts/openapi-student-list-test.sh [baseUrl]
+```
+
+示例:
+
+```bash
+./scripts/openapi-student-list-test.sh YY000001 a1b2c3d4e5f6789012345678901234ab
+# 指定环境
+./scripts/openapi-student-list-test.sh YY000001 your_secret http://192.168.1.100:8080
+```
+
+---
+
+## 六、预期结果
+
+| 场景 | HTTP 状态 | 说明 |
+|----------------|-----------|------------------------------|
+| 签名正确且已授权 | 200 | 返回 rows、total 等分页数据 |
+| 未勾选学生列表 | 403 | 无权访问该接口 |
+| 签名错误 | 500 | 签名验证失败(业务异常) |
+| 时间戳过期 | 500 | 请求已过期 |
+| 缺少请求头 | 500 | 缺少认证参数 |
+
+---
+
+## 七、可选:学生列表查询参数
+
+与后台 `/business/student/list` 一致,例如:
+
+- `pageNum`、`pageSize`:分页
+- `studentName`:学生姓名(模糊)
+- `studentNo`:学号(模糊)
+- `schoolId`:学校 ID
+等,按需传递;**参与签名的参数需包含所有本次请求的 Query 参数**(按参数名排序后拼接再加 appSecret 做 MD5)。
diff --git a/docs/05-模块技术方案/开放API-学生列表授权-需求设计方案.md b/docs/05-模块技术方案/开放API-学生列表授权-需求设计方案.md
new file mode 100644
index 0000000..3e16224
--- /dev/null
+++ b/docs/05-模块技术方案/开放API-学生列表授权-需求设计方案.md
@@ -0,0 +1,113 @@
+# 开放API-学生列表授权 需求设计方案
+
+> 作者:pangu
+> 创建时间:2026-02-04
+> 评审状态:待评审
+
+---
+
+## 一、背景与目标
+
+### 1.1 背景
+
+盘古用户认证中心已具备「应用管理」能力:可创建第三方应用、分配应用编码(appCode)与密钥(appSecret),并在管理后台为应用勾选「接口授权」。当前缺少**对外暴露的开放 API** 及**基于应用身份的签名鉴权与接口授权校验**,外部系统无法在未登录用户的前提下,以应用身份安全调用已授权接口。
+
+### 1.2 目标
+
+- **需求侧**:支持外部系统以「应用身份」调用指定已授权接口(首期以**学生列表查询**为真实场景),不依赖用户登录 Token。
+- **安全侧**:请求必须携带应用编码、时间戳、签名,服务端校验签名并校验该应用是否已授权访问该接口,未授权或签名错误一律拒绝。
+- **可评审**:提供完整需求说明与技术方案,便于评审与后续扩展更多开放接口。
+
+---
+
+## 二、范围与边界
+
+### 2.1 本期范围
+
+| 序号 | 内容 | 说明 |
+|------|------|------|
+| 1 | 开放 API 机制 | 统一路径前缀 `/open/api/**`,请求头鉴权(X-App-Id、X-Timestamp、X-Sign) |
+| 2 | 学生列表查询 | 提供 GET `/open/api/student/list`,与现有业务逻辑一致,仅鉴权方式不同 |
+| 3 | 应用管理侧 | 新增/编辑应用时保存「接口授权」到 pg_app_api;查询应用详情时回显已选接口 |
+| 4 | 接口字典 | pg_api_dict 中至少包含「学生列表」开放接口配置,供授权勾选与校验使用 |
+
+### 2.2 边界(本期不做)
+
+- 仅实现「学生列表」一个开放接口作为示例;其他业务接口(如学校、会员等)后续按同机制扩展。
+- 不涉及 OAuth2/第三方登录;仅做「应用级」签名鉴权与接口授权。
+
+---
+
+## 三、用户角色与使用场景
+
+### 3.1 角色
+
+| 角色 | 说明 |
+|------|------|
+| 运营/管理员 | 在应用管理中创建应用、为应用勾选「学生列表」等接口授权 |
+| 外部系统 | 使用 appCode + appSecret 对请求签名,调用 GET `/open/api/student/list` 获取学生列表(分页、筛选与现有一致) |
+
+### 3.2 典型场景
+
+1. **配置授权**
+ 管理员在「应用管理」中新增应用「XX 学情系统」,保存后获得 appCode(如 YY000001)、appSecret(32 位)。在编辑该应用时勾选「学生列表」接口授权并保存。
+
+2. **外部调用**
+ XX 学情系统在服务端使用 appCode、appSecret 生成签名,请求 GET `/open/api/student/list?pageNum=1&pageSize=10`,并携带请求头 X-App-Id、X-Timestamp、X-Sign。平台校验通过且该应用已授权「学生列表」后返回分页数据。
+
+3. **未授权/签名错误**
+ 若未勾选「学生列表」或签名错误,返回 401/403 及明确错误信息,不返回业务数据。
+
+---
+
+## 四、功能需求
+
+### 4.1 开放 API 鉴权与授权
+
+- **FR-1** 请求必须携带请求头:`X-App-Id`(应用编码)、`X-Timestamp`(毫秒时间戳)、`X-Sign`(签名)。
+- **FR-2** 时间戳与服务器时间差超过 5 分钟视为过期,拒绝请求。
+- **FR-3** 根据 X-App-Id 查询应用信息;应用不存在或已停用则拒绝。
+- **FR-4** 签名算法:请求参数(query+body 按参数名 ASCII 排序)拼接为 `key1=value1&key2=value2&...&appSecret=应用密钥`,再对该字符串做 MD5,结果转大写,与 X-Sign 比对;不一致则拒绝。
+- **FR-5** 请求 URI 对应的「开放接口」必须在当前应用的授权列表中(以 pg_api_dict.api_path 与 pg_app_api 关联为准),否则拒绝访问。
+
+### 4.2 学生列表开放接口
+
+- **FR-6** 提供 GET `/open/api/student/list`,支持与现有学生列表一致的查询参数(如 studentName、studentNo、schoolId 等)及分页参数(pageNum、pageSize)。
+- **FR-7** 响应格式与现有管理端学生列表一致(TableDataInfo:rows、total 等),便于对接方使用。
+
+### 4.3 应用管理侧
+
+- **FR-8** 新增/编辑应用时,请求体可携带接口授权标识(如 apiCodes:接口编码列表);保存时同步更新 pg_app_api(先删该应用原有授权,再按 apiCodes 插入)。
+- **FR-9** 查询应用详情(含列表展示)时,返回该应用已授权的接口信息(如 apiCodes 或等效),供前端勾选回显。
+
+### 4.4 接口字典
+
+- **FR-10** pg_api_dict 中至少有一条「学生列表」开放接口记录:api_path 为 `/open/api/student/list`,api_method 为 GET,供应用管理勾选与鉴权校验使用。
+
+---
+
+## 五、非功能需求
+
+- **NFR-1** 鉴权失败时返回 HTTP 状态码与 JSON 错误信息(如 401 签名错误、403 无权限、400 参数缺失/过期)。
+- **NFR-2** 授权关系变更后,建议在较短时间内生效(可为实时或短 TTL 缓存,技术方案中约定)。
+- **NFR-3** 文档与示例:提供开放 API 调用说明及学生列表调用示例(含签名算法与示例请求),便于对接方自测与联调。
+
+---
+
+## 六、验收标准
+
+1. 在应用管理中为某应用勾选「学生列表」并保存后,该应用使用正确签名调用 GET `/open/api/student/list` 可返回学生列表数据。
+2. 未勾选「学生列表」的应用调用同一接口,返回 403 无权限。
+3. 错误签名或过期时间戳,返回 401 或 400,且不返回业务数据。
+4. 应用管理新增/编辑时接口授权勾选可保存并回显;列表/详情中可看到已授权接口信息。
+
+---
+
+## 七、附录:术语
+
+| 术语 | 说明 |
+|------|------|
+| appCode | 应用编码,如 YY000001,唯一标识一个应用 |
+| appSecret | 应用密钥,32 位,用于参与签名计算,需保密 |
+| 接口授权 | 应用与 pg_api_dict 中某条 API 的关联关系,存储在 pg_app_api |
+| 开放 API | 以 `/open/api/**` 为前缀、使用应用签名鉴权的接口,无需用户登录 |
diff --git a/docs/06-测试文档/UI自动化测试报告_v1.0.md b/docs/06-测试文档/UI自动化测试报告_v1.0.md
index 05003ce..49d48ff 100644
--- a/docs/06-测试文档/UI自动化测试报告_v1.0.md
+++ b/docs/06-测试文档/UI自动化测试报告_v1.0.md
@@ -386,7 +386,7 @@ public class SysLoginController {
**编译打包**:
```bash
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform
+cd /Users/felix/pgWorkSpace/pangu-user-platform
mvn clean install -DskipTests
```
diff --git a/docs/06-测试文档/最终交付测试报告_v2.0.md b/docs/06-测试文档/最终交付测试报告_v2.0.md
index d12241f..aa801ee 100644
--- a/docs/06-测试文档/最终交付测试报告_v2.0.md
+++ b/docs/06-测试文档/最终交付测试报告_v2.0.md
@@ -554,11 +554,11 @@ export function getClassListByGrade(schoolGradeId) {
**启动命令**:
```bash
# 后端
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform
+cd /Users/felix/pgWorkSpace/pangu-user-platform
java -jar pangu-admin/target/pangu-admin.jar
# 前端
-cd /Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+cd /Users/felix/pgWorkSpace/pangu-user-platform/frontend
npm run dev
```
diff --git a/docs/06-测试文档/测试数据说明_v1.0.md b/docs/06-测试文档/测试数据说明_v1.0.md
index e6f148d..c33d618 100644
--- a/docs/06-测试文档/测试数据说明_v1.0.md
+++ b/docs/06-测试文档/测试数据说明_v1.0.md
@@ -552,7 +552,7 @@
**SQL脚本位置**:
```
-/Users/felix/hbxhWorkSpace/pangu-user-platform/sql/test_data_101.sql
+/Users/felix/pgWorkSpace/pangu-user-platform/sql/test_data_101.sql
```
**导入命令**:
diff --git a/docs/多Agent协同开发指南.md b/docs/多Agent协同开发指南.md
index fe806d3..0101fd0 100644
--- a/docs/多Agent协同开发指南.md
+++ b/docs/多Agent协同开发指南.md
@@ -60,7 +60,7 @@ import './member'
**技术栈**:Vue 3 + Vite + Element Plus + Pinia + Vue Router + MockJS
-**项目路径**:`/Users/felix/hbxhWorkSpace/pangu-user-platform/frontend`
+**项目路径**:`/Users/felix/pgWorkSpace/pangu-user-platform/frontend`
**原型地址**:https://modao.cc/proto/atlwMul8t9pi6yxQ42W7up/sharing
@@ -385,7 +385,7 @@ Mock.mock('/api/xxx', 'post', { code: 200, msg: '新增成功' })
你是一个Vue 3前端开发专家。请为"盘古用户平台"创建核心基础设施。
## 项目信息
-- 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+- 项目路径:/Users/felix/pgWorkSpace/pangu-user-platform/frontend
- 技术栈:Vue 3 + Vite + Element Plus + Pinia + Vue Router + MockJS
- 作者:pangu
@@ -464,7 +464,7 @@ import './user'
你是一个Vue 3前端开发专家。请为"盘古用户平台"创建登录页面。
## 项目信息
-- 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+- 项目路径:/Users/felix/pgWorkSpace/pangu-user-platform/frontend
- 技术栈:Vue 3 + Element Plus
- 作者:pangu
@@ -527,7 +527,7 @@ Agent-1已经启动了开发服务器(端口3000),你只需创建文件。
你是一个Vue 3前端开发专家。请为"盘古用户平台"创建学校管理模块。
## 项目信息
-- 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+- 项目路径:/Users/felix/pgWorkSpace/pangu-user-platform/frontend
- 技术栈:Vue 3 + Element Plus
- 作者:pangu
- 原型参考:https://modao.cc/proto/atlwMul8t9pi6yxQ42W7up/sharing
@@ -624,7 +624,7 @@ const regionTree = [
你是一个Vue 3前端开发专家。请为"盘古用户平台"创建会员管理模块。
## 项目信息
-- 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+- 项目路径:/Users/felix/pgWorkSpace/pangu-user-platform/frontend
- 技术栈:Vue 3 + Element Plus
- 作者:pangu
@@ -705,7 +705,7 @@ Agent-1已经启动了开发服务器(端口3000),你只需创建文件。
你是一个Vue 3前端开发专家。请为"盘古用户平台"创建学生管理模块。
## 项目信息
-- 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+- 项目路径:/Users/felix/pgWorkSpace/pangu-user-platform/frontend
- 技术栈:Vue 3 + Element Plus
- 作者:pangu
@@ -774,7 +774,7 @@ Agent-1已经启动了开发服务器(端口3000),你只需创建文件。
你是一个Vue 3前端开发专家。请为"盘古用户平台"创建应用管理模块。
## 项目信息
-- 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+- 项目路径:/Users/felix/pgWorkSpace/pangu-user-platform/frontend
- 技术栈:Vue 3 + Element Plus
- 作者:pangu
@@ -845,7 +845,7 @@ Agent-1已经启动了开发服务器(端口3000),你只需创建文件。
你是一个Vue 3前端开发专家。请为"盘古用户平台"创建基础数据管理模块(年级/班级/学科/区域)。
## 项目信息
-- 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/frontend
+- 项目路径:/Users/felix/pgWorkSpace/pangu-user-platform/frontend
- 技术栈:Vue 3 + Element Plus
- 作者:pangu
diff --git a/docs/应用管理-需求与技术设计方案.md b/docs/应用管理-需求与技术设计方案.md
new file mode 100644
index 0000000..244fd59
--- /dev/null
+++ b/docs/应用管理-需求与技术设计方案.md
@@ -0,0 +1,1226 @@
+# 应用管理模块 - 需求与技术设计方案
+
+## 文档信息
+
+| 项目 | 内容 |
+|------|------|
+| 项目名称 | 盘古用户认证中心 - 应用管理模块 |
+| 文档版本 | V1.0 |
+| 编写日期 | 2026-02-04 |
+| 作者 | pangu |
+| 状态 | 已完成 |
+
+---
+
+# 第一部分:需求设计方案
+
+## 1. 业务背景
+
+### 1.1 项目背景
+
+盘古用户认证中心作为统一身份认证平台,需要对外提供开放API接口,供第三方应用系统(如AI智慧教育平台、数字图书馆系统、校园OA办公系统、家校通小程序等)调用,以获取学生、教师、学校等基础数据信息。
+
+为保障数据安全和接口调用的可控性,需要建立一套完整的**应用管理机制**,实现:
+- 第三方应用的注册与管理
+- 应用凭证(AppCode + AppSecret)的生成与维护
+- 开放接口的精细化授权控制
+- 接口调用的安全鉴权
+
+### 1.2 业务目标
+
+1. **安全可控**:通过应用编码和密钥机制,确保只有授权应用才能调用开放接口
+2. **权限精细**:支持按应用维度配置可调用的接口列表,实现最小权限原则
+3. **易于扩展**:提供标准化的开放接口规范和示例代码,便于甲方二次开发
+4. **运维便捷**:支持应用状态管理、密钥重置、调用日志等运维功能
+
+### 1.3 适用范围
+
+本方案适用于以下场景:
+- 第三方业务系统需要获取学生、教师、学校等基础数据
+- 移动端小程序需要调用认证中心接口
+- 内部子系统之间的数据同步
+- 数据中台、大数据平台的数据采集
+
+---
+
+## 2. 需求分析
+
+### 2.1 用户角色
+
+| 角色 | 描述 | 主要操作 |
+|------|------|----------|
+| 系统管理员 | 认证中心的管理员 | 管理第三方应用、配置接口授权、查看调用日志 |
+| 第三方开发者 | 对接方的技术人员 | 获取应用凭证、按规范调用API、查看接口文档 |
+
+### 2.2 功能需求
+
+#### 2.2.1 应用管理(管理端)
+
+| 功能点 | 描述 | 优先级 |
+|--------|------|--------|
+| 应用列表 | 展示所有已注册的第三方应用,支持搜索、分页 | P0 |
+| 新增应用 | 录入应用基本信息,系统自动生成AppCode和AppSecret | P0 |
+| 编辑应用 | 修改应用名称、联系人、状态等信息 | P0 |
+| 删除应用 | 删除应用(逻辑删除),删除后凭证失效 | P0 |
+| 重置密钥 | 重新生成AppSecret,原密钥立即失效 | P0 |
+| 接口授权 | 为应用配置可调用的接口列表 | P0 |
+| 查看凭证 | 查看应用的AppCode和AppSecret | P1 |
+| 调用统计 | 查看应用的接口调用次数、成功率等 | P2 |
+
+#### 2.2.2 开放接口(对接端)
+
+| 功能点 | 描述 | 优先级 |
+|--------|------|--------|
+| 接口鉴权 | 验证请求的AppCode、时间戳、签名 | P0 |
+| 权限校验 | 检查应用是否有权调用该接口 | P0 |
+| 学生列表 | 分页查询学生信息(示例接口) | P0 |
+| 接口文档 | 提供接口说明、参数定义、示例代码 | P1 |
+
+#### 2.2.3 接口字典管理
+
+| 功能点 | 描述 | 优先级 |
+|--------|------|--------|
+| 接口字典 | 维护可授权的开放接口列表 | P0 |
+| 新增接口 | 添加新的开放接口定义(二次开发) | P1 |
+
+### 2.3 非功能需求
+
+| 类型 | 需求描述 |
+|------|----------|
+| 安全性 | 签名有效期5分钟,防重放攻击;密钥使用MD5加密传输 |
+| 性能 | 接口鉴权响应时间 < 50ms,不影响业务接口性能 |
+| 可用性 | 支持应用状态控制,停用后立即生效 |
+| 可扩展性 | 支持甲方二次开发,新增开放接口无需修改鉴权逻辑 |
+| 兼容性 | 支持多种调用方式:HTTP GET/POST,支持常见编程语言 |
+
+---
+
+## 3. 业务流程
+
+### 3.1 应用注册与授权流程
+
+```
+┌─────────────────────────────────────────────────────────────────────────────┐
+│ 应用注册与授权流程 │
+└─────────────────────────────────────────────────────────────────────────────┘
+
+ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
+ │ 收集需求 │───>│ 创建应用 │───>│ 生成凭证 │───>│ 配置授权 │───>│ 交付凭证 │
+ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
+ │ │ │ │ │
+ v v v v v
+ 收集第三方 填写应用名称 自动生成 勾选该应用 将AppCode
+ 系统信息 联系人等 AppCode 可调用的 AppSecret
+ 确认对接需求 基本信息 AppSecret 接口列表 发送给对接方
+```
+
+### 3.2 第三方调用接口流程
+
+```
+┌─────────────────────────────────────────────────────────────────────────────┐
+│ 第三方调用接口流程 │
+└─────────────────────────────────────────────────────────────────────────────┘
+
+ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
+ │ 构造请求 │───>│ 计算签名 │───>│ 发送请求 │───>│ 服务端校验│───>│ 返回数据 │
+ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
+ │ │ │ │ │
+ v v v v v
+ 准备请求参数 MD5(params 添加请求头 1.验证签名 校验通过
+ pageNum=1 +appSecret) X-App-Id 2.验证时间戳 返回业务数据
+ pageSize=10 得到签名值 X-Timestamp 3.验证应用状态 校验失败
+ X-Sign 4.验证接口权限 返回错误信息
+```
+
+### 3.3 签名算法流程
+
+```
+┌─────────────────────────────────────────────────────────────────────────────┐
+│ 签名计算流程 │
+└─────────────────────────────────────────────────────────────────────────────┘
+
+ 1. 收集所有请求参数(不含签名本身)
+ ┌─────────────────────────────────────┐
+ │ pageNum=1, pageSize=10, status=0 │
+ └─────────────────────────────────────┘
+ │
+ v
+ 2. 按参数名 ASCII 码升序排序
+ ┌─────────────────────────────────────┐
+ │ pageNum=1 & pageSize=10 & status=0 │
+ └─────────────────────────────────────┘
+ │
+ v
+ 3. 拼接键值对,末尾追加 appSecret
+ ┌─────────────────────────────────────────────────────────┐
+ │ pageNum=1&pageSize=10&status=0&appSecret=xxxxxxxxxx │
+ └─────────────────────────────────────────────────────────┘
+ │
+ v
+ 4. 对整个字符串进行 MD5 加密,转大写
+ ┌─────────────────────────────────────┐
+ │ A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6 │ <-- X-Sign
+ └─────────────────────────────────────┘
+```
+
+---
+
+## 4. 界面原型说明
+
+### 4.1 应用列表页面
+
+**页面路径**:`http://localhost/application`
+
+**页面布局**:
+```
+┌─────────────────────────────────────────────────────────────────────────────┐
+│ 搜索区域 │
+│ ┌──────────────┐ ┌──────────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
+│ │ 应用名称 │ │ 应用编码 │ │ 状态 ▼ │ │ 🔍搜索 │ │ ↻重置 │ │
+│ └──────────────┘ └──────────────┘ └────────┘ └────────┘ └────────┘ │
+├─────────────────────────────────────────────────────────────────────────────┤
+│ ┌─────────┐ │
+│ │ + 新增 │ │
+│ └─────────┘ │
+├─────────────────────────────────────────────────────────────────────────────┤
+│ │ 应用名称 │ 应用编码 │ 联系人 │ 联系电话 │ 状态 │ 创建时间 │ 操作 │
+│ ├────────────────┼──────────┼────────┼─────────────┼──────┼────────────┼──────────┤
+│ │ AI智慧教育平台 │ YY000001 │ 张经理 │ 138****3001 │ 正常 │ 2026-02-02 │ 编辑 设置 │
+│ │ 数字图书馆系统 │ YY000002 │ 李经理 │ 138****3002 │ 正常 │ 2026-02-02 │ 编辑 设置 │
+│ │ ... │ ... │ ... │ ... │ ... │ ... │ ... │
+├─────────────────────────────────────────────────────────────────────────────┤
+│ 共 6 条 10条/页 < 1 > │
+└─────────────────────────────────────────────────────────────────────────────┘
+```
+
+**操作按钮说明**:
+| 按钮 | 功能 | 说明 |
+|------|------|------|
+| 新增 | 打开新增应用弹窗 | 录入应用基本信息 |
+| 编辑 | 打开编辑应用弹窗 | 修改应用信息 |
+| 设置 | 打开接口授权弹窗 | 配置应用可调用的接口 |
+| 重置密钥 | 重新生成密钥 | 需二次确认 |
+| 删除 | 删除应用 | 需二次确认 |
+
+### 4.2 新增/编辑应用弹窗
+
+```
+┌─────────────────────────────────────────────────┐
+│ 新增应用 [×] │
+├─────────────────────────────────────────────────┤
+│ │
+│ 应用名称 * ┌────────────────────────────┐ │
+│ │ 请输入应用名称 │ │
+│ └────────────────────────────┘ │
+│ │
+│ 应用编码 ┌────────────────────────────┐ │
+│ │ 保存后自动生成(不可编辑) │ │
+│ └────────────────────────────┘ │
+│ │
+│ 应用描述 ┌────────────────────────────┐ │
+│ │ │ │
+│ │ 请输入应用描述 │ │
+│ └────────────────────────────┘ │
+│ │
+│ 联系人 ┌────────────────────────────┐ │
+│ │ 请输入联系人 │ │
+│ └────────────────────────────┘ │
+│ │
+│ 联系电话 ┌────────────────────────────┐ │
+│ │ 请输入联系电话 │ │
+│ └────────────────────────────┘ │
+│ │
+│ 状态 ○ 正常 ○ 停用 │
+│ │
+├─────────────────────────────────────────────────┤
+│ [取消] [确定] │
+└─────────────────────────────────────────────────┘
+```
+
+### 4.3 接口授权设置弹窗
+
+```
+┌─────────────────────────────────────────────────┐
+│ 接口授权设置 - AI智慧教育平台 [×] │
+├─────────────────────────────────────────────────┤
+│ │
+│ 应用编码:YY000001 │
+│ 应用密钥:a1b2c3d4...(点击复制) │
+│ │
+│ ───────────────────────────────────────── │
+│ │
+│ 可授权接口: │
+│ │
+│ ☑ 学生列表查询 /open/api/student/list │
+│ ☐ 教师列表查询 /open/api/teacher/list │
+│ ☐ 学校信息查询 /open/api/school/info │
+│ ☐ 班级列表查询 /open/api/class/list │
+│ ... │
+│ │
+├─────────────────────────────────────────────────┤
+│ [取消] [保存] │
+└─────────────────────────────────────────────────┘
+```
+
+---
+
+## 5. 数据字典
+
+### 5.1 应用状态
+
+| 状态值 | 状态名称 | 说明 |
+|--------|----------|------|
+| 0 | 正常 | 应用可正常调用接口 |
+| 1 | 停用 | 应用已停用,所有接口调用将被拒绝 |
+
+### 5.2 API 状态
+
+| 状态值 | 状态名称 | 说明 |
+|--------|----------|------|
+| 0 | 正常 | 接口可正常被授权和调用 |
+| 1 | 停用 | 接口已停用,即使授权也无法调用 |
+
+### 5.3 请求方法
+
+| 方法 | 说明 |
+|------|------|
+| GET | 查询类接口 |
+| POST | 新增/复杂查询类接口 |
+| PUT | 修改类接口 |
+| DELETE | 删除类接口 |
+
+---
+
+# 第二部分:技术设计方案
+
+## 6. 系统架构
+
+### 6.1 整体架构图
+
+```
+┌─────────────────────────────────────────────────────────────────────────────┐
+│ 调用方 │
+│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
+│ │ AI教育平台 │ │ 图书馆系统 │ │ OA办公系统 │ │ 家校通小程序 │ │
+│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
+└──────────┼─────────────────┼─────────────────┼─────────────────┼───────────┘
+ │ │ │ │
+ └─────────────────┴────────┬────────┴─────────────────┘
+ │
+ v
+┌─────────────────────────────────────────────────────────────────────────────┐
+│ 盘古用户认证中心 │
+│ ┌───────────────────────────────────────────────────────────────────────┐ │
+│ │ API 网关层(可选) │ │
+│ └───────────────────────────────────────────────────────────────────────┘ │
+│ │ │
+│ v │
+│ ┌───────────────────────────────────────────────────────────────────────┐ │
+│ │ 开放接口认证拦截器 │ │
+│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
+│ │ │ 参数校验 │─>│ 签名验证 │─>│ 应用状态 │─>│ 接口权限 │ │ │
+│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │
+│ └───────────────────────────────────────────────────────────────────────┘ │
+│ │ │
+│ v │
+│ ┌───────────────────────────────────────────────────────────────────────┐ │
+│ │ 开放接口层 │ │
+│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
+│ │ │ 学生接口 │ │ 教师接口 │ │ 学校接口 │ │ 更多接口... │ │ │
+│ │ │ /open/api/ │ │ /open/api/ │ │ /open/api/ │ │ (二次开发) │ │ │
+│ │ │ student/* │ │ teacher/* │ │ school/* │ │ │ │ │
+│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │
+│ └───────────────────────────────────────────────────────────────────────┘ │
+│ │ │
+│ v │
+│ ┌───────────────────────────────────────────────────────────────────────┐ │
+│ │ 业务服务层 │ │
+│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
+│ │ │ 学生服务 │ │ 教师服务 │ │ 学校服务 │ │ 应用管理 │ │ │
+│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │
+│ └───────────────────────────────────────────────────────────────────────┘ │
+│ │ │
+│ v │
+│ ┌───────────────────────────────────────────────────────────────────────┐ │
+│ │ 数据持久层 │ │
+│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
+│ │ │ pg_student │ │ pg_teacher │ │ pg_school │ │ pg_app* │ │ │
+│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │
+│ └───────────────────────────────────────────────────────────────────────┘ │
+└─────────────────────────────────────────────────────────────────────────────┘
+```
+
+### 6.2 技术选型
+
+| 层次 | 技术栈 | 说明 |
+|------|--------|------|
+| 前端框架 | Vue 3 + Element Plus | 管理后台界面 |
+| 后端框架 | Spring Boot 3.x | 基于若依Plus框架 |
+| ORM框架 | MyBatis Plus | 数据库访问 |
+| 安全框架 | Sa-Token | 内部系统鉴权(管理端) |
+| 数据库 | MySQL 8.0 | 数据存储 |
+| 缓存 | Redis | 可选,用于接口限流、凭证缓存 |
+| 加密算法 | MD5 | 接口签名(可升级为HMAC-SHA256) |
+
+---
+
+## 7. 数据库设计
+
+### 7.1 ER 关系图
+
+```
+┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
+│ pg_application │ │ pg_app_api │ │ pg_api_dict │
+│ (第三方应用表) │ 1───n │ (应用API授权表) │ n───1 │ (API接口字典) │
+├─────────────────────┤ ├─────────────────────┤ ├─────────────────────┤
+│ PK app_id │────────>│ FK app_id │ │ PK api_id │
+│ app_code │ │ FK api_id │<────────│ api_code │
+│ app_name │ │ create_time │ │ api_name │
+│ app_secret │ └─────────────────────┘ │ api_path │
+│ contact_person │ │ api_method │
+│ contact_phone │ │ api_desc │
+│ status │ │ status │
+│ ... │ │ order_num │
+└─────────────────────┘ └─────────────────────┘
+```
+
+### 7.2 表结构详细设计
+
+#### 7.2.1 第三方应用表 (pg_application)
+
+```sql
+CREATE TABLE `pg_application` (
+ `app_id` bigint NOT NULL COMMENT '应用ID(雪花算法)',
+ `app_code` varchar(32) NOT NULL COMMENT '应用编码(格式:YY000001)',
+ `app_name` varchar(100) NOT NULL COMMENT '应用名称',
+ `app_secret` varchar(100) NOT NULL COMMENT '应用密钥(32位UUID)',
+ `contact_person` varchar(50) DEFAULT NULL COMMENT '联系人',
+ `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
+ `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
+ `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
+ `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
+ `create_by` bigint DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_by` bigint DEFAULT NULL COMMENT '更新者',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注/描述',
+ PRIMARY KEY (`app_id`),
+ UNIQUE KEY `uk_app_code` (`app_code`)
+) ENGINE=InnoDB COMMENT='第三方应用表';
+```
+
+**字段说明**:
+
+| 字段 | 类型 | 必填 | 说明 |
+|------|------|------|------|
+| app_id | bigint | 是 | 主键,雪花算法生成 |
+| app_code | varchar(32) | 是 | 应用编码,格式 YY+6位序号,系统自动生成 |
+| app_name | varchar(100) | 是 | 应用名称,用于显示 |
+| app_secret | varchar(100) | 是 | 应用密钥,32位UUID,用于签名计算 |
+| contact_person | varchar(50) | 否 | 对接联系人 |
+| contact_phone | varchar(20) | 否 | 联系电话 |
+| status | char(1) | 是 | 0=正常,1=停用 |
+| del_flag | char(1) | 是 | 逻辑删除标志,0=存在,1=已删除 |
+
+#### 7.2.2 API接口字典表 (pg_api_dict)
+
+```sql
+CREATE TABLE `pg_api_dict` (
+ `api_id` bigint NOT NULL COMMENT 'API ID',
+ `api_code` varchar(50) NOT NULL COMMENT 'API编码(唯一标识)',
+ `api_name` varchar(100) NOT NULL COMMENT 'API名称(显示用)',
+ `api_path` varchar(200) NOT NULL COMMENT 'API路径(如 /open/api/student/list)',
+ `api_method` varchar(10) DEFAULT 'GET' COMMENT '请求方法(GET/POST/PUT/DELETE)',
+ `api_desc` varchar(500) DEFAULT NULL COMMENT 'API描述',
+ `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
+ `order_num` int DEFAULT 0 COMMENT '排序号',
+ PRIMARY KEY (`api_id`),
+ UNIQUE KEY `uk_api_code` (`api_code`)
+) ENGINE=InnoDB COMMENT='API接口字典表';
+```
+
+**初始数据**(示例接口):
+
+```sql
+INSERT INTO pg_api_dict (api_id, api_code, api_name, api_path, api_method, api_desc, status, order_num) VALUES
+(1700000000000000001, 'OPEN_STUDENT_LIST', '学生列表查询', '/open/api/student/list', 'GET', '分页查询学生信息,支持按姓名、学号、班级等条件筛选', '0', 10);
+```
+
+#### 7.2.3 应用API授权表 (pg_app_api)
+
+```sql
+CREATE TABLE `pg_app_api` (
+ `id` bigint NOT NULL COMMENT '主键',
+ `app_id` bigint NOT NULL COMMENT '应用ID',
+ `api_id` bigint NOT NULL COMMENT 'API ID',
+ `create_time` datetime DEFAULT NULL COMMENT '授权时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_app_api` (`app_id`, `api_id`),
+ KEY `idx_app_id` (`app_id`),
+ KEY `idx_api_id` (`api_id`)
+) ENGINE=InnoDB COMMENT='应用API授权表';
+```
+
+### 7.3 菜单数据
+
+```sql
+-- 应用管理菜单(一级菜单)
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, perms, icon)
+VALUES (2300, '应用管理', 0, 4, 'application', 'business/application/index', 'C', 'business:application:list', 'component');
+
+-- 按钮权限
+INSERT INTO sys_menu VALUES (2301, '应用查询', 2300, 1, '', '', 'F', 'business:application:query', '#');
+INSERT INTO sys_menu VALUES (2302, '应用新增', 2300, 2, '', '', 'F', 'business:application:add', '#');
+INSERT INTO sys_menu VALUES (2303, '应用修改', 2300, 3, '', '', 'F', 'business:application:edit', '#');
+INSERT INTO sys_menu VALUES (2304, '应用删除', 2300, 4, '', '', 'F', 'business:application:remove', '#');
+INSERT INTO sys_menu VALUES (2305, '重置密钥', 2300, 5, '', '', 'F', 'business:application:resetSecret', '#');
+INSERT INTO sys_menu VALUES (2306, '接口授权', 2300, 6, '', '', 'F', 'business:application:api', '#');
+```
+
+---
+
+## 8. 接口设计
+
+### 8.1 管理端接口
+
+#### 8.1.1 应用管理接口
+
+| 接口名称 | 方法 | URL | 权限 | 说明 |
+|----------|------|-----|------|------|
+| 应用列表 | GET | /business/application/list | business:application:list | 分页查询 |
+| 应用详情 | GET | /business/application/{appId} | business:application:query | 获取详情 |
+| 新增应用 | POST | /business/application | business:application:add | 新增 |
+| 修改应用 | PUT | /business/application | business:application:edit | 修改 |
+| 删除应用 | DELETE | /business/application/{appIds} | business:application:remove | 删除 |
+| 重置密钥 | PUT | /business/application/resetSecret/{appId} | business:application:edit | 重置 |
+| 接口列表 | GET | /business/application/apiList | business:application:list | 获取可授权接口 |
+
+#### 8.1.2 接口详细定义
+
+**新增应用**
+
+```http
+POST /business/application
+Content-Type: application/json
+
+{
+ "appName": "AI智慧教育平台",
+ "contactPerson": "张经理",
+ "contactPhone": "13800138001",
+ "status": "0",
+ "remark": "新华AI智慧教育平台,提供智能题库、AI批改等功能",
+ "apiCodes": ["OPEN_STUDENT_LIST"]
+}
+```
+
+**响应**:
+
+```json
+{
+ "code": 200,
+ "msg": "操作成功",
+ "data": {
+ "appId": 1890000000000000001,
+ "appCode": "YY000001",
+ "appSecret": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
+ }
+}
+```
+
+### 8.2 开放接口
+
+#### 8.2.1 请求头规范
+
+| Header | 必填 | 说明 |
+|--------|------|------|
+| X-App-Id | 是 | 应用编码(AppCode) |
+| X-Timestamp | 是 | 当前时间戳(毫秒) |
+| X-Sign | 是 | 请求签名(MD5大写) |
+
+#### 8.2.2 签名算法
+
+```
+1. 将所有请求参数(不含签名)按参数名 ASCII 码升序排序
+2. 按照 key1=value1&key2=value2&... 格式拼接
+3. 末尾追加 &appSecret={密钥}
+4. 对整个字符串进行 MD5 加密,转大写
+
+示例:
+请求参数:pageNum=1, pageSize=10, status=0
+密钥:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
+
+签名字符串:pageNum=1&pageSize=10&status=0&appSecret=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
+签名结果:MD5(签名字符串).toUpperCase()
+```
+
+#### 8.2.3 学生列表接口(示例)
+
+```http
+GET /open/api/student/list?pageNum=1&pageSize=10
+X-App-Id: YY000001
+X-Timestamp: 1738656000000
+X-Sign: A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
+```
+
+**响应**:
+
+```json
+{
+ "code": 200,
+ "msg": "操作成功",
+ "rows": [
+ {
+ "studentId": 1,
+ "studentName": "张三",
+ "studentCode": "S2024001",
+ "schoolName": "第一小学",
+ "gradeName": "三年级",
+ "className": "1班"
+ }
+ ],
+ "total": 100
+}
+```
+
+#### 8.2.4 错误码定义
+
+| 错误码 | 错误信息 | 说明 |
+|--------|----------|------|
+| 401 | 缺少认证参数 | X-App-Id/X-Timestamp/X-Sign 缺失 |
+| 401 | 时间戳格式错误 | X-Timestamp 非数字 |
+| 401 | 请求已过期 | 时间戳超过5分钟有效期 |
+| 401 | 应用不存在 | AppCode 无效 |
+| 401 | 应用已停用 | 应用状态为停用 |
+| 401 | 签名验证失败 | 签名计算错误 |
+| 403 | 无权访问该接口 | 应用未被授权访问该接口 |
+
+---
+
+## 9. 核心代码设计
+
+### 9.1 后端代码结构
+
+```
+pangu-modules/pangu-business/src/main/java/org/dromara/pangu/
+├── application/ # 应用管理模块
+│ ├── controller/
+│ │ └── PgApplicationController.java # 应用管理控制器
+│ ├── domain/
+│ │ ├── PgApplication.java # 第三方应用实体
+│ │ ├── PgApiDict.java # API字典实体
+│ │ └── PgAppApi.java # 应用API授权实体
+│ ├── mapper/
+│ │ ├── PgApplicationMapper.java
+│ │ ├── PgApiDictMapper.java
+│ │ └── PgAppApiMapper.java
+│ └── service/
+│ ├── IPgApplicationService.java
+│ ├── IPgApiDictService.java
+│ └── impl/
+│ ├── PgApplicationServiceImpl.java
+│ └── PgApiDictServiceImpl.java
+│
+└── openapi/ # 开放接口模块
+ ├── config/
+ │ ├── ApiAuthInterceptor.java # 开放API鉴权拦截器
+ │ └── OpenApiWebMvcConfig.java # 拦截器注册配置
+ ├── controller/
+ │ └── OpenApiStudentController.java # 学生列表开放接口(示例)
+ ├── service/ # 开放接口业务层
+ │ ├── IOpenApiStudentService.java # 开放接口学生服务接口
+ │ └── impl/
+ │ └── OpenApiStudentServiceImpl.java # 脱敏、数据转换等业务逻辑
+ ├── domain/
+ │ └── vo/
+ │ └── OpenApiStudentVo.java # 开放接口专用VO(脱敏后的数据结构)
+ └── utils/
+ └── DataMaskUtil.java # 数据脱敏工具类
+```
+
+### 9.2 核心类设计
+
+#### 9.2.1 鉴权拦截器 (ApiAuthInterceptor.java)
+
+```java
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class ApiAuthInterceptor implements HandlerInterceptor {
+
+ private static final String HEADER_APP_ID = "X-App-Id";
+ private static final String HEADER_TIMESTAMP = "X-Timestamp";
+ private static final String HEADER_SIGN = "X-Sign";
+ private static final long TIMESTAMP_EXPIRE_MS = 5 * 60 * 1000L; // 5分钟
+
+ private final IPgApplicationService applicationService;
+
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+ // 1. 参数校验
+ String appId = request.getHeader(HEADER_APP_ID);
+ String timestamp = request.getHeader(HEADER_TIMESTAMP);
+ String sign = request.getHeader(HEADER_SIGN);
+ if (StrUtil.isBlank(appId) || StrUtil.isBlank(timestamp) || StrUtil.isBlank(sign)) {
+ throw new ServiceException("缺少认证参数");
+ }
+
+ // 2. 时间戳校验(防重放攻击)
+ long reqTime = Long.parseLong(timestamp.trim());
+ if (Math.abs(System.currentTimeMillis() - reqTime) > TIMESTAMP_EXPIRE_MS) {
+ throw new ServiceException("请求已过期");
+ }
+
+ // 3. 应用状态校验
+ PgApplication app = applicationService.selectByAppCode(appId.trim());
+ if (app == null) {
+ throw new ServiceException("应用不存在");
+ }
+ if ("1".equals(app.getStatus())) {
+ throw new ServiceException("应用已停用");
+ }
+
+ // 4. 签名校验
+ String expectedSign = buildSign(request, app.getAppSecret());
+ if (!expectedSign.equalsIgnoreCase(sign.trim())) {
+ throw new ServiceException("签名验证失败");
+ }
+
+ // 5. 接口权限校验
+ String apiPath = request.getRequestURI();
+ if (!applicationService.checkApiPermission(appId.trim(), apiPath)) {
+ throw new ServiceException("无权访问该接口");
+ }
+
+ return true;
+ }
+
+ private String buildSign(HttpServletRequest request, String appSecret) {
+ // 参数按 key ASCII 升序排序,拼接后追加 appSecret,MD5 大写
+ Map params = new TreeMap<>();
+ request.getParameterMap().forEach((key, values) -> {
+ if (values != null && values.length > 0 && StrUtil.isNotBlank(values[0])) {
+ params.put(key, values[0].trim());
+ }
+ });
+ StringBuilder sb = new StringBuilder();
+ params.forEach((k, v) -> sb.append(sb.length() > 0 ? "&" : "").append(k).append("=").append(v));
+ sb.append("&appSecret=").append(appSecret);
+ return DigestUtil.md5Hex(sb.toString()).toUpperCase();
+ }
+}
+```
+
+#### 9.2.2 拦截器注册 (OpenApiWebMvcConfig.java)
+
+```java
+@Configuration
+@RequiredArgsConstructor
+public class OpenApiWebMvcConfig implements WebMvcConfigurer {
+
+ private final ApiAuthInterceptor apiAuthInterceptor;
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(apiAuthInterceptor)
+ .addPathPatterns("/open/api/**"); // 仅对开放接口生效
+ }
+}
+```
+
+#### 9.2.3 开放接口示例 (OpenApiStudentController.java)
+
+```java
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/open/api/student")
+public class OpenApiStudentController extends BaseController {
+
+ private final IOpenApiStudentService openApiStudentService; // 调用开放接口专用服务
+
+ /**
+ * 学生列表分页查询(对外开放接口)
+ *
+ * 请求示例:
+ * GET /open/api/student/list?pageNum=1&pageSize=10&studentName=张
+ * Headers:
+ * X-App-Id: YY000001
+ * X-Timestamp: 1738656000000
+ * X-Sign: A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(PgStudent student, PageQuery pageQuery) {
+ return openApiStudentService.selectPageList(student, pageQuery);
+ }
+
+ /**
+ * 学生详情查询(对外开放接口)
+ */
+ @GetMapping("/{studentId}")
+ public R getInfo(@PathVariable Long studentId) {
+ return R.ok(openApiStudentService.selectById(studentId));
+ }
+}
+```
+
+#### 9.2.4 开放接口业务层 (OpenApiStudentService)
+
+**说明**:开放接口单独创建 Service 层,用于处理脱敏、数据转换、字段过滤等业务逻辑,与内部业务服务解耦。
+
+**服务接口**:
+
+```java
+/**
+ * 开放接口学生服务接口
+ */
+public interface IOpenApiStudentService {
+
+ /**
+ * 分页查询学生列表(脱敏版本)
+ */
+ TableDataInfo selectPageList(PgStudent student, PageQuery pageQuery);
+
+ /**
+ * 查询学生详情(脱敏版本)
+ */
+ OpenApiStudentVo selectById(Long studentId);
+}
+```
+
+**服务实现**:
+
+```java
+@Service
+@RequiredArgsConstructor
+public class OpenApiStudentServiceImpl implements IOpenApiStudentService {
+
+ private final IPgStudentService studentService; // 复用原有业务服务
+
+ @Override
+ public TableDataInfo selectPageList(PgStudent student, PageQuery pageQuery) {
+ // 1. 调用原有业务服务获取数据
+ TableDataInfo result = studentService.selectPageList(student, pageQuery);
+
+ // 2. 转换为开放接口VO并脱敏
+ List openApiList = result.getRows().stream()
+ .map(this::convertToOpenApiVo)
+ .collect(Collectors.toList());
+
+ // 3. 返回脱敏后的数据
+ TableDataInfo openApiResult = new TableDataInfo<>();
+ openApiResult.setRows(openApiList);
+ openApiResult.setTotal(result.getTotal());
+ return openApiResult;
+ }
+
+ @Override
+ public OpenApiStudentVo selectById(Long studentId) {
+ StudentVo student = studentService.selectById(studentId);
+ return convertToOpenApiVo(student);
+ }
+
+ /**
+ * 内部转换方法:原始VO -> 开放接口VO(脱敏处理)
+ */
+ private OpenApiStudentVo convertToOpenApiVo(StudentVo source) {
+ if (source == null) {
+ return null;
+ }
+
+ OpenApiStudentVo vo = new OpenApiStudentVo();
+ vo.setStudentId(source.getStudentId());
+ vo.setStudentCode(source.getStudentCode());
+
+ // 敏感字段脱敏
+ vo.setStudentName(DataMaskUtil.maskName(source.getStudentName()));
+
+ // 非敏感字段直接复制
+ vo.setSchoolName(source.getSchoolName());
+ vo.setGradeName(source.getGradeName());
+ vo.setClassName(source.getClassName());
+
+ // 敏感字段不对外暴露(身份证号、手机号等)
+ // 不设置 idCard、phone 等字段
+
+ return vo;
+ }
+}
+```
+
+#### 9.2.5 开放接口专用 VO (OpenApiStudentVo.java)
+
+```java
+@Data
+@Schema(description = "开放接口学生信息")
+public class OpenApiStudentVo implements Serializable {
+
+ @Schema(description = "学生ID")
+ private Long studentId;
+
+ @Schema(description = "学生姓名(脱敏)")
+ private String studentName;
+
+ @Schema(description = "学号")
+ private String studentCode;
+
+ @Schema(description = "学校名称")
+ private String schoolName;
+
+ @Schema(description = "年级名称")
+ private String gradeName;
+
+ @Schema(description = "班级名称")
+ private String className;
+
+ // 注意:敏感字段如身份证号、手机号等不对外暴露
+}
+```
+
+#### 9.2.6 数据脱敏工具类 (DataMaskUtil.java)
+
+```java
+/**
+ * 数据脱敏工具类
+ */
+public class DataMaskUtil {
+
+ /**
+ * 姓名脱敏:张三 -> 张*
+ */
+ public static String maskName(String name) {
+ if (StrUtil.isBlank(name) || name.length() == 1) {
+ return name;
+ }
+ return name.charAt(0) + "*".repeat(name.length() - 1);
+ }
+
+ /**
+ * 手机号脱敏:13812345678 -> 138****5678
+ */
+ public static String maskPhone(String phone) {
+ if (StrUtil.isBlank(phone) || phone.length() != 11) {
+ return phone;
+ }
+ return phone.substring(0, 3) + "****" + phone.substring(7);
+ }
+
+ /**
+ * 身份证脱敏:110101199001011234 -> 110101********1234
+ */
+ public static String maskIdCard(String idCard) {
+ if (StrUtil.isBlank(idCard) || idCard.length() < 8) {
+ return idCard;
+ }
+ return idCard.substring(0, 6) + "********" + idCard.substring(idCard.length() - 4);
+ }
+}
+```
+
+### 9.3 前端代码结构
+
+```
+frontend/src/
+├── api/pangu/
+│ └── application.js # 应用管理API
+├── views/application/
+│ ├── index.vue # 应用列表页面
+│ └── components/
+│ ├── AppDialog.vue # 新增/编辑弹窗
+│ ├── SecretDialog.vue # 密钥展示弹窗
+│ └── AuthDialog.vue # 接口授权弹窗(新增)
+```
+
+---
+
+## 10. 二次开发指南
+
+### 10.1 新增开放接口步骤
+
+#### 步骤一:定义接口字典
+
+在数据库 `pg_api_dict` 表中新增一条记录:
+
+```sql
+INSERT INTO pg_api_dict (api_id, api_code, api_name, api_path, api_method, api_desc, status, order_num)
+VALUES (1700000000000000002, 'OPEN_TEACHER_LIST', '教师列表查询', '/open/api/teacher/list', 'GET', '分页查询教师信息', '0', 20);
+```
+
+#### 步骤二:创建开放接口专用 VO
+
+在 `openapi/domain/vo` 目录下新建 VO:
+
+```java
+@Data
+@Schema(description = "开放接口教师信息")
+public class OpenApiTeacherVo implements Serializable {
+
+ @Schema(description = "教师ID")
+ private Long teacherId;
+
+ @Schema(description = "教师姓名(脱敏)")
+ private String teacherName;
+
+ @Schema(description = "教师工号")
+ private String teacherCode;
+
+ @Schema(description = "学校名称")
+ private String schoolName;
+
+ // 敏感字段不对外暴露
+}
+```
+
+#### 步骤三:创建开放接口服务层
+
+在 `openapi/service` 目录下新建服务接口和实现类:
+
+**服务接口**:
+
+```java
+public interface IOpenApiTeacherService {
+ TableDataInfo selectPageList(PgTeacher teacher, PageQuery pageQuery);
+}
+```
+
+**服务实现**:
+
+```java
+@Service
+@RequiredArgsConstructor
+public class OpenApiTeacherServiceImpl implements IOpenApiTeacherService {
+
+ private final IPgTeacherService teacherService; // 复用原有业务服务
+
+ @Override
+ public TableDataInfo selectPageList(PgTeacher teacher, PageQuery pageQuery) {
+ // 1. 调用原有业务服务
+ TableDataInfo result = teacherService.selectPageList(teacher, pageQuery);
+
+ // 2. 转换并脱敏
+ List openApiList = result.getRows().stream()
+ .map(this::convertToOpenApiVo)
+ .collect(Collectors.toList());
+
+ // 3. 返回
+ TableDataInfo openApiResult = new TableDataInfo<>();
+ openApiResult.setRows(openApiList);
+ openApiResult.setTotal(result.getTotal());
+ return openApiResult;
+ }
+
+ private OpenApiTeacherVo convertToOpenApiVo(TeacherVo source) {
+ if (source == null) return null;
+
+ OpenApiTeacherVo vo = new OpenApiTeacherVo();
+ vo.setTeacherId(source.getTeacherId());
+ vo.setTeacherCode(source.getTeacherCode());
+ vo.setTeacherName(DataMaskUtil.maskName(source.getTeacherName())); // 脱敏
+ vo.setSchoolName(source.getSchoolName());
+ return vo;
+ }
+}
+```
+
+#### 步骤四:创建接口控制器
+
+在 `openapi/controller` 目录下新建控制器:
+
+```java
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/open/api/teacher")
+public class OpenApiTeacherController extends BaseController {
+
+ private final IOpenApiTeacherService openApiTeacherService; // 调用开放接口专用服务
+
+ @GetMapping("/list")
+ public TableDataInfo list(PgTeacher teacher, PageQuery pageQuery) {
+ return openApiTeacherService.selectPageList(teacher, pageQuery);
+ }
+}
+```
+
+#### 步骤五:为应用授权
+
+在应用管理界面,勾选新增的接口授权。
+
+### 10.2 接口开发规范
+
+1. **路径规范**:所有开放接口必须以 `/open/api/` 开头
+2. **分层规范**:
+ - Controller 层仅负责接收请求和返回响应
+ - Service 层处理业务逻辑(脱敏、转换、字段过滤等)
+ - 复用原有业务服务,避免重复代码
+3. **VO 设计规范**:
+ - 为开放接口单独创建 VO,避免直接使用内部实体
+ - VO 中只包含需要对外暴露的字段
+ - 敏感字段在 Service 层进行脱敏处理
+4. **返回格式**:使用统一的 `R` 或 `TableDataInfo` 返回格式
+5. **参数校验**:使用 `@Validated` 注解进行参数校验
+6. **日志记录**:重要操作需记录日志
+7. **异常处理**:业务异常使用 `ServiceException`
+
+### 10.3 调用示例代码
+
+#### Java 调用示例
+
+```java
+public class OpenApiClient {
+ private static final String BASE_URL = "http://your-domain.com";
+ private static final String APP_CODE = "YY000001";
+ private static final String APP_SECRET = "your-app-secret";
+
+ public String callApi(String path, Map params) throws Exception {
+ // 1. 添加时间戳
+ String timestamp = String.valueOf(System.currentTimeMillis());
+
+ // 2. 计算签名
+ TreeMap sortedParams = new TreeMap<>(params);
+ StringBuilder sb = new StringBuilder();
+ sortedParams.forEach((k, v) -> sb.append(sb.length() > 0 ? "&" : "").append(k).append("=").append(v));
+ sb.append("&appSecret=").append(APP_SECRET);
+ String sign = DigestUtils.md5Hex(sb.toString()).toUpperCase();
+
+ // 3. 构造请求
+ HttpRequest request = HttpRequest.get(BASE_URL + path + "?" + buildQueryString(params))
+ .header("X-App-Id", APP_CODE)
+ .header("X-Timestamp", timestamp)
+ .header("X-Sign", sign);
+
+ return request.execute().body();
+ }
+}
+```
+
+#### Python 调用示例
+
+```python
+import hashlib
+import time
+import requests
+
+APP_CODE = "YY000001"
+APP_SECRET = "your-app-secret"
+BASE_URL = "http://your-domain.com"
+
+def call_api(path, params):
+ # 1. 添加时间戳
+ timestamp = str(int(time.time() * 1000))
+
+ # 2. 计算签名
+ sorted_params = sorted(params.items())
+ sign_str = "&".join([f"{k}={v}" for k, v in sorted_params])
+ sign_str += f"&appSecret={APP_SECRET}"
+ sign = hashlib.md5(sign_str.encode()).hexdigest().upper()
+
+ # 3. 发送请求
+ headers = {
+ "X-App-Id": APP_CODE,
+ "X-Timestamp": timestamp,
+ "X-Sign": sign
+ }
+ response = requests.get(f"{BASE_URL}{path}", params=params, headers=headers)
+ return response.json()
+
+# 调用示例
+result = call_api("/open/api/student/list", {"pageNum": "1", "pageSize": "10"})
+print(result)
+```
+
+---
+
+## 11. 部署与运维
+
+### 11.1 SQL 脚本执行顺序
+
+1. `pangu_tables.sql` - 创建表结构
+2. `pangu_menu.sql` - 插入菜单数据
+3. `open_api_dict_data.sql` - 插入API字典初始数据
+
+### 11.2 配置项
+
+```yaml
+# application.yml
+pangu:
+ openapi:
+ # 签名有效期(毫秒)
+ timestamp-expire: 300000
+ # 是否开启调用日志
+ log-enabled: true
+```
+
+### 11.3 监控指标
+
+| 指标 | 说明 |
+|------|------|
+| 接口调用次数 | 按应用、接口维度统计 |
+| 调用成功率 | 成功/总调用 |
+| 平均响应时间 | 接口性能监控 |
+| 异常次数 | 签名失败、权限不足等 |
+
+---
+
+## 12. 文件清单
+
+### 12.1 后端文件
+
+| 文件 | 说明 |
+|------|------|
+| `application/controller/PgApplicationController.java` | 应用管理控制器 |
+| `application/domain/PgApplication.java` | 第三方应用实体 |
+| `application/domain/PgApiDict.java` | API字典实体 |
+| `application/domain/PgAppApi.java` | 应用API授权实体 |
+| `application/mapper/PgApplicationMapper.java` | 应用Mapper |
+| `application/mapper/PgApiDictMapper.java` | API字典Mapper |
+| `application/mapper/PgAppApiMapper.java` | 应用API授权Mapper |
+| `application/service/IPgApplicationService.java` | 应用服务接口 |
+| `application/service/impl/PgApplicationServiceImpl.java` | 应用服务实现 |
+| `openapi/config/ApiAuthInterceptor.java` | 开放API鉴权拦截器 |
+| `openapi/config/OpenApiWebMvcConfig.java` | 拦截器配置 |
+| `openapi/controller/OpenApiStudentController.java` | 学生列表开放接口 |
+| `openapi/service/IOpenApiStudentService.java` | 开放接口学生服务接口 |
+| `openapi/service/impl/OpenApiStudentServiceImpl.java` | 开放接口学生服务实现(脱敏、转换) |
+| `openapi/domain/vo/OpenApiStudentVo.java` | 开放接口专用VO |
+| `openapi/utils/DataMaskUtil.java` | 数据脱敏工具类 |
+
+### 12.2 前端文件
+
+| 文件 | 说明 |
+|------|------|
+| `api/pangu/application.js` | 应用管理API |
+| `views/application/index.vue` | 应用列表页面 |
+| `views/application/components/AppDialog.vue` | 新增/编辑弹窗 |
+| `views/application/components/SecretDialog.vue` | 密钥展示弹窗 |
+
+### 12.3 SQL 文件
+
+| 文件 | 说明 |
+|------|------|
+| `sql/pangu_tables.sql` | 表结构(pg_application、pg_api_dict、pg_app_api) |
+| `sql/pangu_menu.sql` | 菜单数据 |
+| `sql/open_api_dict_data.sql` | API字典初始数据 |
+
+---
+
+## 附录
+
+### A. 术语表
+
+| 术语 | 说明 |
+|------|------|
+| AppCode | 应用编码,唯一标识一个第三方应用 |
+| AppSecret | 应用密钥,用于签名计算,需保密 |
+| 开放接口 | 对外提供的数据查询接口,需鉴权后访问 |
+| 接口授权 | 为应用配置可调用的接口列表 |
+
+### B. 修订历史
+
+| 版本 | 日期 | 修订人 | 说明 |
+|------|------|--------|------|
+| V1.0 | 2026-02-04 | pangu | 初稿 |
+
+---
+
+*文档结束*
diff --git a/docs/应用管理使用说明.md b/docs/应用管理使用说明.md
new file mode 100644
index 0000000..d9b26d2
--- /dev/null
+++ b/docs/应用管理使用说明.md
@@ -0,0 +1,118 @@
+# 应用管理使用说明
+
+## 功能概述
+
+应用管理用于管理接入盘古用户认证中心的第三方应用系统。通过该功能,可以为外部系统分配唯一的应用编码(AppCode)和密钥(AppSecret),并控制其可调用的开放接口权限。
+
+## 访问路径
+
+管理后台地址:`http://localhost/application`
+
+## 功能说明
+
+### 1. 应用列表
+
+列表展示所有已接入的第三方应用,包含以下信息:
+
+| 字段 | 说明 |
+|------|------|
+| 应用名称 | 第三方应用的名称 |
+| 应用编码 | 系统自动生成的唯一标识(AppCode) |
+| 授权接口 | 该应用被授权可调用的 API 接口 |
+| 状态 | 正常/停用 |
+| 创建时间 | 应用创建时间 |
+| 创建人 | 创建该应用的管理员 |
+
+**搜索功能**:支持按应用名称、应用编码、状态进行筛选查询。
+
+### 2. 新增应用
+
+点击【新增】按钮,填写以下信息:
+
+| 字段 | 必填 | 说明 |
+|------|------|------|
+| 应用名称 | 是 | 第三方应用的名称,最多50字符 |
+| 应用编码 | - | 保存后系统自动生成,无需填写 |
+| 应用描述 | 否 | 应用的用途说明,最多200字符 |
+| 联系人 | 否 | 第三方应用对接负责人 |
+| 联系电话 | 否 | 联系人手机号 |
+| 状态 | 是 | 默认为"正常",停用后该应用无法调用接口 |
+| 接口授权 | 否 | 勾选该应用可调用的开放接口 |
+
+保存成功后,系统会自动生成:
+- **AppCode**:应用唯一编码
+- **AppSecret**:32位应用密钥
+
+### 3. 编辑应用
+
+点击操作列的【编辑】按钮,可修改应用信息和接口授权。
+
+> 注意:应用编码(AppCode)创建后不可修改。
+
+### 4. 重置密钥
+
+点击【重置密钥】按钮,系统会重新生成一个32位的新密钥。
+
+⚠️ **重要提醒**:
+- 重置后原密钥立即失效
+- 新密钥只显示一次,请务必复制保存
+- 第三方应用需要同步更新密钥配置
+
+### 5. 删除应用
+
+点击【删除】按钮,删除该应用。
+
+⚠️ **注意**:删除后该应用的 AppCode 和 AppSecret 将永久失效,第三方系统将无法继续调用接口。
+
+## 第三方应用接入指南
+
+### 接入流程
+
+1. 在应用管理中创建新应用
+2. 获取 AppCode 和 AppSecret
+3. 在第三方系统中配置凭证
+4. 按照接口规范调用开放接口
+
+### 接口调用认证
+
+第三方应用调用开放接口时,需要在请求头中携带认证信息:
+
+```http
+GET /open/api/student/list HTTP/1.1
+Host: your-domain.com
+X-App-Code: {应用编码}
+X-App-Secret: {应用密钥}
+X-Timestamp: {时间戳}
+X-Sign: {签名}
+```
+
+### 签名规则
+
+```
+sign = MD5(appCode + appSecret + timestamp)
+```
+
+### 可用的开放接口
+
+| 接口编码 | 接口名称 | 请求方式 | 路径 |
+|---------|---------|---------|------|
+| OPEN_STUDENT_LIST | 学生列表 | GET | /open/api/student/list |
+
+> 更多接口请联系管理员开放授权。
+
+## 常见问题
+
+**Q: 忘记了应用密钥怎么办?**
+A: 密钥无法找回,请使用【重置密钥】功能生成新密钥。
+
+**Q: 应用被停用后还能调用接口吗?**
+A: 不能,停用状态的应用所有接口调用都会返回"应用已停用"错误。
+
+**Q: 如何新增开放接口?**
+A: 需要联系系统管理员在 API 字典表中添加新接口,并在应用管理中授权。
+
+---
+
+*文档版本:v1.0*
+*更新日期:2026-02-04*
+*维护团队:盘古研发团队*
diff --git a/docs/应用管理技术方案.md b/docs/应用管理技术方案.md
new file mode 100644
index 0000000..fb054e4
--- /dev/null
+++ b/docs/应用管理技术方案.md
@@ -0,0 +1,417 @@
+# 应用管理技术方案
+
+## 一、功能概述
+
+应用管理模块用于管理接入盘古用户认证中心的第三方应用系统,实现应用注册、密钥管理、接口授权等功能。
+
+## 二、数据库设计
+
+### 2.1 ER 关系图
+
+```
+┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
+│ pg_application │ │ pg_app_api │ │ pg_api_dict │
+│ (第三方应用表) │ 1───n │ (应用API授权表) │ n───1 │ (API接口字典表) │
+└─────────────────┘ └─────────────────┘ └─────────────────┘
+```
+
+### 2.2 表结构设计
+
+#### 2.2.1 第三方应用表 (pg_application)
+
+| 字段名 | 类型 | 必填 | 说明 |
+|--------|------|------|------|
+| app_id | bigint | 是 | 应用ID(主键,雪花算法) |
+| app_code | varchar(32) | 是 | 应用编码(唯一,格式:YY000001) |
+| app_name | varchar(100) | 是 | 应用名称 |
+| app_secret | varchar(100) | 是 | 应用密钥(32位UUID) |
+| contact_person | varchar(50) | 否 | 联系人 |
+| contact_phone | varchar(20) | 否 | 联系电话 |
+| status | char(1) | 是 | 状态(0正常 1停用) |
+| tenant_id | varchar(20) | 是 | 租户编号 |
+| create_dept | bigint | 否 | 创建部门 |
+| create_by | bigint | 否 | 创建者 |
+| create_time | datetime | 否 | 创建时间 |
+| update_by | bigint | 否 | 更新者 |
+| update_time | datetime | 否 | 更新时间 |
+| del_flag | char(1) | 是 | 删除标志(0存在 1删除) |
+| remark | varchar(500) | 否 | 备注 |
+
+**索引**:
+- PRIMARY KEY (`app_id`)
+- UNIQUE KEY `uk_app_code` (`app_code`)
+
+#### 2.2.2 API接口字典表 (pg_api_dict)
+
+| 字段名 | 类型 | 必填 | 说明 |
+|--------|------|------|------|
+| api_id | bigint | 是 | API ID(主键) |
+| api_code | varchar(50) | 是 | API编码(唯一) |
+| api_name | varchar(100) | 是 | API名称 |
+| api_path | varchar(200) | 是 | API路径 |
+| api_method | varchar(10) | 是 | 请求方法(GET/POST/PUT/DELETE) |
+| api_desc | varchar(500) | 否 | API描述 |
+| status | char(1) | 是 | 状态(0正常 1停用) |
+| order_num | int | 是 | 排序号 |
+
+**索引**:
+- PRIMARY KEY (`api_id`)
+- UNIQUE KEY `uk_api_code` (`api_code`)
+
+#### 2.2.3 应用API授权表 (pg_app_api)
+
+| 字段名 | 类型 | 必填 | 说明 |
+|--------|------|------|------|
+| id | bigint | 是 | 主键 |
+| app_id | bigint | 是 | 应用ID |
+| api_id | bigint | 是 | API ID |
+| create_time | datetime | 否 | 创建时间 |
+
+**索引**:
+- PRIMARY KEY (`id`)
+- UNIQUE KEY `uk_app_api` (`app_id`, `api_id`)
+
+### 2.3 SQL 脚本
+
+```sql
+-- 第三方应用表
+DROP TABLE IF EXISTS `pg_application`;
+CREATE TABLE `pg_application` (
+ `app_id` bigint NOT NULL COMMENT '应用ID',
+ `app_code` varchar(32) NOT NULL COMMENT '应用编码',
+ `app_name` varchar(100) NOT NULL COMMENT '应用名称',
+ `app_secret` varchar(100) NOT NULL COMMENT '应用密钥',
+ `contact_person` varchar(50) DEFAULT NULL COMMENT '联系人',
+ `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
+ `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
+ `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
+ `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
+ `create_by` bigint DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_by` bigint DEFAULT NULL COMMENT '更新者',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
+ `remark` varchar(500) DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`app_id`),
+ UNIQUE KEY `uk_app_code` (`app_code`)
+) ENGINE=InnoDB COMMENT='第三方应用表';
+
+-- API接口字典表
+DROP TABLE IF EXISTS `pg_api_dict`;
+CREATE TABLE `pg_api_dict` (
+ `api_id` bigint NOT NULL COMMENT 'API ID',
+ `api_code` varchar(50) NOT NULL COMMENT 'API编码',
+ `api_name` varchar(100) NOT NULL COMMENT 'API名称',
+ `api_path` varchar(200) NOT NULL COMMENT 'API路径',
+ `api_method` varchar(10) DEFAULT 'GET' COMMENT '请求方法',
+ `api_desc` varchar(500) DEFAULT NULL COMMENT 'API描述',
+ `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
+ `order_num` int DEFAULT 0 COMMENT '排序',
+ PRIMARY KEY (`api_id`),
+ UNIQUE KEY `uk_api_code` (`api_code`)
+) ENGINE=InnoDB COMMENT='API接口字典表';
+
+-- 应用API授权表
+DROP TABLE IF EXISTS `pg_app_api`;
+CREATE TABLE `pg_app_api` (
+ `id` bigint NOT NULL COMMENT '主键',
+ `app_id` bigint NOT NULL COMMENT '应用ID',
+ `api_id` bigint NOT NULL COMMENT 'API ID',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_app_api` (`app_id`, `api_id`)
+) ENGINE=InnoDB COMMENT='应用API授权表';
+
+-- 菜单数据
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time)
+VALUES (2300, '应用管理', 0, 4, 'application', 'business/application/index', '', 1, 0, 'C', '0', '0', 'business:application:list', 'component', 103, 1, NOW());
+INSERT INTO sys_menu VALUES (2301, '应用查询', 2300, 1, '', '', '', 1, 0, 'F', '0', '0', 'business:application:query', '#', 103, 1, NOW(), NULL, NULL, '');
+INSERT INTO sys_menu VALUES (2302, '应用新增', 2300, 2, '', '', '', 1, 0, 'F', '0', '0', 'business:application:add', '#', 103, 1, NOW(), NULL, NULL, '');
+INSERT INTO sys_menu VALUES (2303, '应用修改', 2300, 3, '', '', '', 1, 0, 'F', '0', '0', 'business:application:edit', '#', 103, 1, NOW(), NULL, NULL, '');
+INSERT INTO sys_menu VALUES (2304, '应用删除', 2300, 4, '', '', '', 1, 0, 'F', '0', '0', 'business:application:remove', '#', 103, 1, NOW(), NULL, NULL, '');
+INSERT INTO sys_menu VALUES (2305, '重置密钥', 2300, 5, '', '', '', 1, 0, 'F', '0', '0', 'business:application:resetSecret', '#', 103, 1, NOW(), NULL, NULL, '');
+INSERT INTO sys_menu VALUES (2306, '接口授权', 2300, 6, '', '', '', 1, 0, 'F', '0', '0', 'business:application:api', '#', 103, 1, NOW(), NULL, NULL, '');
+
+-- API字典初始数据
+INSERT INTO pg_api_dict (api_id, api_code, api_name, api_path, api_method, api_desc, status, order_num)
+VALUES (1700000000000000001, 'OPEN_STUDENT_LIST', '学生列表', '/open/api/student/list', 'GET', '开放API-学生列表分页查询', '0', 10);
+```
+
+## 三、后端代码结构
+
+### 3.1 目录结构
+
+```
+pangu-modules/pangu-business/src/main/java/org/dromara/pangu/application/
+├── controller/
+│ └── PgApplicationController.java # 应用管理控制器
+├── domain/
+│ ├── PgApplication.java # 第三方应用实体
+│ ├── PgApiDict.java # API字典实体
+│ └── PgAppApi.java # 应用API授权实体
+├── mapper/
+│ ├── PgApplicationMapper.java # 应用Mapper
+│ ├── PgApiDictMapper.java # API字典Mapper
+│ └── PgAppApiMapper.java # 应用API授权Mapper
+└── service/
+ ├── IPgApplicationService.java # 应用服务接口
+ ├── IPgApiDictService.java # API字典服务接口
+ └── impl/
+ ├── PgApplicationServiceImpl.java # 应用服务实现
+ └── PgApiDictServiceImpl.java # API字典服务实现
+```
+
+### 3.2 API 接口列表
+
+| 接口 | 方法 | 路径 | 权限标识 | 说明 |
+|------|------|------|----------|------|
+| 应用列表 | GET | /business/application/list | business:application:list | 分页查询应用列表 |
+| 应用详情 | GET | /business/application/{appId} | business:application:query | 获取应用详情 |
+| 新增应用 | POST | /business/application | business:application:add | 新增第三方应用 |
+| 修改应用 | PUT | /business/application | business:application:edit | 修改应用信息 |
+| 删除应用 | DELETE | /business/application/{appIds} | business:application:remove | 删除应用 |
+| 重置密钥 | PUT | /business/application/resetSecret/{appId} | business:application:edit | 重置应用密钥 |
+| 接口列表 | GET | /business/application/apiList | business:application:list | 获取可授权的API列表 |
+
+### 3.3 核心代码
+
+#### 3.3.1 控制器 (PgApplicationController.java)
+
+```java
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/business/application")
+public class PgApplicationController extends BaseController {
+
+ private final IPgApplicationService applicationService;
+ private final IPgApiDictService apiDictService;
+
+ @SaCheckPermission("business:application:list")
+ @GetMapping("/list")
+ public TableDataInfo list(PgApplication app, PageQuery pageQuery) {
+ return applicationService.selectPageList(app, pageQuery);
+ }
+
+ @SaCheckPermission("business:application:edit")
+ @Log(title = "应用管理", businessType = BusinessType.UPDATE)
+ @PutMapping("/resetSecret/{appId}")
+ public R resetSecret(@PathVariable Long appId) {
+ PgApplication app = applicationService.selectById(appId);
+ if (app == null) {
+ return R.fail("应用不存在");
+ }
+ String newSecret = IdUtil.fastSimpleUUID();
+ app.setAppSecret(newSecret);
+ applicationService.update(app);
+ return R.ok(app);
+ }
+}
+```
+
+#### 3.3.2 服务实现 (PgApplicationServiceImpl.java)
+
+```java
+@RequiredArgsConstructor
+@Service
+public class PgApplicationServiceImpl implements IPgApplicationService {
+
+ private final PgApplicationMapper baseMapper;
+ private final PgAppApiMapper appApiMapper;
+ private final PgApiDictMapper apiDictMapper;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int insert(PgApplication app) {
+ // 自动生成应用编码(格式:YY000001)
+ String appCode = generateAppCode();
+ app.setAppCode(appCode);
+ // 自动生成32位密钥
+ app.setAppSecret(IdUtil.fastSimpleUUID());
+ int rows = baseMapper.insert(app);
+ // 保存接口授权
+ if (rows > 0 && app.getApiCodes() != null && !app.getApiCodes().isEmpty()) {
+ saveAppApis(app.getAppId(), app.getApiCodes());
+ }
+ return rows;
+ }
+
+ private String generateAppCode() {
+ // 查询当前最大编码,生成下一个序号
+ // 格式:YY + 6位数字,如 YY000001
+ }
+
+ @Override
+ public boolean checkApiPermission(String appCode, String apiPath) {
+ // 校验应用是否有访问该接口的权限
+ List paths = appApiMapper.selectApiPathsByAppCode(appCode);
+ return paths != null && paths.contains(apiPath);
+ }
+}
+```
+
+#### 3.3.3 实体类 (PgApplication.java)
+
+```java
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("pg_application")
+public class PgApplication extends BaseEntity {
+
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long appId;
+ private String appCode;
+ private String appName;
+ private String appSecret;
+ private String contactPerson;
+ private String contactPhone;
+ private String status;
+ private String tenantId;
+ @TableLogic
+ private String delFlag;
+ private String remark;
+
+ /** 接口授权:API编码列表(不落库) */
+ @TableField(exist = false)
+ private List apiCodes;
+}
+```
+
+## 四、前端代码结构
+
+### 4.1 目录结构
+
+```
+frontend/src/
+├── api/pangu/
+│ └── application.js # API接口定义
+└── views/application/
+ ├── index.vue # 应用列表页面
+ └── components/
+ ├── AppDialog.vue # 新增/编辑弹窗
+ └── SecretDialog.vue # 密钥展示弹窗
+```
+
+### 4.2 API 接口 (application.js)
+
+```javascript
+import request from '@/utils/request'
+
+// 获取应用列表
+export function getApplicationList(params) {
+ return request({ url: '/business/application/list', method: 'get', params })
+}
+
+// 新增应用
+export function addApplication(data) {
+ return request({ url: '/business/application', method: 'post', data })
+}
+
+// 修改应用
+export function updateApplication(data) {
+ return request({ url: '/business/application', method: 'put', data })
+}
+
+// 删除应用
+export function deleteApplication(appId) {
+ return request({ url: `/business/application/${appId}`, method: 'delete' })
+}
+
+// 重置应用密钥
+export function resetAppSecret(appId) {
+ return request({ url: `/business/application/resetSecret/${appId}`, method: 'put' })
+}
+
+// 获取接口授权选项列表
+export function getApiAuthOptions() {
+ return request({ url: '/business/application/apiList', method: 'get' })
+}
+```
+
+### 4.3 页面组件
+
+#### 列表页面 (index.vue)
+
+- 搜索条件:应用名称、应用编码、状态
+- 列表字段:应用名称、应用编码、授权接口、状态、创建时间、创建人
+- 操作按钮:新增、编辑、重置密钥、删除
+
+#### 新增/编辑弹窗 (AppDialog.vue)
+
+- 表单字段:应用名称、应用描述、联系人、联系电话、状态、接口授权
+- 接口授权:多选框组,从 API 字典加载
+
+## 五、业务流程
+
+### 5.1 新增应用流程
+
+```
+┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
+│ 填写表单 │───>│ 提交保存 │───>│ 生成编码 │───>│ 生成密钥 │
+└──────────┘ └──────────┘ └──────────┘ └──────────┘
+ │ │
+ v v
+ ┌──────────────────────────┐
+ │ 保存应用 + 接口授权 │
+ └──────────────────────────┘
+```
+
+### 5.2 第三方调用接口流程
+
+```
+┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
+│ 携带凭证 │───>│ 拦截校验 │───>│ 权限检查 │───>│ 执行业务 │
+└──────────┘ └──────────┘ └──────────┘ └──────────┘
+ │ │ │
+ │ v v
+ │ 校验AppCode 校验该应用
+ │ 和AppSecret 是否有权限
+ │ 访问该接口
+ v
+ 请求头携带:
+ X-App-Code
+ X-App-Secret
+ X-Timestamp
+ X-Sign
+```
+
+## 六、文件清单
+
+### 6.1 后端文件
+
+| 文件路径 | 说明 |
+|----------|------|
+| `pangu-business/src/.../application/controller/PgApplicationController.java` | 应用管理控制器 |
+| `pangu-business/src/.../application/domain/PgApplication.java` | 第三方应用实体 |
+| `pangu-business/src/.../application/domain/PgApiDict.java` | API字典实体 |
+| `pangu-business/src/.../application/domain/PgAppApi.java` | 应用API授权实体 |
+| `pangu-business/src/.../application/mapper/PgApplicationMapper.java` | 应用Mapper |
+| `pangu-business/src/.../application/mapper/PgApiDictMapper.java` | API字典Mapper |
+| `pangu-business/src/.../application/mapper/PgAppApiMapper.java` | 应用API授权Mapper |
+| `pangu-business/src/.../application/service/IPgApplicationService.java` | 应用服务接口 |
+| `pangu-business/src/.../application/service/IPgApiDictService.java` | API字典服务接口 |
+| `pangu-business/src/.../application/service/impl/PgApplicationServiceImpl.java` | 应用服务实现 |
+| `pangu-business/src/.../application/service/impl/PgApiDictServiceImpl.java` | API字典服务实现 |
+
+### 6.2 前端文件
+
+| 文件路径 | 说明 |
+|----------|------|
+| `frontend/src/api/pangu/application.js` | API接口定义 |
+| `frontend/src/views/application/index.vue` | 应用列表页面 |
+| `frontend/src/views/application/components/AppDialog.vue` | 新增/编辑弹窗 |
+| `frontend/src/views/application/components/SecretDialog.vue` | 密钥展示弹窗 |
+
+### 6.3 SQL 文件
+
+| 文件路径 | 说明 |
+|----------|------|
+| `pangu-business/sql/pangu_tables.sql` | 表结构(包含pg_application、pg_api_dict、pg_app_api) |
+| `pangu-business/sql/pangu_menu.sql` | 菜单数据 |
+| `pangu-business/sql/open_api_dict_data.sql` | API字典初始数据 |
+
+---
+
+*文档版本:v1.0*
+*更新日期:2026-02-04*
+*作者:pangu*
diff --git a/docs/开放接口实现说明.md b/docs/开放接口实现说明.md
new file mode 100644
index 0000000..758c6e4
--- /dev/null
+++ b/docs/开放接口实现说明.md
@@ -0,0 +1,382 @@
+# 开放接口实现说明
+
+## 📋 实现概述
+
+已按照方案一(独立 OpenApi Service 层)完成了开放接口的完整实现,包括后端业务逻辑和前端管理界面。
+
+---
+
+## ✅ 已完成的工作
+
+### 1️⃣ 后端实现
+
+#### 核心文件清单
+
+| 文件路径 | 说明 | 状态 |
+|---------|------|------|
+| `openapi/utils/DataMaskUtil.java` | 数据脱敏工具类 | ✅ 新建 |
+| `openapi/domain/vo/OpenStudentVo.java` | 开放接口学生VO | ✅ 已优化 |
+| `openapi/service/IOpenApiStudentService.java` | 开放接口服务接口 | ✅ 已存在 |
+| `openapi/service/impl/OpenApiStudentServiceImpl.java` | 开放接口服务实现 | ✅ 已完善 |
+| `openapi/controller/OpenApiStudentController.java` | 开放接口控制器 | ✅ 已更新 |
+
+#### 实现细节
+
+**1. DataMaskUtil 工具类**
+
+```java
+位置:org.dromara.pangu.openapi.utils.DataMaskUtil
+
+提供的脱敏方法:
+- maskName() // 姓名脱敏:张三 -> 张*
+- maskPhone() // 手机号脱敏:13812345678 -> 138****5678
+- maskIdCard() // 身份证脱敏:110101199001011234 -> 110101********1234
+- maskEmail() // 邮箱脱敏:example@qq.com -> e****e@qq.com
+- maskAddress() // 地址脱敏:保留省市区
+```
+
+**2. OpenApiStudentServiceImpl 服务实现**
+
+核心逻辑:
+```
+1. 调用原有业务服务(IPgStudentService)获取数据
+2. 在 Service 层进行数据转换(StudentVo -> OpenStudentVo)
+3. 使用 DataMaskUtil 对敏感字段进行脱敏
+4. 敏感字段不返回(身份证号、住址、会员信息等)
+5. 返回开放接口专用 VO
+```
+
+**3. OpenApiStudentController 控制器**
+
+接口定义:
+```
+GET /open/api/student/list
+
+查询参数:
+- studentName: 学生姓名(模糊查询)
+- schoolId: 学校ID
+- gradeId: 年级ID
+- classId: 班级ID
+- pageNum: 页码
+- pageSize: 每页条数
+
+返回数据:
+{
+ "code": 200,
+ "msg": "操作成功",
+ "rows": [
+ {
+ "studentId": 1,
+ "studentCode": "S2024001",
+ "studentName": "张*", // 已脱敏
+ "gender": "1",
+ "schoolId": 1,
+ "schoolName": "第一小学",
+ "gradeId": 1,
+ "gradeName": "三年级",
+ "classId": 1,
+ "className": "1班"
+ }
+ ],
+ "total": 100
+}
+```
+
+#### 技术亮点
+
+1. **分层清晰**
+ - Controller 只负责接收请求
+ - Service 处理业务逻辑(脱敏、转换)
+ - 复用原有 Service,避免重复代码
+
+2. **数据安全**
+ - 敏感字段脱敏(姓名使用 maskName)
+ - 高敏感字段不返回(身份证、住址等)
+ - 使用专用 VO,与内部数据结构解耦
+
+3. **易于扩展**
+ - 新增开放接口只需:
+ - 创建专用 VO
+ - 创建 Service 接口和实现
+ - 创建 Controller
+ - DataMaskUtil 可复用
+
+---
+
+### 2️⃣ 前端实现
+
+#### 核心文件清单
+
+| 文件路径 | 说明 | 状态 |
+|---------|------|------|
+| `views/application/index.vue` | 应用管理主页面 | ✅ 已优化 |
+| `views/application/components/AppDialog.vue` | 新增/编辑弹窗 | ✅ 已优化 |
+| `views/application/components/SecretDialog.vue` | 密钥展示弹窗 | ✅ 已存在 |
+| `api/pangu/application.js` | 应用管理API | ✅ 已存在 |
+
+#### 功能实现
+
+**1. 应用列表页面**
+
+功能点:
+- ✅ 搜索:应用名称、应用编码、状态
+- ✅ 列表展示:应用信息、授权接口、状态
+- ✅ 新增应用
+- ✅ 编辑应用
+- ✅ 查看密钥
+- ✅ 重置密钥(需二次确认)
+- ✅ 删除应用(需二次确认)
+- ✅ 分页功能
+
+**2. 新增/编辑弹窗**
+
+表单字段:
+- 应用名称(必填)
+- 应用编码(自动生成)
+- 应用描述
+- 联系人
+- 联系电话(手机号格式校验)
+- 状态(正常/停用)
+- 接口授权(多选框,展示接口名称、路径、描述)
+
+特性:
+- ✅ 表单校验
+- ✅ 接口授权选项动态加载
+- ✅ 新增成功后自动显示密钥
+- ✅ 编辑时回显数据
+
+**3. 密钥展示弹窗**
+
+功能:
+- 展示应用名称、编码、密钥
+- 一键复制密钥
+- 安全提示(密钥重置后旧密钥失效)
+
+---
+
+## 🔍 使用示例
+
+### 第三方应用调用示例
+
+**1. Java 调用**
+
+```java
+// 1. 准备请求参数
+Map params = new TreeMap<>();
+params.put("pageNum", "1");
+params.put("pageSize", "10");
+params.put("studentName", "张");
+
+// 2. 计算签名
+String timestamp = String.valueOf(System.currentTimeMillis());
+StringBuilder signStr = new StringBuilder();
+params.forEach((k, v) -> signStr.append(k).append("=").append(v).append("&"));
+signStr.append("appSecret=").append(APP_SECRET);
+String sign = DigestUtils.md5Hex(signStr.toString()).toUpperCase();
+
+// 3. 发送请求
+HttpRequest request = HttpRequest.get(BASE_URL + "/open/api/student/list")
+ .header("X-App-Id", APP_CODE)
+ .header("X-Timestamp", timestamp)
+ .header("X-Sign", sign)
+ .form(params);
+
+String response = request.execute().body();
+```
+
+**2. Python 调用**
+
+```python
+import hashlib
+import time
+import requests
+
+# 1. 准备参数
+params = {
+ "pageNum": "1",
+ "pageSize": "10",
+ "studentName": "张"
+}
+
+# 2. 计算签名
+timestamp = str(int(time.time() * 1000))
+sorted_params = sorted(params.items())
+sign_str = "&".join([f"{k}={v}" for k, v in sorted_params])
+sign_str += f"&appSecret={APP_SECRET}"
+sign = hashlib.md5(sign_str.encode()).hexdigest().upper()
+
+# 3. 发送请求
+headers = {
+ "X-App-Id": APP_CODE,
+ "X-Timestamp": timestamp,
+ "X-Sign": sign
+}
+response = requests.get(
+ f"{BASE_URL}/open/api/student/list",
+ params=params,
+ headers=headers
+)
+print(response.json())
+```
+
+---
+
+## 🧪 测试建议
+
+### 后端测试
+
+1. **单元测试 DataMaskUtil**
+ ```java
+ @Test
+ public void testMaskName() {
+ assertEquals("张*", DataMaskUtil.maskName("张三"));
+ assertEquals("李**", DataMaskUtil.maskName("李四五"));
+ }
+ ```
+
+2. **集成测试 OpenApiStudentService**
+ - 测试分页查询
+ - 测试数据脱敏是否生效
+ - 测试敏感字段是否被过滤
+
+3. **接口测试 OpenApiStudentController**
+ - 使用 Postman 或 curl 测试
+ - 验证鉴权是否生效
+ - 验证返回数据格式
+
+### 前端测试
+
+1. **功能测试**
+ - 应用列表加载
+ - 新增应用(含接口授权)
+ - 编辑应用
+ - 查看密钥
+ - 重置密钥
+ - 删除应用
+
+2. **表单校验**
+ - 必填项校验
+ - 手机号格式校验
+
+---
+
+## 📝 后续扩展指南
+
+### 新增开放接口(以教师接口为例)
+
+**步骤一:创建专用 VO**
+
+```java
+// openapi/domain/vo/OpenTeacherVo.java
+@Data
+@Schema(description = "开放接口教师信息")
+public class OpenTeacherVo implements Serializable {
+ private Long teacherId;
+ private String teacherName; // 已脱敏
+ private String teacherCode;
+ private String schoolName;
+ // 敏感字段不暴露
+}
+```
+
+**步骤二:创建 Service 接口**
+
+```java
+// openapi/service/IOpenApiTeacherService.java
+public interface IOpenApiTeacherService {
+ TableDataInfo selectPageList(
+ String teacherName,
+ Long schoolId,
+ PageQuery pageQuery
+ );
+}
+```
+
+**步骤三:创建 Service 实现**
+
+```java
+// openapi/service/impl/OpenApiTeacherServiceImpl.java
+@Service
+@RequiredArgsConstructor
+public class OpenApiTeacherServiceImpl implements IOpenApiTeacherService {
+
+ private final IPgTeacherService teacherService; // 复用原有服务
+
+ @Override
+ public TableDataInfo selectPageList(...) {
+ // 1. 调用原有服务
+ // 2. 转换并脱敏
+ // 3. 返回
+ }
+
+ private OpenTeacherVo convertToOpenApiVo(TeacherVo source) {
+ // 使用 DataMaskUtil 进行脱敏
+ }
+}
+```
+
+**步骤四:创建 Controller**
+
+```java
+// openapi/controller/OpenApiTeacherController.java
+@RestController
+@RequestMapping("/open/api/teacher")
+public class OpenApiTeacherController {
+
+ private final IOpenApiTeacherService openApiTeacherService;
+
+ @GetMapping("/list")
+ public TableDataInfo list(...) {
+ return openApiTeacherService.selectPageList(...);
+ }
+}
+```
+
+**步骤五:添加接口字典**
+
+```sql
+INSERT INTO pg_api_dict (api_id, api_code, api_name, api_path, api_method, api_desc, status, order_num)
+VALUES (1700000000000000002, 'OPEN_TEACHER_LIST', '教师列表查询', '/open/api/teacher/list', 'GET', '分页查询教师信息', '0', 20);
+```
+
+**步骤六:在应用管理中授权**
+
+前端应用管理页面 -> 编辑应用 -> 勾选"教师列表查询"接口
+
+---
+
+## 🎯 核心优势总结
+
+1. **安全可控**
+ - 五重验证机制(参数、时间戳、应用状态、签名、接口权限)
+ - 敏感数据脱敏
+ - 高敏感字段不返回
+
+2. **易于扩展**
+ - Service 层可复用
+ - DataMaskUtil 可复用
+ - 新增接口遵循统一规范
+
+3. **便于维护**
+ - 分层清晰
+ - 代码解耦
+ - 文档完善
+
+4. **用户友好**
+ - 前端界面直观
+ - 接口授权可视化
+ - 密钥管理便捷
+
+---
+
+## 📞 技术支持
+
+如有问题,请参考:
+1. 需求与技术设计方案文档
+2. 代码注释
+3. 本实现说明文档
+
+---
+
+*实现完成时间:2026-02-04*
+*实现人员:pangu*
diff --git a/docs/接口清单.md b/docs/接口清单.md
index 010b82a..adc6feb 100644
--- a/docs/接口清单.md
+++ b/docs/接口清单.md
@@ -195,6 +195,14 @@
| 重置应用密钥 | PUT | `/business/application/resetSecret/{appId}` |
| 获取API接口列表 | GET | `/business/application/apiList` |
+### 3.9 开放API(应用签名鉴权,无需登录)
+
+| 接口说明 | 请求方式 | 接口地址 | 鉴权说明 |
+| ---- | ---- | ------------------------ | ------------------------------------------ |
+| 学生列表 | GET | `/open/api/student/list` | 请求头 X-App-Id、X-Timestamp、X-Sign,且应用需已授权该接口 |
+
+详见:`docs/05-模块技术方案/开放API-学生列表授权-调用测试说明.md`
+
---
## 四、系统管理接口
diff --git a/docs/接口清单.pdf b/docs/接口清单.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..5d8414ed5d2aa5d7cfef25412e4bdcbf70977260
GIT binary patch
literal 414135
zcma%i18}WP(_nOC+vbgJJGrsV6Wg|J+qP}q*vXA=Y&+S!@Ap^z``6ZPZPl6cO!xHk
z%=Br@Oh1QAUPO$Rk&XqLY~k!=7n+fffzZ~_0-A@1Uf2O(;AHDSNGW6MVQyt*K+j6Y
zK&VYAV_;-%<7De-#!V<`;{>oG{6-MUDG{m@GBW5fvg)yGQxOW<*;xV90EW`$PV}tI
z>~zd*-yNkTlx2R=5L%gA0tm$cMwYhUgw_TQmQDaSCwc}tMs_+zLSZupTWbJ4Ckq_|
z9Sa)+8yyEDp{NzW$jQOhhMtj??i)|2WME?8VE$ixsi5iQ9c+!AjR4;hRkAcUp#NSE
zp*1JVcf-F6Ft@c4F>nG9Qi^afF)*<)Ffp(&Ffy?)u~0KGP<(&B>11q;|KB8he9!*VYYc#<{{^rybuuGlvj
zFSM^B?$|;g3r?afVu#k~EnH+JhITr{z<<)Ur{pqH!UxZf=Oz>zu6ewR+X@Vc9hlUi
zv&h3q-FF`k|FosBY*clL2K}S>J}&0zP`(+s66W6u=|H41rZI}?wv=8>Xs9F@wg@3xxWF;1wXmI~ir8Kb1D&Aq+RV(L()G;Z50n+`bm=uK$r|MBDRP&hwMrN
zerIy20`nm`8c$a8uQn)&g(%{Koa!xue2c+8&2hi5tw5{$WlgIj-YsEW#fB9rF_8hL
zi4b4CNSTIE&oU&lHA^y3;%dvJ?(}TK#PeNzi%HGL?|u?TSjI*x+L6%>qn>4zKfkF+
zh>iLval~?(S4lnFLd9@tJ*$lcjKgq@_klXlaR9MTvwjuEwaHOoQHzD=J1!Cb@DIai
zI&V$@Mk2-rWVR_;CGh?cZYl-TCc}nZpAh0`c+s*=;9n6vs{T8#`Cx^X+|Z&7lcv&EuE)HxK)79u6-2E8OLQuF5CD}bj*ovi1&%nsNUk;8q7c-?-z9Cvdy$5VOtbeyZ?_7P`
zyFX4YN4GzZTxYhwu6upCH~Dz^c#HM#W=eB?`8It${S4zHHd`a`zkbY#n0+o+&IJ8w
z_Z)yW$n;b&cJr{4Dq3r+8DJvlWtWcTWLgS=T-o;Z?bvLYvd&z)Zd4HnzA)H5pV=y&
zwY=V#gzgltu4{W#cp2jeAb7_Gb(HhS?)C?FdIUCU@3CqbaUY@l4W1!^d*7O-(JZjt
zUFHDGX-*KTyKvE(=S&XVDp!6M73dOpX|)FV3(O;x0O~gwx-jAj#wC>DxUFLYm3H!D
z!)6=TZ3C;-#v^TlI^8GYF`xA8eyiyAg}E7L98YZy`z*rTgX>@F$zf~E$k6@0S<sU%J=;ib2Z`D-BN?$jAdGa
zhq~}~gYKKVY#>_1zHCB>@L@`V&WKQoofyV>$vhBqCcM1pYGcKM5#;4S*_S
zph~u|vw%jgr9Fl-Zq$RNG9vth#9FykWHSzzkGkt#)Ut+BwwX!cVDD3$W^l<|w%wwn
zx`@%DqYsRwh6qI1rp6-%s2+ub17?JG6WxoIwlJ!RVy|OG&5zwNFF1$lJ-uXe&+u$h
ziL#2`0Hh&@mqKL&1ZjXES~oir&&%+79t6Sk>@gA?1eXDnKj%TtT&=wfF2!S~f`g%R
ze@u=+CBchmQ8ArqlDKg+`*r&|jxR}SIy%8P<;P0(*3q6%v1(eF`3C(s+#F+YVt}t}
zk7z}IKLIzEJj*j$G8d8ia32BLy!tn1>1+v=<;~!$5dguE3D%1J4pP+g<~)FWY@4sG
zYby4IK%LA(m3{yUaXyMr@rTTZu0eMx!pzH~DRK342F(+1TjcZo1NN(I=M<}Ux~3@U
z)b%|@|94D9j6P4)305jo5{pP6l%RRAyvvep74M&boL2Wb6op<5$VfM^dNZjf#YW8f
zq+cxS!;t7_728y(Xw*ygxD8xHA%2G8>VfZGg_nW;i03v;9?n4dH=>hp#W>qwu5iGj
z`rZVK8!qR#u0qI8OZ)%Mk77FD~a
zFJjHWJ#x)xHFDU=$W@vIm1UY#S_SKk4I0f}k1?l2=b|T)6Pp#2_WH^zMb8QdpZ0g9
z>{Ab~My+h{17qQ`179PsedS1_3gqzSLvEhn^hHyv^O8$*v+c?}+ve-n?aF-x6Vzxt
zA=1em+ZfJQPpoaLL6e&e2Q#e|e|m>2YWnNzF@BC<`K*!5&NF*45i<;mHpXr7jvt!O
zT@-fy^hci{#WRkb9{9RJk!S)Vo>LY>9{%f2uFz-qUSDxm+9X^6w0CX95)KkF7&{jz
z8}Tp^O$tq!ylViy66f;#B>z6@bmL!vG{*pU!I
z8RMr=9*h~CROC|^gDHv?K^fii7kP+Fy#5R^@TRLXQ605U))O}}g4N}3+K)3!k@}!o
z1)m;;r{q};XK1
zrckjhO%O*uXe+Cc+%3fS5=Fi!oW=kl*Q*cpCdV&5=s!m+
z5A8f-c{T_=;hAA_-%G!w%j2)OcRZO9zOuSMlEFQm*{?Dv;2$D?z2o3bJ3$cqR+ew@
zkh3V%ui8;UL;W{)KQ3Gh+Kj3&*S|CeDm!c^uiCaae5ADMA(
zjLUt?OpZvj#&OAI`^UH5UMNY_gVjy@7&hJw_?+Vcalh2V0G~2T+_38N1SXXMt+&hV
zg{bfMtfvVd@paArp?E4!8F-LPR18qrFhWzo0Z1!bs*+c_%uFkM1ZGoylzDn)2})@z
zj}~1ke0Af$%%$Cl`VbW5)YS?`ykWQLtcIqBohm)h+GeZwS*BCnHR4@G!EVZO;Znt(b5pK@TNdG<@_aP
zlW{;=H*gogNI}pta(^D;RHD@~^$uPI>Dh0crqC9*)5>-W62vZuE>NcqT4#}MLYPK8
zpyEan^|6~E2?LH@E#nDQFV(VV49HI9L`Ac_pCW=;+Lck$`q$DUix;|-F~*mgsW(*MeYnGiO-U!#v!L7T@#3MOex4KG~KzeSVs@qNCzFYW3-ugMuXePrFnAC
z$L_pxEvUQsnic>2nBkfES)n?SQubJ7rAnLIUFZSnso;^|(0b~Ci@C%~<+B)AJ9g*2
z__Fun%aG%{QuOY|4;v$ySt&!cAdBk`?I|9s4eD5WG)4OU&dH-AkVtyqXwGC6Z`NQ%
zB6HXjhyltZ`dQ#x!BO*u>R2U
zu)fIA@J_^yq1~z!g;dwP2-TCMW&CTKih2M1yNIZHiD3kbnROG3w|%S=l0C^&@!?fE
zB^6T!C8ytFXsvh>%cU36fjC9l8%j%H^J**70dP5kwF_dCRB!(!A;5aT}
zNOSHW;g~U$lCdPqSHB36vQxv6GQ*Jaok7Bne@9)!8@yR*MPEzVvR2&pYiSn2ue}!(
z-_T*rNwF=2JvLm3ZBXGj4Usg&i}O%u`834>9OJ-*9}y*I?Lv`4nl4xe7|y!IuDju@
zWUbkRsxs*ly04hIy4N7*OnTDxJ{ndip9z^I>|>9Z&P8WfBRjoU*DQm~R#b(K)_%fP
z#fn7n#SD!-m5+RzTjjU8-F=%I^S8MLs1Z7d`NOEdDaKcBPX5#Xl4yuuk
z@O?{be>)X(N-ISe;V0*gv@8F$%&Ha-+-&1%B*nWTuIz?2xR;R~E
zCEr;;FmBI%eqtr0R-T|LlyK9GYXRw%znJwhzT<7mt0gzmMIo0bSp6qZ9IsmAyBO`n
zXxJld5iV>RS(#n4ZF2X`&y|C1m*KlYRq=Anslp5vI~g{n(KC;O2sUu!2jBuKT%3$*
z#Pl{W`3&@iGoZo~5^k(Iwz(<=;w7MBDyrd1@ABO2fd(9^s+i|Llx@)FyizF^CRNE6
zF;(3bZ4XfE+xC`6Qk;l=_U?#ved@pkqZkRabmw;Pw(Zw%QDJo88g0@7!(i
zh36?3%JG;>El{w;1@j?go-`(Pa}wpjc!RXenvQ$kLmdm{`c2(K&BA+wbbMo?`8MwA
zk58AFb&(2_w6V$%R<$9n5#cVRunWAiW0!=g5`R<@5YNOW<%hX28Ke>}j|b_5s_Qi?
z%ZfEI`im4AI(LvLzz|Zi!4FX@sf8Z!C5}0iBQP}SLB){6BsWBavHb){BNm+dTZLp&
zm%m=tKVF3irLXcVcZI2&nm@7|@=*O9BV13?UQ$M1t&a2aLPwkUBY=1GL)=r{nFTudG!~cfv~{IW5!^@N0qwecKANon-
zDpY$9`|D*S#oLwO;&hGuknU`DikXF>Br
zxIO5wb0k;dt{-KplV`q5ntBS9ZO+Td-ZUlZxa&T0wd)?|hH^6a5GmUnzdrmB2?Wmy
z+YEm${m`ho!uzu=ye8#`Wnm#6g?h1V+~%;h$>yMH`+tJs54jX+Z~wz$DF?_d+;S&a
z=Ng!5wKe4REOi{b)4yx$mkpOWh;K0@2P25(7WQsoJkcuoP|hKG!Xy2{Rhh97q=s*C
zVl78+%8t9QMLJad6~GM<75NQR6_V72D*F^yWqbp&Nz+AL)gE}Gq7Sk$1P^=E2|fhQ
zJrZA$_xxQ?5+dFmuNdI(Q&;#?b>7c;h7brX2q5^6yMd~X?vxj;_T~U~(TR`eLQ9&A
zu7tC{UcsdxNF|HB+mZ&qT@z|q;+=XxG3P~8g;^LzJF5JT6Rvh9nH+lpaT^c0pId%s
zUG*(}mtol+(C;SFjoa*wL^kCgXVOAMhyZe)n|R&sBrc(_Z2u+}k+XB2h2rsF+?4!EX-F(yAIyu}02>q$LOl5@B+$^=KCzV>1
z-qS8nTTQr!r{rLo^q1b%MVEd>cCAjqX|7de_|%_4LvSi|BsjF3Iu2K@$ue?nP#tEh
z$r8BsG-TIW9jP@lzYh=cUe8{yz(2Lw(FPKT8UGx!6>Joak;QBL)XhDjEEOgHXcI;T
z-cplCKmNL*M0PklD#0J0ch?<{I&vp7N-0Jk(*NzEFfwU;YM`_RTMkjcV6u^?i13Y_
z_MqjmzR0U2x)VT*SS?^e7}EBoYIXz@Is-)$IrA%jz;#UIg7AcfXjMWEbvgGy!nSF289V-G%80h=MyY_@TpS-0{(DGz5_&G=!lNG=w0RTlijl{}eB75ZafK
z_vVg?QI@RIj%_-WHG4cF6lN!L>tT}A>D($bp==Y4H~FxHrtC1bTjW^6WjFP2?V9?@$^Cl!5JNQ37I&bkPA8TKhLFnC}FFtqUg!xm~&ry+RQ!1*KXY
ztD;<;M5}PYd714uGOd6YuxBO*@Iad}Sr)qV->tw5RSNsehnZ*JWi?;oH7
zm96%g2>BT8ci9mg3e=lFjrrIpPMozvm14S{;iGJUAsfR577#r1M!JnRBF`V(JqG`c
zhL0I+zmH@6TW132&dEUs=uKrc?xj=xx3o5@$8UCgmjsr--GTdvItd|v;A5mOR9v%m
zm%AS=J~vDUv$NXZSyNT#jpwH{%iB3EYfWwpOENAR`4=mI-ejr?oDk$9(QqSXd&`F-
z=*E|>`4*NM)cseR)Z^K|+54M$G7PMfkk*Q^Fy~if4?~NT4nqeW4nu$M$)LaYWD(zc
zvL9`|M^J9XcVO*u8KH}#7ZNZj;1oZl22rJpepqG}S4X-Q$8>UzwRoQ|y;X=q2qa
zB&PrhXjGOdn5u)?^Mb>OJ%%`v%kW27e
z8y7Dm^}-EPx5Z^#8!?k9)oM!iFyOdr5VYPsRJ_HrbeD*$)|HU0m=3a#P#aZb=V%^y(Rol0;oa{Qh27F!gY~X8!Zj-z-?()MAa}DD?h7hj3oZg;aJ(-w!~Jt%|6ljz|8;fG#`*tu+0Mqv
z!SFvX+c#oJ+wHxtYRgPPE2jSP`uBruGH-g^2A%`I(?kKV#A@{?nRaGe!Nwu+buBtf
zTP;`{EHD}~y+cy<%sDK4JzjIaKGhPAB0XvMj}U|NGrOn<|B}FR=v1)c
zzSu}9$-u&`Fo8YGiQU;d@em!3Or|S78ch;Ai|D#sdgf-fC!w817+~88t8=#2k)2g+BYrItl)VBB
zkWyVpPbCxS3)yN$j+T+tnUuATwQVMjhrLJFFT=|>|nUkP};o+C+Wer7WAQ5KPX9c(UQC_mCg%J<&>Wf
z5Ap(mq@L_Jr4Uq;bXtXCFeeY;FX(}Eo0V<}PkdkOgq#N%8R7wHvPB5O-LLJ4nonKa
z*!>?eYB=J$))`iDqz=W?p6qWjF39C5-JmY7DOL!iSH%w5{C~Tm_X~pQmL6pkLh4ZI
zxN#$)!#N{XJ$6H;yB%f(LV8mHFj2opMF94O`@UnE{+FFp`hVEDc_8`=hqND33aLpM
z17*}Mq
zM3h!MGZ1p4jw^+s`FrNGY&9`tRV_*zfy$f`SL+i*9TST}SF*o*GKO9g0TU*V=}Wl4eU4w|I0iet6-TS{qV!$ziXm8}`a5zWMlP6>weq)me*8O$jn
zG@r0f=*Ix26u_D5WXvlQzi|+(vDn6A_&sHuW3w1a{9;(>v=8!H?isMwf>;N)J{GjK
z#y>G=GxNADQ|fQGTXKw(IMnA$B(3Bm$7yK%!J-_Rjry$
zYBC2j)BSLM`BkyJ>3-$B1*$OQp6YA?QhvE`6iT2=GnH%i`Wr@$&vHW!w+Hw0{-rb&
z!RGDe{)Hdk=lSUC{Uevp>v{KPQt$KVsW$hY!~v(bo4b$u&Ewjq+w0Bf!a`~6ALS|;
z@9UZNtvh}b4ygC{a+W7U1pk&)#aqW@^62^V(UQF`WqaM#7wM1Gk4j|lFQ>d9K~YWt
zp)DL#jx^mYNzUo?#@-sAETrd!M=GZe?(ggeNbpp~pSRJ{iWr@xlR~pGC{zTh;y_=I
z^0@d%ep2@4hi9JTyE|eE
z2>d!b3vz?@`(nE9O5UXTdMEb$cSQEagxP~8W9=tbGg^Pma|MO#eaG?`$C=P)#;>Sy
zdhC=;Gud1WLv$Qk7N5kMO8lA-aew?`yqWL3AmTrKW&7%;rd--1ixse;LW^5>{ZXVF
z8xT)ga(|`HcLeiG(ey2r6uyk{ng1Ny_w@f$c|=9Jsi22QQkm
zW3lr2*Q=kX^|BC+w`3t3_27^!P-e0qN**NPz#!
zj(jbftG
zMCN_NU!zs}E5bUvp_9hRoHADe%YFl{H}dtpwiH1XeYgCe{;#g;M7h7KE82X6KQG-b
zOfmZtZ8R?Z72f7s=U8Z#YP|DvOYRr=q@F
z7qNnBd^jQPM?18FSfR+tpg_{r(J+aNh~$n)($)d1CqY<(z9vu9Rain_I%RitEUywW
z4>OrRiV|{*p;Ul|)ixtpbtfSBUNt=dpS$F~#YoB;Le2abMa>BfVZ{dz@)ishn^P1m
z=)AB(qy(gyq_R9X?rSk6n7~`Uq6lkN3BaNO*HS12a(5c}A>L^$6<}IIYG*QWobpSO
zL8Y4#nK?KD-9Q`I&d6-yZ_p)3!}~Mb=ku
z#%UO5etV2*9SR)1jkM=mv1tZ}5unY3d36z|@qz|~vz&uMsunr0F(JRNHrHmg%QLv7S=54%L${k<9xfR#g;)+f~OX)v?SVC1V0AY~
z`l0;9T8)QM&;WElZl_Bo$Ti|-v=luUOq$7n%RJ~jxO_iIh>|HN!z2;eE7!e@Wzy4R
zmIoVC;yF&>Jn2PQvP
z*eSG*WD>M2#Hsifs&qa{rR36)t>mC{amT{-h1s)^+D67j&a&pl{6qV@d36Si=OIjy
zw*j>dXh3amXff2=q37yZJlhCZEHXJ}wOP)V=!ME(>YmWe@s;3ZVO+E9l;QMcsK3MT
za_x^hcbcXUniOp`E^QV_9C-9s{j}!UJKxPk@K!@)DGbPfC(vpXo&^uPS
zf1QEJHpz17%yIRjRHLvhc-%^BQn(d35143D*omHj$u&)5&U$$7UridxooS*{B(y*|
z!gq|Glo#xYEHmyFh29hfmetHAiMqM6&ZGvnm??tq
zofTxg3cfY?y@8_rom8aPq^`IRMi=QVaM8meEeQ77%_xwnFP6(+&7clu0@Wp`D_c9w
z#`En)ygNB`4a9SnV45Dl{sHTaacZ5Hb|x$agLO-3N^kFt;>lJ+sG
z%!EGqmZ5`DaN$e+{;?`5MIsyY9sKJkRYk*|@v`9V5X6tX#IlCjY~|`5cYRdFJBp{_A1sIRY7F+&!%@S#6^B8E0vB8FhH@oBs%@tFON
zq+&a`;cHD%Ly$Qnj3A{FQFX&Gh#^N3G)fvTTG2zd)qtW4Trn1ll@JD4KUpF}`5T6&
zS$};@kie0+Z`a))U4aZrB+m^lV?hL4yO=`u?$9Y_$Oj*v78@xM)yIi^XO0z)#3OD9
zHXWbF|Idg@q+;rv{sJh7>X#z--|#^ggba2Ic3`lKQC%Gzqxx#cu{2IVJGl2=lk$rl
z$eDm$!(iSVqq5+!P=(Yr+bkDXi6*3ux^?-M&*X7sjmp#U8NT;sVeOTA@3#1TF@41A
zab#L7Mmz=Y>HP7Ts4+CQh{lURLASHVVl9zRGiG&!*Axm<0YdnsA@*Ja=22%ptgO8T
z>||Ti4ksOnT}PT>fnImNp_@nG@D6G!QcJ`nWX?X*v})?aw&G2ntBXtziCnDI9@us4
ziw;l|N>_O;Tn8Uk&2FI7DCQ^@N7RmW@n4%USjT5W1zuS60titiNP;
z)1f@Bq$%~J
z*7Ia_LAP7H=}n-!zB#o^7HH&V?%D}WkCihZ4PI)*->;_E_
zMYCHxMUdZ?RY~O=BozA~1o!ouf61t5ImWRQm(w5@cI8SW(+zf6n%|l*tDrc?eK!xQ
zCN(@G0JDn1TqYTI8AqzjCB%|ul_sfwE@gVn(6YvO64vcooGz)#XtQP2z_^dLGMz*}
z8rHGV_wuUBO+CthGKFQ%D!@fGmY4NmmnyOufr=gXEWbxt8nn*0NOgS&fs~dj
zJpJ4|f$j#>1Th9;rGaPJksgA}Z1razoQ-kbH&)^wyiCXI9mp5>?wys&sjsh9YM3VN
zYTc68LW+J}O!Y0kUmOiBg2fO(X?>14eoCb6o{$)Tn?FEra>Ja(ED0hGE(jt9?yH!L
zpsN*Q=A?5udcA19NUR=SDX)hXv!PV`c&@MeUn$qiJ(o0xQ{?uvDD<&6a2P)4w3tKi
zby<4^#X2b*UGv&9BY3@Rz^3=Ynh3AN2CcnsiVuK6$_N*F`MN(#tcDmp#4`-;iw{J}
z5I}9TeSa~td6WL$xsPWEjEoJ!!skbxR)3R7`%>iKx%sRLBxpC;!cUj9*$35s|14
z5sZQ_7CW7vA;gZH95CpAJI6jOdpu+z|L~;c;G~m(iTmL?G=~B9{+ev$5YFCctDWv&
z8&@e+)U#KK*=nvRo*7aU!&dwQw3M^FP{#g&5ovH?R0MX~^8hu)^Pp+$bZn
z26hHE%R*H=lb`A)D{}ErPU=_z{t9b{VDiPsa+KQ}&Ci=jdkdT81hZ0&Z=Iv7u|p|{
zky(3NljVbfazk#3G;qK_&p8C3RtY|_qrgg4azBlxkOqxM+mNpii1a7ntKAklyct=O5$fypdvO63Gy
zWQ`==w~yadMJ-XZY?|Ua$0s*KK`U{1I|
zm#(f_!Hx2T$9PkF6Z4lF_x{OqV`wdbkxml(x;97b&u5q3-}X6Yy(5;Z5@z8o8B=t3
zb}U>YEYpmL!F|Vvu~u?t#<;}r%I@u$k|IbML_c+E9z&{m#R*mTB88xyjO?3Dea?7
zy{a^gK5Ki1&mn*4V+C~`j>{+aR|Ye8UdTg2*sIG^#W{w|DcIy3Z1?pGPkcOXz88#Z&S_1Intfp3ZL~$H%10^XE=mL^M(K+C_6lMgERXNLEWnosWD*P
zCB8$#TJ%%LICibWp?#~fjKC~Yfz-e(zn2wf29A#o_*4hWtQ@i+}tX)Q^cIk`|)=VCAY*nB0!u%$Q!S(eZ_tX?~^~^GkbZ2>v
zn*}B~OC|J<#0oSX1R6itie({J)y|5eZ6@r9Cy}bwm=HSclTN$(`SqtRi2M`Nmg%f_
z?xiYH{7t-%wG)I$KzLBjF{d-F9deB{t(z?Ofzf*K`~jNyb+e-9nL%+jLaxi*b9C>V
zbY|f8vGYr6=miee@aVqh%cjN4w07b#_w$2A&dPA5#c`%@r{-!e@|rbBiyma7B`4en
z-x~V>%_ollcZY1+fdf5vsK$Z)q{doQqI0@LXco^GHees{!!#}|^vW>fohlZPZIymK
zd4<5J8|H6dm}5NypblnGzcRz5cM_J}xO7Y-TpY6Nelxfom%NX$~meOy_K~y2ZN}XJ8EHaUu>4i$1l1aWb
z`m}aacft@G5p&(OLG81;ScM8=&BW#IuZsdhC<9plfm2S6|8rfYPNMO54zeVe%Z!0U
z0SS9a;$1mPcdwHN?N^T#Y@$fyp3}UT{i#0?hm4AP)+`rI)_Wd^6RHYEN77I9O@t`F
znhJ2?Qq_fuuWj;G2Nz4~WmhaKYY#<-JExmli@l1q%ifE?80R?WNK$txOJ3<$sHGCM=me4<1L4f`e
zmrA_&AHDtl)^vlBz7<2YmDg
zgZ>FV8uhhNGU~TBeE)3`dOW~YE^JF=Ai&DVC2?ALxW&0Uc)#$l3C7+c8Y3!hh`mwai
zP#$9T&qP5YQF)$0p*)KsSk(#@$5+MXAX3kCu)c#dD}or@z{kAIGs-Db}^?D57|rftj57VzF7L)e9f-i390|0;~)1ccZ~5nzxkU
zhqA-7;_~Et1ARk^$fj{kVTsib(RU5d;dg2y0ZQG`*xf?+ftMs6B6614;-#n?c~22=
zOEb3PJ$MMe(<`JAp*`t;s!0}UG)GZN{jX(2uM9f^#+|}_pcTTH
z>C$?0;k~Lz;xGcRaI|i;&B2HWAJd8^cI%;Km*%)FaUGW%iawm+AlFt2x$brI-RQ1v
zFIS(`GFH?gJi_tm_O3?vce?{@>p9`2(zbNsg#$aeLPN@MPoMmSKiC}0X4)$|)q3X+
zSXS(J=4!Hw*91|xUl!c3Jz`b#kiFmgyK=qyF!376#YAH`k@|oX@Aj<%{j!>|>k*
z;+GZo`^RY&pGj}7G$ol0fe**Wow4F-m80nqt~RFDH2Fwf`)06Xh{=ZBcJ}9c=Y_c0
z>Ga5mzI0jOqa4SO8d0a03nw}5veolb?6#HD&B9YD`*z#Kn{RfV(QiLME-w7X$^ya8
z)t4@;QrD)HQ>HX2xUSl48fo5Sb@7HPFp|_k9eD5w5y3oKB
zo~ACz=@yjja!LX`GE^L`Q2+GX0o4owKffrZe&}NZt(XJ77cGvIICFrd?jpWhmCM{i
zEC991g6>chgU41461BmG?wCqj>+q$4_c>z&g_=9uGN?|^?q^BYH2%i?C6tXqH(Y`D
z7|lZ{k@GM#`#bIT)SvaLXuwXj{2nLuktO_Xhb*9q=3)u8x0;RS+sXmbQd7oDR#_Y)HPIlc%R*?*c#
z1zSD!R?rk^Wg6&onqKOCE65oeEY%zlx5V9MuQnT$WBHY+?~G=%%-PV)q{3j-J#=S4
zY?%~oN1OyMPEkK8ANxMlr=L{#!Sqa=%06kvY9~U6hLBk0LreudsId&y
z&Xg;#qlAd$1%2FpetwB%C77&OJQ{f1r(X-q8Mw&q$JN|m>rDiI0WSKU
zv#SSx_#>zX;Y!Yy4n9HY&(?lG6%IP4>F5Iv@cXXQcYdk$$(O(TWr4rvLWDw
z>*HeK?dtRH&c)TeOFO{RNzYc#x0|=iGcvH4ZB@su>I2_bZ}<20J~#H|9<=aVux5|#
z?OzRitt6gQ@|oc)p1xr(8qx5u8WN6mg`8o&p1+Q5^}!6pP(H1_k%2&4
zwD1A*2HQH>9~Z)np-6!ti-go%ygUs{Ji;2VSVe{VF~n1#Z<7)2+pmH=IOx8DG?89!
zHdnh8gGWOj(N?;nlDV8T9Of{839>VkpxQfj5gzQ^GMgn8Q>G-m|N=)(?v~zaZ
zS^7hAk$)k-QSynapJ283%BVqv9q9{&5vNweH70Bhe(8Idf|DUVbpGgdawJ3-%+LEB
zqAo?A(cc$_UiMVzAUaH*`jRzXxJs6on=9K*22$qo=QRvXx(I3p4wKS9J?W5~iW>T~
zv)WRr{+#g5r5kwC%{+6sfdbOgYBLCJFh04O8k`C2R@G5TRAF7_4>)24&N0Y7;oQMO
z`CBgtuh1(4Z_0fT?`ek_FGnXdZ&Y&$?@p)8>wx}-dvnn0MEgU@@W^Lh`{o|IMh}6k
zuP2glvoOg-AR;roRgmv{oSilm?=Hund-bo2IYe`I^w_a!>>noI0)TWb%sGO=
zD3yD>o4I)ob$<>*sniXkO%m52Ib1q-&F@$n5JORJHWx2PD510)pWO^6q&nuHZHyMl
zry1gCHumTFeuP(+tpE-`Az!mpHn<^Rpz2PU(S~Sddmwbxy|QBwT(rzE&^iw+@Vzoh
zmZnVI!4z-;)lM=-@WZm>FtV4
zN8+?vS|Yh7a|z&Bsb-dS711OVI-DPjzZF!m5Ey@(xHB*pq&;OhNDPyYz95g+u979R
z=E`;yyGHY^hb@-PK}_kK40`6rk^=~nj)l$ly$cbFTM>i^CWLxi95P#qY6CO-5BVSi
zDUY6i+N~$O@ticrJ9?vH-`E!**_0cFfJX^C%`Lj@AtO8FAuo$UxU6W>1GmKL{xlwq
zmm1q+PL8t``)NQh5#S^9)7<=cvM9lhrXTI6{Uze#E@F&rC=0=(aEL!y$YJy^6fw+_
zb9T~1wyElI(kmhIIXPqGO(}9eT4Q9|njW5bsJyz@cL8$0-CLYxZ5Fq5awcFWB9y)o
zYl&g_F)(?=Rd_388KcB7ZA2I8R5`ct6G*;&3OaZ9v^s7{Yi}VDPN)X6F#85$w1G=Y
z)$zcFFhh`-37Rm*?7A1kL2YbsVG_;B_H%{rfXh+x)}+Li4rP;XEZ^>U5PB_tF{mJ+Q{T?v!$R%m8pWSW9?hutl4N
zMmJ+Xl5;v@6~vy2gOk1)Wo7*6Z9p=F&i3;lEE-5>6|yckT8ht*goh-1t?X}dG!VBw
zi2w#$#W=;>4^lRz<69{DGYgyE!Pu-@w=8{E$rx`j5m107Ivmk-OO;Ta*sX&ay22KG
zod)9mubD&PD9(Hw?75b9q*Uc9)LVd~PF)I5qz=u?+ewjD#^SL=G$iJYLheQyjn`ta
zNYZneW#Biwvf(F_9@`O&NXCaOOf2HGNE?H>pzs7&AR@l$jYj=fxQn-&nPB&zPkdfc
zG&-tmPkO4FSfNN6iF%@JRn?+Wg%Dh^QWUm)Ihm7_&Bt$1EAlu{m4x
z`lg1f&W%lqF$Hr={c9JWcJ3|%)W=P}SnbSq8@EO%xu0q3IyqrW#mVZxnc+)qVeXVM
zLlI@6@A=_qjAOz+5`53^2VRZk1$tG(SVpI
zQn?uigjD@A5Og^Pw%HPhOjBh`xN6?Q*+xRBl1Qd$g4TKVI_z5!|9mT=)c->fv;R><
z^X7v*`b5>I{c=7Z*yrCHiu5=`?HCs9gO3-E$vp#4^c&T>R1!6RW|>dg*VkM@nKSm`
zY^Iy~yJ_A3(okcShksaQl
zlJm*=960u&^T}Q67e*a>At2Vj;O9v`{sRmg`O$j8uTC5R(Rt~PN;v^93Lw;I6tyM+
z3WMKa2+~!M6-RU}$X1z|#b8ZaUGwWe%aGk?
zI$4Mv|A_YZAJOJhNA5@WiXBg|W0oe*Ccja-+=*?`>OyuuhtIYb$6(_tgsSCgK@dxq
zgQg_U%6NBY4PVZh)h(pTCzbOWt%dgM2t03>_K^IJvk0m!eDZ5Pm5FLs^_L8BYg
z8$-TuoVie~uO}tQ+V)aoMh5aR(4a8qk^Qu#P#Y68!-s|r|s!{6;-
zN1FZ16mTdyKxa*oah#E+4T3=Y!~{1C>OYhExaZjPXwjt1U?~EK7Q^IGA<38kKUI*d
zI{}Q)hSqAdBf?d4%}mS%)}?gt<(Ozddu;+XRl^G1O%LP&7UquBXp3QNt%`zE(X|sT
zih`2n($r{4Y%Q~Q44SsB(&c$He=WQX*Z>lt013Ll;Y~X6(@oYIRW_T2X-CgW)C!Yn
zyJEjo;bOvnd}bI|+qchz{q~tPRgv)LHO;ypRs`M3t1%u5&XH#aqdjwz-#!!O6^;6b
zthk;@v7KlD^~PQ5Cc-C2@W<=p^H(evWJ=$tRttt|juNAGj^)aU)9y1}@DFUaPaSCc
z(|))|ANG%&k&&{|eZ)V0l84+ja&J#PfCc~I4*!`5t9R76D
zz6k3M;e~sDI?vM@nXC9?GlZyum6aPMQSn1z8C8NLG5IT?G31Ognxox&m8NvpmX!?>dMBxc;EfDRqaU<
z?OtOBY&5dyMR^vH^#z@=h}@7CWp`xudqL;kxaN6~{u*kixG&*8r-OHmwPyh9myq3>
z=`{00|BAW^#Uu8`qnarSjUgguh~CtnA%U@bEB8{4Qk;zwVmnlPd?2DKEhJ{&@AXzmVCab~}0#eV3
zuYw7DU70w^tc1_j#tzdK?~=(=*TH!E#kwyN0sn4)gS^xyBQeSL(f&chwGPXN6g|DDsvWT`W+pnf@md1VaPM6nO=MuWllXhNQg!~gjZh@;gOL`GN_H*5Yf#BWv|
zjPX&R460lruTiK})~2|4O@{75^#b>-E=BTNn!)+l*OIzZ4}5p@g3>*(IioH*8+V!S
zO6`|A51OEMDxzjT5vL%*7W2dri+Nz9!3|#>jK|Z1(&hN6>RU_xiC%au^@e^wy8z+zNbi(NG0
z9O49CZ&h9;qPGvx?5lu=@Wxm`8W>{{J9O$1WVf+07-JvHfw_Ny8DW_;@MSqTv0>Zb2LdZX}29sx%G8-UD3aoXK%#$
z-={qIfJJlx_4&|n(w~7D2TuV^Jy%nV2&SC)XJD@X8JH`724=ONftj|_)}i}rmEAMD
z0l`G1mrSY!_W?)Bx9O-kC{fK_d2hUah?>{JLFssi_AjQ{OR-r>&a_7oeWzsgQnnF_
zt|LF^1x>dyktxa;Fj>pl>~JoK29$NaBgL$
z<~c1Ur~&VFID4F