├── .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 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 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[] 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 values); 16 | 17 | List getByRoleIds(List roleIds); 18 | 19 | boolean saveItems(List perms); 20 | 21 | List getByPermId(String roleId, String permId); 22 | } 23 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/RolePermDao.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao; 2 | 3 | import com.pddon.framework.easyapi.dao.entity.RolePerm; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @ClassName: RolePermDao 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-15 22:24 12 | * @Addr: https://pddon.cn 13 | */ 14 | public interface RolePermDao { 15 | List getByRoleIds(List roleIds); 16 | 17 | void saveBatchItems(List rolePermList); 18 | 19 | boolean removeByRoleId(String roleId); 20 | 21 | boolean removeByRoleIds(String[] ids); 22 | } 23 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/UserDataPermissionMntDao.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao; 2 | 3 | import com.pddon.framework.easyapi.dao.entity.UserDataPermission; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @ClassName: UserDataPermissionMntDao 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2025-04-28 11:43 12 | * @Addr: https://pddon.cn 13 | */ 14 | public interface UserDataPermissionMntDao { 15 | boolean deletePerms(String userId, String permId, List values); 16 | 17 | List getByUserIds(List userIds); 18 | 19 | boolean saveItems(List perms); 20 | 21 | List getByUserId(String userId); 22 | 23 | List getByPermId(String userId, String permId); 24 | } 25 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/UserLoginRecordDao.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao; 2 | 3 | import com.pddon.framework.easyapi.dao.entity.UserLoginRecord; 4 | 5 | /** 6 | * @ClassName: UserLoginRecordDao 7 | * @Description: 8 | * @Author: Allen 9 | * @Date: 2024-04-15 22:24 10 | * @Addr: https://pddon.cn 11 | */ 12 | public interface UserLoginRecordDao { 13 | void addLoginRecord(UserLoginRecord record); 14 | } 15 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/UserOperateRecordDao.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.UserOperateRecord; 5 | import com.pddon.framework.easyapi.dto.req.OperateLogListRequest; 6 | 7 | /** 8 | * @ClassName: UserLoginRecordDao 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-15 22:24 12 | * @Addr: https://pddon.cn 13 | */ 14 | public interface UserOperateRecordDao { 15 | boolean saveLog(UserOperateRecord record); 16 | 17 | IPage pageQuery(OperateLogListRequest req); 18 | } 19 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/UserPermDao.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao; 2 | 3 | import com.pddon.framework.easyapi.dao.entity.PermItem; 4 | import com.pddon.framework.easyapi.dao.entity.UserPerm; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @ClassName: UserPermDao 10 | * @Description: 11 | * @Author: Allen 12 | * @Date: 2024-04-15 22:24 13 | * @Addr: https://pddon.cn 14 | */ 15 | public interface UserPermDao { 16 | List getPermsByUserId(String userId); 17 | 18 | boolean removeByUserId(String userId); 19 | 20 | boolean saveItems(List userPerms); 21 | } 22 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/UserRoleDao.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao; 2 | 3 | import com.pddon.framework.easyapi.dao.entity.UserRole; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @ClassName: UserRoleDao 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-15 22:24 12 | * @Addr: https://pddon.cn 13 | */ 14 | public interface UserRoleDao { 15 | 16 | List getRolesByUserId(String userId); 17 | 18 | boolean removeByUserId(String userId); 19 | 20 | boolean saveItems(List userRoles); 21 | } 22 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/entity/RolePerm.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import lombok.Getter; 7 | import lombok.Setter; 8 | import lombok.ToString; 9 | import lombok.experimental.Accessors; 10 | 11 | /** 12 | * 角色拥有的权限信息 13 | * @author pddon.cn 14 | */ 15 | @Getter 16 | @Setter 17 | @ToString 18 | @Accessors(chain=true) 19 | @TableName("role_perm") 20 | public class RolePerm extends BaseEntity{ 21 | /** 22 | * 记录ID 23 | * @author pddon.com 24 | */ 25 | @TableId(type = IdType.AUTO) 26 | private Long id; 27 | /** 28 | * 角色ID 29 | * @author pddon.com 30 | */ 31 | private String roleId; 32 | 33 | /** 34 | * 权限ID 35 | * @author pddon.com 36 | */ 37 | private String permId; 38 | 39 | } -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/entity/UserPerm.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import lombok.Getter; 7 | import lombok.Setter; 8 | import lombok.ToString; 9 | import lombok.experimental.Accessors; 10 | 11 | /** 12 | * 用户拥有的权限信息 13 | * @author pddon.cn 14 | */ 15 | @Getter 16 | @Setter 17 | @ToString 18 | @Accessors(chain=true) 19 | @TableName("user_perm") 20 | public class UserPerm extends BaseTenantEntity{ 21 | /** 22 | * 记录ID 23 | * @author pddon.com 24 | */ 25 | @TableId(type = IdType.AUTO) 26 | private Long id; 27 | /** 28 | * 用户ID 29 | * @author pddon.com 30 | */ 31 | private String userId; 32 | 33 | /** 34 | * 权限ID 35 | * @author pddon.com 36 | */ 37 | private String permId; 38 | 39 | } -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/entity/UserRole.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao.entity; 2 | 3 | import com.baomidou.mybatisplus.annotation.IdType; 4 | import com.baomidou.mybatisplus.annotation.TableId; 5 | import com.baomidou.mybatisplus.annotation.TableName; 6 | import lombok.Getter; 7 | import lombok.Setter; 8 | import lombok.ToString; 9 | import lombok.experimental.Accessors; 10 | 11 | /** 12 | * 用户拥有的角色信息 13 | * @author pddon.cn 14 | */ 15 | @Getter 16 | @Setter 17 | @ToString 18 | @Accessors(chain=true) 19 | @TableName("user_role") 20 | public class UserRole extends BaseTenantEntity{ 21 | /** 22 | * 记录ID 23 | * @author pddon.com 24 | */ 25 | @TableId(type = IdType.AUTO) 26 | private Long id; 27 | 28 | /** 29 | * 用户ID 30 | * @author pddon.com 31 | */ 32 | private String userId; 33 | 34 | /** 35 | * 角色ID 36 | * @author pddon.com 37 | */ 38 | private String roleId; 39 | 40 | } -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/impl/HtmlSegmentMntDaoImpl.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dao.impl; 2 | 3 | import com.pddon.framework.easyapi.dao.HtmlSegmentMntDao; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.stereotype.Service; 6 | 7 | /** 8 | * @ClassName: HtmlSegmentMntDaoImpl 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-05-29 23:39 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Service 15 | @Slf4j 16 | public class HtmlSegmentMntDaoImpl extends HtmlSegmentDaoImpl implements HtmlSegmentMntDao { 17 | } 18 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/DataPermissionMapper.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.DataPermission; 5 | 6 | /** 7 | * @ClassName: DataPermissionMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2025-04-28 11:37 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface DataPermissionMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/DataPermissionResourceMapper.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.DataPermissionResource; 5 | 6 | /** 7 | * @ClassName: DataPermissionResourceMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2025-04-28 11:37 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface DataPermissionResourceMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/PartnerItemMapper.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.PartnerItem; 5 | 6 | /** 7 | * @ClassName: PartnerItemMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2024-04-09 21:59 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface PartnerItemMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/PermItemMapper.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.PermItem; 5 | import com.pddon.framework.easyapi.dao.entity.UserLoginRecord; 6 | 7 | /** 8 | * @ClassName: PermItemMapper 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-09 21:59 12 | * @Addr: https://pddon.cn 13 | */ 14 | public interface PermItemMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/RoleDataPermissionMapper.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.DataPermission; 5 | import com.pddon.framework.easyapi.dao.entity.RoleDataPermission; 6 | 7 | /** 8 | * @ClassName: RoleDataPermissionMapper 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2025-04-28 11:37 12 | * @Addr: https://pddon.cn 13 | */ 14 | public interface RoleDataPermissionMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/RoleItemMapper.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.RoleItem; 5 | 6 | /** 7 | * @ClassName: RoleItemMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2024-04-09 21:59 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface RoleItemMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/RolePermMapper.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.RolePerm; 5 | 6 | /** 7 | * @ClassName: RolePermMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2024-04-09 21:59 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface RolePermMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/UserDataPermissionMapper.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.UserDataPermission; 5 | 6 | /** 7 | * @ClassName: UserDataPermissionMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2025-04-28 11:37 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface UserDataPermissionMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/UserLoginRecordMapper.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.UserLoginRecord; 5 | 6 | /** 7 | * @ClassName: UserLoginRecordMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2024-04-09 21:59 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface UserLoginRecordMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/UserOperateRecordMapper.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.UserLoginRecord; 5 | import com.pddon.framework.easyapi.dao.entity.UserOperateRecord; 6 | 7 | /** 8 | * @ClassName: UserOperateRecordMapper 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-09 21:59 12 | * @Addr: https://pddon.cn 13 | */ 14 | public interface UserOperateRecordMapper extends BaseMapper { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/UserPermMapper.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.UserPerm; 5 | 6 | /** 7 | * @ClassName: UserPermMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2024-04-09 21:59 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface UserPermMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dao/mapper/UserRoleMapper.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.UserRole; 5 | 6 | /** 7 | * @ClassName: UserPermMapper 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2024-04-09 21:59 11 | * @Addr: https://pddon.cn 12 | */ 13 | public interface UserRoleMapper extends BaseMapper { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/AddDepartmentMemberRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import javax.validation.constraints.NotNull; 7 | import java.io.Serializable; 8 | import java.util.List; 9 | 10 | /** 11 | * @ClassName: AddDepartmentMemberRequest 12 | * @Description: 13 | * @Author: Allen 14 | * @Date: 2025-04-28 00:50 15 | * @Addr: https://pddon.cn 16 | */ 17 | @Data 18 | @Accessors(chain = true) 19 | public class AddDepartmentMemberRequest implements Serializable { 20 | 21 | @NotNull 22 | private Long departmentId; 23 | @NotNull 24 | private List userIds; 25 | } 26 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/AddDictGroupRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import javax.validation.constraints.NotEmpty; 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @ClassName: AddDictGroupRequest 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-05-10 01:14 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class AddDictGroupRequest implements Serializable { 19 | /** 20 | * 字典分组ID 21 | * @author pddon.com 22 | */ 23 | @NotEmpty 24 | private String groupId; 25 | /** 26 | * 父分组Id 27 | */ 28 | private String parentGroupId; 29 | /** 30 | * 分组自身内容 31 | * @author pddon.com 32 | */ 33 | private String content; 34 | /** 35 | * 备注信息 36 | * @author pddon.com 37 | */ 38 | private String description; 39 | } 40 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/AddPermRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 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: AddPermRequest 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-04-23 21:30 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class AddPermRequest implements Serializable { 19 | 20 | /** 21 | * 权限ID 22 | * @author pddon.com 23 | */ 24 | private String permId; 25 | /** 26 | * 权限名 27 | * @author pddon.com 28 | */ 29 | private String permName; 30 | /** 31 | * 资源类型 32 | * @author pddon.com 33 | */ 34 | private String resourceType; 35 | 36 | /** 37 | * 权限简介 38 | * @author pddon.com 39 | */ 40 | private String intro; 41 | } 42 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/AddRoleRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 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: AddRoleRequest 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-04-23 21:30 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class AddRoleRequest implements Serializable { 19 | 20 | /** 21 | * 角色ID 22 | * @author pddon.com 23 | */ 24 | private String roleId; 25 | 26 | /** 27 | * 权限名 28 | * @author pddon.com 29 | */ 30 | private String roleName; 31 | 32 | /** 33 | * 角色简介 34 | * @author pddon.com 35 | */ 36 | private String intro; 37 | 38 | /** 39 | * 是否可传播 40 | * @author pddon.com 41 | */ 42 | private boolean propagable; 43 | /** 44 | * 角色拥有的权限ID列表 45 | */ 46 | private List permIds; 47 | } 48 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/AppListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 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: AppListRequest 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 AppListRequest extends PaginationRequest { 19 | private String tenantId; 20 | 21 | private String keyword; 22 | } 23 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/AuthToRoleRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.dto.req.dto.AuthPermDto; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import javax.validation.constraints.NotNull; 8 | import java.io.Serializable; 9 | import java.util.List; 10 | 11 | /** 12 | * @ClassName: AuthToRoleRequest 13 | * @Description: 14 | * @Author: Allen 15 | * @Date: 2025-04-29 18:16 16 | * @Addr: https://pddon.cn 17 | */ 18 | @Data 19 | @Accessors(chain = true) 20 | public class AuthToRoleRequest implements Serializable { 21 | @NotNull 22 | private List roleIds; 23 | @NotNull 24 | private List perms; 25 | /** 26 | * 取消授权 27 | */ 28 | private boolean unAuth; 29 | } 30 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/AuthToUserRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.dto.req.dto.AuthPermDto; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import javax.validation.constraints.NotNull; 8 | import java.io.Serializable; 9 | import java.util.List; 10 | 11 | /** 12 | * @ClassName: AuthToUserRequest 13 | * @Description: 14 | * @Author: Allen 15 | * @Date: 2025-04-29 18:16 16 | * @Addr: https://pddon.cn 17 | */ 18 | @Data 19 | @Accessors(chain = true) 20 | public class AuthToUserRequest implements Serializable { 21 | @NotNull 22 | private List userIds; 23 | @NotNull 24 | private List perms; 25 | /** 26 | * 取消授权 27 | */ 28 | private boolean unAuth; 29 | } 30 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/DataPermissionListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | /** 8 | * @ClassName: DataPermissionListRequest 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2025-04-28 21:38 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class DataPermissionListRequest extends PaginationRequest { 17 | 18 | private String tenantId; 19 | 20 | private String keyword; 21 | 22 | /** 23 | * 取值: FIELD字段查询; TABLE_FIELD 表字段查询 24 | * @author pddon.com 25 | */ 26 | private String queryType; 27 | 28 | private Boolean disabled; 29 | } 30 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/DataPermissionResourceListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | /** 8 | * @ClassName: DataPermissionResourceListRequest 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2025-04-28 21:38 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class DataPermissionResourceListRequest extends PaginationRequest { 17 | 18 | private String tenantId; 19 | 20 | private String permId; 21 | 22 | private String keyword; 23 | } 24 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/DepartmentListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | /** 8 | * @ClassName: DepartmentListRequest 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2025-04-28 00:33 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class DepartmentListRequest extends PaginationRequest { 17 | 18 | private String tenantId; 19 | /** 20 | * 部门的状态 21 | * @author pddon.com 22 | */ 23 | private String depStatus; 24 | 25 | /** 26 | * 部门上级部门的ID 27 | * @author pddon.com 28 | */ 29 | private Long parentId; 30 | 31 | /** 32 | * 部门内leader的用户ID 33 | * @author pddon.com 34 | */ 35 | private String leaderId; 36 | /** 37 | * 部门所属分类 38 | * @author pddon.com 39 | */ 40 | private String typeId; 41 | 42 | private String keyword; 43 | } 44 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/EmailTemplateListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | /** 8 | * @ClassName: EmailTemplateListRequest 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-23 22:04 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class EmailTemplateListRequest extends PaginationRequest { 17 | 18 | private String sceneId; 19 | /** 20 | * 邮件应用场景下特定的资源专属使用,通过新增sceneId的子分组下的字典,新增资源ID 21 | * @author pddon.com 22 | */ 23 | private String resourceId; 24 | private String tenantId; 25 | /** 26 | * 所属应用ID 27 | * @author pddon.com 28 | */ 29 | private String itemAppId; 30 | /** 31 | * 是否启用模板 32 | * @author pddon.com 33 | */ 34 | private Boolean enabled; 35 | 36 | private String keyword; 37 | } 38 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/FileListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import java.util.Date; 8 | 9 | /** 10 | * @ClassName: FileListRequest 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-06-25 21:46 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class FileListRequest extends PaginationRequest { 19 | private String type; 20 | private String keyword; 21 | 22 | private Date startTime; 23 | 24 | private Date endTime; 25 | } 26 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/OperateLogListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import java.util.Date; 8 | 9 | /** 10 | * @ClassName: OperateLogListRequest 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 OperateLogListRequest extends PaginationRequest { 19 | /** 20 | * 是否操作完成了 21 | */ 22 | private Boolean completed; 23 | private String keyword; 24 | 25 | private Date startTime; 26 | 27 | private Date endTime; 28 | } 29 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/PartnerListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | /** 8 | * @ClassName: PartnerListRequest 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-23 22:04 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class PartnerListRequest extends PaginationRequest { 17 | private String tenantId; 18 | 19 | private String keyword; 20 | } 21 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/PermListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | /** 8 | * @ClassName: PermListRequest 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-23 22:04 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class PermListRequest extends PaginationRequest { 17 | 18 | private String permId; 19 | 20 | private String keyword; 21 | } 22 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/RoleListRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.controller.request.PaginationRequest; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | /** 8 | * @ClassName: RoleListRequest 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-23 22:04 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class RoleListRequest extends PaginationRequest { 17 | private String roleId; 18 | 19 | private String keyword; 20 | } 21 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/UpdateDictGroupRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 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: UpdateDictGroupRequest 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-05-10 01:14 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class UpdateDictGroupRequest implements Serializable { 19 | @NotNull 20 | private Long id; 21 | /** 22 | * 字典分组ID 23 | * @author pddon.com 24 | */ 25 | private String groupId; 26 | /** 27 | * 父分组Id 28 | */ 29 | private String parentGroupId; 30 | /** 31 | * 分组自身内容 32 | * @author pddon.com 33 | */ 34 | private String content; 35 | /** 36 | * 备注信息 37 | * @author pddon.com 38 | */ 39 | private String description; 40 | } 41 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/UpdatePartnerStatusRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.consts.PartnerStatus; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import javax.validation.constraints.NotNull; 8 | import java.io.Serializable; 9 | 10 | /** 11 | * @ClassName: UpdatePartnerRequest 12 | * @Description: 13 | * @Author: Allen 14 | * @Date: 2024-04-23 21:30 15 | * @Addr: https://pddon.cn 16 | */ 17 | @Data 18 | @Accessors(chain = true) 19 | public class UpdatePartnerStatusRequest implements Serializable { 20 | @NotNull 21 | private Long id; 22 | 23 | /** 24 | * 商户账号状态,用于控制商户对api的调用和后台访问等等 25 | * @author pddon.com 26 | */ 27 | @NotNull 28 | private PartnerStatus partnerStatus; 29 | } 30 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/UpdatePermRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @ClassName: UpdatePermRequest 10 | * @Description: 11 | * @Author: Allen 12 | * @Date: 2024-04-23 21:30 13 | * @Addr: https://pddon.cn 14 | */ 15 | @Data 16 | @Accessors(chain = true) 17 | public class UpdatePermRequest implements Serializable { 18 | /** 19 | * 记录ID 20 | */ 21 | private String id; 22 | /** 23 | * 权限ID 24 | */ 25 | private String permId; 26 | /** 27 | * 权限名 28 | * @author pddon.com 29 | */ 30 | private String permName; 31 | /** 32 | * 资源类型 33 | * @author pddon.com 34 | */ 35 | private String resourceType; 36 | /** 37 | * 权限简介 38 | */ 39 | private String intro; 40 | } 41 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/UpdatesByGroupRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.dto.req.dto.DictDto; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import javax.validation.constraints.NotEmpty; 8 | import javax.validation.constraints.NotNull; 9 | import java.io.Serializable; 10 | import java.util.List; 11 | 12 | /** 13 | * @ClassName: UpdatesByGroupRequest 14 | * @Description: 15 | * @Author: Allen 16 | * @Date: 2024-06-01 00:24 17 | * @Addr: https://pddon.cn 18 | */ 19 | @Data 20 | @Accessors(chain = true) 21 | public class UpdatesByGroupRequest implements Serializable { 22 | 23 | @NotEmpty 24 | private String groupId; 25 | private String tenantId; 26 | private String dictAppId; 27 | private String userId; 28 | @NotNull 29 | private List items; 30 | } 31 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/dto/AuthPermDto.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req.dto; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | import java.io.Serializable; 9 | import java.util.List; 10 | 11 | /** 12 | * @ClassName: AuthPermDto 13 | * @Description: 14 | * @Author: Allen 15 | * @Date: 2025-04-29 18:40 16 | * @Addr: https://pddon.cn 17 | */ 18 | @Data 19 | @Accessors(chain = true) 20 | public class AuthPermDto implements Serializable { 21 | @NotEmpty 22 | private String permId; 23 | @NotEmpty 24 | private List values; 25 | } 26 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/req/dto/DictDto.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req.dto; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import javax.validation.constraints.NotEmpty; 7 | import javax.validation.constraints.NotNull; 8 | import java.io.Serializable; 9 | 10 | /** 11 | * @ClassName: DictDto 12 | * @Description: 13 | * @Author: Allen 14 | * @Date: 2024-06-01 00:26 15 | * @Addr: https://pddon.cn 16 | */ 17 | @Data 18 | @Accessors(chain = true) 19 | public class DictDto implements Serializable { 20 | private Long id; 21 | @NotEmpty 22 | private String dictId; 23 | /** 24 | * 内容值 25 | * @author pddon.com 26 | */ 27 | private String content; 28 | /** 29 | * 备注信息 30 | * @author pddon.com 31 | */ 32 | private String description; 33 | } 34 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/resp/IdResponse.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.resp; 2 | 3 | import com.pddon.framework.easyapi.controller.response.SuccessResponse; 4 | import lombok.*; 5 | import lombok.experimental.Accessors; 6 | 7 | /** 8 | * @ClassName: IdResponse 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-23 21:42 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Getter 15 | @Setter 16 | @ToString(callSuper=true) 17 | @Accessors(chain=true) 18 | @AllArgsConstructor 19 | @NoArgsConstructor 20 | public class IdResponse extends SuccessResponse { 21 | 22 | private Long id; 23 | } 24 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/java/com/pddon/framework/easyapi/dto/resp/PermTreeDataDto.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.resp; 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: PermTreeDataDto 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-04-28 23:22 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class PermTreeDataDto implements Serializable { 19 | 20 | private String label; 21 | 22 | private String value; 23 | 24 | private boolean disabled; 25 | 26 | private List children; 27 | } 28 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/DataPermission.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/DataPermissionResource.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/PartnerItem.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/PermItem.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/RoleDataPermission.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/RoleItem.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/RolePerm.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/UserDataPermission.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/UserLoginRecord.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/UserOperateRecord.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/UserPerm.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-dao/src/main/resources/mybatis/mappers/UserRole.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/EmailSendRecordMntService.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi; 2 | 3 | import com.pddon.framework.easyapi.controller.request.IdsRequest; 4 | import com.pddon.framework.easyapi.controller.response.PaginationResponse; 5 | import com.pddon.framework.easyapi.dao.dto.req.EmailRecordListRequest; 6 | import com.pddon.framework.easyapi.dao.entity.EmailSendRecord; 7 | 8 | /** 9 | * @ClassName: EmailSendRecordMntService 10 | * @Description: 11 | * @Author: Allen 12 | * @Date: 2024-07-01 11:06 13 | * @Addr: https://pddon.cn 14 | */ 15 | public interface EmailSendRecordMntService { 16 | PaginationResponse list(EmailRecordListRequest req); 17 | 18 | void resend(Long id); 19 | 20 | void remove(IdsRequest req); 21 | } 22 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/FileMntService.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi; 2 | 3 | import com.pddon.framework.easyapi.controller.request.IdsRequest; 4 | import com.pddon.framework.easyapi.controller.response.PaginationResponse; 5 | import com.pddon.framework.easyapi.dao.entity.FileItem; 6 | import com.pddon.framework.easyapi.dto.req.AddFileRequest; 7 | import com.pddon.framework.easyapi.dto.req.FileListRequest; 8 | import com.pddon.framework.easyapi.dto.req.UpdateFileRequest; 9 | import com.pddon.framework.easyapi.dto.resp.IdResponse; 10 | 11 | /** 12 | * @ClassName: FileMntService 13 | * @Description: 14 | * @Author: Allen 15 | * @Date: 2024-06-25 21:43 16 | * @Addr: https://pddon.cn 17 | */ 18 | public interface FileMntService { 19 | void remove(IdsRequest req); 20 | 21 | PaginationResponse list(FileListRequest req); 22 | 23 | void update(UpdateFileRequest req); 24 | 25 | IdResponse add(AddFileRequest req); 26 | } 27 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/UserOperateLogService.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi; 2 | 3 | import com.pddon.framework.easyapi.controller.response.PaginationResponse; 4 | import com.pddon.framework.easyapi.dao.entity.UserOperateRecord; 5 | import com.pddon.framework.easyapi.dto.req.OperateLogListRequest; 6 | 7 | import java.util.Date; 8 | 9 | /** 10 | * @ClassName: UserOperateLogService 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-04-23 14:51 14 | * @Addr: https://pddon.cn 15 | */ 16 | public interface UserOperateLogService { 17 | 18 | boolean addLog(String operateType, String apiName, Date startTime, Boolean completed, String errorMsg); 19 | 20 | PaginationResponse list(OperateLogListRequest req); 21 | } 22 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/annotations/EnableEasyApiPermission.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title EnableEasyApiPermission.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.annotations; 10 | 11 | import com.pddon.framework.easyapi.config.UserSecurityConfigurer; 12 | import org.springframework.context.annotation.Import; 13 | 14 | import java.lang.annotation.*; 15 | 16 | @Target({ElementType.TYPE}) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | @Documented 19 | @Inherited 20 | @Import({UserSecurityConfigurer.class}) 21 | public @interface EnableEasyApiPermission { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/annotations/OperateLog.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title OperateLog.java 3 | * Description 记录操作日志 4 | * @author Allen 5 | * @date Dec 19, 2023 6 | * @version 1.0.0 7 | * site: pddon.cn 8 | */ 9 | package com.pddon.framework.easyapi.annotations; 10 | 11 | import org.springframework.core.annotation.AliasFor; 12 | 13 | import java.lang.annotation.*; 14 | 15 | @Target({ElementType.METHOD, ElementType.TYPE}) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Documented 18 | public @interface OperateLog { 19 | @AliasFor("type") 20 | String value() default "通用记录"; 21 | 22 | /** 23 | * 操作日志类型 24 | * @author Allen 25 | */ 26 | @AliasFor("value") 27 | String type() default "通用记录"; 28 | 29 | /** 30 | * 接口名 31 | * @return {@link String} 32 | * @author: Allen 33 | * @Date: 2024/4/19 17:25 34 | */ 35 | String apiName() default ""; 36 | } 37 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/consts/ApiPermOperateType.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.consts; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * @ClassName: ApiPermOperateType 7 | * @Description: 8 | * @Author: Allen 9 | * @Date: 2024-04-29 00:18 10 | * @Addr: https://pddon.cn 11 | */ 12 | @Getter 13 | public enum ApiPermOperateType { 14 | ADD("add", "新增"), 15 | DELETE("delete", "删除"), 16 | UPDATE("update", "更新"), 17 | QUERY("query", "查询"); 18 | 19 | private String key; 20 | private String name; 21 | 22 | ApiPermOperateType(String key, String name){ 23 | this.key = key; 24 | this.name = name; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/consts/DataPermissionQueryType.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.consts; 2 | 3 | /** 4 | * @ClassName: DataPermissionQueryType 5 | * @Description: 数据权限查询类型 6 | * @Author: Allen 7 | * @Date: 2025-05-13 17:10 8 | * @Addr: https://pddon.cn 9 | */ 10 | public enum DataPermissionQueryType { 11 | /** 12 | * 不需要查询 13 | */ 14 | NO_QUERY, 15 | /** 16 | * 字段查询 17 | */ 18 | FIELD, 19 | /** 20 | * 表字段查询 21 | */ 22 | TABLE_FIELD; 23 | } 24 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/consts/DataPermissionResourceType.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.consts; 2 | 3 | /** 4 | * @ClassName: DataPermissionResourceType 5 | * @Description: 数据权限资源类型 6 | * @Author: Allen 7 | * @Date: 2025-05-13 17:07 8 | * @Addr: https://pddon.cn 9 | */ 10 | public enum DataPermissionResourceType { 11 | /** 12 | * 数据库表 13 | */ 14 | TABLE, 15 | /** 16 | * 静态资源 17 | */ 18 | STATIC_RESOURCE; 19 | } 20 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/consts/PermissionOperateType.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.consts; 2 | 3 | /** 4 | * @ClassName: PermissionOperateType 5 | * @Description: 权限操作类型 6 | * @Author: Allen 7 | * @Date: 2024-04-16 12:07 8 | * @Addr: https://pddon.cn 9 | */ 10 | public enum PermissionOperateType { 11 | /** 12 | * 新增权限 13 | */ 14 | ADD, 15 | /** 16 | * 删除数据权限 17 | */ 18 | DELETE, 19 | /** 20 | * 修改数据权限 21 | */ 22 | UPDATE, 23 | /** 24 | * 查询数据权限 25 | */ 26 | QUERY, 27 | /** 28 | * 点击按钮权限 29 | */ 30 | CLICK, 31 | /** 32 | * 查看权限 33 | */ 34 | SHOW 35 | } 36 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/consts/PermissionResourceType.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.consts; 2 | 3 | /** 4 | * @ClassName: PermissionResourceType 5 | * @Description: 权限资源类型 6 | * @Author: Allen 7 | * @Date: 2024-04-16 12:12 8 | * @Addr: https://pddon.cn 9 | */ 10 | public enum PermissionResourceType { 11 | /** 12 | * 接口 13 | */ 14 | API, 15 | /** 16 | * 页面 17 | */ 18 | PAGE, 19 | /** 20 | * 菜单 21 | */ 22 | MENU, 23 | /** 24 | * 按钮 25 | */ 26 | BUTTON, 27 | /** 28 | * 页面区块 29 | */ 30 | PAGE_BLOCK, 31 | /** 32 | * 其他资源 33 | */ 34 | RESOURCE 35 | } 36 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/dto/DataPermDtoList.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto; 2 | 3 | import com.pddon.framework.easyapi.dao.dto.DataPermDto; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.io.Serializable; 9 | import java.util.List; 10 | 11 | /** 12 | * @ClassName: DataPermDtoList 13 | * @Description: 14 | * @Author: Allen 15 | * @Date: 2025-05-15 22:33 16 | * @Addr: https://pddon.cn 17 | */ 18 | @Data 19 | @AllArgsConstructor 20 | @NoArgsConstructor 21 | public class DataPermDtoList implements Serializable { 22 | private List items; 23 | } 24 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/dto/DataPermItemDto.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.experimental.Accessors; 7 | 8 | import java.io.Serializable; 9 | 10 | /** 11 | * @ClassName: DataPermItemDto 12 | * @Description: 13 | * @Author: Allen 14 | * @Date: 2025-05-13 23:42 15 | * @Addr: https://pddon.cn 16 | */ 17 | @Data 18 | @Accessors(chain = true) 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | public class DataPermItemDto implements Serializable { 22 | /** 23 | * 数据范围权限id 24 | * @author pddon.com 25 | */ 26 | private String permId; 27 | 28 | /** 29 | * 拥有的权限值 30 | * @author pddon.com 31 | */ 32 | private String permValue; 33 | } 34 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/dto/TableInfoDto.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.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: TableInfoDto 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2025-05-13 17:26 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class TableInfoDto implements Serializable { 19 | private String tableName; 20 | private List fields; 21 | } 22 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/dto/UserAuthenticationToken.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | import org.apache.shiro.authc.AuthenticationToken; 7 | 8 | /** 9 | * @ClassName: UserAuthenticationToken 10 | * @Description: 11 | * @Author: Allen 12 | * @Date: 2024-04-15 23:56 13 | * @Addr: https://pddon.cn 14 | */ 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | @Getter 18 | public class UserAuthenticationToken implements AuthenticationToken { 19 | private String sessionId; 20 | private String userId; 21 | private String password; 22 | @Override 23 | public Object getPrincipal() { 24 | return userId; 25 | } 26 | 27 | @Override 28 | public Object getCredentials() { 29 | return password; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/dto/req/AddFileRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import javax.validation.constraints.NotEmpty; 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @ClassName: AddFileRequest 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-06-25 22:08 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class AddFileRequest implements Serializable { 19 | /** 20 | * 文件Id 21 | * @author pddon.com 22 | */ 23 | @NotEmpty 24 | private String fileKey; 25 | /** 26 | * 文件名 27 | * @author pddon.com 28 | */ 29 | private String filename; 30 | /** 31 | * 是否禁用 32 | * @author pddon.com 33 | */ 34 | private Boolean disabled; 35 | /** 36 | * 备注信息 37 | * @author pddon.com 38 | */ 39 | private String comments; 40 | } 41 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/dto/req/SendEmailRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 2 | 3 | import com.pddon.framework.easyapi.dao.consts.PageContentType; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import javax.validation.constraints.NotEmpty; 8 | import javax.validation.constraints.NotNull; 9 | import java.io.Serializable; 10 | 11 | /** 12 | * @ClassName: SendEmailRequest 13 | * @Description: 14 | * @Author: Allen 15 | * @Date: 2024-05-31 23:40 16 | * @Addr: https://pddon.cn 17 | */ 18 | @Data 19 | @Accessors(chain = true) 20 | public class SendEmailRequest implements Serializable { 21 | @NotEmpty 22 | private String email; 23 | private String title; 24 | @NotEmpty 25 | private String content; 26 | @NotNull 27 | private PageContentType type; 28 | } 29 | -------------------------------------------------------------------------------- /easy-spring-boot-api-perm-service/src/main/java/com/pddon/framework/easyapi/dto/req/UpdateFileRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto.req; 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: UpdateFileRequest 11 | * @Description: 12 | * @Author: Allen 13 | * @Date: 2024-06-25 22:08 14 | * @Addr: https://pddon.cn 15 | */ 16 | @Data 17 | @Accessors(chain = true) 18 | public class UpdateFileRequest implements Serializable { 19 | @NotNull 20 | private Long id; 21 | /** 22 | * 文件名 23 | * @author pddon.com 24 | */ 25 | private String filename; 26 | /** 27 | * 是否禁用 28 | * @author pddon.com 29 | */ 30 | private Boolean disabled; 31 | /** 32 | * 备注信息 33 | * @author pddon.com 34 | */ 35 | private String comments; 36 | } 37 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/CaptchaService.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi; 2 | 3 | import javax.servlet.http.HttpServletResponse; 4 | 5 | /** 6 | * @ClassName: CaptchaService 7 | * @Description: 8 | * @Author: Allen 9 | * @Date: 2025-05-19 23:13 10 | * @Addr: https://pddon.cn 11 | */ 12 | public interface CaptchaService { 13 | 14 | void generateCaptcha(String id, HttpServletResponse response); 15 | 16 | boolean validate(String id, String code); 17 | } 18 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/EmailSendRecordService.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi; 2 | 3 | /** 4 | * @ClassName: EmailSendRecordService 5 | * @Description: 6 | * @Author: Allen 7 | * @Date: 2024-07-01 10:38 8 | * @Addr: https://pddon.cn 9 | */ 10 | public interface EmailSendRecordService { 11 | void saveSuccessRecord(String userId, String sceneId, String resourceId, String email, String title, String content); 12 | 13 | void saveSuccessRecord(String userId, String email, String title, String content); 14 | 15 | void saveFailedRecord(String userId, String email, String title, String content, String errMsg); 16 | 17 | void saveFailedRecord(String userId, String sceneId, String resourceId, String email, String title, String content, String errMsg); 18 | 19 | void saveRecord(String userId, String sceneId, String resourceId, String email, String title, String content, boolean success, String errMsg); 20 | } 21 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/EmailTemplateService.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi; 2 | 3 | import com.pddon.framework.easyapi.dao.entity.EmailTemplate; 4 | 5 | /** 6 | * @ClassName: EmailTemplateService 7 | * @Description: 8 | * @Author: Allen 9 | * @Date: 2024-05-29 19:40 10 | * @Addr: https://pddon.cn 11 | */ 12 | public interface EmailTemplateService { 13 | EmailTemplate getByScene(String sceneId, String resourceId); 14 | } 15 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/FileItemService.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi; 2 | 3 | import com.pddon.framework.easyapi.dao.entity.FileItem; 4 | 5 | /** 6 | * @ClassName: FileItemService 7 | * @Description: 8 | * @Author: Allen 9 | * @Date: 2024-06-24 18:08 10 | * @Addr: https://pddon.cn 11 | */ 12 | public interface FileItemService { 13 | FileItem saveFileData(String tenantId, String filename, String contentType, byte[] data); 14 | 15 | FileItem getByTypeKey(String fileType, String fileKey); 16 | 17 | void removeByKey(String fileKey); 18 | } 19 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/config/RedisQueueConfig.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.config; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | import org.springframework.data.redis.core.RedisTemplate; 8 | import org.springframework.data.redis.listener.RedisMessageListenerContainer; 9 | 10 | /** 11 | * @ClassName: RedisQueueConfig 12 | * @Description: 13 | * @Author: Allen 14 | * @Date: 2024-06-06 01:29 15 | * @Addr: https://pddon.cn 16 | */ 17 | @Configuration 18 | @Slf4j 19 | public class RedisQueueConfig { 20 | @Bean 21 | public RedisMessageListenerContainer redisMessageListenerContainer(RedisTemplate redisTemplate) { 22 | RedisMessageListenerContainer container = new RedisMessageListenerContainer(); 23 | container.setConnectionFactory(redisTemplate.getConnectionFactory()); 24 | return container; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/consts/EmailTemplateType.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.consts; 2 | 3 | public enum EmailTemplateType { 4 | COMMON_NOTIFY, 5 | AUTH_CODE 6 | } 7 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/controller/request/SendAuthCodeRequest.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.controller.request; 2 | 3 | import com.pddon.framework.easyapi.annotation.Decrypt; 4 | import lombok.Data; 5 | 6 | import javax.validation.constraints.NotEmpty; 7 | import java.io.Serializable; 8 | 9 | @Data 10 | public class SendAuthCodeRequest implements Serializable { 11 | /** 12 | * 验证码类型 13 | */ 14 | private String type = "C"; 15 | @Decrypt 16 | @NotEmpty 17 | private String email; 18 | 19 | private String title; 20 | 21 | private String content; 22 | } 23 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/dto/FileUploadResult.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.dto; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @ClassName: FileUploadResult 10 | * @Description: 11 | * @Author: Allen 12 | * @Date: 2024-06-24 19:03 13 | * @Addr: https://pddon.cn 14 | */ 15 | @Data 16 | @Accessors(chain = true) 17 | public class FileUploadResult implements Serializable { 18 | 19 | private String fileKey; 20 | 21 | private String filename; 22 | 23 | private String fileUrl; 24 | } 25 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/email/dto/EmailAuthTokenDto.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.email.dto; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import java.io.Serializable; 7 | 8 | @Data 9 | @Accessors(chain = true) 10 | public class EmailAuthTokenDto implements Serializable { 11 | 12 | private String token; 13 | 14 | private Long crtTime; 15 | } 16 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/email/dto/EmailTemplateConfig.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.email.dto; 2 | 3 | import com.pddon.framework.easyapi.consts.EmailTemplateType; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | public class EmailTemplateConfig implements Serializable { 12 | private EmailTemplateType type; 13 | 14 | private String path; 15 | 16 | private String title; 17 | 18 | private String[] params; 19 | public EmailTemplateConfig(EmailTemplateType type, String path){ 20 | this.type = type; 21 | this.path = path; 22 | this.params = new String[8]; 23 | } 24 | 25 | public EmailTemplateConfig(EmailTemplateType type, String path, String title, String... params){ 26 | this.type = type; 27 | this.path = path; 28 | this.title = title; 29 | this.params = params; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/impl/EmailTemplateServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.impl; 2 | 3 | import com.pddon.framework.easyapi.EmailTemplateService; 4 | import com.pddon.framework.easyapi.dao.EmailTemplateDao; 5 | import com.pddon.framework.easyapi.dao.entity.EmailTemplate; 6 | import lombok.extern.slf4j.Slf4j; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.stereotype.Service; 9 | 10 | /** 11 | * @ClassName: EmailTemplateServiceImpl 12 | * @Description: 13 | * @Author: Allen 14 | * @Date: 2024-05-29 19:40 15 | * @Addr: https://pddon.cn 16 | */ 17 | @Service 18 | @Slf4j 19 | public class EmailTemplateServiceImpl implements EmailTemplateService { 20 | 21 | @Autowired 22 | private EmailTemplateDao emailTemplateDao; 23 | 24 | @Override 25 | public EmailTemplate getByScene(String sceneId, String resourceId){ 26 | return emailTemplateDao.getByScene(sceneId, resourceId); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/msg/queue/impl/DefaultRedisQueueListener.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.msg.queue.impl; 2 | 3 | import com.pddon.framework.easyapi.config.EmailConfig; 4 | import com.pddon.framework.easyapi.msg.queue.Message; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.context.annotation.Lazy; 8 | import org.springframework.stereotype.Component; 9 | 10 | /** 11 | * @ClassName: DefaultRedisQueueListener 12 | * @Description: 13 | * @Author: Allen 14 | * @Date: 2024-06-05 23:40 15 | * @Addr: https://pddon.cn 16 | */ 17 | @Component 18 | @Slf4j 19 | public class DefaultRedisQueueListener extends AbstractRedisQueueListener{ 20 | 21 | @Autowired 22 | @Lazy 23 | private EmailConfig emailConfig; 24 | 25 | @Override 26 | public void onMessage(Message message) { 27 | if("emailConfigUpdated".equalsIgnoreCase(message.getType())){ 28 | emailConfig.initDbConfig(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/msg/queue/impl/DefaultRedisQueueSender.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.msg.queue.impl; 2 | 3 | import com.pddon.framework.easyapi.msg.queue.MessageManager; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * @ClassName: DefaultRedisQueueSender 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-06-05 16:52 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Component 15 | @Slf4j 16 | public class DefaultRedisQueueSender extends AbstractRedisQueueSender { 17 | @Override 18 | public String queue() { 19 | return MessageManager.EASY_API_DEFAULT_QUEUE; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/java/com/pddon/framework/easyapi/utils/NumberCaptchaUtil.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.utils; 2 | 3 | import cn.hutool.captcha.*; 4 | import cn.hutool.captcha.generator.MathGenerator; 5 | import cn.hutool.captcha.generator.RandomGenerator; 6 | 7 | /** 8 | * @ClassName: NumberCaptchaUtil 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2025-05-19 23:06 12 | * @Addr: https://pddon.cn 13 | */ 14 | public class NumberCaptchaUtil { 15 | 16 | public static ICaptcha generate() { 17 | return generate(null); 18 | } 19 | public static ICaptcha generate(Integer codeCount) { 20 | if(codeCount == null){ 21 | codeCount = 4; 22 | } 23 | LineCaptcha captcha = CaptchaUtil.createLineCaptcha(120, 35, codeCount, 10); 24 | captcha.setGenerator(new RandomGenerator(codeCount)); 25 | captcha.createCode(); 26 | return captcha; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/resources/email/templates/sendCommonNotify.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 |

