Full Code of paascloud/paascloud-master for AI

master 781281a95033 cached
893 files
1.7 MB
532.5k tokens
2785 symbols
1 requests
Download .txt
Showing preview only (2,057K chars total). Download the full file or copy to clipboard to get everything.
Repository: paascloud/paascloud-master
Branch: master
Commit: 781281a95033
Files: 893
Total size: 1.7 MB

Directory structure:
gitextract_nwog7ueh/

├── .gitignore
├── LICENSE
├── README.md
├── paascloud-common/
│   ├── paascloud-common-base/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           └── base/
│   │       │   │               ├── constant/
│   │       │   │               │   ├── AliyunMqTopicConstants.java
│   │       │   │               │   ├── AliyunSmsConstants.java
│   │       │   │               │   └── GlobalConstant.java
│   │       │   │               ├── dto/
│   │       │   │               │   ├── BaseQuery.java
│   │       │   │               │   ├── BaseTree.java
│   │       │   │               │   ├── BaseVo.java
│   │       │   │               │   ├── CheckValidDto.java
│   │       │   │               │   ├── GaodeBaseDto.java
│   │       │   │               │   ├── JobParameter.java
│   │       │   │               │   ├── KvDto.java
│   │       │   │               │   ├── LoginAuthDto.java
│   │       │   │               │   ├── MessageQueryDto.java
│   │       │   │               │   ├── MqMessageDto.java
│   │       │   │               │   ├── MqMessageVo.java
│   │       │   │               │   ├── ShardingContextDto.java
│   │       │   │               │   ├── UpdateStatusDto.java
│   │       │   │               │   └── UserTokenDto.java
│   │       │   │               ├── enums/
│   │       │   │               │   └── ErrorCodeEnum.java
│   │       │   │               └── exception/
│   │       │   │                   ├── BooleanParseException.java
│   │       │   │                   ├── BusinessException.java
│   │       │   │                   ├── ConfigException.java
│   │       │   │                   ├── ImportException.java
│   │       │   │                   └── ReferenceModelNullException.java
│   │       │   └── resources/
│   │       │       └── .gitkeep
│   │       └── test/
│   │           └── java/
│   │               └── .gitkeep
│   ├── paascloud-common-config/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── config/
│   │                           ├── PaascloudCoreConfig.java
│   │                           └── properties/
│   │                               ├── AliyunProperties.java
│   │                               ├── AsyncTaskProperties.java
│   │                               ├── GaodeProperties.java
│   │                               ├── JobProperties.java
│   │                               ├── PaascloudProperties.java
│   │                               ├── QiniuProperties.java
│   │                               ├── ReliableMessageProperties.java
│   │                               ├── SwaggerProperties.java
│   │                               └── ZookeeperProperties.java
│   ├── paascloud-common-core/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           └── core/
│   │       │   │               ├── annotation/
│   │       │   │               │   ├── LogAnnotation.java
│   │       │   │               │   ├── NotDisplaySql.java
│   │       │   │               │   ├── OperationLogDto.java
│   │       │   │               │   └── ValidateAnnotation.java
│   │       │   │               ├── aspect/
│   │       │   │               │   ├── BindingResultAop.java
│   │       │   │               │   ├── LogAspect.java
│   │       │   │               │   └── NotDisplaySqlAspect.java
│   │       │   │               ├── config/
│   │       │   │               │   ├── AsyncTaskExecutorConfiguration.java
│   │       │   │               │   ├── CoreConfiguration.java
│   │       │   │               │   ├── ExceptionHandlingAsyncTaskExecutor.java
│   │       │   │               │   ├── PcObjectMapper.java
│   │       │   │               │   ├── RedisConfiguration.java
│   │       │   │               │   ├── SwaggerConfiguration.java
│   │       │   │               │   └── ZookeeperInitRunner.java
│   │       │   │               ├── enums/
│   │       │   │               │   └── LogTypeEnum.java
│   │       │   │               ├── interceptor/
│   │       │   │               │   ├── CoreHeaderInterceptor.java
│   │       │   │               │   ├── CoreHttpRequestInterceptor.java
│   │       │   │               │   ├── SqlLogInterceptor.java
│   │       │   │               │   └── TokenInterceptor.java
│   │       │   │               ├── mq/
│   │       │   │               │   └── MqMessage.java
│   │       │   │               ├── mybatis/
│   │       │   │               │   ├── BaseEntity.java
│   │       │   │               │   └── MyMapper.java
│   │       │   │               ├── support/
│   │       │   │               │   ├── AbstractTreeService.java
│   │       │   │               │   ├── BaseController.java
│   │       │   │               │   ├── BaseService.java
│   │       │   │               │   ├── IService.java
│   │       │   │               │   ├── ITree.java
│   │       │   │               │   ├── SpringContextHolder.java
│   │       │   │               │   └── TreeUtils.java
│   │       │   │               └── utils/
│   │       │   │                   ├── CustomSystemUtil.java
│   │       │   │                   ├── RequestUtil.java
│   │       │   │                   ├── SessionRegistryCenterConfiguration.java
│   │       │   │                   └── TokenCache.java
│   │       │   └── resources/
│   │       │       └── META-INF/
│   │       │           └── spring.factories
│   │       └── test/
│   │           └── java/
│   │               ├── .gitkeep
│   │               └── IdTest.java
│   ├── paascloud-common-util/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       ├── BigDecimalUtil.java
│   │                       ├── Collections3.java
│   │                       ├── DateUtil.java
│   │                       ├── HttpAesUtil.java
│   │                       ├── JacksonUtil.java
│   │                       ├── PubUtils.java
│   │                       ├── PublicUtil.java
│   │                       ├── RandomUtil.java
│   │                       ├── RecursionTreeUtil.java
│   │                       ├── RedisKeyUtil.java
│   │                       ├── ThreadLocalMap.java
│   │                       ├── TreeNode.java
│   │                       ├── UrlUtil.java
│   │                       ├── ValidateUtil.java
│   │                       ├── annotation/
│   │                       │   └── NoNeedAccessAuthentication.java
│   │                       ├── exception/
│   │                       │   └── HttpAesException.java
│   │                       ├── helper/
│   │                       │   ├── LongJsonDeserializer.java
│   │                       │   └── LongJsonSerializer.java
│   │                       ├── page/
│   │                       │   ├── PageUtil.java
│   │                       │   └── Query.java
│   │                       └── wrapper/
│   │                           ├── PageWrapMapper.java
│   │                           ├── PageWrapper.java
│   │                           ├── WrapMapper.java
│   │                           └── Wrapper.java
│   ├── paascloud-common-zk/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── paascloud/
│   │       │               └── core/
│   │       │                   ├── generator/
│   │       │                   │   ├── IdGenerator.java
│   │       │                   │   ├── IncrementIdGenerator.java
│   │       │                   │   └── UniqueIdGenerator.java
│   │       │                   └── registry/
│   │       │                       ├── RegistryCenterFactory.java
│   │       │                       ├── base/
│   │       │                       │   ├── CoordinatorRegistryCenter.java
│   │       │                       │   ├── RegisterDto.java
│   │       │                       │   ├── RegistryCenter.java
│   │       │                       │   └── ReliableMessageRegisterDto.java
│   │       │                       ├── exception/
│   │       │                       │   ├── RegException.java
│   │       │                       │   └── RegExceptionHandler.java
│   │       │                       └── zookeeper/
│   │       │                           └── ZookeeperRegistryCenter.java
│   │       └── test/
│   │           └── java/
│   │               └── .gitkeep
│   ├── paascloud-security-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── security/
│   │                           ├── app/
│   │                           │   ├── AppSecretException.java
│   │                           │   ├── AppSecurityController.java
│   │                           │   ├── authentication/
│   │                           │   │   └── openid/
│   │                           │   │       ├── OpenIdAuthenticationFilter.java
│   │                           │   │       ├── OpenIdAuthenticationProvider.java
│   │                           │   │       ├── OpenIdAuthenticationSecurityConfig.java
│   │                           │   │       └── OpenIdAuthenticationToken.java
│   │                           │   └── social/
│   │                           │       ├── AppSingUpUtils.java
│   │                           │       ├── AppSocialAuthenticationFilterPostProcessor.java
│   │                           │       └── SpringSocialConfigurerPostProcessor.java
│   │                           └── server/
│   │                               ├── PcAccessDeniedHandler.java
│   │                               ├── PcResourceServerConfig.java
│   │                               ├── PcWebResponseExceptionTranslator.java
│   │                               ├── TokenJwtEnhancer.java
│   │                               └── TokenStoreConfig.java
│   ├── paascloud-security-core/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── security/
│   │                           └── core/
│   │                               ├── SecurityCoreConfig.java
│   │                               ├── SecurityResult.java
│   │                               ├── SecurityUser.java
│   │                               ├── authentication/
│   │                               │   ├── AuthenticationBeanConfig.java
│   │                               │   ├── DefaultSocialUserDetailsServiceImpl.java
│   │                               │   ├── DefaultUserDetailsServiceImpl.java
│   │                               │   ├── FormAuthenticationConfig.java
│   │                               │   └── mobile/
│   │                               │       ├── SmsCodeAuthenticationFilter.java
│   │                               │       ├── SmsCodeAuthenticationProvider.java
│   │                               │       ├── SmsCodeAuthenticationSecurityConfig.java
│   │                               │       └── SmsCodeAuthenticationToken.java
│   │                               ├── authorize/
│   │                               │   ├── AuthorizeConfigManager.java
│   │                               │   ├── AuthorizeConfigProvider.java
│   │                               │   ├── PcAuthorizeConfigManager.java
│   │                               │   └── PcAuthorizeConfigProvider.java
│   │                               ├── properties/
│   │                               │   ├── BrowserProperties.java
│   │                               │   ├── EmailCodeProperties.java
│   │                               │   ├── ImageCodeProperties.java
│   │                               │   ├── LoginResponseType.java
│   │                               │   ├── OAuth2ClientProperties.java
│   │                               │   ├── OAuth2Properties.java
│   │                               │   ├── QQProperties.java
│   │                               │   ├── SecurityConstants.java
│   │                               │   ├── SecurityProperties.java
│   │                               │   ├── SessionProperties.java
│   │                               │   ├── SmsCodeProperties.java
│   │                               │   ├── SocialProperties.java
│   │                               │   ├── ValidateCodeProperties.java
│   │                               │   └── WeixinProperties.java
│   │                               ├── social/
│   │                               │   ├── BaseSocialController.java
│   │                               │   ├── SocialConfig.java
│   │                               │   ├── qq/
│   │                               │   │   ├── api/
│   │                               │   │   │   ├── QQ.java
│   │                               │   │   │   ├── QQImpl.java
│   │                               │   │   │   └── QQUserInfo.java
│   │                               │   │   ├── config/
│   │                               │   │   │   └── QQAutoConfig.java
│   │                               │   │   └── connet/
│   │                               │   │       ├── QQAdapter.java
│   │                               │   │       ├── QQConnectionFactory.java
│   │                               │   │       ├── QQOAuth2Template.java
│   │                               │   │       └── QQServiceProvider.java
│   │                               │   ├── support/
│   │                               │   │   ├── PcSpringSocialConfigurer.java
│   │                               │   │   ├── SocialAuthenticationFilterPostProcessor.java
│   │                               │   │   └── SocialUserInfo.java
│   │                               │   ├── view/
│   │                               │   │   ├── PcConnectView.java
│   │                               │   │   └── PcConnectionStatusView.java
│   │                               │   └── weixin/
│   │                               │       ├── api/
│   │                               │       │   ├── Weixin.java
│   │                               │       │   ├── WeixinImpl.java
│   │                               │       │   └── WeixinUserInfo.java
│   │                               │       ├── config/
│   │                               │       │   └── WeixinAutoConfiguration.java
│   │                               │       └── connect/
│   │                               │           ├── WeixinAccessGrant.java
│   │                               │           ├── WeixinAdapter.java
│   │                               │           ├── WeixinConnectionFactory.java
│   │                               │           ├── WeixinOAuth2Template.java
│   │                               │           └── WeixinServiceProvider.java
│   │                               └── validate/
│   │                                   └── code/
│   │                                       ├── CookieUtil.java
│   │                                       ├── ValidateCode.java
│   │                                       ├── ValidateCodeBeanConfig.java
│   │                                       ├── ValidateCodeController.java
│   │                                       ├── ValidateCodeException.java
│   │                                       ├── ValidateCodeFilter.java
│   │                                       ├── ValidateCodeGenerator.java
│   │                                       ├── ValidateCodeProcessor.java
│   │                                       ├── ValidateCodeProcessorHolder.java
│   │                                       ├── ValidateCodeRepository.java
│   │                                       ├── ValidateCodeSecurityConfig.java
│   │                                       ├── ValidateCodeType.java
│   │                                       ├── email/
│   │                                       │   ├── DefaultEmailCodeSender.java
│   │                                       │   ├── EmailCodeGenerator.java
│   │                                       │   ├── EmailCodeProcessor.java
│   │                                       │   └── EmailCodeSender.java
│   │                                       ├── image/
│   │                                       │   ├── ImageCode.java
│   │                                       │   ├── ImageCodeGenerator.java
│   │                                       │   └── ImageCodeProcessor.java
│   │                                       ├── impl/
│   │                                       │   ├── AbstractValidateCodeProcessor.java
│   │                                       │   └── RedisValidateCodeRepository.java
│   │                                       └── sms/
│   │                                           ├── DefaultSmsCodeSender.java
│   │                                           ├── SmsCodeGenerator.java
│   │                                           ├── SmsCodeProcessor.java
│   │                                           └── SmsCodeSender.java
│   ├── paascloud-security-feign/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── security/
│   │                           └── feign/
│   │                               ├── OAuth2FeignAutoConfiguration.java
│   │                               ├── OAuth2FeignRequestInterceptor.java
│   │                               ├── Oauth2ClientProperties.java
│   │                               └── Oauth2FeignErrorInterceptor.java
│   └── pom.xml
├── paascloud-discovery/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── discovery/
│           │               └── PaasCloudDiscoveryApplication.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               ├── logback-spring.xml
│               └── server.jks
├── paascloud-eureka/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── discovery/
│           │               └── eureka/
│           │                   └── PaasCloudEurekaApplication.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               └── logback-spring.xml
├── paascloud-gateway/
│   ├── .gitignore
│   ├── README.md
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── gateway/
│           │               ├── PaasCloudGatewayApplication.java
│           │               ├── config/
│           │               │   └── SecurityConfig.java
│           │               ├── fallback/
│           │               │   └── UacFallbackProvider.java
│           │               └── filter/
│           │                   ├── AuthHeaderFilter.java
│           │                   └── RenewFilter.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               └── logback-spring.xml
├── paascloud-generator/
│   ├── .gitignore
│   ├── README.md
│   ├── paascloud-generator-mdc/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   ├── paascloud-generator-omc/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   ├── paascloud-generator-opc/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   ├── paascloud-generator-tpc/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   ├── paascloud-generator-uac/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   └── pom.xml
├── paascloud-monitor/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── discovery/
│           │               ├── PaasCloudMonitorApplication.java
│           │               └── SecurityConfig.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               └── logback-spring.xml
├── paascloud-provider/
│   ├── paascloud-provider-mdc/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudMdcApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── MdcWebMvcConfig.java
│   │       │   │               │   └── ResourceServerConfig.java
│   │       │   │               ├── manager/
│   │       │   │               │   └── MdcProductManager.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── MdcAddressMapper.java
│   │       │   │               │   ├── MdcDictMapper.java
│   │       │   │               │   ├── MdcExceptionLogMapper.java
│   │       │   │               │   ├── MdcProductCategoryMapper.java
│   │       │   │               │   └── MdcProductMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   ├── constant/
│   │       │   │               │   │   └── MallConstant.java
│   │       │   │               │   ├── domain/
│   │       │   │               │   │   ├── MdcAddress.java
│   │       │   │               │   │   ├── MdcDict.java
│   │       │   │               │   │   ├── MdcExceptionLog.java
│   │       │   │               │   │   ├── MdcProduct.java
│   │       │   │               │   │   └── MdcProductCategory.java
│   │       │   │               │   ├── dto/
│   │       │   │               │   │   ├── MdcCategoryCheckNameDto.java
│   │       │   │               │   │   ├── MdcDictCheckCodeDto.java
│   │       │   │               │   │   ├── MdcDictCheckNameDto.java
│   │       │   │               │   │   ├── MdcEditCategoryDto.java
│   │       │   │               │   │   ├── MdcEditDictDto.java
│   │       │   │               │   │   ├── MdcEditProductDto.java
│   │       │   │               │   │   └── MdcExceptionQueryDto.java
│   │       │   │               │   ├── enums/
│   │       │   │               │   │   ├── AddressTypeEnum.java
│   │       │   │               │   │   ├── MdcCategoryStatusEnum.java
│   │       │   │               │   │   └── MdcDictStatusEnum.java
│   │       │   │               │   └── vo/
│   │       │   │               │       ├── MdcCategoryVo.java
│   │       │   │               │       ├── MdcDictVo.java
│   │       │   │               │       └── ProductVo.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── MdcAddressService.java
│   │       │   │               │   ├── MdcDictService.java
│   │       │   │               │   ├── MdcExceptionLogService.java
│   │       │   │               │   ├── MdcProductCategoryService.java
│   │       │   │               │   ├── MdcProductService.java
│   │       │   │               │   ├── OpcRpcService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── MdcAddressServiceImpl.java
│   │       │   │               │       ├── MdcDictServiceImpl.java
│   │       │   │               │       ├── MdcExceptionLogServiceImpl.java
│   │       │   │               │       ├── MdcProductCategoryServiceImpl.java
│   │       │   │               │       └── MdcProductServiceImpl.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── frontend/
│   │       │   │                   │   ├── MdcAddressRest.java
│   │       │   │                   │   ├── MdcDictMainController.java
│   │       │   │                   │   ├── MdcExceptionMainController.java
│   │       │   │                   │   ├── MdcProductCategoryMainController.java
│   │       │   │                   │   ├── MdcProductMainController.java
│   │       │   │                   │   ├── UacDictCommonController.java
│   │       │   │                   │   └── UacProductCategoryCommonController.java
│   │       │   │                   └── rpc/
│   │       │   │                       ├── MdcAddressQueryFeignClient.java
│   │       │   │                       ├── MdcExceptionLogFeignClient.java
│   │       │   │                       ├── MdcMqMessageFeignClient.java
│   │       │   │                       ├── MdcProductCategoryFeignClient.java
│   │       │   │                       ├── MdcProductCategoryQueryFeignClient.java
│   │       │   │                       ├── MdcProductFeignClient.java
│   │       │   │                       └── MdcProductQueryFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       └── mapper/
│   │       │           ├── MdcAddressMapper.xml
│   │       │           ├── MdcDictMapper.xml
│   │       │           ├── MdcExceptionLogMapper.xml
│   │       │           ├── MdcProductCategoryMapper.xml
│   │       │           └── MdcProductMapper.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           └── PaasCloudMdcApplicationTests.java
│   ├── paascloud-provider-omc/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudOmcApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── OmcWebMvcConfig.java
│   │       │   │               │   └── ResourceServerConfig.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── OmcCartMapper.java
│   │       │   │               │   ├── OmcOrderDetailMapper.java
│   │       │   │               │   ├── OmcOrderMapper.java
│   │       │   │               │   ├── OmcShippingMapper.java
│   │       │   │               │   └── PtcPayInfoMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   └── domain/
│   │       │   │               │       ├── OmcCart.java
│   │       │   │               │       ├── OmcOrder.java
│   │       │   │               │       ├── OmcOrderDetail.java
│   │       │   │               │       ├── OmcShipping.java
│   │       │   │               │       └── PtcPayInfo.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── MdcProductService.java
│   │       │   │               │   ├── OmcCartService.java
│   │       │   │               │   ├── OmcOrderDetailService.java
│   │       │   │               │   ├── OmcOrderService.java
│   │       │   │               │   ├── OmcShippingService.java
│   │       │   │               │   ├── OpcOssService.java
│   │       │   │               │   ├── PtcAlipayService.java
│   │       │   │               │   ├── PtcPayInfoService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── MdcProductServiceImpl.java
│   │       │   │               │       ├── OmcCartServiceImpl.java
│   │       │   │               │       ├── OmcOrderDetailServiceImpl.java
│   │       │   │               │       ├── OmcOrderServiceImpl.java
│   │       │   │               │       ├── OmcShippingServiceImpl.java
│   │       │   │               │       ├── OpcOssServiceImpl.java
│   │       │   │               │       ├── PtcAlipayServiceImpl.java
│   │       │   │               │       └── PtcPayInfoServiceImpl.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── frontend/
│   │       │   │                   │   ├── OmcOrderController.java
│   │       │   │                   │   ├── OmcShippingController.java
│   │       │   │                   │   └── PtcPayController.java
│   │       │   │                   └── rpc/
│   │       │   │                       ├── MallCartFeignClient.java
│   │       │   │                       ├── MallCartQueryFeignClient.java
│   │       │   │                       ├── OmcOrderDetailFeignClient.java
│   │       │   │                       ├── OmcOrderDetailQueryFeignClient.java
│   │       │   │                       ├── OmcOrderFeignClient.java
│   │       │   │                       └── OmcOrderQueryFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       ├── mapper/
│   │       │       │   ├── OmcCartMapper.xml
│   │       │       │   ├── OmcOrderDetailMapper.xml
│   │       │       │   ├── OmcOrderMapper.xml
│   │       │       │   ├── OmcShippingMapper.xml
│   │       │       │   └── PtcPayInfoMapper.xml
│   │       │       └── zfbinfo.properties
│   │       └── test/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── PaasCloudOmcApplicationTests.java
│   │           └── resources/
│   │               └── generator/
│   │                   └── generatorConfig.xml
│   ├── paascloud-provider-opc/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudOpcApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── AliyunMqConfiguration.java
│   │       │   │               │   ├── AliyunSmsConfiguration.java
│   │       │   │               │   ├── OpcWebMvcConfig.java
│   │       │   │               │   ├── QiniuOssConfiguration.java
│   │       │   │               │   └── ResourceServerConfig.java
│   │       │   │               ├── consumer/
│   │       │   │               │   ├── MdcTopicConsumer.java
│   │       │   │               │   ├── OptSendEmailTopicConsumer.java
│   │       │   │               │   ├── OptSendSmsTopicConsumer.java
│   │       │   │               │   └── listener/
│   │       │   │               │       └── OptPushMessageListener.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── OpcSmsSettingMapper.java
│   │       │   │               │   └── OptAttachmentMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   ├── domain/
│   │       │   │               │   │   ├── OpcSmsSetting.java
│   │       │   │               │   │   └── OptAttachment.java
│   │       │   │               │   └── dto/
│   │       │   │               │       ├── attachment/
│   │       │   │               │       │   └── OptAttachmentReqDto.java
│   │       │   │               │       └── mail/
│   │       │   │               │           └── MailEntity.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── OpcAttachmentService.java
│   │       │   │               │   ├── OpcOssService.java
│   │       │   │               │   ├── OptFreeMarkerService.java
│   │       │   │               │   ├── OptSendMailService.java
│   │       │   │               │   ├── OptSmsService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── OptAttachmentServiceImpl.java
│   │       │   │               │       ├── OptFreeMarkerServiceImpl.java
│   │       │   │               │       ├── OptQiniuOssServiceImpl.java
│   │       │   │               │       ├── OptSendMailServiceImpl.java
│   │       │   │               │       └── OptSmsServiceImpl.java
│   │       │   │               ├── utils/
│   │       │   │               │   ├── CheckFileUtil.java
│   │       │   │               │   └── GaoDeUtil.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── frontend/
│   │       │   │                   │   └── OpcFileController.java
│   │       │   │                   └── rpc/
│   │       │   │                       ├── DingtalkFeignClient.java
│   │       │   │                       ├── OpcAttachmentFeignClient.java
│   │       │   │                       ├── OpcGaodeFeignClient.java
│   │       │   │                       └── OpcMqMessageFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       ├── mapper/
│   │       │       │   ├── OpcSmsSettingMapper.xml
│   │       │       │   └── OptAttachmentMapper.xml
│   │       │       └── templates/
│   │       │           └── mail/
│   │       │               ├── sendRegisterSuccessTemplate.ftl
│   │       │               └── sendRegisterVerifyCodeTemplate.vm
│   │       └── test/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               ├── PaasCloudOmcApplicationTests.java
│   │           │               ├── aliyun/
│   │           │               │   ├── MqProducerTest.java
│   │           │               │   └── OptSmsServiceTest.java
│   │           │               ├── mail/
│   │           │               │   └── MailTest.java
│   │           │               └── qiniu/
│   │           │                   └── OpcOssServiceTest.java
│   │           └── resources/
│   │               └── generator/
│   │                   └── generatorConfig.xml
│   ├── paascloud-provider-tpc/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudTpcApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── MqBeanInitRunner.java
│   │       │   │               │   ├── ResourceServerConfig.java
│   │       │   │               │   └── TpcWebMvcConfig.java
│   │       │   │               ├── job/
│   │       │   │               │   ├── dataflow/
│   │       │   │               │   │   ├── HandleSendingMessageJob.java
│   │       │   │               │   │   └── HandleWaitingConfirmMessageJob.java
│   │       │   │               │   ├── listener/
│   │       │   │               │   │   └── HandleUserTokenJobListener.java
│   │       │   │               │   └── simple/
│   │       │   │               │       ├── DeleteRpcConsumerMessageJob.java
│   │       │   │               │       ├── DeleteRpcExpireFileJob.java
│   │       │   │               │       ├── DeleteRpcProducerMessageJob.java
│   │       │   │               │       └── HandleUserJwtTokenJob.java
│   │       │   │               ├── listener/
│   │       │   │               │   ├── MqConsumerChangeListener.java
│   │       │   │               │   └── MqProducerChangeListener.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── TpcJobTaskMapper.java
│   │       │   │               │   ├── TpcMqConfirmMapper.java
│   │       │   │               │   ├── TpcMqConsumerMapper.java
│   │       │   │               │   ├── TpcMqMessageMapper.java
│   │       │   │               │   ├── TpcMqProducerMapper.java
│   │       │   │               │   ├── TpcMqSubscribeTagMapper.java
│   │       │   │               │   ├── TpcMqTagMapper.java
│   │       │   │               │   └── TpcMqTopicMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   ├── constant/
│   │       │   │               │   │   └── .gitkeep
│   │       │   │               │   ├── domain/
│   │       │   │               │   │   ├── TpcJobTask.java
│   │       │   │               │   │   ├── TpcMqConfirm.java
│   │       │   │               │   │   ├── TpcMqConsumer.java
│   │       │   │               │   │   ├── TpcMqMessage.java
│   │       │   │               │   │   ├── TpcMqProducer.java
│   │       │   │               │   │   ├── TpcMqSubscribeTag.java
│   │       │   │               │   │   ├── TpcMqTag.java
│   │       │   │               │   │   └── TpcMqTopic.java
│   │       │   │               │   ├── dto/
│   │       │   │               │   │   └── MessageTaskQueryDto.java
│   │       │   │               │   ├── enums/
│   │       │   │               │   │   ├── JobTaskTypeEnum.java
│   │       │   │               │   │   ├── MqConfirmStatusEnum.java
│   │       │   │               │   │   ├── MqSendStatusEnum.java
│   │       │   │               │   │   └── PIDEnum.java
│   │       │   │               │   └── vo/
│   │       │   │               │       ├── TpcMessageVo.java
│   │       │   │               │       ├── TpcMqConfirmVo.java
│   │       │   │               │       ├── TpcMqConsumerVo.java
│   │       │   │               │       ├── TpcMqProducerVo.java
│   │       │   │               │       ├── TpcMqPublishVo.java
│   │       │   │               │       ├── TpcMqSubscribeVo.java
│   │       │   │               │       ├── TpcMqTagVo.java
│   │       │   │               │       └── TpcMqTopicVo.java
│   │       │   │               ├── mq/
│   │       │   │               │   └── RocketMqProducer.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── MdcRpcService.java
│   │       │   │               │   ├── MqProducerBeanFactory.java
│   │       │   │               │   ├── OmcRpcService.java
│   │       │   │               │   ├── OpcRpcService.java
│   │       │   │               │   ├── TpcMqConsumerService.java
│   │       │   │               │   ├── TpcMqMessageService.java
│   │       │   │               │   ├── TpcMqProducerService.java
│   │       │   │               │   ├── TpcMqTagService.java
│   │       │   │               │   ├── TpcMqTopicService.java
│   │       │   │               │   ├── UacRpcService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── TpcMqConsumerServiceImpl.java
│   │       │   │               │       ├── TpcMqMessageServiceImpl.java
│   │       │   │               │       ├── TpcMqProducerServiceImpl.java
│   │       │   │               │       ├── TpcMqTagServiceImpl.java
│   │       │   │               │       └── TpcMqTopicServiceImpl.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── frontend/
│   │       │   │                   │   ├── TpcMessageMainController.java
│   │       │   │                   │   ├── TpcMqConsumerController.java
│   │       │   │                   │   ├── TpcMqProducerController.java
│   │       │   │                   │   ├── TpcMqTagController.java
│   │       │   │                   │   └── TpcMqTopicController.java
│   │       │   │                   └── rpc/
│   │       │   │                       └── TpcMqMessageFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       └── mapper/
│   │       │           ├── TpcJobTaskMapper.xml
│   │       │           ├── TpcMqConfirmMapper.xml
│   │       │           ├── TpcMqConsumerMapper.xml
│   │       │           ├── TpcMqMessageMapper.xml
│   │       │           ├── TpcMqProducerMapper.xml
│   │       │           ├── TpcMqSubscribeTagMapper.xml
│   │       │           ├── TpcMqTagMapper.xml
│   │       │           └── TpcMqTopicMapper.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           └── PaasCloudMdcApplicationTests.java
│   ├── paascloud-provider-uac/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudUacApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── AliyunMqConfiguration.java
│   │       │   │               │   ├── CaptchaConfig.java
│   │       │   │               │   ├── RedisInitRunner.java
│   │       │   │               │   └── UacWebMvcConfig.java
│   │       │   │               ├── manager/
│   │       │   │               │   └── UserManager.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── UacActionMapper.java
│   │       │   │               │   ├── UacGroupMapper.java
│   │       │   │               │   ├── UacGroupUserMapper.java
│   │       │   │               │   ├── UacLogMapper.java
│   │       │   │               │   ├── UacMenuMapper.java
│   │       │   │               │   ├── UacRoleActionMapper.java
│   │       │   │               │   ├── UacRoleMapper.java
│   │       │   │               │   ├── UacRoleMenuMapper.java
│   │       │   │               │   ├── UacRoleUserMapper.java
│   │       │   │               │   ├── UacUserMapper.java
│   │       │   │               │   ├── UacUserMenuMapper.java
│   │       │   │               │   └── UacUserTokenMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   ├── constant/
│   │       │   │               │   │   └── MenuConstant.java
│   │       │   │               │   ├── domain/
│   │       │   │               │   │   ├── UacAction.java
│   │       │   │               │   │   ├── UacGroup.java
│   │       │   │               │   │   ├── UacGroupUser.java
│   │       │   │               │   │   ├── UacLog.java
│   │       │   │               │   │   ├── UacMenu.java
│   │       │   │               │   │   ├── UacRole.java
│   │       │   │               │   │   ├── UacRoleAction.java
│   │       │   │               │   │   ├── UacRoleMenu.java
│   │       │   │               │   │   ├── UacRoleUser.java
│   │       │   │               │   │   ├── UacUser.java
│   │       │   │               │   │   ├── UacUserMenu.java
│   │       │   │               │   │   └── UacUserToken.java
│   │       │   │               │   ├── dto/
│   │       │   │               │   │   ├── action/
│   │       │   │               │   │   │   ├── ActionMainQueryDto.java
│   │       │   │               │   │   │   ├── UacActionCheckCodeDto.java
│   │       │   │               │   │   │   └── UacActionCheckUrlDto.java
│   │       │   │               │   │   ├── base/
│   │       │   │               │   │   │   └── ModifyStatusDto.java
│   │       │   │               │   │   ├── email/
│   │       │   │               │   │   │   └── SendEmailMessage.java
│   │       │   │               │   │   ├── group/
│   │       │   │               │   │   │   ├── CheckGroupCodeDto.java
│   │       │   │               │   │   │   ├── CheckGroupNameDto.java
│   │       │   │               │   │   │   ├── GroupBindUserDto.java
│   │       │   │               │   │   │   └── GroupBindUserReqDto.java
│   │       │   │               │   │   ├── log/
│   │       │   │               │   │   │   └── UacLogMainDto.java
│   │       │   │               │   │   ├── menu/
│   │       │   │               │   │   │   ├── UacEditMenuDto.java
│   │       │   │               │   │   │   ├── UacMenuCheckCodeDto.java
│   │       │   │               │   │   │   ├── UacMenuCheckNameDto.java
│   │       │   │               │   │   │   ├── UacMenuCheckUrlDto.java
│   │       │   │               │   │   │   ├── UacMenuStatusDto.java
│   │       │   │               │   │   │   ├── UacMenuUrlDto.java
│   │       │   │               │   │   │   ├── UserMenuChildrenDto.java
│   │       │   │               │   │   │   └── UserMenuDto.java
│   │       │   │               │   │   ├── omc/
│   │       │   │               │   │   │   └── CartListQuery.java
│   │       │   │               │   │   ├── role/
│   │       │   │               │   │   │   ├── BindUserDto.java
│   │       │   │               │   │   │   ├── CheckRoleCodeDto.java
│   │       │   │               │   │   │   ├── RoleBindActionDto.java
│   │       │   │               │   │   │   ├── RoleBindMenuDto.java
│   │       │   │               │   │   │   ├── RoleBindUserDto.java
│   │       │   │               │   │   │   └── RoleBindUserReqDto.java
│   │       │   │               │   │   ├── sms/
│   │       │   │               │   │   │   └── SmsMessage.java
│   │       │   │               │   │   ├── token/
│   │       │   │               │   │   │   ├── RefreshTokenDto.java
│   │       │   │               │   │   │   └── TokenMainQueryDto.java
│   │       │   │               │   │   └── user/
│   │       │   │               │   │       ├── BindRoleDto.java
│   │       │   │               │   │       ├── BindUserMenusDto.java
│   │       │   │               │   │       ├── BindUserRolesDto.java
│   │       │   │               │   │       ├── CheckEmailDto.java
│   │       │   │               │   │       ├── CheckLoginNameDto.java
│   │       │   │               │   │       ├── CheckNewPasswordDto.java
│   │       │   │               │   │       ├── CheckUserNameDto.java
│   │       │   │               │   │       ├── CheckUserPhoneDto.java
│   │       │   │               │   │       ├── LoginRespDto.java
│   │       │   │               │   │       ├── ModifyUserStatusDto.java
│   │       │   │               │   │       ├── ResetLoginPwdDto.java
│   │       │   │               │   │       ├── UserModifyPwdDto.java
│   │       │   │               │   │       └── UserResetPwdDto.java
│   │       │   │               │   ├── enums/
│   │       │   │               │   │   ├── UacActionStatusEnum.java
│   │       │   │               │   │   ├── UacEmailTemplateEnum.java
│   │       │   │               │   │   ├── UacGroupStatusEnum.java
│   │       │   │               │   │   ├── UacMenuStatusEnum.java
│   │       │   │               │   │   ├── UacRoleStatusEnum.java
│   │       │   │               │   │   ├── UacUserSourceEnum.java
│   │       │   │               │   │   ├── UacUserStatusEnum.java
│   │       │   │               │   │   ├── UacUserTokenStatusEnum.java
│   │       │   │               │   │   ├── UacUserTypeEnum.java
│   │       │   │               │   │   └── ZtreeAuthTypeEnum.java
│   │       │   │               │   └── vo/
│   │       │   │               │       ├── ActionVo.java
│   │       │   │               │       ├── BindAuthVo.java
│   │       │   │               │       ├── ElementTreeVo.java
│   │       │   │               │       ├── GroupZtreeVo.java
│   │       │   │               │       ├── JqTreeResponseVo.java
│   │       │   │               │       ├── KaptchaVo.java
│   │       │   │               │       ├── RoleVo.java
│   │       │   │               │       ├── UserBindRoleVo.java
│   │       │   │               │       ├── UserTokenVo.java
│   │       │   │               │       ├── UserVo.java
│   │       │   │               │       ├── ViewMenuVo.java
│   │       │   │               │       ├── ZtreeResponseVo.java
│   │       │   │               │       ├── role/
│   │       │   │               │       │   ├── MenuCountVo.java
│   │       │   │               │       │   └── RoleZtreeVo.java
│   │       │   │               │       └── treeview/
│   │       │   │               │           ├── AdditionalParameters.java
│   │       │   │               │           ├── Item.java
│   │       │   │               │           └── ItemType.java
│   │       │   │               ├── mq/
│   │       │   │               │   ├── consumer/
│   │       │   │               │   │   └── listener/
│   │       │   │               │   │       └── UacPushMessageListener.java
│   │       │   │               │   └── producer/
│   │       │   │               │       ├── EmailProducer.java
│   │       │   │               │       └── SmsProducer.java
│   │       │   │               ├── security/
│   │       │   │               │   ├── PcAuthenticationFailureHandler.java
│   │       │   │               │   ├── PcAuthenticationSuccessHandler.java
│   │       │   │               │   ├── PcAuthorizationServerConfig.java
│   │       │   │               │   ├── PcLogoutSuccessHandler.java
│   │       │   │               │   ├── PcPermissionAuthorizeConfigProvider.java
│   │       │   │               │   ├── PcSecurityExpressionHandler.java
│   │       │   │               │   ├── RestClientDetailsServiceImpl.java
│   │       │   │               │   ├── SecurityUtils.java
│   │       │   │               │   └── UacUserDetailsServiceImpl.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── EmailService.java
│   │       │   │               │   ├── MdcAddressService.java
│   │       │   │               │   ├── OpcRpcService.java
│   │       │   │               │   ├── RedisHashService.java
│   │       │   │               │   ├── RedisService.java
│   │       │   │               │   ├── RedisSetService.java
│   │       │   │               │   ├── SmsService.java
│   │       │   │               │   ├── UacActionService.java
│   │       │   │               │   ├── UacFreeMarkerService.java
│   │       │   │               │   ├── UacGroupService.java
│   │       │   │               │   ├── UacGroupUserService.java
│   │       │   │               │   ├── UacLogService.java
│   │       │   │               │   ├── UacLoginService.java
│   │       │   │               │   ├── UacMenuService.java
│   │       │   │               │   ├── UacPermissionService.java
│   │       │   │               │   ├── UacRoleActionService.java
│   │       │   │               │   ├── UacRoleMenuService.java
│   │       │   │               │   ├── UacRoleService.java
│   │       │   │               │   ├── UacRoleUserService.java
│   │       │   │               │   ├── UacUserMenuService.java
│   │       │   │               │   ├── UacUserService.java
│   │       │   │               │   ├── UacUserTokenService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── EmailServiceImpl.java
│   │       │   │               │       ├── MdcAddressServiceImpl.java
│   │       │   │               │       ├── OpcRpcServiceImpl.java
│   │       │   │               │       ├── PcSmsCodeSender.java
│   │       │   │               │       ├── RedisHashServiceImpl.java
│   │       │   │               │       ├── RedisServiceImpl.java
│   │       │   │               │       ├── RedisSetServiceImpl.java
│   │       │   │               │       ├── SmsServiceImpl.java
│   │       │   │               │       ├── UacActionServiceImpl.java
│   │       │   │               │       ├── UacFreeMarkerServiceImpl.java
│   │       │   │               │       ├── UacGroupServiceImpl.java
│   │       │   │               │       ├── UacGroupUserServiceImpl.java
│   │       │   │               │       ├── UacLogServiceImpl.java
│   │       │   │               │       ├── UacLoginServiceImpl.java
│   │       │   │               │       ├── UacMenuServiceImpl.java
│   │       │   │               │       ├── UacPermissionServiceImpl.java
│   │       │   │               │       ├── UacRoleActionServiceImpl.java
│   │       │   │               │       ├── UacRoleMenuServiceImpl.java
│   │       │   │               │       ├── UacRoleServiceImpl.java
│   │       │   │               │       ├── UacRoleUserServiceImpl.java
│   │       │   │               │       ├── UacUserMenuServiceImpl.java
│   │       │   │               │       ├── UacUserServiceImpl.java
│   │       │   │               │       └── UacUserTokenServiceImpl.java
│   │       │   │               ├── utils/
│   │       │   │               │   ├── Md5Util.java
│   │       │   │               │   └── TreeUtil.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── admin/
│   │       │   │                   │   ├── AuthRestController.java
│   │       │   │                   │   ├── UacActionCommonController.java
│   │       │   │                   │   ├── UacActionMainController.java
│   │       │   │                   │   ├── UacGrantAuth4RoleController.java
│   │       │   │                   │   ├── UacGroupBindUserController.java
│   │       │   │                   │   ├── UacGroupCommonController.java
│   │       │   │                   │   ├── UacGroupMainController.java
│   │       │   │                   │   ├── UacLogMainController.java
│   │       │   │                   │   ├── UacMenuCommonController.java
│   │       │   │                   │   ├── UacMenuMainController.java
│   │       │   │                   │   ├── UacRoleBindUserController.java
│   │       │   │                   │   ├── UacRoleCommonController.java
│   │       │   │                   │   ├── UacRoleMainController.java
│   │       │   │                   │   ├── UacTokenMainController.java
│   │       │   │                   │   ├── UacUserCommonController.java
│   │       │   │                   │   ├── UacUserLoginController.java
│   │       │   │                   │   ├── UacUserMainController.java
│   │       │   │                   │   └── UacUserPasswordController.java
│   │       │   │                   ├── mall/
│   │       │   │                   │   ├── EmailController.java
│   │       │   │                   │   ├── MallAuthRestController.java
│   │       │   │                   │   ├── MallCartController.java
│   │       │   │                   │   └── MallUserController.java
│   │       │   │                   └── rpc/
│   │       │   │                       ├── UacMqMessageFeignClient.java
│   │       │   │                       └── UacUserTokenFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   ├── change_log/
│   │       │       │   │   └── 2017-06-10-init-schema.xml
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       ├── mapper/
│   │       │       │   ├── UacActionMapper.xml
│   │       │       │   ├── UacGroupMapper.xml
│   │       │       │   ├── UacGroupUserMapper.xml
│   │       │       │   ├── UacLogMapper.xml
│   │       │       │   ├── UacMenuMapper.xml
│   │       │       │   ├── UacRoleActionMapper.xml
│   │       │       │   ├── UacRoleMapper.xml
│   │       │       │   ├── UacRoleMenuMapper.xml
│   │       │       │   ├── UacRoleUserMapper.xml
│   │       │       │   ├── UacUserMapper.xml
│   │       │       │   ├── UacUserMenuMapper.xml
│   │       │       │   └── UacUserTokenMapper.xml
│   │       │       ├── org/
│   │       │       │   └── springframework/
│   │       │       │       └── security/
│   │       │       │           └── messages_zh_CN.properties
│   │       │       ├── static/
│   │       │       │   └── index.html
│   │       │       └── templates/
│   │       │           └── email/
│   │       │               ├── activeUserSuccessTemplate.ftl
│   │       │               ├── activeUserTemplate.ftl
│   │       │               ├── sendRestLoginPwdSuccessTemplate.ftl
│   │       │               ├── sendRestLoginPwdTemplate.ftl
│   │       │               ├── sendRestPwdCodeTemplate.ftl
│   │       │               └── sendRestUserEmailTemplate.ftl
│   │       └── test/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               ├── MD5Test.java
│   │           │               ├── MybatisGenerator.java
│   │           │               ├── PaasCloudUacApplicationTests.java
│   │           │               ├── UacMenuServiceTest.java
│   │           │               ├── UacRoleServiceTest.java
│   │           │               └── UacUserServiceTest.java
│   │           └── resources/
│   │               └── .gitkeep
│   └── pom.xml
├── paascloud-provider-api/
│   ├── paascloud-provider-mdc-api/
│   │   ├── .gitignore
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           ├── exceptions/
│   │                           │   └── MdcBizException.java
│   │                           ├── model/
│   │                           │   ├── constant/
│   │                           │   │   └── MdcApiConstant.java
│   │                           │   ├── dto/
│   │                           │   │   ├── AddressDTO.java
│   │                           │   │   ├── GlobalExceptionLogDto.java
│   │                           │   │   ├── ProductCategoryDto.java
│   │                           │   │   ├── ProductDto.java
│   │                           │   │   └── ProductReqDto.java
│   │                           │   └── vo/
│   │                           │       └── ProductDetailVo.java
│   │                           └── service/
│   │                               ├── MdcAddressQueryFeignApi.java
│   │                               ├── MdcExceptionLogFeignApi.java
│   │                               ├── MdcMqMessageFeignApi.java
│   │                               ├── MdcProductCategoryFeignApi.java
│   │                               ├── MdcProductCategoryQueryFeignApi.java
│   │                               ├── MdcProductFeignApi.java
│   │                               ├── MdcProductQueryFeignApi.java
│   │                               └── hystrix/
│   │                                   ├── MdcAddressQueryFeignHystrix.java
│   │                                   ├── MdcExceptionLogFeignHystrix.java
│   │                                   ├── MdcMqMessageApiHystrix.java
│   │                                   ├── MdcProductCategoryFeignHystrix.java
│   │                                   ├── MdcProductCategoryQueryFeignHystrix.java
│   │                                   ├── MdcProductFeignHystrix.java
│   │                                   └── MdcProductQueryFeignHystrix.java
│   ├── paascloud-provider-omc-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           ├── exceptions/
│   │                           │   └── OmcBizException.java
│   │                           ├── model/
│   │                           │   ├── constant/
│   │                           │   │   ├── OmcApiConstant.java
│   │                           │   │   └── PtcApiConstant.java
│   │                           │   ├── dto/
│   │                           │   │   ├── OrderDetailDto.java
│   │                           │   │   ├── OrderDto.java
│   │                           │   │   └── OrderPageQuery.java
│   │                           │   └── vo/
│   │                           │       ├── CartProductVo.java
│   │                           │       ├── CartVo.java
│   │                           │       ├── OrderDocVo.java
│   │                           │       ├── OrderItemVo.java
│   │                           │       ├── OrderProductVo.java
│   │                           │       ├── OrderVo.java
│   │                           │       └── ShippingVo.java
│   │                           └── service/
│   │                               ├── OmcCartFeignApi.java
│   │                               ├── OmcCartQueryFeignApi.java
│   │                               ├── OmcOrderDetailFeignApi.java
│   │                               ├── OmcOrderDetailQueryFeignApi.java
│   │                               ├── OmcOrderFeignApi.java
│   │                               ├── OmcOrderQueryFeignApi.java
│   │                               └── hystrix/
│   │                                   ├── OmcCartFeignHystrix.java
│   │                                   ├── OmcCartQueryFeignHystrix.java
│   │                                   ├── OmcOrderDetailFeignHystrix.java
│   │                                   ├── OmcOrderDetailQueryFeignHystrix.java
│   │                                   ├── OmcOrderFeignHystrix.java
│   │                                   └── OmcOrderQueryFeignHystrix.java
│   ├── paascloud-provider-opc-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           ├── exceptions/
│   │                           │   └── OpcBizException.java
│   │                           ├── model/
│   │                           │   ├── constant/
│   │                           │   │   └── OpcApiConstant.java
│   │                           │   ├── dto/
│   │                           │   │   ├── PcSendEmailRequest.java
│   │                           │   │   ├── PcSendSmsRequest.java
│   │                           │   │   ├── attachment/
│   │                           │   │   │   ├── OptAttachmentDeleteReqDto.java
│   │                           │   │   │   ├── OptAttachmentQueryReqDto.java
│   │                           │   │   │   ├── OptAttachmentRespDto.java
│   │                           │   │   │   ├── OptUpdateAttachmentReqDto.java
│   │                           │   │   │   └── OptUploadFileByteInfoReqDto.java
│   │                           │   │   ├── gaode/
│   │                           │   │   │   └── GaodeLocation.java
│   │                           │   │   ├── oss/
│   │                           │   │   │   ├── ElementImgUrlDto.java
│   │                           │   │   │   ├── OptBatchGetUrlRequest.java
│   │                           │   │   │   ├── OptGetUrlRequest.java
│   │                           │   │   │   ├── OptUploadFileReqDto.java
│   │                           │   │   │   └── OptUploadFileRespDto.java
│   │                           │   │   └── robot/
│   │                           │   │       ├── AtDto.java
│   │                           │   │       ├── ChatRobotMsgDto.java
│   │                           │   │       ├── LinkDto.java
│   │                           │   │       ├── MarkdownDto.java
│   │                           │   │       └── TextDto.java
│   │                           │   ├── enums/
│   │                           │   │   └── RobotMsgTypeEnum.java
│   │                           │   └── factory/
│   │                           │       └── ChatRobotMsgFactory.java
│   │                           └── service/
│   │                               ├── DingtalkFeignApi.java
│   │                               ├── OpcGaodeFeignApi.java
│   │                               ├── OpcMqMessageFeignApi.java
│   │                               ├── OpcOssFeignApi.java
│   │                               └── hystrix/
│   │                                   ├── DingtalkFeignApiHystrix.java
│   │                                   ├── OpcGaodeFeignApiHystrix.java
│   │                                   ├── OpcMqMessageFeignApiHystrix.java
│   │                                   └── OpcOssFeignApiHystrix.java
│   ├── paascloud-provider-sdk-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               ├── annotation/
│   │           │               │   ├── MqConsumerStore.java
│   │           │               │   └── MqProducerStore.java
│   │           │               ├── aspect/
│   │           │               │   ├── MqConsumerStoreAspect.java
│   │           │               │   └── MqProducerStoreAspect.java
│   │           │               ├── autoconfigure/
│   │           │               │   ├── MessageAutoConfiguration.java
│   │           │               │   └── MessageBeanConfiguration.java
│   │           │               ├── mapper/
│   │           │               │   └── MqMessageDataMapper.java
│   │           │               ├── model/
│   │           │               │   ├── domain/
│   │           │               │   │   └── MqMessageData.java
│   │           │               │   ├── dto/
│   │           │               │   │   └── UpdateAttachmentDto.java
│   │           │               │   └── enums/
│   │           │               │       ├── DelayLevelEnum.java
│   │           │               │       ├── MqMessageTypeEnum.java
│   │           │               │       ├── MqOrderTypeEnum.java
│   │           │               │       └── MqSendTypeEnum.java
│   │           │               └── service/
│   │           │                   ├── MqMessageService.java
│   │           │                   └── impl/
│   │           │                       └── MqMessageServiceImpl.java
│   │           └── resources/
│   │               ├── META-INF/
│   │               │   └── spring.factories
│   │               └── sdk/
│   │                   └── mapper/
│   │                       └── MqMessageDataMapper.xml
│   ├── paascloud-provider-tpc-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           ├── exceptions/
│   │                           │   └── TpcBizException.java
│   │                           ├── model/
│   │                           │   ├── dto/
│   │                           │   │   ├── PcJobTask.java
│   │                           │   │   ├── PcMessageJobTask.java
│   │                           │   │   └── TpcMqMessageDto.java
│   │                           │   └── enums/
│   │                           │       └── JobTaskStatusEnum.java
│   │                           └── service/
│   │                               ├── TpcMqMessageFeignApi.java
│   │                               └── hystrix/
│   │                                   └── TpcMqMessageFeignApiHystrix.java
│   ├── paascloud-provider-uac-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           └── model/
│   │                               ├── constant/
│   │                               │   ├── UacApiConstant.java
│   │                               │   └── UacConstant.java
│   │                               ├── dto/
│   │                               │   └── user/
│   │                               │       ├── ForgetCheckAnswerDto.java
│   │                               │       ├── ForgetResetPasswordDto.java
│   │                               │       ├── IdStatusDto.java
│   │                               │       ├── LoginReqDto.java
│   │                               │       ├── Perm.java
│   │                               │       ├── ResetPasswordDto.java
│   │                               │       ├── UserInfoDto.java
│   │                               │       └── UserRegisterDto.java
│   │                               ├── enums/
│   │                               │   └── UacGroupTypeEnum.java
│   │                               ├── exceptions/
│   │                               │   └── UacBizException.java
│   │                               ├── service/
│   │                               │   ├── UacMqMessageFeignApi.java
│   │                               │   ├── UacUserTokenFeignApi.java
│   │                               │   └── hystrix/
│   │                               │       ├── UacMqMessageApiHystrix.java
│   │                               │       └── UacUserTokenFeignApiHystrix.java
│   │                               └── vo/
│   │                                   └── MenuVo.java
│   └── pom.xml
├── paascloud-zipkin/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── discovery/
│           │               ├── CustomPollerConfiguration.java
│           │               └── PaasCloudZipkinApplication.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               ├── logback-spring.xml
│               └── mysql.sql
└── pom.xml

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar
*.idea

### IntelliJ IDEA ###
logs
.idea
*.iws
*.iml
*.ipr
log.*


# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*


================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, "control" means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity exercising
permissions granted by this License.

"Source" form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.

"Object" form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.

2. Grant of Copyright License.

Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.

3. Grant of Patent License.

Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.

4. Redistribution.

You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:

You must give any other recipients of the Work or Derivative Works a copy of
this License; and
You must cause any modified files to carry prominent notices stating that You
changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.

5. Submission of Contributions.

Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.

6. Trademarks.

This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.

7. Disclaimer of Warranty.

Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.

8. Limitation of Liability.

In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability.

While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work

To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "{}" replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same "printed page" as the copyright notice for easier identification within
third-party archives.

   Copyright 2017 paascloud.net

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

================================================
FILE: README.md
================================================
## Spring Cloud 实战项目

### 项目介绍
```
功能点:
    模拟商城,完整的购物流程、后端运营平台对前端业务的支撑,和对项目的运维,有各项的监控指标和运维指标。
技术点:
       核心技术为springcloud+vue两个全家桶实现,采取了取自开源用于开源的目标,所以能用开源绝不用收费框架,整体技术栈只有
    阿里云短信服务是收费的,都是目前java前瞻性的框架,可以为中小企业解决微服务架构难题,可以帮助企业快速建站。由于服务
    器成本较高,尽量降低开发成本的原则,本项目由10个后端项目和3个前端项目共同组成。真正实现了基于RBAC、jwt和oauth2的
    无状态统一权限认证的解决方案,实现了异常和日志的统一管理,实现了MQ落地保证100%到达的解决方案。
	
	核心框架:springcloud Edgware全家桶
	安全框架:Spring Security Spring Cloud Oauth2
	分布式任务调度:elastic-job
	持久层框架:MyBatis、通用Mapper4、Mybatis_PageHelper
	数据库连接池:Alibaba Druid
	日志管理:Logback	前端框架:Vue全家桶以及相关组件
	三方服务: 邮件服务、阿里云短信服务、七牛云文件服务、钉钉机器人服务、高德地图API
```
### 平台目录结构说明


```
├─paascloud-master----------------------------父项目,公共依赖
│  │
│  ├─paascloud-eureka--------------------------微服务注册中心
│  │
│  ├─paascloud-discovery-----------------------微服务配置中心
│  │
│  ├─paascloud-monitor-------------------------微服务监控中心
│  │
│  ├─paascloud-zipkin--------------------------微服务日志采集中心
│  │
│  ├─paascloud-gateway--------------------------微服务网关中心
│  │
│  ├─paascloud-provider
│  │  │
│  │  ├─paascloud-provider-mdc------------------数据服务中心
│  │  │
│  │  ├─paascloud-provider-omc------------------订单服务中心
│  │  │
│  │  ├─paascloud-provider-opc------------------对接服务中心
│  │  │
│  │  ├─paascloud-provider-tpc------------------任务服务中心
│  │  │
│  │  └─paascloud-provider-uac------------------用户服务中心
│  │
│  ├─paascloud-provider-api
│  │  │
│  │  ├─paascloud-provider-mdc-api------------------数据服务中心API
│  │  │
│  │  ├─paascloud-provider-omc-api------------------订单服务中心API
│  │  │
│  │  ├─paascloud-provider-opc-api------------------对接服务中心API
│  │  │
│  │  ├─paascloud-provider-tpc-api------------------任务服务中心API
│  │  │
│  │  ├─paascloud-provider-sdk-api------------------可靠消息服务API
│  │  │
│  │  └─paascloud-provider-uac-api------------------用户服务中心API
│  │
│  ├─paascloud-common
│  │  │
│  │  ├─paascloud-common-base------------------公共POJO基础包
│  │  │
│  │  ├─paascloud-common-config------------------公共配置包
│  │  │
│  │  ├─paascloud-common-core------------------微服务核心依赖包
│  │  │
│  │  ├─paascloud-common-util------------------公共工具包
│  │  │
│  │  ├─paascloud-common-zk------------------zookeeper配置
│  │  │
│  │  ├─paascloud-security-app------------------公共无状态安全认证
│  │  │
│  │  ├─paascloud-security-core------------------安全服务核心包
│  │  │
│  │  └─paascloud-security-feign------------------基于auth2的feign配置
│  │
│  ├─paascloud-generator
│  │  │
│  │  ├─paascloud-generator-mdc------------------数据服务中心Mybatis Generator
│  │  │
│  │  ├─paascloud-generator-omc------------------数据服务中心Mybatis Generator
│  │  │
│  │  ├─paascloud-generator-opc------------------数据服务中心Mybatis Generator
│  │  │
│  │  ├─paascloud-generator-tpc------------------数据服务中心Mybatis Generator
│  │  │
│  │  └─paascloud-generator-uac------------------数据服务中心Mybatis Generator




```


### 特殊说明


```
这里做一个解释由于微服务的拆分受制于服务器,这里我做了微服务的合并,比如OAuth2的认证服务中心和用户中心合并,
统一的one service服务中心和用户认证中心合并,支付中心和订单中心合并,其实这也是不得已而为之,
只是做了业务微服务中心的合并,并没有将架构中的 注册中心 监控中心 服务发现中心进行合并。
```


### 作者介绍

```
Spring Cloud 爱好者,现就任于鲜易供应链平台研发部.
```

### QQ群交流
 ①:519587831(满)  
 ②:873283104(满)  
 ③:882458726(满)  
 ④:693445268    
 ⑤:813682656    
 ⑥:797334670    
 ⑦:797876073    
 ⑧:814712305    
 ⑨:……    

### FAQ
* [相关问题](https://github.com/paascloud/paascloud-master/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)

## 配套项目

```
后端项目:https://github.com/paascloud/paascloud-master 
         https://gitee.com/paascloud/paascloud-master
登录入口:https://github.com/paascloud/paascloud-login-web
         https://gitee.com/paascloud/paascloud-login-web
后端入口:https://github.com/paascloud/paascloud-admin-web
         https://gitee.com/paascloud/paascloud-admin-web
前端入口:https://github.com/paascloud/paascloud-mall-web
         https://gitee.com/paascloud/paascloud-mall-web
```

### 传送门
- 博客入口: http://blog.paascloud.net
- 后端入口: http://admin.paascloud.net (支持微信登录体验)
- 模拟商城: http://mall.paascloud.net (支持微信登录体验)
- 文档手册: http://document.paascloud.net
- github: https://github.com/paascloud
- 操作手册: http://blog.paascloud.net/2018/06/10/paascloud/doc/

### 架构图

![项目架构图](http://img.paascloud.net/paascloud/doc/paascloud-project.png)








================================================
FILE: paascloud-common/paascloud-common-base/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.liuzm.paascloud.common</groupId>
        <artifactId>paascloud-common</artifactId>
        <version>1.0</version>
    </parent>

    <artifactId>paascloud-common-base</artifactId>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
    </dependencies>
</project>

================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/AliyunMqTopicConstants.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:AliyunMqTopicConstants.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.constant;

import com.google.common.collect.Lists;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * The class Aliyun mq topic constants.
 *
 * @author paascloud.net @gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class AliyunMqTopicConstants {

	/**
	 * The enum Uac mq topic enum.
	 *
	 * @author paascloud.net @gmail.com
	 */
	public enum MqTopicEnum {
		/**
		 * 发送短信.
		 */
		SEND_SMS_TOPIC("SEND_SMS_TOPIC", "发送短信"),
		/**
		 * 发送邮件.
		 */
		SEND_EMAIL_TOPIC("SEND_EMAIL_TOPIC", "发送邮件"),

		/**
		 * Tpc topic mq topic enum.
		 */
		TPC_TOPIC("TPC_TOPIC", "TPC_TOPIC"),
		/**
		 * Opc topic mq topic enum.
		 */
		OPC_TOPIC("OPC_TOPIC", "OPC_TOPIC"),
		/**
		 * Mdc topic mq topic enum.
		 */
		MDC_TOPIC("MDC_TOPIC", "MDC_TOPIC"),;

		MqTopicEnum(String topic, String topicName) {
			this.topic = topic;
			this.topicName = topicName;
		}

		/**
		 * The Topic.
		 */
		String topic;
		/**
		 * The Topic name.
		 */
		String topicName;

		/**
		 * Gets topic.
		 *
		 * @return the topic
		 */
		public String getTopic() {
			return topic;
		}

	}


	/**
	 * The enum Uac mq tag enum.
	 *
	 * @author paascloud.net @gmail.com
	 */
	public enum MqTagEnum {

		/**
		 * 注册获取验证码.
		 */
		REGISTER_USER_AUTH_CODE("REGISTER_USER_AUTH_CODE", MqTopicEnum.SEND_SMS_TOPIC.getTopic(), "注册获取验证码"),
		/**
		 * 修改密码获取验证码.
		 */
		MODIFY_PASSWORD_AUTH_CODE("MODIFY_PASSWORD_AUTH_CODE", MqTopicEnum.SEND_SMS_TOPIC.getTopic(), "修改密码获取验证码"),
		/**
		 * 忘记密码获取验证码.
		 */
		FORGOT_PASSWORD_AUTH_CODE("FORGOT_PASSWORD_AUTH_CODE", MqTopicEnum.SEND_EMAIL_TOPIC.getTopic(), "忘记密码获取验证码"),

		/**
		 * 激活用户.
		 */
		ACTIVE_USER("ACTIVE_USER", MqTopicEnum.SEND_EMAIL_TOPIC.getTopic(), "激活用户"),
		/**
		 * 激活用户成功.
		 */
		ACTIVE_USER_SUCCESS("ACTIVE_USER_SUCCESS", MqTopicEnum.SEND_EMAIL_TOPIC.getTopic(), "激活用户成功"),
		/**
		 * 重置密码
		 */
		RESET_LOGIN_PWD("RESET_LOGIN_PWD", MqTopicEnum.SEND_EMAIL_TOPIC.getTopic(), "重置密码"),

		/**
		 * 重置密码
		 */
		RESET_USER_EMAIL("RESET_LOGIN_PWD", MqTopicEnum.SEND_EMAIL_TOPIC.getTopic(), "重置密码"),

		/**
		 * 删除生产者历史消息
		 */
		DELETE_PRODUCER_MESSAGE("DELETE_PRODUCER_MESSAGE", MqTopicEnum.TPC_TOPIC.getTopic(), "删除生产者历史消息"),

		/**
		 * 删除消费者历史消息
		 */
		DELETE_CONSUMER_MESSAGE("DELETE_CONSUMER_MESSAGE", MqTopicEnum.TPC_TOPIC.getTopic(), "删除消费者历史消息"),

		/**
		 * 发送异常日志.
		 */
		SEND_DINGTALK_MESSAGE("SEND_EXCEPTION_LOG", MqTopicEnum.OPC_TOPIC.getTopic(), "发送异常日志"),

		/**
		 * 更新附件信息.
		 */
		UPDATE_ATTACHMENT("UPDATE_ATTACHMENT", MqTopicEnum.MDC_TOPIC.getTopic(), "更新附件信息"),
		/**
		 * 删除附件信息
		 */
		DELETE_ATTACHMENT("DELETE_ATTACHMENT", MqTopicEnum.MDC_TOPIC.getTopic(), "删除附件信息"),;
		/**
		 * The Tag.
		 */
		String tag;
		/**
		 * The Topic.
		 */
		String topic;
		/**
		 * The Tag name.
		 */
		String tagName;

		MqTagEnum(String tag, String topic, String tagName) {
			this.tag = tag;
			this.topic = topic;
			this.tagName = tagName;
		}

		/**
		 * Gets tag.
		 *
		 * @return the tag
		 */
		public String getTag() {
			return tag;
		}

		/**
		 * Gets topic.
		 *
		 * @return the topic
		 */
		public String getTopic() {
			return topic;
		}
	}

	/**
	 * The class Consumer topics.
	 *
	 * @author paascloud.net @gmail.com
	 */
	@NoArgsConstructor(access = AccessLevel.PRIVATE)
	public static final class ConsumerTopics {

		/**
		 * The constant OPT.
		 */
		public static final String OPT = buildOpcConsumerTopics();
		/**
		 * The constant UAC.
		 */
		public static final String UAC = buildUacConsumerTopics();

	}

	private static String buildOpcConsumerTopics() {
		List<TopicObj> topicObjList = new ArrayList<>();

		Set<String> sendSmsTagList = new HashSet<>();
		sendSmsTagList.add(MqTagEnum.REGISTER_USER_AUTH_CODE.getTag());
		Set<String> sendEmailTagList = new HashSet<>();
		sendEmailTagList.add(MqTagEnum.FORGOT_PASSWORD_AUTH_CODE.getTag());
		sendEmailTagList.add(MqTagEnum.ACTIVE_USER.getTag());
		sendEmailTagList.add(MqTagEnum.ACTIVE_USER_SUCCESS.getTag());
		sendEmailTagList.add(MqTagEnum.RESET_LOGIN_PWD.getTag());
		sendEmailTagList.add(MqTagEnum.RESET_USER_EMAIL.getTag());

		topicObjList.add(new TopicObj(MqTopicEnum.SEND_SMS_TOPIC.getTopic(), sendSmsTagList));
		topicObjList.add(new TopicObj(MqTopicEnum.SEND_EMAIL_TOPIC.getTopic(), sendEmailTagList));

		Set<String> deleteMessageTag = new HashSet<>();
		deleteMessageTag.add(MqTagEnum.DELETE_CONSUMER_MESSAGE.getTag());
		deleteMessageTag.add(MqTagEnum.DELETE_PRODUCER_MESSAGE.getTag());

		topicObjList.add(new TopicObj(MqTopicEnum.TPC_TOPIC.getTopic(), deleteMessageTag));

		Set<String> mdcMqTag = new HashSet<>();
		mdcMqTag.add(MqTagEnum.UPDATE_ATTACHMENT.getTag());
		mdcMqTag.add(MqTagEnum.DELETE_ATTACHMENT.getTag());

		topicObjList.add(new TopicObj(MqTopicEnum.MDC_TOPIC.getTopic(), mdcMqTag));

		return buildOpcConsumerTopics(topicObjList);

	}

	private static String buildUacConsumerTopics() {
		List<TopicObj> topicObjList = Lists.newArrayList();

		Set<String> deleteMessageTag = new HashSet<>();
		deleteMessageTag.add(MqTagEnum.DELETE_CONSUMER_MESSAGE.getTag());
		deleteMessageTag.add(MqTagEnum.DELETE_PRODUCER_MESSAGE.getTag());

		topicObjList.add(new TopicObj(MqTopicEnum.TPC_TOPIC.getTopic(), deleteMessageTag));

		return buildOpcConsumerTopics(topicObjList);

	}

	private static String buildOpcConsumerTopics(List<TopicObj> topicList) {

		StringBuilder result = new StringBuilder();

		if (!CollectionUtils.isEmpty(topicList)) {
			for (TopicObj topicObj : topicList) {
				String topic = topicObj.getTopic();
				Set<String> tagList = topicObj.getTagList();

				if (StringUtils.isEmpty(topic) || CollectionUtils.isEmpty(topicList)) {
					continue;
				}

				StringBuilder tagInfo = new StringBuilder();
				for (String tag : tagList) {
					tagInfo.append(tag).append(GlobalConstant.Symbol.PIPE);
				}
				trimEnd(tagInfo, GlobalConstant.Symbol.PIPE);
				result.append(topic).append(GlobalConstant.Symbol.AT).append(tagInfo).append(GlobalConstant.Symbol.COMMA);
			}
		}
		trimEnd(result, GlobalConstant.Symbol.COMMA);
		return result.toString();

	}

	/**
	 * The class Topic obj.
	 *
	 * @author paascloud.net @gmail.com
	 */
	static class TopicObj {

		private String topic;
		private Set<String> tagList;

		/**
		 * Instantiates a new Topic obj.
		 *
		 * @param topic   the topic
		 * @param tagList the tag list
		 */
		TopicObj(String topic, Set<String> tagList) {
			this.topic = topic;
			this.tagList = tagList;
		}

		/**
		 * Gets topic.
		 *
		 * @return the topic
		 */
		String getTopic() {
			return topic;
		}

		/**
		 * Gets tag list.
		 *
		 * @return the tag list
		 */
		Set<String> getTagList() {
			return tagList;
		}
	}

	private static void trimEnd(StringBuilder stringBuilder, String suffix) {
		if (null == stringBuilder) {
			return;
		}
		String str = stringBuilder.toString();
		if (!StringUtils.isEmpty(suffix) && !str.endsWith(suffix)) {
			return;
		}
		stringBuilder.delete(str.length() - suffix.length(), str.length());
	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/AliyunSmsConstants.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:AliyunSmsConstants.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.constant;

import com.google.common.collect.Lists;
import com.paascloud.base.enums.ErrorCodeEnum;
import com.paascloud.base.exception.BusinessException;
import org.springframework.util.StringUtils;

import java.util.Arrays;
import java.util.List;

/**
 * The class Aliyun sms constants.
 *
 * @author paascloud.net@gmail.com
 */
public class AliyunSmsConstants {

	/**
	 * 短信模板枚举
	 */
	public enum SmsTempletEnum {

		/**
		 * 通用模板(短信内容:验证码${code}, 您正在注册成为paasCloud用户, 感谢您的支持!)
		 */
		UAC_PC_GLOBAL_TEMPLATE("UAC_PC_GLOBAL_TEMPLATE", "SMS_105115057", "code"),;

		private String busType;

		private String templetCode;

		private String smsParamName;

		public static SmsTempletEnum getEnum(String templateCode) {
			SmsTempletEnum smsTempletEnum = null;
			for (SmsTempletEnum ele : SmsTempletEnum.values()) {
				if (templateCode.equals(ele.getTempletCode())) {
					smsTempletEnum = ele;
					break;
				}
			}
			return smsTempletEnum;
		}

		public static boolean isSmsTemplate(String smsTemplateCode) {

			if (StringUtils.isEmpty(smsTemplateCode)) {
				throw new BusinessException(ErrorCodeEnum.UAC10011020);
			}
			List<String> templetCodeList = getTemplateCodeList();

			return templetCodeList.contains(smsTemplateCode);
		}

		public static List<SmsTempletEnum> getList() {
			return Arrays.asList(SmsTempletEnum.values());
		}

		public static List<String> getTemplateCodeList() {
			List<String> templetCodeList = Lists.newArrayList();
			List<SmsTempletEnum> list = getList();
			for (SmsTempletEnum templetEnum : list) {
				if (StringUtils.isEmpty(templetEnum.getTempletCode())) {
					continue;
				}
				templetCodeList.add(templetEnum.getTempletCode());
			}
			return templetCodeList;
		}

		SmsTempletEnum(String busType, String templetCode, String smsParamName) {
			this.busType = busType;
			this.templetCode = templetCode;
			this.smsParamName = smsParamName;
		}

		/**
		 * Gets bus type.
		 *
		 * @return the bus type
		 */
		public String getBusType() {
			return busType;
		}

		/**
		 * Gets templet code.
		 *
		 * @return the templet code
		 */
		public String getTempletCode() {
			return templetCode;
		}

		/**
		 * Gets sms param name.
		 *
		 * @return the sms param name
		 */
		public String getSmsParamName() {
			return smsParamName;
		}
	}


}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/GlobalConstant.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:GlobalConstant.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.constant;

/**
 * The class Global constant.
 *
 * @author paascloud.net@gmail.com
 */
public class GlobalConstant {

	/**
	 * The constant FILE_MAX_SIZE.
	 */
	public static final long FILE_MAX_SIZE = 5 * 1024 * 1024;
	public static final String UNKNOWN = "unknown";

	public static final String X_FORWARDED_FOR = "X-Forwarded-For";
	public static final String X_REAL_IP = "X-Real-IP";
	public static final String PROXY_CLIENT_IP = "Proxy-Client-IP";
	public static final String WL_PROXY_CLIENT_IP = "WL-Proxy-Client-IP";
	public static final String HTTP_CLIENT_IP = "HTTP_CLIENT_IP";
	public static final String HTTP_X_FORWARDED_FOR = "HTTP_X_FORWARDED_FOR";


	public static final String LOCALHOST_IP = "127.0.0.1";
	public static final String LOCALHOST_IP_16 = "0:0:0:0:0:0:0:1";
	public static final int MAX_IP_LENGTH = 15;

	public static final String DEV_PROFILE = "dev";
	public static final String TEST_PROFILE = "test";
	public static final String PRO_PROFILE = "pro";
	public static final int TWO_INT = 2;
	public static final int M_SIZE = 1024;
	public static final String ROOT_PREFIX = "paascloud";

	public static final int EXCEPTION_CAUSE_MAX_LENGTH = 2048;
	public static final int EXCEPTION_MESSAGE_MAX_LENGTH = 2048;

	public static final String ZK_REGISTRY_SERVICE_ROOT_PATH = "/paascloud/registry/service";
	public static final String ZK_REGISTRY_ID_ROOT_PATH = "/paascloud/registry/id";
	public static final String ZK_REGISTRY_PRODUCER_ROOT_PATH = "/paascloud/registry/producer";
	public static final String ZK_REGISTRY_CONSUMER_ROOT_PATH = "/paascloud/registry/consumer";
	public static final String ZK_REGISTRY_SEQ = "/paascloud/seq";

	public interface Number {
		int THOUSAND_INT = 1000;
		int HUNDRED_INT = 100;
		int ONE_INT = 1;
		int TWO_INT = 2;
		int THREE_INT = 3;
		int FOUR_INT = 4;
		int FIVE_INT = 5;
		int SIX_INT = 6;
		int SEVEN_INT = 7;
		int EIGHT_INT = 8;
		int NINE_INT = 9;
		int TEN_INT = 10;
		int EIGHTEEN_INT = 18;
	}


	/**
	 * 系统常量
	 */
	public static final class Sys {

		private Sys() {
		}

		/**
		 * 全局用户名
		 */
		public static final String TOKEN_AUTH_DTO = "CURRENT_USER_DTO";

		/**
		 * 超级管理员的用户ID
		 */
		public static final Long SUPER_MANAGER_USER_ID = 1L;
		/**
		 * 超级管理员的用户编号
		 */
		public static final String SUPER_MANAGER_LOGIN_NAME = "admin";
		/**
		 * 超级管理员角色ID
		 */
		public static final Long SUPER_MANAGER_ROLE_ID = 1L;
		/**
		 * 超级管理员组织ID
		 */
		public static final Long SUPER_MANAGER_GROUP_ID = 1L;
		/**
		 * 运营工作台ID
		 */
		public static final Long OPER_APPLICATION_ID = 1L;

		/**
		 * The constant MENU_ROOT.
		 */
		public static final String MENU_ROOT = "root";

		/**
		 * The constant DEFAULT_FILE_PATH.
		 */
		public static final String DEFAULT_FILE_PATH = "paascloud/file/";

		/**
		 * redis key default expire = 1MINUTES
		 */
		public static final long REDIS_DEFAULT_EXPIRE = 1L;
	}

	/**
	 * The class Symbol.
	 *
	 * @author paascloud.net@gmail.com
	 */
	public static final class Symbol {
		private Symbol() {
		}

		/**
		 * The constant COMMA.
		 */
		public static final String COMMA = ",";
		public static final String SPOT = ".";
		/**
		 * The constant UNDER_LINE.
		 */
		public final static String UNDER_LINE = "_";
		/**
		 * The constant PER_CENT.
		 */
		public final static String PER_CENT = "%";
		/**
		 * The constant AT.
		 */
		public final static String AT = "@";
		/**
		 * The constant PIPE.
		 */
		public final static String PIPE = "||";
		public final static String SHORT_LINE = "-";
		public final static String SPACE = " ";
		public static final String SLASH = "/";
		public static final String MH = ":";

	}

	/**
	 * The class Oss.
	 *
	 * @author paascloud.net@gmail.com
	 */
	public static final class Oss {
		private Oss() {
		}

		/**
		 * The constant DEFAULT_FILE_PATH.
		 */
		public static final String DEFAULT_FILE_PATH = "/default/";
	}


	/**
	 * 图片压缩高度和宽度
	 */
	public static final int IMAGE_WIDTH = 1920;
	/**
	 * The constant IMAGE_HEIGHT.
	 */
	public static final int IMAGE_HEIGHT = 1280;

	/**
	 * The constant Y.
	 */
	public static final Integer Y = 1;
	/**
	 * The constant N.
	 */
	public static final Integer N = 0;

	/**
	 * The enum Payment type enum.
	 *
	 * @author paascloud.net@gmail.com
	 */
	public enum PaymentTypeEnum {
		/**
		 * Online pay payment type enum.
		 */
		ONLINE_PAY(1, "在线支付");

		PaymentTypeEnum(int code, String value) {
			this.code = code;
			this.value = value;
		}

		private String value;
		private int code;

		/**
		 * Gets value.
		 *
		 * @return the value
		 */
		public String getValue() {
			return value;
		}

		/**
		 * Gets code.
		 *
		 * @return the code
		 */
		public int getCode() {
			return code;
		}

		/**
		 * Code of payment type enum.
		 *
		 * @param code the code
		 *
		 * @return the payment type enum
		 */
		public static PaymentTypeEnum codeOf(int code) {
			for (PaymentTypeEnum paymentTypeEnum : values()) {
				if (paymentTypeEnum.getCode() == code) {
					return paymentTypeEnum;
				}
			}
			return null;
		}

	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseQuery.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BaseQuery.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import lombok.Data;

import java.io.Serializable;

/**
 * The class Base query.
 *
 * @author paascloud.net@gmail.com
 */
@Data
public class BaseQuery implements Serializable {

	private static final long serialVersionUID = 3319698607712846427L;

	/**
	 * 当前页
	 */
	private Integer pageNum = 1;

	/**
	 * 每页条数
	 */
	private Integer pageSize = 10;

	/**
	 * 排序
	 */
	private String orderBy;
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseTree.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BaseTree.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * The class Base tree.
 *
 * @param <E>  the type parameter
 * @param <ID> the type parameter
 *
 * @author paascloud.net @gmail.com
 */
@Data
public class BaseTree<E, ID> implements Serializable {
	private static final long serialVersionUID = -5703964834600572016L;

	/**
	 * ID
	 */
	private ID id;

	/**
	 * 父ID
	 */
	private ID pid;

	/**
	 * 是否含有子节点
	 */
	private boolean hasChild = false;

	/**
	 * 子节点集合
	 */
	private List<E> children;
}

================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseVo.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BaseVo.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;


/**
 * The class Base vo.
 *
 * @author paascloud.net@gmail.com
 */
@ApiModel
@Data
public class BaseVo implements Serializable {
	private static final long serialVersionUID = -1695850022460957581L;
	private Long id;

	/**
	 * 创建人
	 */
	private String creator;

	/**
	 * 创建人ID
	 */
	private Long creatorId;

	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createdTime;

	/**
	 * 最近操作人
	 */
	private String lastOperator;

	/**
	 * 最后操作人ID
	 */
	private Long lastOperatorId;

	/**
	 * 更新时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updateTime;
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/CheckValidDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:CheckValidDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * The class Check valid dto.
 *
 * @author paascloud.net@gmail.com
 */
@Data
@ApiModel
public class CheckValidDto implements Serializable {
	private static final long serialVersionUID = 5178470476151416779L;
	/**
	 * 校验的参数值
	 */
	@ApiModelProperty(value = "校验参数值")
	private String validValue;

	/**
	 * 参数类型(列)
	 */
	@ApiModelProperty(value = "参数类型")
	private String type;
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/GaodeBaseDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:GaodeBaseDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * The class Gaode base dto.
 *
 * @author paascloud.net @gmail.com
 */
@Data
@ApiModel
public class GaodeBaseDto implements Serializable{

	private static final long serialVersionUID = 5894304327211503218L;
	/**
	 * 状态
	 */
	@ApiModelProperty(value = "状态")
	private String status;

	/**
	 * 响应信息
	 */
	@ApiModelProperty(value = "响应信息")
	private String info;

	/**
	 * 响应编码
	 */
	@ApiModelProperty(value = "响应编码")
	private String infocode;
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/JobParameter.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:JobParameter.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import com.google.common.base.Preconditions;

import java.io.Serializable;


/**
 * The class Job task model.
 *
 * @author paascloud.net @gmail.com
 */
public class JobParameter implements Serializable {
	private static final long serialVersionUID = -610797345091216847L;

	/**
	 * 每次查询数据量
	 */
	private int fetchNum;
	/**
	 * 取模条件
	 */
	private String condition;
	/**
	 * 取模条件
	 */
	private String taskType;

	public int getFetchNum() {
		Preconditions.checkArgument(fetchNum != 0);
		return fetchNum;
	}

	public void setFetchNum(int fetchNum) {
		this.fetchNum = fetchNum;
	}

	public String getCondition() {
		return condition;
	}

	public void setCondition(String condition) {
		this.condition = condition;
	}

	public String getTaskType() {
		return taskType;
	}

	public void setTaskType(String taskType) {
		this.taskType = taskType;
	}

	@Override
	public String toString() {
		final StringBuilder sb = new StringBuilder("JobTaskParameter{");
		sb.append("fetchNum=").append(fetchNum);
		sb.append(", condition='").append(condition).append('\'');
		sb.append(", taskType='").append(taskType).append('\'');
		sb.append('}');
		return sb.toString();
	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/KvDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:KvDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;


import lombok.Data;

import java.io.Serializable;

/**
 * The class Kv dto.
 *
 * @author paascloud.net@gmail.com
 */
@Data
public class KvDto<K, V> implements Serializable {

	private static final long serialVersionUID = -7712636075929650779L;

	/**
	 * Instantiates a new Kv dto.
	 */
	public KvDto() {
	}

	/**
	 * Instantiates a new Kv dto.
	 *
	 * @param key   the key
	 * @param value the value
	 */
	public KvDto(K key, V value) {
		this.key = key;
		this.value = value;
	}

	/**
	 * key
	 */
	private K key;
	/**
	 * value
	 */
	private V value;

}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/LoginAuthDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:LoginAuthDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * The class Login auth dto.
 *
 * @author paascloud.net@gmail.com
 */
@Data
@ApiModel(value = "登录人信息")
public class LoginAuthDto implements Serializable {
	private static final long serialVersionUID = -1137852221455042256L;
	@ApiModelProperty(value = "用户ID")
	private Long userId;
	@ApiModelProperty(value = "登录名")
	private String loginName;
	@ApiModelProperty(value = "用户名")
	private String userName;
	@ApiModelProperty(value = "组织ID")
	private Long groupId;
	@ApiModelProperty(value = "组织名称")
	private String groupName;

	public LoginAuthDto() {
	}

	public LoginAuthDto(Long userId, String loginName, String userName) {
		this.userId = userId;
		this.loginName = loginName;
		this.userName = userName;
	}

	public LoginAuthDto(Long userId, String loginName, String userName, Long groupId, String groupName) {
		this.userId = userId;
		this.loginName = loginName;
		this.userName = userName;
		this.groupId = groupId;
		this.groupName = groupName;
	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MessageQueryDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:MessageQueryDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;


/**
 * The class Tpc message query dto.
 *
 * @author paascloud.net @gmail.com
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel
public class MessageQueryDto extends BaseQuery {

	private static final long serialVersionUID = 3967075132487249652L;
	/**
	 * messageKey
	 */
	@ApiModelProperty(value = "messageKey")
	private String messageKey;
	/**
	 * messageTopic
	 */
	@ApiModelProperty(value = "messageTopic")
	private String messageTopic;

	/**
	 * messageTag
	 */
	@ApiModelProperty(value = "messageTag")
	private String messageTag;
	/**
	 * 发送状态
	 */
	@ApiModelProperty(value = "发送状态")
	private String messageStatus;

	/**
	 * PID
	 */
	@ApiModelProperty(value = "PID")
	private String producerGroup;

	/**
	 * 消息类型
	 */
	@ApiModelProperty(value = "消息类型")
	private String messageType;


	/**
	 * 开始时间
	 */
	@ApiModelProperty(value = "开始时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date startQueryTime;

	/**
	 * 结束时间
	 */
	@ApiModelProperty(value = "结束时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date endQueryTime;
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MqMessageDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:MqMessageDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import lombok.AllArgsConstructor;
import lombok.Data;

import java.io.Serializable;

/**
 * The class Tpc message dto.
 *
 * @author paascloud.net @gmail.com
 */
@Data
@AllArgsConstructor
public class MqMessageDto implements Serializable {

	private static final long serialVersionUID = -995670498005087805L;
	/**
	 * 消息key
	 */
	private String messageKey;

	/**
	 * topic
	 */
	private String messageTopic;
}

================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MqMessageVo.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:MqMessageVo.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import lombok.Data;
import lombok.EqualsAndHashCode;


/**
 * The class Mq message vo.
 *
 * @author paascloud.net @gmail.com
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class MqMessageVo extends BaseVo {

	private static final long serialVersionUID = 5440371083922622116L;
	/**
	 * 消息key
	 */
	private String messageKey;

	/**
	 * topic
	 */
	private String messageTopic;

	/**
	 * tag
	 */
	private String messageTag;

	/**
	 * 消息内容
	 */
	private String messageBody;

	/**
	 * 消息类型: 10 - 生产者 ; 20 - 消费者
	 */
	private Integer messageType;

	/**
	 * 顺序类型, 0有序 1无序
	 */
	private int orderType;

	/**
	 * 消息状态
	 */
	private Integer status;

	/**
	 * 延时级别
	 */
	private int delayLevel;
}

================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/ShardingContextDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ShardingContextDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * The class Sharding context dto.
 *
 * @author paascloud.net @gmail.com
 */
@Data
@NoArgsConstructor
public class ShardingContextDto {
	/**
	 * The Sharding total count.
	 */
	int shardingTotalCount;
	/**
	 * The Sharding item.
	 */
	int shardingItem;

	public ShardingContextDto(final int shardingTotalCount, final int shardingItem) {
		this.shardingTotalCount = shardingTotalCount;
		this.shardingItem = shardingItem;
	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/UpdateStatusDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:UpdateStatusDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * The class Modify status dto.
 *
 * @author paascloud.net@gmail.com
 */
@Data
@ApiModel(value = "更改状态")
public class UpdateStatusDto implements Serializable {

	private static final long serialVersionUID = 1494899235149813850L;
	/**
	 * 角色ID
	 */
	@ApiModelProperty(value = "角色ID")
	private Long id;

	/**
	 * 状态
	 */
	@ApiModelProperty(value = "状态")
	private Integer status;
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/UserTokenDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:UserTokenDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * The class Uac user token dto.
 *
 * @author paascloud.net @gmail.com
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class UserTokenDto extends LoginAuthDto {
	private static final long serialVersionUID = 3136723742371575367L;
	private Long id;

	/**
	 * 版本号
	 */
	private Integer version;
	/**
	 * 创建人
	 */
	private String creator;

	/**
	 * 创建人ID
	 */
	private Long creatorId;

	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createdTime;

	/**
	 * 最近操作人
	 */
	private String lastOperator;

	/**
	 * 最后操作人ID
	 */
	private Long lastOperatorId;

	/**
	 * 更新时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updateTime;
	/**
	 * 父ID
	 */
	private Long pid;

	/**
	 * 登陆人Ip地址
	 */
	private String loginIp;

	/**
	 * 登录地址
	 */
	private String loginLocation;

	/**
	 * 操作系统
	 */
	private String os;

	/**
	 * 浏览器类型
	 */
	private String browser;

	/**
	 * 访问token
	 */
	private String accessToken;

	/**
	 * 刷新token
	 */
	private String refreshToken;

	/**
	 * 访问token的生效时间(秒)
	 */
	private Integer accessTokenValidity;

	/**
	 * 刷新token的生效时间(秒)
	 */
	private Integer refreshTokenValidity;

	/**
	 * 0 在线 10已刷新 20 离线
	 */
	private Integer status;
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/enums/ErrorCodeEnum.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ErrorCodeEnum.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.enums;


/**
 * The class Error code enum.
 *
 * @author paascloud.net @gmail.com
 */
public enum ErrorCodeEnum {
	/**
	 * Gl 99990100 error code enum.
	 */
	GL99990100(9999100, "参数异常"),
	/**
	 * Gl 99990401 error code enum.
	 */
	GL99990401(99990401, "无访问权限"),
	/**
	 * Gl 000500 error code enum.
	 */
	GL99990500(500, "未知异常"),
	/**
	 * Gl 000403 error code enum.
	 */
	GL99990403(9999403, "无权访问"),
	/**
	 * Gl 000404 error code enum.
	 */
	GL9999404(9999404, "找不到指定资源"),
	/**
	 * Gl 99990001 error code enum.
	 */
	GL99990001(99990001, "注解使用错误"),
	/**
	 * Gl 99990002 error code enum.
	 */
	GL99990002(99990002, "微服务不在线,或者网络超时"),
	/**
	 * Uac 10010001 error code enum.
	 */
//	 1001 用户中心
	UAC10010001(10010001, "会话超时,请刷新页面重试"),
	/**
	 * Uac 10010002 error code enum.
	 */
	UAC10010002(10010002, "TOKEN解析失败"),
	/**
	 * Uac 10010003 error code enum.
	 */
	UAC10010003(10010003, "操作频率过快, 您的帐号已被冻结"),
	/**
	 * Uac 10011001 error code enum.
	 */
	UAC10011001(10011001, "用户Id不能为空"),
	/**
	 * Uac 10011002 error code enum.
	 */
	UAC10011002(10011002, "找不到用户,loginName=%s"),
	/**
	 * Uac 10011003 error code enum.
	 */
	UAC10011003(10011003, "找不到用户,userId=%s"),
	/**
	 * Uac 10011004 error code enum.
	 */
	UAC10011004(10011004, "找不到用户,email=%s"),
	/**
	 * Uac 10011006 error code enum.
	 */
	UAC10011006(10012006, "手机号不能为空"),
	/**
	 * Uac 10011007 error code enum.
	 */
	UAC10011007(10011007, "登录名不能为空"),
	/**
	 * Uac 10011008 error code enum.
	 */
	UAC10011008(10011008, "新密码不能为空"),
	/**
	 * Uac 10011009 error code enum.
	 */
	UAC10011009(10011009, "确认密码不能为空"),
	/**
	 * Uac 10011010 error code enum.
	 */
	UAC10011010(10011010, "两次密码不一致"),
	/**
	 * Uac 10011011 error code enum.
	 */
	UAC10011011(10011011, "用户不存在, userId=%s"),
	/**
	 * Uac 10011012 error code enum.
	 */
	UAC10011012(10011012, "登录名已存在"),
	/**
	 * Uac 10011013 error code enum.
	 */
	UAC10011013(10011013, "手机号已存在"),
	/**
	 * Uac 10011014 error code enum.
	 */
	UAC10011014(10011014, "密码不能为空"),
	/**
	 * Uac 10011016 error code enum.
	 */
	UAC10011016(10011016, "用户名或密码错误"),
	/**
	 * Uac 10011017 error code enum.
	 */
	UAC10011017(10011017, "验证类型错误"),
	/**
	 * Uac 10011018 error code enum.
	 */
	UAC10011018(10011018, "邮箱不能为空"),
	/**
	 * Uac 10011019 error code enum.
	 */
	UAC10011019(10011019, "邮箱已存在"),
	/**
	 * Uac 10011020 error code enum.
	 */
	UAC10011020(10011020, "短信模板不能为空"),
	/**
	 * Uac 10011021 error code enum.
	 */
	UAC10011021(10011021, "发送短信验证码对象转换为json字符串失败"),
	/**
	 * Uac 10011022 error code enum.
	 */
	UAC10011022(10011022, "发送短信验证码失败"),
	/**
	 * Uac 10011023 error code enum.
	 */
	UAC10011023(10011023, "越权操作"),
	/**
	 * Uac 10011024 error code enum.
	 */
	UAC10011024(10011024, "找不到绑定的用户, userId=%"),
	/**
	 * Uac 10011025 error code enum.
	 */
	UAC10011025(10011025, "用户已存在, loginName=%"),
	/**
	 * Uac 10011026 error code enum.
	 */
	UAC10011026(10011026, "更新用户失败, userId=%"),
	/**
	 * Uac 10011027 error code enum.
	 */
	UAC10011027(10011027, "找不到用户,mobile=%s"),
	/**
	 * Uac 10011028 error code enum.
	 */
	UAC10011028(10011028, "链接已失效"),
	/**
	 * Uac 10011029 error code enum.
	 */
	UAC10011029(10011029, "重置密码失败"),
	/**
	 * Uac 10011030 error code enum.
	 */
	UAC10011030(10011030, "激活失败, 链接已过期"),
	/**
	 * Uac 10011031 error code enum.
	 */
	UAC10011031(10011031, "验证码超时, 请重新发送验证码"),
	/**
	 * Uac 10011032 error code enum.
	 */
	UAC10011032(10011032, "邮箱不存在, loginName=%s,email=%s"),
	/**
	 * Uac 10011033 error code enum.
	 */
	UAC10011033(10011033, "清空该用户常用菜单失败"),
	/**
	 * Uac 10011034 error code enum.
	 */
	UAC10011034(10011034, "不允许操作admin用户"),
	/**
	 * Uac 10011035 error code enum.
	 */
	UAC10011035(10011035, "原始密码输入错误"),
	/**
	 * Uac 10011036 error code enum.
	 */
	UAC10011036(10011036, "新密码和原始密码不能相同"),
	/**
	 * Uac 10011037 error code enum.
	 */
	UAC10011037(10011037, "修改用户失败,userId=%s"),
	/**
	 * Uac 10011038 error code enum.
	 */
	UAC10011038(10011038, "激活用户失败,userId=%s"),
	/**
	 * Uac 10011039 error code enum.
	 */
	UAC10011039(10011039, "验证token失败"),
	/**
	 * Uac 10011040 error code enum.
	 */
	UAC10011040(10011040, "解析header失败"),
	/**
	 * Uac 10011041 error code enum.
	 */
	UAC10011041(10011041, "页面已过期,请重新登录"),
	/**
	 * Uac 10011042 error code enum.
	 */
	UAC10011042(10011042, "Cookie转码异常"),
	/**
	 * Uac 10012001 error code enum.
	 */
	UAC10012001(10012001, "角色ID不能为空"),
	/**
	 * Uac 10012002 error code enum.
	 */
	UAC10012002(10012002, "拥有的角色不允许禁用"),
	/**
	 * Uac 10012003 error code enum.
	 */
	UAC10012003(10012003, "系统角色不能删除"),
	/**
	 * Uac 10012004 error code enum.
	 */
	UAC10012004(10012004, "超级角色Id不能为空"),

	/**
	 * Uac 10012005 error code enum.
	 */
	UAC10012005(10012005, "找不到角色信息,roleId=%s"),
	/**
	 * Uac 10012006 error code enum.
	 */
	UAC10012006(10012006, "删除角色失败, roleId=%s"),
	/**
	 * Uac 10012007 error code enum.
	 */
	UAC10012007(10012007, "批量删除角色失败, roleId=%s"),
	/**
	 * Uac 10012008 error code enum.
	 */
	UAC10012008(10012008, "找不到绑定的角色, roleId=%s"),


	/**
	 * Uac 10013001 error code enum.
	 */
	UAC10013001(10013001, "父菜单不存在,menuId=%s"),
	/**
	 * Uac 10013002 error code enum.
	 */
	UAC10013002(10013002, "更新上级菜单失败,menuId=%s"),
	/**
	 * Uac 10013003 error code enum.
	 */
	UAC10013003(10013003, "菜单不存在,menuId=%s"),
	/**
	 * Uac 10013004 error code enum.
	 */
	UAC10013004(10013004, "启用菜单失败,menuId=%s"),
	/**
	 * Uac 10013005 error code enum.
	 */
	UAC10013005(10013005, "禁用菜单失败,menuId=%s"),
	/**
	 * Uac 10013006 error code enum.
	 */
	UAC10013006(10013006, "更新菜单状态失败,menuId=%s"),
	/**
	 * Uac 10013007 error code enum.
	 */
	UAC10013007(10013007, "根菜单不能禁用"),
	/**
	 * Uac 10013008 error code enum.
	 */
	UAC10013008(10013008, "删除菜单失败, menuId=%s"),
	/**
	 * Uac 10013009 error code enum.
	 */
	UAC10013009(10013009, "请先分配菜单"),
	/**
	 * Uac 10013010 error code enum.
	 */
	UAC10013010(10013010, "选择菜单不是根目录,menuId=%s"),


	/**
	 * Uac 10014001 error code enum.
	 */
	UAC10014001(10014001, "找不到权限信息, actionId=%s"),
	/**
	 * Uac 10014002 error code enum.
	 */
	UAC10014002(10014002, "删除失败, actionId=%s"),
	/**
	 * Uac 10014003 error code enum.
	 */
	UAC10014003(10014003, "保存权限信息失败"),
	/**
	 * Uac 10015001 error code enum.
	 */
	UAC10015001(10015001, "找不到组织信息,groupId=%s"),
	/**
	 * Uac 10015002 error code enum.
	 */
	UAC10015002(10015002, "组织状态不存在"),
	/**
	 * Uac 10015003 error code enum.
	 */
	UAC10015003(10015003, "操作越权, 启用子节点, 必须先启用父节点"),
	/**
	 * Uac 10015004 error code enum.
	 */
	UAC10015004(10015004, "找不到组织信息,groupId=%s"),
	/**
	 * Uac 10015006 error code enum.
	 */
	UAC10015006(10015006, "更新组织信息失败,groupId=%s"),
	/**
	 * Uac 10015007 error code enum.
	 */
	UAC10015007(10015007, "该组织下还存在子节点,不能将其删除, Pid=%s"),
	/**
	 * Uac 10015008 error code enum.
	 */
	UAC10015008(10015008, "该组织下绑定的用户,不能将其删除, groupId=%s"),
	/**
	 * Uac 10015009 error code enum.
	 */
	UAC10015009(10015009, "找不到上级组织, groupId=%s"),
	/**
	 * Mdc 10021001 error code enum.
	 */
// 1002 数据中心
	MDC10021001(10021001, "获取地址信息失败"),
	/**
	 * Mdc 10021002 error code enum.
	 */
	MDC10021002(10021002, "找不到该地址信息"),
	/**
	 * Mdc 10021003 error code enum.
	 */
	MDC10021003(10021003, "获取商品信息失败"),
	/**
	 * Mdc 10021004 error code enum.
	 */
	MDC10021004(10021004, "找不到该商品信息,productId=%s"),
	/**
	 * Mdc 10021015 error code enum.
	 */
	MDC10021015(10021015, "商品不是在线售卖状态, productId=%s"),
	/**
	 * Mdc 10021016 error code enum.
	 */
	MDC10021016(10021016, "商品库存不足, productId=%s"),
	/**
	 * Mdc 10021017 error code enum.
	 */
	MDC10021017(10021017, "产品已下架或者删除, productId=%s"),
	/**
	 * Mdc 10021018 error code enum.
	 */
	MDC10021018(10021018, "找不到数据字典信息, dictId=%s"),
	/**
	 * Mdc 10021019 error code enum.
	 */
	MDC10021019(10021019, "更新字典状态失败, dictId=%s"),
	/**
	 * Mdc 10021020 error code enum.
	 */
	MDC10021020(10021020, "上级数据字典不存在, dictId=%s"),
	/**
	 * Mdc 10021021 error code enum.
	 */
	MDC10021021(10021021, "商品ID不能为空"),
	/**
	 * Mdc 10021024 error code enum.
	 */
	MDC10021024(10021024, "商品编码不能为空"),

	/**
	 * Mdc 10023001 error code enum.
	 */
	MDC10023001(10023001, "找不到商品分类信息, categoryId=%s"),

	/**
	 * Mdc 10023002 error code enum.
	 */
	MDC10023002(10023002, "上级商品分类不存在, categoryId=%s"),

	/**
	 * Mdc 10023003 error code enum.
	 */
	MDC10023003(10023003, "更新商品分类状态失败, categoryId=%s"),
	/**
	 * Mdc 10021022 error code enum.
	 */
	MDC10021022(10021022, "更新商品信息失败, productId=%s"),
	/**
	 * Mdc 10021023 error code enum.
	 */
	MDC10021023(10021023, "删除商品信息失败, productId=%s"),
	/**
	 * Omc 10031001 error code enum.
	 */
// 1003 订单中心
	OMC10031001(10031001, "购物车为空, userId=%s"),
	/**
	 * Omc 10031002 error code enum.
	 */
	OMC10031002(10031002, "生成订单失败"),
	/**
	 * Omc 10031003 error code enum.
	 */
	OMC10031003(10031003, "该用户此订单不存在"),
	/**
	 * Omc 10031004 error code enum.
	 */
	OMC10031004(10031004, "已付款, 无法取消订单"),
	/**
	 * Omc 10031005 error code enum.
	 */
	OMC10031005(10031005, "找不到订单信息, orderNo=%s"),
	/**
	 * Omc 10031006 error code enum.
	 */
	OMC10031006(10031006, "清空购物车失败"),
	/**
	 * Omc 10031007 error code enum.
	 */
	OMC10031007(10031007, "不存在默认地址"),
	/**
	 * Omc 10031008 error code enum.
	 */
	OMC10031008(10031008, "更新默认地址失败, addressId=%s"),
	/**
	 * Omc 10031009 error code enum.
	 */
	OMC10031009(10031009, "批量插入订单明细失败"),
	/**
	 * Omc 10031010 error code enum.
	 */
	OMC10031010(10031010, "非快乐学习网的订单, 回调忽略"),
	/**
	 * Omc 10031011 error code enum.
	 */
	OMC10031011(10031011, "支付宝重复调用"),
	/**
	 * Omc 10031012 error code enum.
	 */
	OMC10031012(10031012, "上传失败"),
	/**
	 * Omc 10031013 error code enum.
	 */
	OMC10031013(10031013, "获取附件地址失败"),
	/**
	 * Omc 10031014 error code enum.
	 */
	OMC10031014(10031014, "更新购物车数据失败, cartId=%s"),
	/**
	 * Omc 10031016 error code enum.
	 */
	OMC10031016(10031016, "更新购物车数据失败, cartId=%s"),
	/**
	 * Opc 10040001 error code enum.
	 */
// 1004 对接中心
	OPC10040001(10040001, "根据IP定位失败"),
	/**
	 * Opc 10040002 error code enum.
	 */
	OPC10040002(10040002, "上传文件失败"),
	/**
	 * Opc 10040003 error code enum.
	 */
	OPC10040003(10040003, "文件类型不符"),
	/**
	 * Opc 10040004 error code enum.
	 */
	OPC10040004(10040004, "发送短信失败"),
	/**
	 * Opc 10040005 error code enum.
	 */
	OPC10040005(10040005, "生成邮件消息体失败"),
	/**
	 * Opc 10040006 error code enum.
	 */
	OPC10040006(10040006, "获取模板信息失败"),
	/**
	 * Opc 10040007 error code enum.
	 */
	OPC10040007(10040007, "更新附件失败, id=%s"),
	/**
	 * Opc 10040008 error code enum.
	 */
	OPC10040008(10040008, "找不到该附件信息, id=%s"),
	/**
	 * Opc 10040009 error code enum.
	 */
	OPC10040009(10040009, "上传图片失败"),
	/**
	 * Tpc 10050001 error code enum.
	 */
	OPC10040010(10040010, "文件名不能为空"),
	/**
	 * Opc 10040011 error code enum.
	 */
	OPC10040011(10040011, "今日流量已用尽, 请明天再试"),
	/**
	 * Tpc 10050001 error code enum.
	 */
// 1005 任务中心
	TPC10050001(10050001, "消息的消费Topic不能为空"),
	/**
	 * Tpc 10050002 error code enum.
	 */
	TPC10050002(10050002, "根据消息key查找的消息为空"),
	/**
	 * Tpc 10050003 error code enum.
	 */
	TPC10050003(10050003, "删除消息失败,messageKey=%s"),
	/**
	 * Tpc 10050004 error code enum.
	 */
	TPC10050004(10050004, "消息中心接口异常,message=%s, messageKey=%s"),
	/**
	 * Tpc 10050005 error code enum.
	 */
	TPC10050005(10050005, "目标接口参数不能为空"),
	/**
	 * Tpc 10050006 error code enum.
	 */
	TPC10050006(10050006, "根据任务Id查找的消息为空"),

	/**
	 * Tpc 10050007 error code enum.
	 */
	TPC10050007(10050007, "消息数据不能为空"),
	/**
	 * Tpc 10050008 error code enum.
	 */
	TPC10050008(10050008, "消息体不能为空,messageKey=%s"),
	/**
	 * Tpc 10050009 error code enum.
	 */
	TPC10050009(10050009, "消息KEY不能为空"),
	/**
	 * Tpc 100500010 error code enum.
	 */
	TPC100500010(10050010, "Topic=%s, 无消费者订阅"),
	/**
	 * Tpc 100500011 error code enum.
	 */
	TPC100500011(10050011, "Mq编码转换异常, MessageKey=%s"),
	/**
	 * Tpc 100500012 error code enum.
	 */
	TPC100500012(10050012, "发送MQ失败, MessageKey=%s"),
	/**
	 * Tpc 100500013 error code enum.
	 */
	TPC100500013(10050013, "延迟级别错误, Topic=%s, MessageKey=%s"),
	/**
	 * Tpc 100500014 error code enum.
	 */
	TPC100500014(10050014, "MQ重试三次,仍然发送失败, Topic=%s, MessageKey=%s"),
	/**
	 * Tpc 100500015 error code enum.
	 */
	TPC100500015(10050015, "消息PID不能为空, messageKey=%s"),;
	private int code;
	private String msg;

	/**
	 * Msg string.
	 *
	 * @return the string
	 */
	public String msg() {
		return msg;
	}

	/**
	 * Code int.
	 *
	 * @return the int
	 */
	public int code() {
		return code;
	}

	ErrorCodeEnum(int code, String msg) {
		this.code = code;
		this.msg = msg;
	}

	/**
	 * Gets enum.
	 *
	 * @param code the code
	 *
	 * @return the enum
	 */
	public static ErrorCodeEnum getEnum(int code) {
		for (ErrorCodeEnum ele : ErrorCodeEnum.values()) {
			if (ele.code() == code) {
				return ele;
			}
		}
		return null;
	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/BooleanParseException.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BooleanParseException.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.exception;

/**
 * The class Boolean parse exception.
 *
 * @author paascloud.net@gmail.com
 */
public class BooleanParseException extends RuntimeException {

	/**
	 * Instantiates a new Boolean parse exception.
	 */
	public BooleanParseException() {
		super();
	}

	/**
	 * Instantiates a new Boolean parse exception.
	 *
	 * @param message the message
	 */
	public BooleanParseException(String message) {
		super(message);
	}

	/**
	 * Instantiates a new Boolean parse exception.
	 *
	 * @param message the message
	 * @param cause   the cause
	 */
	public BooleanParseException(String message, Throwable cause) {
		super(message, cause);
	}

	/**
	 * Instantiates a new Boolean parse exception.
	 *
	 * @param cause the cause
	 */
	public BooleanParseException(Throwable cause) {
		super(cause);
	}

}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/BusinessException.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BusinessException.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.exception;


import com.paascloud.base.enums.ErrorCodeEnum;
import lombok.extern.slf4j.Slf4j;

/**
 * 业务异常.
 *
 * @author paascloud.net @gmail.com
 */
@Slf4j
public class BusinessException extends RuntimeException {

	/**
	 * 异常码
	 */
	protected int code;

	private static final long serialVersionUID = 3160241586346324994L;

	public BusinessException() {
	}

	public BusinessException(Throwable cause) {
		super(cause);
	}

	public BusinessException(String message) {
		super(message);
	}

	public BusinessException(String message, Throwable cause) {
		super(message, cause);
	}

	public BusinessException(int code, String message) {
		super(message);
		this.code = code;
	}

	public BusinessException(int code, String msgFormat, Object... args) {
		super(String.format(msgFormat, args));
		this.code = code;
	}

	public BusinessException(ErrorCodeEnum codeEnum, Object... args) {
		super(String.format(codeEnum.msg(), args));
		this.code = codeEnum.code();
	}

	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ConfigException.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ConfigException.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.exception;

/**
 * The class Config exception.
 *
 * @author paascloud.net@gmail.com
 */
public class ConfigException extends RuntimeException {

	private static final long serialVersionUID = 6480772904575978373L;

	/**
	 * Instantiates a new Config exception.
	 *
	 * @param message the message
	 */
	public ConfigException(String message) {
		super(message);
	}

	/**
	 * Instantiates a new Config exception.
	 */
	public ConfigException() {

	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ImportException.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ImportException.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.exception;


/**
 * The class Import exception.
 *
 * @author paascloud.net@gmail.com
 */
public class ImportException extends RuntimeException {

	private static final long serialVersionUID = -4740091660440744697L;

	/**
	 * Instantiates a new Import exception.
	 *
	 * @param message the message
	 */
	public ImportException(String message) {
		super(message);
	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ReferenceModelNullException.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ReferenceModelNullException.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.base.exception;

/**
 * The class Reference model null exception.
 *
 * @author paascloud.net@gmail.com
 */
public class ReferenceModelNullException extends RuntimeException {
	private static final long serialVersionUID = -318154770875589045L;

	/**
	 * Instantiates a new Reference model null exception.
	 *
	 * @param message the message
	 */
	public ReferenceModelNullException(String message) {
		super(message);
	}
}


================================================
FILE: paascloud-common/paascloud-common-base/src/main/resources/.gitkeep
================================================


================================================
FILE: paascloud-common/paascloud-common-base/src/test/java/.gitkeep
================================================


================================================
FILE: paascloud-common/paascloud-common-config/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.liuzm.paascloud.common</groupId>
        <artifactId>paascloud-common</artifactId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>paascloud-common-config</artifactId>
    <version>1.0</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
        </dependency>
        <dependency>
            <groupId>com.liuzm.paascloud.common</groupId>
            <artifactId>paascloud-common-base</artifactId>
        </dependency>
    </dependencies>


</project>

================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/PaascloudCoreConfig.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:PaascloudCoreConfig.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.config;


import com.paascloud.config.properties.PaascloudProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * The class Aliyun core config.
 *
 * @author paascloud.net @gmail.com
 */
@Configuration
@EnableConfigurationProperties(PaascloudProperties.class)
public class PaascloudCoreConfig {
}


================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/AliyunProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:AliyunProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.config.properties;

import lombok.Data;

/**
 * The class Aliyun properties.
 *
 * @author paascloud.net @gmail.com
 */
@Data
public class AliyunProperties {
	private AliyunKeyProperties key = new AliyunKeyProperties();
	private RocketMqProperties rocketMq = new RocketMqProperties();
	private AliyunSmsProperties sms = new AliyunSmsProperties();

	@Data
	public class AliyunKeyProperties {
		/**
		 * 秘钥id
		 */
		private String accessKeyId;

		/**
		 * 秘钥
		 */
		private String accessKeySecret;
	}

	@Data
	public class RocketMqProperties {
		private String consumerGroup;
		private String producerGroup;
		private String namesrvAddr;
		/**
		 * 生产者是否使用可靠消息, 默认不使用 @MqConsumerStore
		 */
		private boolean reliableMessageProducer;
		/**
		 * 消费者是否使用可靠消息, 默认不使用 @MqProducerStore
		 */
		private boolean reliableMessageConsumer;
	}

	@Data
	public class AliyunSmsProperties {

		/**
		 * 阿里云管理控制台中配置的短信签名(状态必须是验证通过)
		 */
		private String signName;

		/**
		 * 机房信息
		 */
		private String regionId;

		/**
		 * 端点
		 */
		private String endpoint;

		/**
		 * 端点名称
		 */
		private String endpointName;

		private String product;

		private String domain;
	}
}

================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/AsyncTaskProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:AsyncTaskProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */
package com.paascloud.config.properties;

import lombok.Data;

/**
 * The class Async task properties.
 *
 * @author paascloud.net @gmail.com
 */
@Data
public class AsyncTaskProperties {

	private int corePoolSize = 50;

	private int maxPoolSize = 100;

	private int queueCapacity = 10000;

	private int keepAliveSeconds = 3000;

	private String threadNamePrefix = "paascloud-task-executor-";
}


================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/GaodeProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:GaodeProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.config.properties;

import lombok.Data;


/**
 * The class Gaode properties.
 *
 * @author paascloud.net @gmail.com
 */
@Data
public class GaodeProperties {
	private String key = "f8bdce6f882a98635bb0b7b897331327";
}


================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/JobProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:JobProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.config.properties;

import lombok.Data;

/**
 * The class Job core properties.
 *
 * @author paascloud.net @gmail.com
 */
@Data
public class JobProperties {
    private JobTask task = new JobTask();


    @Data
    public class JobTask {
        private JobCoreProperties dingTalk = new JobCoreProperties();
        private JobCoreProperties sendingMessage = new JobCoreProperties();
        private JobCoreProperties waitingMessage = new JobCoreProperties();

        @Data
        public class JobCoreProperties {
            /**
             * 作业名称
             */
            private String jobName;
            /**
             * cron表达式,用于控制作业触发时间
             */
            private String cron;
            /**
             * 作业分片总数
             */
            private int shardingTotalCount;
            /**
             * 分片序列号和参数用等号分隔,多个键值对用逗号分隔,分片序列号从0开始,不可大于或等于作业分片总数如:0=a,1=b,2=c
             */
            private String shardingItemParameters;

            /**
             * 作业自定义参数,可通过传递该参数为作业调度的业务方法传参,用于实现带参数的作业例:每次获取的数据量、作业实例从数据库读取的主键等
             */
            private String jobParameter;
            /**
             * 是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,允许将该次未完成的任务在另一作业节点上补偿执行
             */
            private boolean failover;
            /**
             * 是否开启错过任务重新执行
             */
            private boolean misfire = true;
            /**
             * 作业描述信息
             */
            private String description;

            /**
             * 配置jobProperties定义的枚举控制Elastic-Job的实现细节JOB_EXCEPTION_HANDLER用于扩展异常处理类EXECUTOR_SERVICE_HANDLER用于扩展作业处理线程池类
             */
            private Enum jobProperties;
        }
    }
}


================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/PaascloudProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:PaascloudProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.config.properties;


import com.paascloud.base.constant.GlobalConstant;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * The class Paascloud properties.
 *
 * @author paascloud.net @gmail.com
 */
@Data
@ConfigurationProperties(prefix = GlobalConstant.ROOT_PREFIX)
public class PaascloudProperties {
	private ReliableMessageProperties message = new ReliableMessageProperties();
	private AliyunProperties aliyun = new AliyunProperties();
	private AsyncTaskProperties task = new AsyncTaskProperties();
	private SwaggerProperties swagger = new SwaggerProperties();
	private QiniuProperties qiniu = new QiniuProperties();
	private GaodeProperties gaode = new GaodeProperties();
	private JobProperties job = new JobProperties();
	private ZookeeperProperties zk = new ZookeeperProperties();
}


================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/QiniuProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:QiniuProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.config.properties;

import lombok.Data;

/**
 * The class Qiniu oss properties.
 *
 * @author paascloud.net@gmail.com
 */
@Data
public class QiniuProperties {
	private QiniuKeyProperties key = new QiniuKeyProperties();
	private QiniuOssProperties oss = new QiniuOssProperties();

	@Data
	public class QiniuKeyProperties {
		private String accessKey;
		private String secretKey;
	}

	@Data
	public class QiniuOssProperties {
		private String privateHost;
		private String publicHost;
		private Long fileMaxSize;
	}
}


================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/ReliableMessageProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ReliableMessageProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.config.properties;

/**
 * The class Reliable message properties.
 *
 * @author paascloud.net @gmail.com
 */
public class ReliableMessageProperties {
}


================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/SwaggerProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:SwaggerProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.config.properties;

import lombok.Data;

/**
 * The class Async task properties.
 *
 * @author paascloud.net @gmail.com
 */
@Data
public class SwaggerProperties {

	private String title;

	private String description;

	private String version = "1.0";

	private String license = "Apache License 2.0";

	private String licenseUrl = "http://www.apache.org/licenses/LICENSE-2.0";

	private String contactName = "无痕";

	private String contactUrl = "http://paascloud.net";

	private String contactEmail = "paascloud.net@gmail.com";
}


================================================
FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/ZookeeperProperties.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ZookeeperProperties.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.config.properties;


import lombok.Data;

/**
 * The class Job zookeeper properties.
 *
 * @author paascloud.net @gmail.com
 */
@Data
public class ZookeeperProperties {
	/**
	 * 连接Zookeeper服务器的列表
	 * 包括IP地址和端口号
	 * 多个地址用逗号分隔
	 * 如: host1:2181,host2:2181
	 */
	private String zkAddressList;

	/**
	 * Zookeeper的命名空间
	 */
	private String namespace;

	/**
	 * 等待重试的间隔时间的初始值
	 * 单位:毫秒
	 */
	private int baseSleepTimeMilliseconds = 1000;

	/**
	 * 等待重试的间隔时间的最大值
	 * 单位:毫秒
	 */
	private int maxSleepTimeMilliseconds = 3000;

	/**
	 * 最大重试次数
	 */
	private int maxRetries = 3;

	/**
	 * 连接超时时间
	 * 单位:毫秒
	 */
	private int connectionTimeoutMilliseconds = 15000;

	/**
	 * 会话超时时间
	 * 单位:毫秒
	 */
	private int sessionTimeoutMilliseconds = 60000;

	/**
	 * 连接Zookeeper的权限令牌
	 * 缺省为不需要权限验
	 */
	private String digest;
}


================================================
FILE: paascloud-common/paascloud-common-core/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.liuzm.paascloud.common</groupId>
        <artifactId>paascloud-common</artifactId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>paascloud-common-core</artifactId>
    <version>1.0</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-oauth2</artifactId>
        </dependency>
        <dependency>
            <groupId>com.liuzm.paascloud.common</groupId>
            <artifactId>paascloud-common-base</artifactId>
        </dependency>
        <dependency>
            <groupId>com.liuzm.paascloud.common</groupId>
            <artifactId>paascloud-common-util</artifactId>
        </dependency>

        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>
        <dependency>
            <groupId>eu.bitwalker</groupId>
            <artifactId>UserAgentUtils</artifactId>
            <version>1.20</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- https://github.com/FasterXML/jackson-modules-java8 -->
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-parameter-names</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jdk8</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>
        <dependency>
            <groupId>com.liuzm.paascloud.common</groupId>
            <artifactId>paascloud-common-config</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
        </dependency>
      <dependency>
        <groupId>com.arronlong.httpclientutil</groupId>
        <artifactId>httpclientutil</artifactId>
      </dependency>
      <dependency>
        <groupId>com.liuzm.paascloud.common</groupId>
        <artifactId>paascloud-common-zk</artifactId>
      </dependency>

      <dependency>
        <groupId>com.netflix.hystrix</groupId>
        <artifactId>hystrix-core</artifactId>
        <version>1.5.10</version>
      </dependency>
    </dependencies>

</project>

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/LogAnnotation.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:LogAnnotation.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.annotation;

import com.paascloud.core.enums.LogTypeEnum;

import java.lang.annotation.*;


/**
 * 操作日志.
 *
 * @author paascloud.net@gmail.com
 */
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LogAnnotation {
	/**
	 * 日志类型
	 *
	 * @return the log type enum
	 */
	LogTypeEnum logType() default LogTypeEnum.OPERATION_LOG;

	/**
	 * 是否保存请求的参数
	 *
	 * @return the boolean
	 */
	boolean isSaveRequestData() default false;

	/**
	 * 是否保存响应的结果
	 *
	 * @return the boolean
	 */
	boolean isSaveResponseData() default false;
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/NotDisplaySql.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:NotDisplaySql.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.annotation;

import java.lang.annotation.*;

/**
 * 配合 SqlLogInterceptor 对指定方法 禁止打印SQL到控制台
 *
 * @author paascloud.net @gmail.com
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface NotDisplaySql {
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/OperationLogDto.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:OperationLogDto.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.annotation;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;


/**
 * The class Operation log dto.
 *
 * @author paascloud.net@gmail.com
 */
@Data
public class OperationLogDto implements Serializable {
	private static final long serialVersionUID = -5606865665592482762L;
	private Long id;

	/**
	 * 组织流水号
	 */
	private Long groupId;

	/**
	 * 组织名称
	 */
	private String groupName;

	/**
	 * 日志类型
	 */
	private String logType;

	/**
	 * 日志类型名称
	 */
	private String logName;

	/**
	 * 权限ID
	 */
	private Long actionId;

	/**
	 * 权限编码
	 */
	private String actionCode;

	/**
	 * 权限名称
	 */
	private String actionName;

	/**
	 * 操作系统
	 */
	private String os;

	/**
	 * 浏览器类型
	 */
	private String browser;

	/**
	 * IP地址
	 */
	private String ip;

	/**
	 * 操作位置
	 */
	private String location;

	/**
	 * 物理地址
	 */
	private String mac;

	/**
	 * 详细描述
	 */
	private String description;

	/**
	 * 请求参数
	 */
	private String requestData;

	/**
	 * 请求地址
	 */
	private String requestUrl;

	/**
	 * 响应结果
	 */
	private String responseData;

	/**
	 * 类名
	 */
	private String className;

	/**
	 * 方法名
	 */
	private String methodName;

	/**
	 * 开始时间
	 */
	private Date startTime;

	/**
	 * 结束时间
	 */
	private Date endTime;

	/**
	 * 耗时,秒
	 */
	private Long excuteTime;

	/**
	 * 创建人
	 */
	private String creator;

	/**
	 * 创建人ID
	 */
	private Long creatorId;

	/**
	 * 创建时间
	 */
	private Date createdTime;

	/**
	 * 最近操作人
	 */
	private String lastOperator;

	/**
	 * 最后操作人ID
	 */
	private Long lastOperatorId;

	/**
	 * 更新时间
	 */
	private Date updateTime;

}

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/ValidateAnnotation.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ValidateAnnotation.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.annotation;

import java.lang.annotation.*;

/**
 * The interface Validate annotation.
 *
 * @author paascloud.net@gmail.com
 */
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ValidateAnnotation {
	/**
	 * Is validate boolean.
	 *
	 * @return the boolean
	 */
	boolean isValidate() default true;
}

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/BindingResultAop.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BindingResultAop.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.aspect;

import com.paascloud.core.annotation.ValidateAnnotation;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
import org.springframework.validation.BindingResult;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

/**
 * The class Binding result aop.
 *
 * @author paascloud.net@gmail.com
 */
@Component
@Aspect
@Slf4j
public class BindingResultAop {
	/**
	 * Validate annotation.
	 */
	@Pointcut("@annotation(com.paascloud.core.annotation.ValidateAnnotation)")
	public void validateAnnotation() {
	}

	/**
	 * Do before.
	 */
	@Before("validateAnnotation()")
	public void doBefore() {
	}

	/**
	 * Do after.
	 *
	 * @param joinPoint the join point
	 */
	@AfterReturning(pointcut = "validateAnnotation()")
	public void doAfter(final JoinPoint joinPoint) {
		String methodName = joinPoint.getSignature().getName();
		Object target = joinPoint.getTarget();
		//得到拦截的方法
		Method method = getMethodByClassAndName(target.getClass(), methodName);
		Object[] objects = joinPoint.getArgs();
		//方法的参数
		assert method != null;
		ValidateAnnotation annotation = (ValidateAnnotation) getAnnotationByMethod(method, ValidateAnnotation.class);
		if (annotation != null) {
			BindingResult bindingResult = null;
			for (Object arg : objects) {
				if (arg instanceof BindingResult) {
					bindingResult = (BindingResult) arg;
				}
			}
			if (bindingResult != null && bindingResult.hasErrors()) {
				String errorInfo = bindingResult.getFieldError().getDefaultMessage();
				throw new IllegalArgumentException(errorInfo);
			}
		}
	}

	/**
	 * 根据目标方法和注解类型  得到该目标方法的指定注解
	 */
	private Annotation getAnnotationByMethod(Method method, Class annoClass) {
		Annotation[] all = method.getAnnotations();
		for (Annotation annotation : all) {
			if (annotation.annotationType() == annoClass) {
				return annotation;
			}
		}
		return null;
	}

	/**
	 * 根据类和方法名得到方法
	 */
	private Method getMethodByClassAndName(Class c, String methodName) {
		Method[] methods = c.getDeclaredMethods();
		for (Method method : methods) {
			if (method.getName().equals(methodName)) {
				return method;
			}
		}
		return null;
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/LogAspect.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:LogAspect.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.aspect;


import com.paascloud.JacksonUtil;
import com.paascloud.PubUtils;
import com.paascloud.base.dto.LoginAuthDto;
import com.paascloud.core.annotation.LogAnnotation;
import com.paascloud.core.annotation.OperationLogDto;
import com.paascloud.core.utils.RequestUtil;
import com.paascloud.wrapper.Wrapper;
import eu.bitwalker.useragentutils.UserAgent;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;
import java.util.Date;

/**
 * The class Log aspect.
 *
 * @author paascloud.net@gmail.com
 */
@Slf4j
@Aspect
@Component
public class LogAspect {

	private ThreadLocal<Date> threadLocal = new ThreadLocal<>();

	@Resource
	private RestTemplate restTemplate;

	@Resource
	private TaskExecutor taskExecutor;

	private static final int MAX_SIZE = 2000;

	/**
	 * Log annotation.
	 */
	@Pointcut("@annotation(com.paascloud.core.annotation.LogAnnotation)")
	public void logAnnotation() {
	}

	/**
	 * Do before.
	 */
	@Before("logAnnotation()")
	public void doBefore() {
		this.threadLocal.set(new Date(System.currentTimeMillis()));
	}

	/**
	 * Do after.
	 *
	 * @param joinPoint   the join point
	 * @param returnValue the return value
	 */
	@AfterReturning(pointcut = "logAnnotation()", returning = "returnValue")
	public void doAfter(final JoinPoint joinPoint, final Object returnValue) {
		if (returnValue instanceof Wrapper) {
			Wrapper result = (Wrapper) returnValue;

			if (!PubUtils.isNull(result) && result.getCode() == Wrapper.SUCCESS_CODE) {
				this.handleLog(joinPoint, result);
			}

		}

	}

	private void handleLog(final JoinPoint joinPoint, final Object result) {
		final Date startTime = this.threadLocal.get();
		final Date endTime = new Date(System.currentTimeMillis());
		HttpServletRequest request = RequestUtil.getRequest();
		final UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
		String requestURI = request.getRequestURI();

		try {
			LogAnnotation relog = giveController(joinPoint);
			LoginAuthDto loginUser = RequestUtil.getLoginUser();
			if (relog == null) {
				return;
			}
			//获取客户端操作系统
			final String os = userAgent.getOperatingSystem().getName();
			//获取客户端浏览器
			final String browser = userAgent.getBrowser().getName();
			final String ipAddress = RequestUtil.getRemoteAddr(request);

			OperationLogDto operationLogDto = new OperationLogDto();
			operationLogDto.setClassName(joinPoint.getTarget().getClass().getName());
			operationLogDto.setMethodName(joinPoint.getSignature().getName());
			operationLogDto.setExcuteTime(endTime.getTime() - startTime.getTime());
			operationLogDto.setStartTime(startTime);
			operationLogDto.setEndTime(endTime);
			operationLogDto.setIp(ipAddress);
			operationLogDto.setOs(os);
			operationLogDto.setBrowser(browser);
			operationLogDto.setRequestUrl(requestURI);

			operationLogDto.setGroupId(loginUser.getGroupId());
			operationLogDto.setGroupName(loginUser.getGroupName());
			operationLogDto.setCreatedTime(new Date());
			operationLogDto.setCreator(loginUser.getUserName());
			operationLogDto.setCreatorId(loginUser.getUserId());
			operationLogDto.setLastOperator(loginUser.getUserName());
			operationLogDto.setLastOperatorId(loginUser.getUserId());

			operationLogDto.setLogType(relog.logType().getType());
			operationLogDto.setLogName(relog.logType().getName());

			getControllerMethodDescription(relog, operationLogDto, result, joinPoint);
			threadLocal.remove();
			taskExecutor.execute(() -> this.restTemplate.postForObject("http://paascloud-provider-uac/auth/saveLog", operationLogDto, Integer.class));
		} catch (Exception ex) {
			log.error("获取注解类出现异常={}", ex.getMessage(), ex);
		}
	}


	private void getControllerMethodDescription(LogAnnotation relog, OperationLogDto operationLog, Object result, JoinPoint joinPoint) {


		if (relog.isSaveRequestData()) {
			setRequestData(operationLog, joinPoint);
		}
		if (relog.isSaveResponseData()) {
			setResponseData(operationLog, result);
		}
	}

	private void setResponseData(OperationLogDto requestLog, Object result) {
		try {
			requestLog.setResponseData(String.valueOf(result));
		} catch (Exception e) {
			log.error("获取响应数据,出现错误={}", e.getMessage(), e);
		}
	}

	private void setRequestData(OperationLogDto uacLog, JoinPoint joinPoint) {

		try {
			Object[] args = joinPoint.getArgs();
			if (args.length == 0) {
				return;
			}
			Object[] parameter = new Object[args.length];
			int index = 0;
			for (Object object : parameter) {
				if (object instanceof HttpServletRequest) {
					continue;
				}
				parameter[index] = object;
				index++;
			}

			String requestData = JacksonUtil.toJsonWithFormat(parameter);

			if (requestData.length() > MAX_SIZE) {
				requestData = requestData.substring(MAX_SIZE);
			}

			uacLog.setRequestData(requestData);
		} catch (Exception e) {
			log.error("获取响应数据,出现错误={}", e.getMessage(), e);
		}
	}

	/**
	 * 是否存在注解, 如果存在就记录日志
	 */
	private static LogAnnotation giveController(JoinPoint joinPoint) {
		Method[] methods = joinPoint.getTarget().getClass().getDeclaredMethods();
		String methodName = joinPoint.getSignature().getName();
		if (null != methods && 0 < methods.length) {
			for (Method met : methods) {
				LogAnnotation relog = met.getAnnotation(LogAnnotation.class);
				if (null != relog && methodName.equals(met.getName())) {
					return relog;
				}
			}
		}

		return null;
	}

}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/NotDisplaySqlAspect.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:NotDisplaySqlAspect.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.aspect;

import com.paascloud.ThreadLocalMap;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * The class Not display sql aspect.
 *
 * @author paascloud.net @gmail.com
 */
@Aspect
@Component
public class NotDisplaySqlAspect {
	/**
	 * The constant DISPLAY_SQL.
	 */
	public static final String DISPLAY_SQL = "DISPLAY_SQL";

	@Pointcut("@annotation(com.paascloud.core.annotation.NotDisplaySql)")
	private void myPointCut() {
	}

	/**
	 * Before.
	 */
	@Before(value = "myPointCut()")
	public void before() {
		ThreadLocalMap.put(DISPLAY_SQL, Boolean.FALSE);
	}

	/**
	 * After.
	 */
	@After(value = "myPointCut()")
	public void after() {
		ThreadLocalMap.remove(DISPLAY_SQL);
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/AsyncTaskExecutorConfiguration.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:AsyncTaskExecutorConfiguration.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.config;

import com.paascloud.config.properties.PaascloudProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.aop.interceptor.SimpleAsyncUncaughtExceptionHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import javax.annotation.Resource;
import java.util.concurrent.Executor;

/**
 * The class Async config.
 *
 * @author paascloud.net @gmail.com
 */
@Configuration
@EnableAsync
@EnableScheduling
public class AsyncTaskExecutorConfiguration implements AsyncConfigurer {
	private final Logger log = LoggerFactory.getLogger(getClass());
	@Resource
	private PaascloudProperties paascloudProperties;

	@Override
	@Bean(name = "taskExecutor")
	public Executor getAsyncExecutor() {
		log.debug("Creating Async Task Executor");
		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
		executor.setCorePoolSize(paascloudProperties.getTask().getCorePoolSize());
		executor.setMaxPoolSize(paascloudProperties.getTask().getMaxPoolSize());
		executor.setQueueCapacity(paascloudProperties.getTask().getQueueCapacity());
		executor.setKeepAliveSeconds(paascloudProperties.getTask().getKeepAliveSeconds());
		executor.setThreadNamePrefix(paascloudProperties.getTask().getThreadNamePrefix());
		return new ExceptionHandlingAsyncTaskExecutor(executor);
	}

	@Override
	public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
		return new SimpleAsyncUncaughtExceptionHandler();
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/CoreConfiguration.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:CoreConfiguration.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.config;

import com.paascloud.core.interceptor.SqlLogInterceptor;
import com.paascloud.core.interceptor.TokenInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.HandlerInterceptor;

/**
 * 加载LWR规则.
 *
 * @author paascloud.net@gmail.com
 */
@Configuration
public class CoreConfiguration {
	@LoadBalanced
	@Bean
	public RestTemplate restTemplate() {
		return new RestTemplate();
	}

	@Bean
	public SqlLogInterceptor sqlLogInterceptor() {
		return new SqlLogInterceptor();
	}


	@Bean
	@ConditionalOnMissingBean(HandlerInterceptor.class)
	@ConditionalOnProperty(prefix = "paascloud.token.interceptor", name = "enable", havingValue = "true")
	public TokenInterceptor tokenInterceptor() {
		return new TokenInterceptor();
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/ExceptionHandlingAsyncTaskExecutor.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ExceptionHandlingAsyncTaskExecutor.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.task.AsyncTaskExecutor;

import java.util.concurrent.Callable;
import java.util.concurrent.Future;

/**
 * The class Exception handling async task executor.
 *
 * @author paascloud.net @gmail.com
 */
@Slf4j
public class ExceptionHandlingAsyncTaskExecutor implements AsyncTaskExecutor, InitializingBean, DisposableBean {

	private final AsyncTaskExecutor executor;

	/**
	 * Instantiates a new Exception handling async task executor.
	 *
	 * @param executor the executor
	 */
	ExceptionHandlingAsyncTaskExecutor(AsyncTaskExecutor executor) {
		this.executor = executor;
	}

	/**
	 * Execute.
	 *
	 * @param task the task
	 */
	@Override
	public void execute(Runnable task) {
		executor.execute(createWrappedRunnable(task));
	}

	/**
	 * Execute.
	 *
	 * @param task         the task
	 * @param startTimeout the start timeout
	 */
	@Override
	public void execute(Runnable task, long startTimeout) {
		executor.execute(createWrappedRunnable(task), startTimeout);
	}

	private <T> Callable<T> createCallable(final Callable<T> task) {
		return () -> {
			try {
				return task.call();
			} catch (Exception e) {
				handle(e);
				throw e;
			}
		};
	}

	private Runnable createWrappedRunnable(final Runnable task) {
		return () -> {
			try {
				task.run();
			} catch (Exception e) {
				handle(e);
			}
		};
	}

	/**
	 * Handle.
	 *
	 * @param e the e
	 */
	private void handle(Exception e) {
		log.error("Caught async exception", e);
	}

	/**
	 * Submit future.
	 *
	 * @param task the task
	 *
	 * @return the future
	 */
	@Override
	public Future<?> submit(Runnable task) {
		return executor.submit(createWrappedRunnable(task));
	}

	/**
	 * Submit future.
	 *
	 * @param <T>  the type parameter
	 * @param task the task
	 *
	 * @return the future
	 */
	@Override
	public <T> Future<T> submit(Callable<T> task) {
		return executor.submit(createCallable(task));
	}

	/**
	 * Destroy.
	 *
	 * @throws Exception the exception
	 */
	@Override
	public void destroy() throws Exception {
		if (executor instanceof DisposableBean) {
			DisposableBean bean = (DisposableBean) executor;
			bean.destroy();
		}
	}

	/**
	 * After properties set.
	 *
	 * @throws Exception the exception
	 */
	@Override
	public void afterPropertiesSet() throws Exception {
		if (executor instanceof InitializingBean) {
			InitializingBean bean = (InitializingBean) executor;
			bean.afterPropertiesSet();
		}
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/PcObjectMapper.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:PcObjectMapper.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.config;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;

import java.util.List;


/**
 * The class Pc object mapper.
 *
 * @author paascloud.net @gmail.com
 */
public class PcObjectMapper {
	private PcObjectMapper() {
	}

	public static void buidMvcMessageConverter(List<HttpMessageConverter<?>> converters) {
		MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
		SimpleModule simpleModule = new SimpleModule();
		simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
		simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
		ObjectMapper objectMapper = new ObjectMapper()
				.registerModule(new ParameterNamesModule())
				.registerModule(new Jdk8Module())
				.registerModule(new JavaTimeModule())
				.registerModule(simpleModule);
		objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
		jackson2HttpMessageConverter.setObjectMapper(objectMapper);
		converters.add(jackson2HttpMessageConverter);
	}

}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/RedisConfiguration.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:RedisConfiguration.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.config;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * The class Redis configuration.
 *
 * @author paascloud.net@gmail.com
 */
@Configuration
@EnableCaching
public class RedisConfiguration {
	/**
	 * generator key generator.
	 *
	 * @return the key generator
	 */
	@Bean
	public KeyGenerator keyGenerator() {
		return (target, method, params) -> {
			StringBuilder sb = new StringBuilder();
			sb.append(target.getClass().getName());
			sb.append(method.getName());
			for (Object obj : params) {
				sb.append(obj.toString());
			}
			return sb.toString();
		};

	}

	/**
	 * Cache manager cache manager.
	 *
	 * @param redisTemplate the redis template
	 *
	 * @return the cache manager
	 */
	@Bean
	public CacheManager cacheManager(RedisTemplate redisTemplate) {
		return new RedisCacheManager(redisTemplate);
	}

	@Bean
	public StringRedisSerializer stringRedisSerializer() {
		return new StringRedisSerializer();
	}

	@Bean("redisTemplate")
	public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
		RedisTemplate<String, Object> template = new RedisTemplate<>();
		template.setConnectionFactory(factory);
		Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
		ObjectMapper om = new ObjectMapper();
		om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
		om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
		jackson2JsonRedisSerializer.setObjectMapper(om);
		template.setValueSerializer(jackson2JsonRedisSerializer);
		template.setKeySerializer(stringRedisSerializer());
		template.afterPropertiesSet();
		return template;
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/SwaggerConfiguration.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:SwaggerConfiguration.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.config;

import com.paascloud.config.properties.PaascloudProperties;
import com.paascloud.config.properties.SwaggerProperties;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ApiKey;
import springfox.documentation.service.AuthorizationScope;
import springfox.documentation.service.Contact;
import springfox.documentation.service.SecurityReference;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * The class Swagger configuration.
 *
 * @author paascloud.net@gmail.com
 */
@EnableSwagger2
public class SwaggerConfiguration {
	@Resource
	private PaascloudProperties paascloudProperties;

	/**
	 * Reservation api docket.
	 *
	 * @return the docket
	 */
	@Bean
	public Docket createRestApi() {
		//每次都需手动输入header信息
/*		ParameterBuilder pb = new ParameterBuilder();
		List<Parameter> pars = new ArrayList();
		pb.name("Authorization").description("user access_token")
				.modelRef(new ModelRef("string")).parameterType("header")
				.required(true).build(); //header中的ticket参数非必填,传空也可以
		pars.add(pb.build());    //根据每个方法名也知道当前方法在设置什么参数*/
		return new Docket(DocumentationType.SWAGGER_2)
				.apiInfo(apiInfo())
				.select()
				.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
				.paths(PathSelectors.any())

				.build()
				//配置鉴权信息
				.securitySchemes(securitySchemes())
				.securityContexts(securityContexts())
//				.globalOperationParameters(pars)
				.enable(true);
	}

	private ApiInfo apiInfo() {
		SwaggerProperties swagger = paascloudProperties.getSwagger();
		return new ApiInfoBuilder()
				.title(swagger.getTitle())
				.description(swagger.getDescription())
				.version(swagger.getVersion())
				.license(swagger.getLicense())
				.licenseUrl(swagger.getLicenseUrl())
				.contact(new Contact(swagger.getContactName(), swagger.getContactUrl(), swagger.getContactEmail()))
				.build();
	}

	private List<ApiKey> securitySchemes() {
		return new ArrayList(Collections.singleton(new ApiKey("Authorization", "Authorization", "header")));
	}

	private List<SecurityContext> securityContexts() {
		return new ArrayList(
				Collections.singleton(SecurityContext.builder()
						.securityReferences(defaultAuth())
						.forPaths(PathSelectors.regex("^(?!auth).*$"))
						.build())
		);
	}

	private List<SecurityReference> defaultAuth() {
		AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
		AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
		authorizationScopes[0] = authorizationScope;
		return new ArrayList(Collections.singleton(new SecurityReference("Authorization", authorizationScopes)));
	}

}

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/ZookeeperInitRunner.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ZookeeperInitRunner.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.config;

import com.paascloud.config.properties.PaascloudProperties;
import com.paascloud.core.registry.RegistryCenterFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.net.InetAddress;

/**
 * The class Redis init runner.
 *
 * @author paascloud.net @gmail.com
 */
@Component
@Order
@Slf4j
public class ZookeeperInitRunner implements CommandLineRunner {
	@Resource
	private PaascloudProperties paascloudProperties;
	@Value("${spring.application.name}")
	private String applicationName;

	/**
	 * Run.
	 *
	 * @param args the args
	 *
	 * @throws Exception the exception
	 */
	@Override
	public void run(String... args) throws Exception {
		String hostAddress = InetAddress.getLocalHost().getHostAddress();
		log.info("###ZookeeperInitRunner,init. HostAddress={}, applicationName={}", hostAddress, applicationName);
		RegistryCenterFactory.startup(paascloudProperties, hostAddress, applicationName);
		log.info("###ZookeeperInitRunner,finish<<<<<<<<<<<<<");
	}

}

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/enums/LogTypeEnum.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:LogTypeEnum.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.enums;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

import java.util.List;
import java.util.Map;


/**
 * The enum Log type enum.
 *
 * @author paascloud.net@gmail.com
 */
public enum LogTypeEnum {
	/**
	 * 操作日志
	 */
	OPERATION_LOG("10", "操作日志"),
	/**
	 * 登录日志
	 */
	LOGIN_LOG("20", "登录日志"),
	/**
	 * 异常日志
	 */
	EXCEPTION_LOG("30", "异常日志");

	/**
	 * The Type.
	 */
	String type;
	/**
	 * The Name.
	 */
	String name;

	LogTypeEnum(String type, String name) {
		this.type = type;
		this.name = name;
	}

	/**
	 * Gets type.
	 *
	 * @return the type
	 */
	public String getType() {
		return type;
	}

	/**
	 * Gets name.
	 *
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * Gets name.
	 *
	 * @param type the type
	 *
	 * @return the name
	 */
	public static String getName(String type) {
		for (LogTypeEnum ele : LogTypeEnum.values()) {
			if (type.equals(ele.getType())) {
				return ele.getName();
			}
		}
		return null;
	}

	/**
	 * Gets enum.
	 *
	 * @param type the type
	 *
	 * @return the enum
	 */
	public static LogTypeEnum getEnum(String type) {
		for (LogTypeEnum ele : LogTypeEnum.values()) {
			if (type.equals(ele.getType())) {
				return ele;
			}
		}
		return LogTypeEnum.OPERATION_LOG;
	}

	/**
	 * Gets list.
	 *
	 * @return the list
	 */
	public static List<Map<String, Object>> getList() {
		List<Map<String, Object>> list = Lists.newArrayList();
		for (LogTypeEnum ele : LogTypeEnum.values()) {
			Map<String, Object> map = Maps.newHashMap();
			map.put("key", ele.getType());
			map.put("value", ele.getName());
			list.add(map);
		}
		return list;
	}

}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/CoreHeaderInterceptor.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:CoreHeaderInterceptor.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.interceptor;

import com.netflix.hystrix.strategy.concurrency.HystrixRequestContext;
import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableDefault;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * The class Core header interceptor.
 *
 * @author paascloud.net@gmail.com
 */
@Slf4j
public class CoreHeaderInterceptor extends HandlerInterceptorAdapter {
	/**
	 * The constant HEADER_LABEL.
	 */
	public static final String HEADER_LABEL = "x-label";
	/**
	 * The constant HEADER_LABEL_SPLIT.
	 */
	public static final String HEADER_LABEL_SPLIT = ",";

	/**
	 * The constant LABEL.
	 */
	public static final HystrixRequestVariableDefault<List<String>> LABEL = new HystrixRequestVariableDefault<>();

	private static void initHystrixRequestContext(String labels) {
		log.info("LABEL={}", labels);
		if (!HystrixRequestContext.isCurrentThreadInitialized()) {
			HystrixRequestContext.initializeContext();
		}

		if (!StringUtils.isEmpty(labels)) {
			CoreHeaderInterceptor.LABEL.set(Arrays.asList(labels.split(CoreHeaderInterceptor.HEADER_LABEL_SPLIT)));
		} else {
			CoreHeaderInterceptor.LABEL.set(Collections.emptyList());
		}
	}

	private static void shutdownHystrixRequestContext() {
		if (HystrixRequestContext.isCurrentThreadInitialized()) {
			HystrixRequestContext.getContextForCurrentThread().shutdown();
		}
	}

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
		CoreHeaderInterceptor.initHystrixRequestContext(request.getHeader(CoreHeaderInterceptor.HEADER_LABEL));
		return true;
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
		CoreHeaderInterceptor.shutdownHystrixRequestContext();
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/CoreHttpRequestInterceptor.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:CoreHttpRequestInterceptor.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.interceptor;

import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.http.client.support.HttpRequestWrapper;
import org.springframework.util.StringUtils;

import java.io.IOException;

/**
 * The class Core http request interceptor.
 *
 * @author paascloud.net@gmail.com
 */
@Slf4j
public class CoreHttpRequestInterceptor implements ClientHttpRequestInterceptor {
	/**
	 * Intercept client http response.
	 *
	 * @param request   the request
	 * @param body      the body
	 * @param execution the execution
	 *
	 * @return the client http response
	 *
	 * @throws IOException the io exception
	 */
	@Override
	public ClientHttpResponse intercept(HttpRequest request, byte[] body,
	                                    ClientHttpRequestExecution execution) throws IOException {
		HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request);

		String header = StringUtils.collectionToDelimitedString(
				CoreHeaderInterceptor.LABEL.get(),
				CoreHeaderInterceptor.HEADER_LABEL_SPLIT);
		log.info("header={} ", header);
		requestWrapper.getHeaders().add(CoreHeaderInterceptor.HEADER_LABEL, header);

		return execution.execute(requestWrapper, body);
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/SqlLogInterceptor.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:SqlLogInterceptor.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.interceptor;

import com.paascloud.ThreadLocalMap;
import com.paascloud.base.constant.GlobalConstant;
import com.paascloud.core.aspect.NotDisplaySqlAspect;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.BoundSql;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.ParameterMapping;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.type.TypeHandlerRegistry;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.annotation.Order;

import java.text.DateFormat;
import java.util.*;

/**
 * mybatis sql 拦截器
 * 1.配合注解NotDisplaySql ,可以禁止指定的方法的SQL 不打印控制台。
 * 2.SQL 执行时间超过 关注时间 noticeTime ,以error级别打印到控制台
 * 使用时需要把mybatis logger级别设置为 INFO级别
 *
 * @author paascloud.net @gmail.com
 */
@Intercepts({
		@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}),
		@Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})})
@Slf4j
@Order(1)
public class SqlLogInterceptor implements Interceptor {
	@Value("${paascloud.enableSqlLogInterceptor}")
	private boolean enableSqlLogInterceptor;

	/**
	 * 关注时间 单位秒,默认值 5
	 * 如果 执行SQL 超过时间 就会打印error 日志
	 */
	private Double noticeTime = 5.0;

	/**
	 * Intercept object.
	 *
	 * @param invocation the invocation
	 *
	 * @return the object
	 *
	 * @throws Throwable the throwable
	 */
	@Override
	public Object intercept(Invocation invocation) throws Throwable {
		long start = System.currentTimeMillis();

		MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0];
		Object parameter = null;
		if (invocation.getArgs().length > 1) {
			parameter = invocation.getArgs()[1];
		}
		BoundSql boundSql = mappedStatement.getBoundSql(parameter);
		Configuration configuration = mappedStatement.getConfiguration();
		String sql = boundSql.getSql().replaceAll("[\\s]+", " ");
		List<String> paramList = getParamList(configuration, boundSql);
		Object proceed = invocation.proceed();
		int result = 0;
		if (proceed instanceof ArrayList) {
			ArrayList resultList = (ArrayList) proceed;
			result = resultList.size();
		}
		if (proceed instanceof Integer) {
			result = (Integer) proceed;
		}
		if (enableSqlLogInterceptor) {
			long end = System.currentTimeMillis();
			long time = end - start;
			Boolean flag = (Boolean) ThreadLocalMap.get(NotDisplaySqlAspect.DISPLAY_SQL);
			if (time >= noticeTime * GlobalConstant.Number.THOUSAND_INT) {
				log.error("执行超过{}秒,sql={}", noticeTime, sql);
				log.error("result={}, time={}ms, params={}", result, time, paramList);
				return proceed;
			}
			if (flag == null || Objects.equals(flag, true)) {
				log.info("sql={}", sql);
				log.info("result={},time={}ms, params={}", result, time, paramList);
			}
		}
		return proceed;
	}

	/**
	 * Instantiates a new Sql log interceptor.
	 */
	public SqlLogInterceptor() {
		log.info("[打印SQL拦截器创建]noticeTime={}秒", noticeTime);
	}

	/**
	 * 设置执行sql
	 *
	 * @param noticeTime 关注时间 ,如果执行sql超过关注时间,打印error日志.
	 */
	public SqlLogInterceptor(Double noticeTime) {
		this.noticeTime = noticeTime;
		log.info("[打印SQL拦截器创建]noticeTime={}秒", noticeTime);
	}

	/**
	 * Plugin object.
	 *
	 * @param target the target
	 *
	 * @return the object
	 */
	@Override
	public Object plugin(Object target) {
		return Plugin.wrap(target, this);
	}

	/**
	 * Sets properties.
	 *
	 * @param properties the properties
	 */
	@Override
	public void setProperties(Properties properties) {

	}

	/**
	 * 获取sql参数集合。
	 *
	 * @param configuration the configuration
	 * @param boundSql      the bound sql
	 *
	 * @return the param list
	 */
	private List<String> getParamList(Configuration configuration, BoundSql boundSql) {
		Object parameterObject = boundSql.getParameterObject();
		List<ParameterMapping> parameterMappings = boundSql.getParameterMappings();
		List<String> params = new ArrayList<>();
		if (parameterMappings.size() > 0 && parameterObject != null) {
			TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry();
			if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) {
				params.add(getParameterValue(parameterObject));
			} else {
				MetaObject metaObject = configuration.newMetaObject(parameterObject);
				for (ParameterMapping parameterMapping : parameterMappings) {
					String propertyName = parameterMapping.getProperty();
					if (metaObject.hasGetter(propertyName)) {
						Object obj = metaObject.getValue(propertyName);
						params.add(getParameterValue(obj));
					} else if (boundSql.hasAdditionalParameter(propertyName)) {
						Object obj = boundSql.getAdditionalParameter(propertyName);
						params.add(getParameterValue(obj));
					}
				}
			}
		}
		return params;
	}

	private String getParameterValue(Object obj) {
		String value;
		if (obj instanceof String) {
			value = "'" + obj.toString() + "'";
		} else if (obj instanceof Date) {
			DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.CHINA);
			value = "'" + formatter.format(obj) + "'";
		} else {
			if (obj != null) {
				value = obj.toString();
			} else {
				value = "";
			}

		}
		return value;
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/TokenInterceptor.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:TokenInterceptor.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.interceptor;

import com.paascloud.RedisKeyUtil;
import com.paascloud.ThreadLocalMap;
import com.paascloud.annotation.NoNeedAccessAuthentication;
import com.paascloud.base.constant.GlobalConstant;
import com.paascloud.base.dto.LoginAuthDto;
import com.paascloud.base.dto.UserTokenDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpHeaders;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.Method;

/**
 * The class Token interceptor.
 *
 * @author paascloud.net @gmail.com
 */
@Slf4j
public class TokenInterceptor implements HandlerInterceptor {

	@Value("${paascloud.oauth2.jwtSigningKey}")
	private String jwtSigningKey;

	@Resource
	private RedisTemplate<String, Object> redisTemplate;

	private static final String OPTIONS = "OPTIONS";
	private static final String AUTH_PATH1 = "/auth";
	private static final String AUTH_PATH2 = "/oauth";
	private static final String AUTH_PATH3 = "/error";
	private static final String AUTH_PATH4 = "/api";

	/**
	 * After completion.
	 *
	 * @param request  the request
	 * @param response the response
	 * @param arg2     the arg 2
	 * @param ex       the ex
	 *
	 * @throws Exception the exception
	 */
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception ex) throws Exception {
		if (ex != null) {
			log.error("<== afterCompletion - 解析token失败. ex={}", ex.getMessage(), ex);
			this.handleException(response);
		}
	}

	/**
	 * Post handle.
	 *
	 * @param request  the request
	 * @param response the response
	 * @param arg2     the arg 2
	 * @param mv       the mv
	 */
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object arg2, ModelAndView mv) {
	}

	/**
	 * Pre handle boolean.
	 *
	 * @param request  the request
	 * @param response the response
	 * @param handler  the handler
	 *
	 * @return the boolean
	 */
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
		String uri = request.getRequestURI();
		log.info("<== preHandle - 权限拦截器.  url={}", uri);
		if (uri.contains(AUTH_PATH1) || uri.contains(AUTH_PATH2) || uri.contains(AUTH_PATH3) || uri.contains(AUTH_PATH4)) {
			log.info("<== preHandle - 配置URL不走认证.  url={}", uri);
			return true;
		}
		log.info("<== preHandle - 调试模式不走认证.  OPTIONS={}", request.getMethod().toUpperCase());

		if (OPTIONS.equalsIgnoreCase(request.getMethod())) {
			log.info("<== preHandle - 调试模式不走认证.  url={}", uri);
			return true;
		}

		if (isHaveAccess(handler)) {
			log.info("<== preHandle - 不需要认证注解不走认证.  token={}");
			return true;
		}

		String token = StringUtils.substringAfter(request.getHeader(HttpHeaders.AUTHORIZATION), "Bearer ");
		log.info("<== preHandle - 权限拦截器.  token={}", token);
		LoginAuthDto loginUser = (UserTokenDto) redisTemplate.opsForValue().get(RedisKeyUtil.getAccessTokenKey(token));
		if (loginUser == null) {
			log.error("获取用户信息失败, 不允许操作");
			return false;
		}
		log.info("<== preHandle - 权限拦截器.  loginUser={}", loginUser);
		ThreadLocalMap.put(GlobalConstant.Sys.TOKEN_AUTH_DTO, loginUser);
		log.info("<== preHandle - 权限拦截器.  url={}, loginUser={}", uri, loginUser);
		return true;
	}

	private void handleException(HttpServletResponse res) throws IOException {
		res.resetBuffer();
		res.setHeader("Access-Control-Allow-Origin", "*");
		res.setHeader("Access-Control-Allow-Credentials", "true");
		res.setContentType("application/json");
		res.setCharacterEncoding("UTF-8");
		res.getWriter().write("{\"code\":100009 ,\"message\" :\"解析token失败\"}");
		res.flushBuffer();
	}

	private boolean isHaveAccess(Object handler) {
		HandlerMethod handlerMethod = (HandlerMethod) handler;

		Method method = handlerMethod.getMethod();

		NoNeedAccessAuthentication responseBody = AnnotationUtils.findAnnotation(method, NoNeedAccessAuthentication.class);
		return responseBody != null;
	}

}
  

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mq/MqMessage.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:MqMessage.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.mq;

import com.google.common.base.Preconditions;
import com.paascloud.base.enums.ErrorCodeEnum;
import com.paascloud.base.exception.BusinessException;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.slf4j.Logger;
import org.springframework.util.StringUtils;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;

/**
 * The class Mq message.
 *
 * @author paascloud.net@gmail.com
 */
@Slf4j
@Data
@ApiModel("消息队列")
public class MqMessage implements Serializable {
	private static final long serialVersionUID = 9215900048842983997L;
	@ApiModelProperty("主题")
	private String topic;
	@ApiModelProperty("标签")
	private String tag;
	@ApiModelProperty("唯一键")
	private String key;
	@ApiModelProperty("消息体")
	private String body;

	/**
	 * Check message message.
	 *
	 * @param mqMessage the mq message
	 *
	 * @return the message
	 */
	public static Message checkMessage(MqMessage mqMessage) {

		String topic = mqMessage.getTopic();
		String key = mqMessage.getKey();
		String body = mqMessage.getBody();
		String tag = mqMessage.getTag();
		printCheckMessageLog(topic, key, body, tag);
		checkMessage(topic, key, body);
		return buildMessage(body, topic, tag, key);

	}

	private static void printCheckMessageLog(final String topic, final String key, final String body, final String tag) {
		log.info("checkMessage - 校验MQ body={}, topic={}, tag={}, key={}", body, topic, tag, key);
	}

	/**
	 * Check message message.
	 *
	 * @param body  the body
	 * @param topic the topic
	 * @param tag   the tag
	 * @param key   the key
	 *
	 * @return the message
	 */
	public static Message checkMessage(String body, String topic, String tag, String key) {
		printCheckMessageLog(topic, key, body, tag);
		checkMessage(topic, key, body);
		return buildMessage(body, topic, tag, key);

	}

	/**
	 * Check message message.
	 *
	 * @param message the message
	 *
	 * @return the message
	 */
	public static Message checkMessage(Message message) {

		String body = new String(message.getBody());
		String topic = message.getTopic();
		String key = message.getKeys();
		String tag = message.getTags();
		printCheckMessageLog(topic, key, body, tag);
		checkMessage(topic, key, body);
		return buildMessage(body, topic, tag, key);

	}

	/**
	 * Instantiates a new Mq message.
	 *
	 * @param message the message
	 */
	public MqMessage(Message message) {
		this.body = new String(message.getBody());
		this.topic = message.getTopic();
		this.key = message.getKeys();
		this.tag = message.getTags();

	}

	private static Message buildMessage(String body, String topic, String tag, String key) {
		Message message = new Message();
		try {
			message.setBody(body.getBytes(RemotingHelper.DEFAULT_CHARSET));
		} catch (UnsupportedEncodingException e) {
			log.error("编码转换,出现异常={}", e.getMessage(), e);
			throw new BusinessException(ErrorCodeEnum.TPC100500011);
		}
		message.setKeys(key);
		message.setTopic(topic);
		message.setTags(tag);
		return message;
	}

	/**
	 * Instantiates a new Mq message.
	 *
	 * @param topic the topic
	 * @param tag   the tag
	 * @param key   the key
	 * @param body  the body
	 */
	public MqMessage(String topic, String tag, String key, String body) {
		this.topic = topic;
		this.tag = tag;
		this.key = key;
		this.body = body;
	}

	/**
	 * Check message.
	 *
	 * @param topic the topic
	 * @param key   the key
	 * @param body  the body
	 */
	public static void checkMessage(String topic, String key, String body) {

		Preconditions.checkArgument(!StringUtils.isEmpty(topic), "发送消息失败, 消息主题不能为空");
		Preconditions.checkArgument(!StringUtils.isEmpty(key), "发送消息失败, 消息关键字不能为空");
		Preconditions.checkArgument(!StringUtils.isEmpty(body), "发送消息失败, 消息体不能为空");
	}

	/**
	 * Print producer result.
	 *
	 * @param sendResult the send result
	 * @param logger     the logger
	 */
	public static void printProducerResult(SendResult sendResult, Logger logger) {
		if (sendResult != null) {
			logger.info("sendSimpleMessage - 发送MQ [OK]sendResult={}", sendResult);
		} else {
			logger.info("sendSimpleMessage - 发送MQ [FAIL]");
		}
	}

	/**
	 * Print producer exception.
	 *
	 * @param topic  the topic
	 * @param tag    the tag
	 * @param key    the key
	 * @param logger the logger
	 * @param e      the e
	 */
	public static void printProducerException(String topic, String tag, String key, Logger logger, Exception e) {
		logger.error("sendSimpleMessage - 发送MQ [FAIL] topic={}, tag={}, key={}", topic, tag, key, e);
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mybatis/BaseEntity.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BaseEntity.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.mybatis;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.paascloud.base.dto.LoginAuthDto;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * The class Base entity.
 *
 * @author paascloud.net@gmail.com
 */
@Data
public class BaseEntity implements Serializable {
	private static final long serialVersionUID = 2393269568666085258L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	/**
	 * 版本号
	 */
	private Integer version;
	/**
	 * 创建人
	 */
	private String creator;

	/**
	 * 创建人ID
	 */
	@Column(name = "creator_id")
	private Long creatorId;

	/**
	 * 创建时间
	 */
	@Column(name = "created_time")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createdTime;

	/**
	 * 最近操作人
	 */
	@Column(name = "last_operator")
	private String lastOperator;

	/**
	 * 最后操作人ID
	 */
	@Column(name = "last_operator_id")
	private Long lastOperatorId;

	/**
	 * 更新时间
	 */
	@Column(name = "update_time")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updateTime;

	@Transient
	private Integer pageNum;

	@Transient
	private Integer pageSize;

	@Transient
	private String orderBy;

	/**
	 * Is new boolean.
	 *
	 * @return the boolean
	 */
	@Transient
	@JsonIgnore
	public boolean isNew() {
		return this.id == null;
	}

	/**
	 * Sets update info.
	 *
	 * @param user the user
	 */
	@Transient
	@JsonIgnore
	public void setUpdateInfo(LoginAuthDto user) {

		if (isNew()) {
			this.creatorId = (this.lastOperatorId = user.getUserId());
			this.creator = user.getUserName();
			this.createdTime = (this.updateTime = new Date());
		}
		this.lastOperatorId = user.getUserId();
		this.lastOperator = user.getUserName() == null ? user.getLoginName() : user.getUserName();
		this.updateTime = new Date();
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mybatis/MyMapper.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:MyMapper.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.mybatis;

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;


/**
 * The interface My mapper.
 *
 * @param <T> the type parameter @author paascloud.net@gmail.com
 */
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/AbstractTreeService.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:AbstractTreeService.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.support;

import com.google.common.collect.Lists;
import com.paascloud.PublicUtil;
import com.paascloud.base.dto.BaseTree;

import java.io.Serializable;
import java.util.List;
import java.util.Objects;

/**
 * The class Tree service.
 *
 * @param <T>  the type parameter
 * @param <ID> the type parameter
 *
 * @author paascloud.net @gmail.com
 */
public abstract class AbstractTreeService<T extends BaseTree<T, ID>, ID extends Serializable> implements ITree<T, ID> {

	/**
	 * Gets child tree objects.
	 *
	 * @param list     the list
	 * @param parentId the parent id
	 *
	 * @return the child tree objects
	 */
	@Override
	public List<T> getChildTreeObjects(List<T> list, ID parentId) {
		List<T> returnList = Lists.newArrayList();
		for (T res : list) {
			if (res.getPid() == null) {
				continue;
			}
			if (Objects.equals(res.getPid(), parentId)) {
				recursionFn(list, res);
				returnList.add(res);
			}
		}
		return returnList;
	}

	/**
	 * 递归列表
	 *
	 * @param list the list
	 * @param t    the t
	 */
	@Override
	public void recursionFn(List<T> list, T t) {
		List<T> children = getChildList(list, t);
		if (PublicUtil.isNotEmpty(children)) {
			t.setChildren(children);
			t.setHasChild(true);
		}
		for (T nextChild : children) {
			// 下一个对象,与所有的资源集进行判断
			if (hasChild(list, nextChild)) {
				// 有下一个子节点,递归
				for (T node : children) {
					// 所有的对象--跟当前这个childList 的对象子节点
					recursionFn(list, node);
				}
				nextChild.setHasChild(true);
			}
		}
	}

	/**
	 * 获得指定节点下的所有子节点
	 *
	 * @param list the list
	 * @param t    the t
	 *
	 * @return the child list
	 */
	@Override
	public List<T> getChildList(List<T> list, T t) {
		List<T> childList = Lists.newArrayList();
		for (T child : list) {
			if (PublicUtil.isEmpty(child.getPid())) {
				continue;
			}
			// 判断集合的父ID是否等于上一级的id
			if (Objects.equals(child.getPid(), t.getId())) {
				childList.add(child);
			}
		}
		return childList;
	}

	/**
	 * 判断是否还有下一个子节点
	 *
	 * @param list the list
	 * @param t    the t
	 *
	 * @return the boolean
	 */
	@Override
	public boolean hasChild(List<T> list, T t) {
		return !getChildList(list, t).isEmpty();
	}
}

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/BaseController.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BaseController.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.support;

import com.paascloud.PublicUtil;
import com.paascloud.ThreadLocalMap;
import com.paascloud.base.constant.GlobalConstant;
import com.paascloud.base.dto.LoginAuthDto;
import com.paascloud.base.enums.ErrorCodeEnum;
import com.paascloud.base.exception.BusinessException;
import com.paascloud.core.generator.IncrementIdGenerator;
import com.paascloud.core.generator.UniqueIdGenerator;
import com.paascloud.wrapper.WrapMapper;
import com.paascloud.wrapper.Wrapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * The class Base controller.
 *
 * @author paascloud.net@gmail.com
 */
public class BaseController {

	protected final Logger logger = LoggerFactory.getLogger(this.getClass());

	/**
	 * Gets login auth dto.
	 *
	 * @return the login auth dto
	 */
	protected LoginAuthDto getLoginAuthDto() {
		LoginAuthDto loginAuthDto = (LoginAuthDto) ThreadLocalMap.get(GlobalConstant.Sys.TOKEN_AUTH_DTO);
		if (PublicUtil.isEmpty(loginAuthDto)) {
			throw new BusinessException(ErrorCodeEnum.UAC10011041);
		}
		return loginAuthDto;
	}

	/**
	 * Handle result wrapper.
	 *
	 * @param <T>    the type parameter
	 * @param result the result
	 *
	 * @return the wrapper
	 */
	protected <T> Wrapper<T> handleResult(T result) {
		boolean flag = isFlag(result);

		if (flag) {
			return WrapMapper.wrap(Wrapper.SUCCESS_CODE, "操作成功", result);
		} else {
			return WrapMapper.wrap(Wrapper.ERROR_CODE, "操作失败", result);
		}
	}

	/**
	 * Handle result wrapper.
	 *
	 * @param <E>      the type parameter
	 * @param result   the result
	 * @param errorMsg the error msg
	 *
	 * @return the wrapper
	 */
	protected <E> Wrapper<E> handleResult(E result, String errorMsg) {
		boolean flag = isFlag(result);

		if (flag) {
			return WrapMapper.wrap(Wrapper.SUCCESS_CODE, "操作成功", result);
		} else {
			return WrapMapper.wrap(Wrapper.ERROR_CODE, errorMsg, result);
		}
	}

	private boolean isFlag(Object result) {
		boolean flag;
		if (result instanceof Integer) {
			flag = (Integer) result > 0;
		} else if (result instanceof Boolean) {
			flag = (Boolean) result;
		} else {
			flag = PublicUtil.isNotEmpty(result);
		}
		return flag;
	}

	protected long generateId() {
		return UniqueIdGenerator.getInstance(IncrementIdGenerator.getServiceId()).nextId();
	}

}
  

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/BaseService.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BaseService.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.support;

import com.paascloud.base.exception.BusinessException;
import com.paascloud.core.generator.IncrementIdGenerator;
import com.paascloud.core.generator.UniqueIdGenerator;
import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * The class Base service.
 *
 * @param <T> the type parameter
 *
 * @author paascloud.net@gmail.com
 */
public abstract class BaseService<T> implements IService<T> {

	/**
	 * The Logger.
	 */
	protected final Logger logger = LoggerFactory.getLogger(this.getClass());

	/**
	 * The Mapper.
	 */
	@Autowired
	protected Mapper<T> mapper;

	/**
	 * Gets mapper.
	 *
	 * @return the mapper
	 */
	public Mapper<T> getMapper() {
		return mapper;
	}

	/**
	 * Select list.
	 *
	 * @param record the record
	 *
	 * @return the list
	 */
	@Override
	public List<T> select(T record) {
		return mapper.select(record);
	}

	/**
	 * Select by key t.
	 *
	 * @param key the key
	 *
	 * @return the t
	 */
	@Override
	public T selectByKey(Object key) {
		return mapper.selectByPrimaryKey(key);
	}

	/**
	 * Select all list.
	 *
	 * @return the list
	 */
	@Override
	public List<T> selectAll() {
		return mapper.selectAll();
	}

	/**
	 * Select one t.
	 *
	 * @param record the record
	 *
	 * @return the t
	 */
	@Override
	public T selectOne(T record) {
		return mapper.selectOne(record);
	}

	/**
	 * Select count int.
	 *
	 * @param record the record
	 *
	 * @return the int
	 */
	@Override
	public int selectCount(T record) {
		return mapper.selectCount(record);
	}

	/**
	 * Select by example list.
	 *
	 * @param example the example
	 *
	 * @return the list
	 */
	@Override
	public List<T> selectByExample(Object example) {
		return mapper.selectByExample(example);
	}

	/**
	 * Save int.
	 *
	 * @param record the record
	 *
	 * @return the int
	 */
	@Override
	public int save(T record) {
		return mapper.insertSelective(record);
	}

	/**
	 * Batch save int.
	 *
	 * @param list the list
	 *
	 * @return the int
	 */
	@Override
	public int batchSave(List<T> list) {
		int result = 0;
		for (T record : list) {
			int count = mapper.insertSelective(record);
			result += count;
		}
		return result;
	}

	/**
	 * Update int.
	 *
	 * @param entity the entity
	 *
	 * @return the int
	 */
	@Override
	public int update(T entity) {
		return mapper.updateByPrimaryKeySelective(entity);
	}

	/**
	 * Delete int.
	 *
	 * @param record the record
	 *
	 * @return the int
	 */
	@Override
	public int delete(T record) {
		return mapper.delete(record);
	}

	/**
	 * Delete by key int.
	 *
	 * @param key the key
	 *
	 * @return the int
	 */
	@Override
	public int deleteByKey(Object key) {
		return mapper.deleteByPrimaryKey(key);
	}

	/**
	 * Batch delete int.
	 *
	 * @param list the list
	 *
	 * @return the int
	 */
	@Override
	public int batchDelete(List<T> list) {
		int result = 0;
		for (T record : list) {
			int count = mapper.delete(record);
			if (count < 1) {
				logger.error("删除数据失败");
				throw new BusinessException("删除数据失败!");
			}
			result += count;
		}
		return result;
	}

	/**
	 * Select count by example int.
	 *
	 * @param example the example
	 *
	 * @return the int
	 */
	@Override
	public int selectCountByExample(Object example) {
		return mapper.selectCountByExample(example);
	}

	/**
	 * Update by example int.
	 *
	 * @param record  the record
	 * @param example the example
	 *
	 * @return the int
	 */
	@Override
	public int updateByExample(T record, Object example) {
		return mapper.updateByExampleSelective(record, example);
	}

	/**
	 * Delete by example int.
	 *
	 * @param example the example
	 *
	 * @return the int
	 */
	@Override
	public int deleteByExample(Object example) {
		return mapper.deleteByPrimaryKey(example);
	}

	/**
	 * Select by row bounds list.
	 *
	 * @param record    the record
	 * @param rowBounds the row bounds
	 *
	 * @return the list
	 */
	@Override
	public List<T> selectByRowBounds(T record, RowBounds rowBounds) {
		return mapper.selectByRowBounds(record, rowBounds);
	}

	/**
	 * Select by example and row bounds list.
	 *
	 * @param example   the example
	 * @param rowBounds the row bounds
	 *
	 * @return the list
	 */
	@Override
	public List<T> selectByExampleAndRowBounds(Object example, RowBounds rowBounds) {
		return mapper.selectByExampleAndRowBounds(example, rowBounds);
	}

	protected long generateId() {
		return UniqueIdGenerator.getInstance(IncrementIdGenerator.getServiceId()).nextId();
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/IService.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:IService.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.support;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 通用接口
 *
 * @param <T> the type parameter @author paascloud.net@gmail.com
 *
 * @author paascloud.net@gmail.com
 */
public interface IService<T> {
	/**
	 * 根据实体中的属性值进行查询, 查询条件使用等号  @param record the record
	 *
	 * @param record the record
	 *
	 * @return the list
	 */
	List<T> select(T record);

	/**
	 * 根据主键字段进行查询, 方法参数必须包含完整的主键属性, 查询条件使用等号  @param key the key
	 *
	 * @param key the key
	 *
	 * @return the t
	 */
	T selectByKey(Object key);

	/**
	 * 查询全部结果, select(null)方法能达到同样的效果  @return the list
	 *
	 * @return the list
	 */
	List<T> selectAll();

	/**
	 * 根据实体中的属性进行查询, 只能有一个返回值, 有多个结果是抛出异常, 查询条件使用等号  @param record the record
	 *
	 * @param record the record
	 *
	 * @return the t
	 */
	T selectOne(T record);

	/**
	 * 根据实体中的属性查询总数, 查询条件使用等号  @param record the record
	 *
	 * @param record the record
	 *
	 * @return the int
	 */
	int selectCount(T record);

	/**
	 * 保存一个实体, null的属性不会保存, 会使用数据库默认值  @param record the record
	 *
	 * @param record the record
	 *
	 * @return the int
	 */
	int save(T record);

	/**
	 * 批量保存  @param list the list
	 *
	 * @param list the list
	 *
	 * @return the int
	 */
	@Transactional(rollbackFor = Exception.class)
	int batchSave(List<T> list);

	/**
	 * 根据主键更新属性不为null的值  @param entity the entity
	 *
	 * @param entity the entity
	 *
	 * @return the int
	 */
	int update(T entity);

	/**
	 * 根据实体属性作为条件进行删除, 查询条件使用等号  @param record the record
	 *
	 * @param record the record
	 *
	 * @return the int
	 */
	int delete(T record);

	/**
	 * 批量删除  @param list the list
	 *
	 * @param list the list
	 *
	 * @return the int
	 */
	@Transactional(rollbackFor = Exception.class)
	int batchDelete(List<T> list);

	/**
	 * 根据主键字段进行删除, 方法参数必须包含完整的主键属性  @param key the key
	 *
	 * @param key the key
	 *
	 * @return the int
	 */
	int deleteByKey(Object key);

	/**
	 * 这个查询支持通过Example类指定查询列, 通过selectProperties方法指定查询列  @param example the example
	 *
	 * @param example the example
	 *
	 * @return the list
	 */
	List<T> selectByExample(Object example);

	/**
	 * 根据Example条件进行查询总数  @param example the example
	 *
	 * @param example the example
	 *
	 * @return the int
	 */
	int selectCountByExample(Object example);

	/**
	 * 根据Example条件更新实体record包含的不是null的属性值  @param record the record
	 *
	 * @param record  the record
	 * @param example the example
	 *
	 * @return the int
	 */
	int updateByExample(@Param("record") T record, @Param("example") Object example);

	/**
	 * 根据Example条件删除数据  @param example the example
	 *
	 * @param example the example
	 *
	 * @return the int
	 */
	int deleteByExample(Object example);

	/**
	 * 根据实体属性和RowBounds进行分页查询  @param record the record
	 *
	 * @param record    the record
	 * @param rowBounds the row bounds
	 *
	 * @return the list
	 */
	List<T> selectByRowBounds(T record, RowBounds rowBounds);

	/**
	 * 根据example条件和RowBounds进行分页查询  @param example the example
	 *
	 * @param example   the example
	 * @param rowBounds the row bounds
	 *
	 * @return the list
	 */
	List<T> selectByExampleAndRowBounds(Object example, RowBounds rowBounds);

}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/ITree.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:ITree.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.support;

import com.paascloud.base.dto.BaseTree;

import java.io.Serializable;
import java.util.List;

/**
 * The interface Tree interface.
 *
 * @param <T>  the type parameter
 * @param <ID> the type parameter
 *
 * @author paascloud.net @gmail.com
 */
public interface ITree<T extends BaseTree<T, ID>, ID extends Serializable> {
	/**
	 * 获得指定节点下所有归档
	 *
	 * @param list     the list
	 * @param parentId the parent id
	 *
	 * @return the child tree objects
	 */
	List<T> getChildTreeObjects(List<T> list, ID parentId);

	/**
	 * 递归列表
	 *
	 * @param list the list
	 * @param t    the t
	 */
	void recursionFn(List<T> list, T t);

	/**
	 * 获得指定节点下的所有子节点
	 *
	 * @param list the list
	 * @param t    the t
	 *
	 * @return the child list
	 */
	List<T> getChildList(List<T> list, T t);

	/**
	 * 判断是否还有下一个子节点
	 *
	 * @param list the list
	 * @param t    the t
	 *
	 * @return the boolean
	 */
	boolean hasChild(List<T> list, T t);
}

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/SpringContextHolder.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:SpringContextHolder.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.support;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;

/**
 * The class Spring context holder.
 *
 * @author paascloud.net @gmail.com
 */
@Component
public class SpringContextHolder implements ApplicationContextAware {

	private static ApplicationContext applicationContext;

	/**
	 * Sets application context.
	 *
	 * @param applicationContext the application context
	 *
	 * @throws BeansException the beans exception
	 */
	@Override
	public void setApplicationContext(ApplicationContext applicationContext) {
		SpringContextHolder.applicationContext = applicationContext;
	}

	/**
	 * Gets application context.
	 *
	 * @return the application context
	 */
	public static ApplicationContext getApplicationContext() {
		assertApplicationContext();
		return applicationContext;
	}

	/**
	 * Gets bean.
	 *
	 * @param <T>      the type parameter
	 * @param beanName the bean name
	 *
	 * @return the bean
	 */
	public static <T> T getBean(String beanName) {
		assertApplicationContext();
		return (T) applicationContext.getBean(beanName);
	}

	/**
	 * Gets bean.
	 *
	 * @param <T>          the type parameter
	 * @param requiredType the required type
	 *
	 * @return the bean
	 */
	public static <T> T getBean(Class<T> requiredType) {
		assertApplicationContext();
		return applicationContext.getBean(requiredType);
	}

	public static DefaultListableBeanFactory getDefaultListableBeanFactory() {
		assertApplicationContext();
		return (DefaultListableBeanFactory) ((ConfigurableApplicationContext) applicationContext).getBeanFactory();
	}

	private static void assertApplicationContext() {
		if (SpringContextHolder.applicationContext == null) {
			throw new IllegalArgumentException("applicationContext属性为null,请检查是否注入了SpringContextHolder!");
		}
	}

}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/TreeUtils.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:TreeUtils.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.support;


import com.paascloud.base.dto.BaseTree;

import java.io.Serializable;

/**
 * The class Tree utils.
 *
 * @author paascloud.net @gmail.com
 */
public class TreeUtils<T extends BaseTree<T, ID>, ID extends Serializable> extends AbstractTreeService<T, ID> {

}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/CustomSystemUtil.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:CustomSystemUtil.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.utils;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

/**
 * 系统工具类,用于获取系统相关信息
 *
 * @author paascloud.net @gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class CustomSystemUtil {
	/**
	 * 内网IP
	 */
	private static String INTRANET_IP = getIntranetIp();

	/**
	 * 外网IP
	 */
	private static String INTERNET_IP = getInternetIp();

	/**
	 * 获得内网IP
	 *
	 * @return 内网IP
	 */
	private static String getIntranetIp() {
		try {
			return InetAddress.getLocalHost().getHostAddress();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * 获得外网IP
	 *
	 * @return 外网IP
	 */
	private static String getInternetIp() {
		try {
			Enumeration<NetworkInterface> networks = NetworkInterface.getNetworkInterfaces();
			InetAddress ip;
			Enumeration<InetAddress> addrs;
			while (networks.hasMoreElements()) {
				addrs = networks.nextElement().getInetAddresses();
				while (addrs.hasMoreElements()) {
					ip = addrs.nextElement();
					if (ip != null
							&& ip instanceof Inet4Address
							&& ip.isSiteLocalAddress()
							&& !ip.getHostAddress().equals(INTRANET_IP)) {
						return ip.getHostAddress();
					}
				}
			}

			// 如果没有外网IP,就返回内网IP
			return INTRANET_IP;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}
}

================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/RequestUtil.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:RequestUtil.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.utils;

import com.paascloud.PublicUtil;
import com.paascloud.ThreadLocalMap;
import com.paascloud.base.constant.GlobalConstant;
import com.paascloud.base.dto.LoginAuthDto;
import com.paascloud.base.enums.ErrorCodeEnum;
import com.paascloud.base.exception.BusinessException;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.crypto.codec.Base64;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * The class Request util.
 *
 * @author paascloud.net@gmail.com
 */
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class RequestUtil {

	/**
	 * Gets request.
	 *
	 * @return the request
	 */
	public static HttpServletRequest getRequest() {
		return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
	}

	/**
	 * 获得用户远程地址
	 *
	 * @param request the request
	 *
	 * @return the string
	 */
	public static String getRemoteAddr(HttpServletRequest request) {
		String ipAddress = request.getHeader(GlobalConstant.X_REAL_IP);
		if (StringUtils.isEmpty(ipAddress) || GlobalConstant.UNKNOWN.equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader(GlobalConstant.X_FORWARDED_FOR);
		}
		if (StringUtils.isEmpty(ipAddress) || GlobalConstant.UNKNOWN.equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader(GlobalConstant.PROXY_CLIENT_IP);
		}
		if (StringUtils.isEmpty(ipAddress) || GlobalConstant.UNKNOWN.equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader(GlobalConstant.WL_PROXY_CLIENT_IP);
		}
		if (StringUtils.isEmpty(ipAddress) || GlobalConstant.UNKNOWN.equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader(GlobalConstant.HTTP_CLIENT_IP);
		}
		if (StringUtils.isEmpty(ipAddress) || GlobalConstant.UNKNOWN.equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader(GlobalConstant.HTTP_X_FORWARDED_FOR);
		}
		if (StringUtils.isEmpty(ipAddress) || GlobalConstant.UNKNOWN.equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getRemoteAddr();
		}
		if (StringUtils.isEmpty(ipAddress) || GlobalConstant.UNKNOWN.equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getRemoteAddr();
			if (GlobalConstant.LOCALHOST_IP.equals(ipAddress) || GlobalConstant.LOCALHOST_IP_16.equals(ipAddress)) {
				//根据网卡取本机配置的IP
				InetAddress inet = null;
				try {
					inet = InetAddress.getLocalHost();
				} catch (UnknownHostException e) {
					log.error("获取IP地址, 出现异常={}", e.getMessage(), e);
				}
				assert inet != null;
				ipAddress = inet.getHostAddress();
			}
			log.info("获取IP地址 ipAddress={}", ipAddress);
		}
		// 对于通过多个代理的情况, 第一个IP为客户端真实IP,多个IP按照','分割 //"***.***.***.***".length() = 15
		if (ipAddress != null && ipAddress.length() > GlobalConstant.MAX_IP_LENGTH) {
			if (ipAddress.indexOf(GlobalConstant.Symbol.COMMA) > 0) {
				ipAddress = ipAddress.substring(0, ipAddress.indexOf(GlobalConstant.Symbol.COMMA));
			}
		}
		return ipAddress;
	}

	/**
	 * Gets login user.
	 *
	 * @return the login user
	 */
	public static LoginAuthDto getLoginUser() {
		LoginAuthDto loginAuthDto = (LoginAuthDto) ThreadLocalMap.get(GlobalConstant.Sys.TOKEN_AUTH_DTO);
		if (PublicUtil.isEmpty(loginAuthDto)) {
			throw new BusinessException(ErrorCodeEnum.UAC10011039);
		}
		return loginAuthDto;

	}

	/**
	 * Gets auth header.
	 *
	 * @param request the request
	 *
	 * @return the auth header
	 */
	public static String getAuthHeader(HttpServletRequest request) {

		String authHeader = request.getHeader(HttpHeaders.AUTHORIZATION);
		if (org.apache.commons.lang.StringUtils.isEmpty(authHeader)) {
			throw new BusinessException(ErrorCodeEnum.UAC10011040);
		}
		return authHeader;
	}

	public static String[] extractAndDecodeHeader(String header) throws IOException {

		byte[] base64Token = header.substring(6).getBytes("UTF-8");
		byte[] decoded;
		try {
			decoded = Base64.decode(base64Token);
		} catch (IllegalArgumentException e) {
			throw new BadCredentialsException("Failed to decode basic authentication token");
		}

		String token = new String(decoded, "UTF-8");

		int delim = token.indexOf(GlobalConstant.Symbol.MH);

		if (delim == -1) {
			throw new BadCredentialsException("Invalid basic authentication token");
		}
		return new String[]{token.substring(0, delim), token.substring(delim + 1)};
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/SessionRegistryCenterConfiguration.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:SessionRegistryCenterConfiguration.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.utils;

import com.paascloud.config.properties.ZookeeperProperties;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

/**
 * 注册中心配置的会话声明周期.
 *
 * @author zhangliang
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class SessionRegistryCenterConfiguration {

	private static ZookeeperProperties regCenterConfig;

	/**
	 * 从当前会话范围获取注册中心配置.
	 *
	 * @return 事件追踪数据源配置
	 */
	public static ZookeeperProperties getRegistryCenterConfiguration() {
		return regCenterConfig;
	}

	/**
	 * 设置注册中心配置至当前会话范围.
	 *
	 * @param regCenterConfig 注册中心配置
	 */
	public static void setRegistryCenterConfiguration(final ZookeeperProperties regCenterConfig) {
		SessionRegistryCenterConfiguration.regCenterConfig = regCenterConfig;
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/TokenCache.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:TokenCache.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud.core.utils;

import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.TimeUnit;

/**
 * The class Token cache.
 *
 * @author paascloud.net@gmail.com
 */
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class TokenCache {

	public static final String NULL = "null";

	/**
	 * LRU算法
	 */
	private static LoadingCache<String, String> localCache = CacheBuilder.newBuilder().initialCapacity(1000).maximumSize(10000).expireAfterAccess(12, TimeUnit.HOURS)
			.build(new CacheLoader<String, String>() {
				//默认的数据加载实现,当调用get取值的时候,如果key没有对应的值,就调用这个方法进行加载.
				@Override
				public String load(String s) {
					return "null";
				}
			});

	/**
	 * Set key.
	 *
	 * @param key   the key
	 * @param value the value
	 */
	public static void setKey(String key, String value) {
		localCache.put(key, value);
	}

	/**
	 * Get key string.
	 *
	 * @param key the key
	 *
	 * @return the string
	 */
	public static String getKey(String key) {
		String value;
		try {
			value = localCache.get(key);
			if (NULL.equals(value)) {
				return null;
			}
			return value;
		} catch (Exception e) {
			log.error("localCache get error", e);
		}
		return null;
	}
}


================================================
FILE: paascloud-common/paascloud-common-core/src/main/resources/META-INF/spring.factories
================================================
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.paascloud.core.config.CoreConfiguration

================================================
FILE: paascloud-common/paascloud-common-core/src/test/java/.gitkeep
================================================


================================================
FILE: paascloud-common/paascloud-common-core/src/test/java/IdTest.java
================================================
import com.paascloud.core.generator.IncrementIdGenerator;
import com.paascloud.core.generator.UniqueIdGenerator;
import lombok.extern.slf4j.Slf4j;

import java.util.Collections;
import java.util.HashSet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

/**
 * The class Id test.
 * @author paascloud.net@gmail.com
 */
@Slf4j
public class IdTest {

	/**
	 * The entry point of application.
	 *
	 * @param args the input arguments
	 *
	 * @throws InterruptedException the interrupted exception
	 */
	public static void main(String[] args) throws InterruptedException {
		UniqueIdGenerator instance = UniqueIdGenerator.getInstance(IncrementIdGenerator.getServiceId());
		ExecutorService es = Executors.newFixedThreadPool(10);
        final HashSet idSet = new HashSet();
        Collections.synchronizedCollection(idSet);
        long start = System.currentTimeMillis();
		log.info(" start generate id *");
        for (int i = 0; i < 10; i++)
            es.execute(() -> {
                for (long j = 0; j < 5000000; j++) {
                    long id = instance.nextId();
                    synchronized (idSet) {
                        idSet.add(id);
                    }
                }
            });
        es.shutdown();
        es.awaitTermination(10, TimeUnit.SECONDS);
        long end = System.currentTimeMillis();
        log.info(" end generate id ");
		log.info("* cost " + (end - start) + " ms!");
    }
}


================================================
FILE: paascloud-common/paascloud-common-util/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.liuzm.paascloud.common</groupId>
        <artifactId>paascloud-common</artifactId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>paascloud-common-util</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.5</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-smile</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
        </dependency>
        <dependency>
            <groupId>com.xiaoleilu</groupId>
            <artifactId>hutool-all</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.3</version>
        </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
      </dependency>
    </dependencies>


</project>

================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/BigDecimalUtil.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:BigDecimalUtil.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * The class Big decimal util.
 *
 * @author paascloud.net@gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class BigDecimalUtil {

	/**
	 * Add big decimal.
	 *
	 * @param v1 the v 1
	 * @param v2 the v 2
	 *
	 * @return the big decimal
	 */
	public static BigDecimal add(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.add(b2);
	}

	/**
	 * Sub big decimal.
	 *
	 * @param v1 the v 1
	 * @param v2 the v 2
	 *
	 * @return the big decimal
	 */
	public static BigDecimal sub(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.subtract(b2);
	}


	/**
	 * Mul big decimal.
	 *
	 * @param v1 the v 1
	 * @param v2 the v 2
	 *
	 * @return the big decimal
	 */
	public static BigDecimal mul(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.multiply(b2);
	}

	/**
	 * Div big decimal.
	 *
	 * @param v1 the v 1
	 * @param v2 the v 2
	 *
	 * @return the big decimal
	 */
	public static BigDecimal div(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
	}

}


================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/Collections3.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:Collections3.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * The class Collections 3.
 *
 * @author paascloud.net@gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class Collections3 {

	/**
	 * 返回a+b的新List.
	 *
	 * @param <T> the type parameter
	 * @param a   the a
	 * @param b   the b
	 *
	 * @return the list
	 */
	public static <T> List<T> union(final Collection<T> a, final Collection<T> b) {
		List<T> result = new ArrayList<>(a);
		result.addAll(b);
		return result;
	}

	/**
	 * 返回a-b的新List.
	 *
	 * @param <T> the type parameter
	 * @param a   the a
	 * @param b   the b
	 *
	 * @return the list
	 */
	public static <T> List<T> subtract(final Collection<T> a, final Collection<T> b) {
		List<T> list = new ArrayList<>(a);
		for (T element : b) {
			list.remove(element);
		}

		return list;
	}

	/**
	 * 返回a与b的交集的新List.
	 *
	 * @param <T> the type parameter
	 * @param a   the a
	 * @param b   the b
	 *
	 * @return the list
	 */
	public static <T> List<T> intersection(Collection<T> a, Collection<T> b) {
		List<T> list = new ArrayList<>();

		for (T element : a) {
			if (b.contains(element)) {
				list.add(element);
			}
		}
		return list;
	}
}


================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/DateUtil.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:DateUtil.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud;


import com.xiaoleilu.hutool.date.DateField;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * The class Date util.
 *
 * @author paascloud.net @gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class DateUtil {

	/**
	 * 获取系统前时间.
	 *
	 * @param minute the minute
	 *
	 * @return the before time[yyyy-MM-dd HH:mm:ss]
	 */
	public static String getBeforeTime(int minute) {
		Date newDate = com.xiaoleilu.hutool.date.DateUtil.offset(new Date(), DateField.MINUTE, -minute);
		return com.xiaoleilu.hutool.date.DateUtil.formatDateTime(newDate);
	}
}


================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/HttpAesUtil.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:HttpAesUtil.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud;

import com.paascloud.exception.HttpAesException;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.MessageDigest;

/**
 * The class Http aes util.
 *
 * @author paascloud.net@gmail.com
 */
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class HttpAesUtil {

	private static final String CHAR_SET = "UTF-8";

	/**
	 * 加密
	 *
	 * @param contentParam 需要加密的内容
	 * @param keyParam     加密密码
	 * @param md5Key       是否对key进行md5加密
	 * @param ivParam      加密向量
	 *
	 * @return 加密后的字节数据 string
	 */
	public static String encrypt(String contentParam, String keyParam, boolean md5Key, String ivParam) {
		try {
			byte[] content = contentParam.getBytes(CHAR_SET);
			byte[] key = keyParam.getBytes(CHAR_SET);
			byte[] iv = ivParam.getBytes(CHAR_SET);

			if (md5Key) {
				MessageDigest md = MessageDigest.getInstance("MD5");
				key = md.digest(key);
			}
			SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
			//"算法/模式/补码方式"
			Cipher cipher = Cipher.getInstance("AES/CBC/ISO10126Padding");
			//使用CBC模式, 需要一个向量iv, 可增加加密算法的强度
			IvParameterSpec ivps = new IvParameterSpec(iv);
			cipher.init(Cipher.ENCRYPT_MODE, skeySpec, ivps);
			byte[] bytes = cipher.doFinal(content);
			return new BASE64Encoder().encode(bytes);
		} catch (Exception ex) {
			log.error("加密密码失败", ex);
			throw new HttpAesException("加密失败");
		}
	}

	/**
	 * 解密
	 *
	 * @param contentParam 需要加密的内容
	 * @param keyParam     加密密码
	 * @param md5Key       是否对key进行md5加密
	 * @param ivParam      加密向量
	 *
	 * @return string
	 */
	public static String decrypt(String contentParam, String keyParam, boolean md5Key, String ivParam) {
		try {
			if (PubUtils.isNull(contentParam, keyParam, md5Key, ivParam)) {
				return "";
			}
			byte[] content = new BASE64Decoder().decodeBuffer(contentParam);
			byte[] key = keyParam.getBytes(CHAR_SET);
			byte[] iv = ivParam.getBytes(CHAR_SET);

			if (md5Key) {
				MessageDigest md = MessageDigest.getInstance("MD5");
				key = md.digest(key);
			}
			SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
			//"算法/模式/补码方式"
			Cipher cipher = Cipher.getInstance("AES/CBC/ISO10126Padding");
			//使用CBC模式, 需要一个向量iv, 可增加加密算法的强度
			IvParameterSpec ivps = new IvParameterSpec(iv);
			cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivps);
			byte[] bytes = cipher.doFinal(content);
			return new String(bytes, CHAR_SET);
		} catch (Exception ex) {
			log.error("解密密码失败", ex);
			throw new HttpAesException("解密失败");
		}
	}
}

================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/JacksonUtil.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:JacksonUtil.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud;

import com.google.common.base.Preconditions;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.codehaus.jackson.map.DeserializationConfig.Feature;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import org.codehaus.jackson.type.JavaType;
import org.codehaus.jackson.type.TypeReference;

import java.io.IOException;
import java.text.SimpleDateFormat;

/**
 * Jackson Json 工具类
 *
 * @author ligang @gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class JacksonUtil {

	private static ObjectMapper defaultMapper;
	private static ObjectMapper formatedMapper;

	static {
		// 默认的ObjectMapper
		defaultMapper = new ObjectMapper();
		// 设置输入时忽略在JSON字符串中存在但Java对象实际没有的属性
		defaultMapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);

		formatedMapper = new ObjectMapper();
		// 设置输入时忽略在JSON字符串中存在但Java对象实际没有的属性
		formatedMapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
		// 所有日期格式都统一为固定格式
		formatedMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
		formatedMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
	}

	/**
	 * 将对象转化为json数据
	 *
	 * @param obj the obj
	 *
	 * @return string string
	 *
	 * @throws IOException the io exception
	 */
	public static String toJson(Object obj) throws IOException {
		Preconditions.checkArgument(obj != null, "this argument is required; it must not be null");
		return defaultMapper.writeValueAsString(obj);
	}

	/**
	 * json数据转化为对象(Class)
	 * User u = JacksonUtil.parseJson(jsonValue, User.class);
	 * User[] arr = JacksonUtil.parseJson(jsonValue, User[].class);
	 *
	 * @param <T>       the type parameter
	 * @param jsonValue the json value
	 * @param valueType the value type
	 *
	 * @return t t
	 *
	 * @throws IOException the io exception
	 */
	public static <T> T parseJson(String jsonValue, Class<T> valueType) throws IOException {
		Preconditions.checkArgument(StringUtils.isNotEmpty(jsonValue), "this argument is required; it must not be null");
		return defaultMapper.readValue(jsonValue, valueType);
	}

	/**
	 * json数据转化为对象(JavaType)
	 *
	 * @param <T>       the type parameter
	 * @param jsonValue the json value
	 * @param valueType the value type
	 *
	 * @return t t
	 *
	 * @throws IOException the io exception
	 */
	@SuppressWarnings("unchecked")
	public static <T> T parseJson(String jsonValue, JavaType valueType) throws IOException {
		Preconditions.checkArgument(StringUtils.isNotEmpty(jsonValue), "this argument is required; it must not be null");
		return (T) defaultMapper.readValue(jsonValue, valueType);
	}

	/**
	 * json数据转化为对象(TypeReference)
	 *
	 * @param <T>          the type parameter
	 * @param jsonValue    the json value
	 * @param valueTypeRef the value type ref
	 *
	 * @return t t
	 *
	 * @throws IOException the io exception
	 */
	public static <T> T parseJson(String jsonValue, TypeReference<T> valueTypeRef) throws IOException {
		Preconditions.checkArgument(StringUtils.isNotEmpty(jsonValue), "this argument is required; it must not be null");
		return (T) defaultMapper.readValue(jsonValue, valueTypeRef);
	}

	/**
	 * 将对象转化为json数据(时间转换格式: "yyyy-MM-dd HH:mm:ss")
	 *
	 * @param obj the obj
	 *
	 * @return string string
	 *
	 * @throws IOException the io exception
	 */
	public static String toJsonWithFormat(Object obj) throws IOException {
		Preconditions.checkArgument(obj != null, "this argument is required; it must not be null");
		return formatedMapper.writeValueAsString(obj);
	}

	/**
	 * json数据转化为对象(时间转换格式: "yyyy-MM-dd HH:mm:ss")
	 * User u = JacksonUtil.parseJsonWithFormat(jsonValue, User.class);
	 * User[] arr = JacksonUtil.parseJsonWithFormat(jsonValue, User[].class);
	 *
	 * @param <T>       the type parameter
	 * @param jsonValue the json value
	 * @param valueType the value type
	 *
	 * @return t t
	 *
	 * @throws IOException the io exception
	 */
	public static <T> T parseJsonWithFormat(String jsonValue, Class<T> valueType) throws IOException {
		Preconditions.checkArgument(StringUtils.isNotEmpty(jsonValue), "this argument is required; it must not be null");
		return formatedMapper.readValue(jsonValue, valueType);
	}

	/**
	 * json数据转化为对象(JavaType)
	 *
	 * @param <T>       the type parameter
	 * @param jsonValue the json value
	 * @param valueType the value type
	 *
	 * @return t t
	 *
	 * @throws IOException the io exception
	 */
	public static <T> T parseJsonWithFormat(String jsonValue, JavaType valueType) throws IOException {
		Preconditions.checkArgument(StringUtils.isNotEmpty(jsonValue), "this argument is required; it must not be null");
		return (T) formatedMapper.readValue(jsonValue, valueType);
	}

	/**
	 * json数据转化为对象(TypeReference)
	 *
	 * @param <T>          the type parameter
	 * @param jsonValue    the json value
	 * @param valueTypeRef the value type ref
	 *
	 * @return t t
	 *
	 * @throws IOException the io exception
	 */
	public static <T> T parseJsonWithFormat(String jsonValue, TypeReference<T> valueTypeRef) throws IOException {
		Preconditions.checkArgument(StringUtils.isNotEmpty(jsonValue), "jsonValue is not null");
		return (T) formatedMapper.readValue(jsonValue, valueTypeRef);
	}

}


================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/PubUtils.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:PubUtils.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.UUID;

/**
 * The class Pub utils.
 *
 * @author paascloud.net@gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class PubUtils {
	/**
	 * The constant STRING_NULL.
	 */
	private final static String STRING_NULL = "-";
	/**
	 * 匹配手机号码, 支持+86和86开头
	 */
	private static final String REGX_MOBILENUM = "^((\\+86)|(86))?(13|15|17|18)\\d{9}$";

	/**
	 * 匹配邮箱帐号
	 */
	private static final String REGX_EMAIL = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";

	/**
	 * 匹配手机号码(先支持13, 15, 17, 18开头的手机号码).
	 *
	 * @param inputStr the input str
	 *
	 * @return the boolean
	 */
	public static Boolean isMobileNumber(String inputStr) {
		return !PubUtils.isNull(inputStr) && inputStr.matches(REGX_MOBILENUM);
	}

	/**
	 * 判断一个或多个对象是否为空
	 *
	 * @param values 可变参数, 要判断的一个或多个对象
	 *
	 * @return 只有要判断的一个对象都为空则返回true, 否则返回false boolean
	 */
	public static boolean isNull(Object... values) {
		if (!PubUtils.isNotNullAndNotEmpty(values)) {
			return true;
		}
		for (Object value : values) {
			boolean flag;
			if (value instanceof Object[]) {
				flag = !isNotNullAndNotEmpty((Object[]) value);
			} else if (value instanceof Collection<?>) {
				flag = !isNotNullAndNotEmpty((Collection<?>) value);
			} else if (value instanceof String) {
				flag = isOEmptyOrNull(value);
			} else {
				flag = (null == value);
			}
			if (flag) {
				return true;
			}
		}
		return false;
	}

	/**
	 * Is o empty or null boolean.
	 *
	 * @param o the o
	 *
	 * @return boolean boolean
	 */
	private static boolean isOEmptyOrNull(Object o) {
		return o == null || isSEmptyOrNull(o.toString());
	}

	/**
	 * Is s empty or null boolean.
	 *
	 * @param s the s
	 *
	 * @return boolean boolean
	 */
	private static boolean isSEmptyOrNull(String s) {
		return trimAndNullAsEmpty(s).length() <= 0;
	}

	/**
	 * Trim and null as empty string.
	 *
	 * @param s the s
	 *
	 * @return java.lang.String string
	 */
	private static String trimAndNullAsEmpty(String s) {
		if (s != null && !s.trim().equals(STRING_NULL)) {
			return s.trim();
		} else {
			return "";
		}
		// return s == null ? "" : s.trim();
	}

	/**
	 * 判断对象数组是否为空并且数量大于0
	 *
	 * @param value the value
	 *
	 * @return boolean
	 */
	private static Boolean isNotNullAndNotEmpty(Object[] value) {
		boolean bl = false;
		if (null != value && 0 < value.length) {
			bl = true;
		}
		return bl;
	}

	/**
	 * 判断对象集合(List,Set)是否为空并且数量大于0
	 *
	 * @param value the value
	 *
	 * @return boolean
	 */
	private static Boolean isNotNullAndNotEmpty(Collection<?> value) {
		boolean bl = false;
		if (null != value && !value.isEmpty()) {
			bl = true;
		}
		return bl;
	}

	/**
	 * Is email boolean.
	 *
	 * @param str the str
	 *
	 * @return the boolean
	 */
	public static boolean isEmail(String str) {
		boolean bl = true;
		if (isSEmptyOrNull(str) || !str.matches(REGX_EMAIL)) {
			bl = false;
		}
		return bl;
	}

	/**
	 * Uuid string.
	 *
	 * @return the string
	 */
	public synchronized static String uuid() {
		return UUID.randomUUID().toString().replace("-", "");
	}
}


================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/PublicUtil.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:PublicUtil.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.Map;

/**
 * The class Public util.
 *
 * @author paascloud.net@gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class PublicUtil {

	/**
	 * 判断对象是否Empty(null或元素为0)
	 * 实用于对如下对象做判断:String Collection及其子类 Map及其子类
	 *
	 * @param pObj 待检查对象
	 *
	 * @return boolean 返回的布尔值
	 */
	public static boolean isEmpty(Object pObj) {
		if (pObj == null) {
			return true;
		}
		if (pObj == "") {
			return true;
		}
		if (pObj instanceof String) {
			return ((String) pObj).length() == 0;
		} else if (pObj instanceof Collection) {
			return ((Collection) pObj).isEmpty();
		} else if (pObj instanceof Map) {
			return ((Map) pObj).size() == 0;
		}
		return false;
	}

	/**
	 * 判断对象是否为NotEmpty(!null或元素大于0)
	 * 实用于对如下对象做判断:String Collection及其子类 Map及其子类
	 *
	 * @param pObj 待检查对象
	 *
	 * @return boolean 返回的布尔值
	 */
	public static boolean isNotEmpty(Object pObj) {
		if (pObj == null) {
			return false;
		}
		if (pObj == "") {
			return false;
		}
		if (pObj instanceof String) {
			return ((String) pObj).length() != 0;
		} else if (pObj instanceof Collection) {
			return !((Collection) pObj).isEmpty();
		} else if (pObj instanceof Map) {
			return ((Map) pObj).size() != 0;
		}
		return true;
	}

}


================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/RandomUtil.java
================================================
/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称:paascloud快速搭建企业级分布式微服务平台
 * 类名称:RandomUtil.java
 * 创建人:刘兆明
 * 联系方式:paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.paascloud;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.Random;

/**
 * The class Random util.
 *
 * @author paascloud.net@gmail.com
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class RandomUtil {

	private static final int MAX_LENGTH = 50;

	/**
	 * 生成一个随机验证码 大小写字母+数字
	 *
	 * @param length the length
	 *
	 * @return 随机验证码 string
	 */
	public static String createComplexCode(int length) {

		if (length > MAX_LENGTH) {
			length = MAX_LENGTH;
		}

		Random r = new Random();

		StringBuilder code = new StringBuilder();

		while (true) {
			if (code.length() == length) {
				break;
			}
			int tmp = r.nextInt(127);
			if (tmp < 33 || tmp == 92 || tmp == 47 || tmp == 34) {
				continue;
			}
			char x = (char) (tmp);
			if (code.toString().indexOf(x) > 0) {
				continue;
			}
			code.append(x);
		}

		return code.toString();
	}

	/**
	 * Create number code string.
	 *
	 * @param length the length
	 *
	 * @return the string
	 */
	public static String createNumberCode(int length) {
		return randomString("0123456789", length);
	}

	private static String randomString(String baseString, int length) {
		Random random = new Random();
		StringBuilder sb = new StringBuilder();
		if (length < 1) {
			length = 1;
		}

		int baseLength = baseString.length();

		for (int i = 0; i < length; ++i) {
			int number = random.nextInt(baseLength);
			sb.append(baseString.charAt(number));
		}

		return sb.toString();
	}
}


================================================
FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/RecursionTreeUtil.java
================================================
/*
 * Cop
Download .txt
gitextract_nwog7ueh/

├── .gitignore
├── LICENSE
├── README.md
├── paascloud-common/
│   ├── paascloud-common-base/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           └── base/
│   │       │   │               ├── constant/
│   │       │   │               │   ├── AliyunMqTopicConstants.java
│   │       │   │               │   ├── AliyunSmsConstants.java
│   │       │   │               │   └── GlobalConstant.java
│   │       │   │               ├── dto/
│   │       │   │               │   ├── BaseQuery.java
│   │       │   │               │   ├── BaseTree.java
│   │       │   │               │   ├── BaseVo.java
│   │       │   │               │   ├── CheckValidDto.java
│   │       │   │               │   ├── GaodeBaseDto.java
│   │       │   │               │   ├── JobParameter.java
│   │       │   │               │   ├── KvDto.java
│   │       │   │               │   ├── LoginAuthDto.java
│   │       │   │               │   ├── MessageQueryDto.java
│   │       │   │               │   ├── MqMessageDto.java
│   │       │   │               │   ├── MqMessageVo.java
│   │       │   │               │   ├── ShardingContextDto.java
│   │       │   │               │   ├── UpdateStatusDto.java
│   │       │   │               │   └── UserTokenDto.java
│   │       │   │               ├── enums/
│   │       │   │               │   └── ErrorCodeEnum.java
│   │       │   │               └── exception/
│   │       │   │                   ├── BooleanParseException.java
│   │       │   │                   ├── BusinessException.java
│   │       │   │                   ├── ConfigException.java
│   │       │   │                   ├── ImportException.java
│   │       │   │                   └── ReferenceModelNullException.java
│   │       │   └── resources/
│   │       │       └── .gitkeep
│   │       └── test/
│   │           └── java/
│   │               └── .gitkeep
│   ├── paascloud-common-config/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── config/
│   │                           ├── PaascloudCoreConfig.java
│   │                           └── properties/
│   │                               ├── AliyunProperties.java
│   │                               ├── AsyncTaskProperties.java
│   │                               ├── GaodeProperties.java
│   │                               ├── JobProperties.java
│   │                               ├── PaascloudProperties.java
│   │                               ├── QiniuProperties.java
│   │                               ├── ReliableMessageProperties.java
│   │                               ├── SwaggerProperties.java
│   │                               └── ZookeeperProperties.java
│   ├── paascloud-common-core/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           └── core/
│   │       │   │               ├── annotation/
│   │       │   │               │   ├── LogAnnotation.java
│   │       │   │               │   ├── NotDisplaySql.java
│   │       │   │               │   ├── OperationLogDto.java
│   │       │   │               │   └── ValidateAnnotation.java
│   │       │   │               ├── aspect/
│   │       │   │               │   ├── BindingResultAop.java
│   │       │   │               │   ├── LogAspect.java
│   │       │   │               │   └── NotDisplaySqlAspect.java
│   │       │   │               ├── config/
│   │       │   │               │   ├── AsyncTaskExecutorConfiguration.java
│   │       │   │               │   ├── CoreConfiguration.java
│   │       │   │               │   ├── ExceptionHandlingAsyncTaskExecutor.java
│   │       │   │               │   ├── PcObjectMapper.java
│   │       │   │               │   ├── RedisConfiguration.java
│   │       │   │               │   ├── SwaggerConfiguration.java
│   │       │   │               │   └── ZookeeperInitRunner.java
│   │       │   │               ├── enums/
│   │       │   │               │   └── LogTypeEnum.java
│   │       │   │               ├── interceptor/
│   │       │   │               │   ├── CoreHeaderInterceptor.java
│   │       │   │               │   ├── CoreHttpRequestInterceptor.java
│   │       │   │               │   ├── SqlLogInterceptor.java
│   │       │   │               │   └── TokenInterceptor.java
│   │       │   │               ├── mq/
│   │       │   │               │   └── MqMessage.java
│   │       │   │               ├── mybatis/
│   │       │   │               │   ├── BaseEntity.java
│   │       │   │               │   └── MyMapper.java
│   │       │   │               ├── support/
│   │       │   │               │   ├── AbstractTreeService.java
│   │       │   │               │   ├── BaseController.java
│   │       │   │               │   ├── BaseService.java
│   │       │   │               │   ├── IService.java
│   │       │   │               │   ├── ITree.java
│   │       │   │               │   ├── SpringContextHolder.java
│   │       │   │               │   └── TreeUtils.java
│   │       │   │               └── utils/
│   │       │   │                   ├── CustomSystemUtil.java
│   │       │   │                   ├── RequestUtil.java
│   │       │   │                   ├── SessionRegistryCenterConfiguration.java
│   │       │   │                   └── TokenCache.java
│   │       │   └── resources/
│   │       │       └── META-INF/
│   │       │           └── spring.factories
│   │       └── test/
│   │           └── java/
│   │               ├── .gitkeep
│   │               └── IdTest.java
│   ├── paascloud-common-util/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       ├── BigDecimalUtil.java
│   │                       ├── Collections3.java
│   │                       ├── DateUtil.java
│   │                       ├── HttpAesUtil.java
│   │                       ├── JacksonUtil.java
│   │                       ├── PubUtils.java
│   │                       ├── PublicUtil.java
│   │                       ├── RandomUtil.java
│   │                       ├── RecursionTreeUtil.java
│   │                       ├── RedisKeyUtil.java
│   │                       ├── ThreadLocalMap.java
│   │                       ├── TreeNode.java
│   │                       ├── UrlUtil.java
│   │                       ├── ValidateUtil.java
│   │                       ├── annotation/
│   │                       │   └── NoNeedAccessAuthentication.java
│   │                       ├── exception/
│   │                       │   └── HttpAesException.java
│   │                       ├── helper/
│   │                       │   ├── LongJsonDeserializer.java
│   │                       │   └── LongJsonSerializer.java
│   │                       ├── page/
│   │                       │   ├── PageUtil.java
│   │                       │   └── Query.java
│   │                       └── wrapper/
│   │                           ├── PageWrapMapper.java
│   │                           ├── PageWrapper.java
│   │                           ├── WrapMapper.java
│   │                           └── Wrapper.java
│   ├── paascloud-common-zk/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── paascloud/
│   │       │               └── core/
│   │       │                   ├── generator/
│   │       │                   │   ├── IdGenerator.java
│   │       │                   │   ├── IncrementIdGenerator.java
│   │       │                   │   └── UniqueIdGenerator.java
│   │       │                   └── registry/
│   │       │                       ├── RegistryCenterFactory.java
│   │       │                       ├── base/
│   │       │                       │   ├── CoordinatorRegistryCenter.java
│   │       │                       │   ├── RegisterDto.java
│   │       │                       │   ├── RegistryCenter.java
│   │       │                       │   └── ReliableMessageRegisterDto.java
│   │       │                       ├── exception/
│   │       │                       │   ├── RegException.java
│   │       │                       │   └── RegExceptionHandler.java
│   │       │                       └── zookeeper/
│   │       │                           └── ZookeeperRegistryCenter.java
│   │       └── test/
│   │           └── java/
│   │               └── .gitkeep
│   ├── paascloud-security-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── security/
│   │                           ├── app/
│   │                           │   ├── AppSecretException.java
│   │                           │   ├── AppSecurityController.java
│   │                           │   ├── authentication/
│   │                           │   │   └── openid/
│   │                           │   │       ├── OpenIdAuthenticationFilter.java
│   │                           │   │       ├── OpenIdAuthenticationProvider.java
│   │                           │   │       ├── OpenIdAuthenticationSecurityConfig.java
│   │                           │   │       └── OpenIdAuthenticationToken.java
│   │                           │   └── social/
│   │                           │       ├── AppSingUpUtils.java
│   │                           │       ├── AppSocialAuthenticationFilterPostProcessor.java
│   │                           │       └── SpringSocialConfigurerPostProcessor.java
│   │                           └── server/
│   │                               ├── PcAccessDeniedHandler.java
│   │                               ├── PcResourceServerConfig.java
│   │                               ├── PcWebResponseExceptionTranslator.java
│   │                               ├── TokenJwtEnhancer.java
│   │                               └── TokenStoreConfig.java
│   ├── paascloud-security-core/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── security/
│   │                           └── core/
│   │                               ├── SecurityCoreConfig.java
│   │                               ├── SecurityResult.java
│   │                               ├── SecurityUser.java
│   │                               ├── authentication/
│   │                               │   ├── AuthenticationBeanConfig.java
│   │                               │   ├── DefaultSocialUserDetailsServiceImpl.java
│   │                               │   ├── DefaultUserDetailsServiceImpl.java
│   │                               │   ├── FormAuthenticationConfig.java
│   │                               │   └── mobile/
│   │                               │       ├── SmsCodeAuthenticationFilter.java
│   │                               │       ├── SmsCodeAuthenticationProvider.java
│   │                               │       ├── SmsCodeAuthenticationSecurityConfig.java
│   │                               │       └── SmsCodeAuthenticationToken.java
│   │                               ├── authorize/
│   │                               │   ├── AuthorizeConfigManager.java
│   │                               │   ├── AuthorizeConfigProvider.java
│   │                               │   ├── PcAuthorizeConfigManager.java
│   │                               │   └── PcAuthorizeConfigProvider.java
│   │                               ├── properties/
│   │                               │   ├── BrowserProperties.java
│   │                               │   ├── EmailCodeProperties.java
│   │                               │   ├── ImageCodeProperties.java
│   │                               │   ├── LoginResponseType.java
│   │                               │   ├── OAuth2ClientProperties.java
│   │                               │   ├── OAuth2Properties.java
│   │                               │   ├── QQProperties.java
│   │                               │   ├── SecurityConstants.java
│   │                               │   ├── SecurityProperties.java
│   │                               │   ├── SessionProperties.java
│   │                               │   ├── SmsCodeProperties.java
│   │                               │   ├── SocialProperties.java
│   │                               │   ├── ValidateCodeProperties.java
│   │                               │   └── WeixinProperties.java
│   │                               ├── social/
│   │                               │   ├── BaseSocialController.java
│   │                               │   ├── SocialConfig.java
│   │                               │   ├── qq/
│   │                               │   │   ├── api/
│   │                               │   │   │   ├── QQ.java
│   │                               │   │   │   ├── QQImpl.java
│   │                               │   │   │   └── QQUserInfo.java
│   │                               │   │   ├── config/
│   │                               │   │   │   └── QQAutoConfig.java
│   │                               │   │   └── connet/
│   │                               │   │       ├── QQAdapter.java
│   │                               │   │       ├── QQConnectionFactory.java
│   │                               │   │       ├── QQOAuth2Template.java
│   │                               │   │       └── QQServiceProvider.java
│   │                               │   ├── support/
│   │                               │   │   ├── PcSpringSocialConfigurer.java
│   │                               │   │   ├── SocialAuthenticationFilterPostProcessor.java
│   │                               │   │   └── SocialUserInfo.java
│   │                               │   ├── view/
│   │                               │   │   ├── PcConnectView.java
│   │                               │   │   └── PcConnectionStatusView.java
│   │                               │   └── weixin/
│   │                               │       ├── api/
│   │                               │       │   ├── Weixin.java
│   │                               │       │   ├── WeixinImpl.java
│   │                               │       │   └── WeixinUserInfo.java
│   │                               │       ├── config/
│   │                               │       │   └── WeixinAutoConfiguration.java
│   │                               │       └── connect/
│   │                               │           ├── WeixinAccessGrant.java
│   │                               │           ├── WeixinAdapter.java
│   │                               │           ├── WeixinConnectionFactory.java
│   │                               │           ├── WeixinOAuth2Template.java
│   │                               │           └── WeixinServiceProvider.java
│   │                               └── validate/
│   │                                   └── code/
│   │                                       ├── CookieUtil.java
│   │                                       ├── ValidateCode.java
│   │                                       ├── ValidateCodeBeanConfig.java
│   │                                       ├── ValidateCodeController.java
│   │                                       ├── ValidateCodeException.java
│   │                                       ├── ValidateCodeFilter.java
│   │                                       ├── ValidateCodeGenerator.java
│   │                                       ├── ValidateCodeProcessor.java
│   │                                       ├── ValidateCodeProcessorHolder.java
│   │                                       ├── ValidateCodeRepository.java
│   │                                       ├── ValidateCodeSecurityConfig.java
│   │                                       ├── ValidateCodeType.java
│   │                                       ├── email/
│   │                                       │   ├── DefaultEmailCodeSender.java
│   │                                       │   ├── EmailCodeGenerator.java
│   │                                       │   ├── EmailCodeProcessor.java
│   │                                       │   └── EmailCodeSender.java
│   │                                       ├── image/
│   │                                       │   ├── ImageCode.java
│   │                                       │   ├── ImageCodeGenerator.java
│   │                                       │   └── ImageCodeProcessor.java
│   │                                       ├── impl/
│   │                                       │   ├── AbstractValidateCodeProcessor.java
│   │                                       │   └── RedisValidateCodeRepository.java
│   │                                       └── sms/
│   │                                           ├── DefaultSmsCodeSender.java
│   │                                           ├── SmsCodeGenerator.java
│   │                                           ├── SmsCodeProcessor.java
│   │                                           └── SmsCodeSender.java
│   ├── paascloud-security-feign/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── security/
│   │                           └── feign/
│   │                               ├── OAuth2FeignAutoConfiguration.java
│   │                               ├── OAuth2FeignRequestInterceptor.java
│   │                               ├── Oauth2ClientProperties.java
│   │                               └── Oauth2FeignErrorInterceptor.java
│   └── pom.xml
├── paascloud-discovery/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── discovery/
│           │               └── PaasCloudDiscoveryApplication.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               ├── logback-spring.xml
│               └── server.jks
├── paascloud-eureka/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── discovery/
│           │               └── eureka/
│           │                   └── PaasCloudEurekaApplication.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               └── logback-spring.xml
├── paascloud-gateway/
│   ├── .gitignore
│   ├── README.md
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── gateway/
│           │               ├── PaasCloudGatewayApplication.java
│           │               ├── config/
│           │               │   └── SecurityConfig.java
│           │               ├── fallback/
│           │               │   └── UacFallbackProvider.java
│           │               └── filter/
│           │                   ├── AuthHeaderFilter.java
│           │                   └── RenewFilter.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               └── logback-spring.xml
├── paascloud-generator/
│   ├── .gitignore
│   ├── README.md
│   ├── paascloud-generator-mdc/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   ├── paascloud-generator-omc/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   ├── paascloud-generator-opc/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   ├── paascloud-generator-tpc/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   ├── paascloud-generator-uac/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── main/
│   │           │                   └── PaginationPlugin.java
│   │           └── resources/
│   │               ├── config.properties
│   │               └── generator/
│   │                   ├── generatorConfig-A.xml
│   │                   └── generatorConfig-B.xml
│   └── pom.xml
├── paascloud-monitor/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── discovery/
│           │               ├── PaasCloudMonitorApplication.java
│           │               └── SecurityConfig.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               └── logback-spring.xml
├── paascloud-provider/
│   ├── paascloud-provider-mdc/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudMdcApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── MdcWebMvcConfig.java
│   │       │   │               │   └── ResourceServerConfig.java
│   │       │   │               ├── manager/
│   │       │   │               │   └── MdcProductManager.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── MdcAddressMapper.java
│   │       │   │               │   ├── MdcDictMapper.java
│   │       │   │               │   ├── MdcExceptionLogMapper.java
│   │       │   │               │   ├── MdcProductCategoryMapper.java
│   │       │   │               │   └── MdcProductMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   ├── constant/
│   │       │   │               │   │   └── MallConstant.java
│   │       │   │               │   ├── domain/
│   │       │   │               │   │   ├── MdcAddress.java
│   │       │   │               │   │   ├── MdcDict.java
│   │       │   │               │   │   ├── MdcExceptionLog.java
│   │       │   │               │   │   ├── MdcProduct.java
│   │       │   │               │   │   └── MdcProductCategory.java
│   │       │   │               │   ├── dto/
│   │       │   │               │   │   ├── MdcCategoryCheckNameDto.java
│   │       │   │               │   │   ├── MdcDictCheckCodeDto.java
│   │       │   │               │   │   ├── MdcDictCheckNameDto.java
│   │       │   │               │   │   ├── MdcEditCategoryDto.java
│   │       │   │               │   │   ├── MdcEditDictDto.java
│   │       │   │               │   │   ├── MdcEditProductDto.java
│   │       │   │               │   │   └── MdcExceptionQueryDto.java
│   │       │   │               │   ├── enums/
│   │       │   │               │   │   ├── AddressTypeEnum.java
│   │       │   │               │   │   ├── MdcCategoryStatusEnum.java
│   │       │   │               │   │   └── MdcDictStatusEnum.java
│   │       │   │               │   └── vo/
│   │       │   │               │       ├── MdcCategoryVo.java
│   │       │   │               │       ├── MdcDictVo.java
│   │       │   │               │       └── ProductVo.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── MdcAddressService.java
│   │       │   │               │   ├── MdcDictService.java
│   │       │   │               │   ├── MdcExceptionLogService.java
│   │       │   │               │   ├── MdcProductCategoryService.java
│   │       │   │               │   ├── MdcProductService.java
│   │       │   │               │   ├── OpcRpcService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── MdcAddressServiceImpl.java
│   │       │   │               │       ├── MdcDictServiceImpl.java
│   │       │   │               │       ├── MdcExceptionLogServiceImpl.java
│   │       │   │               │       ├── MdcProductCategoryServiceImpl.java
│   │       │   │               │       └── MdcProductServiceImpl.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── frontend/
│   │       │   │                   │   ├── MdcAddressRest.java
│   │       │   │                   │   ├── MdcDictMainController.java
│   │       │   │                   │   ├── MdcExceptionMainController.java
│   │       │   │                   │   ├── MdcProductCategoryMainController.java
│   │       │   │                   │   ├── MdcProductMainController.java
│   │       │   │                   │   ├── UacDictCommonController.java
│   │       │   │                   │   └── UacProductCategoryCommonController.java
│   │       │   │                   └── rpc/
│   │       │   │                       ├── MdcAddressQueryFeignClient.java
│   │       │   │                       ├── MdcExceptionLogFeignClient.java
│   │       │   │                       ├── MdcMqMessageFeignClient.java
│   │       │   │                       ├── MdcProductCategoryFeignClient.java
│   │       │   │                       ├── MdcProductCategoryQueryFeignClient.java
│   │       │   │                       ├── MdcProductFeignClient.java
│   │       │   │                       └── MdcProductQueryFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       └── mapper/
│   │       │           ├── MdcAddressMapper.xml
│   │       │           ├── MdcDictMapper.xml
│   │       │           ├── MdcExceptionLogMapper.xml
│   │       │           ├── MdcProductCategoryMapper.xml
│   │       │           └── MdcProductMapper.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           └── PaasCloudMdcApplicationTests.java
│   ├── paascloud-provider-omc/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudOmcApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── OmcWebMvcConfig.java
│   │       │   │               │   └── ResourceServerConfig.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── OmcCartMapper.java
│   │       │   │               │   ├── OmcOrderDetailMapper.java
│   │       │   │               │   ├── OmcOrderMapper.java
│   │       │   │               │   ├── OmcShippingMapper.java
│   │       │   │               │   └── PtcPayInfoMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   └── domain/
│   │       │   │               │       ├── OmcCart.java
│   │       │   │               │       ├── OmcOrder.java
│   │       │   │               │       ├── OmcOrderDetail.java
│   │       │   │               │       ├── OmcShipping.java
│   │       │   │               │       └── PtcPayInfo.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── MdcProductService.java
│   │       │   │               │   ├── OmcCartService.java
│   │       │   │               │   ├── OmcOrderDetailService.java
│   │       │   │               │   ├── OmcOrderService.java
│   │       │   │               │   ├── OmcShippingService.java
│   │       │   │               │   ├── OpcOssService.java
│   │       │   │               │   ├── PtcAlipayService.java
│   │       │   │               │   ├── PtcPayInfoService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── MdcProductServiceImpl.java
│   │       │   │               │       ├── OmcCartServiceImpl.java
│   │       │   │               │       ├── OmcOrderDetailServiceImpl.java
│   │       │   │               │       ├── OmcOrderServiceImpl.java
│   │       │   │               │       ├── OmcShippingServiceImpl.java
│   │       │   │               │       ├── OpcOssServiceImpl.java
│   │       │   │               │       ├── PtcAlipayServiceImpl.java
│   │       │   │               │       └── PtcPayInfoServiceImpl.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── frontend/
│   │       │   │                   │   ├── OmcOrderController.java
│   │       │   │                   │   ├── OmcShippingController.java
│   │       │   │                   │   └── PtcPayController.java
│   │       │   │                   └── rpc/
│   │       │   │                       ├── MallCartFeignClient.java
│   │       │   │                       ├── MallCartQueryFeignClient.java
│   │       │   │                       ├── OmcOrderDetailFeignClient.java
│   │       │   │                       ├── OmcOrderDetailQueryFeignClient.java
│   │       │   │                       ├── OmcOrderFeignClient.java
│   │       │   │                       └── OmcOrderQueryFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       ├── mapper/
│   │       │       │   ├── OmcCartMapper.xml
│   │       │       │   ├── OmcOrderDetailMapper.xml
│   │       │       │   ├── OmcOrderMapper.xml
│   │       │       │   ├── OmcShippingMapper.xml
│   │       │       │   └── PtcPayInfoMapper.xml
│   │       │       └── zfbinfo.properties
│   │       └── test/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               └── PaasCloudOmcApplicationTests.java
│   │           └── resources/
│   │               └── generator/
│   │                   └── generatorConfig.xml
│   ├── paascloud-provider-opc/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudOpcApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── AliyunMqConfiguration.java
│   │       │   │               │   ├── AliyunSmsConfiguration.java
│   │       │   │               │   ├── OpcWebMvcConfig.java
│   │       │   │               │   ├── QiniuOssConfiguration.java
│   │       │   │               │   └── ResourceServerConfig.java
│   │       │   │               ├── consumer/
│   │       │   │               │   ├── MdcTopicConsumer.java
│   │       │   │               │   ├── OptSendEmailTopicConsumer.java
│   │       │   │               │   ├── OptSendSmsTopicConsumer.java
│   │       │   │               │   └── listener/
│   │       │   │               │       └── OptPushMessageListener.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── OpcSmsSettingMapper.java
│   │       │   │               │   └── OptAttachmentMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   ├── domain/
│   │       │   │               │   │   ├── OpcSmsSetting.java
│   │       │   │               │   │   └── OptAttachment.java
│   │       │   │               │   └── dto/
│   │       │   │               │       ├── attachment/
│   │       │   │               │       │   └── OptAttachmentReqDto.java
│   │       │   │               │       └── mail/
│   │       │   │               │           └── MailEntity.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── OpcAttachmentService.java
│   │       │   │               │   ├── OpcOssService.java
│   │       │   │               │   ├── OptFreeMarkerService.java
│   │       │   │               │   ├── OptSendMailService.java
│   │       │   │               │   ├── OptSmsService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── OptAttachmentServiceImpl.java
│   │       │   │               │       ├── OptFreeMarkerServiceImpl.java
│   │       │   │               │       ├── OptQiniuOssServiceImpl.java
│   │       │   │               │       ├── OptSendMailServiceImpl.java
│   │       │   │               │       └── OptSmsServiceImpl.java
│   │       │   │               ├── utils/
│   │       │   │               │   ├── CheckFileUtil.java
│   │       │   │               │   └── GaoDeUtil.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── frontend/
│   │       │   │                   │   └── OpcFileController.java
│   │       │   │                   └── rpc/
│   │       │   │                       ├── DingtalkFeignClient.java
│   │       │   │                       ├── OpcAttachmentFeignClient.java
│   │       │   │                       ├── OpcGaodeFeignClient.java
│   │       │   │                       └── OpcMqMessageFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       ├── mapper/
│   │       │       │   ├── OpcSmsSettingMapper.xml
│   │       │       │   └── OptAttachmentMapper.xml
│   │       │       └── templates/
│   │       │           └── mail/
│   │       │               ├── sendRegisterSuccessTemplate.ftl
│   │       │               └── sendRegisterVerifyCodeTemplate.vm
│   │       └── test/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               ├── PaasCloudOmcApplicationTests.java
│   │           │               ├── aliyun/
│   │           │               │   ├── MqProducerTest.java
│   │           │               │   └── OptSmsServiceTest.java
│   │           │               ├── mail/
│   │           │               │   └── MailTest.java
│   │           │               └── qiniu/
│   │           │                   └── OpcOssServiceTest.java
│   │           └── resources/
│   │               └── generator/
│   │                   └── generatorConfig.xml
│   ├── paascloud-provider-tpc/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudTpcApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── MqBeanInitRunner.java
│   │       │   │               │   ├── ResourceServerConfig.java
│   │       │   │               │   └── TpcWebMvcConfig.java
│   │       │   │               ├── job/
│   │       │   │               │   ├── dataflow/
│   │       │   │               │   │   ├── HandleSendingMessageJob.java
│   │       │   │               │   │   └── HandleWaitingConfirmMessageJob.java
│   │       │   │               │   ├── listener/
│   │       │   │               │   │   └── HandleUserTokenJobListener.java
│   │       │   │               │   └── simple/
│   │       │   │               │       ├── DeleteRpcConsumerMessageJob.java
│   │       │   │               │       ├── DeleteRpcExpireFileJob.java
│   │       │   │               │       ├── DeleteRpcProducerMessageJob.java
│   │       │   │               │       └── HandleUserJwtTokenJob.java
│   │       │   │               ├── listener/
│   │       │   │               │   ├── MqConsumerChangeListener.java
│   │       │   │               │   └── MqProducerChangeListener.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── TpcJobTaskMapper.java
│   │       │   │               │   ├── TpcMqConfirmMapper.java
│   │       │   │               │   ├── TpcMqConsumerMapper.java
│   │       │   │               │   ├── TpcMqMessageMapper.java
│   │       │   │               │   ├── TpcMqProducerMapper.java
│   │       │   │               │   ├── TpcMqSubscribeTagMapper.java
│   │       │   │               │   ├── TpcMqTagMapper.java
│   │       │   │               │   └── TpcMqTopicMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   ├── constant/
│   │       │   │               │   │   └── .gitkeep
│   │       │   │               │   ├── domain/
│   │       │   │               │   │   ├── TpcJobTask.java
│   │       │   │               │   │   ├── TpcMqConfirm.java
│   │       │   │               │   │   ├── TpcMqConsumer.java
│   │       │   │               │   │   ├── TpcMqMessage.java
│   │       │   │               │   │   ├── TpcMqProducer.java
│   │       │   │               │   │   ├── TpcMqSubscribeTag.java
│   │       │   │               │   │   ├── TpcMqTag.java
│   │       │   │               │   │   └── TpcMqTopic.java
│   │       │   │               │   ├── dto/
│   │       │   │               │   │   └── MessageTaskQueryDto.java
│   │       │   │               │   ├── enums/
│   │       │   │               │   │   ├── JobTaskTypeEnum.java
│   │       │   │               │   │   ├── MqConfirmStatusEnum.java
│   │       │   │               │   │   ├── MqSendStatusEnum.java
│   │       │   │               │   │   └── PIDEnum.java
│   │       │   │               │   └── vo/
│   │       │   │               │       ├── TpcMessageVo.java
│   │       │   │               │       ├── TpcMqConfirmVo.java
│   │       │   │               │       ├── TpcMqConsumerVo.java
│   │       │   │               │       ├── TpcMqProducerVo.java
│   │       │   │               │       ├── TpcMqPublishVo.java
│   │       │   │               │       ├── TpcMqSubscribeVo.java
│   │       │   │               │       ├── TpcMqTagVo.java
│   │       │   │               │       └── TpcMqTopicVo.java
│   │       │   │               ├── mq/
│   │       │   │               │   └── RocketMqProducer.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── MdcRpcService.java
│   │       │   │               │   ├── MqProducerBeanFactory.java
│   │       │   │               │   ├── OmcRpcService.java
│   │       │   │               │   ├── OpcRpcService.java
│   │       │   │               │   ├── TpcMqConsumerService.java
│   │       │   │               │   ├── TpcMqMessageService.java
│   │       │   │               │   ├── TpcMqProducerService.java
│   │       │   │               │   ├── TpcMqTagService.java
│   │       │   │               │   ├── TpcMqTopicService.java
│   │       │   │               │   ├── UacRpcService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── TpcMqConsumerServiceImpl.java
│   │       │   │               │       ├── TpcMqMessageServiceImpl.java
│   │       │   │               │       ├── TpcMqProducerServiceImpl.java
│   │       │   │               │       ├── TpcMqTagServiceImpl.java
│   │       │   │               │       └── TpcMqTopicServiceImpl.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── frontend/
│   │       │   │                   │   ├── TpcMessageMainController.java
│   │       │   │                   │   ├── TpcMqConsumerController.java
│   │       │   │                   │   ├── TpcMqProducerController.java
│   │       │   │                   │   ├── TpcMqTagController.java
│   │       │   │                   │   └── TpcMqTopicController.java
│   │       │   │                   └── rpc/
│   │       │   │                       └── TpcMqMessageFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       └── mapper/
│   │       │           ├── TpcJobTaskMapper.xml
│   │       │           ├── TpcMqConfirmMapper.xml
│   │       │           ├── TpcMqConsumerMapper.xml
│   │       │           ├── TpcMqMessageMapper.xml
│   │       │           ├── TpcMqProducerMapper.xml
│   │       │           ├── TpcMqSubscribeTagMapper.xml
│   │       │           ├── TpcMqTagMapper.xml
│   │       │           └── TpcMqTopicMapper.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           └── PaasCloudMdcApplicationTests.java
│   ├── paascloud-provider-uac/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── paascloud/
│   │       │   │           ├── PaasCloudUacApplication.java
│   │       │   │           └── provider/
│   │       │   │               ├── config/
│   │       │   │               │   ├── AliyunMqConfiguration.java
│   │       │   │               │   ├── CaptchaConfig.java
│   │       │   │               │   ├── RedisInitRunner.java
│   │       │   │               │   └── UacWebMvcConfig.java
│   │       │   │               ├── manager/
│   │       │   │               │   └── UserManager.java
│   │       │   │               ├── mapper/
│   │       │   │               │   ├── UacActionMapper.java
│   │       │   │               │   ├── UacGroupMapper.java
│   │       │   │               │   ├── UacGroupUserMapper.java
│   │       │   │               │   ├── UacLogMapper.java
│   │       │   │               │   ├── UacMenuMapper.java
│   │       │   │               │   ├── UacRoleActionMapper.java
│   │       │   │               │   ├── UacRoleMapper.java
│   │       │   │               │   ├── UacRoleMenuMapper.java
│   │       │   │               │   ├── UacRoleUserMapper.java
│   │       │   │               │   ├── UacUserMapper.java
│   │       │   │               │   ├── UacUserMenuMapper.java
│   │       │   │               │   └── UacUserTokenMapper.java
│   │       │   │               ├── model/
│   │       │   │               │   ├── constant/
│   │       │   │               │   │   └── MenuConstant.java
│   │       │   │               │   ├── domain/
│   │       │   │               │   │   ├── UacAction.java
│   │       │   │               │   │   ├── UacGroup.java
│   │       │   │               │   │   ├── UacGroupUser.java
│   │       │   │               │   │   ├── UacLog.java
│   │       │   │               │   │   ├── UacMenu.java
│   │       │   │               │   │   ├── UacRole.java
│   │       │   │               │   │   ├── UacRoleAction.java
│   │       │   │               │   │   ├── UacRoleMenu.java
│   │       │   │               │   │   ├── UacRoleUser.java
│   │       │   │               │   │   ├── UacUser.java
│   │       │   │               │   │   ├── UacUserMenu.java
│   │       │   │               │   │   └── UacUserToken.java
│   │       │   │               │   ├── dto/
│   │       │   │               │   │   ├── action/
│   │       │   │               │   │   │   ├── ActionMainQueryDto.java
│   │       │   │               │   │   │   ├── UacActionCheckCodeDto.java
│   │       │   │               │   │   │   └── UacActionCheckUrlDto.java
│   │       │   │               │   │   ├── base/
│   │       │   │               │   │   │   └── ModifyStatusDto.java
│   │       │   │               │   │   ├── email/
│   │       │   │               │   │   │   └── SendEmailMessage.java
│   │       │   │               │   │   ├── group/
│   │       │   │               │   │   │   ├── CheckGroupCodeDto.java
│   │       │   │               │   │   │   ├── CheckGroupNameDto.java
│   │       │   │               │   │   │   ├── GroupBindUserDto.java
│   │       │   │               │   │   │   └── GroupBindUserReqDto.java
│   │       │   │               │   │   ├── log/
│   │       │   │               │   │   │   └── UacLogMainDto.java
│   │       │   │               │   │   ├── menu/
│   │       │   │               │   │   │   ├── UacEditMenuDto.java
│   │       │   │               │   │   │   ├── UacMenuCheckCodeDto.java
│   │       │   │               │   │   │   ├── UacMenuCheckNameDto.java
│   │       │   │               │   │   │   ├── UacMenuCheckUrlDto.java
│   │       │   │               │   │   │   ├── UacMenuStatusDto.java
│   │       │   │               │   │   │   ├── UacMenuUrlDto.java
│   │       │   │               │   │   │   ├── UserMenuChildrenDto.java
│   │       │   │               │   │   │   └── UserMenuDto.java
│   │       │   │               │   │   ├── omc/
│   │       │   │               │   │   │   └── CartListQuery.java
│   │       │   │               │   │   ├── role/
│   │       │   │               │   │   │   ├── BindUserDto.java
│   │       │   │               │   │   │   ├── CheckRoleCodeDto.java
│   │       │   │               │   │   │   ├── RoleBindActionDto.java
│   │       │   │               │   │   │   ├── RoleBindMenuDto.java
│   │       │   │               │   │   │   ├── RoleBindUserDto.java
│   │       │   │               │   │   │   └── RoleBindUserReqDto.java
│   │       │   │               │   │   ├── sms/
│   │       │   │               │   │   │   └── SmsMessage.java
│   │       │   │               │   │   ├── token/
│   │       │   │               │   │   │   ├── RefreshTokenDto.java
│   │       │   │               │   │   │   └── TokenMainQueryDto.java
│   │       │   │               │   │   └── user/
│   │       │   │               │   │       ├── BindRoleDto.java
│   │       │   │               │   │       ├── BindUserMenusDto.java
│   │       │   │               │   │       ├── BindUserRolesDto.java
│   │       │   │               │   │       ├── CheckEmailDto.java
│   │       │   │               │   │       ├── CheckLoginNameDto.java
│   │       │   │               │   │       ├── CheckNewPasswordDto.java
│   │       │   │               │   │       ├── CheckUserNameDto.java
│   │       │   │               │   │       ├── CheckUserPhoneDto.java
│   │       │   │               │   │       ├── LoginRespDto.java
│   │       │   │               │   │       ├── ModifyUserStatusDto.java
│   │       │   │               │   │       ├── ResetLoginPwdDto.java
│   │       │   │               │   │       ├── UserModifyPwdDto.java
│   │       │   │               │   │       └── UserResetPwdDto.java
│   │       │   │               │   ├── enums/
│   │       │   │               │   │   ├── UacActionStatusEnum.java
│   │       │   │               │   │   ├── UacEmailTemplateEnum.java
│   │       │   │               │   │   ├── UacGroupStatusEnum.java
│   │       │   │               │   │   ├── UacMenuStatusEnum.java
│   │       │   │               │   │   ├── UacRoleStatusEnum.java
│   │       │   │               │   │   ├── UacUserSourceEnum.java
│   │       │   │               │   │   ├── UacUserStatusEnum.java
│   │       │   │               │   │   ├── UacUserTokenStatusEnum.java
│   │       │   │               │   │   ├── UacUserTypeEnum.java
│   │       │   │               │   │   └── ZtreeAuthTypeEnum.java
│   │       │   │               │   └── vo/
│   │       │   │               │       ├── ActionVo.java
│   │       │   │               │       ├── BindAuthVo.java
│   │       │   │               │       ├── ElementTreeVo.java
│   │       │   │               │       ├── GroupZtreeVo.java
│   │       │   │               │       ├── JqTreeResponseVo.java
│   │       │   │               │       ├── KaptchaVo.java
│   │       │   │               │       ├── RoleVo.java
│   │       │   │               │       ├── UserBindRoleVo.java
│   │       │   │               │       ├── UserTokenVo.java
│   │       │   │               │       ├── UserVo.java
│   │       │   │               │       ├── ViewMenuVo.java
│   │       │   │               │       ├── ZtreeResponseVo.java
│   │       │   │               │       ├── role/
│   │       │   │               │       │   ├── MenuCountVo.java
│   │       │   │               │       │   └── RoleZtreeVo.java
│   │       │   │               │       └── treeview/
│   │       │   │               │           ├── AdditionalParameters.java
│   │       │   │               │           ├── Item.java
│   │       │   │               │           └── ItemType.java
│   │       │   │               ├── mq/
│   │       │   │               │   ├── consumer/
│   │       │   │               │   │   └── listener/
│   │       │   │               │   │       └── UacPushMessageListener.java
│   │       │   │               │   └── producer/
│   │       │   │               │       ├── EmailProducer.java
│   │       │   │               │       └── SmsProducer.java
│   │       │   │               ├── security/
│   │       │   │               │   ├── PcAuthenticationFailureHandler.java
│   │       │   │               │   ├── PcAuthenticationSuccessHandler.java
│   │       │   │               │   ├── PcAuthorizationServerConfig.java
│   │       │   │               │   ├── PcLogoutSuccessHandler.java
│   │       │   │               │   ├── PcPermissionAuthorizeConfigProvider.java
│   │       │   │               │   ├── PcSecurityExpressionHandler.java
│   │       │   │               │   ├── RestClientDetailsServiceImpl.java
│   │       │   │               │   ├── SecurityUtils.java
│   │       │   │               │   └── UacUserDetailsServiceImpl.java
│   │       │   │               ├── service/
│   │       │   │               │   ├── EmailService.java
│   │       │   │               │   ├── MdcAddressService.java
│   │       │   │               │   ├── OpcRpcService.java
│   │       │   │               │   ├── RedisHashService.java
│   │       │   │               │   ├── RedisService.java
│   │       │   │               │   ├── RedisSetService.java
│   │       │   │               │   ├── SmsService.java
│   │       │   │               │   ├── UacActionService.java
│   │       │   │               │   ├── UacFreeMarkerService.java
│   │       │   │               │   ├── UacGroupService.java
│   │       │   │               │   ├── UacGroupUserService.java
│   │       │   │               │   ├── UacLogService.java
│   │       │   │               │   ├── UacLoginService.java
│   │       │   │               │   ├── UacMenuService.java
│   │       │   │               │   ├── UacPermissionService.java
│   │       │   │               │   ├── UacRoleActionService.java
│   │       │   │               │   ├── UacRoleMenuService.java
│   │       │   │               │   ├── UacRoleService.java
│   │       │   │               │   ├── UacRoleUserService.java
│   │       │   │               │   ├── UacUserMenuService.java
│   │       │   │               │   ├── UacUserService.java
│   │       │   │               │   ├── UacUserTokenService.java
│   │       │   │               │   └── impl/
│   │       │   │               │       ├── EmailServiceImpl.java
│   │       │   │               │       ├── MdcAddressServiceImpl.java
│   │       │   │               │       ├── OpcRpcServiceImpl.java
│   │       │   │               │       ├── PcSmsCodeSender.java
│   │       │   │               │       ├── RedisHashServiceImpl.java
│   │       │   │               │       ├── RedisServiceImpl.java
│   │       │   │               │       ├── RedisSetServiceImpl.java
│   │       │   │               │       ├── SmsServiceImpl.java
│   │       │   │               │       ├── UacActionServiceImpl.java
│   │       │   │               │       ├── UacFreeMarkerServiceImpl.java
│   │       │   │               │       ├── UacGroupServiceImpl.java
│   │       │   │               │       ├── UacGroupUserServiceImpl.java
│   │       │   │               │       ├── UacLogServiceImpl.java
│   │       │   │               │       ├── UacLoginServiceImpl.java
│   │       │   │               │       ├── UacMenuServiceImpl.java
│   │       │   │               │       ├── UacPermissionServiceImpl.java
│   │       │   │               │       ├── UacRoleActionServiceImpl.java
│   │       │   │               │       ├── UacRoleMenuServiceImpl.java
│   │       │   │               │       ├── UacRoleServiceImpl.java
│   │       │   │               │       ├── UacRoleUserServiceImpl.java
│   │       │   │               │       ├── UacUserMenuServiceImpl.java
│   │       │   │               │       ├── UacUserServiceImpl.java
│   │       │   │               │       └── UacUserTokenServiceImpl.java
│   │       │   │               ├── utils/
│   │       │   │               │   ├── Md5Util.java
│   │       │   │               │   └── TreeUtil.java
│   │       │   │               └── web/
│   │       │   │                   ├── GlobalExceptionHandler.java
│   │       │   │                   ├── admin/
│   │       │   │                   │   ├── AuthRestController.java
│   │       │   │                   │   ├── UacActionCommonController.java
│   │       │   │                   │   ├── UacActionMainController.java
│   │       │   │                   │   ├── UacGrantAuth4RoleController.java
│   │       │   │                   │   ├── UacGroupBindUserController.java
│   │       │   │                   │   ├── UacGroupCommonController.java
│   │       │   │                   │   ├── UacGroupMainController.java
│   │       │   │                   │   ├── UacLogMainController.java
│   │       │   │                   │   ├── UacMenuCommonController.java
│   │       │   │                   │   ├── UacMenuMainController.java
│   │       │   │                   │   ├── UacRoleBindUserController.java
│   │       │   │                   │   ├── UacRoleCommonController.java
│   │       │   │                   │   ├── UacRoleMainController.java
│   │       │   │                   │   ├── UacTokenMainController.java
│   │       │   │                   │   ├── UacUserCommonController.java
│   │       │   │                   │   ├── UacUserLoginController.java
│   │       │   │                   │   ├── UacUserMainController.java
│   │       │   │                   │   └── UacUserPasswordController.java
│   │       │   │                   ├── mall/
│   │       │   │                   │   ├── EmailController.java
│   │       │   │                   │   ├── MallAuthRestController.java
│   │       │   │                   │   ├── MallCartController.java
│   │       │   │                   │   └── MallUserController.java
│   │       │   │                   └── rpc/
│   │       │   │                       ├── UacMqMessageFeignClient.java
│   │       │   │                       └── UacUserTokenFeignClient.java
│   │       │   └── resources/
│   │       │       ├── META-INF/
│   │       │       │   └── spring-devtools.properties
│   │       │       ├── ValidationMessages.properties
│   │       │       ├── application.yml
│   │       │       ├── banner.txt
│   │       │       ├── bootstrap.yml
│   │       │       ├── conf/
│   │       │       │   └── liquibase.properties
│   │       │       ├── liquibase/
│   │       │       │   ├── change_log/
│   │       │       │   │   └── 2017-06-10-init-schema.xml
│   │       │       │   └── index.xml
│   │       │       ├── logback-spring.xml
│   │       │       ├── mapper/
│   │       │       │   ├── UacActionMapper.xml
│   │       │       │   ├── UacGroupMapper.xml
│   │       │       │   ├── UacGroupUserMapper.xml
│   │       │       │   ├── UacLogMapper.xml
│   │       │       │   ├── UacMenuMapper.xml
│   │       │       │   ├── UacRoleActionMapper.xml
│   │       │       │   ├── UacRoleMapper.xml
│   │       │       │   ├── UacRoleMenuMapper.xml
│   │       │       │   ├── UacRoleUserMapper.xml
│   │       │       │   ├── UacUserMapper.xml
│   │       │       │   ├── UacUserMenuMapper.xml
│   │       │       │   └── UacUserTokenMapper.xml
│   │       │       ├── org/
│   │       │       │   └── springframework/
│   │       │       │       └── security/
│   │       │       │           └── messages_zh_CN.properties
│   │       │       ├── static/
│   │       │       │   └── index.html
│   │       │       └── templates/
│   │       │           └── email/
│   │       │               ├── activeUserSuccessTemplate.ftl
│   │       │               ├── activeUserTemplate.ftl
│   │       │               ├── sendRestLoginPwdSuccessTemplate.ftl
│   │       │               ├── sendRestLoginPwdTemplate.ftl
│   │       │               ├── sendRestPwdCodeTemplate.ftl
│   │       │               └── sendRestUserEmailTemplate.ftl
│   │       └── test/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               ├── MD5Test.java
│   │           │               ├── MybatisGenerator.java
│   │           │               ├── PaasCloudUacApplicationTests.java
│   │           │               ├── UacMenuServiceTest.java
│   │           │               ├── UacRoleServiceTest.java
│   │           │               └── UacUserServiceTest.java
│   │           └── resources/
│   │               └── .gitkeep
│   └── pom.xml
├── paascloud-provider-api/
│   ├── paascloud-provider-mdc-api/
│   │   ├── .gitignore
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           ├── exceptions/
│   │                           │   └── MdcBizException.java
│   │                           ├── model/
│   │                           │   ├── constant/
│   │                           │   │   └── MdcApiConstant.java
│   │                           │   ├── dto/
│   │                           │   │   ├── AddressDTO.java
│   │                           │   │   ├── GlobalExceptionLogDto.java
│   │                           │   │   ├── ProductCategoryDto.java
│   │                           │   │   ├── ProductDto.java
│   │                           │   │   └── ProductReqDto.java
│   │                           │   └── vo/
│   │                           │       └── ProductDetailVo.java
│   │                           └── service/
│   │                               ├── MdcAddressQueryFeignApi.java
│   │                               ├── MdcExceptionLogFeignApi.java
│   │                               ├── MdcMqMessageFeignApi.java
│   │                               ├── MdcProductCategoryFeignApi.java
│   │                               ├── MdcProductCategoryQueryFeignApi.java
│   │                               ├── MdcProductFeignApi.java
│   │                               ├── MdcProductQueryFeignApi.java
│   │                               └── hystrix/
│   │                                   ├── MdcAddressQueryFeignHystrix.java
│   │                                   ├── MdcExceptionLogFeignHystrix.java
│   │                                   ├── MdcMqMessageApiHystrix.java
│   │                                   ├── MdcProductCategoryFeignHystrix.java
│   │                                   ├── MdcProductCategoryQueryFeignHystrix.java
│   │                                   ├── MdcProductFeignHystrix.java
│   │                                   └── MdcProductQueryFeignHystrix.java
│   ├── paascloud-provider-omc-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           ├── exceptions/
│   │                           │   └── OmcBizException.java
│   │                           ├── model/
│   │                           │   ├── constant/
│   │                           │   │   ├── OmcApiConstant.java
│   │                           │   │   └── PtcApiConstant.java
│   │                           │   ├── dto/
│   │                           │   │   ├── OrderDetailDto.java
│   │                           │   │   ├── OrderDto.java
│   │                           │   │   └── OrderPageQuery.java
│   │                           │   └── vo/
│   │                           │       ├── CartProductVo.java
│   │                           │       ├── CartVo.java
│   │                           │       ├── OrderDocVo.java
│   │                           │       ├── OrderItemVo.java
│   │                           │       ├── OrderProductVo.java
│   │                           │       ├── OrderVo.java
│   │                           │       └── ShippingVo.java
│   │                           └── service/
│   │                               ├── OmcCartFeignApi.java
│   │                               ├── OmcCartQueryFeignApi.java
│   │                               ├── OmcOrderDetailFeignApi.java
│   │                               ├── OmcOrderDetailQueryFeignApi.java
│   │                               ├── OmcOrderFeignApi.java
│   │                               ├── OmcOrderQueryFeignApi.java
│   │                               └── hystrix/
│   │                                   ├── OmcCartFeignHystrix.java
│   │                                   ├── OmcCartQueryFeignHystrix.java
│   │                                   ├── OmcOrderDetailFeignHystrix.java
│   │                                   ├── OmcOrderDetailQueryFeignHystrix.java
│   │                                   ├── OmcOrderFeignHystrix.java
│   │                                   └── OmcOrderQueryFeignHystrix.java
│   ├── paascloud-provider-opc-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           ├── exceptions/
│   │                           │   └── OpcBizException.java
│   │                           ├── model/
│   │                           │   ├── constant/
│   │                           │   │   └── OpcApiConstant.java
│   │                           │   ├── dto/
│   │                           │   │   ├── PcSendEmailRequest.java
│   │                           │   │   ├── PcSendSmsRequest.java
│   │                           │   │   ├── attachment/
│   │                           │   │   │   ├── OptAttachmentDeleteReqDto.java
│   │                           │   │   │   ├── OptAttachmentQueryReqDto.java
│   │                           │   │   │   ├── OptAttachmentRespDto.java
│   │                           │   │   │   ├── OptUpdateAttachmentReqDto.java
│   │                           │   │   │   └── OptUploadFileByteInfoReqDto.java
│   │                           │   │   ├── gaode/
│   │                           │   │   │   └── GaodeLocation.java
│   │                           │   │   ├── oss/
│   │                           │   │   │   ├── ElementImgUrlDto.java
│   │                           │   │   │   ├── OptBatchGetUrlRequest.java
│   │                           │   │   │   ├── OptGetUrlRequest.java
│   │                           │   │   │   ├── OptUploadFileReqDto.java
│   │                           │   │   │   └── OptUploadFileRespDto.java
│   │                           │   │   └── robot/
│   │                           │   │       ├── AtDto.java
│   │                           │   │       ├── ChatRobotMsgDto.java
│   │                           │   │       ├── LinkDto.java
│   │                           │   │       ├── MarkdownDto.java
│   │                           │   │       └── TextDto.java
│   │                           │   ├── enums/
│   │                           │   │   └── RobotMsgTypeEnum.java
│   │                           │   └── factory/
│   │                           │       └── ChatRobotMsgFactory.java
│   │                           └── service/
│   │                               ├── DingtalkFeignApi.java
│   │                               ├── OpcGaodeFeignApi.java
│   │                               ├── OpcMqMessageFeignApi.java
│   │                               ├── OpcOssFeignApi.java
│   │                               └── hystrix/
│   │                                   ├── DingtalkFeignApiHystrix.java
│   │                                   ├── OpcGaodeFeignApiHystrix.java
│   │                                   ├── OpcMqMessageFeignApiHystrix.java
│   │                                   └── OpcOssFeignApiHystrix.java
│   ├── paascloud-provider-sdk-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── paascloud/
│   │           │           └── provider/
│   │           │               ├── annotation/
│   │           │               │   ├── MqConsumerStore.java
│   │           │               │   └── MqProducerStore.java
│   │           │               ├── aspect/
│   │           │               │   ├── MqConsumerStoreAspect.java
│   │           │               │   └── MqProducerStoreAspect.java
│   │           │               ├── autoconfigure/
│   │           │               │   ├── MessageAutoConfiguration.java
│   │           │               │   └── MessageBeanConfiguration.java
│   │           │               ├── mapper/
│   │           │               │   └── MqMessageDataMapper.java
│   │           │               ├── model/
│   │           │               │   ├── domain/
│   │           │               │   │   └── MqMessageData.java
│   │           │               │   ├── dto/
│   │           │               │   │   └── UpdateAttachmentDto.java
│   │           │               │   └── enums/
│   │           │               │       ├── DelayLevelEnum.java
│   │           │               │       ├── MqMessageTypeEnum.java
│   │           │               │       ├── MqOrderTypeEnum.java
│   │           │               │       └── MqSendTypeEnum.java
│   │           │               └── service/
│   │           │                   ├── MqMessageService.java
│   │           │                   └── impl/
│   │           │                       └── MqMessageServiceImpl.java
│   │           └── resources/
│   │               ├── META-INF/
│   │               │   └── spring.factories
│   │               └── sdk/
│   │                   └── mapper/
│   │                       └── MqMessageDataMapper.xml
│   ├── paascloud-provider-tpc-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           ├── exceptions/
│   │                           │   └── TpcBizException.java
│   │                           ├── model/
│   │                           │   ├── dto/
│   │                           │   │   ├── PcJobTask.java
│   │                           │   │   ├── PcMessageJobTask.java
│   │                           │   │   └── TpcMqMessageDto.java
│   │                           │   └── enums/
│   │                           │       └── JobTaskStatusEnum.java
│   │                           └── service/
│   │                               ├── TpcMqMessageFeignApi.java
│   │                               └── hystrix/
│   │                                   └── TpcMqMessageFeignApiHystrix.java
│   ├── paascloud-provider-uac-api/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── paascloud/
│   │                       └── provider/
│   │                           └── model/
│   │                               ├── constant/
│   │                               │   ├── UacApiConstant.java
│   │                               │   └── UacConstant.java
│   │                               ├── dto/
│   │                               │   └── user/
│   │                               │       ├── ForgetCheckAnswerDto.java
│   │                               │       ├── ForgetResetPasswordDto.java
│   │                               │       ├── IdStatusDto.java
│   │                               │       ├── LoginReqDto.java
│   │                               │       ├── Perm.java
│   │                               │       ├── ResetPasswordDto.java
│   │                               │       ├── UserInfoDto.java
│   │                               │       └── UserRegisterDto.java
│   │                               ├── enums/
│   │                               │   └── UacGroupTypeEnum.java
│   │                               ├── exceptions/
│   │                               │   └── UacBizException.java
│   │                               ├── service/
│   │                               │   ├── UacMqMessageFeignApi.java
│   │                               │   ├── UacUserTokenFeignApi.java
│   │                               │   └── hystrix/
│   │                               │       ├── UacMqMessageApiHystrix.java
│   │                               │       └── UacUserTokenFeignApiHystrix.java
│   │                               └── vo/
│   │                                   └── MenuVo.java
│   └── pom.xml
├── paascloud-zipkin/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── com/
│           │       └── paascloud/
│           │           └── discovery/
│           │               ├── CustomPollerConfiguration.java
│           │               └── PaasCloudZipkinApplication.java
│           └── resources/
│               ├── application.yml
│               ├── banner.txt
│               ├── bootstrap.yml
│               ├── logback-spring.xml
│               └── mysql.sql
└── pom.xml
Download .txt
Showing preview only (289K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2785 symbols across 714 files)

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/AliyunMqTopicConstants.java
  class AliyunMqTopicConstants (line 29) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    type MqTopicEnum (line 37) | public enum MqTopicEnum {
      method MqTopicEnum (line 60) | MqTopicEnum(String topic, String topicName) {
      method getTopic (line 79) | public String getTopic() {
    type MqTagEnum (line 91) | public enum MqTagEnum {
      method MqTagEnum (line 160) | MqTagEnum(String tag, String topic, String tagName) {
      method getTag (line 171) | public String getTag() {
      method getTopic (line 180) | public String getTopic() {
    class ConsumerTopics (line 190) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method buildOpcConsumerTopics (line 204) | private static String buildOpcConsumerTopics() {
    method buildUacConsumerTopics (line 235) | private static String buildUacConsumerTopics() {
    method buildOpcConsumerTopics (line 248) | private static String buildOpcConsumerTopics(List<TopicObj> topicList) {
    class TopicObj (line 279) | static class TopicObj {
      method TopicObj (line 290) | TopicObj(String topic, Set<String> tagList) {
      method getTopic (line 300) | String getTopic() {
      method getTagList (line 309) | Set<String> getTagList() {
    method trimEnd (line 314) | private static void trimEnd(StringBuilder stringBuilder, String suffix) {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/AliyunSmsConstants.java
  class AliyunSmsConstants (line 26) | public class AliyunSmsConstants {
    type SmsTempletEnum (line 31) | public enum SmsTempletEnum {
      method getEnum (line 44) | public static SmsTempletEnum getEnum(String templateCode) {
      method isSmsTemplate (line 55) | public static boolean isSmsTemplate(String smsTemplateCode) {
      method getList (line 65) | public static List<SmsTempletEnum> getList() {
      method getTemplateCodeList (line 69) | public static List<String> getTemplateCodeList() {
      method SmsTempletEnum (line 81) | SmsTempletEnum(String busType, String templetCode, String smsParamNa...
      method getBusType (line 92) | public String getBusType() {
      method getTempletCode (line 101) | public String getTempletCode() {
      method getSmsParamName (line 110) | public String getSmsParamName() {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/GlobalConstant.java
  class GlobalConstant (line 18) | public class GlobalConstant {
    type Number (line 54) | public interface Number {
    class Sys (line 74) | public static final class Sys {
      method Sys (line 76) | private Sys() {
    class Symbol (line 126) | public static final class Symbol {
      method Symbol (line 127) | private Symbol() {
    class Oss (line 163) | public static final class Oss {
      method Oss (line 164) | private Oss() {
    type PaymentTypeEnum (line 197) | public enum PaymentTypeEnum {
      method PaymentTypeEnum (line 203) | PaymentTypeEnum(int code, String value) {
      method getValue (line 216) | public String getValue() {
      method getCode (line 225) | public int getCode() {
      method codeOf (line 236) | public static PaymentTypeEnum codeOf(int code) {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseQuery.java
  class BaseQuery (line 22) | @Data

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseTree.java
  class BaseTree (line 26) | @Data

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseVo.java
  class BaseVo (line 27) | @ApiModel

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/CheckValidDto.java
  class CheckValidDto (line 24) | @Data

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/GaodeBaseDto.java
  class GaodeBaseDto (line 24) | @Data

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/JobParameter.java
  class JobParameter (line 23) | public class JobParameter implements Serializable {
    method getFetchNum (line 39) | public int getFetchNum() {
    method setFetchNum (line 44) | public void setFetchNum(int fetchNum) {
    method getCondition (line 48) | public String getCondition() {
    method setCondition (line 52) | public void setCondition(String condition) {
    method getTaskType (line 56) | public String getTaskType() {
    method setTaskType (line 60) | public void setTaskType(String taskType) {
    method toString (line 64) | @Override

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/KvDto.java
  class KvDto (line 23) | @Data
    method KvDto (line 31) | public KvDto() {
    method KvDto (line 40) | public KvDto(K key, V value) {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/LoginAuthDto.java
  class LoginAuthDto (line 24) | @Data
    method LoginAuthDto (line 39) | public LoginAuthDto() {
    method LoginAuthDto (line 42) | public LoginAuthDto(Long userId, String loginName, String userName) {
    method LoginAuthDto (line 48) | public LoginAuthDto(Long userId, String loginName, String userName, Lo...

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MessageQueryDto.java
  class MessageQueryDto (line 28) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MqMessageDto.java
  class MqMessageDto (line 23) | @Data

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MqMessageVo.java
  class MqMessageVo (line 22) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/ShardingContextDto.java
  class ShardingContextDto (line 21) | @Data
    method ShardingContextDto (line 33) | public ShardingContextDto(final int shardingTotalCount, final int shar...

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/UpdateStatusDto.java
  class UpdateStatusDto (line 24) | @Data

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/UserTokenDto.java
  class UserTokenDto (line 25) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/enums/ErrorCodeEnum.java
  type ErrorCodeEnum (line 19) | public enum ErrorCodeEnum {
    method msg (line 590) | public String msg() {
    method code (line 599) | public int code() {
    method ErrorCodeEnum (line 603) | ErrorCodeEnum(int code, String msg) {
    method getEnum (line 615) | public static ErrorCodeEnum getEnum(int code) {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/BooleanParseException.java
  class BooleanParseException (line 18) | public class BooleanParseException extends RuntimeException {
    method BooleanParseException (line 23) | public BooleanParseException() {
    method BooleanParseException (line 32) | public BooleanParseException(String message) {
    method BooleanParseException (line 42) | public BooleanParseException(String message, Throwable cause) {
    method BooleanParseException (line 51) | public BooleanParseException(Throwable cause) {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/BusinessException.java
  class BusinessException (line 22) | @Slf4j
    method BusinessException (line 32) | public BusinessException() {
    method BusinessException (line 35) | public BusinessException(Throwable cause) {
    method BusinessException (line 39) | public BusinessException(String message) {
    method BusinessException (line 43) | public BusinessException(String message, Throwable cause) {
    method BusinessException (line 47) | public BusinessException(int code, String message) {
    method BusinessException (line 52) | public BusinessException(int code, String msgFormat, Object... args) {
    method BusinessException (line 57) | public BusinessException(ErrorCodeEnum codeEnum, Object... args) {
    method getCode (line 62) | public int getCode() {
    method setCode (line 66) | public void setCode(int code) {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ConfigException.java
  class ConfigException (line 18) | public class ConfigException extends RuntimeException {
    method ConfigException (line 27) | public ConfigException(String message) {
    method ConfigException (line 34) | public ConfigException() {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ImportException.java
  class ImportException (line 19) | public class ImportException extends RuntimeException {
    method ImportException (line 28) | public ImportException(String message) {

FILE: paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ReferenceModelNullException.java
  class ReferenceModelNullException (line 18) | public class ReferenceModelNullException extends RuntimeException {
    method ReferenceModelNullException (line 26) | public ReferenceModelNullException(String message) {

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/PaascloudCoreConfig.java
  class PaascloudCoreConfig (line 23) | @Configuration

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/AliyunProperties.java
  class AliyunProperties (line 20) | @Data
    class AliyunKeyProperties (line 26) | @Data
    class RocketMqProperties (line 39) | @Data
    class AliyunSmsProperties (line 54) | @Data

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/AsyncTaskProperties.java
  class AsyncTaskProperties (line 20) | @Data

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/GaodeProperties.java
  class GaodeProperties (line 22) | @Data

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/JobProperties.java
  class JobProperties (line 21) | @Data
    class JobTask (line 26) | @Data
      class JobCoreProperties (line 32) | @Data

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/PaascloudProperties.java
  class PaascloudProperties (line 24) | @Data

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/QiniuProperties.java
  class QiniuProperties (line 21) | @Data
    class QiniuKeyProperties (line 26) | @Data
    class QiniuOssProperties (line 32) | @Data

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/ReliableMessageProperties.java
  class ReliableMessageProperties (line 19) | public class ReliableMessageProperties {

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/SwaggerProperties.java
  class SwaggerProperties (line 21) | @Data

FILE: paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/ZookeeperProperties.java
  class ZookeeperProperties (line 22) | @Data

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/OperationLogDto.java
  class OperationLogDto (line 25) | @Data

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/BindingResultAop.java
  class BindingResultAop (line 32) | @Component
    method validateAnnotation (line 39) | @Pointcut("@annotation(com.paascloud.core.annotation.ValidateAnnotatio...
    method doBefore (line 46) | @Before("validateAnnotation()")
    method doAfter (line 55) | @AfterReturning(pointcut = "validateAnnotation()")
    method getAnnotationByMethod (line 82) | private Annotation getAnnotationByMethod(Method method, Class annoClas...
    method getMethodByClassAndName (line 95) | private Method getMethodByClassAndName(Class c, String methodName) {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/LogAspect.java
  class LogAspect (line 43) | @Slf4j
    method logAnnotation (line 61) | @Pointcut("@annotation(com.paascloud.core.annotation.LogAnnotation)")
    method doBefore (line 68) | @Before("logAnnotation()")
    method doAfter (line 79) | @AfterReturning(pointcut = "logAnnotation()", returning = "returnValue")
    method handleLog (line 92) | private void handleLog(final JoinPoint joinPoint, final Object result) {
    method getControllerMethodDescription (line 142) | private void getControllerMethodDescription(LogAnnotation relog, Opera...
    method setResponseData (line 153) | private void setResponseData(OperationLogDto requestLog, Object result) {
    method setRequestData (line 161) | private void setRequestData(OperationLogDto uacLog, JoinPoint joinPoin...
    method giveController (line 193) | private static LogAnnotation giveController(JoinPoint joinPoint) {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/NotDisplaySqlAspect.java
  class NotDisplaySqlAspect (line 26) | @Aspect
    method myPointCut (line 34) | @Pointcut("@annotation(com.paascloud.core.annotation.NotDisplaySql)")
    method before (line 41) | @Before(value = "myPointCut()")
    method after (line 49) | @After(value = "myPointCut()")

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/AsyncTaskExecutorConfiguration.java
  class AsyncTaskExecutorConfiguration (line 34) | @Configuration
    method getAsyncExecutor (line 42) | @Override
    method getAsyncUncaughtExceptionHandler (line 55) | @Override

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/CoreConfiguration.java
  class CoreConfiguration (line 29) | @Configuration
    method restTemplate (line 31) | @LoadBalanced
    method sqlLogInterceptor (line 37) | @Bean
    method tokenInterceptor (line 43) | @Bean

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/ExceptionHandlingAsyncTaskExecutor.java
  class ExceptionHandlingAsyncTaskExecutor (line 27) | @Slf4j
    method ExceptionHandlingAsyncTaskExecutor (line 37) | ExceptionHandlingAsyncTaskExecutor(AsyncTaskExecutor executor) {
    method execute (line 46) | @Override
    method execute (line 57) | @Override
    method createCallable (line 62) | private <T> Callable<T> createCallable(final Callable<T> task) {
    method createWrappedRunnable (line 73) | private Runnable createWrappedRunnable(final Runnable task) {
    method handle (line 88) | private void handle(Exception e) {
    method submit (line 99) | @Override
    method submit (line 112) | @Override
    method destroy (line 122) | @Override
    method afterPropertiesSet (line 135) | @Override

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/PcObjectMapper.java
  class PcObjectMapper (line 32) | public class PcObjectMapper {
    method PcObjectMapper (line 33) | private PcObjectMapper() {
    method buidMvcMessageConverter (line 36) | public static void buidMvcMessageConverter(List<HttpMessageConverter<?...

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/RedisConfiguration.java
  class RedisConfiguration (line 33) | @Configuration
    method keyGenerator (line 41) | @Bean
    method cacheManager (line 62) | @Bean
    method stringRedisSerializer (line 67) | @Bean
    method redisTemplate (line 72) | @Bean("redisTemplate")

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/SwaggerConfiguration.java
  class SwaggerConfiguration (line 41) | @EnableSwagger2
    method createRestApi (line 51) | @Bean
    method apiInfo (line 74) | private ApiInfo apiInfo() {
    method securitySchemes (line 86) | private List<ApiKey> securitySchemes() {
    method securityContexts (line 90) | private List<SecurityContext> securityContexts() {
    method defaultAuth (line 99) | private List<SecurityReference> defaultAuth() {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/ZookeeperInitRunner.java
  class ZookeeperInitRunner (line 30) | @Component
    method run (line 46) | @Override

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/enums/LogTypeEnum.java
  type LogTypeEnum (line 26) | public enum LogTypeEnum {
    method LogTypeEnum (line 49) | LogTypeEnum(String type, String name) {
    method getType (line 59) | public String getType() {
    method getName (line 68) | public String getName() {
    method getName (line 79) | public static String getName(String type) {
    method getEnum (line 95) | public static LogTypeEnum getEnum(String type) {
    method getList (line 109) | public static List<Map<String, Object>> getList() {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/CoreHeaderInterceptor.java
  class CoreHeaderInterceptor (line 32) | @Slf4j
    method initHystrixRequestContext (line 48) | private static void initHystrixRequestContext(String labels) {
    method shutdownHystrixRequestContext (line 61) | private static void shutdownHystrixRequestContext() {
    method preHandle (line 67) | @Override
    method postHandle (line 73) | @Override

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/CoreHttpRequestInterceptor.java
  class CoreHttpRequestInterceptor (line 29) | @Slf4j
    method intercept (line 42) | @Override

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/SqlLogInterceptor.java
  class SqlLogInterceptor (line 42) | @Intercepts({
    method intercept (line 66) | @Override
    method SqlLogInterceptor (line 108) | public SqlLogInterceptor() {
    method SqlLogInterceptor (line 117) | public SqlLogInterceptor(Double noticeTime) {
    method plugin (line 129) | @Override
    method setProperties (line 139) | @Override
    method getParamList (line 152) | private List<String> getParamList(Configuration configuration, BoundSq...
    method getParameterValue (line 177) | private String getParameterValue(Object obj) {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/TokenInterceptor.java
  class TokenInterceptor (line 41) | @Slf4j
    method afterCompletion (line 66) | @Override
    method postHandle (line 82) | @Override
    method preHandle (line 95) | @Override
    method handleException (line 128) | private void handleException(HttpServletResponse res) throws IOExcepti...
    method isHaveAccess (line 138) | private boolean isHaveAccess(Object handler) {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mq/MqMessage.java
  class MqMessage (line 35) | @Slf4j
    method checkMessage (line 56) | public static Message checkMessage(MqMessage mqMessage) {
    method printCheckMessageLog (line 68) | private static void printCheckMessageLog(final String topic, final Str...
    method checkMessage (line 82) | public static Message checkMessage(String body, String topic, String t...
    method checkMessage (line 96) | public static Message checkMessage(Message message) {
    method MqMessage (line 113) | public MqMessage(Message message) {
    method buildMessage (line 121) | private static Message buildMessage(String body, String topic, String ...
    method MqMessage (line 143) | public MqMessage(String topic, String tag, String key, String body) {
    method checkMessage (line 157) | public static void checkMessage(String topic, String key, String body) {
    method printProducerResult (line 170) | public static void printProducerResult(SendResult sendResult, Logger l...
    method printProducerException (line 187) | public static void printProducerException(String topic, String tag, St...

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mybatis/BaseEntity.java
  class BaseEntity (line 29) | @Data
    method isNew (line 93) | @Transient
    method setUpdateInfo (line 104) | @Transient

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mybatis/MyMapper.java
  type MyMapper (line 23) | public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/AbstractTreeService.java
  class AbstractTreeService (line 30) | public abstract class AbstractTreeService<T extends BaseTree<T, ID>, ID ...
    method getChildTreeObjects (line 40) | @Override
    method recursionFn (line 61) | @Override
    method getChildList (line 89) | @Override
    method hasChild (line 112) | @Override

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/BaseController.java
  class BaseController (line 32) | public class BaseController {
    method getLoginAuthDto (line 41) | protected LoginAuthDto getLoginAuthDto() {
    method handleResult (line 57) | protected <T> Wrapper<T> handleResult(T result) {
    method handleResult (line 76) | protected <E> Wrapper<E> handleResult(E result, String errorMsg) {
    method isFlag (line 86) | private boolean isFlag(Object result) {
    method generateId (line 98) | protected long generateId() {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/BaseService.java
  class BaseService (line 32) | public abstract class BaseService<T> implements IService<T> {
    method getMapper (line 50) | public Mapper<T> getMapper() {
    method select (line 61) | @Override
    method selectByKey (line 73) | @Override
    method selectAll (line 83) | @Override
    method selectOne (line 95) | @Override
    method selectCount (line 107) | @Override
    method selectByExample (line 119) | @Override
    method save (line 131) | @Override
    method batchSave (line 143) | @Override
    method update (line 160) | @Override
    method delete (line 172) | @Override
    method deleteByKey (line 184) | @Override
    method batchDelete (line 196) | @Override
    method selectCountByExample (line 217) | @Override
    method updateByExample (line 230) | @Override
    method deleteByExample (line 242) | @Override
    method selectByRowBounds (line 255) | @Override
    method selectByExampleAndRowBounds (line 268) | @Override
    method generateId (line 273) | protected long generateId() {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/IService.java
  type IService (line 27) | public interface IService<T> {
    method select (line 35) | List<T> select(T record);
    method selectByKey (line 44) | T selectByKey(Object key);
    method selectAll (line 51) | List<T> selectAll();
    method selectOne (line 60) | T selectOne(T record);
    method selectCount (line 69) | int selectCount(T record);
    method save (line 78) | int save(T record);
    method batchSave (line 87) | @Transactional(rollbackFor = Exception.class)
    method update (line 97) | int update(T entity);
    method delete (line 106) | int delete(T record);
    method batchDelete (line 115) | @Transactional(rollbackFor = Exception.class)
    method deleteByKey (line 125) | int deleteByKey(Object key);
    method selectByExample (line 134) | List<T> selectByExample(Object example);
    method selectCountByExample (line 143) | int selectCountByExample(Object example);
    method updateByExample (line 153) | int updateByExample(@Param("record") T record, @Param("example") Objec...
    method deleteByExample (line 162) | int deleteByExample(Object example);
    method selectByRowBounds (line 172) | List<T> selectByRowBounds(T record, RowBounds rowBounds);
    method selectByExampleAndRowBounds (line 182) | List<T> selectByExampleAndRowBounds(Object example, RowBounds rowBounds);

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/ITree.java
  type ITree (line 27) | public interface ITree<T extends BaseTree<T, ID>, ID extends Serializabl...
    method getChildTreeObjects (line 36) | List<T> getChildTreeObjects(List<T> list, ID parentId);
    method recursionFn (line 44) | void recursionFn(List<T> list, T t);
    method getChildList (line 54) | List<T> getChildList(List<T> list, T t);
    method hasChild (line 64) | boolean hasChild(List<T> list, T t);

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/SpringContextHolder.java
  class SpringContextHolder (line 26) | @Component
    method setApplicationContext (line 38) | @Override
    method getApplicationContext (line 48) | public static ApplicationContext getApplicationContext() {
    method getBean (line 61) | public static <T> T getBean(String beanName) {
    method getBean (line 74) | public static <T> T getBean(Class<T> requiredType) {
    method getDefaultListableBeanFactory (line 79) | public static DefaultListableBeanFactory getDefaultListableBeanFactory...
    method assertApplicationContext (line 84) | private static void assertApplicationContext() {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/TreeUtils.java
  class TreeUtils (line 24) | public class TreeUtils<T extends BaseTree<T, ID>, ID extends Serializabl...

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/CustomSystemUtil.java
  class CustomSystemUtil (line 27) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getIntranetIp (line 44) | private static String getIntranetIp() {
    method getInternetIp (line 57) | private static String getInternetIp() {

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/RequestUtil.java
  class RequestUtil (line 40) | @Slf4j
    method getRequest (line 49) | public static HttpServletRequest getRequest() {
    method getRemoteAddr (line 60) | public static String getRemoteAddr(HttpServletRequest request) {
    method getLoginUser (line 109) | public static LoginAuthDto getLoginUser() {
    method getAuthHeader (line 125) | public static String getAuthHeader(HttpServletRequest request) {
    method extractAndDecodeHeader (line 134) | public static String[] extractAndDecodeHeader(String header) throws IO...

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/SessionRegistryCenterConfiguration.java
  class SessionRegistryCenterConfiguration (line 23) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getRegistryCenterConfiguration (line 33) | public static ZookeeperProperties getRegistryCenterConfiguration() {
    method setRegistryCenterConfiguration (line 42) | public static void setRegistryCenterConfiguration(final ZookeeperPrope...

FILE: paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/TokenCache.java
  class TokenCache (line 28) | @Slf4j
    method load (line 40) | @Override
    method setKey (line 52) | public static void setKey(String key, String value) {
    method getKey (line 63) | public static String getKey(String key) {

FILE: paascloud-common/paascloud-common-core/src/test/java/IdTest.java
  class IdTest (line 15) | @Slf4j
    method main (line 25) | public static void main(String[] args) throws InterruptedException {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/BigDecimalUtil.java
  class BigDecimalUtil (line 24) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method add (line 35) | public static BigDecimal add(double v1, double v2) {
    method sub (line 49) | public static BigDecimal sub(double v1, double v2) {
    method mul (line 64) | public static BigDecimal mul(double v1, double v2) {
    method div (line 78) | public static BigDecimal div(double v1, double v2) {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/Collections3.java
  class Collections3 (line 26) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method union (line 38) | public static <T> List<T> union(final Collection<T> a, final Collectio...
    method subtract (line 53) | public static <T> List<T> subtract(final Collection<T> a, final Collec...
    method intersection (line 71) | public static <T> List<T> intersection(Collection<T> a, Collection<T> ...

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/DateUtil.java
  class DateUtil (line 26) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getBeforeTime (line 36) | public static String getBeforeTime(int minute) {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/HttpAesUtil.java
  class HttpAesUtil (line 31) | @Slf4j
    method encrypt (line 47) | public static String encrypt(String contentParam, String keyParam, boo...
    method decrypt (line 81) | public static String decrypt(String contentParam, String keyParam, boo...

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/JacksonUtil.java
  class JacksonUtil (line 32) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method toJson (line 61) | public static String toJson(Object obj) throws IOException {
    method parseJson (line 79) | public static <T> T parseJson(String jsonValue, Class<T> valueType) th...
    method parseJson (line 95) | @SuppressWarnings("unchecked")
    method parseJson (line 112) | public static <T> T parseJson(String jsonValue, TypeReference<T> value...
    method toJsonWithFormat (line 126) | public static String toJsonWithFormat(Object obj) throws IOException {
    method parseJsonWithFormat (line 144) | public static <T> T parseJsonWithFormat(String jsonValue, Class<T> val...
    method parseJsonWithFormat (line 160) | public static <T> T parseJsonWithFormat(String jsonValue, JavaType val...
    method parseJsonWithFormat (line 176) | public static <T> T parseJsonWithFormat(String jsonValue, TypeReferenc...

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/PubUtils.java
  class PubUtils (line 25) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method isMobileNumber (line 48) | public static Boolean isMobileNumber(String inputStr) {
    method isNull (line 59) | public static boolean isNull(Object... values) {
    method isOEmptyOrNull (line 88) | private static boolean isOEmptyOrNull(Object o) {
    method isSEmptyOrNull (line 99) | private static boolean isSEmptyOrNull(String s) {
    method trimAndNullAsEmpty (line 110) | private static String trimAndNullAsEmpty(String s) {
    method isNotNullAndNotEmpty (line 126) | private static Boolean isNotNullAndNotEmpty(Object[] value) {
    method isNotNullAndNotEmpty (line 141) | private static Boolean isNotNullAndNotEmpty(Collection<?> value) {
    method isEmail (line 156) | public static boolean isEmail(String str) {
    method uuid (line 169) | public synchronized static String uuid() {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/PublicUtil.java
  class PublicUtil (line 25) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method isEmpty (line 36) | public static boolean isEmpty(Object pObj) {
    method isNotEmpty (line 61) | public static boolean isNotEmpty(Object pObj) {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/RandomUtil.java
  class RandomUtil (line 24) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method createComplexCode (line 36) | public static String createComplexCode(int length) {
    method createNumberCode (line 71) | public static String createNumberCode(int length) {
    method randomString (line 75) | private static String randomString(String baseString, int length) {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/RecursionTreeUtil.java
  class RecursionTreeUtil (line 27) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getChildTreeNodes (line 37) | public static List<TreeNode> getChildTreeNodes(List<TreeNode> list, Lo...
    method recursionFn (line 56) | private static void recursionFn(List<TreeNode> list, TreeNode node) {
    method getChildList (line 70) | private static List<TreeNode> getChildList(List<TreeNode> list, TreeNo...

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/RedisKeyUtil.java
  class RedisKeyUtil (line 24) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getResetPwdTokenKey (line 45) | public static String getResetPwdTokenKey(String resetPwdKey) {
    method getSendEmailCodeKey (line 51) | public static String getSendEmailCodeKey(String loginName, String emai...
    method getActiveUserKey (line 65) | public static String getActiveUserKey(String activeToken) {
    method getSendSmsCountKey (line 79) | public static String getSendSmsCountKey(String ipAddr, String type) {
    method getSendSmsRateKey (line 93) | public static String getSendSmsRateKey(String ipAddr) {
    method getAccessTokenKey (line 99) | public static String getAccessTokenKey(String token) {
    method createMqKey (line 104) | public static String createMqKey(String topic, String tag, String refN...
    method getFileSizeKey (line 117) | public static String getFileSizeKey() {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/ThreadLocalMap.java
  class ThreadLocalMap (line 26) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method put (line 39) | public static void put(String key, Object value) {
    method remove (line 50) | public static Object remove(String key) {
    method get (line 61) | public static Object get(String key) {
    class MapThreadLocal (line 65) | private static class MapThreadLocal extends ThreadLocal<Map<String, Ob...
      method initialValue (line 71) | @Override
    method getContextMap (line 90) | private static Map<String, Object> getContextMap() {
    method remove (line 97) | public static void remove() {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/TreeNode.java
  class TreeNode (line 23) | @Data

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/UrlUtil.java
  class UrlUtil (line 23) | @Slf4j
    method getURLDecoderString (line 30) | public static String getURLDecoderString(String str) {
    method getURLEncoderString (line 46) | public static String getURLEncoderString(String str) {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/ValidateUtil.java
  class ValidateUtil (line 27) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method isMobileNumber (line 36) | public static boolean isMobileNumber(final String mobile) {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/exception/HttpAesException.java
  class HttpAesException (line 20) | public class HttpAesException extends IllegalArgumentException {
    method HttpAesException (line 28) | public HttpAesException(String message) {
    method HttpAesException (line 35) | public HttpAesException() {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/helper/LongJsonDeserializer.java
  class LongJsonDeserializer (line 26) | @Slf4j
    method deserialize (line 37) | @Override

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/helper/LongJsonSerializer.java
  class LongJsonSerializer (line 26) | public class LongJsonSerializer extends JsonSerializer<Long> {
    method serialize (line 36) | @Override

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/page/PageUtil.java
  class PageUtil (line 22) | @Data
    method PageUtil (line 73) | public PageUtil() {
    method PageUtil (line 82) | public PageUtil(int currentPage) {
    method PageUtil (line 92) | public PageUtil(int currentPage, int pageSize) {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/page/Query.java
  class Query (line 23) | @Data

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/wrapper/PageWrapMapper.java
  class PageWrapMapper (line 22) | public class PageWrapMapper {
    method PageWrapMapper (line 27) | private PageWrapMapper() {
    method wrap (line 30) | private static <E> PageWrapper<E> wrap(int code, String message, E o, ...
    method wrap (line 43) | public static <E> PageWrapper<E> wrap(E o, PageUtil pageUtil) {
    method wrap (line 56) | public static <E> PageWrapper<E> wrap(int code, String message) {
    method wrap (line 68) | public static <E> PageWrapper<E> wrap(int code) {
    method wrap (line 80) | public static <E> PageWrapper<E> wrap(Exception e) {
    method unWrap (line 92) | public static <E> E unWrap(PageWrapper<E> wrapper) {
    method illegalArgument (line 103) | public static <E> PageWrapper<E> illegalArgument() {
    method error (line 114) | public static <E> PageWrapper<E> error() {
    method ok (line 125) | public static <E> PageWrapper<E> ok() {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/wrapper/PageWrapper.java
  class PageWrapper (line 24) | @Data
    method PageWrapper (line 36) | PageWrapper() {
    method PageWrapper (line 47) | public PageWrapper(int code, String message) {
    method PageWrapper (line 57) | public PageWrapper(T result, PageUtil pageUtil) {
    method PageWrapper (line 71) | PageWrapper(int code, String message, T result, PageUtil pageUtil) {
    method pageUtil (line 83) | public PageWrapper<T> pageUtil(PageUtil pageUtil) {
    method result (line 95) | @Override

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/wrapper/WrapMapper.java
  class WrapMapper (line 21) | public class WrapMapper {
    method WrapMapper (line 26) | private WrapMapper() {
    method wrap (line 39) | public static <E> Wrapper<E> wrap(int code, String message, E o) {
    method wrap (line 52) | public static <E> Wrapper<E> wrap(int code, String message) {
    method wrap (line 64) | public static <E> Wrapper<E> wrap(int code) {
    method wrap (line 76) | public static <E> Wrapper<E> wrap(Exception e) {
    method unWrap (line 88) | public static <E> E unWrap(Wrapper<E> wrapper) {
    method illegalArgument (line 99) | public static <E> Wrapper<E> illegalArgument() {
    method error (line 110) | public static <E> Wrapper<E> error() {
    method error (line 123) | public static <E> Wrapper<E> error(String message) {
    method ok (line 134) | public static <E> Wrapper<E> ok() {
    method ok (line 146) | public static <E> Wrapper<E> ok(E o) {

FILE: paascloud-common/paascloud-common-util/src/main/java/com/paascloud/wrapper/Wrapper.java
  class Wrapper (line 26) | @Data
    method Wrapper (line 83) | Wrapper() {
    method Wrapper (line 93) | Wrapper(int code, String message) {
    method Wrapper (line 104) | Wrapper(int code, String message, T result) {
    method code (line 116) | private Wrapper<T> code(int code) {
    method message (line 128) | private Wrapper<T> message(String message) {
    method result (line 140) | public Wrapper<T> result(T result) {
    method success (line 150) | @JsonIgnore
    method error (line 160) | @JsonIgnore

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/generator/IdGenerator.java
  type IdGenerator (line 19) | public interface IdGenerator {
    method nextId (line 26) | Long nextId();

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/generator/IncrementIdGenerator.java
  class IncrementIdGenerator (line 24) | public class IncrementIdGenerator implements IdGenerator {
    method IncrementIdGenerator (line 34) | public IncrementIdGenerator(RegisterDto registerDto) {
    method nextId (line 43) | @Override
    method getServiceId (line 69) | public static Long getServiceId() {
    method setServiceId (line 78) | public static void setServiceId(Long serviceId) {

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/generator/UniqueIdGenerator.java
  class UniqueIdGenerator (line 19) | public class UniqueIdGenerator implements IdGenerator {
    method getInstance (line 82) | public static UniqueIdGenerator getInstance(long appHostId) {
    method UniqueIdGenerator (line 93) | private UniqueIdGenerator(long appHostId) {
    method nextId (line 106) | @Override
    method genUniqueId (line 114) | private synchronized long genUniqueId() {
    method nextMs (line 147) | private long nextMs(long timeStamp) {
    method generateId (line 160) | public static long generateId() {

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/RegistryCenterFactory.java
  class RegistryCenterFactory (line 24) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method createCoordinatorRegistryCenter (line 36) | public static CoordinatorRegistryCenter createCoordinatorRegistryCente...
    method startup (line 56) | public static void startup(PaascloudProperties paascloudProperties, St...
    method registerMq (line 64) | private static void registerMq(PaascloudProperties paascloudProperties...

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/base/CoordinatorRegistryCenter.java
  type CoordinatorRegistryCenter (line 10) | public interface CoordinatorRegistryCenter extends RegistryCenter {
    method getDirectly (line 19) | String getDirectly(String key);
    method getChildrenKeys (line 28) | List<String> getChildrenKeys(String key);
    method getNumChildren (line 37) | int getNumChildren(String key);
    method persistEphemeral (line 45) | void persistEphemeral(String key, String value);
    method persistSequential (line 55) | String persistSequential(String key, String value);
    method persistEphemeralSequential (line 62) | void persistEphemeralSequential(String key);
    method addCacheData (line 69) | void addCacheData(String cachePath);
    method evictCacheData (line 76) | void evictCacheData(String cachePath);
    method getRawCache (line 85) | Object getRawCache(String cachePath);
    method registerMq (line 96) | void registerMq(String app, String host, String producerGroup, String ...

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/base/RegisterDto.java
  class RegisterDto (line 22) | @Data

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/base/RegistryCenter.java
  type RegistryCenter (line 11) | public interface RegistryCenter {
    method init (line 16) | void init();
    method close (line 21) | void close();
    method get (line 30) | String get(String key);
    method isExisted (line 39) | boolean isExisted(String key);
    method persist (line 47) | void persist(String key, String value);
    method persist (line 54) | void persist(String key);
    method update (line 62) | void update(String key, String value);
    method remove (line 69) | void remove(String key);
    method getRegistryCenterTime (line 78) | long getRegistryCenterTime(String key);
    method getRawClient (line 86) | Object getRawClient();
    method increment (line 94) | void increment(String path, RetryNTimes retryNTimes);
    method getAtomicValue (line 104) | AtomicValue<Integer> getAtomicValue(String path, RetryNTimes retryNTim...

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/base/ReliableMessageRegisterDto.java
  class ReliableMessageRegisterDto (line 23) | @Data
    method setConsumerGroup (line 36) | public ReliableMessageRegisterDto setConsumerGroup(final String consum...
    method setProducerGroup (line 49) | public ReliableMessageRegisterDto setProducerGroup(final String produc...
    method setNamesrvAddr (line 62) | public ReliableMessageRegisterDto setNamesrvAddr(final String namesrvA...

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/exception/RegException.java
  class RegException (line 8) | public final class RegException extends RuntimeException {
    method RegException (line 18) | public RegException(final String errorMessage, final Object... args) {
    method RegException (line 27) | public RegException(final Exception cause) {

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/exception/RegExceptionHandler.java
  class RegExceptionHandler (line 14) | @Slf4j
    method handleException (line 25) | public static void handleException(final Exception cause) {
    method isIgnoredException (line 39) | private static boolean isIgnoredException(final Throwable cause) {

FILE: paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/zookeeper/ZookeeperRegistryCenter.java
  class ZookeeperRegistryCenter (line 43) | @Slf4j
    method ZookeeperRegistryCenter (line 60) | public ZookeeperRegistryCenter(final ZookeeperProperties zkConfig) {
    method init (line 67) | @Override
    method close (line 112) | @Override
    method waitForCacheClose (line 127) | private void waitForCacheClose() {
    method get (line 142) | @Override
    method findTreeCache (line 155) | private TreeCache findTreeCache(final String key) {
    method getDirectly (line 171) | @Override
    method getChildrenKeys (line 190) | @Override
    method getNumChildren (line 211) | @Override
    method isExisted (line 229) | @Override
    method persist (line 247) | @Override
    method persist (line 273) | @Override
    method update (line 284) | @Override
    method persistEphemeral (line 301) | @Override
    method persistSequential (line 323) | @Override
    method persistEphemeralSequential (line 340) | @Override
    method remove (line 356) | @Override
    method getRegistryCenterTime (line 374) | @Override
    method getRawClient (line 394) | @Override
    method increment (line 405) | @Override
    method getAtomicValue (line 423) | @Override
    method addCacheData (line 439) | @Override
    method evictCacheData (line 457) | @Override
    method getRawCache (line 472) | @Override
    method registerMq (line 486) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/AppSecretException.java
  class AppSecretException (line 19) | public class AppSecretException extends RuntimeException {
    method AppSecretException (line 28) | public AppSecretException(String msg) {

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/AppSecurityController.java
  class AppSecurityController (line 34) | @RestController
    method getSocialUserInfo (line 50) | @GetMapping(SecurityConstants.DEFAULT_SOCIAL_USER_INFO_URL)

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/authentication/openid/OpenIdAuthenticationFilter.java
  class OpenIdAuthenticationFilter (line 30) | public class OpenIdAuthenticationFilter extends AbstractAuthenticationPr...
    method OpenIdAuthenticationFilter (line 45) | OpenIdAuthenticationFilter() {
    method attemptAuthentication (line 62) | @Override
    method obtainOpenId (line 98) | protected String obtainOpenId(HttpServletRequest request) {
    method obtainProviderId (line 109) | protected String obtainProviderId(HttpServletRequest request) {
    method setDetails (line 120) | protected void setDetails(HttpServletRequest request, OpenIdAuthentica...
    method setOpenIdParameter (line 130) | public void setOpenIdParameter(String openIdParameter) {
    method setPostOnly (line 147) | public void setPostOnly(boolean postOnly) {
    method getOpenIdParameter (line 156) | public final String getOpenIdParameter() {
    method getProviderIdParameter (line 165) | public String getProviderIdParameter() {
    method setProviderIdParameter (line 174) | public void setProviderIdParameter(String providerIdParameter) {

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/authentication/openid/OpenIdAuthenticationProvider.java
  class OpenIdAuthenticationProvider (line 31) | public class OpenIdAuthenticationProvider implements AuthenticationProvi...
    method authenticate (line 46) | @Override
    method supports (line 81) | @Override
    method getUserDetailsService (line 91) | public SocialUserDetailsService getUserDetailsService() {
    method setUserDetailsService (line 100) | public void setUserDetailsService(SocialUserDetailsService userDetails...
    method getUsersConnectionRepository (line 109) | public UsersConnectionRepository getUsersConnectionRepository() {
    method setUsersConnectionRepository (line 118) | public void setUsersConnectionRepository(UsersConnectionRepository use...

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/authentication/openid/OpenIdAuthenticationSecurityConfig.java
  class OpenIdAuthenticationSecurityConfig (line 32) | @Component
    method OpenIdAuthenticationSecurityConfig (line 43) | @Autowired
    method configure (line 56) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/authentication/openid/OpenIdAuthenticationToken.java
  class OpenIdAuthenticationToken (line 26) | public class OpenIdAuthenticationToken extends AbstractAuthenticationTok...
    method OpenIdAuthenticationToken (line 47) | public OpenIdAuthenticationToken(String openId, String providerId) {
    method OpenIdAuthenticationToken (line 63) | public OpenIdAuthenticationToken(Object principal, Collection<? extend...
    method getCredentials (line 78) | @Override
    method getPrincipal (line 88) | @Override
    method getProviderId (line 98) | public String getProviderId() {
    method setAuthenticated (line 109) | @Override
    method eraseCredentials (line 122) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/social/AppSingUpUtils.java
  class AppSingUpUtils (line 32) | @Component
    method AppSingUpUtils (line 48) | @Autowired
    method saveConnectionData (line 61) | public void saveConnectionData(WebRequest request, ConnectionData conn...
    method doPostSignUp (line 71) | public void doPostSignUp(WebRequest request, String userId) {
    method getKey (line 87) | private String getKey(WebRequest request) {

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/social/AppSocialAuthenticationFilterPostProcessor.java
  class AppSocialAuthenticationFilterPostProcessor (line 25) | @Component
    method AppSocialAuthenticationFilterPostProcessor (line 30) | @Autowired
    method process (line 35) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/social/SpringSocialConfigurerPostProcessor.java
  class SpringSocialConfigurerPostProcessor (line 28) | @Component
    method postProcessBeforeInitialization (line 41) | @Override
    method postProcessAfterInitialization (line 56) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/PcAccessDeniedHandler.java
  class PcAccessDeniedHandler (line 34) | @Slf4j
    method handle (line 49) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/PcResourceServerConfig.java
  class PcResourceServerConfig (line 42) | @Configuration
    method persistentTokenRepository (line 84) | @Bean
    method configure (line 99) | @Override
    method configure (line 120) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/PcWebResponseExceptionTranslator.java
  class PcWebResponseExceptionTranslator (line 23) | public class PcWebResponseExceptionTranslator implements WebResponseExce...
    method translate (line 33) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/TokenJwtEnhancer.java
  class TokenJwtEnhancer (line 30) | public class TokenJwtEnhancer implements TokenEnhancer {
    method enhance (line 40) | @Override

FILE: paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/TokenStoreConfig.java
  class TokenStoreConfig (line 34) | @Configuration
    class RedisConfig (line 40) | @Configuration
      method redisTokenStore (line 52) | @Bean
    class JwtConfig (line 64) | @Configuration
      method jwtTokenStore (line 76) | @Bean
      method jwtAccessTokenConverter (line 86) | @Bean
      method jwtTokenEnhancer (line 98) | @Bean

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/SecurityCoreConfig.java
  class SecurityCoreConfig (line 24) | @Configuration

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/SecurityResult.java
  class SecurityResult (line 23) | @Data
    method ok (line 62) | public static SecurityResult ok(Object data) {
    method ok (line 66) | public static SecurityResult ok() {
    method error (line 70) | public static SecurityResult error(String message) {
    method error (line 74) | public static SecurityResult error(String message, Object data) {
    method SecurityResult (line 78) | public SecurityResult(Integer code, String message, Object result) {
    method SecurityResult (line 84) | private SecurityResult(Object result) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/SecurityUser.java
  class SecurityUser (line 25) | public class SecurityUser implements UserDetails {
    method SecurityUser (line 46) | public SecurityUser(Long userId, String loginName, String loginPwd, St...
    method SecurityUser (line 55) | public SecurityUser(Long userId, String loginName, String loginPwd, St...
    method getAuthorities (line 66) | @Override
    method getPassword (line 71) | @Override
    method getUsername (line 76) | @Override
    method isAccountNonExpired (line 81) | @Override
    method isAccountNonLocked (line 86) | @Override
    method isCredentialsNonExpired (line 91) | @Override
    method isEnabled (line 96) | @Override
    method getUserId (line 101) | public Long getUserId() {
    method setUserId (line 105) | public void setUserId(Long userId) {
    method getNickName (line 109) | public String getNickName() {
    method setNickName (line 113) | public void setNickName(String nickName) {
    method getLoginName (line 117) | public String getLoginName() {
    method setLoginName (line 121) | public void setLoginName(String loginName) {
    method getStatus (line 125) | public String getStatus() {
    method setStatus (line 129) | public void setStatus(String status) {
    method getLoginPwd (line 133) | public String getLoginPwd() {
    method setLoginPwd (line 137) | public void setLoginPwd(String loginPwd) {
    method getGroupId (line 141) | public Long getGroupId() {
    method setGroupId (line 145) | public void setGroupId(Long groupId) {
    method getGroupName (line 149) | public String getGroupName() {
    method setGroupName (line 153) | public void setGroupName(String groupName) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/AuthenticationBeanConfig.java
  class AuthenticationBeanConfig (line 17) | @Configuration
    method passwordEncoder (line 25) | @Bean
    method userDetailsService (line 36) | @Bean
    method socialUserDetailsService (line 47) | @Bean

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/DefaultSocialUserDetailsServiceImpl.java
  class DefaultSocialUserDetailsServiceImpl (line 14) | @Slf4j
    method loadUserByUserId (line 26) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/DefaultUserDetailsServiceImpl.java
  class DefaultUserDetailsServiceImpl (line 14) | @Slf4j
    method loadUserByUsername (line 26) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/FormAuthenticationConfig.java
  class FormAuthenticationConfig (line 15) | @Component
    method FormAuthenticationConfig (line 34) | @Autowired
    method configure (line 47) | public void configure(HttpSecurity http) throws Exception {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/mobile/SmsCodeAuthenticationFilter.java
  class SmsCodeAuthenticationFilter (line 19) | public class SmsCodeAuthenticationFilter extends AbstractAuthenticationP...
    method SmsCodeAuthenticationFilter (line 33) | public SmsCodeAuthenticationFilter() {
    method attemptAuthentication (line 50) | @Override
    method obtainMobile (line 81) | protected String obtainMobile(HttpServletRequest request) {
    method setDetails (line 92) | protected void setDetails(HttpServletRequest request, SmsCodeAuthentic...
    method setMobileParameter (line 102) | public void setMobileParameter(String usernameParameter) {
    method setPostOnly (line 119) | public void setPostOnly(boolean postOnly) {
    method getMobileParameter (line 128) | public final String getMobileParameter() {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/mobile/SmsCodeAuthenticationProvider.java
  class SmsCodeAuthenticationProvider (line 17) | public class SmsCodeAuthenticationProvider implements AuthenticationProv...
    method authenticate (line 30) | @Override
    method supports (line 55) | @Override
    method getUserDetailsService (line 65) | public UserDetailsService getUserDetailsService() {
    method setUserDetailsService (line 74) | public void setUserDetailsService(UserDetailsService userDetailsServic...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/mobile/SmsCodeAuthenticationSecurityConfig.java
  class SmsCodeAuthenticationSecurityConfig (line 23) | @Component
    method configure (line 39) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/mobile/SmsCodeAuthenticationToken.java
  class SmsCodeAuthenticationToken (line 14) | public class SmsCodeAuthenticationToken extends AbstractAuthenticationTo...
    method SmsCodeAuthenticationToken (line 19) | SmsCodeAuthenticationToken(String mobile) {
    method SmsCodeAuthenticationToken (line 25) | SmsCodeAuthenticationToken(Object principal, Collection<? extends Gran...
    method getCredentials (line 31) | @Override
    method getPrincipal (line 36) | @Override
    method setAuthenticated (line 41) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authorize/AuthorizeConfigManager.java
  type AuthorizeConfigManager (line 12) | public interface AuthorizeConfigManager {
    method config (line 19) | void config(ExpressionUrlAuthorizationConfigurer<HttpSecurity>.Express...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authorize/AuthorizeConfigProvider.java
  type AuthorizeConfigProvider (line 11) | public interface AuthorizeConfigProvider {
    method config (line 20) | boolean config(ExpressionUrlAuthorizationConfigurer<HttpSecurity>.Expr...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authorize/PcAuthorizeConfigManager.java
  class PcAuthorizeConfigManager (line 15) | @Component
    method PcAuthorizeConfigManager (line 25) | @Autowired
    method config (line 35) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authorize/PcAuthorizeConfigProvider.java
  class PcAuthorizeConfigProvider (line 14) | @Component
    method config (line 25) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/BrowserProperties.java
  class BrowserProperties (line 21) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/EmailCodeProperties.java
  class EmailCodeProperties (line 21) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/ImageCodeProperties.java
  class ImageCodeProperties (line 11) | @EqualsAndHashCode(callSuper = true)
    method ImageCodeProperties (line 18) | ImageCodeProperties() {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/LoginResponseType.java
  type LoginResponseType (line 8) | public enum LoginResponseType {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/OAuth2ClientProperties.java
  class OAuth2ClientProperties (line 10) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/OAuth2Properties.java
  class OAuth2Properties (line 21) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/QQProperties.java
  class QQProperties (line 12) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SecurityConstants.java
  type SecurityConstants (line 8) | public interface SecurityConstants {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SecurityProperties.java
  class SecurityProperties (line 22) | @ConfigurationProperties(prefix = "paascloud.security")
    method getBrowser (line 47) | public BrowserProperties getBrowser() {
    method setBrowser (line 56) | public void setBrowser(BrowserProperties browser) {
    method getCode (line 65) | public ValidateCodeProperties getCode() {
    method setCode (line 74) | public void setCode(ValidateCodeProperties code) {
    method getSocial (line 83) | public SocialProperties getSocial() {
    method setSocial (line 92) | public void setSocial(SocialProperties social) {
    method getOauth2 (line 101) | public OAuth2Properties getOauth2() {
    method setOauth2 (line 110) | public void setOauth2(OAuth2Properties oauth2) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SessionProperties.java
  class SessionProperties (line 21) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SmsCodeProperties.java
  class SmsCodeProperties (line 10) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SocialProperties.java
  class SocialProperties (line 10) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/ValidateCodeProperties.java
  class ValidateCodeProperties (line 21) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/WeixinProperties.java
  class WeixinProperties (line 23) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/BaseSocialController.java
  class BaseSocialController (line 24) | public abstract class BaseSocialController {
    method buildSocialUserInfo (line 33) | protected SocialUserInfo buildSocialUserInfo(Connection<?> connection) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/SocialConfig.java
  class SocialConfig (line 38) | @Configuration
    method getUsersConnectionRepository (line 61) | @Override
    method pcSocialSecurityConfig (line 76) | @Bean
    method providerSignInUtils (line 92) | @Bean

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/api/QQ.java
  type QQ (line 20) | public interface QQ {
    method getUserInfo (line 27) | QQUserInfo getUserInfo();

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/api/QQImpl.java
  class QQImpl (line 27) | @Slf4j
    method QQImpl (line 46) | public QQImpl(String accessToken, String appId) {
    method getUserInfo (line 64) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/api/QQUserInfo.java
  class QQUserInfo (line 26) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/config/QQAutoConfig.java
  class QQAutoConfig (line 31) | @Configuration
    method QQAutoConfig (line 37) | @Autowired
    method createConnectionFactory (line 47) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/connet/QQAdapter.java
  class QQAdapter (line 25) | public class QQAdapter implements ApiAdapter<QQ> {
    method test (line 34) | @Override
    method setConnectionValues (line 45) | @Override
    method fetchUserProfile (line 62) | @Override
    method updateStatus (line 73) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/connet/QQConnectionFactory.java
  class QQConnectionFactory (line 22) | public class QQConnectionFactory extends OAuth2ConnectionFactory<QQ> {
    method QQConnectionFactory (line 31) | public QQConnectionFactory(String providerId, String appId, String app...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/connet/QQOAuth2Template.java
  class QQOAuth2Template (line 30) | @Slf4j
    method QQOAuth2Template (line 41) | QQOAuth2Template(String clientId, String clientSecret, String authoriz...
    method postForAccessGrant (line 54) | @Override
    method createRestTemplate (line 74) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/connet/QQServiceProvider.java
  class QQServiceProvider (line 25) | public class QQServiceProvider extends AbstractOAuth2ServiceProvider<QQ> {
    method QQServiceProvider (line 39) | QQServiceProvider(String appId, String appSecret) {
    method getApi (line 51) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/support/PcSpringSocialConfigurer.java
  class PcSpringSocialConfigurer (line 22) | public class PcSpringSocialConfigurer extends SpringSocialConfigurer {
    method PcSpringSocialConfigurer (line 33) | public PcSpringSocialConfigurer(String filterProcessesUrl) {
    method postProcess (line 45) | @SuppressWarnings("unchecked")
    method getFilterProcessesUrl (line 61) | public String getFilterProcessesUrl() {
    method setFilterProcessesUrl (line 70) | public void setFilterProcessesUrl(String filterProcessesUrl) {
    method getSocialAuthenticationFilterPostProcessor (line 79) | public SocialAuthenticationFilterPostProcessor getSocialAuthentication...
    method setSocialAuthenticationFilterPostProcessor (line 88) | public void setSocialAuthenticationFilterPostProcessor(SocialAuthentic...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/support/SocialAuthenticationFilterPostProcessor.java
  type SocialAuthenticationFilterPostProcessor (line 21) | public interface SocialAuthenticationFilterPostProcessor {
    method process (line 28) | void process(SocialAuthenticationFilter socialAuthenticationFilter);

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/support/SocialUserInfo.java
  class SocialUserInfo (line 21) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/view/PcConnectView.java
  class PcConnectView (line 25) | public class PcConnectView extends AbstractView {
    method renderMergedOutputModel (line 38) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/view/PcConnectionStatusView.java
  class PcConnectionStatusView (line 32) | @Component("connect/status")
    method renderMergedOutputModel (line 47) | @SuppressWarnings("unchecked")

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/api/Weixin.java
  type Weixin (line 19) | public interface Weixin {
    method getUserInfo (line 28) | WeixinUserInfo getUserInfo(String openId);

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/api/WeixinImpl.java
  class WeixinImpl (line 30) | @Slf4j
    method WeixinImpl (line 45) | public WeixinImpl(String accessToken) {
    method getMessageConverters (line 54) | @Override
    method getUserInfo (line 69) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/api/WeixinUserInfo.java
  class WeixinUserInfo (line 21) | @Data

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/config/WeixinAutoConfiguration.java
  class WeixinAutoConfiguration (line 33) | @Configuration
    method createConnectionFactory (line 45) | @Override
    method weixinConnectedView (line 57) | @Bean({"connect/weixinConnect", "connect/weixinConnected"})

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinAccessGrant.java
  class WeixinAccessGrant (line 23) | public class WeixinAccessGrant extends AccessGrant {
    method WeixinAccessGrant (line 33) | public WeixinAccessGrant() {
    method WeixinAccessGrant (line 45) | public WeixinAccessGrant(String accessToken, String scope, String refr...
    method getOpenId (line 54) | public String getOpenId() {
    method setOpenId (line 63) | public void setOpenId(String openId) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinAdapter.java
  class WeixinAdapter (line 26) | public class WeixinAdapter implements ApiAdapter<Weixin> {
    method WeixinAdapter (line 33) | WeixinAdapter() {
    method WeixinAdapter (line 41) | WeixinAdapter(String openId) {
    method test (line 52) | @Override
    method setConnectionValues (line 63) | @Override
    method fetchUserProfile (line 78) | @Override
    method updateStatus (line 89) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinConnectionFactory.java
  class WeixinConnectionFactory (line 29) | public class WeixinConnectionFactory extends OAuth2ConnectionFactory<Wei...
    method WeixinConnectionFactory (line 38) | public WeixinConnectionFactory(String providerId, String appId, String...
    method extractProviderUserId (line 49) | @Override
    method createConnection (line 64) | @Override
    method createConnection (line 77) | @Override
    method getApiAdapter (line 82) | private ApiAdapter<Weixin> getApiAdapter(String providerUserId) {
    method getOAuth2ServiceProvider (line 86) | private OAuth2ServiceProvider<Weixin> getOAuth2ServiceProvider() {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinOAuth2Template.java
  class WeixinOAuth2Template (line 33) | @Slf4j
    method WeixinOAuth2Template (line 54) | WeixinOAuth2Template(String clientId, String clientSecret, String auth...
    method exchangeForAccess (line 71) | @Override
    method refreshAccess (line 94) | @Override
    method getAccessToken (line 106) | @SuppressWarnings("unchecked")
    method buildAuthenticateUrl (line 147) | @Override
    method buildAuthorizeUrl (line 161) | @Override
    method createRestTemplate (line 171) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinServiceProvider.java
  class WeixinServiceProvider (line 24) | public class WeixinServiceProvider extends AbstractOAuth2ServiceProvider...
    method WeixinServiceProvider (line 41) | WeixinServiceProvider(String appId, String appSecret) {
    method getApi (line 52) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/CookieUtil.java
  class CookieUtil (line 21) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method setCookie (line 47) | public static void setCookie(String name, String value, Integer maxAge...
    method getCookieValue (line 70) | public static String getCookieValue(HttpServletRequest request, String...
    method getCookie (line 87) | public static Cookie getCookie(HttpServletRequest request, String name) {
    method removeCookie (line 113) | public static void removeCookie(String name, HttpServletResponse respo...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCode.java
  class ValidateCode (line 29) | public class ValidateCode implements Serializable {
    method ValidateCode (line 45) | public ValidateCode() {
    method ValidateCode (line 54) | public ValidateCode(String code, int expireIn) {
    method ValidateCode (line 65) | public ValidateCode(String code, LocalDateTime expireTime) {
    method isExpired (line 75) | @JsonIgnore
    method getCode (line 85) | public String getCode() {
    method setCode (line 94) | public void setCode(String code) {
    method getExpireTime (line 103) | public LocalDateTime getExpireTime() {
    method setExpireTime (line 112) | public void setExpireTime(LocalDateTime expireTime) {
    method getType (line 121) | public String getType() {
    method setType (line 130) | public void setType(String type) {
    method toString (line 139) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeBeanConfig.java
  class ValidateCodeBeanConfig (line 33) | @Configuration
    method imageValidateCodeGenerator (line 46) | @Bean
    method smsCodeSender (line 60) | @Bean
    method emailCodeSender (line 71) | @Bean

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeController.java
  class ValidateCodeController (line 21) | @Slf4j
    method createCode (line 37) | @PostMapping(SecurityConstants.DEFAULT_VALIDATE_CODE_URL_PREFIX + "/{t...
    method checkCode (line 51) | @GetMapping(SecurityConstants.DEFAULT_VALIDATE_CODE_URL_PREFIX + "/{ty...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeException.java
  class ValidateCodeException (line 11) | public class ValidateCodeException extends AuthenticationException {
    method ValidateCodeException (line 21) | public ValidateCodeException(String msg) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeFilter.java
  class ValidateCodeFilter (line 29) | @Component("validateCodeFilter")
    method afterPropertiesSet (line 63) | @Override
    method addUrlToMap (line 81) | private void addUrlToMap(String urlString, ValidateCodeType type) {
    method doFilterInternal (line 100) | @Override
    method getValidateCodeType (line 123) | private ValidateCodeType getValidateCodeType(HttpServletRequest reques...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeGenerator.java
  type ValidateCodeGenerator (line 10) | public interface ValidateCodeGenerator {
    method generate (line 19) | ValidateCode generate(ServletWebRequest request);

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeProcessor.java
  type ValidateCodeProcessor (line 10) | public interface ValidateCodeProcessor {
    method create (line 19) | void create(ServletWebRequest request) throws Exception;
    method validate (line 26) | void validate(ServletWebRequest servletWebRequest);
    method check (line 33) | void check(ServletWebRequest servletWebRequest);

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeProcessorHolder.java
  class ValidateCodeProcessorHolder (line 24) | @Component
    method ValidateCodeProcessorHolder (line 34) | @Autowired
    method findValidateCodeProcessor (line 46) | ValidateCodeProcessor findValidateCodeProcessor(ValidateCodeType type) {
    method findValidateCodeProcessor (line 57) | ValidateCodeProcessor findValidateCodeProcessor(String type) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeRepository.java
  type ValidateCodeRepository (line 21) | public interface ValidateCodeRepository {
    method save (line 30) | void save(ServletWebRequest request, ValidateCode code, ValidateCodeTy...
    method get (line 40) | ValidateCode get(ServletWebRequest request, ValidateCodeType validateC...
    method remove (line 48) | void remove(ServletWebRequest request, ValidateCodeType codeType);

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeSecurityConfig.java
  class ValidateCodeSecurityConfig (line 17) | @Component("validateCodeSecurityConfig")
    method configure (line 27) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeType.java
  type ValidateCodeType (line 10) | public enum ValidateCodeType {
    method getParamNameOnValidate (line 16) | @Override
    method getParamNameOnValidate (line 25) | @Override
    method getParamNameOnValidate (line 34) | @Override
    method getParamNameOnValidate (line 45) | public abstract String getParamNameOnValidate();

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/email/DefaultEmailCodeSender.java
  class DefaultEmailCodeSender (line 22) | @Slf4j
    method send (line 30) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/email/EmailCodeGenerator.java
  class EmailCodeGenerator (line 31) | @Slf4j
    method generate (line 45) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/email/EmailCodeProcessor.java
  class EmailCodeProcessor (line 31) | @Component("emailValidateCodeProcessor")
    method EmailCodeProcessor (line 46) | public EmailCodeProcessor(Map<String, ValidateCodeGenerator> validateC...
    method send (line 58) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/email/EmailCodeSender.java
  type EmailCodeSender (line 19) | public interface EmailCodeSender {
    method send (line 27) | void send(String email, String code);

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/image/ImageCode.java
  class ImageCode (line 25) | public class ImageCode extends ValidateCode {
    method ImageCode (line 39) | ImageCode(BufferedImage image, String code, int expireIn) {
    method ImageCode (line 51) | public ImageCode(BufferedImage image, String code, LocalDateTime expir...
    method getImage (line 61) | public BufferedImage getImage() {
    method setImage (line 70) | public void setImage(BufferedImage image) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/image/ImageCodeGenerator.java
  class ImageCodeGenerator (line 26) | public class ImageCodeGenerator implements ValidateCodeGenerator {
    method generate (line 38) | @Override
    method setSecurityProperties (line 50) | public void setSecurityProperties(SecurityProperties securityPropertie...
    method setCaptchaProducer (line 59) | public void setCaptchaProducer(Producer captchaProducer) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/image/ImageCodeProcessor.java
  class ImageCodeProcessor (line 33) | @Component("imageValidateCodeProcessor")
    method ImageCodeProcessor (line 45) | public ImageCodeProcessor(Map<String, ValidateCodeGenerator> validateC...
    method send (line 57) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/impl/AbstractValidateCodeProcessor.java
  class AbstractValidateCodeProcessor (line 30) | public abstract class AbstractValidateCodeProcessor<C extends ValidateCo...
    method AbstractValidateCodeProcessor (line 45) | @Autowired
    method create (line 59) | @Override
    method generate (line 69) | @SuppressWarnings("unchecked")
    method save (line 83) | private void save(ServletWebRequest request, C validateCode) {
    method send (line 96) | protected abstract void send(ServletWebRequest request, C validateCode...
    method getValidateCodeType (line 101) | private ValidateCodeType getValidateCodeType() {
    method validate (line 111) | @SuppressWarnings("unchecked")
    method check (line 126) | @SuppressWarnings("unchecked")

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/impl/RedisValidateCodeRepository.java
  class RedisValidateCodeRepository (line 31) | @Component
    method RedisValidateCodeRepository (line 41) | @Autowired
    method save (line 53) | @Override
    method get (line 67) | @Override
    method remove (line 82) | @Override
    method buildKey (line 87) | private String buildKey(ServletWebRequest request, ValidateCodeType ty...

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/sms/DefaultSmsCodeSender.java
  class DefaultSmsCodeSender (line 11) | @Slf4j
    method send (line 21) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/sms/SmsCodeGenerator.java
  class SmsCodeGenerator (line 16) | @Component("smsValidateCodeGenerator")
    method generate (line 29) | @Override

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/sms/SmsCodeProcessor.java
  class SmsCodeProcessor (line 34) | @Component("smsValidateCodeProcessor")
    method SmsCodeProcessor (line 63) | public SmsCodeProcessor(Map<String, ValidateCodeGenerator> validateCod...
    method send (line 75) | @Override
    method checkSendSmsCount (line 98) | private void checkSendSmsCount(String mobile, String ipAddr) {
    method getRemoteAddr (line 136) | private String getRemoteAddr(HttpServletRequest request) {

FILE: paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/sms/SmsCodeSender.java
  type SmsCodeSender (line 8) | public interface SmsCodeSender {
    method send (line 17) | void send(String mobile, String code, String ip);

FILE: paascloud-common/paascloud-security-feign/src/main/java/com/paascloud/security/feign/OAuth2FeignAutoConfiguration.java
  class OAuth2FeignAutoConfiguration (line 33) | @Configuration
    method OAuth2FeignAutoConfiguration (line 44) | @Autowired
    method resourceDetails (line 54) | @Bean("paascloudClientCredentialsResourceDetails")
    method oAuth2RestTemplate (line 70) | @Bean("paascloudOAuth2RestTemplate")
    method oauth2FeignRequestInterceptor (line 85) | @Bean
    method feignLoggerLevel (line 95) | @Bean
    method errorDecoder (line 109) | @Bean

FILE: paascloud-common/paascloud-security-feign/src/main/java/com/paascloud/security/feign/OAuth2FeignRequestInterceptor.java
  class OAuth2FeignRequestInterceptor (line 26) | @Slf4j
    method OAuth2FeignRequestInterceptor (line 37) | OAuth2FeignRequestInterceptor(OAuth2RestTemplate oAuth2RestTemplate) {
    method apply (line 47) | @Override

FILE: paascloud-common/paascloud-security-feign/src/main/java/com/paascloud/security/feign/Oauth2ClientProperties.java
  class Oauth2ClientProperties (line 22) | @Data

FILE: paascloud-common/paascloud-security-feign/src/main/java/com/paascloud/security/feign/Oauth2FeignErrorInterceptor.java
  class Oauth2FeignErrorInterceptor (line 32) | @Slf4j
    method decode (line 44) | @Override

FILE: paascloud-discovery/src/main/java/com/paascloud/discovery/PaasCloudDiscoveryApplication.java
  class PaasCloudDiscoveryApplication (line 24) | @SpringBootApplication
    method main (line 34) | public static void main(String[] args) {

FILE: paascloud-eureka/src/main/java/com/paascloud/discovery/eureka/PaasCloudEurekaApplication.java
  class PaasCloudEurekaApplication (line 23) | @EnableEurekaServer
    method main (line 32) | public static void main(String[] args) {

FILE: paascloud-gateway/src/main/java/com/paascloud/gateway/PaasCloudGatewayApplication.java
  class PaasCloudGatewayApplication (line 31) | @SpringBootApplication
    method main (line 39) | public static void main(String[] args) {
    method corsFilter (line 43) | @Bean

FILE: paascloud-gateway/src/main/java/com/paascloud/gateway/config/SecurityConfig.java
  class SecurityConfig (line 24) | @Configuration
    method configure (line 35) | @Override

FILE: paascloud-gateway/src/main/java/com/paascloud/gateway/fallback/UacFallbackProvider.java
  class UacFallbackProvider (line 31) | @Component
    method getRoute (line 36) | @Override
    method fallbackResponse (line 41) | @Override
    method fallbackResponse (line 50) | @Override
    method response (line 55) | private ClientHttpResponse response(final HttpStatus status) {

FILE: paascloud-gateway/src/main/java/com/paascloud/gateway/filter/AuthHeaderFilter.java
  class AuthHeaderFilter (line 33) | @Slf4j
    method filterType (line 49) | @Override
    method filterOrder (line 59) | @Override
    method shouldFilter (line 69) | @Override
    method run (line 79) | @Override
    method doSomething (line 92) | private void doSomething(RequestContext requestContext) throws ZuulExc...

FILE: paascloud-gateway/src/main/java/com/paascloud/gateway/filter/RenewFilter.java
  class RenewFilter (line 34) | @Component
    method filterType (line 47) | @Override
    method filterOrder (line 57) | @Override
    method shouldFilter (line 67) | @Override
    method run (line 77) | @Override
    method doSomething (line 90) | private void doSomething(RequestContext requestContext) {

FILE: paascloud-generator/paascloud-generator-mdc/src/main/java/com/paascloud/provider/main/PaginationPlugin.java
  class PaginationPlugin (line 24) | public class PaginationPlugin extends PluginAdapter {
    method validate (line 33) | @Override
    method generate (line 38) | private static void generate() {
    method main (line 49) | public static void main(String[] args) {

FILE: paascloud-generator/paascloud-generator-omc/src/main/java/com/paascloud/provider/main/PaginationPlugin.java
  class PaginationPlugin (line 24) | public class PaginationPlugin extends PluginAdapter {
    method validate (line 33) | @Override
    method generate (line 38) | private static void generate() {
    method main (line 51) | public static void main(String[] args) {

FILE: paascloud-generator/paascloud-generator-opc/src/main/java/com/paascloud/provider/main/PaginationPlugin.java
  class PaginationPlugin (line 24) | public class PaginationPlugin extends PluginAdapter {
    method validate (line 33) | @Override
    method generate (line 38) | private static void generate() {
    method main (line 49) | public static void main(String[] args) {

FILE: paascloud-generator/paascloud-generator-tpc/src/main/java/com/paascloud/provider/main/PaginationPlugin.java
  class PaginationPlugin (line 24) | public class PaginationPlugin extends PluginAdapter {
    method validate (line 33) | @Override
    method generate (line 38) | private static void generate() {
    method main (line 49) | public static void main(String[] args) {

FILE: paascloud-generator/paascloud-generator-uac/src/main/java/com/paascloud/provider/main/PaginationPlugin.java
  class PaginationPlugin (line 24) | public class PaginationPlugin extends PluginAdapter {
    method validate (line 33) | @Override
    method generate (line 38) | private static void generate() {
    method main (line 49) | public static void main(String[] args) {

FILE: paascloud-monitor/src/main/java/com/paascloud/discovery/PaasCloudMonitorApplication.java
  class PaasCloudMonitorApplication (line 32) | @SpringBootApplication
    method hazelcastConfig (line 45) | @Bean
    method main (line 59) | public static void main(String[] args) {

FILE: paascloud-monitor/src/main/java/com/paascloud/discovery/SecurityConfig.java
  class SecurityConfig (line 23) | @Configuration
    method configure (line 32) | @Override

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/exceptions/MdcBizException.java
  class MdcBizException (line 24) | @Slf4j
    method MdcBizException (line 32) | public MdcBizException() {
    method MdcBizException (line 42) | public MdcBizException(int code, String msgFormat, Object... args) {
    method MdcBizException (line 53) | public MdcBizException(int code, String msg) {
    method MdcBizException (line 63) | public MdcBizException(ErrorCodeEnum codeEnum) {
    method MdcBizException (line 74) | public MdcBizException(ErrorCodeEnum codeEnum, Object... args) {

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/model/constant/MdcApiConstant.java
  class MdcApiConstant (line 22) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    type ProductStatusEnum (line 30) | public enum ProductStatusEnum {
      method ProductStatusEnum (line 46) | ProductStatusEnum(int code, String value) {
      method getValue (line 56) | public String getValue() {
      method getCode (line 65) | public int getCode() {

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/model/dto/AddressDTO.java
  class AddressDTO (line 26) | @Data

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/model/dto/GlobalExceptionLogDto.java
  class GlobalExceptionLogDto (line 32) | @Data
    method getGlobalExceptionLogDto (line 91) | public GlobalExceptionLogDto getGlobalExceptionLogDto(Exception ex, St...

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/model/dto/ProductCategoryDto.java
  class ProductCategoryDto (line 27) | @Data

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/model/dto/ProductDto.java
  class ProductDto (line 26) | @Data

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/model/dto/ProductReqDto.java
  class ProductReqDto (line 26) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/model/vo/ProductDetailVo.java
  class ProductDetailVo (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/MdcAddressQueryFeignApi.java
  type MdcAddressQueryFeignApi (line 27) | @FeignClient(value = "paascloud-provider-mdc", configuration = OAuth2Fei...
    method getById (line 37) | @PostMapping(value = "/api/address/getById/{addressId}")

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/MdcExceptionLogFeignApi.java
  type MdcExceptionLogFeignApi (line 27) | @FeignClient(value = "paascloud-provider-mdc", configuration = OAuth2Fei...
    method saveAndSendExceptionLog (line 37) | @PostMapping(value = "/api/exception/saveAndSendExceptionLog")

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/MdcMqMessageFeignApi.java
  type MdcMqMessageFeignApi (line 33) | @FeignClient(value = "paascloud-provider-mdc", configuration = OAuth2Fei...
    method queryMessageKeyList (line 44) | @PostMapping(value = "/api/mdc/message/queryMessageKeyList")
    method queryMessageListWithPage (line 54) | @PostMapping(value = "/api/mdc/message/queryMessageListWithPage")

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/MdcProductCategoryFeignApi.java
  type MdcProductCategoryFeignApi (line 23) | @FeignClient(value = "paascloud-provider-mdc", configuration = OAuth2Fei...

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/MdcProductCategoryQueryFeignApi.java
  type MdcProductCategoryQueryFeignApi (line 33) | @FeignClient(value = "paascloud-provider-mdc", configuration = OAuth2Fei...
    method getProductCategoryData (line 43) | @PostMapping(value = "/api/productCategory/getProductCategoryDtoByPid/...
    method getProductList (line 54) | @PostMapping(value = "/api/product/getProductList")

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/MdcProductFeignApi.java
  type MdcProductFeignApi (line 28) | @FeignClient(value = "paascloud-provider-mdc", configuration = OAuth2Fei...
    method updateProductStockById (line 38) | @PostMapping(value = "/api/product/updateProductStockById")
    method getMainImage (line 49) | @PostMapping(value = "/api/product/getMainImage")

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/MdcProductQueryFeignApi.java
  type MdcProductQueryFeignApi (line 29) | @FeignClient(value = "paascloud-provider-mdc", configuration = OAuth2Fei...
    method getProductDetail (line 39) | @PostMapping(value = "/api/product/getProductDetail/{productId}")
    method selectById (line 50) | @PostMapping(value = "/api/product/selectById/{productId}")

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/hystrix/MdcAddressQueryFeignHystrix.java
  class MdcAddressQueryFeignHystrix (line 24) | @Component
    method getById (line 27) | @Override

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/hystrix/MdcExceptionLogFeignHystrix.java
  class MdcExceptionLogFeignHystrix (line 25) | @Component
    method saveAndSendExceptionLog (line 28) | @Override

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/hystrix/MdcMqMessageApiHystrix.java
  class MdcMqMessageApiHystrix (line 29) | @Component
    method queryMessageKeyList (line 31) | @Override
    method queryMessageListWithPage (line 36) | @Override

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/hystrix/MdcProductCategoryFeignHystrix.java
  class MdcProductCategoryFeignHystrix (line 22) | @Component

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/hystrix/MdcProductCategoryQueryFeignHystrix.java
  class MdcProductCategoryQueryFeignHystrix (line 28) | @Component
    method getProductCategoryData (line 30) | @Override
    method getProductList (line 35) | @Override

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/hystrix/MdcProductFeignHystrix.java
  class MdcProductFeignHystrix (line 24) | @Component
    method updateProductStockById (line 27) | @Override
    method getMainImage (line 32) | @Override

FILE: paascloud-provider-api/paascloud-provider-mdc-api/src/main/java/com/paascloud/provider/service/hystrix/MdcProductQueryFeignHystrix.java
  class MdcProductQueryFeignHystrix (line 25) | @Component
    method getProductDetail (line 28) | @Override
    method selectById (line 33) | @Override

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/exceptions/OmcBizException.java
  class OmcBizException (line 24) | @Slf4j
    method OmcBizException (line 32) | public OmcBizException() {
    method OmcBizException (line 42) | public OmcBizException(int code, String msgFormat, Object... args) {
    method OmcBizException (line 53) | public OmcBizException(int code, String msg) {
    method OmcBizException (line 63) | public OmcBizException(ErrorCodeEnum codeEnum) {
    method OmcBizException (line 74) | public OmcBizException(ErrorCodeEnum codeEnum, Object... args) {

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/constant/OmcApiConstant.java
  class OmcApiConstant (line 22) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    type Cart (line 28) | public interface Cart {
    type Shipping (line 51) | public interface Shipping {
    type OrderStatusEnum (line 65) | public enum OrderStatusEnum {
      method OrderStatusEnum (line 92) | OrderStatusEnum(int code, String value) {
      method getValue (line 105) | public String getValue() {
      method getCode (line 114) | public int getCode() {
      method codeOf (line 125) | public static OrderStatusEnum codeOf(int code) {

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/constant/PtcApiConstant.java
  class PtcApiConstant (line 22) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    type AlipayCallback (line 31) | public interface AlipayCallback {
    type PayPlatformEnum (line 56) | public enum PayPlatformEnum {
      method PayPlatformEnum (line 62) | PayPlatformEnum(int code, String value) {
      method getValue (line 75) | public String getValue() {
      method getCode (line 84) | public int getCode() {

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/dto/OrderDetailDto.java
  class OrderDetailDto (line 24) | @Data

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/dto/OrderDto.java
  class OrderDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/dto/OrderPageQuery.java
  class OrderPageQuery (line 23) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/vo/CartProductVo.java
  class CartProductVo (line 24) | @Data

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/vo/CartVo.java
  class CartVo (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/vo/OrderDocVo.java
  class OrderDocVo (line 26) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/vo/OrderItemVo.java
  class OrderItemVo (line 27) | @Data

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/vo/OrderProductVo.java
  class OrderProductVo (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/vo/OrderVo.java
  class OrderVo (line 28) | @Data

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/model/vo/ShippingVo.java
  class ShippingVo (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/OmcCartFeignApi.java
  type OmcCartFeignApi (line 30) | @FeignClient(value = "paascloud-provider-omc", configuration = OAuth2Fei...
    method updateCartList (line 39) | @PostMapping(value = "/api/cart/updateCartList")
    method addProduct (line 51) | @PostMapping(value = "/api/cart/addProduct")
    method updateProduct (line 63) | @PostMapping(value = "/api/cart/updateProduct")
    method deleteProduct (line 74) | @PostMapping(value = "/api/cart/deleteProduct")
    method selectOrUnSelect (line 86) | @PostMapping(value = "/api/cart/selectOrUnSelect")

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/OmcCartQueryFeignApi.java
  type OmcCartQueryFeignApi (line 27) | @FeignClient(value = "paascloud-provider-omc", configuration = OAuth2Fei...
    method getCartVo (line 37) | @PostMapping(value = "/api/cart/getCarVo")

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/OmcOrderDetailFeignApi.java
  type OmcOrderDetailFeignApi (line 23) | @FeignClient(value = "paascloud-provider-omc", configuration = OAuth2Fei...

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/OmcOrderDetailQueryFeignApi.java
  type OmcOrderDetailQueryFeignApi (line 29) | @FeignClient(value = "paascloud-provider-omc", configuration = OAuth2Fei...
    method getListByOrderNoUserId (line 39) | @PostMapping(value = "/api/orderDetail/getListByOrderNoUserId/{userId}...

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/OmcOrderFeignApi.java
  type OmcOrderFeignApi (line 27) | @FeignClient(value = "paascloud-provider-omc", configuration = OAuth2Fei...
    method updateOrderById (line 36) | @PostMapping(value = "/api/order/updateOrderById")

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/OmcOrderQueryFeignApi.java
  type OmcOrderQueryFeignApi (line 27) | @FeignClient(value = "paascloud-provider-omc", configuration = OAuth2Fei...
    method queryByOrderNo (line 36) | @PostMapping(value = "/api/order/queryByOrderNo/{orderNo}")
    method queryByUserIdAndOrderNo (line 47) | @PostMapping(value = "/api/order/queryByUserIdAndOrderNo/{userId}/{ord...

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/hystrix/OmcCartFeignHystrix.java
  class OmcCartFeignHystrix (line 26) | @Component
    method updateCartList (line 28) | @Override
    method addProduct (line 33) | @Override
    method updateProduct (line 38) | @Override
    method deleteProduct (line 43) | @Override
    method selectOrUnSelect (line 48) | @Override

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/hystrix/OmcCartQueryFeignHystrix.java
  class OmcCartQueryFeignHystrix (line 24) | @Component
    method getCartVo (line 27) | @Override

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/hystrix/OmcOrderDetailFeignHystrix.java
  class OmcOrderDetailFeignHystrix (line 23) | @Component

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/hystrix/OmcOrderDetailQueryFeignHystrix.java
  class OmcOrderDetailQueryFeignHystrix (line 26) | @Component
    method getListByOrderNoUserId (line 29) | @Override

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/hystrix/OmcOrderFeignHystrix.java
  class OmcOrderFeignHystrix (line 24) | @Component
    method updateOrderById (line 27) | @Override

FILE: paascloud-provider-api/paascloud-provider-omc-api/src/main/java/com/paascloud/provider/service/hystrix/OmcOrderQueryFeignHystrix.java
  class OmcOrderQueryFeignHystrix (line 24) | @Component
    method queryByOrderNo (line 28) | @Override
    method queryByUserIdAndOrderNo (line 33) | @Override

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/exceptions/OpcBizException.java
  class OpcBizException (line 24) | @Slf4j
    method OpcBizException (line 32) | public OpcBizException() {
    method OpcBizException (line 42) | public OpcBizException(int code, String msgFormat, Object... args) {
    method OpcBizException (line 53) | public OpcBizException(int code, String msg) {
    method OpcBizException (line 63) | public OpcBizException(ErrorCodeEnum codeEnum) {
    method OpcBizException (line 74) | public OpcBizException(ErrorCodeEnum codeEnum, Object... args) {

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/constant/OpcApiConstant.java
  class OpcApiConstant (line 23) | @NoArgsConstructor(access = AccessLevel.PRIVATE)

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/PcSendEmailRequest.java
  class PcSendEmailRequest (line 24) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/PcSendSmsRequest.java
  class PcSendSmsRequest (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/attachment/OptAttachmentDeleteReqDto.java
  class OptAttachmentDeleteReqDto (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/attachment/OptAttachmentQueryReqDto.java
  class OptAttachmentQueryReqDto (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/attachment/OptAttachmentRespDto.java
  class OptAttachmentRespDto (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/attachment/OptUpdateAttachmentReqDto.java
  class OptUpdateAttachmentReqDto (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/attachment/OptUploadFileByteInfoReqDto.java
  class OptUploadFileByteInfoReqDto (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/gaode/GaodeLocation.java
  class GaodeLocation (line 23) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/oss/ElementImgUrlDto.java
  class ElementImgUrlDto (line 24) | @Data
    method ElementImgUrlDto (line 27) | public ElementImgUrlDto() {

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/oss/OptBatchGetUrlRequest.java
  class OptBatchGetUrlRequest (line 25) | @Data
    method OptBatchGetUrlRequest (line 30) | public OptBatchGetUrlRequest(String refNo) {

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/oss/OptGetUrlRequest.java
  class OptGetUrlRequest (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/oss/OptUploadFileReqDto.java
  class OptUploadFileReqDto (line 26) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/oss/OptUploadFileRespDto.java
  class OptUploadFileRespDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/robot/AtDto.java
  class AtDto (line 26) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/robot/ChatRobotMsgDto.java
  class ChatRobotMsgDto (line 27) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/robot/LinkDto.java
  class LinkDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/robot/MarkdownDto.java
  class MarkdownDto (line 26) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/dto/robot/TextDto.java
  class TextDto (line 26) | @Data

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/enums/RobotMsgTypeEnum.java
  type RobotMsgTypeEnum (line 19) | public enum RobotMsgTypeEnum {
    method RobotMsgTypeEnum (line 42) | RobotMsgTypeEnum(String type, String name) {
    method getType (line 52) | public String getType() {
    method getName (line 61) | public String getName() {
    method getName (line 72) | public static String getName(String type) {

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/model/factory/ChatRobotMsgFactory.java
  class ChatRobotMsgFactory (line 26) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method createChatRobotMarkdownMsg (line 40) | public static ChatRobotMsgDto createChatRobotMarkdownMsg(String webhoo...
    method createChatRobotLinkMsg (line 71) | public static ChatRobotMsgDto createChatRobotLinkMsg(String webhookTok...
    method createChatRobotTextMsg (line 95) | public static ChatRobotMsgDto createChatRobotTextMsg(String webhookTok...

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/service/DingtalkFeignApi.java
  type DingtalkFeignApi (line 29) | @FeignClient(value = "paascloud-provider-opc", configuration = OAuth2Fei...
    method sendChatRobotMsg (line 39) | @PostMapping(value = "/api/opc/dingtalk/sendChatRobotMsg")

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/service/OpcGaodeFeignApi.java
  type OpcGaodeFeignApi (line 27) | @FeignClient(value = "paascloud-provider-opc", configuration = OAuth2Fei...
    method getLocationByIpAddr (line 37) | @PostMapping(value = "/api/auth/getLocationByIpAddr")

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/service/OpcMqMessageFeignApi.java
  type OpcMqMessageFeignApi (line 34) | @FeignClient(value = "paascloud-provider-opc", configuration = OAuth2Fei...
    method queryMessageKeyList (line 44) | @PostMapping(value = "/api/opc/message/queryMessageKeyList")
    method queryMessageListWithPage (line 54) | @PostMapping(value = "/api/opc/message/queryMessageListWithPage")

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/service/OpcOssFeignApi.java
  type OpcOssFeignApi (line 34) | @FeignClient(value = "paascloud-provider-opc", configuration = OAuth2Fei...
    method uploadFile (line 44) | @PostMapping(value = "/api/opc/oss/uploadFile")
    method getFileUrl (line 54) | @PostMapping(value = "/api/opc/oss/getFileUrl")
    method listFileUrl (line 64) | @PostMapping(value = "/api/opc/oss/listFileUrl")
    method handleFileUpload (line 74) | @PostMapping(value = "/api/opc/oss/handleFileUpload")
    method deleteExpireFile (line 80) | @PostMapping(value = "/api/opc/oss/deleteExpireFile")
    class MultipartSupportConfig (line 88) | class MultipartSupportConfig {
      method feignFormEncoder (line 94) | @Bean

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/service/hystrix/DingtalkFeignApiHystrix.java
  class DingtalkFeignApiHystrix (line 26) | @Component
    method sendChatRobotMsg (line 29) | @Override

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/service/hystrix/OpcGaodeFeignApiHystrix.java
  class OpcGaodeFeignApiHystrix (line 24) | @Component
    method getLocationByIpAddr (line 27) | @Override

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/service/hystrix/OpcMqMessageFeignApiHystrix.java
  class OpcMqMessageFeignApiHystrix (line 29) | @Component
    method queryMessageKeyList (line 32) | @Override
    method queryMessageListWithPage (line 37) | @Override

FILE: paascloud-provider-api/paascloud-provider-opc-api/src/main/java/com/paascloud/provider/service/hystrix/OpcOssFeignApiHystrix.java
  class OpcOssFeignApiHystrix (line 27) | @Component
    method uploadFile (line 29) | @Override
    method getFileUrl (line 34) | @Override
    method listFileUrl (line 39) | @Override
    method handleFileUpload (line 44) | @Override
    method deleteExpireFile (line 49) | @Override

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/aspect/MqConsumerStoreAspect.java
  class MqConsumerStoreAspect (line 40) | @Slf4j
    method mqConsumerStoreAnnotationPointcut (line 54) | @Pointcut("@annotation(com.paascloud.provider.annotation.MqConsumerSto...
    method processMqConsumerStoreJoinPoint (line 68) | @Around(value = "mqConsumerStoreAnnotationPointcut()")
    method getAnnotation (line 114) | private MqConsumerStore getAnnotation(JoinPoint joinPoint) {
    method getTpcMqMessageDto (line 120) | private MqMessageData getTpcMqMessageDto(MessageExt messageExt) {

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/aspect/MqProducerStoreAspect.java
  class MqProducerStoreAspect (line 40) | @Slf4j
    method mqProducerStoreAnnotationPointcut (line 55) | @Pointcut("@annotation(com.paascloud.provider.annotation.MqProducerSto...
    method processMqProducerStoreJoinPoint (line 67) | @Around(value = "mqProducerStoreAnnotationPointcut()")
    method getAnnotation (line 111) | private static MqProducerStore getAnnotation(JoinPoint joinPoint) {

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/autoconfigure/MessageAutoConfiguration.java
  class MessageAutoConfiguration (line 21) | @Configuration

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/autoconfigure/MessageBeanConfiguration.java
  class MessageBeanConfiguration (line 25) | @Configuration
    method mqConsumerStoreAspect (line 27) | @Bean
    method mqProducerStoreAspect (line 33) | @Bean

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/mapper/MqMessageDataMapper.java
  type MqMessageDataMapper (line 28) | @Component
    method getBefore7DayTotalCount (line 40) | int getBefore7DayTotalCount(@Param("shardingTotalCount") int shardingT...
    method getIdListBefore7Day (line 53) | List<Long> getIdListBefore7Day(@Param("shardingTotalCount") int shardi...
    method batchDeleteByIdList (line 62) | int batchDeleteByIdList(@Param("idList") List<Long> idList);
    method queryMessageKeyList (line 71) | List<String> queryMessageKeyList(@Param("messageKeyList") List<String>...
    method queryMessageListWithPage (line 80) | List<MqMessageVo> queryMessageListWithPage(MessageQueryDto messageQuer...

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/model/domain/MqMessageData.java
  class MqMessageData (line 26) | @Table(name = "pc_mq_message_data")
    method MqMessageData (line 134) | public MqMessageData(final String msgBody, final String topic, final S...
    method getTpcMqMessageDto (line 146) | @Transient

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/model/dto/UpdateAttachmentDto.java
  class UpdateAttachmentDto (line 27) | @Data
    method UpdateAttachmentDto (line 32) | public UpdateAttachmentDto() {

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/model/enums/DelayLevelEnum.java
  type DelayLevelEnum (line 19) | public enum DelayLevelEnum {
    method DelayLevelEnum (line 97) | DelayLevelEnum(int delayLevel, String value) {
    method delayLevel (line 110) | public int delayLevel() {
    method value (line 119) | public String value() {

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/model/enums/MqMessageTypeEnum.java
  type MqMessageTypeEnum (line 19) | public enum MqMessageTypeEnum {
    method MqMessageTypeEnum (line 33) | MqMessageTypeEnum(int messageType, String value) {
    method messageType (line 43) | public int messageType() {
    method value (line 52) | public String value() {

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/model/enums/MqOrderTypeEnum.java
  type MqOrderTypeEnum (line 19) | public enum MqOrderTypeEnum {
    method MqOrderTypeEnum (line 34) | MqOrderTypeEnum(final int orderType) {
    method orderType (line 43) | public int orderType() {

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/model/enums/MqSendTypeEnum.java
  type MqSendTypeEnum (line 19) | public enum MqSendTypeEnum {

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/service/MqMessageService.java
  type MqMessageService (line 28) | public interface MqMessageService {
    method saveMqProducerMessage (line 35) | void saveMqProducerMessage(MqMessageData mqMessageData);
    method confirmAndSendMessage (line 42) | void confirmAndSendMessage(String messageKey);
    method saveMqConsumerMessage (line 49) | void saveMqConsumerMessage(MqMessageData mqMessageData);
    method deleteMessageByMessageKey (line 57) | void deleteMessageByMessageKey(String messageKey, MqSendTypeEnum type);
    method confirmReceiveMessage (line 65) | void confirmReceiveMessage(String cid, MqMessageData dto);
    method saveAndConfirmFinishMessage (line 73) | void saveAndConfirmFinishMessage(String cid, String messageKey);
    method deleteMqMessage (line 82) | void deleteMqMessage(int shardingTotalCount, int shardingItem, String ...
    method deleteMessageTopic (line 90) | void deleteMessageTopic(String body, String tags);
    method queryMessageKeyList (line 99) | List<String> queryMessageKeyList(List<String> messageKeyList);
    method saveWaitConfirmMessage (line 106) | void saveWaitConfirmMessage(MqMessageData mqMessageData);
    method saveAndSendMessage (line 114) | void saveAndSendMessage(MqMessageData mqMessageData);
    method directSendMessage (line 121) | void directSendMessage(MqMessageData mqMessageData);
    method queryMessageListWithPage (line 130) | Wrapper<PageInfo<MqMessageVo>> queryMessageListWithPage(MessageQueryDt...

FILE: paascloud-provider-api/paascloud-provider-sdk-api/src/main/java/com/paascloud/provider/service/impl/MqMessageServiceImpl.java
  class MqMessageServiceImpl (line 50) | @Slf4j
    method saveMqProducerMessage (line 65) | @Override
    method checkMessage (line 75) | private void checkMessage(MqMessageData mqMessageData) {
    method confirmAndSendMessage (line 98) | @Override
    method saveMqConsumerMessage (line 116) | @Override
    method deleteMessageByMessageKey (line 121) | @Override
    method confirmReceiveMessage (line 129) | @Override
    method saveAndConfirmFinishMessage (line 149) | @Override
    method deleteMqMessage (line 161) | @Override
    method deleteMessageTopic (line 186) | @Override
    method queryMessageKeyList (line 195) | @Override
    method saveWaitConfirmMessage (line 200) | @Override
    method saveAndSendMessage (line 210) | @Override
    method directSendMessage (line 219) | @Override
    method queryMessageListWithPage (line 227) | @Override

FILE: paascloud-provider-api/paascloud-provider-tpc-api/src/main/java/com/paascloud/provider/exceptions/TpcBizException.java
  class TpcBizException (line 24) | @Slf4j
    method TpcBizException (line 32) | public TpcBizException() {
    method TpcBizException (line 42) | public TpcBizException(int code, String msgFormat, Object... args) {
    method TpcBizException (line 53) | public TpcBizException(int code, String msg) {
    method TpcBizException (line 63) | public TpcBizException(ErrorCodeEnum codeEnum) {
    method TpcBizException (line 74) | public TpcBizException(ErrorCodeEnum codeEnum, Object... args) {

FILE: paascloud-provider-api/paascloud-provider-tpc-api/src/main/java/com/paascloud/provider/model/dto/PcJobTask.java
  class PcJobTask (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-tpc-api/src/main/java/com/paascloud/provider/model/dto/PcMessageJobTask.java
  class PcMessageJobTask (line 24) | @Data

FILE: paascloud-provider-api/paascloud-provider-tpc-api/src/main/java/com/paascloud/provider/model/dto/TpcMqMessageDto.java
  class TpcMqMessageDto (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-tpc-api/src/main/java/com/paascloud/provider/model/enums/JobTaskStatusEnum.java
  type JobTaskStatusEnum (line 23) | public enum JobTaskStatusEnum {
    method JobTaskStatusEnum (line 59) | JobTaskStatusEnum(int status, String value) {
    method status (line 69) | public int status() {
    method value (line 78) | public String value() {
    method getStatusList (line 82) | private static List<Integer> getStatusList() {
    method contains (line 97) | public static boolean contains(Integer status) {

FILE: paascloud-provider-api/paascloud-provider-tpc-api/src/main/java/com/paascloud/provider/service/TpcMqMessageFeignApi.java
  type TpcMqMessageFeignApi (line 29) | @FeignClient(value = "paascloud-provider-tpc", configuration = OAuth2Fei...
    method saveMessageWaitingConfirm (line 39) | @PostMapping(value = "/api/tpc/saveMessageWaitingConfirm")
    method confirmAndSendMessage (line 49) | @PostMapping(value = "/api/tpc/confirmAndSendMessage")
    method saveAndSendMessage (line 59) | @PostMapping(value = "/api/tpc/saveAndSendMessage")
    method directSendMessage (line 69) | @PostMapping(value = "/api/tpc/directSendMessage")
    method deleteMessageByMessageKey (line 79) | @PostMapping(value = "/api/tpc/deleteMessageByMessageKey")
    method confirmReceiveMessage (line 90) | @PostMapping(value = "/api/tpc/confirmReceiveMessage")
    method confirmConsumedMessage (line 101) | @PostMapping(value = "/api/tpc/saveAndConfirmFinishMessage")

FILE: paascloud-provider-api/paascloud-provider-tpc-api/src/main/java/com/paascloud/provider/service/hystrix/TpcMqMessageFeignApiHystrix.java
  class TpcMqMessageFeignApiHystrix (line 26) | @Component
    method saveMessageWaitingConfirm (line 30) | @Override
    method confirmAndSendMessage (line 36) | @Override
    method saveAndSendMessage (line 41) | @Override
    method directSendMessage (line 46) | @Override
    method deleteMessageByMessageKey (line 51) | @Override
    method confirmReceiveMessage (line 56) | @Override
    method confirmConsumedMessage (line 61) | @Override

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/constant/UacApiConstant.java
  class UacApiConstant (line 23) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    class Valid (line 28) | @NoArgsConstructor(access = AccessLevel.PRIVATE)

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/constant/UacConstant.java
  class UacConstant (line 19) | public class UacConstant {
    class Token (line 31) | public static final class Token {
      class Jwt (line 68) | public static final class Jwt {
    class User (line 85) | public static final class User {
    class Cookie (line 97) | public static final class Cookie {

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/dto/user/ForgetCheckAnswerDto.java
  class ForgetCheckAnswerDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/dto/user/ForgetResetPasswordDto.java
  class ForgetResetPasswordDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/dto/user/IdStatusDto.java
  class IdStatusDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/dto/user/LoginReqDto.java
  class LoginReqDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/dto/user/Perm.java
  class Perm (line 23) | @Data

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/dto/user/ResetPasswordDto.java
  class ResetPasswordDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/dto/user/UserInfoDto.java
  class UserInfoDto (line 26) | @Data

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/dto/user/UserRegisterDto.java
  class UserRegisterDto (line 25) | @Data

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/enums/UacGroupTypeEnum.java
  type UacGroupTypeEnum (line 26) | public enum UacGroupTypeEnum {
    method UacGroupTypeEnum (line 59) | UacGroupTypeEnum(String key, String value) {
    method getKey (line 69) | public String getKey() {
    method setKey (line 78) | public void setKey(String key) {
    method getValue (line 87) | public String getValue() {
    method setValue (line 96) | public void setValue(String value) {
    method getValue (line 107) | public static String getValue(String key) {
    method getEnum (line 123) | public static UacGroupTypeEnum getEnum(String key) {
    method getList (line 137) | public static List<UacGroupTypeEnum> getList() {
    method getMap2List (line 147) | public static List<Map<String, String>> getMap2List() {

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/exceptions/UacBizException.java
  class UacBizException (line 23) | @Slf4j
    method UacBizException (line 31) | public UacBizException() {
    method UacBizException (line 41) | public UacBizException(int code, String msgFormat, Object... args) {
    method UacBizException (line 53) | public UacBizException(int code, String msg) {
    method UacBizException (line 63) | public UacBizException(ErrorCodeEnum codeEnum) {
    method UacBizException (line 74) | public UacBizException(ErrorCodeEnum codeEnum, Object... args) {

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/service/UacMqMessageFeignApi.java
  type UacMqMessageFeignApi (line 33) | @FeignClient(value = "paascloud-provider-uac", configuration = OAuth2Fei...
    method queryMessageKeyList (line 44) | @PostMapping(value = "/api/uac/message/queryMessageKeyList")
    method queryMessageListWithPage (line 54) | @PostMapping(value = "/api/uac/message/queryMessageListWithPage")

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/service/UacUserTokenFeignApi.java
  type UacUserTokenFeignApi (line 26) | @FeignClient(value = "paascloud-provider-uac", configuration = OAuth2Fei...
    method updateTokenOffLine (line 34) | @PostMapping(value = "/api/uac/token/updateTokenOffLine")

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/service/hystrix/UacMqMessageApiHystrix.java
  class UacMqMessageApiHystrix (line 30) | @Component
    method queryMessageKeyList (line 33) | @Override
    method queryMessageListWithPage (line 38) | @Override

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/service/hystrix/UacUserTokenFeignApiHystrix.java
  class UacUserTokenFeignApiHystrix (line 24) | @Component
    method updateTokenOffLine (line 27) | @Override

FILE: paascloud-provider-api/paascloud-provider-uac-api/src/main/java/com/paascloud/provider/model/vo/MenuVo.java
  class MenuVo (line 26) | @Data

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/PaasCloudMdcApplication.java
  class PaasCloudMdcApplication (line 31) | @EnableCaching
    method main (line 44) | public static void main(String[] args) {
    method springLiquibase (line 48) | @Bean

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/config/MdcWebMvcConfig.java
  class MdcWebMvcConfig (line 34) | @Configuration
    method addResourceHandlers (line 42) | @Override
    method addInterceptors (line 53) | @Override
    method configureMessageConverters (line 61) | @Override

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/config/ResourceServerConfig.java
  class ResourceServerConfig (line 26) | @Configuration
    method configure (line 29) | @Override

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/manager/MdcProductManager.java
  class MdcProductManager (line 31) | @Slf4j
    method saveProduct (line 45) | @MqProducerStore
    method deleteProduct (line 64) | @MqProducerStore

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/mapper/MdcAddressMapper.java
  type MdcAddressMapper (line 26) | @Mapper
    method selectMdcAddress (line 36) | List<MdcAddress> selectMdcAddress(MdcAddress address);
    method selectAddressByPid (line 45) | List<MdcAddress> selectAddressByPid(Long pid);

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/mapper/MdcDictMapper.java
  type MdcDictMapper (line 27) | @Mapper
    method listDictVo (line 35) | List<MdcDictVo> listDictVo();

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/mapper/MdcExceptionLogMapper.java
  type MdcExceptionLogMapper (line 27) | @Mapper
    method queryExceptionListWithPage (line 37) | List<MdcExceptionLog> queryExceptionListWithPage(MdcExceptionQueryDto ...

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/mapper/MdcProductCategoryMapper.java
  type MdcProductCategoryMapper (line 28) | @Mapper
    method selectCategoryDtoList (line 38) | List<ProductCategoryDto> selectCategoryDtoList(Long categoryPid);
    method listCategoryVo (line 45) | List<MdcCategoryVo> listCategoryVo();

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/mapper/MdcProductMapper.java
  type MdcProductMapper (line 29) | @Mapper
    method selectByNameAndCategoryIds (line 41) | List<MdcProduct> selectByNameAndCategoryIds(@Param("productName") Stri...
    method updateProductStockById (line 52) | int updateProductStockById(ProductDto productDto);
    method queryProductListWithPage (line 61) | List<ProductVo> queryProductListWithPage(MdcProduct mdcProduct);

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/constant/MallConstant.java
  class MallConstant (line 19) | public class MallConstant {
    type ProductStatusEnum (line 25) | public enum ProductStatusEnum {
      method ProductStatusEnum (line 33) | ProductStatusEnum(int code, String value) {
      method getValue (line 43) | public String getValue() {
      method getCode (line 52) | public int getCode() {

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/domain/MdcAddress.java
  class MdcAddress (line 25) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/domain/MdcDict.java
  class MdcDict (line 27) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/domain/MdcExceptionLog.java
  class MdcExceptionLog (line 28) | @Alias("mdcExceptionLog")

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/domain/MdcProduct.java
  class MdcProduct (line 28) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/domain/MdcProductCategory.java
  class MdcProductCategory (line 28) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/dto/MdcCategoryCheckNameDto.java
  class MdcCategoryCheckNameDto (line 27) | @Data

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/dto/MdcDictCheckCodeDto.java
  class MdcDictCheckCodeDto (line 27) | @Data

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/dto/MdcDictCheckNameDto.java
  class MdcDictCheckNameDto (line 27) | @Data

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/dto/MdcEditCategoryDto.java
  class MdcEditCategoryDto (line 24) | @Data

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/dto/MdcEditDictDto.java
  class MdcEditDictDto (line 25) | @Data

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/dto/MdcEditProductDto.java
  class MdcEditProductDto (line 27) | @Data

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/dto/MdcExceptionQueryDto.java
  class MdcExceptionQueryDto (line 30) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/enums/AddressTypeEnum.java
  type AddressTypeEnum (line 19) | public enum AddressTypeEnum {
    method AddressTypeEnum (line 40) | AddressTypeEnum(String type) {
    method getType (line 49) | public String getType() {
    method getEnum (line 60) | public static AddressTypeEnum getEnum(String type) {

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/enums/MdcCategoryStatusEnum.java
  type MdcCategoryStatusEnum (line 20) | public enum MdcCategoryStatusEnum {
    method MdcCategoryStatusEnum (line 39) | MdcCategoryStatusEnum(int type, String name) {
    method getType (line 49) | public int getType() {
    method getName (line 58) | public String getName() {
    method getName (line 70) | public static String getName(int type) {
    method getEnum (line 86) | public static MdcCategoryStatusEnum getEnum(int type) {

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/enums/MdcDictStatusEnum.java
  type MdcDictStatusEnum (line 20) | public enum MdcDictStatusEnum {
    method MdcDictStatusEnum (line 39) | MdcDictStatusEnum(int type, String name) {
    method getType (line 49) | public int getType() {
    method getName (line 58) | public String getName() {
    method getName (line 70) | public static String getName(int type) {
    method getEnum (line 86) | public static MdcDictStatusEnum getEnum(int type) {

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/vo/MdcCategoryVo.java
  class MdcCategoryVo (line 23) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/vo/MdcDictVo.java
  class MdcDictVo (line 23) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/model/vo/ProductVo.java
  class ProductVo (line 28) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/MdcAddressService.java
  type MdcAddressService (line 26) | public interface MdcAddressService extends IService<MdcAddress> {
    method listByPid (line 34) | List<MdcAddress> listByPid(Long pid);
    method getById (line 43) | MdcAddress getById(Long id);
    method get4City (line 50) | List<TreeNode> get4City();

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/MdcDictService.java
  type MdcDictService (line 27) | public interface MdcDictService extends IService<MdcDict> {
    method getDictTreeList (line 34) | List<MdcDictVo> getDictTreeList();
    method getMdcDictVoById (line 43) | MdcDictVo getMdcDictVoById(Long dictId);
    method updateMdcDictStatusById (line 53) | void updateMdcDictStatusById(UpdateStatusDto updateStatusDto, LoginAut...
    method saveMdcDict (line 61) | void saveMdcDict(MdcDict mdcDict, LoginAuthDto loginAuthDto);
    method checkDictHasChildDict (line 70) | boolean checkDictHasChildDict(Long dictId);

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/MdcExceptionLogService.java
  type MdcExceptionLogService (line 26) | public interface MdcExceptionLogService extends IService<MdcExceptionLog> {
    method saveAndSendExceptionLog (line 32) | void saveAndSendExceptionLog(GlobalExceptionLogDto exceptionLogDto);
    method queryExceptionListWithPage (line 41) | PageInfo queryExceptionListWithPage(MdcExceptionQueryDto mdcExceptionQ...

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/MdcProductCategoryService.java
  type MdcProductCategoryService (line 28) | public interface MdcProductCategoryService extends IService<MdcProductCa...
    method getCategoryDtoList (line 37) | List<ProductCategoryDto> getCategoryDtoList(Long categoryId);
    method getProductCategoryListByPid (line 46) | List<MdcProductCategory> getProductCategoryListByPid(Long pid);
    method selectCategoryAndChildrenById (line 55) | List<Long> selectCategoryAndChildrenById(Long categoryId);
    method getByCategoryId (line 64) | MdcProductCategory getByCategoryId(Long categoryId);
    method getCategoryTreeList (line 71) | List<MdcCategoryVo> getCategoryTreeList();
    method getMdcCategoryVoById (line 80) | MdcCategoryVo getMdcCategoryVoById(Long id);
    method updateMdcCategoryStatusById (line 88) | void updateMdcCategoryStatusById(UpdateStatusDto updateStatusDto, Logi...
    method saveMdcCategory (line 96) | void saveMdcCategory(MdcProductCategory mdcCategory, LoginAuthDto logi...
    method checkCategoryHasChildCategory (line 105) | boolean checkCategoryHasChildCategory(Long id);

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/MdcProductService.java
  type MdcProductService (line 29) | public interface MdcProductService extends IService<MdcProduct> {
    method selectByNameAndCategoryIds (line 40) | List<MdcProduct> selectByNameAndCategoryIds(String productName, List<L...
    method getProductDetail (line 49) | ProductDetailVo getProductDetail(Long productId);
    method updateProductStockById (line 58) | int updateProductStockById(ProductDto productDto);
    method queryProductListWithPage (line 67) | List<ProductVo> queryProductListWithPage(MdcProduct mdcProduct);
    method saveProduct (line 75) | void saveProduct(MdcEditProductDto mdcEditProductDto, LoginAuthDto log...
    method deleteProductById (line 82) | void deleteProductById(Long id);
    method getProductVo (line 91) | ProductVo getProductVo(Long id);
    method getMainImage (line 100) | String getMainImage(Long productId);

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/OpcRpcService.java
  class OpcRpcService (line 30) | @Component
    method sendChatRobotMsg (line 38) | public boolean sendChatRobotMsg(ChatRobotMsgDto chatRobotMsgDto) {
    method listFileUrl (line 43) | public List<ElementImgUrlDto> listFileUrl(OptBatchGetUrlRequest urlReq...
    method getFileUrl (line 48) | public String getFileUrl(final OptGetUrlRequest request) {

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/impl/MdcAddressServiceImpl.java
  class MdcAddressServiceImpl (line 32) | @Service
    method listByPid (line 44) | @Override
    method getById (line 49) | @Override
    method get4City (line 55) | @Override
    method buildGroupTree (line 64) | private List<TreeNode> buildGroupTree(List<MdcAddress> mdcAddressesLis...

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/impl/MdcDictServiceImpl.java
  class MdcDictServiceImpl (line 39) | @Service
    method getDictTreeList (line 45) | @Override
    method getMdcDictVoById (line 52) | @Override
    method updateMdcDictStatusById (line 75) | @Override
    method updateDictStatus (line 106) | private void updateDictStatus(List<MdcDict> mdcDictList, LoginAuthDto ...
    method getAllDictFolder (line 120) | private List<MdcDict> getAllDictFolder(Long id, int dictStatus) {
    method getAllParentDictFolderByMenuId (line 129) | private List<MdcDict> getAllParentDictFolderByMenuId(Long dictId) {
    method buildNode (line 141) | private List<MdcDict> buildNode(List<MdcDict> mdcDictList, MdcDict uac...
    method buildParentNote (line 158) | private List<MdcDict> buildParentNote(List<MdcDict> mdcDictList, MdcDi...
    method saveMdcDict (line 172) | @Override
    method checkDictHasChildDict (line 192) | @Override

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/impl/MdcExceptionLogServiceImpl.java
  class MdcExceptionLogServiceImpl (line 42) | @Service
    method saveAndSendExceptionLog (line 53) | @Override
    method queryExceptionListWithPage (line 71) | @Override
    method judgeIsSend (line 78) | private boolean judgeIsSend(String profile) {

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/impl/MdcProductCategoryServiceImpl.java
  class MdcProductCategoryServiceImpl (line 43) | @Service
    method getCategoryDtoList (line 49) | @Override
    method selectCategoryAndChildrenById (line 54) | @Override
    method getByCategoryId (line 69) | @Override
    method getCategoryTreeList (line 78) | @Override
    method getMdcCategoryVoById (line 84) | @Override
    method updateMdcCategoryStatusById (line 107) | @Override
    method saveMdcCategory (line 138) | @Override
    method checkCategoryHasChildCategory (line 157) | @Override
    method findChildCategory (line 170) | private Set<MdcProductCategory> findChildCategory(Set<MdcProductCatego...
    method getProductCategoryListByPid (line 183) | @Override
    method updateCategoryStatus (line 192) | private void updateCategoryStatus(List<MdcProductCategory> mdcCategory...
    method getAllCategoryFolder (line 206) | private List<MdcProductCategory> getAllCategoryFolder(Long id, int cat...
    method getAllParentCategoryFolderByMenuId (line 215) | private List<MdcProductCategory> getAllParentCategoryFolderByMenuId(Lo...
    method buildNode (line 227) | private List<MdcProductCategory> buildNode(List<MdcProductCategory> md...
    method buildParentNote (line 244) | private List<MdcProductCategory> buildParentNote(List<MdcProductCatego...

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/service/impl/MdcProductServiceImpl.java
  class MdcProductServiceImpl (line 60) | @Service
    method selectByNameAndCategoryIds (line 73) | @Override
    method getProductDetail (line 78) | @Override
    method updateProductStockById (line 94) | @Override
    method queryProductListWithPage (line 100) | @Override
    method saveProduct (line 105) | @Override
    method deleteProductById (line 146) | @Override
    method getProductVo (line 159) | @Override
    method getMainImage (line 176) | @Override
    method buildCategoryIdList (line 191) | private List<Long> buildCategoryIdList(List<Long> categoryIdList, Long...
    method assembleProductDetailVo (line 200) | private ProductDetailVo assembleProductDetailVo(MdcProduct product) {

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/GlobalExceptionHandler.java
  class GlobalExceptionHandler (line 37) | @Slf4j
    method illegalArgumentException (line 56) | @ExceptionHandler(IllegalArgumentException.class)
    method businessException (line 71) | @ExceptionHandler(BusinessException.class)
    method exception (line 87) | @ExceptionHandler(Exception.class)

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/frontend/MdcAddressRest.java
  class MdcAddressRest (line 35) | @RestController
    method get4City (line 49) | @PostMapping(value = "/get4City")

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/frontend/MdcDictMainController.java
  class MdcDictMainController (line 38) | @RestController
    method queryDictTreeList (line 51) | @PostMapping(value = "/getTree")
    method queryDictVoById (line 65) | @PostMapping(value = "/queryById/{id}")
    method updateMdcDictStatusById (line 79) | @PostMapping(value = "/modifyStatus")
    method saveDict (line 88) | @PostMapping(value = "/save")
    method deleteMdcDictById (line 105) | @PostMapping(value = "/deleteById/{id}")

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/frontend/MdcExceptionMainController.java
  class MdcExceptionMainController (line 36) | @RestController
    method queryLogListWithPage (line 50) | @PostMapping(value = "/queryListWithPage")

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/frontend/MdcProductCategoryMainController.java
  class MdcProductCategoryMainController (line 39) | @RestController
    method queryCategoryTreeList (line 52) | @PostMapping(value = "/getTree")
    method queryCategoryVoById (line 66) | @PostMapping(value = "/queryById/{id}")
    method updateMdcCategoryStatusById (line 80) | @PostMapping(value = "/modifyStatus")
    method saveCategory (line 90) | @PostMapping(value = "/save")
    method deleteMdcCategoryById (line 108) | @PostMapping(value = "/deleteById/{id}")

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/frontend/MdcProductMainController.java
  class MdcProductMainController (line 38) | @RestController
    method queryProductListWithPage (line 53) | @PostMapping(value = "/queryProductListWithPage")
    method getById (line 67) | @PostMapping(value = "/getById/{id}")
    method saveCategory (line 75) | @PostMapping(value = "/save")
    method deleteProductById (line 84) | @PostMapping(value = "/deleteProductById/{id}")

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/frontend/UacDictCommonController.java
  class UacDictCommonController (line 39) | @RestController
    method checkDictCode (line 55) | @PostMapping(value = "/checkDictCode")
    method checkDictName (line 82) | @PostMapping(value = "/checkDictName")

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/frontend/UacProductCategoryCommonController.java
  class UacProductCategoryCommonController (line 37) | @RestController
    method checkCategoryName (line 52) | @PostMapping(value = "/checkCategoryName")

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/rpc/MdcAddressQueryFeignClient.java
  class MdcAddressQueryFeignClient (line 37) | @RefreshScope
    method getById (line 52) | @Override

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/rpc/MdcExceptionLogFeignClient.java
  class MdcExceptionLogFeignClient (line 35) | @Slf4j
    method saveAndSendExceptionLog (line 43) | @Override

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/rpc/MdcMqMessageFeignClient.java
  class MdcMqMessageFeignClient (line 38) | @RestController
    method queryMessageKeyList (line 44) | @Override
    method queryMessageListWithPage (line 51) | @Override

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/rpc/MdcProductCategoryFeignClient.java
  class MdcProductCategoryFeignClient (line 26) | @RefreshScope

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/rpc/MdcProductCategoryQueryFeignClient.java
  class MdcProductCategoryQueryFeignClient (line 46) | @RefreshScope
    method getProductCategoryData (line 63) | @Override
    method getProductList (line 99) | @Override
    method assembleProductListVo (line 139) | private ProductDto assembleProductListVo(MdcProduct product) {

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/rpc/MdcProductFeignClient.java
  class MdcProductFeignClient (line 38) | @RefreshScope
    method updateProductStockById (line 45) | @Override
    method getMainImage (line 54) | @Override

FILE: paascloud-provider/paascloud-provider-mdc/src/main/java/com/paascloud/provider/web/rpc/MdcProductQueryFeignClient.java
  class MdcProductQueryFeignClient (line 38) | @RefreshScope
    method getProductDetail (line 46) | @Override
    method selectById (line 54) | @Override

FILE: paascloud-provider/paascloud-provider-mdc/src/test/java/com/paascloud/provider/PaasCloudMdcApplicationTests.java
  class PaasCloudMdcApplicationTests (line 18) | @RunWith(SpringRunner.class)

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/PaasCloudOmcApplication.java
  class PaasCloudOmcApplication (line 31) | @EnableCaching
    method main (line 44) | public static void main(String[] args) {
    method springLiquibase (line 48) | @Bean

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/config/OmcWebMvcConfig.java
  class OmcWebMvcConfig (line 34) | @Configuration
    method addResourceHandlers (line 42) | @Override
    method addInterceptors (line 53) | @Override
    method configureMessageConverters (line 61) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/config/ResourceServerConfig.java
  class ResourceServerConfig (line 26) | @Configuration
    method configure (line 29) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/mapper/OmcCartMapper.java
  type OmcCartMapper (line 27) | @Mapper
    method selectUnCheckedCartProductCountByUserId (line 37) | int selectUnCheckedCartProductCountByUserId(Long userId);
    method selectByProductIdAndUserId (line 47) | OmcCart selectByProductIdAndUserId(@Param("productId") Long productId,...
    method deleteByUserIdProductIds (line 57) | int deleteByUserIdProductIds(@Param("userId") Long userId, @Param("pro...
    method checkedOrUncheckedProduct (line 68) | int checkedOrUncheckedProduct(@Param("userId") Long userId, @Param("pr...
    method selectCartProductCount (line 77) | int selectCartProductCount(Long userId);
    method selectCheckedCartByUserId (line 86) | List<OmcCart> selectCheckedCartByUserId(Long userId);
    method batchDeleteCart (line 95) | int batchDeleteCart(@Param("idList") List<Long> idList);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/mapper/OmcOrderDetailMapper.java
  type OmcOrderDetailMapper (line 28) | @Mapper
    method getListByOrderNoUserId (line 39) | List<OmcOrderDetail> getListByOrderNoUserId(@Param("orderNo") String o...
    method getListByOrderNo (line 48) | List<OmcOrderDetail> getListByOrderNo(String orderNo);
    method batchInsertOrderDetail (line 57) | int batchInsertOrderDetail(@Param("orderDetailList") List<OmcOrderDeta...

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/mapper/OmcOrderMapper.java
  type OmcOrderMapper (line 29) | @Mapper
    method selectByUserIdAndOrderNo (line 40) | OmcOrder selectByUserIdAndOrderNo(@Param("userId") Long userId, @Param...
    method selectByOrderNo (line 49) | OmcOrder selectByOrderNo(String orderNo);
    method selectByUserId (line 58) | List<OmcOrder> selectByUserId(Long userId);
    method selectAllOrder (line 65) | List<OmcOrder> selectAllOrder();
    method queryOrderListWithPage (line 74) | List<OrderDocVo> queryOrderListWithPage(OrderPageQuery orderPageQuery);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/mapper/OmcShippingMapper.java
  type OmcShippingMapper (line 28) | @Mapper
    method deleteByShippingIdUserId (line 39) | int deleteByShippingIdUserId(@Param("userId") Long userId, @Param("shi...
    method selectByShippingIdUserId (line 49) | OmcShipping selectByShippingIdUserId(@Param("userId") Long userId, @Pa...
    method selectByUserId (line 58) | List<OmcShipping> selectByUserId(@Param("userId") Long userId);
    method selectDefaultAddressByUserId (line 67) | OmcShipping selectDefaultAddressByUserId(Long userId);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/mapper/PtcPayInfoMapper.java
  type PtcPayInfoMapper (line 24) | @Mapper

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/model/domain/OmcCart.java
  class OmcCart (line 26) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/model/domain/OmcOrder.java
  class OmcOrder (line 28) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/model/domain/OmcOrderDetail.java
  class OmcOrderDetail (line 27) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/model/domain/OmcShipping.java
  class OmcShipping (line 26) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/model/domain/PtcPayInfo.java
  class PtcPayInfo (line 26) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/MdcProductService.java
  type MdcProductService (line 22) | public interface MdcProductService {
    method selectById (line 30) | ProductDto selectById(Long productId);
    method getProductDetail (line 39) | ProductDetailVo getProductDetail(Long productId);
    method updateProductStockById (line 48) | int updateProductStockById(ProductDto productDto);
    method getMainImage (line 57) | String getMainImage(Long productId);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/OmcCartService.java
  type OmcCartService (line 29) | public interface OmcCartService extends IService<OmcCart> {
    method getCarVo (line 37) | CartVo getCarVo(Long userId);
    method selectCartListByUserId (line 46) | List<OmcCart> selectCartListByUserId(Long userId);
    method updateCartList (line 55) | int updateCartList(List<CartProductVo> cartProductVoList);
    method saveCart (line 63) | void saveCart(OmcCart omcCart, LoginAuthDto authDto);
    method saveCart (line 74) | int saveCart(Long userId, Long productId, int count);
    method getCartByUserIdAndProductId (line 84) | OmcCart getCartByUserIdAndProductId(Long userId, Long productId);
    method deleteProduct (line 94) | int deleteProduct(Long userId, String productIds);
    method selectOrUnSelect (line 105) | int selectOrUnSelect(Long userId, Long productId, int checked);
    method updateCart (line 116) | int updateCart(Long userId, Long productId, int count);
    method getOrderCartProduct (line 125) | OrderProductVo getOrderCartProduct(Long userId);
    method getCartOrderItem (line 135) | List<OmcOrderDetail> getCartOrderItem(Long userId, List<OmcCart> cartL...

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/OmcOrderDetailService.java
  type OmcOrderDetailService (line 24) | public interface OmcOrderDetailService extends IService<OmcOrderDetail> {
    method getListByOrderNoUserId (line 33) | List<OmcOrderDetail> getListByOrderNoUserId(String orderNo, Long userId);
    method getListByOrderNo (line 42) | List<OmcOrderDetail> getListByOrderNo(String orderNo);
    method batchInsertOrderDetail (line 49) | void batchInsertOrderDetail(List<OmcOrderDetail> omcOrderDetailList);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/OmcOrderService.java
  type OmcOrderService (line 28) | public interface OmcOrderService extends IService<OmcOrder> {
    method createOrderDoc (line 38) | OrderVo createOrderDoc(LoginAuthDto loginAuthDto, Long shippingId);
    method cancelOrderDoc (line 48) | int cancelOrderDoc(LoginAuthDto loginAuthDto, String orderNo);
    method queryUserOrderListWithPage (line 58) | PageInfo queryUserOrderListWithPage(Long userId, BaseQuery baseQuery);
    method queryOrderPayStatus (line 68) | boolean queryOrderPayStatus(Long userId, String orderNo);
    method queryByOrderNo (line 77) | OmcOrder queryByOrderNo(String orderNo);
    method queryByUserIdAndOrderNo (line 87) | OmcOrder queryByUserIdAndOrderNo(Long userId, String orderNo);
    method queryOrderDtoByOrderNo (line 96) | OrderDto queryOrderDtoByOrderNo(String orderNo);
    method queryOrderDtoByUserIdAndOrderNo (line 106) | OrderDto queryOrderDtoByUserIdAndOrderNo(Long userId, String orderNo);
    method getOrderDetail (line 116) | OrderVo getOrderDetail(Long userId, String orderNo);
    method getOrderDetail (line 125) | OrderVo getOrderDetail(String orderNo);
    method queryOrderListWithPage (line 134) | PageInfo queryOrderListWithPage(OrderPageQuery orderPageQuery);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/OmcShippingService.java
  type OmcShippingService (line 26) | public interface OmcShippingService extends IService<OmcShipping> {
    method saveShipping (line 35) | int saveShipping(LoginAuthDto loginAuthDto, OmcShipping shipping);
    method deleteShipping (line 45) | int deleteShipping(Long userId, Integer shippingId);
    method selectByShippingIdUserId (line 55) | OmcShipping selectByShippingIdUserId(Long userId, Long shippingId);
    method queryShippingList (line 64) | List<OmcShipping> queryShippingList(OmcShipping omcShipping);
    method queryShippingListWithPage (line 73) | PageInfo queryShippingListWithPage(OmcShipping omcShipping);
    method queryListWithPageByUserId (line 84) | PageInfo queryListWithPageByUserId(Long userId, int pageNum, int pageS...
    method selectByUserId (line 93) | List<OmcShipping> selectByUserId(Long userId);
    method setDefaultAddress (line 103) | int setDefaultAddress(LoginAuthDto loginAuthDto, Long addressId);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/OpcOssService.java
  type OpcOssService (line 23) | public interface OpcOssService {
    method uploadFile (line 31) | OptUploadFileRespDto uploadFile(OptUploadFileReqDto optUploadFileReqDto);
    method getFileUrl (line 40) | String getFileUrl(OptGetUrlRequest optGetUrlRequest);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/PtcAlipayService.java
  type PtcAlipayService (line 24) | public interface PtcAlipayService {
    method pay (line 34) | Wrapper pay(String orderNo, LoginAuthDto loginAuthDto);
    method aliPayCallback (line 43) | Wrapper aliPayCallback(Map<String, String> params);

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/PtcPayInfoService.java
  type PtcPayInfoService (line 22) | public interface PtcPayInfoService extends IService<PtcPayInfo> {

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/impl/MdcProductServiceImpl.java
  class MdcProductServiceImpl (line 34) | @Slf4j
    method selectById (line 42) | @Override
    method getProductDetail (line 58) | @Override
    method updateProductStockById (line 74) | @Override
    method getMainImage (line 87) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/impl/OmcCartServiceImpl.java
  class OmcCartServiceImpl (line 52) | @Service
    method getCarVo (line 61) | @Override
    method selectCartListByUserId (line 123) | @Override
    method updateCartList (line 134) | @Override
    method saveCart (line 164) | @Override
    method saveCart (line 192) | @Override
    method getCartByUserIdAndProductId (line 217) | @Override
    method deleteProduct (line 227) | @Override
    method selectOrUnSelect (line 238) | @Override
    method updateCart (line 247) | @Override
    method getOrderCartProduct (line 272) | @Override
    method getAllCheckedStatus (line 300) | private boolean getAllCheckedStatus(Long userId) {
    method getCartOrderItem (line 306) | @Override
    method assembleOrderItemVo (line 340) | private OrderItemVo assembleOrderItemVo(OmcOrderDetail orderItem) {

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/impl/OmcOrderDetailServiceImpl.java
  class OmcOrderDetailServiceImpl (line 32) | @Service
    method getListByOrderNoUserId (line 37) | @Override
    method getListByOrderNo (line 45) | @Override
    method batchInsertOrderDetail (line 51) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/impl/OmcOrderServiceImpl.java
  class OmcOrderServiceImpl (line 60) | @Service
    method createOrderDoc (line 77) | @Override
    method cancelOrderDoc (line 125) | @Override
    method queryUserOrderListWithPage (line 143) | @Override
    method queryOrderPayStatus (line 151) | @Override
    method queryByOrderNo (line 160) | @Override
    method queryByUserIdAndOrderNo (line 167) | @Override
    method queryOrderDtoByOrderNo (line 175) | @Override
    method queryOrderDtoByUserIdAndOrderNo (line 185) | @Override
    method getOrderTotalPrice (line 195) | private BigDecimal getOrderTotalPrice(List<OmcOrderDetail> orderItemLi...
    method assembleOrder (line 203) | private OmcOrder assembleOrder(Long userId, Long shippingId, BigDecima...
    method generateOrderNo (line 224) | private long generateOrderNo() {
    method assembleOrderVo (line 228) | private OrderVo assembleOrderVo(OmcOrder order, List<OmcOrderDetail> o...
    method assembleShippingVo (line 266) | private ShippingVo assembleShippingVo(OmcShipping shipping) {
    method assembleOrderItemVo (line 279) | private OrderItemVo assembleOrderItemVo(OmcOrderDetail orderItem) {
    method reduceProductStock (line 296) | private void reduceProductStock(List<OmcOrderDetail> omcOrderDetailLis...
    method cleanCart (line 304) | private void cleanCart(List<OmcCart> cartList) {
    method assembleOrderVoList (line 315) | private List<OrderVo> assembleOrderVoList(List<OmcOrder> orderList, Lo...
    method getOrderDetail (line 330) | @Override
    method getOrderDetail (line 341) | @Override
    method queryOrderListWithPage (line 352) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/impl/OmcShippingServiceImpl.java
  class OmcShippingServiceImpl (line 38) | @Service
    method saveShipping (line 44) | @Override
    method deleteShipping (line 56) | @Override
    method selectByShippingIdUserId (line 62) | @Override
    method queryShippingList (line 67) | @Override
    method queryShippingListWithPage (line 72) | @Override
    method queryListWithPageByUserId (line 87) | @Override
    method selectByUserId (line 96) | @Override
    method setDefaultAddress (line 102) | @Transactional(rollbackFor = Exception.class)
    method setDefault (line 125) | private void setDefault(LoginAuthDto loginAuthDto, Long addressId, int...

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/impl/OpcOssServiceImpl.java
  class OpcOssServiceImpl (line 32) | @Slf4j
    method uploadFile (line 38) | @Override
    method getFileUrl (line 48) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/impl/PtcAlipayServiceImpl.java
  class PtcAlipayServiceImpl (line 66) | @Slf4j
    method pay (line 103) | @Override
    method dumpResponse (line 237) | private void dumpResponse(AlipayResponse response) {
    method aliPayCallback (line 248) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/service/impl/PtcPayInfoServiceImpl.java
  class PtcPayInfoServiceImpl (line 24) | @Service

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/GlobalExceptionHandler.java
  class GlobalExceptionHandler (line 37) | @Slf4j
    method illegalArgumentException (line 56) | @ExceptionHandler(IllegalArgumentException.class)
    method businessException (line 71) | @ExceptionHandler(BusinessException.class)
    method exception (line 87) | @ExceptionHandler(Exception.class)

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/frontend/OmcOrderController.java
  class OmcOrderController (line 37) | @RestController
    method getCartCount (line 52) | @PostMapping(value = "getCartCount")
    method getOrderCartProduct (line 62) | @PostMapping("/getOrderCartProduct")
    method createOrderDoc (line 77) | @PostMapping("createOrderDoc/{shippingId}")
    method cancelOrderDoc (line 96) | @PostMapping("cancelOrderDoc/{orderNo}")
    method queryUserOrderDetailList (line 114) | @PostMapping("queryUserOrderDetailList/{orderNo}")
    method queryUserOrderDetail (line 126) | @PostMapping("queryUserOrderDetail/{orderNo}")
    method queryUserOrderListWithPage (line 142) | @PostMapping("queryUserOrderListWithPage")
    method queryOrderListWithPage (line 154) | @PostMapping("queryOrderListWithPage")
    method queryOrderPayStatus (line 169) | @PostMapping("queryOrderPayStatus/{orderNo}")

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/frontend/OmcShippingController.java
  class OmcShippingController (line 32) | @RestController
    method addShipping (line 47) | @PostMapping("/addShipping")
    method deleteShipping (line 64) | @PostMapping("/deleteShipping/{shippingId}")
    method updateShipping (line 80) | @PostMapping("/updateShipping")
    method setDefaultAddress (line 95) | @PostMapping("/setDefaultAddress/{addressId}")
    method selectShippingById (line 110) | @PostMapping("/selectShippingById/{shippingId}")
    method queryUserShippingListWithPage (line 126) | @PostMapping("queryUserShippingListWithPage")
    method queryShippingListWithPage (line 142) | @PostMapping("queryShippingListWithPage")

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/frontend/PtcPayController.java
  class PtcPayController (line 41) | @RestController
    method createQrCodeImage (line 55) | @PostMapping("/createQrCodeImage/{orderNo}")
    method alipayCallback (line 69) | @PostMapping("/alipayCallback")

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/rpc/MallCartFeignClient.java
  class MallCartFeignClient (line 35) | @RefreshScope
    method updateCartList (line 43) | @Override
    method addProduct (line 51) | @Override
    method updateProduct (line 59) | @Override
    method deleteProduct (line 67) | @Override
    method selectOrUnSelect (line 75) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/rpc/MallCartQueryFeignClient.java
  class MallCartQueryFeignClient (line 34) | @RefreshScope
    method getCartVo (line 42) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/rpc/OmcOrderDetailFeignClient.java
  class OmcOrderDetailFeignClient (line 28) | @RefreshScope

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/rpc/OmcOrderDetailQueryFeignClient.java
  class OmcOrderDetailQueryFeignClient (line 38) | @RefreshScope
    method getListByOrderNoUserId (line 45) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/rpc/OmcOrderFeignClient.java
  class OmcOrderFeignClient (line 35) | @RefreshScope
    method updateOrderById (line 42) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/main/java/com/paascloud/provider/web/rpc/OmcOrderQueryFeignClient.java
  class OmcOrderQueryFeignClient (line 34) | @RefreshScope
    method queryByOrderNo (line 41) | @Override
    method queryByUserIdAndOrderNo (line 49) | @Override

FILE: paascloud-provider/paascloud-provider-omc/src/test/java/com/paascloud/provider/PaasCloudOmcApplicationTests.java
  class PaasCloudOmcApplicationTests (line 21) | @RunWith(SpringRunner.class)
    method contextLoads (line 25) | @Test

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/PaasCloudOpcApplication.java
  class PaasCloudOpcApplication (line 37) | @EnableRetry
    method main (line 52) | public static void main(String[] args) {
    method getKaptchaBean (line 61) | @Bean(name = "captchaProducer")
    method springLiquibase (line 78) | @Bean

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/config/AliyunMqConfiguration.java
  class AliyunMqConfiguration (line 34) | @Slf4j
    method defaultMQPushConsumer (line 54) | @Bean

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/config/AliyunSmsConfiguration.java
  class AliyunSmsConfiguration (line 31) | @Slf4j
    method acsClient (line 45) | @Bean

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/config/OpcWebMvcConfig.java
  class OpcWebMvcConfig (line 34) | @Configuration
    method addResourceHandlers (line 42) | @Override
    method addInterceptors (line 53) | @Override
    method configureMessageConverters (line 61) | @Override

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/config/QiniuOssConfiguration.java
  class QiniuOssConfiguration (line 30) | @Slf4j
    method auth (line 42) | @Bean
    method uploadManager (line 54) | @Bean
    method bucketManager (line 68) | @Bean

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/config/ResourceServerConfig.java
  class ResourceServerConfig (line 26) | @Configuration
    method configure (line 29) | @Override

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/consumer/MdcTopicConsumer.java
  class MdcTopicConsumer (line 33) | @Slf4j
    method handlerSendSmsTopic (line 48) | @Transactional(rollbackFor = Exception.class)

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/consumer/OptSendEmailTopicConsumer.java
  class OptSendEmailTopicConsumer (line 29) | @Slf4j
    method handlerSendEmailTopic (line 44) | public void handlerSendEmailTopic(String body, String topicName, Strin...

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/consumer/OptSendSmsTopicConsumer.java
  class OptSendSmsTopicConsumer (line 29) | @Slf4j
    method handlerSendSmsTopic (line 44) | public void handlerSendSmsTopic(String body, String topicName, String ...

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/consumer/listener/OptPushMessageListener.java
  class OptPushMessageListener (line 40) | @Slf4j
    method consumeMessage (line 64) | @Override

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/mapper/OpcSmsSettingMapper.java
  type OpcSmsSettingMapper (line 24) | @Mapper

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/mapper/OptAttachmentMapper.java
  type OptAttachmentMapper (line 29) | @Mapper
    method queryAttachment (line 39) | List<OptAttachmentRespDto> queryAttachment(OptAttachmentReqDto optAtta...
    method queryAttachmentByRefNo (line 48) | List<Long> queryAttachmentByRefNo(@Param("refNo") String refNo);
    method deleteByIdList (line 57) | int deleteByIdList(@Param("idList") List<Long> attachmentIdList);
    method listExpireFile (line 64) | List<OptAttachment> listExpireFile();

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/model/domain/OpcSmsSetting.java
  class OpcSmsSetting (line 27) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/model/domain/OptAttachment.java
  class OptAttachment (line 26) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/model/dto/attachment/OptAttachmentReqDto.java
  class OptAttachmentReqDto (line 25) | @Data

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/model/dto/mail/MailEntity.java
  class MailEntity (line 30) | @Slf4j
    method MailEntity (line 69) | public MailEntity(String subject, String text, Set<String> to) {
    method MailEntity (line 84) | public MailEntity(String subject, String text, Set<String> to, Set<Str...
    method createSimpleMailMessage (line 101) | public static SimpleMailMessage createSimpleMailMessage(String subject...
    method setToArray (line 113) | private static String[] setToArray(Set<String> to) {

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/OpcAttachmentService.java
  type OpcAttachmentService (line 31) | public interface OpcAttachmentService extends IService<OptAttachment> {
    method uploadFile (line 42) | List<OptUploadFileRespDto> uploadFile(MultipartHttpServletRequest mult...
    method queryAttachmentById (line 51) | OptAttachmentRespDto queryAttachmentById(Long id);
    method queryAttachmentListByRefNo (line 60) | List<OptAttachmentRespDto> queryAttachmentListByRefNo(String refNo);
    method queryAttachmentByRefNo (line 69) | List<Long> queryAttachmentByRefNo(String refNo);
    method deleteFile (line 82) | int deleteFile(String fileName, String bucketName, Long attachmentId) ...
    method deleteFile (line 93) | int deleteFile(Long attachmentId) throws QiniuException;
    method saveAttachment (line 101) | void saveAttachment(OptAttachment optAttachment, LoginAuthDto loginAut...
    method rpcUploadFile (line 112) | OptUploadFileRespDto rpcUploadFile(OptUploadFileReqDto optUploadFileRe...
    method rpcGetFileUrl (line 121) | String rpcGetFileUrl(OptGetUrlRequest optGetUrlRequest);
    method getById (line 130) | OptAttachment getById(Long attachmentId);
    method uploadFile (line 146) | OptUploadFileRespDto uploadFile(byte[] uploadBytes, String fileName, S...
    method updateAttachment (line 155) | void updateAttachment(UpdateAttachmentDto attachmentDto) throws QiniuE...
    method listFileUrl (line 164) | List<ElementImgUrlDto> listFileUrl(OptBatchGetUrlRequest urlRequest);
    method listByRefNo (line 173) | List<OptAttachment> listByRefNo(final String refNo);
    method listExpireFile (line 180) | List<OptAttachment> listExpireFile();

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/OpcOssService.java
  type OpcOssService (line 25) | public interface OpcOssService {
    method deleteFile (line 35) | void deleteFile(String fileName, String bucketName) throws QiniuExcept...
    method batchDeleteFile (line 47) | Set<String> batchDeleteFile(String[] fileNameList, String bucketName) ...
    method getFileUrl (line 58) | String getFileUrl(String domainOfBucket, String fileName, Long expires);
    method getFileUrl (line 68) | String getFileUrl(String domainOfBucket, String fileName);
    method uploadFile (line 82) | OptUploadFileRespDto uploadFile(byte[] uploadBytes, String fileName, S...

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/OptFreeMarkerService.java
  type OptFreeMarkerService (line 25) | public interface OptFreeMarkerService {
    method getTemplate (line 38) | String getTemplate(Map<String, Object> map, String templateLocation) t...

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/OptSendMailService.java
  type OptSendMailService (line 22) | public interface OptSendMailService {
    method sendSimpleMail (line 32) | int sendSimpleMail(String subject, String text, Set<String> to);
    method sendTemplateMail (line 43) | int sendTemplateMail(String subject, String text, Set<String> to);
    method sendTemplateMail (line 55) | int sendTemplateMail(Map<String, Object> model, String templateLocatio...

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/OptSmsService.java
  type OptSmsService (line 22) | public interface OptSmsService {
    method sendSms (line 30) | SendSmsResponse sendSms(SendSmsRequest sendSmsRequest);

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/impl/OptAttachmentServiceImpl.java
  class OptAttachmentServiceImpl (line 52) | @Service
    method uploadFile (line 61) | @Override
    method queryAttachmentById (line 100) | @Override
    method queryAttachmentListByRefNo (line 109) | @Override
    method queryAttachmentByRefNo (line 117) | @Override
    method deleteFile (line 122) | @Override
    method deleteFile (line 131) | @Override
    method saveAttachment (line 141) | @Override
    method rpcUploadFile (line 154) | @Override
    method rpcGetFileUrl (line 198) | @Override
    method getUrl (line 213) | private String getUrl(final Long expires, final boolean encrypt, final...
    method getById (line 224) | @Override
    method uploadFile (line 234) | @Override
    method updateAttachment (line 241) | @Override
    method listFileUrl (line 263) | @Override
    method listByRefNo (line 283) | @Override
    method listExpireFile (line 290) | @Override
    method insertAttachment (line 295) | private void insertAttachment(String fileType, String bucketName, Logi...

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/impl/OptFreeMarkerServiceImpl.java
  class OptFreeMarkerServiceImpl (line 32) | @Service
    method getTemplate (line 38) | @Override

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/impl/OptQiniuOssServiceImpl.java
  class OptQiniuOssServiceImpl (line 54) | @Slf4j
    method deleteFile (line 70) | @Override
    method batchDeleteFile (line 83) | @Override
    method getFileUrl (line 106) | @Override
    method getFileUrl (line 122) | @Override
    method uploadFile (line 127) | @Override
    method getUpToken (line 164) | private String getUpToken(String bucketName) {
    method checkFileSize (line 168) | private void checkFileSize(byte[] uploadFileByte) {

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/impl/OptSendMailServiceImpl.java
  class OptSendMailServiceImpl (line 44) | @Slf4j
    method sendSimpleMail (line 58) | @Override
    method sendTemplateMail (line 73) | @Override
    method getMimeMessage (line 87) | private MimeMessage getMimeMessage(String subject, String text, Set<St...
    method sendTemplateMail (line 107) | @Override
    method setToArray (line 122) | private String[] setToArray(Set<String> to) {

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/service/impl/OptSmsServiceImpl.java
  class OptSmsServiceImpl (line 36) | @Slf4j
    method sendSms (line 46) | @Override
    method checkParam (line 68) | private void checkParam(SendSmsRequest sendSmsRequest) {

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/utils/CheckFileUtil.java
  class CheckFileUtil (line 29) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method checkFileType (line 40) | public static void checkFileType(String fileType, String inputStreamFi...
    method getVideoFileType (line 63) | private static void getVideoFileType() {
    method getPicFileType (line 81) | private static void getPicFileType() {
    method getAudioFileType (line 95) | private static void getAudioFileType() {
    type FileTypeEnum (line 112) | public enum FileTypeEnum {
      method FileTypeEnum (line 136) | FileTypeEnum(String type, String name) {
      method getType (line 146) | public String getType() {
      method getName (line 155) | public String getName() {
      method getName (line 166) | public static String getName(String type) {
      method getTypes (line 180) | public static List<String> getTypes() {
      method getList (line 193) | public static List<FileTypeEnum> getList() {

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/utils/GaoDeUtil.java
  class GaoDeUtil (line 28) | @Slf4j
    method getCityByIpAddr (line 39) | public static GaodeLocation getCityByIpAddr(String ipAddr) {

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/web/GlobalExceptionHandler.java
  class GlobalExceptionHandler (line 38) | @Slf4j
    method illegalArgumentException (line 57) | @ExceptionHandler(IllegalArgumentException.class)
    method businessException (line 72) | @ExceptionHandler(BusinessException.class)
    method exception (line 88) | @ExceptionHandler(Exception.class)
    method multipartException (line 100) | @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/web/frontend/OpcFileController.java
  class OpcFileController (line 47) | @RestController
    method uploadFile (line 65) | @PostMapping(consumes = "multipart/form-data", value = "/uploadFile")
    method uploadPictureWithWangEditor (line 93) | @PostMapping(consumes = "multipart/form-data", value = "/uploadPicture...
    method queryAttachment (line 124) | @PostMapping(value = "/queryAttachmentById/{id}")
    method queryAttachmentListByRefNo (line 140) | @PostMapping(value = "/queryAttachmentListByRefNo/{refNo}")
    method deleteAttachment (line 157) | @PostMapping(value = "/deleteAttachment/{attachmentId}")

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/web/rpc/DingtalkFeignClient.java
  class DingtalkFeignClient (line 43) | @RestController
    method sendChatRobotMsg (line 47) | @Override
    method checkChatReBotMsg (line 84) | private void checkChatReBotMsg(ChatRobotMsgDto chatRobotMsgDto) {

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/web/rpc/OpcAttachmentFeignClient.java
  class OpcAttachmentFeignClient (line 41) | @RestController
    method uploadFile (line 50) | @Override
    method getFileUrl (line 67) | @Override
    method listFileUrl (line 84) | @Override
    method handleFileUpload (line 91) | @Override
    method deleteExpireFile (line 96) | @Override

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/web/rpc/OpcGaodeFeignClient.java
  class OpcGaodeFeignClient (line 31) | @RestController
    method getLocationByIpAddr (line 35) | @Override

FILE: paascloud-provider/paascloud-provider-opc/src/main/java/com/paascloud/provider/web/rpc/OpcMqMessageFeignClient.java
  class OpcMqMessageFeignClient (line 38) | @RestController
    method queryMessageKeyList (line 44) | @Override
    method queryMessageListWithPage (line 51) | @Override

FILE: paascloud-provider/paascloud-provider-opc/src/test/java/com/paascloud/provider/PaasCloudOmcApplicationTests.java
  class PaasCloudOmcApplicationTests (line 21) | @RunWith(SpringRunner.class)
    method contextLoads (line 25) | @Test

FILE: paascloud-provider/paascloud-provider-opc/src/test/java/com/paascloud/provider/aliyun/MqProducerTest.java
  class MqProducerTest (line 17) | public class MqProducerTest extends PaasCloudOmcApplicationTests {

FILE: paascloud-provider/paascloud-provider-opc/src/test/java/com/paascloud/provider/aliyun/OptSmsServiceTest.java
  class OptSmsServiceTest (line 22) | public class OptSmsServiceTest extends PaasCloudOmcApplicationTests {
    method sendMessageProducerTest (line 27) | @Test

FILE: paascloud-provider/paascloud-provider-opc/src/test/java/com/paascloud/provider/mail/MailTest.java
  class MailTest (line 26) | @Slf4j
    method sendSimpleMailText (line 32) | @Test
    method getTemplateText (line 43) | @Test
    method sendTemplateMailTest (line 55) | @Test
    method sendTemplateMailTest2 (line 74) | @Test

FILE: paascloud-provider/paascloud-provider-opc/src/test/java/com/paascloud/provider/qiniu/OpcOssServiceTest.java
  class OpcOssServiceTest (line 25) | public class OpcOssServiceTest extends PaasCloudOmcApplicationTests {
    method uploadFileTest (line 32) | @Test
    method deleteFileTest (line 43) | @Test
    method batchDeleteFileTest (line 50) | @Test
    method getFileUrlTest (line 59) | @Test
    method getFileUrlTest2 (line 66) | @Test

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/PaasCloudTpcApplication.java
  class PaasCloudTpcApplication (line 32) | @EnableRetry
    method main (line 46) | public static void main(String[] args) {
    method springLiquibase (line 50) | @Bean

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/config/MqBeanInitRunner.java
  class MqBeanInitRunner (line 40) | @Component
    method run (line 58) | @Override
    method initMqListener (line 79) | private void initMqListener(CoordinatorRegistryCenter coordinatorRegis...
    method initProducerListener (line 86) | private void initProducerListener(CuratorFramework cf) throws Exception {
    method initConsumerListener (line 92) | private void initConsumerListener(CuratorFramework cf) throws Exception {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/config/ResourceServerConfig.java
  class ResourceServerConfig (line 26) | @Configuration
    method configure (line 29) | @Override

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/config/TpcWebMvcConfig.java
  class TpcWebMvcConfig (line 34) | @Configuration
    method addResourceHandlers (line 42) | @Override
    method addInterceptors (line 53) | @Override
    method configureMessageConverters (line 61) | @Override

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/job/dataflow/HandleSendingMessageJob.java
  class HandleSendingMessageJob (line 40) | @Component
    method fetchJobData (line 63) | @Override
    method processJobData (line 80) | @Override

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/job/dataflow/HandleWaitingConfirmMessageJob.java
  class HandleWaitingConfirmMessageJob (line 36) | @Slf4j
    method fetchJobData (line 55) | @Override
    method processJobData (line 73) | @Override

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/job/listener/HandleUserTokenJobListener.java
  class HandleUserTokenJobListener (line 30) | @Slf4j
    method beforeJobExecuted (line 46) | @Override
    method afterJobExecuted (line 57) | @Override
    method sendDingTalk (line 66) | private void sendDingTalk(String message) {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/job/simple/DeleteRpcConsumerMessageJob.java
  class DeleteRpcConsumerMessageJob (line 33) | @Slf4j
    method execute (line 46) | @Override

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/job/simple/DeleteRpcExpireFileJob.java
  class DeleteRpcExpireFileJob (line 27) | @Slf4j
    method execute (line 39) | @Override

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/job/simple/DeleteRpcProducerMessageJob.java
  class DeleteRpcProducerMessageJob (line 32) | @Slf4j
    method execute (line 46) | @Override

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/job/simple/HandleUserJwtTokenJob.java
  class HandleUserJwtTokenJob (line 27) | @Slf4j
    method execute (line 38) | @Override

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/listener/MqConsumerChangeListener.java
  class MqConsumerChangeListener (line 36) | @Slf4j
    method childEvent (line 48) | @Override
    method getNumChildrenCount (line 93) | private int getNumChildrenCount(CuratorFramework client, final String ...
    method getDirectly (line 105) | private String getDirectly(CuratorFramework client, final String key) {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/listener/MqProducerChangeListener.java
  class MqProducerChangeListener (line 36) | @Component
    method childEvent (line 48) | @Override
    method getNumChildren (line 94) | private int getNumChildren(CuratorFramework client, final String key) {
    method getDirectly (line 105) | private String getDirectly(CuratorFramework client, final String key) {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mapper/TpcJobTaskMapper.java
  type TpcJobTaskMapper (line 24) | @Mapper

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mapper/TpcMqConfirmMapper.java
  type TpcMqConfirmMapper (line 27) | @Component
    method confirmReceiveMessage (line 35) | void confirmReceiveMessage(@Param("cid") Long confirmId);
    method confirmConsumedMessage (line 42) | void confirmConsumedMessage(@Param("cid") Long confirmId);
    method getIdMqConfirm (line 52) | Long getIdMqConfirm(@Param("cid") String cid, @Param("messageKey") Str...
    method batchCreateMqConfirm (line 61) | int batchCreateMqConfirm(@Param("tpcMqConfirmList") List<TpcMqConfirm>...
    method selectUnConsumedCount (line 70) | int selectUnConsumedCount(@Param("messageKey") String messageKey);

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mapper/TpcMqConsumerMapper.java
  type TpcMqConsumerMapper (line 29) | @Mapper
    method listTpcMqConsumerVoWithPage (line 39) | List<TpcMqConsumerVo> listTpcMqConsumerVoWithPage(TpcMqConsumer tpcMqC...
    method listTpcMqSubscribeVoWithPage (line 48) | List<TpcMqSubscribeVo> listTpcMqSubscribeVoWithPage(TpcMqConsumer tpcM...
    method deleteSubscribeTagByTagId (line 57) | int deleteSubscribeTagByTagId(@Param("tagId") Long tagId);
    method listSubscribeIdByConsumerId (line 66) | List<Long> listSubscribeIdByConsumerId(@Param("consumerId") Long consu...
    method deleteSubscribeByConsumerId (line 75) | int deleteSubscribeByConsumerId(@Param("consumerId") Long consumerId);
    method deleteSubscribeTagBySubscribeIdList (line 84) | int deleteSubscribeTagBySubscribeIdList(@Param("subscribeIdList") List...
    method listSubscribeVo (line 93) | List<TpcMqSubscribeVo> listSubscribeVo(@Param("subscribeIdList") List<...
    method listConsumerGroupByTopic (line 102) | List<String> listConsumerGroupByTopic(@Param("topic") String topic);
    method getByCid (line 111) | TpcMqConsumer getByCid(String consumerGroup);

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mapper/TpcMqMessageMapper.java
  type TpcMqMessageMapper (line 30) | @Component
    method getByMessageKey (line 40) | TpcMqMessage getByMessageKey(@Param("messageKey") String messageKey);
    method deleteMessageByMessageKey (line 49) | int deleteMessageByMessageKey(@Param("messageKey") String messageKey);
    method updateAlreadyDeadByMessageId (line 58) | int updateAlreadyDeadByMessageId(@Param("messageId") Long messageId);
    method addTaskExeCountById (line 67) | int addTaskExeCountById(@Param("messageId") Long messageId);
    method queryWaitingConfirmMessageKeyList (line 76) | List<String> queryWaitingConfirmMessageKeyList(MessageTaskQueryDto que...
    method batchDeleteMessage (line 85) | int batchDeleteMessage(@Param("messageKeyList") List<String> deleteKey...
    method updateMqMessageTaskStatus (line 94) | int updateMqMessageTaskStatus(TpcMqMessage message);
    method listMessageForWaitingProcess (line 103) | List<TpcMqMessage> listMessageForWaitingProcess(MessageTaskQueryDto qu...
    method listReliableMessageVoWithPage (line 112) | List<TpcMessageVo> listReliableMessageVoWithPage(MessageQueryDto messa...
    method listReliableMessageVo (line 121) | List<TpcMessageVo> listReliableMessageVo(@Param("messageIdList") List<...

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mapper/TpcMqProducerMapper.java
  type TpcMqProducerMapper (line 29) | @Mapper
    method listTpcMqProducerVoWithPage (line 40) | List<TpcMqProducerVo> listTpcMqProducerVoWithPage(TpcMqProducer tpcMqP...
    method listTpcMqPublishVoWithPage (line 49) | List<TpcMqPublishVo> listTpcMqPublishVoWithPage(TpcMqProducer tpcMqPro...
    method deletePublishByProducerId (line 58) | int deletePublishByProducerId(@Param("producerId") Long producerId);
    method getByPid (line 67) | TpcMqProducer getByPid(@Param("pid") String producerGroup);

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mapper/TpcMqSubscribeTagMapper.java
  type TpcMqSubscribeTagMapper (line 24) | @Mapper

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mapper/TpcMqTagMapper.java
  type TpcMqTagMapper (line 27) | @Mapper
    method listTpcMqTagVoWithPage (line 37) | List<TpcMqTagVo> listTpcMqTagVoWithPage(TpcMqTag tpcMqTag);

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mapper/TpcMqTopicMapper.java
  type TpcMqTopicMapper (line 27) | @Mapper
    method listTpcMqTopicVoWithPage (line 37) | List<TpcMqTopicVo> listTpcMqTopicVoWithPage(TpcMqTopic tpcMqTopic);

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/domain/TpcJobTask.java
  class TpcJobTask (line 26) | @Data
    method addSendTimes (line 103) | public void addSendTimes() {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/domain/TpcMqConfirm.java
  class TpcMqConfirm (line 26) | @Data
    method TpcMqConfirm (line 92) | public TpcMqConfirm(final Long id, final Long messageId, final String ...

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/domain/TpcMqConsumer.java
  class TpcMqConsumer (line 27) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/domain/TpcMqMessage.java
  class TpcMqMessage (line 27) | @Data

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/domain/TpcMqProducer.java
  class TpcMqProducer (line 27) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/domain/TpcMqSubscribeTag.java
  class TpcMqSubscribeTag (line 28) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/domain/TpcMqTag.java
  class TpcMqTag (line 27) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/domain/TpcMqTopic.java
  class TpcMqTopic (line 27) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/dto/MessageTaskQueryDto.java
  class MessageTaskQueryDto (line 22) | @Data

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/enums/JobTaskTypeEnum.java
  type JobTaskTypeEnum (line 20) | public enum JobTaskTypeEnum {
    method JobTaskTypeEnum (line 36) | JobTaskTypeEnum(String type, String value) {
    method type (line 41) | public String type() {
    method value (line 45) | public String value() {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/enums/MqConfirmStatusEnum.java
  type MqConfirmStatusEnum (line 19) | public enum MqConfirmStatusEnum {
    method MqConfirmStatusEnum (line 39) | MqConfirmStatusEnum(int confirmStatus, String value) {
    method confirmStatus (line 49) | public int confirmStatus() {
    method value (line 58) | public String value() {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/enums/MqSendStatusEnum.java
  type MqSendStatusEnum (line 19) | public enum MqSendStatusEnum {
    method MqSendStatusEnum (line 39) | MqSendStatusEnum(int sendStatus, String value) {
    method sendStatus (line 49) | public int sendStatus() {
    method value (line 58) | public String value() {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/enums/PIDEnum.java
  type PIDEnum (line 20) | public enum PIDEnum {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/vo/TpcMessageVo.java
  class TpcMessageVo (line 26) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/vo/TpcMqConfirmVo.java
  class TpcMqConfirmVo (line 24) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/vo/TpcMqConsumerVo.java
  class TpcMqConsumerVo (line 24) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/vo/TpcMqProducerVo.java
  class TpcMqProducerVo (line 24) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/vo/TpcMqPublishVo.java
  class TpcMqPublishVo (line 23) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/vo/TpcMqSubscribeVo.java
  class TpcMqSubscribeVo (line 25) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/vo/TpcMqTagVo.java
  class TpcMqTagVo (line 23) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/model/vo/TpcMqTopicVo.java
  class TpcMqTopicVo (line 25) | @EqualsAndHashCode(callSuper = true)

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/mq/RocketMqProducer.java
  class RocketMqProducer (line 31) | @Slf4j
    method sendSimpleMessage (line 37) | public static SendResult sendSimpleMessage(String body, String topic, ...
    method retrySendMessage (line 49) | private static SendResult retrySendMessage(String pid, Message msg) {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/service/MdcRpcService.java
  class MdcRpcService (line 31) | @Slf4j
    method queryMessageListWithPage (line 37) | public Wrapper<PageInfo<MqMessageVo>> queryMessageListWithPage(final M...

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/service/MqProducerBeanFactory.java
  class MqProducerBeanFactory (line 29) | public class MqProducerBeanFactory {
    method MqProducerBeanFactory (line 31) | private MqProducerBeanFactory() {
    method getBean (line 45) | public static DefaultMQProducer getBean(String pid) {
    method buildProducerBean (line 55) | public static void buildProducerBean(ReliableMessageRegisterDto produc...
    method putCid (line 72) | public static void putCid(String cid) {
    method rmCid (line 76) | public static void rmCid(String cid) {
    method putPid (line 80) | public static void putPid(final String pid) {
    method rmPid (line 84) | public static void rmPid(String pid) {

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/service/OmcRpcService.java
  class OmcRpcService (line 21) | @Service

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/service/OpcRpcService.java
  class OpcRpcService (line 32) | @Slf4j
    method sendChatRobotMsg (line 50) | public boolean sendChatRobotMsg(ChatRobotMsgDto chatRobotMsgDto) {
    method deleteExpireFile (line 58) | public void deleteExpireFile() {
    method queryMessageListWithPage (line 62) | public Wrapper<PageInfo<MqMessageVo>> queryMessageListWithPage(final M...

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/service/TpcMqConsumerService.java
  type TpcMqConsumerService (line 26) | public interface TpcMqConsumerService extends IService<TpcMqConsumer> {
    method listConsumerVoWithPage (line 34) | List<TpcMqConsumerVo> listConsumerVoWithPage(TpcMqConsumer tpcMqConsum...
    method listSubscribeVoWithPage (line 43) | List<TpcMqSubscribeVo> listSubscribeVoWithPage(TpcMqConsumer tpcMqCons...
    method deleteSubscribeTagByTagId (line 52) | int deleteSubscribeTagByTagId(Long tagId);
    method deleteConsumerById (line 61) | int deleteConsumerById(Long id);
    method listSubscribeVo (line 70) | List<TpcMqSubscribeVo> listSubscribeVo(List<Long> subscribeIdList);
    method listConsumerGroupByTopic (line 79) | List<String> listConsumerGroupByTopic(String topic);
    method updateOnLineStatusByCid (line 86) | void updateOnLineStatusByCid(String consumerGroup);
    method updateOffLineStatusByCid (line 93) | void updateOffLineStatusByCid(String consumerGroup);

FILE: paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/service/TpcMqMessageService.java
  type TpcMqMessageService (line 28) | public interface TpcMqMessageService {
    method saveMessageWaitingConfirm (line 34) | void saveMessageWaitingConfirm(TpcMqMessageDto mqMessageDto);
    method confirmAndSendMessage (line 42) | void confirmAndSendMessage(String messageKey);
    method saveAndSend
Condensed preview — 893 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,039K chars).
[
  {
    "path": ".gitignore",
    "chars": 338,
    "preview": "# Compiled class file\n*.class\n\n# Log file\n*.log\n\n# BlueJ files\n*.ctxt\n\n# Mobile Tools for Java (J2ME)\n.mtj.tmp/\n\n# Packa"
  },
  {
    "path": "LICENSE",
    "chars": 10258,
    "preview": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AN"
  },
  {
    "path": "README.md",
    "chars": 4078,
    "preview": "## Spring Cloud 实战项目\n\n### 项目介绍\n```\n功能点:\n    模拟商城,完整的购物流程、后端运营平台对前端业务的支撑,和对项目的运维,有各项的监控指标和运维指标。\n技术点:\n       核心技术为springcl"
  },
  {
    "path": "paascloud-common/paascloud-common-base/pom.xml",
    "chars": 943,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/AliyunMqTopicConstants.java",
    "chars": 7461,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AliyunMqTopicConsta"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/AliyunSmsConstants.java",
    "chars": 2593,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AliyunSmsConstants."
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/constant/GlobalConstant.java",
    "chars": 5321,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:GlobalConstant.java"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseQuery.java",
    "chars": 691,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BaseQuery.java\n * 创"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseTree.java",
    "chars": 821,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BaseTree.java\n * 创建"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/BaseVo.java",
    "chars": 1262,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BaseVo.java\n * 创建人:"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/CheckValidDto.java",
    "chars": 822,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:CheckValidDto.java\n"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/GaodeBaseDto.java",
    "chars": 887,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:GaodeBaseDto.java\n "
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/JobParameter.java",
    "chars": 1465,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:JobParameter.java\n "
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/KvDto.java",
    "chars": 853,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:KvDto.java\n * 创建人:刘"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/LoginAuthDto.java",
    "chars": 1401,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:LoginAuthDto.java\n "
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MessageQueryDto.java",
    "chars": 1784,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:MessageQueryDto.jav"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MqMessageDto.java",
    "chars": 711,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:MqMessageDto.java\n "
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/MqMessageVo.java",
    "chars": 995,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:MqMessageVo.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/ShardingContextDto.java",
    "chars": 793,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ShardingContextDto."
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/UpdateStatusDto.java",
    "chars": 828,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:UpdateStatusDto.jav"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/dto/UserTokenDto.java",
    "chars": 1839,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:UserTokenDto.java\n "
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/enums/ErrorCodeEnum.java",
    "chars": 12747,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ErrorCodeEnum.java\n"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/BooleanParseException.java",
    "chars": 1110,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BooleanParseExcepti"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/BusinessException.java",
    "chars": 1365,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BusinessException.j"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ConfigException.java",
    "chars": 749,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ConfigException.jav"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ImportException.java",
    "chars": 667,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ImportException.jav"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/java/com/paascloud/base/exception/ReferenceModelNullException.java",
    "chars": 728,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ReferenceModelNullE"
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/main/resources/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "paascloud-common/paascloud-common-base/src/test/java/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "paascloud-common/paascloud-common-config/pom.xml",
    "chars": 1112,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/PaascloudCoreConfig.java",
    "chars": 702,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PaascloudCoreConfig"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/AliyunProperties.java",
    "chars": 1454,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AliyunProperties.ja"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/AsyncTaskProperties.java",
    "chars": 671,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AsyncTaskProperties"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/GaodeProperties.java",
    "chars": 512,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:GaodeProperties.jav"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/JobProperties.java",
    "chars": 1959,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:JobProperties.java\n"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/PaascloudProperties.java",
    "chars": 1140,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PaascloudProperties"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/QiniuProperties.java",
    "chars": 811,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QiniuProperties.jav"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/ReliableMessageProperties.java",
    "chars": 457,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ReliableMessageProp"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/SwaggerProperties.java",
    "chars": 825,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SwaggerProperties.j"
  },
  {
    "path": "paascloud-common/paascloud-common-config/src/main/java/com/paascloud/config/properties/ZookeeperProperties.java",
    "chars": 1105,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ZookeeperProperties"
  },
  {
    "path": "paascloud-common/paascloud-common-core/pom.xml",
    "chars": 3698,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/LogAnnotation.java",
    "chars": 888,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:LogAnnotation.java\n"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/NotDisplaySql.java",
    "chars": 557,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:NotDisplaySql.java\n"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/OperationLogDto.java",
    "chars": 1861,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:OperationLogDto.jav"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/annotation/ValidateAnnotation.java",
    "chars": 672,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ValidateAnnotation."
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/BindingResultAop.java",
    "chars": 2673,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BindingResultAop.ja"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/LogAspect.java",
    "chars": 6097,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:LogAspect.java\n * 创"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/aspect/NotDisplaySqlAspect.java",
    "chars": 1165,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:NotDisplaySqlAspect"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/AsyncTaskExecutorConfiguration.java",
    "chars": 2167,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AsyncTaskExecutorCo"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/CoreConfiguration.java",
    "chars": 1417,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:CoreConfiguration.j"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/ExceptionHandlingAsyncTaskExecutor.java",
    "chars": 2896,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ExceptionHandlingAs"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/PcObjectMapper.java",
    "chars": 1849,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PcObjectMapper.java"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/RedisConfiguration.java",
    "chars": 2709,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:RedisConfiguration."
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/SwaggerConfiguration.java",
    "chars": 3545,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SwaggerConfiguratio"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/config/ZookeeperInitRunner.java",
    "chars": 1515,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ZookeeperInitRunner"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/enums/LogTypeEnum.java",
    "chars": 1942,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:LogTypeEnum.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/CoreHeaderInterceptor.java",
    "chars": 2415,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:CoreHeaderIntercept"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/CoreHttpRequestInterceptor.java",
    "chars": 1718,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:CoreHttpRequestInte"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/SqlLogInterceptor.java",
    "chars": 5746,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SqlLogInterceptor.j"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/interceptor/TokenInterceptor.java",
    "chars": 4717,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:TokenInterceptor.ja"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mq/MqMessage.java",
    "chars": 5005,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:MqMessage.java\n * 创"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mybatis/BaseEntity.java",
    "chars": 2352,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BaseEntity.java\n * "
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/mybatis/MyMapper.java",
    "chars": 561,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:MyMapper.java\n * 创建"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/AbstractTreeService.java",
    "chars": 2426,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AbstractTreeService"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/BaseController.java",
    "chars": 2568,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BaseController.java"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/BaseService.java",
    "chars": 4866,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BaseService.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/IService.java",
    "chars": 3510,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:IService.java\n * 创建"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/ITree.java",
    "chars": 1219,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ITree.java\n * 创建人:刘"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/SpringContextHolder.java",
    "chars": 2370,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SpringContextHolder"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/support/TreeUtils.java",
    "chars": 563,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:TreeUtils.java\n * 创"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/CustomSystemUtil.java",
    "chars": 1710,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:CustomSystemUtil.ja"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/RequestUtil.java",
    "chars": 4974,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:RequestUtil.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/SessionRegistryCenterConfiguration.java",
    "chars": 1058,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SessionRegistryCent"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/java/com/paascloud/core/utils/TokenCache.java",
    "chars": 1645,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:TokenCache.java\n * "
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/main/resources/META-INF/spring.factories",
    "chars": 125,
    "preview": "# Auto Configure\norg.springframework.boot.autoconfigure.EnableAutoConfiguration=\\\ncom.paascloud.core.config.CoreConfigur"
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/test/java/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "paascloud-common/paascloud-common-core/src/test/java/IdTest.java",
    "chars": 1502,
    "preview": "import com.paascloud.core.generator.IncrementIdGenerator;\nimport com.paascloud.core.generator.UniqueIdGenerator;\nimport "
  },
  {
    "path": "paascloud-common/paascloud-common-util/pom.xml",
    "chars": 2269,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/BigDecimalUtil.java",
    "chars": 1789,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BigDecimalUtil.java"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/Collections3.java",
    "chars": 1561,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:Collections3.java\n "
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/DateUtil.java",
    "chars": 897,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:DateUtil.java\n * 创建"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/HttpAesUtil.java",
    "chars": 2961,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:HttpAesUtil.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/JacksonUtil.java",
    "chars": 5527,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:JacksonUtil.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/PubUtils.java",
    "chars": 3414,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PubUtils.java\n * 创建"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/PublicUtil.java",
    "chars": 1608,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PublicUtil.java\n * "
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/RandomUtil.java",
    "chars": 1748,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:RandomUtil.java\n * "
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/RecursionTreeUtil.java",
    "chars": 1784,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:RecursionTreeUtil.j"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/RedisKeyUtil.java",
    "chars": 3543,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:RedisKeyUtil.java\n "
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/ThreadLocalMap.java",
    "chars": 1895,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ThreadLocalMap.java"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/TreeNode.java",
    "chars": 655,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:TreeNode.java\n * 创建"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/UrlUtil.java",
    "chars": 1143,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:UrlUtil.java\n * 创建人"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/ValidateUtil.java",
    "chars": 1074,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ValidateUtil.java\n "
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/annotation/NoNeedAccessAuthentication.java",
    "chars": 691,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:NoNeedAccessAuthent"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/exception/HttpAesException.java",
    "chars": 765,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:HttpAesException.ja"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/helper/LongJsonDeserializer.java",
    "chars": 1254,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:LongJsonDeserialize"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/helper/LongJsonSerializer.java",
    "chars": 1122,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:LongJsonSerializer."
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/page/PageUtil.java",
    "chars": 1393,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PageUtil.java\n * 创建"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/page/Query.java",
    "chars": 622,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:Query.java\n * 创建人:刘"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/wrapper/PageWrapMapper.java",
    "chars": 2613,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PageWrapMapper.java"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/wrapper/PageWrapper.java",
    "chars": 1933,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PageWrapper.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/wrapper/WrapMapper.java",
    "chars": 2788,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WrapMapper.java\n * "
  },
  {
    "path": "paascloud-common/paascloud-common-util/src/main/java/com/paascloud/wrapper/Wrapper.java",
    "chars": 2769,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:Wrapper.java\n * 创建人"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/pom.xml",
    "chars": 1765,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/generator/IdGenerator.java",
    "chars": 485,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:IdGenerator.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/generator/IncrementIdGenerator.java",
    "chars": 2269,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:IncrementIdGenerato"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/generator/UniqueIdGenerator.java",
    "chars": 3267,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:UniqueIdGenerator.j"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/RegistryCenterFactory.java",
    "chars": 2923,
    "preview": "package com.paascloud.core.registry;\n\nimport com.google.common.base.Charsets;\nimport com.google.common.hash.HashCode;\nim"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/base/CoordinatorRegistryCenter.java",
    "chars": 1595,
    "preview": "package com.paascloud.core.registry.base;\n\nimport java.util.List;\n\n/**\n * 用于协调分布式服务的注册中心.\n *\n * @author zhangliang\n */\np"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/base/RegisterDto.java",
    "chars": 605,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:RegisterDto.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/base/RegistryCenter.java",
    "chars": 1560,
    "preview": "package com.paascloud.core.registry.base;\n\nimport org.apache.curator.framework.recipes.atomic.AtomicValue;\nimport org.ap"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/base/ReliableMessageRegisterDto.java",
    "chars": 1710,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ReliableMessageRegi"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/exception/RegException.java",
    "chars": 615,
    "preview": "package com.paascloud.core.registry.exception;\n\n/**\n * 注册中心异常.\n *\n * @author zhangliang\n */\npublic final class RegExcept"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/exception/RegExceptionHandler.java",
    "chars": 1106,
    "preview": "package com.paascloud.core.registry.exception;\n\nimport lombok.AccessLevel;\nimport lombok.NoArgsConstructor;\nimport lombo"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/main/java/com/paascloud/core/registry/zookeeper/ZookeeperRegistryCenter.java",
    "chars": 12949,
    "preview": "package com.paascloud.core.registry.zookeeper;\n\nimport com.alibaba.fastjson.JSON;\nimport com.google.common.base.Charsets"
  },
  {
    "path": "paascloud-common/paascloud-common-zk/src/test/java/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "paascloud-common/paascloud-security-app/pom.xml",
    "chars": 682,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLoca"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/AppSecretException.java",
    "chars": 668,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AppSecretException."
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/AppSecurityController.java",
    "chars": 1877,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AppSecurityControll"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/authentication/openid/OpenIdAuthenticationFilter.java",
    "chars": 5307,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:OpenIdAuthenticatio"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/authentication/openid/OpenIdAuthenticationProvider.java",
    "chars": 3586,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:OpenIdAuthenticatio"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/authentication/openid/OpenIdAuthenticationSecurityConfig.java",
    "chars": 3144,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:OpenIdAuthenticatio"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/authentication/openid/OpenIdAuthenticationToken.java",
    "chars": 3283,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:OpenIdAuthenticatio"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/social/AppSingUpUtils.java",
    "chars": 3093,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AppSingUpUtils.java"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/social/AppSocialAuthenticationFilterPostProcessor.java",
    "chars": 1388,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:AppSocialAuthentica"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/app/social/SpringSocialConfigurerPostProcessor.java",
    "chars": 1831,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SpringSocialConfigu"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/PcAccessDeniedHandler.java",
    "chars": 1813,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PcAccessDeniedHandl"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/PcResourceServerConfig.java",
    "chars": 4168,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PcResourceServerCon"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/PcWebResponseExceptionTranslator.java",
    "chars": 988,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PcWebResponseExcept"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/TokenJwtEnhancer.java",
    "chars": 1747,
    "preview": " /*\n  * Copyright (c) 2018. paascloud.net All Rights Reserved.\n  * 项目名称:paascloud快速搭建企业级分布式微服务平台\n  * 类名称:TokenJwtEnhance"
  },
  {
    "path": "paascloud-common/paascloud-security-app/src/main/java/com/paascloud/security/server/TokenStoreConfig.java",
    "chars": 2917,
    "preview": " /*\n  * Copyright (c) 2018. paascloud.net All Rights Reserved.\n  * 项目名称:paascloud快速搭建企业级分布式微服务平台\n  * 类名称:TokenStoreConfi"
  },
  {
    "path": "paascloud-common/paascloud-security-core/pom.xml",
    "chars": 2937,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLoca"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/SecurityCoreConfig.java",
    "chars": 715,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SecurityCoreConfig."
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/SecurityResult.java",
    "chars": 1714,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SecurityResult.java"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/SecurityUser.java",
    "chars": 3174,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SecurityUser.java\n "
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/AuthenticationBeanConfig.java",
    "chars": 1355,
    "preview": "package com.paascloud.security.core.authentication;\n\nimport org.springframework.boot.autoconfigure.condition.Conditional"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/DefaultSocialUserDetailsServiceImpl.java",
    "chars": 952,
    "preview": "package com.paascloud.security.core.authentication;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.securi"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/DefaultUserDetailsServiceImpl.java",
    "chars": 923,
    "preview": "package com.paascloud.security.core.authentication;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.securi"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/FormAuthenticationConfig.java",
    "chars": 1824,
    "preview": "package com.paascloud.security.core.authentication;\n\nimport com.paascloud.security.core.properties.SecurityConstants;\nim"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/mobile/SmsCodeAuthenticationFilter.java",
    "chars": 4204,
    "preview": "package com.paascloud.security.core.authentication.mobile;\n\nimport com.paascloud.security.core.properties.SecurityConsta"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/mobile/SmsCodeAuthenticationProvider.java",
    "chars": 2192,
    "preview": "package com.paascloud.security.core.authentication.mobile;\n\nimport org.springframework.security.authentication.Authentic"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/mobile/SmsCodeAuthenticationSecurityConfig.java",
    "chars": 2572,
    "preview": "package com.paascloud.security.core.authentication.mobile;\n\nimport org.springframework.beans.factory.annotation.Autowire"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authentication/mobile/SmsCodeAuthenticationToken.java",
    "chars": 1280,
    "preview": "package com.paascloud.security.core.authentication.mobile;\n\nimport org.springframework.security.authentication.AbstractA"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authorize/AuthorizeConfigManager.java",
    "chars": 545,
    "preview": "package com.paascloud.security.core.authorize;\n\nimport org.springframework.security.config.annotation.web.builders.HttpS"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authorize/AuthorizeConfigProvider.java",
    "chars": 725,
    "preview": "package com.paascloud.security.core.authorize;\n\nimport org.springframework.security.config.annotation.web.builders.HttpS"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authorize/PcAuthorizeConfigManager.java",
    "chars": 1779,
    "preview": "package com.paascloud.security.core.authorize;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport or"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/authorize/PcAuthorizeConfigProvider.java",
    "chars": 1270,
    "preview": "package com.paascloud.security.core.authorize;\n\nimport com.paascloud.security.core.properties.SecurityConstants;\nimport "
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/BrowserProperties.java",
    "chars": 914,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BrowserProperties.j"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/EmailCodeProperties.java",
    "chars": 598,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:EmailCodeProperties"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/ImageCodeProperties.java",
    "chars": 376,
    "preview": "package com.paascloud.security.core.properties;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * 图片验证码配置项\n "
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/LoginResponseType.java",
    "chars": 201,
    "preview": "package com.paascloud.security.core.properties;\n\n/**\n * 认证成功后的响应方式\n *\n * @author paascloud.net @gmail.com\n */\npublic enu"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/OAuth2ClientProperties.java",
    "chars": 453,
    "preview": "package com.paascloud.security.core.properties;\n\nimport lombok.Data;\n\n/**\n * 认证服务器注册的第三方应用配置项\n *\n * @author paascloud.ne"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/OAuth2Properties.java",
    "chars": 612,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:OAuth2Properties.ja"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/QQProperties.java",
    "chars": 411,
    "preview": "package com.paascloud.security.core.properties;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport org.springf"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SecurityConstants.java",
    "chars": 1381,
    "preview": "package com.paascloud.security.core.properties;\n\n/**\n * The interface Security constants.\n *\n * @author paascloud.net@gm"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SecurityProperties.java",
    "chars": 1933,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SecurityProperties."
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SessionProperties.java",
    "chars": 632,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SessionProperties.j"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SmsCodeProperties.java",
    "chars": 531,
    "preview": "package com.paascloud.security.core.properties;\n\nimport lombok.Data;\n\n/**\n * The class Sms code properties.\n *\n * @autho"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/SocialProperties.java",
    "chars": 351,
    "preview": "package com.paascloud.security.core.properties;\n\nimport lombok.Data;\n\n/**\n * 社交登录配置项\n *\n * @author paascloud.net @gmail."
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/ValidateCodeProperties.java",
    "chars": 706,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ValidateCodePropert"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/properties/WeixinProperties.java",
    "chars": 696,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinProperties.ja"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/BaseSocialController.java",
    "chars": 1074,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:BaseSocialControlle"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/SocialConfig.java",
    "chars": 3309,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SocialConfig.java\n "
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/api/QQ.java",
    "chars": 493,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QQ.java\n * 创建人:刘兆明\n"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/api/QQImpl.java",
    "chars": 2040,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QQImpl.java\n * 创建人:"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/api/QQUserInfo.java",
    "chars": 2006,
    "preview": "\n/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QQUserInfo.java\n *"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/config/QQAutoConfig.java",
    "chars": 1639,
    "preview": "\n/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QQAutoConfig.java\n"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/connet/QQAdapter.java",
    "chars": 1634,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QQAdapter.java\n * 创"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/connet/QQConnectionFactory.java",
    "chars": 949,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QQConnectionFactory"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/connet/QQOAuth2Template.java",
    "chars": 2471,
    "preview": "\n/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QQOAuth2Template.j"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/qq/connet/QQServiceProvider.java",
    "chars": 1349,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:QQServiceProvider.j"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/support/PcSpringSocialConfigurer.java",
    "chars": 2532,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PcSpringSocialConfi"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/support/SocialAuthenticationFilterPostProcessor.java",
    "chars": 753,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SocialAuthenticatio"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/support/SocialUserInfo.java",
    "chars": 577,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:SocialUserInfo.java"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/view/PcConnectView.java",
    "chars": 1252,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PcConnectView.java\n"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/view/PcConnectionStatusView.java",
    "chars": 1855,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:PcConnectionStatusV"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/api/Weixin.java",
    "chars": 548,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:Weixin.java\n * 创建人:"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/api/WeixinImpl.java",
    "chars": 2372,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinImpl.java\n * "
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/api/WeixinUserInfo.java",
    "chars": 1070,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinUserInfo.java"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/config/WeixinAutoConfiguration.java",
    "chars": 2071,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinAutoConfigura"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinAccessGrant.java",
    "chars": 1465,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinAccessGrant.j"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinAdapter.java",
    "chars": 1921,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinAdapter.java\n"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinConnectionFactory.java",
    "chars": 2711,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinConnectionFac"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinOAuth2Template.java",
    "chars": 5500,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinOAuth2Templat"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/social/weixin/connect/WeixinServiceProvider.java",
    "chars": 1442,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:WeixinServiceProvid"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/CookieUtil.java",
    "chars": 3173,
    "preview": "package com.paascloud.security.core.validate.code;\n\nimport lombok.AccessLevel;\nimport lombok.NoArgsConstructor;\nimport o"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCode.java",
    "chars": 2896,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ValidateCode.java\n "
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeBeanConfig.java",
    "chars": 2135,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ValidateCodeBeanCon"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeController.java",
    "chars": 2179,
    "preview": "package com.paascloud.security.core.validate.code;\n\nimport com.paascloud.security.core.SecurityResult;\nimport com.paascl"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeException.java",
    "chars": 494,
    "preview": "package com.paascloud.security.core.validate.code;\n\nimport org.springframework.security.core.AuthenticationException;\n\n\n"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeFilter.java",
    "chars": 4005,
    "preview": "package com.paascloud.security.core.validate.code;\n\nimport com.paascloud.security.core.properties.SecurityConstants;\nimp"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeGenerator.java",
    "chars": 357,
    "preview": "package com.paascloud.security.core.validate.code;\n\nimport org.springframework.web.context.request.ServletWebRequest;\n\n/"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeProcessor.java",
    "chars": 661,
    "preview": "package com.paascloud.security.core.validate.code;\n\nimport org.springframework.web.context.request.ServletWebRequest;\n\n/"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeProcessorHolder.java",
    "chars": 1717,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ValidateCodeProcess"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeRepository.java",
    "chars": 1133,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:ValidateCodeReposit"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeSecurityConfig.java",
    "chars": 1004,
    "preview": "package com.paascloud.security.core.validate.code;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimpor"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/ValidateCodeType.java",
    "chars": 790,
    "preview": "package com.paascloud.security.core.validate.code;\n\nimport com.paascloud.security.core.properties.SecurityConstants;\n\n/*"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/email/DefaultEmailCodeSender.java",
    "chars": 741,
    "preview": "\n/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:DefaultEmailCodeSe"
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/email/EmailCodeGenerator.java",
    "chars": 1622,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:EmailCodeGenerator."
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/email/EmailCodeProcessor.java",
    "chars": 2053,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:EmailCodeProcessor."
  },
  {
    "path": "paascloud-common/paascloud-security-core/src/main/java/com/paascloud/security/core/validate/code/email/EmailCodeSender.java",
    "chars": 566,
    "preview": "/*\n * Copyright (c) 2018. paascloud.net All Rights Reserved.\n * 项目名称:paascloud快速搭建企业级分布式微服务平台\n * 类名称:EmailCodeSender.jav"
  }
]

// ... and 693 more files (download for full content)

About this extraction

This page contains the full source code of the paascloud/paascloud-master GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 893 files (1.7 MB), approximately 532.5k tokens, and a symbol index with 2785 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!