├── .gitignore
├── LICENSE
├── README.md
├── doc
├── MORE.md
├── demos.md
├── demos
│ ├── imgs
│ │ └── 为接口添加描述信息.png
│ ├── swagger接口文档使用示例.md
│ ├── 使用数字签名示例.md
│ ├── 参数校验示例.md
│ ├── 接口响应国际化翻译示例.md
│ ├── 接口数据加解密示例.md
│ ├── 接口查询缓存使用示例.md
│ ├── 接口防重复提交功能示例.md
│ ├── 自动填充API响应参数示例.md
│ └── 错误码使用示例.md
├── imgs
│ ├── get-start-demo
│ │ ├── 接口文档首页.png
│ │ ├── 测试业务异常的使用_响应.png
│ │ ├── 测试业务异常的使用_请求.png
│ │ ├── 测试参数校验_请求1.png
│ │ ├── 测试参数校验_请求2.png
│ │ ├── 测试正常响应信息返回_结果.png
│ │ └── 测试正常响应信息返回_请求.png
│ ├── logo.jpg
│ ├── wechatBlog.png
│ ├── 业务流程图.jpg
│ ├── 业务系统接口.png
│ ├── 内部组件架构图.jpg
│ ├── 国际化翻译响应信息_en_US.png
│ ├── 国际化翻译响应信息_zh_CN.png
│ ├── 国际化请求参数_en_US.png
│ ├── 国际化请求参数_zh_CN.png
│ ├── 接口参数校验异常测试结果.png
│ ├── 接口文档示例.png
│ ├── 接口正常响应测试结果.png
│ └── 系统内置接口.png
├── index.md
└── quickStart.md
├── easy-spring-boot-api-base
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── pddon
│ │ └── framework
│ │ └── easyapi
│ │ ├── ApplicationManager.java
│ │ ├── CacheManager.java
│ │ ├── CheckRepeatManager.java
│ │ ├── InvokeApiLogManager.java
│ │ ├── InvokeTimesManager.java
│ │ ├── LanguageTranslateManager.java
│ │ ├── LockDistributedManager.java
│ │ ├── SecretManager.java
│ │ ├── SessionManager.java
│ │ ├── SignManager.java
│ │ ├── annotation
│ │ ├── CacheMethodResult.java
│ │ ├── CacheMethodResultEvict.java
│ │ ├── Decrypt.java
│ │ ├── Encrypt.java
│ │ ├── IgnoreSign.java
│ │ ├── InjectSystemParam.java
│ │ ├── LanguageTranslate.java
│ │ ├── LockDistributed.java
│ │ ├── ReplaceRoute.java
│ │ ├── RequiredCountryCode.java
│ │ ├── RequiredCurrency.java
│ │ ├── RequiredLocale.java
│ │ ├── RequiredNoRepeatSubmit.java
│ │ ├── RequiredParam.java
│ │ ├── RequiredSession.java
│ │ ├── RequiredSign.java
│ │ ├── RequiredTimeZone.java
│ │ ├── RequiredTimestamp.java
│ │ └── RequiredVersion.java
│ │ ├── cache
│ │ ├── LocalCacheContainer.java
│ │ ├── LocalReadCacheContainer.java
│ │ ├── LocalWriteCacheContainer.java
│ │ └── MethodCacheManager.java
│ │ ├── component
│ │ └── BusinessErrorCodeInterpreter.java
│ │ ├── consts
│ │ ├── CacheExpireMode.java
│ │ ├── CacheKeyMode.java
│ │ ├── DefaultConfigPropertiesValue.java
│ │ ├── DefaultConfigValueMode.java
│ │ ├── DenyRepeatSubmitType.java
│ │ ├── ErrorCodes.java
│ │ └── SignScope.java
│ │ ├── context
│ │ └── RequestContext.java
│ │ ├── controller
│ │ ├── request
│ │ │ ├── BaseMntRequest.java
│ │ │ ├── BaseRequest.java
│ │ │ ├── DeviceRequest.java
│ │ │ ├── IdRequest.java
│ │ │ ├── IdsRequest.java
│ │ │ ├── PaginationMntRequest.java
│ │ │ ├── PaginationRequest.java
│ │ │ └── QueryErrorCodeRequest.java
│ │ └── response
│ │ │ ├── BaseResponse.java
│ │ │ ├── DefaultResponseWrapper.java
│ │ │ ├── ErrorCodeListResponse.java
│ │ │ ├── ErrorInfo.java
│ │ │ ├── ErrorResponse.java
│ │ │ ├── GetUniqueTokenResponse.java
│ │ │ ├── ItemResponse.java
│ │ │ ├── ListResponse.java
│ │ │ ├── MapResponse.java
│ │ │ ├── PaginationResponse.java
│ │ │ └── SuccessResponse.java
│ │ ├── dataformat
│ │ └── FieldDataFormatHandler.java
│ │ ├── dto
│ │ ├── ApiInfo.java
│ │ ├── ApiInvokeLog.java
│ │ ├── ApiPermissionDto.java
│ │ ├── ApiRequestParameter.java
│ │ ├── ApiRestrictions.java
│ │ ├── BusinessErrorDescription.java
│ │ ├── CacheManagerState.java
│ │ ├── ErrorCodeDto.java
│ │ ├── SecretInfo.java
│ │ ├── SecretKeyPair.java
│ │ └── Session.java
│ │ ├── encrypt
│ │ ├── DataEncryptHandler.java
│ │ ├── SignEncryptHandler.java
│ │ └── impl
│ │ │ ├── AESDataEncryptHandler.java
│ │ │ └── Sha1SignEncryptHandler.java
│ │ ├── exception
│ │ ├── BusinessException.java
│ │ └── handler
│ │ │ └── CommonExceptionHandler.java
│ │ ├── impl
│ │ ├── DefaultApplicationManagerImpl.java
│ │ ├── DefaultCacheManagerImpl.java
│ │ └── DefaultSessionManagerImpl.java
│ │ ├── json
│ │ └── parse
│ │ │ ├── CustomJackDateFormat.java
│ │ │ ├── DateToGTM0DayString.java
│ │ │ └── DateToGTM0SecondString.java
│ │ ├── lambda
│ │ └── DecorateContentFunction.java
│ │ ├── listener
│ │ ├── ApplicationFailedListener.java
│ │ ├── ApplicationInitListener.java
│ │ ├── ApplicationLifeListener.java
│ │ ├── ApplicationStartedListener.java
│ │ └── impl
│ │ │ └── DefaultApplicationLifeListener.java
│ │ ├── msg
│ │ └── queue
│ │ │ ├── Message.java
│ │ │ ├── MessageManager.java
│ │ │ ├── QueueListener.java
│ │ │ └── QueueSender.java
│ │ ├── properties
│ │ ├── ChannelConfigProperties.java
│ │ ├── ErrorCodeProperties.java
│ │ ├── ResponseSystemFieldRenameProperties.java
│ │ └── SystemParameterRenameProperties.java
│ │ ├── utils
│ │ ├── AnnotationClassUtils.java
│ │ ├── BeanPropertyUtil.java
│ │ ├── ClassOriginCheckUtil.java
│ │ ├── EncryptUtils.java
│ │ ├── HashUtil.java
│ │ ├── IOUtils.java
│ │ ├── MethodInvokeUtil.java
│ │ ├── PasswordGenerator.java
│ │ ├── RandomTokenGenerator.java
│ │ ├── SpringBeanUtil.java
│ │ ├── StringFormatUtil.java
│ │ ├── StringUtils.java
│ │ └── UUIDGenerator.java
│ │ └── validate
│ │ ├── AtLeastOne.java
│ │ ├── AtLeastOneConstraintValidator.java
│ │ └── AtLeastOneField.java
│ └── test
│ └── java
│ └── TimeZoneTest.java
├── easy-spring-boot-api-client
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── pddon
│ │ └── framework
│ │ └── easyapi
│ │ └── client
│ │ ├── ApiClient.java
│ │ ├── ClientDataEncryptHandler.java
│ │ ├── ClientSecretManager.java
│ │ ├── ClientSignEncryptHandler.java
│ │ ├── annotations
│ │ └── EnableEasyApiClient.java
│ │ ├── apitools
│ │ ├── ApiAfterHandler.java
│ │ ├── ApiPreHandler.java
│ │ ├── HttpMethodHandler.java
│ │ ├── RequestParser.java
│ │ ├── ResponseParser.java
│ │ └── impl
│ │ │ ├── ApiCheckSignAfterHandler.java
│ │ │ ├── ApiDecryptAfterHandler.java
│ │ │ ├── ApiEncryptPreHandler.java
│ │ │ ├── ApiSignPreHandler.java
│ │ │ ├── ApiSysParamSetPreHandler.java
│ │ │ ├── HttpDeleteHandler.java
│ │ │ ├── HttpGetHandler.java
│ │ │ ├── HttpHeadHandler.java
│ │ │ ├── HttpPatchHandler.java
│ │ │ ├── HttpPostHandler.java
│ │ │ └── HttpPutHandler.java
│ │ ├── config
│ │ ├── ApplicationConfig.java
│ │ ├── ClientConfigurer.java
│ │ ├── HttpClientConfig.java
│ │ └── dto
│ │ │ └── ApiInfo.java
│ │ ├── consts
│ │ └── HttpMethod.java
│ │ ├── impl
│ │ ├── ClientAESDataEncryptHandler.java
│ │ ├── ClientSecretManagerImpl.java
│ │ └── ClientSha1SignEncryptHandler.java
│ │ └── utils
│ │ ├── HttpClientUtil.java
│ │ └── IdleConnectionEvictor.java
│ └── test
│ └── java
│ └── com
│ └── pddon
│ └── framework
│ └── easyapi
│ └── client
│ ├── ApiClientTest.java
│ ├── StartTestDemoConfig.java
│ ├── request
│ ├── CurrencyType.java
│ ├── PrePayRequest.java
│ └── TradeIdRequest.java
│ └── response
│ └── AppPreOrderResponse.java
├── easy-spring-boot-api-dao
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── pddon
│ │ └── framework
│ │ └── easyapi
│ │ └── dao
│ │ ├── BaseApplicationConfigDao.java
│ │ ├── BaseUserDao.java
│ │ ├── DepartmentDao.java
│ │ ├── DictGroupDao.java
│ │ ├── DictItemDao.java
│ │ ├── EmailSendRecordDao.java
│ │ ├── EmailTemplateDao.java
│ │ ├── FileItemDao.java
│ │ ├── HtmlPageDao.java
│ │ ├── HtmlSegmentDao.java
│ │ ├── annotation
│ │ ├── EnableEasyApiDao.java
│ │ ├── IgnoreTenant.java
│ │ └── RequireDataPermission.java
│ │ ├── cache
│ │ └── RedisOrLocalCache.java
│ │ ├── config
│ │ ├── DruidConfig.java
│ │ ├── MybatisPlusConfig.java
│ │ └── RedisConfig.java
│ │ ├── consts
│ │ ├── FileStoreType.java
│ │ ├── HtmlPageStatus.java
│ │ ├── PageContentType.java
│ │ ├── UserAccountStatus.java
│ │ └── UserKeyType.java
│ │ ├── dto
│ │ ├── DataPermDto.java
│ │ └── request
│ │ │ ├── AddUserRequest.java
│ │ │ ├── DictGroupListRequest.java
│ │ │ ├── DictListRequest.java
│ │ │ ├── HtmlPageListRequest.java
│ │ │ ├── UpdateItemFlagRequest.java
│ │ │ ├── UpdateUserPassRequest.java
│ │ │ ├── UpdateUserRequest.java
│ │ │ └── UserListRequest.java
│ │ ├── entity
│ │ ├── BaseApplicationConfig.java
│ │ ├── BaseEntity.java
│ │ ├── BaseHardEntity.java
│ │ ├── BaseHardTenantEntity.java
│ │ ├── BaseTenantEntity.java
│ │ ├── BaseUser.java
│ │ ├── Department.java
│ │ ├── DictGroup.java
│ │ ├── DictItem.java
│ │ ├── EmailSendRecord.java
│ │ ├── EmailTemplate.java
│ │ ├── FileItem.java
│ │ ├── HtmlPage.java
│ │ └── HtmlSegment.java
│ │ ├── impl
│ │ ├── BaseApplicationConfigDaoImpl.java
│ │ ├── BaseUserDaoImpl.java
│ │ ├── DepartmentDaoImpl.java
│ │ ├── DictGroupDaoImpl.java
│ │ ├── DictItemDaoImpl.java
│ │ ├── EmailSendRecordDaoImpl.java
│ │ ├── EmailTemplateDaoImpl.java
│ │ ├── FileItemDaoImpl.java
│ │ ├── HtmlPageDaoImpl.java
│ │ └── HtmlSegmentDaoImpl.java
│ │ ├── interceptor
│ │ ├── DataPermissionInterceptor.java
│ │ ├── InsertCommentInterceptor.java
│ │ ├── RenameCacheKeyInterceptor.java
│ │ └── UpdateCommentInterceptor.java
│ │ ├── mapper
│ │ ├── BaseApplicationConfigMapper.java
│ │ ├── BaseUserMapper.java
│ │ ├── DepartmentMapper.java
│ │ ├── DictGroupMapper.java
│ │ ├── DictItemMapper.java
│ │ ├── EmailSendRecordMapper.java
│ │ ├── EmailTemplateMapper.java
│ │ ├── FileItemMapper.java
│ │ ├── HtmlPageMapper.java
│ │ └── HtmlSegmentMapper.java
│ │ ├── tenant
│ │ ├── EasyApiTenantHandler.java
│ │ ├── EntityManager.java
│ │ ├── IgnoreTenantAdvisor.java
│ │ └── IgnoreTenantInterceptorManager.java
│ │ └── utils
│ │ ├── PddonRedisCacheReadWriteLock.java
│ │ ├── RedisCallback.java
│ │ ├── RedisUtil.java
│ │ └── SerializeUtil.java
│ └── resources
│ └── mybatis
│ ├── mappers
│ ├── Department.xml
│ ├── DictGroup.xml
│ ├── DictItem.xml
│ ├── EmailSendRecord.xml
│ ├── EmailTemplate.xml
│ ├── FileItem.xml
│ ├── HtmlPage.xml
│ └── HtmlSegment.xml
│ └── mybatis-config.xml
├── easy-spring-boot-api-demo
├── README.md
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── pddon
│ │ │ └── framework
│ │ │ └── demo
│ │ │ └── easyapi
│ │ │ ├── controller
│ │ │ ├── TestCacheController.java
│ │ │ ├── TestParamAndResponseInvalidController.java
│ │ │ ├── TestResourceController.java
│ │ │ ├── TestResponseInfoController.java
│ │ │ ├── TestSecurityComponentsController.java
│ │ │ ├── TestSessionController.java
│ │ │ ├── dto
│ │ │ │ ├── AccountInfo.java
│ │ │ │ ├── LanguageInfoDto.java
│ │ │ │ ├── LanguageTranslateFieldTestDto.java
│ │ │ │ ├── ParamsCheckDto.java
│ │ │ │ ├── SnakeNode.java
│ │ │ │ └── UserInfoDto.java
│ │ │ ├── request
│ │ │ │ ├── CustomRequest.java
│ │ │ │ └── SignTestRequest.java
│ │ │ └── response
│ │ │ │ └── SignTestResponse.java
│ │ │ └── startup
│ │ │ └── Startup.java
│ └── resources
│ │ ├── application.yml
│ │ ├── i18n
│ │ └── messages
│ │ │ ├── messages.properties
│ │ │ ├── messages_en_US.properties
│ │ │ └── messages_zh_CN.properties
│ │ └── scripts
│ │ ├── assembly.xml
│ │ ├── serverStatus.sh
│ │ ├── shutdown.sh
│ │ └── startup.sh
│ └── test
│ └── java
│ └── com
│ └── pddon
│ └── framework
│ └── easyapi
│ ├── AppTest.java
│ ├── BeanPropertyUtilTest.java
│ └── dto
│ ├── ComplextRequest.java
│ ├── ComplextResponse.java
│ ├── SkuCurrency.java
│ └── SkuItem.java
├── easy-spring-boot-api-perm-dao
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── pddon
│ │ └── framework
│ │ └── easyapi
│ │ ├── consts
│ │ └── PartnerStatus.java
│ │ ├── dao
│ │ ├── DataPermissionMntDao.java
│ │ ├── DataPermissionResourceMntDao.java
│ │ ├── DepartmentMntDao.java
│ │ ├── DictGroupMntDao.java
│ │ ├── DictItemMntDao.java
│ │ ├── EmailSendRecordMntDao.java
│ │ ├── EmailTemplateMntDao.java
│ │ ├── FileItemMntDao.java
│ │ ├── HtmlPageMntDao.java
│ │ ├── HtmlSegmentMntDao.java
│ │ ├── PartnerItemDao.java
│ │ ├── PermItemDao.java
│ │ ├── RoleDataPermissionMntDao.java
│ │ ├── RoleItemDao.java
│ │ ├── RolePermDao.java
│ │ ├── UserDataPermissionMntDao.java
│ │ ├── UserLoginRecordDao.java
│ │ ├── UserOperateRecordDao.java
│ │ ├── UserPermDao.java
│ │ ├── UserRoleDao.java
│ │ ├── dto
│ │ │ └── req
│ │ │ │ └── EmailRecordListRequest.java
│ │ ├── entity
│ │ │ ├── DataPermission.java
│ │ │ ├── DataPermissionResource.java
│ │ │ ├── PartnerItem.java
│ │ │ ├── PermItem.java
│ │ │ ├── RoleDataPermission.java
│ │ │ ├── RoleItem.java
│ │ │ ├── RolePerm.java
│ │ │ ├── UserDataPermission.java
│ │ │ ├── UserLoginRecord.java
│ │ │ ├── UserOperateRecord.java
│ │ │ ├── UserPerm.java
│ │ │ └── UserRole.java
│ │ ├── impl
│ │ │ ├── DataPermissionMntDaoImpl.java
│ │ │ ├── DataPermissionResourceMntDaoImpl.java
│ │ │ ├── DepartmentMntDaoImpl.java
│ │ │ ├── DictGroupMntDaoImpl.java
│ │ │ ├── DictItemMntDaoImpl.java
│ │ │ ├── EmailSendRecordMntDaoImpl.java
│ │ │ ├── EmailTemplateMntDaoImpl.java
│ │ │ ├── FileItemMntDaoImpl.java
│ │ │ ├── HtmlPageMntDaoImpl.java
│ │ │ ├── HtmlSegmentMntDaoImpl.java
│ │ │ ├── PartnerItemDaoImpl.java
│ │ │ ├── PermItemDaoImpl.java
│ │ │ ├── RoleDataPermissionMntDaoImpl.java
│ │ │ ├── RoleItemDaoImpl.java
│ │ │ ├── RolePermDaoImpl.java
│ │ │ ├── UserDataPermissionMntDaoImpl.java
│ │ │ ├── UserLoginRecordDaoImpl.java
│ │ │ ├── UserOperateRecordDaoImpl.java
│ │ │ ├── UserPermDaoImpl.java
│ │ │ └── UserRoleDaoImpl.java
│ │ └── mapper
│ │ │ ├── DataPermissionMapper.java
│ │ │ ├── DataPermissionResourceMapper.java
│ │ │ ├── PartnerItemMapper.java
│ │ │ ├── PermItemMapper.java
│ │ │ ├── RoleDataPermissionMapper.java
│ │ │ ├── RoleItemMapper.java
│ │ │ ├── RolePermMapper.java
│ │ │ ├── UserDataPermissionMapper.java
│ │ │ ├── UserLoginRecordMapper.java
│ │ │ ├── UserOperateRecordMapper.java
│ │ │ ├── UserPermMapper.java
│ │ │ └── UserRoleMapper.java
│ │ └── dto
│ │ ├── req
│ │ ├── AddAppRequest.java
│ │ ├── AddDataPermissionRequest.java
│ │ ├── AddDataPermissionResoruceRequest.java
│ │ ├── AddDepartmentMemberRequest.java
│ │ ├── AddDepartmentRequest.java
│ │ ├── AddDictGroupRequest.java
│ │ ├── AddDictRequest.java
│ │ ├── AddEmailTemplateRequest.java
│ │ ├── AddHtmlPageRequest.java
│ │ ├── AddPartnerRequest.java
│ │ ├── AddPermRequest.java
│ │ ├── AddRoleRequest.java
│ │ ├── AppListRequest.java
│ │ ├── AuthToRoleRequest.java
│ │ ├── AuthToUserRequest.java
│ │ ├── DataPermissionListRequest.java
│ │ ├── DataPermissionResourceListRequest.java
│ │ ├── DepartmentListRequest.java
│ │ ├── EmailTemplateListRequest.java
│ │ ├── FileListRequest.java
│ │ ├── HtmlPageListRequest.java
│ │ ├── OperateLogListRequest.java
│ │ ├── PartnerListRequest.java
│ │ ├── PermListRequest.java
│ │ ├── RoleListRequest.java
│ │ ├── UpdateAppRequest.java
│ │ ├── UpdateDataPermissionRequest.java
│ │ ├── UpdateDataPermissionResourceRequest.java
│ │ ├── UpdateDepartmentRequest.java
│ │ ├── UpdateDictGroupRequest.java
│ │ ├── UpdateDictRequest.java
│ │ ├── UpdateEmailTemplateRequest.java
│ │ ├── UpdateHtmlPageRequest.java
│ │ ├── UpdatePartnerRequest.java
│ │ ├── UpdatePartnerStatusRequest.java
│ │ ├── UpdatePermRequest.java
│ │ ├── UpdateRoleRequest.java
│ │ ├── UpdatesByGroupRequest.java
│ │ └── dto
│ │ │ ├── AuthPermDto.java
│ │ │ └── DictDto.java
│ │ └── resp
│ │ ├── IdResponse.java
│ │ ├── PermTreeDataDto.java
│ │ ├── RoleDetailDto.java
│ │ └── UserInfoDto.java
│ └── resources
│ └── mybatis
│ ├── mappers
│ ├── DataPermission.xml
│ ├── DataPermissionResource.xml
│ ├── PartnerItem.xml
│ ├── PermItem.xml
│ ├── RoleDataPermission.xml
│ ├── RoleItem.xml
│ ├── RolePerm.xml
│ ├── UserDataPermission.xml
│ ├── UserLoginRecord.xml
│ ├── UserOperateRecord.xml
│ ├── UserPerm.xml
│ └── UserRole.xml
│ └── mybatis-config.xml
├── easy-spring-boot-api-perm-service
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── pddon
│ └── framework
│ └── easyapi
│ ├── DataPermissionMntService.java
│ ├── DepartmentMntService.java
│ ├── DictMntService.java
│ ├── EasyApiCacheSessionDAO.java
│ ├── EmailSendRecordMntService.java
│ ├── EmailTemplateMntService.java
│ ├── FileMntService.java
│ ├── HtmlPageMntService.java
│ ├── PartnerService.java
│ ├── RoleMntService.java
│ ├── UserAuthorizingRealm.java
│ ├── UserMntService.java
│ ├── UserOperateLogService.java
│ ├── UserSecurityService.java
│ ├── annotations
│ ├── EnableEasyApiPermission.java
│ └── OperateLog.java
│ ├── aspect
│ ├── DataPermissionInterceptorManager.java
│ ├── DataPermissionPointcutAdvisor.java
│ ├── OperateLogInterceptorManager.java
│ └── OperateLogPointcutAdvisor.java
│ ├── config
│ ├── SecurityConfigProperties.java
│ └── UserSecurityConfigurer.java
│ ├── consts
│ ├── ApiPermOperateType.java
│ ├── DataPermissionQueryType.java
│ ├── DataPermissionResourceType.java
│ ├── PermissionOperateType.java
│ └── PermissionResourceType.java
│ ├── controller
│ ├── DataPermissionController.java
│ ├── DepartmentController.java
│ ├── DictMntController.java
│ ├── EmailSendRecordController.java
│ ├── EmailTemplateController.java
│ ├── FileMntController.java
│ ├── HtmlPageController.java
│ ├── OperateLogMntController.java
│ ├── PartnerMntController.java
│ ├── RoleMntController.java
│ └── UserMntController.java
│ ├── dto
│ ├── AdaptorSession.java
│ ├── DataPermDtoList.java
│ ├── DataPermItemDto.java
│ ├── TableInfoDto.java
│ ├── UserAuthenticationToken.java
│ ├── UserSimpleSession.java
│ └── req
│ │ ├── AddFileRequest.java
│ │ ├── SendEmailRequest.java
│ │ └── UpdateFileRequest.java
│ ├── exception
│ └── AuthExceptionHandler.java
│ ├── filter
│ └── UserAuthenticatingFilter.java
│ ├── impl
│ ├── DataPermissionMntServiceImpl.java
│ ├── DepartmentMntServiceImpl.java
│ ├── DictMntServiceImpl.java
│ ├── EasyApiWebSessionManager.java
│ ├── EmailSendRecordMntServiceImpl.java
│ ├── EmailTemplateMntServiceImpl.java
│ ├── FileMntServiceImpl.java
│ ├── HtmlPageMntServiceImpl.java
│ ├── PartnerServiceImpl.java
│ ├── RoleMntServiceImpl.java
│ ├── UserMntServiceImpl.java
│ ├── UserOperateLogServiceImpl.java
│ └── UserSecurityServiceImpl.java
│ ├── listener
│ └── impl
│ │ └── PermApplicationLifeListener.java
│ └── utils
│ ├── HttpHelper.java
│ └── StaticResourceUtils.java
├── easy-spring-boot-api-service
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── pddon
│ │ └── framework
│ │ └── easyapi
│ │ ├── CaptchaService.java
│ │ ├── DictService.java
│ │ ├── EmailSendRecordService.java
│ │ ├── EmailService.java
│ │ ├── EmailTemplateService.java
│ │ ├── FileItemService.java
│ │ ├── HtmlPageService.java
│ │ ├── config
│ │ ├── EmailConfig.java
│ │ ├── HttpClientConfig.java
│ │ └── RedisQueueConfig.java
│ │ ├── consts
│ │ └── EmailTemplateType.java
│ │ ├── controller
│ │ ├── FileController.java
│ │ ├── PublicResController.java
│ │ ├── StaticResourceController.java
│ │ └── request
│ │ │ └── SendAuthCodeRequest.java
│ │ ├── dto
│ │ ├── FileUploadResult.java
│ │ ├── HtmlPageContentDto.java
│ │ ├── HtmlPageDetailDto.java
│ │ └── HtmlPageDto.java
│ │ ├── email
│ │ └── dto
│ │ │ ├── EmailAuthTokenDto.java
│ │ │ └── EmailTemplateConfig.java
│ │ ├── impl
│ │ ├── CaptchaServiceImpl.java
│ │ ├── DbAppConfigManager.java
│ │ ├── DictServiceImpl.java
│ │ ├── EmailSendRecordServiceImpl.java
│ │ ├── EmailServiceImpl.java
│ │ ├── EmailTemplateServiceImpl.java
│ │ ├── FileItemServiceImpl.java
│ │ ├── HtmlPageServiceImpl.java
│ │ ├── LockDistributedManagerImpl.java
│ │ ├── PersistSessionManager.java
│ │ └── RedisCacheManager.java
│ │ ├── msg
│ │ └── queue
│ │ │ └── impl
│ │ │ ├── AbstractRedisQueueListener.java
│ │ │ ├── AbstractRedisQueueSender.java
│ │ │ ├── DefaultRedisQueueListener.java
│ │ │ └── DefaultRedisQueueSender.java
│ │ └── utils
│ │ ├── EmailUtil.java
│ │ ├── FileUtil.java
│ │ ├── HttpClientUtil.java
│ │ ├── IdleConnectionEvictor.java
│ │ ├── ImageConvertBase64.java
│ │ ├── ImageDataURISchemeMapper.java
│ │ ├── NumberCaptchaUtil.java
│ │ └── UrlParseUtil.java
│ └── resources
│ ├── email
│ └── templates
│ │ ├── sendCommonNotify.html
│ │ └── sendEmailAuthCode.html
│ └── i18n
│ └── messages
│ ├── messages.properties
│ ├── messages_en_US.properties
│ └── messages_zh_CN.properties
├── easy-spring-boot-api
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── pddon
│ │ │ └── framework
│ │ │ └── easyapi
│ │ │ ├── annotation
│ │ │ ├── EnableEasyApi.java
│ │ │ └── IgnoreResponseWrapper.java
│ │ │ ├── aspect
│ │ │ ├── ApiExceptionAspector.java
│ │ │ ├── ApiInvokeAspector.java
│ │ │ ├── ApiInvokePointcutAdvisor.java
│ │ │ ├── ApiResponseAspector.java
│ │ │ ├── MethodCachePointcutAdvisor.java
│ │ │ └── MethodDistributedLockPointcutAdvisor.java
│ │ │ ├── component
│ │ │ └── BusinessErrorCodeInterpreterImpl.java
│ │ │ ├── config
│ │ │ ├── EasyApiAsyncConfigurer.java
│ │ │ ├── EasyApiBeanConfigurer.java
│ │ │ ├── EasyApiRequestMappingConfig.java
│ │ │ ├── EasyApiSwaggerConfigurer.java
│ │ │ └── EasyApiWebConfigurer.java
│ │ │ ├── controller
│ │ │ ├── CacheManageController.java
│ │ │ ├── CustomErrorController.java
│ │ │ ├── ErrorCodeController.java
│ │ │ ├── SwaggerController.java
│ │ │ └── utils
│ │ │ │ ├── CustomRequestMappingHandlerMapping.java
│ │ │ │ └── ReplaceRouteUtil.java
│ │ │ ├── dataformat
│ │ │ ├── AbstractFieldDataFormatHandler.java
│ │ │ ├── DecryptFieldDataFormatHandler.java
│ │ │ ├── EncryptFieldDataFormatHandler.java
│ │ │ ├── InjectSystemParamFieldDataFormatHandler.java
│ │ │ └── LanguageTranslateFieldDataFormatHandler.java
│ │ │ ├── dto
│ │ │ └── UniqueToken.java
│ │ │ ├── env
│ │ │ ├── BeanInitedEventListener.java
│ │ │ └── EasyApiEnvironmentPostProcessor.java
│ │ │ ├── exception
│ │ │ └── handler
│ │ │ │ └── impl
│ │ │ │ ├── BusinessExceptionHandler.java
│ │ │ │ ├── DefaultExceptionHandler.java
│ │ │ │ ├── InvalidationExceptionHandler.java
│ │ │ │ └── ParamFormatExceptionHandler.java
│ │ │ ├── filter
│ │ │ ├── ExceptionFilter.java
│ │ │ └── RepeatedlyReadFilter.java
│ │ │ ├── impl
│ │ │ ├── CacheableLanguageTranslateManagerImpl.java
│ │ │ ├── DefaultCheckRepeatManagerImpl.java
│ │ │ ├── DefaultInvokeApiLogManagerImpl.java
│ │ │ ├── DefaultInvokeTimesManagerImpl.java
│ │ │ ├── DefaultLanguageTranslateManagerImpl.java
│ │ │ ├── DefaultSecretManagerImpl.java
│ │ │ └── DefaultSignManagerImpl.java
│ │ │ ├── interceptor
│ │ │ ├── AbstractApiMethodInterceptor.java
│ │ │ ├── ApiInvokeMethodInterceptorManager.java
│ │ │ ├── ApiMethodInterceptor.java
│ │ │ ├── EasyApiHandlerInterceptor.java
│ │ │ ├── MethodCacheInterceptorManager.java
│ │ │ ├── MethodDistributedLockInterceptorManager.java
│ │ │ └── impl
│ │ │ │ ├── ApiDataFormatInterceptor.java
│ │ │ │ ├── ApiLogInterceptor.java
│ │ │ │ ├── InvokeTimesInterceptor.java
│ │ │ │ ├── NoRepeatSubmitInterceptor.java
│ │ │ │ ├── SessionInterceptor.java
│ │ │ │ ├── SignInterceptor.java
│ │ │ │ ├── ValidateParamsInterceptor.java
│ │ │ │ └── ValidateSystemParamInterceptor.java
│ │ │ ├── properties
│ │ │ ├── AsyncThreadPoolConfig.java
│ │ │ ├── EasyApiConfig.java
│ │ │ ├── EasyApiSwaggerProperties.java
│ │ │ └── SystemParameterConfigProperties.java
│ │ │ ├── response
│ │ │ └── enhance
│ │ │ │ ├── AbstractResponseEnhanceHandler.java
│ │ │ │ ├── AutoAddResponseWrapperHandler.java
│ │ │ │ ├── CustomSystemErrorCodeHandler.java
│ │ │ │ └── ResponseEnhanceHandler.java
│ │ │ ├── swagger
│ │ │ ├── OrderExtension.java
│ │ │ ├── OrderedSwaggerResource.java
│ │ │ └── SwaggerResourcesExtProvider.java
│ │ │ └── utils
│ │ │ ├── DistributedLockDaemonThreadUtil.java
│ │ │ └── request
│ │ │ ├── BodyReaderHttpServletRequestWrapper.java
│ │ │ ├── BufferedServletInputStream.java
│ │ │ └── HttpHelper.java
│ └── resources
│ │ ├── META-INF
│ │ ├── i18n
│ │ │ ├── easyApiMessages.properties
│ │ │ ├── easyApiMessages_en_US.properties
│ │ │ └── easyApiMessages_zh_CN.properties
│ │ └── spring.factories
│ │ ├── application-template.yml
│ │ └── markdown
│ │ ├── javaClient.md
│ │ ├── signGuide.md
│ │ └── tsClient.md
│ └── test
│ └── java
│ └── com
│ └── pddon
│ └── framework
│ └── easyapi
│ ├── BeanPropertyUtilTest.java
│ └── dto
│ ├── ComplextRequest.java
│ ├── ComplextResponse.java
│ ├── SkuCurrency.java
│ └── SkuItem.java
└── pom.xml
/doc/MORE.md:
--------------------------------------------------------------------------------
1 |
说明
2 |
3 | > 作者正在努力完善文档,请耐心等待更多文档更新哦!
--------------------------------------------------------------------------------
/doc/demos.md:
--------------------------------------------------------------------------------
1 | 使用easy-spring-boot-api框架极简demo示例
2 |
3 | ## 1 swagger接口文档使用示例
4 |
5 | [请参考使用示例](demos/swagger接口文档使用示例.md)
6 |
7 | ## 2 参数校验示例
8 |
9 | [请参考使用示例](demos/参数校验示例.md)
10 |
11 | ## 3 自动填充API响应参数示例
12 |
13 | [请参考使用示例](demos/自动填充API响应参数示例.md)
14 |
15 | ## 4 错误码使用示例
16 |
17 | [请参考使用示例](demos/错误码使用示例.md)
18 |
19 | ## 5 接口响应国际化翻译示例
20 |
21 | [请参考使用示例](demos/接口响应国际化翻译示例.md)
22 |
23 | ## 6 使用数字签名示例
24 |
25 | [请参考使用示例](demos/使用数字签名示例.md)
26 |
27 | ## 7 接口数据加解密示例
28 |
29 | [请参考使用示例](demos/接口数据加解密示例.md)
30 |
31 | ## 8 接口防重复提交功能示例
32 |
33 | [请参考使用示例](demos/接口防重复提交功能示例.md)
34 |
35 | ## 9 接口查询缓存使用示例
36 |
37 | [请参考使用示例](demos/接口查询缓存使用示例.md)
38 |
39 | ## 10 接口用户会话功能使用示例
40 |
41 | [请参考使用示例](MORE.md)
42 |
43 | ## 11 系统参数使用示例
44 |
45 | [请参考使用示例](MORE.md)
46 |
47 | ## 12 系统错误使用示例
48 |
49 | [请参考使用示例](MORE.md)
50 |
51 | ## 13 国际化翻译器使用示例
52 |
53 | [请参考使用示例](MORE.md)
54 |
55 | ## 14 缓存管理器使用示例
56 |
57 | [请参考使用示例](MORE.md)
58 |
59 | ## 15 接口响应系统参数使用示例
60 |
61 | [请参考使用示例](MORE.md)
62 |
63 | ## 16 静态资源使用示例
64 |
65 | [请参考使用示例](MORE.md)
--------------------------------------------------------------------------------
/doc/demos/imgs/为接口添加描述信息.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/demos/imgs/为接口添加描述信息.png
--------------------------------------------------------------------------------
/doc/imgs/get-start-demo/接口文档首页.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/get-start-demo/接口文档首页.png
--------------------------------------------------------------------------------
/doc/imgs/get-start-demo/测试业务异常的使用_响应.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/get-start-demo/测试业务异常的使用_响应.png
--------------------------------------------------------------------------------
/doc/imgs/get-start-demo/测试业务异常的使用_请求.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/get-start-demo/测试业务异常的使用_请求.png
--------------------------------------------------------------------------------
/doc/imgs/get-start-demo/测试参数校验_请求1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/get-start-demo/测试参数校验_请求1.png
--------------------------------------------------------------------------------
/doc/imgs/get-start-demo/测试参数校验_请求2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/get-start-demo/测试参数校验_请求2.png
--------------------------------------------------------------------------------
/doc/imgs/get-start-demo/测试正常响应信息返回_结果.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/get-start-demo/测试正常响应信息返回_结果.png
--------------------------------------------------------------------------------
/doc/imgs/get-start-demo/测试正常响应信息返回_请求.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/get-start-demo/测试正常响应信息返回_请求.png
--------------------------------------------------------------------------------
/doc/imgs/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/logo.jpg
--------------------------------------------------------------------------------
/doc/imgs/wechatBlog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/wechatBlog.png
--------------------------------------------------------------------------------
/doc/imgs/业务流程图.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/业务流程图.jpg
--------------------------------------------------------------------------------
/doc/imgs/业务系统接口.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/业务系统接口.png
--------------------------------------------------------------------------------
/doc/imgs/内部组件架构图.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/内部组件架构图.jpg
--------------------------------------------------------------------------------
/doc/imgs/国际化翻译响应信息_en_US.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/国际化翻译响应信息_en_US.png
--------------------------------------------------------------------------------
/doc/imgs/国际化翻译响应信息_zh_CN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/国际化翻译响应信息_zh_CN.png
--------------------------------------------------------------------------------
/doc/imgs/国际化请求参数_en_US.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/国际化请求参数_en_US.png
--------------------------------------------------------------------------------
/doc/imgs/国际化请求参数_zh_CN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/国际化请求参数_zh_CN.png
--------------------------------------------------------------------------------
/doc/imgs/接口参数校验异常测试结果.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/接口参数校验异常测试结果.png
--------------------------------------------------------------------------------
/doc/imgs/接口文档示例.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/接口文档示例.png
--------------------------------------------------------------------------------
/doc/imgs/接口正常响应测试结果.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/接口正常响应测试结果.png
--------------------------------------------------------------------------------
/doc/imgs/系统内置接口.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/doc/imgs/系统内置接口.png
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/ApplicationManager.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ApplicationManager.java
3 | * Description 渠道、应用信息管理器
4 | * @author Allen
5 | * @date Nov 7, 2018
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi;
10 |
11 | import com.pddon.framework.easyapi.dto.ApiPermissionDto;
12 |
13 | public interface ApplicationManager {
14 | /**
15 | * 校验渠道、应用信息、客户端类型、版本是否合法
16 | * @author Allen
17 | */
18 | void validate(String channelId, String appId, String clientId, String versionCode);
19 | /**
20 | * 获取渠道访问权限配置信息
21 | * @author Allen
22 | */
23 | ApiPermissionDto getChannelPermission(String channelId);
24 | /**
25 | * 获取应用访问权限配置信息
26 | * @author Allen
27 | */
28 | ApiPermissionDto getAppPermission(String appId);
29 | /**
30 | * 获取某应用某版本客户端类型访问权限配置信息
31 | * @author Allen
32 | */
33 | ApiPermissionDto getClientPermission(String appId, String versionCode);
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/CheckRepeatManager.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title CheckRepeatManager.java
3 | * Description 防重复提交码
4 | * 针对需要防止客户端误操作将需要更新的数据重复提交多次,导致服务器数据异常,主要用于数据插入防重操作。
5 | * 操作方式:客户端生成一个全局唯一防重复提交码,可以使用数字签名字段或者其他全局唯一标识该次提交数据的信息。
6 | * @author danyuan
7 | * @date Nov 8, 2018
8 | * @version 1.0.0
9 | * site: pddon.cn
10 | */
11 | package com.pddon.framework.easyapi;
12 |
13 | public interface CheckRepeatManager {
14 |
15 | /**
16 | * 校验防重复提交码是否正确
17 | * @param key 防重码键值, 用户ID+时间戳 或者 sign值
18 | */
19 | void check(String key);
20 | /**
21 | * 提交失败后,主动释放防重复码
22 | * @author danyuan
23 | */
24 | void release(String key);
25 | /**
26 | * 标记防重复提交码已经被成功使用
27 | * @author danyuan
28 | */
29 | void used(String key);
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/InvokeApiLogManager.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title InvokeApiLogManager.java
3 | * Description 接口调用日志管理器
4 | * @author danyuan
5 | * @date Oct 31, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi;
10 |
11 | import java.sql.Date;
12 |
13 | import com.pddon.framework.easyapi.dto.ApiInvokeLog;
14 |
15 | public interface InvokeApiLogManager {
16 | /**
17 | * 保存接口调用日志
18 | * @author danyuan
19 | */
20 | void save(ApiInvokeLog log);
21 | /**
22 | * 统计接口调用次数
23 | * @author danyuan
24 | */
25 | long count(String apiName, String appId, String userId, String sessionId, String clientIp, Date startTime, Date endTime);
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/LanguageTranslateManager.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title DictManager.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 7, 2018
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi;
10 |
11 | public interface LanguageTranslateManager {
12 | /**
13 | * 获取某种语言的字典值
14 | * @param key 错误码
15 | * @param locale 语言
16 | * @param params 参数列表,可以替换占位符,按顺序替换value里的%s
17 | * @return
18 | */
19 | public String get(String key,String locale,Object... params);
20 | /**
21 | * 获取默认语言的字典值
22 | * @param key 错误码
23 | * @param params 参数列表,可以替换占位符,按顺序替换value里的%s
24 | * @return
25 | */
26 | public String get(String key,Object... params);
27 | /**
28 | * 设置默认语言
29 | * @param locale
30 | */
31 | public void setDefaultLocale(String locale);
32 |
33 | /**
34 | * 获取默认语言
35 | */
36 | public String getDefaultLocale();
37 | }
38 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/SecretManager.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SecretManager.java
3 | * Description 秘钥管理器
4 | * @author danyuan
5 | * @date Dec 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi;
10 |
11 | import com.pddon.framework.easyapi.dto.SecretInfo;
12 |
13 | public interface SecretManager {
14 |
15 | /**
16 | * 加载秘钥信息
17 | * @author danyuan
18 | */
19 | SecretInfo load(String channelId, String appId, String secretId, String userId, String sessionId);
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/SignManager.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SignManager.java
3 | * Description 渠道账号秘钥验签、鉴权管理器
4 | * @author danyuan
5 | * @date Nov 7, 2018
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi;
10 |
11 | import java.util.List;
12 |
13 | import com.pddon.framework.easyapi.dto.ApiRequestParameter;
14 |
15 | public interface SignManager {
16 |
17 | /**
18 | * 生成数字签名
19 | * @author danyuan
20 | */
21 | String sign(String secret, String token, List params);
22 | /**
23 | * 验签操作
24 | * @author danyuan
25 | */
26 | boolean checkSign(String sign, String secret, String token, List params);
27 | }
28 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/Decrypt.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title Decrypt.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | import com.pddon.framework.easyapi.encrypt.DataEncryptHandler;
18 | import com.pddon.framework.easyapi.encrypt.impl.AESDataEncryptHandler;
19 |
20 | @Target({ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER})
21 | @Retention(RetentionPolicy.RUNTIME)
22 | @Documented
23 | public @interface Decrypt {
24 | /**
25 | * 是否启用加密
26 | * @author danyuan
27 | */
28 | boolean value() default true;
29 | /**
30 | * 手动指定加密处理器,默认采用AES加解密
31 | * @author danyuan
32 | */
33 | Class extends DataEncryptHandler> type() default AESDataEncryptHandler.class;
34 | }
35 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/Encrypt.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title Encrypt.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | import com.pddon.framework.easyapi.encrypt.DataEncryptHandler;
18 | import com.pddon.framework.easyapi.encrypt.impl.AESDataEncryptHandler;
19 |
20 | @Target({ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER})
21 | @Retention(RetentionPolicy.RUNTIME)
22 | @Documented
23 | public @interface Encrypt {
24 | /**
25 | * 是否启用加密
26 | * @author danyuan
27 | */
28 | boolean value() default true;
29 | /**
30 | * 手动指定加密处理器,默认采用AES加解密
31 | * @author danyuan
32 | */
33 | Class extends DataEncryptHandler> type() default AESDataEncryptHandler.class;
34 | }
35 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/IgnoreSign.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title IgnoreSign.java
3 | * Description 签名需要忽略的字段
4 | * @author danyuan
5 | * @date Nov 8, 2018
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 | /**
17 | * 当接口开启验签时,添加此注解的字段不参与签名
18 | */
19 | @Target({ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER})
20 | @Retention(RetentionPolicy.RUNTIME)
21 | @Documented
22 | public @interface IgnoreSign {
23 | boolean value() default true;
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/InjectSystemParam.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title InjectSystemParam.java
3 | * Description 自动将系统参数值赋值给某些字段
4 | * @author danyuan
5 | * @date Nov 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | @Target({ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER})
18 | @Retention(RetentionPolicy.RUNTIME)
19 | @Documented
20 | public @interface InjectSystemParam {
21 | /**
22 | * 参数列表,默认为所有都拦截
23 | * @author danyuan
24 | */
25 | String[] value() default {};
26 | /**
27 | * 排除某些系统参数
28 | * @author danyuan
29 | */
30 | String[] execludes() default {};
31 | }
32 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/LanguageTranslate.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title LanguageTranslate.java
3 | * Description 国际化语言翻译注解
4 | * @author danyuan
5 | * @date Nov 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 |
18 | @Target({ElementType.FIELD,ElementType.TYPE})
19 | @Retention(RetentionPolicy.RUNTIME)
20 | @Documented
21 | public @interface LanguageTranslate {
22 | /**
23 | * 特定的语言
24 | * @author danyuan
25 | */
26 | String locale() default "";
27 | /**
28 | * 是否需要翻译
29 | * @author danyuan
30 | */
31 | boolean value() default true;
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/ReplaceRoute.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.annotation;
2 |
3 | import java.lang.annotation.*;
4 |
5 | /**
6 | * @ClassName: ReplaceRoute
7 | * @Description:
8 | * @Author: Allen
9 | * @Date: 2024-03-18 21:45
10 | * @Addr: https://pddon.cn
11 | */
12 | @Target({ElementType.TYPE})
13 | @Retention(RetentionPolicy.RUNTIME)
14 | @Documented
15 | @Inherited
16 | public @interface ReplaceRoute {
17 | String value() default "";
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredCountryCode.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title RequiredCountryCode.java
3 | * Description 是否需要国家码
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | @Target(ElementType.METHOD)
18 | @Retention(RetentionPolicy.RUNTIME)
19 | @Documented
20 | public @interface RequiredCountryCode {
21 | boolean value() default true;
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredCurrency.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title RequiredCurrency.java
3 | * Description 是否需要货币类型
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | @Target(ElementType.METHOD)
18 | @Retention(RetentionPolicy.RUNTIME)
19 | @Documented
20 | public @interface RequiredCurrency {
21 | boolean value() default true;
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredLocale.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title RequiredLocale.java
3 | * Description 是否需要指定系统语言
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | @Target(ElementType.METHOD)
18 | @Retention(RetentionPolicy.RUNTIME)
19 | @Documented
20 | public @interface RequiredLocale {
21 | boolean value() default true;
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredNoRepeatSubmit.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title DenyRepeatSubmit.java
3 | * Description 防重复提交
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | import com.pddon.framework.easyapi.consts.DenyRepeatSubmitType;
18 |
19 | @Target(ElementType.METHOD)
20 | @Retention(RetentionPolicy.RUNTIME)
21 | @Documented
22 | public @interface RequiredNoRepeatSubmit {
23 | boolean value() default true;
24 | DenyRepeatSubmitType mode() default DenyRepeatSubmitType.USE_SIGN;
25 | }
26 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredParam.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title RequiredParam.java
3 | * Description 校验必填的系统参数
4 | * @author danyuan
5 | * @date Nov 8, 2018
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 | /**
17 | * 配置
18 | */
19 | @Target({ElementType.FIELD,ElementType.METHOD})
20 | @Retention(RetentionPolicy.RUNTIME)
21 | @Documented
22 | public @interface RequiredParam {
23 | /**
24 | * 参数名数组,可以同时配置忽略多个参数
25 | * @author danyuan
26 | */
27 | String[] value() default {};
28 | /**
29 | * 是否允许空字符串, 默认不允许
30 | * @author danyuan
31 | */
32 | boolean allowBlank() default false;
33 | }
34 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredSession.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title RequiredSession.java
3 | * Description 是否需要会话
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | @Target(ElementType.METHOD)
18 | @Retention(RetentionPolicy.RUNTIME)
19 | @Documented
20 | public @interface RequiredSession {
21 | boolean value() default true;
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredTimeZone.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title RequiredTimeZone.java
3 | * Description 是否需要时区
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | @Target(ElementType.METHOD)
18 | @Retention(RetentionPolicy.RUNTIME)
19 | @Documented
20 | public @interface RequiredTimeZone {
21 | boolean value() default true;
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredTimestamp.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title RequiredTimestamp.java
3 | * Description 是否需要时间戳
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | @Target(ElementType.METHOD)
18 | @Retention(RetentionPolicy.RUNTIME)
19 | @Documented
20 | public @interface RequiredTimestamp {
21 | boolean value() default true;
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/annotation/RequiredVersion.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title RequiredVersion.java
3 | * Description 是否需要版本号
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.annotation;
10 |
11 | import java.lang.annotation.Documented;
12 | import java.lang.annotation.ElementType;
13 | import java.lang.annotation.Retention;
14 | import java.lang.annotation.RetentionPolicy;
15 | import java.lang.annotation.Target;
16 |
17 | @Target(ElementType.METHOD)
18 | @Retention(RetentionPolicy.RUNTIME)
19 | @Documented
20 | public @interface RequiredVersion {
21 | boolean value() default true;
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/cache/LocalReadCacheContainer.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title LocalReadCacheContainer.java
3 | * Description 本地缓存管理器,以失效时间为key进行管理
4 | * @author danyuan
5 | * @date Dec 17, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.cache;
10 |
11 | import com.pddon.framework.easyapi.consts.CacheExpireMode;
12 | import org.springframework.stereotype.Component;
13 |
14 | @Component
15 | public class LocalReadCacheContainer extends LocalCacheContainer{
16 |
17 | /**
18 | * @author danyuan
19 | */
20 | public LocalReadCacheContainer() {
21 | super(CacheExpireMode.EXPIRE_AFTER_REDA);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/cache/LocalWriteCacheContainer.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title LocalWriteCacheContainer.java
3 | * Description 本地缓存管理器,以失效时间为key进行管理
4 | * @author danyuan
5 | * @date Dec 17, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.cache;
10 |
11 | import com.pddon.framework.easyapi.consts.CacheExpireMode;
12 | import org.springframework.stereotype.Component;
13 |
14 | @Component
15 | public class LocalWriteCacheContainer extends LocalCacheContainer{
16 |
17 | /**
18 | * @author danyuan
19 | */
20 | public LocalWriteCacheContainer() {
21 | super(CacheExpireMode.EXPIRE_AFTER_WRITE);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/component/BusinessErrorCodeInterpreter.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.component;
2 |
3 | import com.pddon.framework.easyapi.dto.ErrorCodeDto;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * @ClassName: BusinessErrorCodeInterpreter
9 | * @Description:
10 | * @Author: Allen
11 | * @Date: 2024-04-08 20:51
12 | * @Addr: https://pddon.cn
13 | */
14 | public interface BusinessErrorCodeInterpreter {
15 | Integer getCode(String error);
16 |
17 | List getBussinessCodes();
18 |
19 | List getSystemCodes();
20 | }
21 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/consts/CacheExpireMode.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title CacheExpireMode.java
3 | * Description
4 | * @author danyuan
5 | * @date Dec 19, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.consts;
10 |
11 | public enum CacheExpireMode {
12 | /**
13 | * 写入缓存后超时时间后失效
14 | */
15 | EXPIRE_AFTER_WRITE,
16 | /**
17 | * 最后一次读取缓存超时时间后失效
18 | */
19 | EXPIRE_AFTER_REDA;
20 | }
21 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/consts/CacheKeyMode.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.consts;
2 |
3 | /**
4 | * 缓存key生成策略
5 | */
6 | public enum CacheKeyMode {
7 | /**
8 | * 通过指定自定义ID生成
9 | */
10 | CUSTOM_ID,
11 | /**
12 | * 通过所有参数信息生成
13 | */
14 | AUTO_BY_PARAMS,
15 | /**
16 | * 通过方法名生成
17 | */
18 | AUTO_BY_METHOD
19 | }
20 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/consts/DefaultConfigValueMode.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title DefaultConfigValueUseType.java
3 | * Description
4 | * @author danyuan
5 | * @date Dec 27, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.consts;
10 |
11 | public enum DefaultConfigValueMode {
12 | APPEND,//添加到后面
13 | PREPEND,//添加到前面
14 | OPTION,//默认值,可被配置覆盖
15 | FORCE_DEFAULT//强制使用默认值
16 | }
17 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/consts/DenyRepeatSubmitType.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title DenyRepeatSubmitType.java
3 | * Description
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.consts;
10 |
11 | public enum DenyRepeatSubmitType {
12 | /**
13 | * 客户端主动生成全局唯一防重复提交码模式
14 | */
15 | GENERATE_TOKEN,
16 | /**
17 | * 使用数字签名作为防重码模式
18 | */
19 | USE_SIGN
20 | }
21 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/consts/SignScope.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SignScope.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.consts;
10 |
11 | public enum SignScope {
12 | REQUEST,
13 | RESPONSE,
14 | BOTH
15 | }
16 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/request/DeviceRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title BaseDeviceRequest.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 6, 2018
6 | * @version 1.0.0
7 | * blog pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.request;
10 |
11 | import lombok.Getter;
12 | import lombok.Setter;
13 | import lombok.ToString;
14 | import lombok.experimental.Accessors;
15 |
16 | @Getter
17 | @Setter
18 | @ToString
19 | @Accessors(chain=true)
20 | public class DeviceRequest extends BaseRequest{
21 |
22 | /**
23 | *serialVersionUID
24 | */
25 | private static final long serialVersionUID = 1L;
26 |
27 |
28 | /**
29 | * 手机系统版本
30 | */
31 | private String phoneVersion;
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/request/IdRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title PaginationRequest.java
3 | * Description 查询分页请求参数基类
4 | * @author danyuan
5 | * @date Nov 6, 2018
6 | * @version 1.0.0
7 | * blog pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.request;
10 |
11 | import io.swagger.annotations.ApiModel;
12 | import io.swagger.annotations.ApiModelProperty;
13 |
14 | import java.io.Serializable;
15 |
16 | import javax.validation.constraints.NotNull;
17 |
18 | import lombok.Getter;
19 | import lombok.Setter;
20 | import lombok.ToString;
21 | import lombok.experimental.Accessors;
22 |
23 | @Getter
24 | @Setter
25 | @ToString
26 | @Accessors(chain=true)
27 | @ApiModel(value="IdRequest",description="通过某记录的ID获取详细信息请求参数")
28 | public class IdRequest implements Serializable{
29 |
30 | /**
31 | *serialVersionUID
32 | */
33 | private static final long serialVersionUID = 1L;
34 |
35 | @ApiModelProperty(
36 | allowEmptyValue=false,
37 | value="记录的id"
38 | )
39 | @NotNull
40 | private Integer id;
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/request/IdsRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title PaginationRequest.java
3 | * Description 查询分页请求参数基类
4 | * @author danyuan
5 | * @date Nov 6, 2018
6 | * @version 1.0.0
7 | * blog pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.request;
10 |
11 | import io.swagger.annotations.ApiModel;
12 | import io.swagger.annotations.ApiModelProperty;
13 |
14 | import java.io.Serializable;
15 |
16 | import lombok.Getter;
17 | import lombok.Setter;
18 | import lombok.ToString;
19 | import lombok.experimental.Accessors;
20 |
21 | import javax.validation.constraints.NotNull;
22 |
23 | @Getter
24 | @Setter
25 | @ToString
26 | @Accessors(chain=true)
27 | @ApiModel(value="IdsRequest",description="通过某记录的ID获取详细信息请求参数")
28 | public class IdsRequest implements Serializable{
29 |
30 | /**
31 | *serialVersionUID
32 | */
33 | private static final long serialVersionUID = 1L;
34 |
35 | @ApiModelProperty(
36 | allowEmptyValue=false,
37 | value="记录的id集合"
38 | )
39 | @NotNull
40 | private String[] ids;
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/response/BaseResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title BaseResponse.java
3 | * Description 响应基类,所有返回给客户端的响应都必须继承自此类
4 | * @author danyuan
5 | * @date Nov 7, 2018
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.response;
10 |
11 | import java.io.Serializable;
12 |
13 | import lombok.Getter;
14 | import lombok.Setter;
15 | import lombok.ToString;
16 | import lombok.experimental.Accessors;
17 |
18 | import com.fasterxml.jackson.annotation.JsonInclude;
19 | import com.fasterxml.jackson.annotation.JsonInclude.Include;
20 | @JsonInclude(Include.NON_NULL)
21 | @Getter
22 | @Setter
23 | @ToString
24 | @Accessors(chain = true)
25 | public class BaseResponse implements Serializable {
26 |
27 | /**
28 | *serialVersionUID
29 | */
30 | private static final long serialVersionUID = 1L;
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/response/ErrorInfo.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ErrorInfo.java
3 | * Description 详细错误信息
4 | * @author danyuan
5 | * @date Nov 6, 2018
6 | * @version 1.0.0
7 | * blog pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.response;
10 |
11 | import java.io.Serializable;
12 |
13 | import lombok.AllArgsConstructor;
14 | import lombok.Data;
15 | import lombok.NoArgsConstructor;
16 | import lombok.experimental.Accessors;
17 |
18 | @Data
19 | @Accessors(chain=true)
20 | @AllArgsConstructor
21 | @NoArgsConstructor
22 | public class ErrorInfo implements Serializable {
23 | /**
24 | *serialVersionUID
25 | */
26 | private static final long serialVersionUID = 1L;
27 | /**
28 | * 错误码标识
29 | */
30 | private String error;
31 | /**
32 | * 错误描述信息
33 | */
34 | private String msg;
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/response/ErrorResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ErrorResponse.java
3 | * Description 错误响应
4 | * @author danyuan
5 | * @date Nov 6, 2018
6 | * @version 1.0.0
7 | * blog pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.response;
10 |
11 | import java.util.List;
12 |
13 | import lombok.AllArgsConstructor;
14 | import lombok.Getter;
15 | import lombok.NoArgsConstructor;
16 | import lombok.Setter;
17 | import lombok.ToString;
18 | import lombok.experimental.Accessors;
19 |
20 | @Getter
21 | @Setter
22 | @ToString(callSuper = true)
23 | @Accessors(chain = true)
24 | @AllArgsConstructor
25 | @NoArgsConstructor
26 | public class ErrorResponse extends BaseResponse {
27 | /**
28 | * serialVersionUID
29 | */
30 | private static final long serialVersionUID = 1L;
31 | /**
32 | * 错误信息详情
33 | */
34 | List subErrors;
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/response/ItemResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ItemResponse.java
3 | * Description
4 | * @author danyuan
5 | * @date Jan 7, 2019
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.response;
10 |
11 | import lombok.AllArgsConstructor;
12 | import lombok.Getter;
13 | import lombok.NoArgsConstructor;
14 | import lombok.Setter;
15 | import lombok.ToString;
16 | import lombok.experimental.Accessors;
17 |
18 | @Getter
19 | @Setter
20 | @ToString(callSuper=true)
21 | @Accessors(chain=true)
22 | @AllArgsConstructor
23 | @NoArgsConstructor
24 | public class ItemResponse extends SuccessResponse {
25 |
26 | /**
27 | *serialVersionUID
28 | */
29 | private static final long serialVersionUID = 1L;
30 | private T item;
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/response/ListResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ListResponse.java
3 | * Description
4 | * @author danyuan
5 | * @date Jan 7, 2019
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.response;
10 |
11 |
12 | import java.util.List;
13 |
14 | import lombok.AllArgsConstructor;
15 | import lombok.Getter;
16 | import lombok.NoArgsConstructor;
17 | import lombok.Setter;
18 | import lombok.ToString;
19 | import lombok.experimental.Accessors;
20 |
21 | @Getter
22 | @Setter
23 | @ToString(callSuper=true)
24 | @Accessors(chain=true)
25 | @AllArgsConstructor
26 | @NoArgsConstructor
27 | public class ListResponse extends SuccessResponse {
28 |
29 | /**
30 | *serialVersionUID
31 | */
32 | private static final long serialVersionUID = 1L;
33 | private List list;
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/response/MapResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title MapResponse.java
3 | * Description
4 | * @author danyuan
5 | * @date Jul 1, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.response;
10 |
11 | import java.util.Map;
12 |
13 | import lombok.AllArgsConstructor;
14 | import lombok.Getter;
15 | import lombok.NoArgsConstructor;
16 | import lombok.Setter;
17 | import lombok.ToString;
18 | import lombok.experimental.Accessors;
19 |
20 | @Getter
21 | @Setter
22 | @ToString(callSuper=true)
23 | @Accessors(chain=true)
24 | @AllArgsConstructor
25 | @NoArgsConstructor
26 | public class MapResponse extends SuccessResponse {/**
27 | *serialVersionUID
28 | */
29 | private static final long serialVersionUID = 1L;
30 |
31 | private Map map;
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/controller/response/SuccessResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title BaseSuccessResponse.java
3 | * Description 不带参数的处理成功结果返回
4 | * @author danyuan
5 | * @date Nov 14, 2018
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.controller.response;
10 |
11 | public class SuccessResponse extends BaseResponse {
12 |
13 | /**
14 | *serialVersionUID
15 | */
16 | private static final long serialVersionUID = 1L;
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/dataformat/FieldDataFormatHandler.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title FieldDataFormatHandler.java
3 | * Description 对象字段值加工处理器
4 | * @author danyuan
5 | * @date Nov 16, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dataformat;
10 |
11 | import java.lang.annotation.Annotation;
12 | import java.util.Map;
13 |
14 | public interface FieldDataFormatHandler {
15 |
16 | /**
17 | * @author danyuan
18 | */
19 | int order();
20 |
21 | /**
22 | * 是否处理请求
23 | */
24 | boolean handleRequest();
25 | /**
26 | * 是否处理响应
27 | * @author danyuan
28 | */
29 | boolean handleResponse();
30 |
31 | Object handle(String fieldName, Object data, Map, Annotation> annotations) throws Throwable;
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/dto/ApiInfo.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ApiInfo.java
3 | * Description
4 | * @author danyuan
5 | * @date Oct 31, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 | import java.util.List;
13 |
14 | import lombok.Data;
15 | import lombok.experimental.Accessors;
16 |
17 | @Data
18 | @Accessors(chain = true)
19 | public class ApiInfo implements Serializable {/**
20 | *serialVersionUID
21 | */
22 | private static final long serialVersionUID = 1L;
23 | /**
24 | * 接口名
25 | */
26 | private String apiName;
27 | /**
28 | * 接口URI
29 | */
30 | private String apiUri;
31 | /**
32 | * http请求类型
33 | */
34 | private String apiMethod;
35 | /**
36 | * 接口版本
37 | */
38 | private String apiVersion;
39 | /**
40 | * 请求参数
41 | */
42 | private List reqParams;
43 | /**
44 | * 响应结果
45 | */
46 | private Object response;
47 | }
48 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/dto/ApiRequestParameter.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ApiRequestParameter.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 | import java.lang.annotation.Annotation;
13 |
14 | import lombok.Data;
15 |
16 | @Data
17 | public class ApiRequestParameter implements Serializable{/**
18 | *serialVersionUID
19 | */
20 | private static final long serialVersionUID = 1L;
21 | /**
22 | * 请求参数的下标
23 | */
24 | private int index;
25 | /**
26 | * 参数名
27 | */
28 | private String paramName;
29 | /**
30 | * 参数值
31 | */
32 | private Object param;
33 | /**
34 | * 是否需要签名
35 | */
36 | private boolean needSign = true;
37 | /**
38 | * 该请求参数是否需要解密
39 | */
40 | private boolean decrpt;
41 | /**
42 | * 参数上的注解
43 | */
44 | private Annotation[] annotations;
45 |
46 | private Object[] args;
47 | }
48 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/dto/BusinessErrorDescription.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title BusinessErrorDto.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 28, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 |
13 | import lombok.Data;
14 |
15 | @Data
16 | public class BusinessErrorDescription implements Serializable{/**
17 | *serialVersionUID
18 | */
19 | private static final long serialVersionUID = 1L;
20 |
21 | private Integer code;
22 |
23 | private String desc;
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/dto/CacheManagerState.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title CacheManagerState.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 13, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 |
13 | import lombok.Data;
14 | import lombok.experimental.Accessors;
15 |
16 | @Data
17 | @Accessors(chain = true)
18 | public class CacheManagerState implements Serializable {
19 | /**
20 | * serialVersionUID
21 | */
22 | private static final long serialVersionUID = 1L;
23 | private String cacheName;
24 | private long hitCount;
25 | private long missCount;
26 | private long loadSuccessCount;
27 | private long loadTotalCount;
28 | private long totalLoadTime;
29 | private long evictionCount;
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/dto/SecretInfo.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SecretInfo.java
3 | * Description
4 | * @author danyuan
5 | * @date Dec 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 |
13 | import lombok.Data;
14 | import lombok.experimental.Accessors;
15 |
16 | @Data
17 | @Accessors(chain = true)
18 | public class SecretInfo implements Serializable{/**
19 | *serialVersionUID
20 | */
21 | private static final long serialVersionUID = 1L;
22 | /**
23 | * 对称秘钥,用于加签、验签,对数据进行对称加解密
24 | */
25 | private String secret;
26 | /**
27 | * 非对称秘钥对,公钥加密,私钥解密
28 | */
29 | private SecretKeyPair keyPair;
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/dto/SecretKeyPair.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SecretKeyPair.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 |
13 | import lombok.AllArgsConstructor;
14 | import lombok.Data;
15 | import lombok.NoArgsConstructor;
16 |
17 | @Data
18 | @AllArgsConstructor
19 | @NoArgsConstructor
20 | public class SecretKeyPair implements Serializable{/**
21 | *serialVersionUID
22 | */
23 | private static final long serialVersionUID = 1L;
24 |
25 | private String privateSecret;
26 |
27 | private String publicSecret;
28 | }
29 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/encrypt/DataEncryptHandler.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title DataEncryptHandler.java
3 | * Description 数据加解密处理器
4 | * @author danyuan
5 | * @date Nov 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.encrypt;
10 |
11 | public interface DataEncryptHandler {
12 | String encrypt(String appId, String channelId, String userId, String content) throws Throwable ;
13 | String decrypt(String appId, String channelId, String userId, String content) throws Throwable ;
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/encrypt/SignEncryptHandler.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SignEncryptHandler.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.encrypt;
10 |
11 | public interface SignEncryptHandler {
12 |
13 | String sign(String secret, String body);
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/encrypt/impl/Sha1SignEncryptHandler.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title Sha1SignEncryptHandler.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.encrypt.impl;
10 |
11 | import com.pddon.framework.easyapi.encrypt.SignEncryptHandler;
12 | import com.pddon.framework.easyapi.utils.EncryptUtils;
13 |
14 | public class Sha1SignEncryptHandler implements SignEncryptHandler {
15 |
16 | /**
17 | * @author danyuan
18 | */
19 | @Override
20 | public String sign(String secrect, String body) {
21 | return EncryptUtils.encryptSHA1Hex(secrect, body);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/exception/handler/CommonExceptionHandler.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title CommonExceptionHandler.java
3 | * Description 异常处理器
4 | * @author danyuan
5 | * @date Nov 1, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.exception.handler;
10 |
11 | import javax.servlet.http.HttpServletRequest;
12 | import javax.servlet.http.HttpServletResponse;
13 |
14 | import com.pddon.framework.easyapi.controller.response.DefaultResponseWrapper;
15 |
16 | public interface CommonExceptionHandler {
17 | boolean support(Exception e);
18 | DefaultResponseWrapper> handle(HttpServletRequest request,
19 | HttpServletResponse response, Exception e);
20 | }
21 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/lambda/DecorateContentFunction.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title DecorateContentFunction.java
3 | * Description 对字段内容进行额外处理,如加密、解密、国际化等等
4 | * @author danyuan
5 | * @date Nov 15, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.lambda;
10 |
11 | import java.lang.annotation.Annotation;
12 | import java.util.Map;
13 |
14 | @FunctionalInterface
15 | public interface DecorateContentFunction{
16 | Object decorate(String fieldName, Object data, Map, Annotation> annotations) throws Throwable;
17 | }
18 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/listener/ApplicationLifeListener.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.listener;
2 |
3 | import org.springframework.boot.context.event.ApplicationContextInitializedEvent;
4 | import org.springframework.boot.context.event.ApplicationFailedEvent;
5 | import org.springframework.boot.context.event.ApplicationStartedEvent;
6 |
7 | /**
8 | * @ClassName: ApplicationLifeListener
9 | * @Description: EasyApi生命周期监听器
10 | * @Author: Allen
11 | * @Date: 2024-04-24 13:41
12 | * @Addr: https://pddon.cn
13 | */
14 | public interface ApplicationLifeListener {
15 | void contextInitialized(ApplicationContextInitializedEvent event);
16 |
17 | void started(ApplicationStartedEvent event);
18 |
19 | void failed(ApplicationFailedEvent event);
20 | }
21 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/listener/ApplicationStartedListener.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.listener;
2 |
3 | import lombok.extern.slf4j.Slf4j;
4 | import org.springframework.beans.factory.annotation.Autowired;
5 | import org.springframework.boot.context.event.ApplicationStartedEvent;
6 | import org.springframework.context.ApplicationListener;
7 | import org.springframework.stereotype.Component;
8 |
9 | import java.util.List;
10 |
11 | /**
12 | * @ClassName: ApplicationStartedListener
13 | * @Description: 应用启动成功监听器
14 | * @Author: Allen
15 | * @Date: 2024-04-24 13:38
16 | * @Addr: https://pddon.cn
17 | */
18 | @Component
19 | @Slf4j
20 | public class ApplicationStartedListener implements ApplicationListener {
21 | @Autowired
22 | private List listeners;
23 |
24 | @Override
25 | public void onApplicationEvent(ApplicationStartedEvent event) {
26 | listeners.forEach(listener -> listener.started(event));
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/msg/queue/QueueListener.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.msg.queue;
2 |
3 | /**
4 | * @ClassName: QueueListener
5 | * @Description: 队列消息监听器
6 | * @Author: Allen
7 | * @Date: 2024-06-05 11:41
8 | * @Addr: https://pddon.cn
9 | */
10 | public interface QueueListener {
11 | /**
12 | * 初始化
13 | * @author: Allen
14 | * @Date: 2024/6/6 0:50
15 | */
16 | void init();
17 | /**
18 | * 需要监听的队列名
19 | * @return {@link String}
20 | * @author: Allen
21 | * @Date: 2024/6/5 11:55
22 | */
23 | String queue();
24 |
25 | /**
26 | * 监听消息
27 | * @param message
28 | * @author: Allen
29 | * @Date: 2024/6/5 11:55
30 | */
31 | void onMessage(Message message);
32 |
33 | /**
34 | * 消息监听发生异常时的处理方法
35 | * @param message
36 | * @param e
37 | * @author: Allen
38 | * @Date: 2024/6/5 11:55
39 | */
40 | void onError(Message message, Exception e);
41 | }
42 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/msg/queue/QueueSender.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.msg.queue;
2 |
3 | /**
4 | * @ClassName: QueueSender
5 | * @Description: 消息发送器
6 | * @Author: Allen
7 | * @Date: 2024-06-05 11:39
8 | * @Addr: https://pddon.cn
9 | */
10 | public interface QueueSender {
11 |
12 | /**
13 | * 需要监听的队列名
14 | * @return {@link String}
15 | * @author: Allen
16 | * @Date: 2024/6/5 11:55
17 | */
18 | String queue();
19 |
20 | /**
21 | * 发送消息
22 | * @param msg
23 | * @return {@link boolean}
24 | * @author: Allen
25 | * @Date: 2024/6/5 11:41
26 | */
27 | boolean sendMessage(Message msg);
28 |
29 | /**
30 | * 发送简单消息
31 | * @param content
32 | * @return {@link boolean}
33 | * @author: Allen
34 | * @Date: 2024/6/5 11:41
35 | */
36 | boolean sendMessage(String content);
37 | }
38 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/properties/ChannelConfigProperties.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ChannelConfigProperties.java
3 | * Description
4 | * @author danyuan
5 | * @date Oct 18, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.properties;
10 |
11 | import java.util.Map;
12 |
13 | import lombok.Data;
14 | import lombok.experimental.Accessors;
15 |
16 | import org.springframework.boot.context.properties.ConfigurationProperties;
17 |
18 | import com.pddon.framework.easyapi.dto.ApiPermissionDto;
19 |
20 | @Data
21 | @Accessors(chain = true)
22 | @ConfigurationProperties(prefix = "easyapi.api")
23 | public class ChannelConfigProperties {
24 |
25 | public static final String DEFAULT = "default";
26 | /**
27 | * 渠道ID
28 | * 应用标识:
29 | * 参数名:参数值
30 | */
31 | private Map> channels;
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/utils/HashUtil.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title HashUtil.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 8, 2019
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.utils;
10 |
11 | public class HashUtil {
12 |
13 | public static int ELFhash(String str)//思想就是一直杂糅,使字符之间互相影响
14 | {
15 | int h = 0x0, g;
16 | for(int i = 0 ; i < str.length() ; i++)
17 | {
18 | h = (h<<4) + str.charAt(i); //h左移4位,当前字符占8位,加到h中进行杂糅
19 | if((g = h & 0xf0000000) != 0) //取h最左四位的值,若均为0,则括号中执行与否没区别,故不执行
20 | {
21 | h ^= g>>24; //用h的最左四位的值对h的右起5~8进行杂糅
22 | h &= ~g;//清空h的最左四位
23 | }
24 | }
25 | return h; //因为每次都清空了最左四位,最后结果最多也就是28位二进制整数,不会超int
26 | }
27 |
28 | public static int limitELFHash(String str , int min, int max)
29 | {
30 | int k = ELFhash(str);
31 | k = Math.abs(k - min);
32 | int result = k % (max - min);
33 | result += min;
34 | return result;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/utils/IOUtils.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.utils;
2 |
3 | import java.io.ByteArrayOutputStream;
4 | import java.io.PrintStream;
5 |
6 | public class IOUtils {
7 | public static String getThrowableInfo(Throwable throwable) {
8 | try{
9 | ByteArrayOutputStream outputStream = new ByteArrayOutputStream(1024);
10 | PrintStream printStream = new PrintStream(outputStream);
11 | throwable.printStackTrace(printStream);
12 | return outputStream.toString();
13 | }catch (Exception e){
14 | return e.getMessage();
15 | }
16 | }
17 |
18 | public static String getThrowableInfoLess(Throwable throwable) {
19 |
20 | ByteArrayOutputStream outputStream = new ByteArrayOutputStream(256);
21 | PrintStream printStream = new PrintStream(outputStream);
22 | throwable.printStackTrace(printStream);
23 | return outputStream.toString();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/utils/RandomTokenGenerator.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.utils;
2 |
3 | import java.util.Random;
4 |
5 | public class RandomTokenGenerator {
6 | public static final int DEAULT_CHARCOUNT=6;
7 | /**
8 | * 默认生成6位随机数字
9 | * @return
10 | */
11 | public static String generateToken(){
12 | return generateToken(DEAULT_CHARCOUNT);
13 | }
14 |
15 | public static String generateToken(int charCount){
16 | StringBuffer buffer = new StringBuffer();
17 | for (int i = 0; i < charCount; i++) {
18 | char c = (char) (randomInt(0, 10) + '0');
19 | buffer.append(String.valueOf(c));
20 | }
21 | return buffer.toString();
22 | }
23 |
24 | public static int randomInt(int from, int to) {
25 | Random r = new Random();
26 | return from + r.nextInt(to - from);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/utils/StringUtils.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title StringUtils.java
3 | * Description
4 | * @author danyuan
5 | * @date Dec 2, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.utils;
10 |
11 | import org.springframework.lang.Nullable;
12 |
13 | public class StringUtils {
14 |
15 | public static boolean isEmpty(@Nullable Object str) {
16 | return (str == null || "".equals(str));
17 | }
18 |
19 | public static boolean isNotEmpty(@Nullable Object str) {
20 | return !isEmpty(str);
21 | }
22 |
23 | public static boolean isBlank(@Nullable Object str) {
24 | return (str == null || "".equals(str) || str.toString().trim().equals(""));
25 | }
26 |
27 | public static boolean isNotBlank(@Nullable Object str) {
28 | return !isBlank(str);
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/validate/AtLeastOne.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.validate;
2 |
3 | import javax.validation.Constraint;
4 | import javax.validation.Payload;
5 | import java.lang.annotation.*;
6 |
7 | /**
8 | * @ClassName: AtLeastOne
9 | * @Description: 多选一必填
10 | * @Author: Allen
11 | * @Date: 2024-04-22 22:01
12 | * @Addr: https://pddon.cn
13 | */
14 | @Documented
15 | @Constraint(validatedBy = AtLeastOneConstraintValidator.class)
16 | @Target({ ElementType.TYPE })
17 | @Retention(RetentionPolicy.RUNTIME)
18 | public @interface AtLeastOne {
19 | String message() default "多选一必填分组参数不能全为空!";
20 | Class>[] groups() default {};
21 | Class extends Payload>[] payload() default {};
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/main/java/com/pddon/framework/easyapi/validate/AtLeastOneField.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.validate;
2 |
3 | import java.lang.annotation.*;
4 |
5 | /**
6 | * @ClassName: AtLeastOne
7 | * @Description: 多选一必填
8 | * @Author: Allen
9 | * @Date: 2024-04-22 22:01
10 | * @Addr: https://pddon.cn
11 | */
12 | @Documented
13 | @Target({ ElementType.FIELD })
14 | @Retention(RetentionPolicy.RUNTIME)
15 | public @interface AtLeastOneField {
16 | /**
17 | * 同一个分组内多选一必填
18 | * @return {@link String}
19 | * @author: Allen
20 | * @Date: 2024/4/22 22:42
21 | */
22 | String group() default "";
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-base/src/test/java/TimeZoneTest.java:
--------------------------------------------------------------------------------
1 | import org.junit.Test;
2 |
3 | import java.util.Calendar;
4 | import java.util.TimeZone;
5 |
6 | /**
7 | * @ClassName: TimeZoneTest
8 | * @Description:
9 | * @Author: Allen
10 | * @Date: 2024-07-07 17:20
11 | * @Addr: https://pddon.cn
12 | */
13 | public class TimeZoneTest {
14 |
15 | @Test
16 | public void testGetCurrentTimeZone(){
17 | TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
18 | System.out.println(Calendar.getInstance().getTimeZone().getID());
19 | TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00"));
20 | System.out.println(Calendar.getInstance().getTimeZone().getID());
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/main/java/com/pddon/framework/easyapi/client/ClientDataEncryptHandler.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client;
2 |
3 | /**
4 | * @ClassName: ClientDataEncryptHandler
5 | * @Description:
6 | * @Author: Allen
7 | * @Date: 2024-04-12 10:46
8 | * @Addr: https://pddon.cn
9 | */
10 | public interface ClientDataEncryptHandler {
11 | String encrypt(String appId, String channelId, String content) throws Throwable ;
12 | String decrypt(String appId, String channelId, String content) throws Throwable ;
13 | }
14 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/main/java/com/pddon/framework/easyapi/client/ClientSecretManager.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client;
2 |
3 | import com.pddon.framework.easyapi.dto.SecretInfo;
4 |
5 | /**
6 | * @ClassName: ClientSecretManager
7 | * @Description:
8 | * @Author: Allen
9 | * @Date: 2024-04-12 10:42
10 | * @Addr: https://pddon.cn
11 | */
12 | public interface ClientSecretManager {
13 | /**
14 | * 加载秘钥信息
15 | * @author danyuan
16 | */
17 | SecretInfo load(String channelId, String appId, String secretId);
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/main/java/com/pddon/framework/easyapi/client/ClientSignEncryptHandler.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client;
2 |
3 | /**
4 | * @ClassName: ClientSignEncryptHandler
5 | * @Description:
6 | * @Author: Allen
7 | * @Date: 2024-04-12 10:52
8 | * @Addr: https://pddon.cn
9 | */
10 | public interface ClientSignEncryptHandler {
11 | String sign(String secret, String body);
12 | }
13 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/main/java/com/pddon/framework/easyapi/client/annotations/EnableEasyApiClient.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client.annotations;
2 |
3 | import com.pddon.framework.easyapi.client.config.ClientConfigurer;
4 | import com.pddon.framework.easyapi.client.config.HttpClientConfig;
5 | import org.springframework.context.annotation.Import;
6 |
7 | import java.lang.annotation.*;
8 |
9 | /**
10 | * @ClassName: EnableEasyApiClient
11 | * @Description: 启用easyapi客户端服务
12 | * @Author: Allen
13 | * @Date: 2024-03-05 23:37
14 | * @Addr: https://pddon.cn
15 | */
16 | @Target({ElementType.TYPE})
17 | @Retention(RetentionPolicy.RUNTIME)
18 | @Documented
19 | @Inherited
20 | @Import({HttpClientConfig.class, ClientConfigurer.class})
21 | public @interface EnableEasyApiClient {
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/main/java/com/pddon/framework/easyapi/client/consts/HttpMethod.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client.consts;
2 |
3 | import lombok.Getter;
4 | import org.apache.http.client.methods.*;
5 |
6 | /**
7 | * @ClassName: HttpMethod
8 | * @Description: 常用Http请求类型
9 | * @Author: Allen
10 | * @Date: 2024-03-06 21:13
11 | * @Addr: https://pddon.cn
12 | */
13 | @Getter
14 | public enum HttpMethod {
15 | GET(HttpGet.METHOD_NAME),
16 | POST(HttpPost.METHOD_NAME),
17 | PUT(HttpPut.METHOD_NAME),
18 | DELETE(HttpDelete.METHOD_NAME),
19 | HEAD(HttpHead.METHOD_NAME),
20 | PATCH(HttpPatch.METHOD_NAME);
21 |
22 | private String value;
23 |
24 | HttpMethod(String value){
25 | this.value = value;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/main/java/com/pddon/framework/easyapi/client/impl/ClientSha1SignEncryptHandler.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ClientSha1SignEncryptHandler.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.client.impl;
10 |
11 | import com.pddon.framework.easyapi.client.ClientSignEncryptHandler;
12 | import com.pddon.framework.easyapi.utils.EncryptUtils;
13 |
14 | public class ClientSha1SignEncryptHandler implements ClientSignEncryptHandler {
15 |
16 | /**
17 | * @author danyuan
18 | */
19 | @Override
20 | public String sign(String secret, String body) {
21 | return EncryptUtils.encryptSHA1Hex(secret, body);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/test/java/com/pddon/framework/easyapi/client/StartTestDemoConfig.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | /**
7 | * @ClassName: StartTestDemoConfig
8 | * @Description: 用于测试类
9 | * @Author: Allen
10 | * @Date: 2024-03-06 22:42
11 | * @Addr: https://pddon.cn
12 | */
13 | @SpringBootApplication
14 | public class StartTestDemoConfig {
15 |
16 | public static void main(String[] args) {
17 | SpringApplication.run(StartTestDemoConfig.class, args);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/test/java/com/pddon/framework/easyapi/client/request/CurrencyType.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client.request;
2 |
3 | /**
4 | * @ClassName: CurrencyType
5 | * @Description: 币种类型
6 | * 标价币种,该参数的值为支付时传入的trans_currency,支持英镑:GBP、港币:HKD、美元:USD、新加坡元:SGD、日元:JPY、加拿大元:CAD、澳元:AUD、欧元:EUR、新西兰元:NZD、韩元:KRW、泰铢:THB、瑞士法郎:CHF、瑞典克朗:SEK、丹麦克朗:DKK、挪威克朗:NOK、马来西亚林吉特:MYR、印尼卢比:IDR、菲律宾比索:PHP、毛里求斯卢比:MUR、以色列新谢克尔:ILS、斯里兰卡卢比:LKR、俄罗斯卢布:RUB、阿联酋迪拉姆:AED、捷克克朗:CZK、南非兰特:ZAR、人民币:CNY、新台币:TWD。当trans_currency 和 settle_currency 不一致时,trans_currency支持人民币:CNY、新台币:TWD
7 | * @Author: Allen
8 | * @Date: 2024-02-28 17:17
9 | * @Addr: https://pddon.cn
10 | */
11 | public enum CurrencyType {
12 | /**
13 | * 人民币
14 | */
15 | CNY,
16 | /**
17 | * 美元
18 | */
19 | USD,
20 | /**
21 | * 港币
22 | */
23 | HKD,
24 | /**
25 | * 日元
26 | */
27 | JPY,
28 | /**
29 | * 欧元
30 | */
31 | EUR
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/test/java/com/pddon/framework/easyapi/client/request/PrePayRequest.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client.request;
2 |
3 | import lombok.Builder;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | import java.io.Serializable;
8 | import java.util.Map;
9 |
10 | /**
11 | * @ClassName: PrePayRequest
12 | * @Description: 支付预下单请求参数
13 | * @Author: Allen
14 | * @Date: 2024-03-02 23:17
15 | * @Addr: https://pddon.cn
16 | */
17 | @Data
18 | @Builder
19 | @Accessors(chain = true)
20 | public class PrePayRequest implements Serializable {
21 | private Integer totalAmount;
22 | private CurrencyType currency;
23 | private String description;
24 | private String notifyUrl;
25 | private String appId;
26 | private String userId;
27 | private String userNickname;
28 | private String orderId;
29 | private Integer originalAmount;
30 | private String productInfo;
31 | private Map extParams;
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/test/java/com/pddon/framework/easyapi/client/request/TradeIdRequest.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client.request;
2 |
3 | import lombok.Builder;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | import java.io.Serializable;
8 |
9 | /**
10 | * @ClassName: TradeIdRequest
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-03-03 02:49
14 | * @Addr: https://pddon.cn
15 | */
16 | @Data
17 | @Builder
18 | @Accessors(chain = true)
19 | public class TradeIdRequest implements Serializable {
20 |
21 | private String appId;
22 |
23 | private String orderId;
24 |
25 | private String outTradeNo;
26 | }
27 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-client/src/test/java/com/pddon/framework/easyapi/client/response/AppPreOrderResponse.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.client.response;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.io.Serializable;
7 |
8 | /**
9 | * @ClassName: AppPreOrderResponse
10 | * @Description: 预下单返回信息
11 | * @Author: Allen
12 | * @Date: 2024-03-03 00:10
13 | * @Addr: https://pddon.cn
14 | */
15 | @Data
16 | @Accessors(chain = true)
17 | public class AppPreOrderResponse implements Serializable {
18 | /**
19 | * 支付中心交易流水号
20 | */
21 | private String outTradeNo;
22 | /**
23 | * 业务系统订单号
24 | */
25 | private String orderId;
26 | /**
27 | * 支付收银台地址
28 | */
29 | private String redirectUrl;
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/DepartmentDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | /**
4 | * @ClassName: DepartmentDao
5 | * @Description:
6 | * @Author: Allen
7 | * @Date: 2025-04-27 23:07
8 | * @Addr: https://pddon.cn
9 | */
10 | public interface DepartmentDao {
11 | }
12 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/DictGroupDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.dto.request.DictGroupListRequest;
5 | import com.pddon.framework.easyapi.dao.entity.DictGroup;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: DictGroupDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-05-10 00:55
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface DictGroupDao {
17 | List getByParentDictGroupId(String parentId);
18 |
19 | boolean existsGroupId(String groupId);
20 |
21 | DictGroup getByGroupId(String groupId);
22 |
23 | IPage pageQuery(DictGroupListRequest req);
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/EmailSendRecordDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.pddon.framework.easyapi.dao.entity.EmailSendRecord;
4 |
5 | /**
6 | * @ClassName: EmailSendRecordDao
7 | * @Description:
8 | * @Author: Allen
9 | * @Date: 2024-07-01 10:26
10 | * @Addr: https://pddon.cn
11 | */
12 | public interface EmailSendRecordDao {
13 | void saveItem(EmailSendRecord record);
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/EmailTemplateDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.pddon.framework.easyapi.dao.entity.EmailTemplate;
4 |
5 | /**
6 | * @ClassName: EmailTemplateDao
7 | * @Description:
8 | * @Author: Allen
9 | * @Date: 2024-05-29 12:22
10 | * @Addr: https://pddon.cn
11 | */
12 | public interface EmailTemplateDao {
13 | EmailTemplate getByScene(String sceneId, String resourceId);
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/FileItemDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.pddon.framework.easyapi.dao.entity.FileItem;
4 |
5 | /**
6 | * @ClassName: FileItemDao
7 | * @Description:
8 | * @Author: Allen
9 | * @Date: 2024-06-24 18:05
10 | * @Addr: https://pddon.cn
11 | */
12 | public interface FileItemDao {
13 | boolean saveItem(FileItem fileItem);
14 |
15 | FileItem getByTypeKey(String fileType, String fileKey);
16 |
17 | boolean removeByKey(String fileKey);
18 | }
19 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/HtmlPageDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.dto.request.HtmlPageListRequest;
5 | import com.pddon.framework.easyapi.dao.entity.HtmlPage;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: HtmlPageDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-05-29 12:22
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface HtmlPageDao {
17 | HtmlPage getByPagePath(String pagePath);
18 |
19 | List getListBySceneId(String sceneId, String resourceId);
20 |
21 | List getListByKeyword(String sceneId, String keyword);
22 |
23 | IPage pageQuery(HtmlPageListRequest req);
24 |
25 | HtmlPage getByItemId(Long id);
26 | }
27 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/HtmlSegmentDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | /**
4 | * @ClassName: HtmlSegmentDao
5 | * @Description:
6 | * @Author: Allen
7 | * @Date: 2024-05-29 12:22
8 | * @Addr: https://pddon.cn
9 | */
10 | public interface HtmlSegmentDao {
11 | }
12 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/annotation/EnableEasyApiDao.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title EnableEasyApiDao.java
3 | * Description
4 | * @author Allen
5 | * @date Mar 13, 2024
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dao.annotation;
10 |
11 | import com.pddon.framework.easyapi.dao.config.DruidConfig;
12 | import com.pddon.framework.easyapi.dao.config.MybatisPlusConfig;
13 | import com.pddon.framework.easyapi.dao.config.RedisConfig;
14 | import org.springframework.context.annotation.Import;
15 |
16 | import java.lang.annotation.*;
17 |
18 | @Target({ElementType.TYPE})
19 | @Retention(RetentionPolicy.RUNTIME)
20 | @Documented
21 | @Inherited
22 | //添加mybatis插件支持,包含乐观锁、逻辑删除、分页等插件,引入redis配置、druid连接池配置
23 | //@Import({MybatisPlusConfig.class, RedisConfig.class, DruidConfig.class})
24 | @Import({MybatisPlusConfig.class, RedisConfig.class}) //支持多数据源后移除单druid数据源配置
25 | public @interface EnableEasyApiDao {
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/annotation/IgnoreTenant.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title IgnoreTenant.java
3 | * Description 租户表需要忽略的字段
4 | * @author danyuan
5 | * @date Nov 8, 2024
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dao.annotation;
10 |
11 | import java.lang.annotation.*;
12 |
13 | /**
14 | * 被标注的实体类视为非租户表,被标注的业务类或方法下sql自动忽略租户过滤条件
15 | */
16 | @Target({ElementType.TYPE, ElementType.METHOD})
17 | @Retention(RetentionPolicy.RUNTIME)
18 | @Documented
19 | public @interface IgnoreTenant {
20 | boolean value() default true;
21 | }
22 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/consts/FileStoreType.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.consts;
2 |
3 | /**
4 | * @ClassName: FileStoreType
5 | * @Description: 文件数据存储类型
6 | * @Author: Allen
7 | * @Date: 2024-06-24 17:06
8 | * @Addr: https://pddon.cn
9 | */
10 | public enum FileStoreType {
11 | /**
12 | * 存储在数据库中
13 | */
14 | IN_DB,
15 | ALI_CLOUD_OSS,
16 | AWS_S3;
17 | }
18 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/consts/HtmlPageStatus.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.consts;
2 |
3 | /**
4 | * @ClassName: HtmlPageStatus
5 | * @Description: 页面状态
6 | * @Author: Allen
7 | * @Date: 2024-05-29 12:03
8 | * @Addr: https://pddon.cn
9 | */
10 | public enum HtmlPageStatus {
11 | /**
12 | * 编辑中
13 | */
14 | EDIT,
15 | /**
16 | * 已完成
17 | */
18 | COMPLETE,
19 | /**
20 | * 已部署
21 | */
22 | DEPLOYED,
23 | /**
24 | * 已下线
25 | */
26 | OFFLINE;
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/consts/PageContentType.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.consts;
2 |
3 | /**
4 | * @ClassName: PageContentType
5 | * @Description: 页面内容类型
6 | * @Author: Allen
7 | * @Date: 2024-05-29 11:47
8 | * @Addr: https://pddon.cn
9 | */
10 | public enum PageContentType {
11 | HTML,
12 | MARKDOWN,
13 | TEXT
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/consts/UserAccountStatus.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.consts;
2 |
3 | /**
4 | * @ClassName: UserAccountStatus
5 | * @Description: 用户账号状态
6 | * @Author: Allen
7 | * @Date: 2024-04-15 22:18
8 | * @Addr: https://pddon.cn
9 | */
10 | public enum UserAccountStatus {
11 |
12 | /**
13 | * 正常使用状态
14 | */
15 | ACTIVE,
16 | /**
17 | * 被冻结,无法使用
18 | */
19 | FROZEN,
20 | /**
21 | * 被禁用,无法使用
22 | */
23 | DISABLE
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/consts/UserKeyType.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.consts;
2 |
3 | /**
4 | * @ClassName: UserKeyType
5 | * @Description:
6 | * @Author: Allen
7 | * @Date: 2024-04-27 14:34
8 | * @Addr: https://pddon.cn
9 | */
10 | public enum UserKeyType {
11 | USER_ID,
12 | USERNAME,
13 | NICKNAME,
14 | EMAIL,
15 | PHONE,
16 | INTRO
17 | }
18 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/dto/DataPermDto.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.dto;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import java.io.Serializable;
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: DataPermDto
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2025-04-30 23:21
14 | * @Addr: https://pddon.cn
15 | */
16 | @Data
17 | @Accessors(chain = true)
18 | public class DataPermDto implements Serializable {
19 | private String permId;
20 |
21 | /**
22 | * 资源所属类型,默认为:TABLE 数据库表
23 | * @author pddon.com
24 | */
25 | private String resType;
26 |
27 | /**
28 | * 例如:数据库表名
29 | * @author pddon.com
30 | */
31 | private String resName;
32 |
33 | /**
34 | * 例如:数据库字段
35 | * @author pddon.com
36 | */
37 | private String resField;
38 |
39 | private List values;
40 | }
41 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/dto/request/DictGroupListRequest.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.dto.request;
2 |
3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | import javax.validation.constraints.NotEmpty;
8 |
9 | /**
10 | * @ClassName: DictGroupListRequest
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-04-23 22:04
14 | * @Addr: https://pddon.cn
15 | */
16 | @Data
17 | @Accessors(chain = true)
18 | public class DictGroupListRequest extends PaginationRequest {
19 |
20 | private String tenantId;
21 | private String groupId;
22 | /**
23 | * 父分组Id
24 | */
25 | private String parentGroupId;
26 |
27 | private String keyword;
28 | }
29 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/dto/request/DictListRequest.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.dto.request;
2 |
3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest;
4 | import lombok.Data;
5 | import lombok.experimental.Accessors;
6 |
7 | import javax.validation.constraints.NotEmpty;
8 |
9 | /**
10 | * @ClassName: DictListRequest
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-04-23 22:04
14 | * @Addr: https://pddon.cn
15 | */
16 | @Data
17 | @Accessors(chain = true)
18 | public class DictListRequest extends PaginationRequest {
19 |
20 | private String dictId;
21 | private String tenantId;
22 | /**
23 | * 字典所属应用ID
24 | * @author pddon.com
25 | */
26 | private String dictAppId;
27 | /**
28 | * 字典所属用户ID
29 | * @author pddon.com
30 | */
31 | private String dictUserId;
32 | /**
33 | * 字典分组ID
34 | * @author pddon.com
35 | */
36 | private String groupId;
37 |
38 | private String keyword;
39 | }
40 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/dto/request/UpdateItemFlagRequest.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.dto.request;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import javax.validation.constraints.NotNull;
7 | import java.io.Serializable;
8 |
9 | /**
10 | * @ClassName: UpdateItemFlagRequest
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-04-28 16:13
14 | * @Addr: https://pddon.cn
15 | */
16 | @Data
17 | @Accessors(chain = true)
18 | public class UpdateItemFlagRequest implements Serializable {
19 | @NotNull
20 | private Long id;
21 | @NotNull
22 | private Boolean flag;
23 | }
24 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/dto/request/UpdateUserPassRequest.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.dto.request;
2 |
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | import javax.validation.constraints.NotEmpty;
7 | import javax.validation.constraints.NotNull;
8 | import java.io.Serializable;
9 | import java.util.Date;
10 | import java.util.Set;
11 |
12 | /**
13 | * @ClassName: UpdateUserPassRequest
14 | * @Description:
15 | * @Author: Allen
16 | * @Date: 2024-04-27 19:04
17 | * @Addr: https://pddon.cn
18 | */
19 | @Data
20 | @Accessors(chain = true)
21 | public class UpdateUserPassRequest implements Serializable {
22 | @NotEmpty
23 | private String password;
24 | @NotEmpty
25 | private String newPassword;
26 | }
27 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/dto/request/UserListRequest.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.dto.request;
2 |
3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest;
4 | import com.pddon.framework.easyapi.dao.consts.UserKeyType;
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | import java.util.Date;
9 | import java.util.List;
10 |
11 | /**
12 | * @ClassName: UserListRequest
13 | * @Description:
14 | * @Author: Allen
15 | * @Date: 2024-04-23 22:04
16 | * @Addr: https://pddon.cn
17 | */
18 | @Data
19 | @Accessors(chain = true)
20 | public class UserListRequest extends PaginationRequest {
21 | /**
22 | * 应用所属渠道ID(租户ID)
23 | * @author pddon.com
24 | */
25 | private String tenantId;
26 | private String accountStatus;
27 | private UserKeyType type;
28 | /**
29 | * 部门ID
30 | */
31 | private Long depId;
32 | private List userIds;
33 | private String keyword;
34 | private Date startTime;
35 |
36 | private Date endTime;
37 | }
38 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/entity/BaseEntity.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.entity;
2 | import com.baomidou.mybatisplus.annotation.TableLogic;
3 | import lombok.Data;
4 | import lombok.experimental.Accessors;
5 |
6 | @Data
7 | @Accessors(chain=true)
8 | public class BaseEntity extends BaseHardEntity {
9 | /**
10 | * 逻辑删除控制
11 | * @author pddon.com
12 | */
13 | @TableLogic
14 | private Boolean deleted;
15 | }
16 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/entity/BaseHardTenantEntity.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.entity;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 | import lombok.ToString;
6 | import lombok.experimental.Accessors;
7 |
8 |
9 | /**
10 | * 用户账号信息
11 | * @author pddon.com
12 | */
13 | @Getter
14 | @Setter
15 | @ToString
16 | @Accessors(chain=true)
17 | public class BaseHardTenantEntity extends BaseHardEntity{
18 | /**
19 | * 应用所属渠道ID(租户ID)
20 | * @author pddon.com
21 | */
22 | private String tenantId;
23 |
24 | }
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/entity/BaseTenantEntity.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.entity;
2 |
3 | import lombok.Getter;
4 | import lombok.Setter;
5 | import lombok.ToString;
6 | import lombok.experimental.Accessors;
7 |
8 |
9 | /**
10 | * 用户账号信息
11 | * @author pddon.com
12 | */
13 | @Getter
14 | @Setter
15 | @ToString
16 | @Accessors(chain=true)
17 | public class BaseTenantEntity extends BaseEntity{
18 | /**
19 | * 应用所属渠道ID(租户ID)
20 | * @author pddon.com
21 | */
22 | private String tenantId;
23 |
24 | }
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/impl/DepartmentDaoImpl.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.pddon.framework.easyapi.dao.DepartmentDao;
5 | import com.pddon.framework.easyapi.dao.entity.Department;
6 | import com.pddon.framework.easyapi.dao.mapper.DepartmentMapper;
7 | import lombok.extern.slf4j.Slf4j;
8 | import org.springframework.stereotype.Repository;
9 |
10 | /**
11 | * @ClassName: DepartmentDaoImpl
12 | * @Description:
13 | * @Author: Allen
14 | * @Date: 2025-04-27 23:07
15 | * @Addr: https://pddon.cn
16 | */
17 | @Repository
18 | @Slf4j
19 | public class DepartmentDaoImpl extends ServiceImpl implements DepartmentDao {
20 |
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/impl/EmailSendRecordDaoImpl.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.pddon.framework.easyapi.dao.EmailSendRecordDao;
5 | import com.pddon.framework.easyapi.dao.entity.EmailSendRecord;
6 | import com.pddon.framework.easyapi.dao.mapper.EmailSendRecordMapper;
7 | import lombok.extern.slf4j.Slf4j;
8 | import org.springframework.stereotype.Repository;
9 |
10 | /**
11 | * @ClassName: EmailSendRecordDaoImpl
12 | * @Description:
13 | * @Author: Allen
14 | * @Date: 2024-07-01 10:26
15 | * @Addr: https://pddon.cn
16 | */
17 | @Repository
18 | @Slf4j
19 | public class EmailSendRecordDaoImpl extends ServiceImpl implements EmailSendRecordDao {
20 | @Override
21 | public void saveItem(EmailSendRecord record) {
22 | this.save(record);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/impl/HtmlSegmentDaoImpl.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.impl;
2 |
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 | import com.pddon.framework.easyapi.dao.HtmlSegmentDao;
5 | import com.pddon.framework.easyapi.dao.entity.DictItem;
6 | import com.pddon.framework.easyapi.dao.entity.HtmlPage;
7 | import com.pddon.framework.easyapi.dao.entity.HtmlSegment;
8 | import com.pddon.framework.easyapi.dao.mapper.DictItemMapper;
9 | import com.pddon.framework.easyapi.dao.mapper.HtmlPageMapper;
10 | import com.pddon.framework.easyapi.dao.mapper.HtmlSegmentMapper;
11 | import lombok.extern.slf4j.Slf4j;
12 | import org.springframework.stereotype.Repository;
13 |
14 | /**
15 | * @ClassName: HtmlSegmentDaoImpl
16 | * @Description:
17 | * @Author: Allen
18 | * @Date: 2024-05-29 19:34
19 | * @Addr: https://pddon.cn
20 | */
21 | @Repository
22 | @Slf4j
23 | public class HtmlSegmentDaoImpl extends ServiceImpl implements HtmlSegmentDao {
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/BaseApplicationConfigMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.BaseApplicationConfig;
5 |
6 | /**
7 | * @ClassName: BaseApplicationConfigMapper
8 | * @Description:
9 | * @Author: Allen
10 | * @Date: 2024-04-09 21:59
11 | * @Addr: https://pddon.cn
12 | */
13 | public interface BaseApplicationConfigMapper extends BaseMapper {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/BaseUserMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.BaseUser;
5 |
6 | /**
7 | * @ClassName: BaseApplicationConfigMapper
8 | * @Description:
9 | * @Author: Allen
10 | * @Date: 2024-04-09 21:59
11 | * @Addr: https://pddon.cn
12 | */
13 | public interface BaseUserMapper extends BaseMapper {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/DepartmentMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.Department;
5 |
6 | /**
7 | * @ClassName: DepartmentMapper
8 | * @Description:
9 | * @Author: Allen
10 | * @Date: 2024-06-24 18:04
11 | * @Addr: https://pddon.cn
12 | */
13 | public interface DepartmentMapper extends BaseMapper {
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/DictGroupMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.DictGroup;
5 |
6 | /**
7 | * @ClassName: DictGroupMapper
8 | * @Description:
9 | * @Author: Allen
10 | * @Date: 2024-04-09 21:59
11 | * @Addr: https://pddon.cn
12 | */
13 | public interface DictGroupMapper extends BaseMapper {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/DictItemMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.DictItem;
5 |
6 | /**
7 | * @ClassName: DictItemMapper
8 | * @Description:
9 | * @Author: Allen
10 | * @Date: 2024-04-09 21:59
11 | * @Addr: https://pddon.cn
12 | */
13 | public interface DictItemMapper extends BaseMapper {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/EmailSendRecordMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.EmailSendRecord;
5 |
6 | /**
7 | * @ClassName: EmailSendRecordMapper
8 | * @Description:
9 | * @Author: Allen
10 | * @Date: 2024-07-01 10:25
11 | * @Addr: https://pddon.cn
12 | */
13 | public interface EmailSendRecordMapper extends BaseMapper {
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/EmailTemplateMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.EmailTemplate;
5 | import com.pddon.framework.easyapi.dao.entity.HtmlPage;
6 |
7 | /**
8 | * @ClassName: EmailTemplateMapper
9 | * @Description:
10 | * @Author: Allen
11 | * @Date: 2024-05-29 21:59
12 | * @Addr: https://pddon.cn
13 | */
14 | public interface EmailTemplateMapper extends BaseMapper {
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/FileItemMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.FileItem;
5 |
6 | /**
7 | * @ClassName: FileItemMapper
8 | * @Description:
9 | * @Author: Allen
10 | * @Date: 2024-06-24 18:04
11 | * @Addr: https://pddon.cn
12 | */
13 | public interface FileItemMapper extends BaseMapper {
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/HtmlPageMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.DictItem;
5 | import com.pddon.framework.easyapi.dao.entity.HtmlPage;
6 |
7 | /**
8 | * @ClassName: HtmlPageMapper
9 | * @Description:
10 | * @Author: Allen
11 | * @Date: 2024-05-29 21:59
12 | * @Addr: https://pddon.cn
13 | */
14 | public interface HtmlPageMapper extends BaseMapper {
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/HtmlSegmentMapper.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.pddon.framework.easyapi.dao.entity.HtmlPage;
5 | import com.pddon.framework.easyapi.dao.entity.HtmlSegment;
6 |
7 | /**
8 | * @ClassName: HtmlSegmentMapper
9 | * @Description:
10 | * @Author: Allen
11 | * @Date: 2024-05-29 21:59
12 | * @Addr: https://pddon.cn
13 | */
14 | public interface HtmlSegmentMapper extends BaseMapper {
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/java/com/pddon/framework/easyapi/dao/utils/RedisCallback.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao.utils;
2 |
3 | import redis.clients.jedis.Jedis;
4 |
5 | public interface RedisCallback {
6 |
7 | Object doWithRedis(Jedis jedis);
8 | }
9 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/resources/mybatis/mappers/Department.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/resources/mybatis/mappers/DictGroup.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/resources/mybatis/mappers/DictItem.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/resources/mybatis/mappers/EmailSendRecord.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/resources/mybatis/mappers/EmailTemplate.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/resources/mybatis/mappers/FileItem.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/resources/mybatis/mappers/HtmlPage.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-dao/src/main/resources/mybatis/mappers/HtmlSegment.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/README.md:
--------------------------------------------------------------------------------
1 | easy-spring-boot-api框架特性介绍完整示例
2 |
3 | #### 1、简介
4 |
5 | > 此项目用于演示easyapi提供的大部分功能,着重介绍特性,不做深入细节演示,如果需要更深入的理解和使用,请参考[更多示例](../doc/demos.md)。
6 | >
7 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/controller/TestResourceController.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title TestResourceController.java
3 | * Description 测试获取静态资源接口
4 | * @author danyuan
5 | * @date Dec 20, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.controller;
10 |
11 | import io.swagger.annotations.Api;
12 |
13 | import org.springframework.stereotype.Controller;
14 | import org.springframework.web.bind.annotation.GetMapping;
15 | import org.springframework.web.servlet.ModelAndView;
16 |
17 | import com.pddon.framework.easyapi.utils.StringUtils;
18 |
19 |
20 | @Controller
21 | @Api(tags="测试获取静态资源")
22 | public class TestResourceController {
23 |
24 | @GetMapping("testGetDocument")
25 | public ModelAndView testGetDocument(String resourcePath){
26 | if(StringUtils.isBlank(resourcePath)){
27 | resourcePath = "doc.html";
28 | }
29 | ModelAndView view = new ModelAndView();
30 | //view.setViewName("redirect:"+resourcePath);
31 | view.setViewName(resourcePath);
32 | return view;
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/controller/dto/AccountInfo.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title AccountInfo.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.controller.dto;
10 |
11 | import java.io.Serializable;
12 | import java.math.BigDecimal;
13 |
14 | import lombok.Data;
15 |
16 | @Data
17 | public class AccountInfo implements Serializable{/**
18 | *serialVersionUID
19 | */
20 | private static final long serialVersionUID = 1L;
21 |
22 | private String account;
23 |
24 | private BigDecimal amount;
25 |
26 | private BigDecimal freezeAmount;
27 |
28 | private String note;
29 | }
30 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/controller/dto/LanguageInfoDto.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title LanguageInfoDto.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 16, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.controller.dto;
10 |
11 | import java.io.Serializable;
12 |
13 | import com.pddon.framework.easyapi.annotation.LanguageTranslate;
14 |
15 | import lombok.AllArgsConstructor;
16 | import lombok.Data;
17 | import lombok.NoArgsConstructor;
18 |
19 | @Data
20 | @LanguageTranslate
21 | @AllArgsConstructor
22 | @NoArgsConstructor
23 | public class LanguageInfoDto implements Serializable{
24 |
25 | /**
26 | *serialVersionUID
27 | */
28 | private static final long serialVersionUID = 1L;
29 |
30 | private String info;
31 |
32 | private String name;
33 |
34 | private int age;
35 | }
36 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/controller/dto/LanguageTranslateFieldTestDto.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title LanguageTranslateFieldTestDto.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 30, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.controller.dto;
10 |
11 | import java.io.Serializable;
12 |
13 | import com.pddon.framework.easyapi.annotation.LanguageTranslate;
14 |
15 | import lombok.AllArgsConstructor;
16 | import lombok.Data;
17 | import lombok.NoArgsConstructor;
18 |
19 | @Data
20 | @AllArgsConstructor
21 | @NoArgsConstructor
22 | public class LanguageTranslateFieldTestDto implements Serializable{/**
23 | *serialVersionUID
24 | */
25 | private static final long serialVersionUID = 1L;
26 |
27 | @LanguageTranslate
28 | private String info;//只对此字段做国际化翻译,使用当前上下文方言
29 |
30 | private String name;
31 |
32 | @LanguageTranslate(locale = "zh_CN")
33 | private String tags;//标签, 翻译成指定语言
34 | }
35 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/controller/dto/UserInfoDto.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title UserInfoDto.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 29, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.controller.dto;
10 |
11 | import java.io.Serializable;
12 | import java.util.List;
13 |
14 | import com.pddon.framework.easyapi.annotation.Encrypt;
15 | import com.pddon.framework.easyapi.annotation.IgnoreSign;
16 |
17 | import lombok.Data;
18 |
19 | @Data
20 | public class UserInfoDto implements Serializable{/**
21 | *serialVersionUID
22 | */
23 | private static final long serialVersionUID = 1L;
24 |
25 | private String username;
26 | @IgnoreSign
27 | private Integer age;
28 | @Encrypt
29 | private String desc;
30 |
31 | private List friends;
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/controller/request/CustomRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title CustomRequest.java
3 | * Description
4 | * @author danyuan
5 | * @date Dec 2, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.controller.request;
10 |
11 | import java.io.Serializable;
12 |
13 | import javax.validation.constraints.NotBlank;
14 |
15 | import lombok.Data;
16 |
17 | @Data
18 | public class CustomRequest implements Serializable{/**
19 | *serialVersionUID
20 | */
21 | private static final long serialVersionUID = 1L;
22 |
23 | private String clientId;
24 | @NotBlank
25 | private String locale;
26 |
27 | private String appName;
28 | @NotBlank
29 | private String countryCode;
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/controller/request/SignTestRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SignTestRequest.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.controller.request;
10 |
11 | import java.io.Serializable;
12 | import java.util.List;
13 | import java.util.Map;
14 |
15 | import javax.validation.constraints.NotEmpty;
16 | import javax.validation.constraints.NotNull;
17 |
18 | import lombok.Data;
19 |
20 | @Data
21 | public class SignTestRequest implements Serializable{/**
22 | *serialVersionUID
23 | */
24 | private static final long serialVersionUID = 1L;
25 | @NotEmpty
26 | private String name;
27 | private boolean sex;
28 | private Integer age;
29 | @NotNull
30 | private Map tags;
31 | private List likes;
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/controller/response/SignTestResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SignTestResponse.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.controller.response;
10 |
11 | import java.io.Serializable;
12 |
13 | import javax.validation.constraints.NotEmpty;
14 | import javax.validation.constraints.NotNull;
15 |
16 | import com.pddon.framework.demo.easyapi.controller.dto.AccountInfo;
17 |
18 | import lombok.Data;
19 |
20 | @Data
21 | public class SignTestResponse implements Serializable{/**
22 | *serialVersionUID
23 | */
24 | private static final long serialVersionUID = 1L;
25 |
26 | private String desc;
27 | private String phone;
28 | private AccountInfo account;
29 | @NotEmpty
30 | private String test;
31 | @NotNull
32 | private Integer age;
33 | }
34 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/java/com/pddon/framework/demo/easyapi/startup/Startup.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title Startup.java
3 | * Description
4 | * @author danyuan
5 | * @date Oct 31, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.demo.easyapi.startup;
10 |
11 | import org.springframework.boot.SpringApplication;
12 | import org.springframework.boot.autoconfigure.SpringBootApplication;
13 | import org.springframework.context.annotation.ComponentScan;
14 |
15 | import com.pddon.framework.easyapi.annotation.EnableEasyApi;
16 |
17 | @SpringBootApplication
18 | @EnableEasyApi
19 | @ComponentScan("com.pddon.framework.demo.easyapi")
20 | public class Startup {
21 |
22 | public static void main(String[] args) {
23 | SpringApplication.run(Startup.class, args);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/resources/i18n/messages/messages.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/easy-spring-boot-api-demo/src/main/resources/i18n/messages/messages.properties
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/resources/i18n/messages/messages_en_US.properties:
--------------------------------------------------------------------------------
1 | USER_ACCOUNT_NOT_FOUND=Sorry , The user account[{0}] not found, please check your input.
2 | ACCOUNT_NOT_FOUND=Sorry , The bank account[{0}] is invalid, please check your input.
3 | danyuan.info=The universe is invincible, handsome boy!
4 | danyuan.tags=Sunshine, positive, love life, embrace change, understand tolerance
5 |
6 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/resources/i18n/messages/messages_zh_CN.properties:
--------------------------------------------------------------------------------
1 | USER_ACCOUNT_NOT_FOUND=\u5bf9\u4e0d\u8d77\uff0c\u4f60\u8f93\u5165\u7684\u8d26\u53f7[{0}]\u6ca1\u6709\u627e\u5230,\u8bf7\u68c0\u67e5\u4e0b\u4f60\u7684\u8d26\u53f7\u54e6\uff01
2 | ACCOUNT_NOT_FOUND=\u5bf9\u4e0d\u8d77\uff0c\u4f60\u7684\u94f6\u884c\u8d26\u6237[{0}]\u8f93\u5165\u9519\u8bef\uff0c\u8bf7\u6838\u5bf9\uff01
3 | #system.invalidParam=\u8fd9\u662f\u65e0\u6548\u53c2\u6570{0}[{1}]
4 | danyuan.info=\u5b87\u5b99\u65e0\u654c\u5e05\u5c0f\u4f19\uff01
5 | danyuan.tags=\u9633\u5149\uff0c\u79ef\u6781\u5411\u4e0a\uff0c\u70ed\u7231\u751f\u6d3b\uff0c\u62e5\u62b1\u53d8\u5316\uff0c\u61c2\u5f97\u5bb9\u5fcd
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/main/resources/scripts/serverStatus.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | APP_MAIN=com.pddon.framework.demo.easyapi.startup.Startup
3 | PID=0
4 |
5 | getPID(){
6 | javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAIN`
7 | if [ -n "$javaps" ]; then
8 | PID=`echo $javaps | awk '{print $1}'`
9 | else
10 | PID=0
11 | fi
12 | }
13 |
14 | getServerStatus(){
15 | getPID
16 | echo "================================================================================================================"
17 | if [ $PID -ne 0 ]; then
18 | echo "$APP_MAIN is running(PID=$PID)"
19 | echo "================================================================================================================"
20 | else
21 | echo "$APP_MAIN is not running"
22 | echo "================================================================================================================"
23 | fi
24 | }
25 | getServerStatus
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/test/java/com/pddon/framework/easyapi/dto/ComplextRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ComplextRequest.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 | import java.util.List;
13 | import java.util.Map;
14 |
15 | import lombok.Data;
16 |
17 | @Data
18 | public class ComplextRequest implements Serializable{/**
19 | *serialVersionUID
20 | */
21 | private static final long serialVersionUID = 1L;
22 |
23 | public String test="aaa";
24 |
25 | public boolean flag = true;
26 |
27 | private List skuList;
28 |
29 | private Map skuTagMap;
30 |
31 | private int totalSku;
32 |
33 | private String desc;
34 |
35 | private String[] introArr;
36 |
37 | public boolean isFlag(){
38 | return flag;
39 | }
40 |
41 | public String isTest(){
42 | return test;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/test/java/com/pddon/framework/easyapi/dto/ComplextResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title ComplextResponse.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 | import java.math.BigDecimal;
13 |
14 | import lombok.AllArgsConstructor;
15 | import lombok.Data;
16 | import lombok.NoArgsConstructor;
17 |
18 | @Data
19 | @AllArgsConstructor
20 | @NoArgsConstructor
21 | public class ComplextResponse implements Serializable{/**
22 | *serialVersionUID
23 | */
24 | private static final long serialVersionUID = 1L;
25 | private String desc;
26 | private long timestamp;
27 | private boolean sex;
28 | private BigDecimal price;
29 | private Integer total;
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/test/java/com/pddon/framework/easyapi/dto/SkuCurrency.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SkuCurrency.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 | import java.math.BigDecimal;
13 |
14 | import lombok.AllArgsConstructor;
15 | import lombok.Data;
16 | import lombok.NoArgsConstructor;
17 |
18 | @Data
19 | @AllArgsConstructor
20 | @NoArgsConstructor
21 | public class SkuCurrency implements Serializable{
22 |
23 | /**
24 | *serialVersionUID
25 | */
26 | private static final long serialVersionUID = 1L;
27 |
28 | private String currency;
29 |
30 | private BigDecimal price;
31 | }
32 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-demo/src/test/java/com/pddon/framework/easyapi/dto/SkuItem.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Title SkuItem.java
3 | * Description
4 | * @author danyuan
5 | * @date Nov 14, 2020
6 | * @version 1.0.0
7 | * site: pddon.cn
8 | */
9 | package com.pddon.framework.easyapi.dto;
10 |
11 | import java.io.Serializable;
12 | import java.math.BigDecimal;
13 | import java.util.List;
14 |
15 | import lombok.AllArgsConstructor;
16 | import lombok.Data;
17 | import lombok.NoArgsConstructor;
18 |
19 | @Data
20 | @AllArgsConstructor
21 | @NoArgsConstructor
22 | public class SkuItem implements Serializable{/**
23 | *serialVersionUID
24 | */
25 | private static final long serialVersionUID = 1L;
26 | private Integer skuId;
27 | private String skuName;
28 | private BigDecimal price;
29 | private List priceList;
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/consts/PartnerStatus.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.consts;
2 |
3 | /**
4 | * @ClassName: PartnerStatus
5 | * @Description: 商户状态
6 | * @Author: Allen
7 | * @Date: 2024-04-23 23:43
8 | * @Addr: https://pddon.cn
9 | */
10 | public enum PartnerStatus {
11 | TEST,
12 | ACTIVE,
13 | DISABLE;
14 | }
15 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/DataPermissionMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.entity.DataPermission;
5 | import com.pddon.framework.easyapi.dto.req.DataPermissionListRequest;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: DataPermissionMntDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2025-04-28 11:43
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface DataPermissionMntDao {
17 | boolean saveItem(DataPermission dataPermission);
18 |
19 | DataPermission getByItemId(Long id);
20 |
21 | boolean updateByItemId(DataPermission dataPermission);
22 |
23 | boolean removeByIds(List ids);
24 |
25 | IPage pageQuery(DataPermissionListRequest req);
26 |
27 | boolean exists(String permId);
28 |
29 | List getByPermIds(List permIds, String queryType);
30 |
31 | DataPermission getByPermId(String permId);
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/DepartmentMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.entity.Department;
5 | import com.pddon.framework.easyapi.dto.req.DepartmentListRequest;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: DepartmentMntDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2025-04-28 00:24
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface DepartmentMntDao {
17 | boolean saveItem(Department department);
18 |
19 | Department getByItemId(Long id);
20 |
21 | boolean updateByItemId(Department department);
22 |
23 | boolean removeByIds(List ids);
24 |
25 | IPage pageQuery(DepartmentListRequest req);
26 |
27 | List listItems(String tenantId, Long parentId);
28 |
29 | boolean top(Integer id);
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/DictGroupMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.entity.DictGroup;
5 | import com.pddon.framework.easyapi.dao.dto.request.DictGroupListRequest;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: DictGroupMntDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-05-10 00:58
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface DictGroupMntDao extends DictGroupDao {
17 | boolean exists(String groupId);
18 |
19 | boolean exists(Long id);
20 |
21 | boolean exists(Long id, String groupId);
22 |
23 | boolean saveItem(DictGroup item);
24 |
25 | DictGroup getByItemId(Long id);
26 |
27 | boolean updateByItemId(DictGroup item);
28 |
29 | boolean removeByIds(List asList);
30 |
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/EmailSendRecordMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.dto.req.EmailRecordListRequest;
5 | import com.pddon.framework.easyapi.dao.entity.EmailSendRecord;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: EmailSendRecordMntDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-07-01 10:28
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface EmailSendRecordMntDao {
17 | EmailSendRecord getByItemId(Long id);
18 |
19 | IPage pageQuery(EmailRecordListRequest req);
20 |
21 | boolean removeByIds(List ids);
22 | }
23 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/EmailTemplateMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.entity.EmailTemplate;
5 | import com.pddon.framework.easyapi.dto.req.EmailTemplateListRequest;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: EmailTemplateMntDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-05-29 23:36
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface EmailTemplateMntDao {
17 | boolean exists(String sceneId, String resourceId);
18 |
19 | boolean saveItem(EmailTemplate item);
20 |
21 | EmailTemplate getByItemId(Long id);
22 |
23 | boolean updateByItemId(EmailTemplate item);
24 |
25 | boolean removeByIds(List asList);
26 |
27 | IPage pageQuery(EmailTemplateListRequest req);
28 | }
29 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/FileItemMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.entity.FileItem;
5 | import com.pddon.framework.easyapi.dto.req.FileListRequest;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: FileItemMntDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-06-25 21:42
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface FileItemMntDao {
17 | boolean removeByIds(List ids);
18 |
19 | IPage pageQuery(FileListRequest req);
20 |
21 | void saveItem(FileItem item);
22 |
23 | FileItem getByItemId(Long id);
24 |
25 | void updateByItemId(FileItem item);
26 |
27 | FileItem getByKey(String fileKey);
28 | }
29 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/HtmlPageMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.entity.HtmlPage;
5 | import com.pddon.framework.easyapi.dto.req.HtmlPageListRequest;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: HtmlPageMntDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-05-29 23:37
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface HtmlPageMntDao {
17 | boolean exists(String urlPath);
18 |
19 | boolean saveItem(HtmlPage page);
20 |
21 | HtmlPage getByItemId(Long id);
22 |
23 | boolean updateByItemId(HtmlPage page);
24 |
25 | boolean removeByIds(List asList);
26 |
27 | IPage pageQuery(HtmlPageListRequest req);
28 |
29 | void topPage(Long id);
30 | }
31 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/HtmlSegmentMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | /**
4 | * @ClassName: HtmlSegmentMntDao
5 | * @Description:
6 | * @Author: Allen
7 | * @Date: 2024-05-29 23:38
8 | * @Addr: https://pddon.cn
9 | */
10 | public interface HtmlSegmentMntDao {
11 | }
12 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/PartnerItemDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 |
4 | import com.baomidou.mybatisplus.core.metadata.IPage;
5 | import com.pddon.framework.easyapi.dao.entity.PartnerItem;
6 | import com.pddon.framework.easyapi.dto.req.PartnerListRequest;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * @ClassName: PartnerItemDao
12 | * @Description:
13 | * @Author: Allen
14 | * @Date: 2024-04-15 22:24
15 | * @Addr: https://pddon.cn
16 | */
17 | public interface PartnerItemDao {
18 |
19 | boolean saveItem(PartnerItem item);
20 |
21 | PartnerItem getByItemId(Long id);
22 |
23 | boolean updateByItemId(PartnerItem item);
24 |
25 | boolean removeByIds(List ids);
26 |
27 | IPage pageQuery(PartnerListRequest req);
28 |
29 | boolean existsTenantId(String tenantId);
30 |
31 | boolean updateStatus(Long id, String name);
32 | }
33 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/PermItemDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.baomidou.mybatisplus.core.metadata.IPage;
4 | import com.pddon.framework.easyapi.dao.entity.PermItem;
5 | import com.pddon.framework.easyapi.dto.req.PermListRequest;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @ClassName: PermItemDao
11 | * @Description:
12 | * @Author: Allen
13 | * @Date: 2024-04-15 22:24
14 | * @Addr: https://pddon.cn
15 | */
16 | public interface PermItemDao {
17 | List getAllPerms();
18 |
19 | List getByPermIds(List permIdList);
20 |
21 | boolean saveItem(PermItem item);
22 |
23 | PermItem geByItemId(String id);
24 |
25 | boolean updateByItemId(PermItem permItem);
26 |
27 | boolean removeByPermIds(String[] ids);
28 |
29 | IPage pageQuery(PermListRequest req);
30 |
31 | boolean existsPermId(String item);
32 |
33 | void saveItems(List perms);
34 | }
35 |
--------------------------------------------------------------------------------
/easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/RoleDataPermissionMntDao.java:
--------------------------------------------------------------------------------
1 | package com.pddon.framework.easyapi.dao;
2 |
3 | import com.pddon.framework.easyapi.dao.entity.RoleDataPermission;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * @ClassName: RoleDataPermissionMntDao
9 | * @Description:
10 | * @Author: Allen
11 | * @Date: 2025-04-28 11:43
12 | * @Addr: https://pddon.cn
13 | */
14 | public interface RoleDataPermissionMntDao {
15 | boolean deletePerms(String roleId, String permId, List