{0}


6 | {1} 7 |
8 |
9 | 10 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/resources/email/templates/sendEmailAuthCode.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | {0}:{1},{2} 6 |
7 |
8 | 9 | -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/resources/i18n/messages/messages.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/easy-spring-boot-api-service/src/main/resources/i18n/messages/messages.properties -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/resources/i18n/messages/messages_en_US.properties: -------------------------------------------------------------------------------- 1 | email.sendAuthCode.prefix=Verification code 2 | email.sendAuthCode.suffix=Valid for 6 minutes, thank you for your support! 3 | AUTH_CODE_ERROR=Auth code error, Please check! 4 | AUTH_CODE_EXPIRED=Auth code expired, Please send a new one! -------------------------------------------------------------------------------- /easy-spring-boot-api-service/src/main/resources/i18n/messages/messages_zh_CN.properties: -------------------------------------------------------------------------------- 1 | email.sendAuthCode.prefix=验证码 2 | email.sendAuthCode.suffix=有效期6分钟,感谢您的支持! 3 | AUTH_CODE_ERROR=验证码错误,请检查! 4 | AUTH_CODE_EXPIRED=验证码已过期,请重新发送验证码! 5 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/annotation/IgnoreResponseWrapper.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title IgnoreResponseWrapper.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.METHOD) 20 | @Retention(RetentionPolicy.RUNTIME) 21 | @Documented 22 | public @interface IgnoreResponseWrapper { 23 | boolean value() default true; 24 | } 25 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/config/EasyApiRequestMappingConfig.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.config; 2 | 3 | import com.pddon.framework.easyapi.controller.utils.CustomRequestMappingHandlerMapping; 4 | import org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations; 5 | import org.springframework.stereotype.Component; 6 | import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; 7 | 8 | /** 9 | * @ClassName: EasyApiRequestMappingConfig 10 | * @Description: 11 | * @Author: Allen 12 | * @Date: 2024-03-18 21:55 13 | * @Addr: https://pddon.cn 14 | */ 15 | @Component 16 | public class EasyApiRequestMappingConfig implements WebMvcRegistrations { 17 | public RequestMappingHandlerMapping getRequestMappingHandlerMapping() { 18 | RequestMappingHandlerMapping handlerMapping = new CustomRequestMappingHandlerMapping(); 19 | handlerMapping.setOrder(0); 20 | return handlerMapping; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/dataformat/AbstractFieldDataFormatHandler.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title AbstractFieldDataFormatHandler.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 com.pddon.framework.easyapi.interceptor.impl.ApiDataFormatInterceptor; 12 | 13 | public abstract class AbstractFieldDataFormatHandler implements FieldDataFormatHandler { 14 | 15 | public AbstractFieldDataFormatHandler(){ 16 | ApiDataFormatInterceptor.addDataFormatHandler(this); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/dto/UniqueToken.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title UniqueToken.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.dto; 10 | 11 | import java.io.Serializable; 12 | 13 | import lombok.Data; 14 | import lombok.experimental.Accessors; 15 | @Data 16 | @Accessors(chain = true) 17 | public class UniqueToken implements Serializable{ 18 | /** 19 | * 20 | */ 21 | private static final long serialVersionUID = 1L; 22 | private Long crtTime; 23 | private boolean submit; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/impl/DefaultInvokeApiLogManagerImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title DefaultInvokeApiLogManagerImpl.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.impl; 10 | 11 | import java.sql.Date; 12 | 13 | import com.pddon.framework.easyapi.InvokeApiLogManager; 14 | import com.pddon.framework.easyapi.dto.ApiInvokeLog; 15 | 16 | public class DefaultInvokeApiLogManagerImpl implements InvokeApiLogManager { 17 | 18 | /** 19 | * @author danyuan 20 | */ 21 | @Override 22 | public void save(ApiInvokeLog log) { 23 | } 24 | 25 | /** 26 | * @author danyuan 27 | */ 28 | @Override 29 | public long count(String apiName, String appId, String userId, 30 | String sessionId, String clientIp, Date startTime, Date endTime) { 31 | return 0; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/interceptor/AbstractApiMethodInterceptor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title AbstractApiMethodInterceptor.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.interceptor; 10 | 11 | 12 | public abstract class AbstractApiMethodInterceptor implements ApiMethodInterceptor { 13 | 14 | /** 15 | * @author danyuan 16 | */ 17 | public AbstractApiMethodInterceptor() { 18 | ApiInvokeMethodInterceptorManager.addInterceptor(this); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/interceptor/ApiMethodInterceptor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title ApiMethodInterceptor.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.interceptor; 10 | 11 | import java.lang.reflect.Method; 12 | import java.util.List; 13 | 14 | import com.pddon.framework.easyapi.dto.ApiRequestParameter; 15 | 16 | public interface ApiMethodInterceptor { 17 | 18 | int order(); 19 | 20 | void preInvoke(List requestParams, Method method, Class targetClass) throws Throwable; 21 | 22 | Object afterInvoke(List requestParams, Object resp, Method method, Class targetClass) throws Throwable; 23 | } 24 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/properties/AsyncThreadPoolConfig.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.properties; 2 | 3 | import lombok.Data; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * @ClassName: AsyncThreadPoolConfig 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-04-12 12:37 12 | * @Addr: https://pddon.cn 13 | */ 14 | @Component 15 | @ConfigurationProperties(prefix="easyapi.async-thread-pool") 16 | @Data 17 | public class AsyncThreadPoolConfig { 18 | /** 19 | * 核心线程数 20 | */ 21 | private Integer corePoolSize = 5; 22 | /** 23 | * 最大线程数 24 | */ 25 | private Integer maxPoolSize = 20; 26 | /** 27 | * 队列最大长度,等待队列最大值 28 | */ 29 | private Integer queueCapacity = 10000; 30 | /** 31 | * 线程池维护线程所允许的空闲时间 32 | */ 33 | private Integer keepAliveSeconds = 600; 34 | /** 35 | * 线程名前缀 36 | */ 37 | private String threadNamePrefix = "EasyApi-AsyncExecutor-"; 38 | } 39 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/properties/EasyApiSwaggerProperties.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title SwaggerProperties.java 3 | * Description 4 | * @author danyuan 5 | * @date Mar 14, 2019 6 | * @version 1.0.0 7 | * site: pddon.cn 8 | */ 9 | package com.pddon.framework.easyapi.properties; 10 | 11 | import lombok.Data; 12 | 13 | import org.springframework.boot.context.properties.ConfigurationProperties; 14 | 15 | @Data 16 | @ConfigurationProperties(prefix = "easyapi.api.swagger") 17 | public class EasyApiSwaggerProperties { 18 | private String basePackage; 19 | private String title; 20 | private String description; 21 | private String termsOfServiceUrl; 22 | private String contact; 23 | private String version; 24 | public EasyApiSwaggerProperties(){ 25 | basePackage=""; 26 | title="业务接口清单"; 27 | description="接口文档随着接口动态同步更新!"; 28 | termsOfServiceUrl="http://localhost:8080/doc.html"; 29 | contact="后台开发同学"; 30 | version="1.0"; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/response/enhance/AbstractResponseEnhanceHandler.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title AbstractResponseEnhanceHandler.java 3 | * Description 4 | * @author danyuan 5 | * @date Nov 8, 2020 6 | * @version 1.0.0 7 | * site: pddon.cn 8 | */ 9 | package com.pddon.framework.easyapi.response.enhance; 10 | 11 | import com.pddon.framework.easyapi.aspect.ApiResponseAspector; 12 | 13 | public abstract class AbstractResponseEnhanceHandler implements ResponseEnhanceHandler { 14 | 15 | public AbstractResponseEnhanceHandler(){ 16 | ApiResponseAspector.addResponseEnhanceHandler(this); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/response/enhance/ResponseEnhanceHandler.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Title ResponseEnhanceHandler.java 3 | * Description 响应包装处理器,对响应进行额外处理,例如加外壳,添加数字签名等等 4 | * @author danyuan 5 | * @date Nov 8, 2020 6 | * @version 1.0.0 7 | * site: pddon.cn 8 | */ 9 | package com.pddon.framework.easyapi.response.enhance; 10 | 11 | 12 | public interface ResponseEnhanceHandler { 13 | 14 | int order(); 15 | 16 | Object enhance(Object resp); 17 | } 18 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/swagger/OrderExtension.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.swagger; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.NoArgsConstructor; 5 | import springfox.documentation.service.VendorExtension; 6 | 7 | /** 8 | * @ClassName: OrderExtension 9 | * @Description: 10 | * @Author: Allen 11 | * @Date: 2024-03-18 19:53 12 | * @Addr: https://pddon.cn 13 | */ 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | public class OrderExtension implements VendorExtension { 17 | 18 | private Integer value; 19 | 20 | @Override 21 | public String getName() { 22 | return "order"; 23 | } 24 | 25 | @Override 26 | public Object getValue() { 27 | return value; 28 | } 29 | 30 | public Integer getOrderValue(){ 31 | return value; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/java/com/pddon/framework/easyapi/swagger/OrderedSwaggerResource.java: -------------------------------------------------------------------------------- 1 | package com.pddon.framework.easyapi.swagger; 2 | 3 | import lombok.Data; 4 | import springfox.documentation.swagger.web.SwaggerResource; 5 | 6 | /** 7 | * @ClassName: OrderedSwaggerResource 8 | * @Description: 9 | * @Author: Allen 10 | * @Date: 2024-03-18 19:45 11 | * @Addr: https://pddon.cn 12 | */ 13 | @Data 14 | public class OrderedSwaggerResource extends SwaggerResource { 15 | private Integer order; 16 | } 17 | -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/resources/META-INF/i18n/easyApiMessages.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pddon/easy-spring-boot-api/45ab2645ea36f55d473bfff9bd3e9d70cc51ae9f/easy-spring-boot-api/src/main/resources/META-INF/i18n/easyApiMessages.properties -------------------------------------------------------------------------------- /easy-spring-boot-api/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.env.EnvironmentPostProcessor=\com.pddon.framework.easyapi.env.EasyApiEnvironmentPostProcessor -------------------------------------------------------------------------------- /easy-spring-boot-api/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/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/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 com.pddon.framework.easyapi.annotation.IgnoreSign; 15 | 16 | import lombok.AllArgsConstructor; 17 | import lombok.Data; 18 | import lombok.NoArgsConstructor; 19 | 20 | @Data 21 | @AllArgsConstructor 22 | @NoArgsConstructor 23 | public class SkuCurrency implements Serializable{ 24 | 25 | /** 26 | *serialVersionUID 27 | */ 28 | private static final long serialVersionUID = 1L; 29 | 30 | private String currency; 31 | @IgnoreSign 32 | private BigDecimal price; 33 | } 34 | -------------------------------------------------------------------------------- /easy-spring-boot-api/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 com.pddon.framework.easyapi.annotation.IgnoreSign; 16 | 17 | import lombok.AllArgsConstructor; 18 | import lombok.Data; 19 | import lombok.NoArgsConstructor; 20 | 21 | @Data 22 | @AllArgsConstructor 23 | @NoArgsConstructor 24 | public class SkuItem implements Serializable{/** 25 | *serialVersionUID 26 | */ 27 | private static final long serialVersionUID = 1L; 28 | private Integer skuId; 29 | private String skuName; 30 | @IgnoreSign 31 | private BigDecimal price; 32 | private List priceList; 33 | } 34 | --------------------------------------------------------------------------------