├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── XHuiCloud-auth ├── Dockerfile ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── xhuicloud │ │ └── auth │ │ ├── XHuiAuthServerApplication.java │ │ ├── controller │ │ └── AuthTokenEndpoint.java │ │ └── handle │ │ ├── LoggerAuthenticationFailureHandler.java │ │ ├── LoggerAuthenticationSuccessHandler.java │ │ └── NoticeAuthenticationSuccessHandler.java │ └── resources │ ├── bootstrap.yml │ ├── static │ ├── css │ │ ├── auth.css │ │ └── bootstrap.min.css │ └── js │ │ ├── crypto-js.js │ │ └── login.js │ └── templates │ └── ftl │ ├── confirm.ftl │ ├── error.ftl │ ├── login.ftl │ └── notmatch.ftl ├── XHuiCloud-business ├── XHuiCloud-ai │ ├── XHuiCloud-ai-api │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── xhuicloud │ │ │ └── ai │ │ │ └── vo │ │ │ └── MessagesVo.java │ ├── XHuiCloud-ai-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xhuicloud │ │ │ │ └── ai │ │ │ │ ├── XHuiAiApplication.java │ │ │ │ ├── chatgpt │ │ │ │ ├── client │ │ │ │ │ ├── OpenAiApi.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── OpenAiService.java │ │ │ │ ├── completion │ │ │ │ │ ├── CompletionChoice.java │ │ │ │ │ ├── CompletionRequest.java │ │ │ │ │ ├── CompletionResult.java │ │ │ │ │ └── LogProbResult.java │ │ │ │ ├── edit │ │ │ │ │ ├── EditChoice.java │ │ │ │ │ ├── EditRequest.java │ │ │ │ │ └── EditResult.java │ │ │ │ ├── embedding │ │ │ │ │ ├── Embedding.java │ │ │ │ │ ├── EmbeddingRequest.java │ │ │ │ │ └── EmbeddingResult.java │ │ │ │ ├── file │ │ │ │ │ └── File.java │ │ │ │ ├── finetune │ │ │ │ │ ├── FineTuneEvent.java │ │ │ │ │ ├── FineTuneRequest.java │ │ │ │ │ ├── FineTuneResult.java │ │ │ │ │ └── HyperParameters.java │ │ │ │ ├── image │ │ │ │ │ ├── CreateImageEditRequest.java │ │ │ │ │ ├── CreateImageRequest.java │ │ │ │ │ ├── CreateImageVariationRequest.java │ │ │ │ │ ├── Image.java │ │ │ │ │ └── ImageResult.java │ │ │ │ ├── interceptor │ │ │ │ │ └── AuthenticationInterceptor.java │ │ │ │ ├── model │ │ │ │ │ ├── DeleteResult.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── OpenAiResponse.java │ │ │ │ │ ├── Permission.java │ │ │ │ │ └── Usage.java │ │ │ │ └── moderation │ │ │ │ │ ├── Moderation.java │ │ │ │ │ ├── ModerationCategories.java │ │ │ │ │ ├── ModerationCategoryScores.java │ │ │ │ │ ├── ModerationRequest.java │ │ │ │ │ └── ModerationResult.java │ │ │ │ ├── controller │ │ │ │ ├── ChatController.java │ │ │ │ ├── ChatRoomController.java │ │ │ │ └── ConversationController.java │ │ │ │ ├── entity │ │ │ │ └── Conversation.java │ │ │ │ ├── mapper │ │ │ │ └── ConversationMapper.java │ │ │ │ ├── payload │ │ │ │ └── MessagePayload.java │ │ │ │ ├── service │ │ │ │ ├── ConversationService.java │ │ │ │ └── impl │ │ │ │ │ └── ConversationServiceImpl.java │ │ │ │ └── socket │ │ │ │ ├── MqttServerAuth.java │ │ │ │ └── MqttServerMessageListener.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ └── pom.xml ├── XHuiCloud-gateway │ ├── Dockerfile │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── gateway │ │ │ ├── XHuiGatewayApplication.java │ │ │ ├── config │ │ │ ├── CaptchaCacheRedisService.java │ │ │ ├── RateLimiterConfiguration.java │ │ │ └── RouterFunctionConfiguration.java │ │ │ ├── filter │ │ │ ├── CodeGatewayFilterFactory.java │ │ │ ├── GlobalGatewayFilter.java │ │ │ └── PreviewGatewayFilter.java │ │ │ ├── route │ │ │ ├── ImageCodeCheckHandler.java │ │ │ ├── ImageCodeCreateHandler.java │ │ │ └── MobileCodeCheckHandler.java │ │ │ └── utils │ │ │ └── VerifyCodeUtil.java │ │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ └── com.anji.captcha.service.CaptchaCacheService │ │ └── bootstrap.yml ├── XHuiCloud-generator │ ├── Dockerfile │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── generator │ │ │ ├── XHuiCodeGenApplication.java │ │ │ ├── controller │ │ │ ├── DsInfoController.java │ │ │ └── GenCodeController.java │ │ │ ├── dto │ │ │ └── GenCodeDto.java │ │ │ ├── entity │ │ │ ├── TableColumnsInfo.java │ │ │ └── TableInfo.java │ │ │ ├── handle │ │ │ ├── AbstractJdbcHandle.java │ │ │ ├── JdbcHandle.java │ │ │ └── MysqlJdbcHandle.java │ │ │ ├── mapper │ │ │ └── GenDsInfoMapper.java │ │ │ ├── service │ │ │ ├── GenDsInfoService.java │ │ │ └── impl │ │ │ │ └── GenDsInfoServiceImpl.java │ │ │ └── utils │ │ │ └── GenCodeUtil.java │ │ └── resources │ │ ├── bootstrap.yml │ │ ├── dbType.properties │ │ ├── javaType.properties │ │ ├── mapper │ │ └── GenDsInfoMapper.xml │ │ ├── template │ │ ├── server │ │ │ ├── Controller.ftl │ │ │ ├── Entity.ftl │ │ │ ├── Mapper.ftl │ │ │ ├── Mapper.xml.ftl │ │ │ ├── Service.ftl │ │ │ └── ServiceImpl.ftl │ │ ├── ts │ │ │ ├── apiIndex.ts.ftl │ │ │ ├── entity.d.ts.ftl │ │ │ ├── index.ts.ftl │ │ │ └── index.vue.ftl │ │ └── vue │ │ │ ├── ApiDtoIndex.js.ftl │ │ │ ├── ApiIndex.js.ftl │ │ │ └── index.vue.ftl │ │ └── typeScript.properties ├── XHuiCloud-job │ ├── XHuiCloud-job-api │ │ └── pom.xml │ ├── XHuiCloud-job-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xhuicloud │ │ │ │ └── job │ │ │ │ ├── XHuiJobApplication.java │ │ │ │ ├── elasticJob │ │ │ │ ├── job │ │ │ │ │ ├── TestDataflowJob.java │ │ │ │ │ └── TestSimpleJob.java │ │ │ │ └── listener │ │ │ │ │ └── CustomListener.java │ │ │ │ └── xxlJob │ │ │ │ └── DemoJobHandler.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ └── pom.xml ├── XHuiCloud-logs │ ├── XHuiCloud-logs-api │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── xhuicloud │ │ │ └── logs │ │ │ ├── entity │ │ │ ├── AuditLogin.java │ │ │ └── AuditRecordModel.java │ │ │ └── feign │ │ │ └── AuditLoginFeign.java │ ├── XHuiCloud-logs-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xhuicloud │ │ │ │ └── logs │ │ │ │ ├── XHuiLogsApplication.java │ │ │ │ ├── controller │ │ │ │ ├── AuditLoginController.java │ │ │ │ ├── AuditRecordController.java │ │ │ │ └── TestLogController.java │ │ │ │ ├── mapper │ │ │ │ ├── AuditLoginMapper.java │ │ │ │ └── AuditRecordMapper.java │ │ │ │ ├── mq │ │ │ │ └── consumer │ │ │ │ │ └── AuditRecordLogConsumer.java │ │ │ │ └── service │ │ │ │ ├── AuditLoginService.java │ │ │ │ ├── AuditRecordService.java │ │ │ │ └── impl │ │ │ │ ├── AuditLoginServiceImpl.java │ │ │ │ └── AuditRecordServiceImpl.java │ │ │ └── resources │ │ │ └── bootstrap.yml │ └── pom.xml ├── XHuiCloud-monitor │ ├── Dockerfile │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── monitor │ │ │ └── XHuiMonitorApplication.java │ │ └── resources │ │ └── bootstrap.yml ├── XHuiCloud-pay │ ├── XHuiCloud-pay-api │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── xhuicloud │ │ │ └── pay │ │ │ ├── dto │ │ │ └── PayOrderDto.java │ │ │ └── entity │ │ │ ├── PayChannel.java │ │ │ └── PayOrderAll.java │ ├── XHuiCloud-pay-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xhuicloud │ │ │ │ └── pay │ │ │ │ ├── XHuiPayApplication.java │ │ │ │ ├── config │ │ │ │ └── PayConfigInit.java │ │ │ │ ├── controller │ │ │ │ ├── PayChannelController.java │ │ │ │ ├── PayNotifyRecordController.java │ │ │ │ └── PayRouteController.java │ │ │ │ ├── handle │ │ │ │ ├── PayService.java │ │ │ │ └── impl │ │ │ │ │ ├── AliPayServiceImpl.java │ │ │ │ │ └── WeChatPayServiceImpl.java │ │ │ │ ├── mapper │ │ │ │ ├── PayChannelMapper.java │ │ │ │ └── PayOrderAllMapper.java │ │ │ │ ├── properties │ │ │ │ └── PayProperties.java │ │ │ │ ├── service │ │ │ │ ├── PayChannelService.java │ │ │ │ ├── PayOrderAllService.java │ │ │ │ └── impl │ │ │ │ │ ├── PayChannelServiceImpl.java │ │ │ │ │ └── PayOrderAllServiceImpl.java │ │ │ │ └── utils │ │ │ │ ├── OrderUtil.java │ │ │ │ └── UserAgentUtil.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ ├── mapper │ │ │ ├── SocialHandler.xml │ │ │ └── WeChatAccountService.xml │ │ │ ├── static │ │ │ ├── css │ │ │ │ ├── keyboard.css │ │ │ │ ├── pay.css │ │ │ │ └── tenant.css │ │ │ └── js │ │ │ │ ├── layer.js │ │ │ │ └── layui.js │ │ │ └── templates │ │ │ └── ftl │ │ │ ├── h5pay.ftl │ │ │ └── success.ftl │ └── pom.xml ├── XHuiCloud-push │ ├── XHuiCloud-push-api │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── xhuicloud │ │ │ └── push │ │ │ ├── common │ │ │ ├── BasePush.java │ │ │ ├── BasePushData.java │ │ │ ├── PushMultiDiff.java │ │ │ ├── PushMultiple.java │ │ │ └── PushSingle.java │ │ │ ├── entity │ │ │ ├── PushGroup.java │ │ │ └── PushTemplate.java │ │ │ ├── enums │ │ │ ├── BasePushMessage.java │ │ │ ├── PushChannelEnum.java │ │ │ ├── SmsMessage.java │ │ │ └── WeChatMpMessage.java │ │ │ └── feign │ │ │ └── PushCommonFeign.java │ ├── XHuiCloud-push-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xhuicloud │ │ │ │ └── push │ │ │ │ ├── XHuiPushApplication.java │ │ │ │ ├── consumer │ │ │ │ └── PushConsumer.java │ │ │ │ ├── controller │ │ │ │ ├── PushCommonController.java │ │ │ │ ├── PushGroupController.java │ │ │ │ └── PushTemplateController.java │ │ │ │ ├── mapper │ │ │ │ ├── PushGroupMapper.java │ │ │ │ └── PushTemplateMapper.java │ │ │ │ └── service │ │ │ │ ├── PushCommonService.java │ │ │ │ ├── PushGroupService.java │ │ │ │ ├── PushService.java │ │ │ │ ├── PushTemplateService.java │ │ │ │ └── impl │ │ │ │ ├── PushCommonServiceImpl.java │ │ │ │ ├── PushGroupServiceImpl.java │ │ │ │ ├── PushTemplateServiceImpl.java │ │ │ │ └── WeChatMpPush.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── mapper │ │ │ ├── PushTemplateMapper.xml │ │ │ └── WeChatAccountService.xml │ └── pom.xml ├── XHuiCloud-register │ ├── Dockerfile │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── nacos │ │ │ ├── XHuiNacosApplication.java │ │ │ ├── config │ │ │ └── ConsoleConfig.java │ │ │ ├── controller │ │ │ ├── HealthController.java │ │ │ ├── NamespaceController.java │ │ │ ├── PermissionController.java │ │ │ ├── RoleController.java │ │ │ ├── ServerStateController.java │ │ │ └── UserController.java │ │ │ ├── enums │ │ │ └── NamespaceTypeEnum.java │ │ │ ├── exception │ │ │ └── ConsoleExceptionHandler.java │ │ │ ├── filter │ │ │ └── JwtAuthenticationTokenFilter.java │ │ │ ├── model │ │ │ ├── Namespace.java │ │ │ └── NamespaceAllInfo.java │ │ │ ├── security │ │ │ └── nacos │ │ │ │ ├── CustomAuthenticationProvider.java │ │ │ │ ├── JwtAuthenticationEntryPoint.java │ │ │ │ ├── JwtTokenManager.java │ │ │ │ ├── LdapAuthenticationProvider.java │ │ │ │ ├── NacosAuthConfig.java │ │ │ │ ├── NacosAuthManager.java │ │ │ │ ├── roles │ │ │ │ └── NacosRoleServiceImpl.java │ │ │ │ └── users │ │ │ │ ├── NacosUser.java │ │ │ │ ├── NacosUserDetails.java │ │ │ │ └── NacosUserDetailsServiceImpl.java │ │ │ └── utils │ │ │ └── PasswordEncoderUtil.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── static │ │ ├── console-ui │ │ └── public │ │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ ├── codemirror.css │ │ │ ├── console1412.css │ │ │ ├── font-awesome.css │ │ │ ├── fonts │ │ │ │ ├── aliyun-console-font.eot │ │ │ │ ├── aliyun-console-font.ttf │ │ │ │ ├── aliyun-console-font.woff │ │ │ │ ├── font_515771_emcns5054x3whfr.ttf │ │ │ │ ├── font_515771_emcns5054x3whfr.woff │ │ │ │ ├── roboto-bold.ttf │ │ │ │ ├── roboto-bold.woff │ │ │ │ ├── roboto-bold.woff2 │ │ │ │ ├── roboto-regular.ttf │ │ │ │ ├── roboto-regular.woff │ │ │ │ └── roboto-regular.woff2 │ │ │ ├── icon.css │ │ │ └── merge.css │ │ │ ├── fonts │ │ │ ├── roboto-bold.eot │ │ │ ├── roboto-bold.ttf │ │ │ ├── roboto-bold.woff │ │ │ ├── roboto-bold.woff2 │ │ │ ├── roboto-light.eot │ │ │ ├── roboto-light.ttf │ │ │ ├── roboto-light.woff │ │ │ ├── roboto-light.woff2 │ │ │ ├── roboto-medium.eot │ │ │ ├── roboto-medium.ttf │ │ │ ├── roboto-medium.woff │ │ │ ├── roboto-medium.woff2 │ │ │ ├── roboto-regular.eot │ │ │ ├── roboto-regular.ttf │ │ │ ├── roboto-regular.woff │ │ │ ├── roboto-regular.woff2 │ │ │ ├── roboto-thin.eot │ │ │ ├── roboto-thin.ttf │ │ │ ├── roboto-thin.woff │ │ │ └── roboto-thin.woff2 │ │ │ ├── icons │ │ │ ├── icon-font.eot │ │ │ ├── icon-font.svg │ │ │ ├── icon-font.ttf │ │ │ ├── icon-font.woff │ │ │ └── icon-font.woff2 │ │ │ ├── img │ │ │ ├── black_dot.png │ │ │ ├── favicon.ico │ │ │ ├── logo-2000-390.svg │ │ │ ├── nacos-logo.png │ │ │ └── nacos.png │ │ │ └── js │ │ │ ├── codemirror.addone.fullscreen.js │ │ │ ├── codemirror.addone.json-lint.js │ │ │ ├── codemirror.addone.lint.js │ │ │ ├── codemirror.js │ │ │ ├── codemirror.lib.clike-lint.js │ │ │ ├── codemirror.lib.json-lint.js │ │ │ ├── diff_match_patch.js │ │ │ ├── javascript.js │ │ │ ├── jquery.js │ │ │ ├── loader.js │ │ │ ├── merge.js │ │ │ ├── vs │ │ │ ├── base │ │ │ │ └── worker │ │ │ │ │ └── workerMain.js │ │ │ ├── basic-languages │ │ │ │ └── src │ │ │ │ │ ├── bat.js │ │ │ │ │ ├── coffee.js │ │ │ │ │ ├── cpp.js │ │ │ │ │ ├── csharp.js │ │ │ │ │ ├── css.js │ │ │ │ │ ├── dockerfile.js │ │ │ │ │ ├── fsharp.js │ │ │ │ │ ├── go.js │ │ │ │ │ ├── handlebars.js │ │ │ │ │ ├── html.js │ │ │ │ │ ├── ini.js │ │ │ │ │ ├── java.js │ │ │ │ │ ├── less.js │ │ │ │ │ ├── lua.js │ │ │ │ │ ├── markdown.js │ │ │ │ │ ├── msdax.js │ │ │ │ │ ├── objective-c.js │ │ │ │ │ ├── php.js │ │ │ │ │ ├── postiats.js │ │ │ │ │ ├── powershell.js │ │ │ │ │ ├── pug.js │ │ │ │ │ ├── python.js │ │ │ │ │ ├── r.js │ │ │ │ │ ├── razor.js │ │ │ │ │ ├── ruby.js │ │ │ │ │ ├── sb.js │ │ │ │ │ ├── scss.js │ │ │ │ │ ├── solidity.js │ │ │ │ │ ├── sql.js │ │ │ │ │ ├── swift.js │ │ │ │ │ ├── vb.js │ │ │ │ │ ├── xml.js │ │ │ │ │ └── yaml.js │ │ │ ├── editor │ │ │ │ ├── contrib │ │ │ │ │ └── suggest │ │ │ │ │ │ └── browser │ │ │ │ │ │ └── media │ │ │ │ │ │ ├── String_16x.svg │ │ │ │ │ │ └── String_inverse_16x.svg │ │ │ │ ├── editor.main.css │ │ │ │ ├── editor.main.js │ │ │ │ ├── editor.main.nls.de.js │ │ │ │ ├── editor.main.nls.es.js │ │ │ │ ├── editor.main.nls.fr.js │ │ │ │ ├── editor.main.nls.hu.js │ │ │ │ ├── editor.main.nls.it.js │ │ │ │ ├── editor.main.nls.ja.js │ │ │ │ ├── editor.main.nls.js │ │ │ │ ├── editor.main.nls.ko.js │ │ │ │ ├── editor.main.nls.pt-br.js │ │ │ │ ├── editor.main.nls.ru.js │ │ │ │ ├── editor.main.nls.tr.js │ │ │ │ ├── editor.main.nls.zh-cn.js │ │ │ │ ├── editor.main.nls.zh-tw.js │ │ │ │ └── standalone │ │ │ │ │ └── browser │ │ │ │ │ └── quickOpen │ │ │ │ │ └── symbol-sprite.svg │ │ │ ├── language │ │ │ │ ├── css │ │ │ │ │ ├── cssMode.js │ │ │ │ │ └── cssWorker.js │ │ │ │ ├── html │ │ │ │ │ ├── htmlMode.js │ │ │ │ │ └── htmlWorker.js │ │ │ │ ├── json │ │ │ │ │ ├── jsonMode.js │ │ │ │ │ └── jsonWorker.js │ │ │ │ └── typescript │ │ │ │ │ ├── lib │ │ │ │ │ └── typescriptServices.js │ │ │ │ │ └── src │ │ │ │ │ ├── mode.js │ │ │ │ │ └── worker.js │ │ │ └── loader.js │ │ │ └── xml.js │ │ ├── css │ │ └── main.css │ │ ├── img │ │ ├── black_dot.png │ │ ├── logo-2000-390.svg │ │ └── nacos.png │ │ ├── index.html │ │ ├── js │ │ └── main.js │ │ └── login.html ├── XHuiCloud-seata │ ├── Dockerfile │ ├── XHuiCloud-seata.iml │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── io │ │ │ └── seata │ │ │ └── server │ │ │ ├── AbstractTCInboundHandler.java │ │ │ ├── ParameterParser.java │ │ │ ├── Server.java │ │ │ ├── UUIDGenerator.java │ │ │ ├── auth │ │ │ ├── AbstractCheckAuthHandler.java │ │ │ └── DefaultCheckAuthHandler.java │ │ │ ├── coordinator │ │ │ ├── AbstractCore.java │ │ │ ├── Core.java │ │ │ ├── DefaultCoordinator.java │ │ │ ├── DefaultCore.java │ │ │ ├── TransactionCoordinatorInbound.java │ │ │ └── TransactionCoordinatorOutbound.java │ │ │ ├── env │ │ │ ├── ContainerHelper.java │ │ │ └── PortHelper.java │ │ │ ├── event │ │ │ └── EventBusManager.java │ │ │ ├── lock │ │ │ ├── AbstractLockManager.java │ │ │ ├── LockManager.java │ │ │ └── LockerManagerFactory.java │ │ │ ├── logging │ │ │ ├── listener │ │ │ │ └── SystemPropertyLoggerContextListener.java │ │ │ └── logback │ │ │ │ ├── ColorConverter.java │ │ │ │ ├── ExtendedWhitespaceThrowableProxyConverter.java │ │ │ │ ├── WhitespaceThrowableProxyConverter.java │ │ │ │ ├── ansi │ │ │ │ ├── AnsiColor.java │ │ │ │ ├── AnsiElement.java │ │ │ │ ├── AnsiOutput.java │ │ │ │ └── AnsiStyle.java │ │ │ │ └── appender │ │ │ │ └── EnhancedLogstashEncoder.java │ │ │ ├── metrics │ │ │ ├── MeterIdConstants.java │ │ │ ├── MetricsManager.java │ │ │ └── MetricsSubscriber.java │ │ │ ├── session │ │ │ ├── AbstractSessionManager.java │ │ │ ├── BranchSession.java │ │ │ ├── BranchSessionHandler.java │ │ │ ├── GlobalSession.java │ │ │ ├── GlobalSessionHandler.java │ │ │ ├── Lockable.java │ │ │ ├── Reloadable.java │ │ │ ├── SessionCondition.java │ │ │ ├── SessionHelper.java │ │ │ ├── SessionHolder.java │ │ │ ├── SessionLifecycle.java │ │ │ ├── SessionLifecycleListener.java │ │ │ └── SessionManager.java │ │ │ ├── storage │ │ │ ├── SessionConverter.java │ │ │ ├── db │ │ │ │ ├── lock │ │ │ │ │ ├── DataBaseLockManager.java │ │ │ │ │ ├── DataBaseLocker.java │ │ │ │ │ └── LockStoreDataBaseDAO.java │ │ │ │ ├── session │ │ │ │ │ └── DataBaseSessionManager.java │ │ │ │ └── store │ │ │ │ │ ├── DataBaseTransactionStoreManager.java │ │ │ │ │ └── LogStoreDataBaseDAO.java │ │ │ ├── file │ │ │ │ ├── FlushDiskMode.java │ │ │ │ ├── ReloadableStore.java │ │ │ │ ├── TransactionWriteStore.java │ │ │ │ ├── lock │ │ │ │ │ ├── FileLockManager.java │ │ │ │ │ └── FileLocker.java │ │ │ │ ├── session │ │ │ │ │ └── FileSessionManager.java │ │ │ │ └── store │ │ │ │ │ └── FileTransactionStoreManager.java │ │ │ └── redis │ │ │ │ ├── JedisPooledFactory.java │ │ │ │ ├── lock │ │ │ │ ├── RedisLockManager.java │ │ │ │ └── RedisLocker.java │ │ │ │ ├── session │ │ │ │ └── RedisSessionManager.java │ │ │ │ └── store │ │ │ │ └── RedisTransactionStoreManager.java │ │ │ ├── store │ │ │ ├── AbstractTransactionStoreManager.java │ │ │ ├── DbcpDataSourceProvider.java │ │ │ ├── DruidDataSourceProvider.java │ │ │ ├── HikariDataSourceProvider.java │ │ │ ├── SessionStorable.java │ │ │ ├── StoreConfig.java │ │ │ └── TransactionStoreManager.java │ │ │ └── transaction │ │ │ ├── at │ │ │ └── ATCore.java │ │ │ ├── saga │ │ │ └── SagaCore.java │ │ │ ├── tcc │ │ │ └── TccCore.java │ │ │ └── xa │ │ │ └── XACore.java │ │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ ├── io.seata.core.rpc.RegisterCheckAuthHandler │ │ │ ├── io.seata.core.store.db.DataSourceProvider │ │ │ ├── io.seata.server.coordinator.AbstractCore │ │ │ ├── io.seata.server.lock.LockManager │ │ │ └── io.seata.server.session.SessionManager │ │ ├── file.conf │ │ ├── logback.xml │ │ └── registry.conf ├── XHuiCloud-sentinel-dashboard │ ├── Dockerfile │ ├── README.md │ ├── Sentinel_Dashboard_Feature.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── csp │ │ │ └── sentinel │ │ │ └── dashboard │ │ │ ├── XHuiSentinelApplication.java │ │ │ ├── auth │ │ │ ├── AuthAction.java │ │ │ ├── AuthService.java │ │ │ ├── AuthorizationInterceptor.java │ │ │ ├── DefaultAuthorizationInterceptor.java │ │ │ ├── DefaultLoginAuthenticationFilter.java │ │ │ ├── FakeAuthServiceImpl.java │ │ │ ├── LoginAuthenticationFilter.java │ │ │ └── SimpleWebAuthServiceImpl.java │ │ │ ├── client │ │ │ ├── CommandFailedException.java │ │ │ ├── CommandNotFoundException.java │ │ │ └── SentinelApiClient.java │ │ │ ├── config │ │ │ ├── AuthConfiguration.java │ │ │ ├── AuthProperties.java │ │ │ ├── DashboardConfig.java │ │ │ └── WebConfig.java │ │ │ ├── controller │ │ │ ├── AppController.java │ │ │ ├── AuthController.java │ │ │ ├── AuthorityRuleController.java │ │ │ ├── DegradeController.java │ │ │ ├── DemoController.java │ │ │ ├── FlowControllerV1.java │ │ │ ├── MachineRegistryController.java │ │ │ ├── MetricController.java │ │ │ ├── ParamFlowRuleController.java │ │ │ ├── ResourceController.java │ │ │ ├── SystemController.java │ │ │ ├── VersionController.java │ │ │ ├── cluster │ │ │ │ ├── ClusterAssignController.java │ │ │ │ └── ClusterConfigController.java │ │ │ ├── gateway │ │ │ │ ├── GatewayApiController.java │ │ │ │ └── GatewayFlowRuleController.java │ │ │ └── v2 │ │ │ │ └── FlowControllerV2.java │ │ │ ├── datasource │ │ │ └── entity │ │ │ │ ├── ApplicationEntity.java │ │ │ │ ├── MachineEntity.java │ │ │ │ ├── MetricEntity.java │ │ │ │ ├── MetricPositionEntity.java │ │ │ │ ├── SentinelVersion.java │ │ │ │ ├── gateway │ │ │ │ ├── ApiDefinitionEntity.java │ │ │ │ ├── ApiPredicateItemEntity.java │ │ │ │ ├── GatewayFlowRuleEntity.java │ │ │ │ └── GatewayParamFlowItemEntity.java │ │ │ │ └── rule │ │ │ │ ├── AbstractRuleEntity.java │ │ │ │ ├── AuthorityRuleEntity.java │ │ │ │ ├── DegradeRuleEntity.java │ │ │ │ ├── FlowRuleEntity.java │ │ │ │ ├── ParamFlowRuleEntity.java │ │ │ │ ├── RuleEntity.java │ │ │ │ └── SystemRuleEntity.java │ │ │ ├── discovery │ │ │ ├── AppInfo.java │ │ │ ├── AppManagement.java │ │ │ ├── MachineDiscovery.java │ │ │ ├── MachineInfo.java │ │ │ └── SimpleMachineDiscovery.java │ │ │ ├── domain │ │ │ ├── ResourceTreeNode.java │ │ │ ├── Result.java │ │ │ ├── cluster │ │ │ │ ├── ClusterAppAssignResultVO.java │ │ │ │ ├── ClusterAppFullAssignRequest.java │ │ │ │ ├── ClusterAppSingleServerAssignRequest.java │ │ │ │ ├── ClusterClientInfoVO.java │ │ │ │ ├── ClusterGroupEntity.java │ │ │ │ ├── ClusterStateSingleVO.java │ │ │ │ ├── ConnectionDescriptorVO.java │ │ │ │ ├── ConnectionGroupVO.java │ │ │ │ ├── config │ │ │ │ │ ├── ClusterClientConfig.java │ │ │ │ │ ├── ServerFlowConfig.java │ │ │ │ │ └── ServerTransportConfig.java │ │ │ │ ├── request │ │ │ │ │ ├── ClusterAppAssignMap.java │ │ │ │ │ ├── ClusterClientModifyRequest.java │ │ │ │ │ ├── ClusterModifyRequest.java │ │ │ │ │ └── ClusterServerModifyRequest.java │ │ │ │ └── state │ │ │ │ │ ├── AppClusterClientStateWrapVO.java │ │ │ │ │ ├── AppClusterServerStateWrapVO.java │ │ │ │ │ ├── ClusterClientStateVO.java │ │ │ │ │ ├── ClusterRequestLimitVO.java │ │ │ │ │ ├── ClusterServerStateVO.java │ │ │ │ │ ├── ClusterStateSimpleEntity.java │ │ │ │ │ ├── ClusterUniversalStatePairVO.java │ │ │ │ │ └── ClusterUniversalStateVO.java │ │ │ └── vo │ │ │ │ ├── MachineInfoVo.java │ │ │ │ ├── MetricVo.java │ │ │ │ ├── ResourceVo.java │ │ │ │ └── gateway │ │ │ │ ├── api │ │ │ │ ├── AddApiReqVo.java │ │ │ │ ├── ApiPredicateItemVo.java │ │ │ │ └── UpdateApiReqVo.java │ │ │ │ └── rule │ │ │ │ ├── AddFlowRuleReqVo.java │ │ │ │ ├── GatewayParamFlowItemVo.java │ │ │ │ └── UpdateFlowRuleReqVo.java │ │ │ ├── metric │ │ │ └── MetricFetcher.java │ │ │ ├── repository │ │ │ ├── gateway │ │ │ │ ├── InMemApiDefinitionStore.java │ │ │ │ └── InMemGatewayFlowRuleStore.java │ │ │ ├── metric │ │ │ │ ├── InMemoryMetricsRepository.java │ │ │ │ └── MetricsRepository.java │ │ │ └── rule │ │ │ │ ├── InMemAuthorityRuleStore.java │ │ │ │ ├── InMemDegradeRuleStore.java │ │ │ │ ├── InMemFlowRuleStore.java │ │ │ │ ├── InMemParamFlowRuleStore.java │ │ │ │ ├── InMemSystemRuleStore.java │ │ │ │ ├── InMemoryRuleRepositoryAdapter.java │ │ │ │ └── RuleRepository.java │ │ │ ├── rule │ │ │ ├── DynamicRuleProvider.java │ │ │ ├── DynamicRulePublisher.java │ │ │ ├── FlowRuleApiProvider.java │ │ │ └── FlowRuleApiPublisher.java │ │ │ ├── service │ │ │ ├── ClusterAssignService.java │ │ │ ├── ClusterAssignServiceImpl.java │ │ │ └── ClusterConfigService.java │ │ │ └── util │ │ │ ├── AsyncUtils.java │ │ │ ├── ClusterEntityUtils.java │ │ │ ├── MachineUtils.java │ │ │ └── VersionUtils.java │ │ ├── resources │ │ └── application.properties │ │ └── webapp │ │ └── resources │ │ ├── .gitignore │ │ ├── .jshintrc │ │ ├── README.md │ │ ├── README_zh.md │ │ ├── app │ │ ├── scripts │ │ │ ├── app.js │ │ │ ├── controllers │ │ │ │ ├── authority.js │ │ │ │ ├── cluster_app_assign_manage.js │ │ │ │ ├── cluster_app_server_list.js │ │ │ │ ├── cluster_app_server_manage.js │ │ │ │ ├── cluster_app_server_monitor.js │ │ │ │ ├── cluster_app_token_client_list.js │ │ │ │ ├── cluster_single.js │ │ │ │ ├── degrade.js │ │ │ │ ├── flow_v1.js │ │ │ │ ├── flow_v2.js │ │ │ │ ├── gateway │ │ │ │ │ ├── api.js │ │ │ │ │ ├── flow.js │ │ │ │ │ └── identity.js │ │ │ │ ├── home.js │ │ │ │ ├── identity.js │ │ │ │ ├── login.js │ │ │ │ ├── machine.js │ │ │ │ ├── main.js │ │ │ │ ├── metric.js │ │ │ │ ├── param_flow.js │ │ │ │ └── system.js │ │ │ ├── directives │ │ │ │ ├── header │ │ │ │ │ ├── header.html │ │ │ │ │ └── header.js │ │ │ │ └── sidebar │ │ │ │ │ ├── sidebar-search │ │ │ │ │ ├── sidebar-search.html │ │ │ │ │ └── sidebar-search.js │ │ │ │ │ ├── sidebar.html │ │ │ │ │ └── sidebar.js │ │ │ ├── filters │ │ │ │ └── filters.js │ │ │ ├── libs │ │ │ │ └── treeTable.js │ │ │ └── services │ │ │ │ ├── appservice.js │ │ │ │ ├── auth_service.js │ │ │ │ ├── authority_service.js │ │ │ │ ├── cluster_state_service.js │ │ │ │ ├── degrade_service.js │ │ │ │ ├── flow_service_v1.js │ │ │ │ ├── flow_service_v2.js │ │ │ │ ├── gateway │ │ │ │ ├── api_service.js │ │ │ │ └── flow_service.js │ │ │ │ ├── identityservice.js │ │ │ │ ├── machineservice.js │ │ │ │ ├── metricservice.js │ │ │ │ ├── param_flow_service.js │ │ │ │ ├── systemservice.js │ │ │ │ └── version_service.js │ │ ├── styles │ │ │ ├── main.css │ │ │ ├── page.css │ │ │ └── timeline.css │ │ └── views │ │ │ ├── authority.html │ │ │ ├── cluster │ │ │ ├── client.html │ │ │ └── server.html │ │ │ ├── cluster_app_assign_manage.html │ │ │ ├── cluster_app_client_list.html │ │ │ ├── cluster_app_server_list.html │ │ │ ├── cluster_app_server_overview.html │ │ │ ├── cluster_single_config.html │ │ │ ├── dashboard │ │ │ ├── home.html │ │ │ └── main.html │ │ │ ├── degrade.html │ │ │ ├── dialog │ │ │ ├── authority-rule-dialog.html │ │ │ ├── cluster │ │ │ │ ├── cluster-client-config-dialog.html │ │ │ │ ├── cluster-server-assign-dialog.html │ │ │ │ └── cluster-server-connection-detail-dialog.html │ │ │ ├── confirm-dialog.html │ │ │ ├── degrade-rule-dialog.html │ │ │ ├── flow-rule-dialog.html │ │ │ ├── gateway │ │ │ │ ├── api-dialog.html │ │ │ │ └── flow-rule-dialog.html │ │ │ ├── param-flow-rule-dialog.html │ │ │ └── system-rule-dialog.html │ │ │ ├── flow_v1.html │ │ │ ├── flow_v2.html │ │ │ ├── gateway │ │ │ ├── api.html │ │ │ ├── flow.html │ │ │ └── identity.html │ │ │ ├── identity.html │ │ │ ├── login.html │ │ │ ├── machine.html │ │ │ ├── metric.html │ │ │ ├── pagination.tpl.html │ │ │ ├── param_flow.html │ │ │ └── system.html │ │ ├── assets │ │ └── img │ │ │ └── sentinel-logo.png │ │ ├── dist │ │ ├── css │ │ │ └── app.css │ │ └── js │ │ │ ├── app.js │ │ │ └── app.vendor.js │ │ ├── gulpfile.js │ │ ├── index.htm │ │ ├── index_dev.htm │ │ ├── lib │ │ ├── css │ │ │ ├── bootstrap.min.css │ │ │ └── font-awesome.min.css │ │ ├── fonts │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ └── js │ │ │ ├── angular.min.js │ │ │ ├── bootstrap.min.js │ │ │ ├── g2.min.js │ │ │ └── jquery.min.js │ │ ├── license-stat.csv │ │ ├── package-lock.json │ │ ├── package.json │ │ └── static │ │ └── favicon.ico ├── XHuiCloud-wechat │ ├── XHuiCloud-wechat-api │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── xhuicloud │ │ │ └── wechat │ │ │ ├── entity │ │ │ ├── WeChatAccount.java │ │ │ └── WechatMenus.java │ │ │ ├── feign │ │ │ └── WeChatAccountFeign.java │ │ │ └── vo │ │ │ ├── WeChatAccountVo.java │ │ │ └── WeChatSummaryVo.java │ ├── XHuiCloud-wechat-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xhuicloud │ │ │ │ └── wechat │ │ │ │ ├── XHuiWechatApplication.java │ │ │ │ ├── config │ │ │ │ ├── WeChatAppIdContextHolder.java │ │ │ │ ├── WeChatExceptionHandlerResolver.java │ │ │ │ └── WeChatMpCommonService.java │ │ │ │ ├── controller │ │ │ │ ├── WeChatAccountController.java │ │ │ │ ├── WeChatMenuController.java │ │ │ │ ├── WeChatUserController.java │ │ │ │ ├── WechatDraftController.java │ │ │ │ ├── WechatMaterialController.java │ │ │ │ ├── WechatMpController.java │ │ │ │ └── WechatPublishController.java │ │ │ │ ├── handle │ │ │ │ ├── WeChatMpMenuClickHandler.java │ │ │ │ ├── WeChatMpScanHandle.java │ │ │ │ └── WeChatMpSubscribeHandle.java │ │ │ │ ├── mapper │ │ │ │ ├── WeChatAccountMapper.java │ │ │ │ └── WechatMenusMapper.java │ │ │ │ └── service │ │ │ │ ├── WeChatAccountService.java │ │ │ │ ├── WechatMaterialService.java │ │ │ │ ├── WechatMenusService.java │ │ │ │ └── impl │ │ │ │ ├── WeChatAccountServiceImpl.java │ │ │ │ ├── WechatMaterialServiceImpl.java │ │ │ │ └── WechatMenusServiceImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ └── mapper │ │ │ └── WeChatAccountMapper.xml │ └── pom.xml ├── XHuiCloud-xxl-admin │ ├── XHuiCloud-xxl-admin-api │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xxl │ │ │ │ └── job │ │ │ │ └── admin │ │ │ │ └── api │ │ │ │ ├── AutoConfiguration.java │ │ │ │ ├── entity │ │ │ │ ├── XxlJobGroup.java │ │ │ │ ├── XxlJobInfo.java │ │ │ │ ├── XxlJobLog.java │ │ │ │ ├── XxlJobLogGlue.java │ │ │ │ ├── XxlJobLogReport.java │ │ │ │ ├── XxlJobRegistry.java │ │ │ │ └── XxlJobUser.java │ │ │ │ └── feign │ │ │ │ └── JobInfoFeign.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring.factories │ ├── XHuiCloud-xxl-admin-service │ │ ├── Dockerfile │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xxl │ │ │ │ └── job │ │ │ │ └── admin │ │ │ │ ├── XHuiXxlJobAdminApplication.java │ │ │ │ ├── controller │ │ │ │ ├── IndexController.java │ │ │ │ ├── JobApiController.java │ │ │ │ ├── JobCodeController.java │ │ │ │ ├── JobGroupController.java │ │ │ │ ├── JobInfoController.java │ │ │ │ ├── JobLogController.java │ │ │ │ ├── UserController.java │ │ │ │ ├── annotation │ │ │ │ │ └── PermissionLimit.java │ │ │ │ ├── interceptor │ │ │ │ │ ├── CookieInterceptor.java │ │ │ │ │ ├── PermissionInterceptor.java │ │ │ │ │ └── WebMvcConfig.java │ │ │ │ └── resolver │ │ │ │ │ └── WebExceptionResolver.java │ │ │ │ ├── core │ │ │ │ ├── alarm │ │ │ │ │ ├── JobAlarm.java │ │ │ │ │ ├── JobAlarmer.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── EmailJobAlarm.java │ │ │ │ ├── complete │ │ │ │ │ └── XxlJobCompleter.java │ │ │ │ ├── conf │ │ │ │ │ └── XxlJobAdminConfig.java │ │ │ │ ├── cron │ │ │ │ │ └── CronExpression.java │ │ │ │ ├── exception │ │ │ │ │ └── XxlJobException.java │ │ │ │ ├── old │ │ │ │ │ ├── RemoteHttpJobBean.java │ │ │ │ │ ├── XxlJobDynamicScheduler.java │ │ │ │ │ └── XxlJobThreadPool.java │ │ │ │ ├── route │ │ │ │ │ ├── ExecutorRouteStrategyEnum.java │ │ │ │ │ ├── ExecutorRouter.java │ │ │ │ │ └── strategy │ │ │ │ │ │ ├── ExecutorRouteBusyover.java │ │ │ │ │ │ ├── ExecutorRouteConsistentHash.java │ │ │ │ │ │ ├── ExecutorRouteFailover.java │ │ │ │ │ │ ├── ExecutorRouteFirst.java │ │ │ │ │ │ ├── ExecutorRouteLFU.java │ │ │ │ │ │ ├── ExecutorRouteLRU.java │ │ │ │ │ │ ├── ExecutorRouteLast.java │ │ │ │ │ │ ├── ExecutorRouteRandom.java │ │ │ │ │ │ └── ExecutorRouteRound.java │ │ │ │ ├── scheduler │ │ │ │ │ ├── MisfireStrategyEnum.java │ │ │ │ │ ├── ScheduleTypeEnum.java │ │ │ │ │ └── XxlJobScheduler.java │ │ │ │ ├── thread │ │ │ │ │ ├── JobCompleteHelper.java │ │ │ │ │ ├── JobFailMonitorHelper.java │ │ │ │ │ ├── JobLogReportHelper.java │ │ │ │ │ ├── JobRegistryHelper.java │ │ │ │ │ ├── JobScheduleHelper.java │ │ │ │ │ └── JobTriggerPoolHelper.java │ │ │ │ ├── trigger │ │ │ │ │ ├── TriggerTypeEnum.java │ │ │ │ │ └── XxlJobTrigger.java │ │ │ │ └── util │ │ │ │ │ ├── CookieUtil.java │ │ │ │ │ ├── FtlUtil.java │ │ │ │ │ ├── I18nUtil.java │ │ │ │ │ ├── JacksonUtil.java │ │ │ │ │ └── LocalCacheUtil.java │ │ │ │ ├── dao │ │ │ │ ├── XxlJobGroupDao.java │ │ │ │ ├── XxlJobInfoDao.java │ │ │ │ ├── XxlJobLogDao.java │ │ │ │ ├── XxlJobLogGlueDao.java │ │ │ │ ├── XxlJobLogReportDao.java │ │ │ │ ├── XxlJobRegistryDao.java │ │ │ │ └── XxlJobUserDao.java │ │ │ │ └── service │ │ │ │ ├── LoginService.java │ │ │ │ ├── XxlJobService.java │ │ │ │ └── impl │ │ │ │ ├── AdminBizImpl.java │ │ │ │ └── XxlJobServiceImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yml │ │ │ ├── i18n │ │ │ ├── message_en.properties │ │ │ ├── message_zh_CN.properties │ │ │ └── message_zh_TC.properties │ │ │ ├── mybatis-mapper │ │ │ ├── XxlJobGroupMapper.xml │ │ │ ├── XxlJobInfoMapper.xml │ │ │ ├── XxlJobLogGlueMapper.xml │ │ │ ├── XxlJobLogMapper.xml │ │ │ ├── XxlJobLogReportMapper.xml │ │ │ ├── XxlJobRegistryMapper.xml │ │ │ └── XxlJobUserMapper.xml │ │ │ ├── static │ │ │ ├── adminlte │ │ │ │ ├── bower_components │ │ │ │ │ ├── Ionicons │ │ │ │ │ │ ├── css │ │ │ │ │ │ │ └── ionicons.min.css │ │ │ │ │ │ └── fonts │ │ │ │ │ │ │ ├── ionicons.eot │ │ │ │ │ │ │ ├── ionicons.svg │ │ │ │ │ │ │ ├── ionicons.ttf │ │ │ │ │ │ │ └── ionicons.woff │ │ │ │ │ ├── PACE │ │ │ │ │ │ ├── pace.min.js │ │ │ │ │ │ └── themes │ │ │ │ │ │ │ └── blue │ │ │ │ │ │ │ └── pace-theme-flash.css │ │ │ │ │ ├── bootstrap-daterangepicker │ │ │ │ │ │ ├── daterangepicker.css │ │ │ │ │ │ └── daterangepicker.js │ │ │ │ │ ├── bootstrap │ │ │ │ │ │ ├── css │ │ │ │ │ │ │ ├── bootstrap.min.css │ │ │ │ │ │ │ └── bootstrap.min.css.map │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ │ │ └── js │ │ │ │ │ │ │ └── bootstrap.min.js │ │ │ │ │ ├── datatables.net-bs │ │ │ │ │ │ ├── css │ │ │ │ │ │ │ └── dataTables.bootstrap.min.css │ │ │ │ │ │ └── js │ │ │ │ │ │ │ └── dataTables.bootstrap.min.js │ │ │ │ │ ├── datatables.net │ │ │ │ │ │ └── js │ │ │ │ │ │ │ └── jquery.dataTables.min.js │ │ │ │ │ ├── fastclick │ │ │ │ │ │ └── fastclick.js │ │ │ │ │ ├── font-awesome │ │ │ │ │ │ ├── css │ │ │ │ │ │ │ ├── font-awesome.css.map │ │ │ │ │ │ │ └── font-awesome.min.css │ │ │ │ │ │ └── fonts │ │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ │ ├── jquery-slimscroll │ │ │ │ │ │ └── jquery.slimscroll.min.js │ │ │ │ │ ├── jquery │ │ │ │ │ │ └── jquery.min.js │ │ │ │ │ └── moment │ │ │ │ │ │ └── moment.min.js │ │ │ │ ├── dist │ │ │ │ │ ├── css │ │ │ │ │ │ ├── AdminLTE.min.css │ │ │ │ │ │ └── skins │ │ │ │ │ │ │ └── _all-skins.min.css │ │ │ │ │ └── js │ │ │ │ │ │ └── adminlte.min.js │ │ │ │ └── plugins │ │ │ │ │ └── iCheck │ │ │ │ │ ├── icheck.min.js │ │ │ │ │ └── square │ │ │ │ │ ├── blue.css │ │ │ │ │ ├── blue.png │ │ │ │ │ └── blue@2x.png │ │ │ ├── favicon.ico │ │ │ ├── js │ │ │ │ ├── common.1.js │ │ │ │ ├── index.js │ │ │ │ ├── jobcode.index.1.js │ │ │ │ ├── jobgroup.index.1.js │ │ │ │ ├── jobinfo.index.1.js │ │ │ │ ├── joblog.detail.1.js │ │ │ │ ├── joblog.index.1.js │ │ │ │ ├── login.1.js │ │ │ │ └── user.index.1.js │ │ │ └── plugins │ │ │ │ ├── codemirror │ │ │ │ ├── addon │ │ │ │ │ └── hint │ │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ │ ├── show-hint.css │ │ │ │ │ │ └── show-hint.js │ │ │ │ ├── lib │ │ │ │ │ ├── codemirror.css │ │ │ │ │ └── codemirror.js │ │ │ │ └── mode │ │ │ │ │ ├── clike │ │ │ │ │ └── clike.js │ │ │ │ │ ├── javascript │ │ │ │ │ └── javascript.js │ │ │ │ │ ├── php │ │ │ │ │ └── php.js │ │ │ │ │ ├── powershell │ │ │ │ │ └── powershell.js │ │ │ │ │ ├── python │ │ │ │ │ └── python.js │ │ │ │ │ └── shell │ │ │ │ │ └── shell.js │ │ │ │ ├── cronGen │ │ │ │ ├── cronGen.js │ │ │ │ └── cronGen_en.js │ │ │ │ ├── echarts │ │ │ │ └── echarts.common.min.js │ │ │ │ ├── jquery │ │ │ │ ├── jquery.cookie.js │ │ │ │ └── jquery.validate.min.js │ │ │ │ └── layer │ │ │ │ ├── layer.js │ │ │ │ └── theme │ │ │ │ └── default │ │ │ │ ├── icon-ext.png │ │ │ │ ├── icon.png │ │ │ │ ├── layer.css │ │ │ │ ├── loading-0.gif │ │ │ │ ├── loading-1.gif │ │ │ │ └── loading-2.gif │ │ │ └── templates │ │ │ ├── common │ │ │ ├── common.exception.ftl │ │ │ └── common.macro.ftl │ │ │ ├── help.ftl │ │ │ ├── index.ftl │ │ │ ├── jobcode │ │ │ └── jobcode.index.ftl │ │ │ ├── jobgroup │ │ │ └── jobgroup.index.ftl │ │ │ ├── jobinfo │ │ │ └── jobinfo.index.ftl │ │ │ ├── joblog │ │ │ ├── joblog.detail.ftl │ │ │ └── joblog.index.ftl │ │ │ ├── login.ftl │ │ │ └── user │ │ │ └── user.index.ftl │ └── pom.xml └── pom.xml ├── XHuiCloud-commons ├── XHuiCloud-common-authorization-resource │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── authorization │ │ │ └── resource │ │ │ ├── ResourceServerAutoConfiguration.java │ │ │ ├── annotation │ │ │ ├── Anonymous.java │ │ │ └── EnableResourceServer.java │ │ │ ├── aspect │ │ │ └── AnonymousAspect.java │ │ │ ├── component │ │ │ ├── AuthorizeService.java │ │ │ ├── CustomAuthenticationEntryPoint.java │ │ │ ├── CustomJwtAuthenticationConverter.java │ │ │ ├── CustomOpaqueTokenIntrospect.java │ │ │ ├── GlobalExceptionHandlerResolver.java │ │ │ └── OAuth2TokenRequestInterceptor.java │ │ │ ├── constant │ │ │ ├── CustomAuthorizationGrantType.java │ │ │ └── LoginPlatformEnum.java │ │ │ ├── properties │ │ │ └── SecurityProperties.java │ │ │ ├── social │ │ │ └── SocialHandler.java │ │ │ ├── userdetails │ │ │ ├── XHuiOtherUserDetailsServiceImpl.java │ │ │ ├── XHuiUser.java │ │ │ ├── XHuiUserDetailsService.java │ │ │ └── XHuiUserDetailsServiceImpl.java │ │ │ └── utils │ │ │ └── SecurityHolder.java │ │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── XHuiCloud-common-authorization │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── authorization │ │ │ ├── AuthorizationServerAutoConfiguration.java │ │ │ ├── BaseWebSecurityConfigurer.java │ │ │ ├── FormLoginConfigurer.java │ │ │ ├── annotation │ │ │ └── EnableAuthorizationServer.java │ │ │ ├── extension │ │ │ ├── CustomExceptionTranslator.java │ │ │ ├── CustomOAuth2TokenCustomizer.java │ │ │ ├── RedisOAuth2AuthorizationService.java │ │ │ ├── core │ │ │ │ ├── CustomAuthenticationToken.java │ │ │ │ ├── CustomDaoAuthenticationProvider.java │ │ │ │ ├── OAuth2CustomAuthenticationConverter.java │ │ │ │ ├── OAuth2CustomAuthenticationProvider.java │ │ │ │ ├── OAuth2CustomGrantAuthenticationToken.java │ │ │ │ └── UsernamePasswordGrantAuthenticationToken.java │ │ │ ├── password │ │ │ │ ├── OAuth2PasswordAuthenticationConverter.java │ │ │ │ ├── OAuth2PasswordAuthenticationProvider.java │ │ │ │ └── OAuth2PasswordGrantAuthenticationToken.java │ │ │ ├── sms │ │ │ │ ├── OAuth2SmsAuthenticationConverter.java │ │ │ │ ├── OAuth2SmsAuthenticationProvider.java │ │ │ │ └── OAuth2SmsGrantAuthenticationToken.java │ │ │ └── social │ │ │ │ ├── OAuth2SocialAuthenticationConverter.java │ │ │ │ ├── OAuth2SocialAuthenticationProvider.java │ │ │ │ └── OAuth2SocialGrantAuthenticationToken.java │ │ │ ├── handler │ │ │ ├── AbstractAuthenticationHandler.java │ │ │ ├── AuthenticationErrorResponseHandler.java │ │ │ ├── DelegatingAuthenticationFailureHandler.java │ │ │ ├── DelegatingAuthenticationSuccessHandler.java │ │ │ └── FormAuthenticationFailureHandler.java │ │ │ ├── jose │ │ │ ├── Jwks.java │ │ │ └── KeyGeneratorUtils.java │ │ │ ├── repository │ │ │ └── CustomRegisteredClientRepository.java │ │ │ └── utils │ │ │ ├── OAuth2AuthenticationProviderUtils.java │ │ │ └── OAuth2EndpointUtils.java │ │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── XHuiCloud-common-core │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── core │ │ │ ├── annotation │ │ │ ├── Excel.java │ │ │ ├── Excels.java │ │ │ └── Scalpel.java │ │ │ ├── constant │ │ │ ├── AuthorizationConstants.java │ │ │ ├── CacheConstants.java │ │ │ ├── CommonConstants.java │ │ │ ├── JdbcConnectConstants.java │ │ │ ├── SecurityConstants.java │ │ │ ├── ServiceNameConstants.java │ │ │ ├── SysParamConstants.java │ │ │ └── ThirdLoginUrlConstants.java │ │ │ ├── data │ │ │ ├── ScalpelSerialize.java │ │ │ └── ScalpelTypeEnum.java │ │ │ ├── enums │ │ │ ├── RejectedExecutionEnum.java │ │ │ ├── base │ │ │ │ ├── AuditStateEnum.java │ │ │ │ ├── BooleanEnum.java │ │ │ │ └── ParamTypeEnum.java │ │ │ ├── excel │ │ │ │ ├── ColumnType.java │ │ │ │ └── ExcelType.java │ │ │ └── pay │ │ │ │ └── PayTypeEnum.java │ │ │ ├── exception │ │ │ ├── SysException.java │ │ │ ├── ValidateCodeException.java │ │ │ ├── ValidateException.java │ │ │ └── base │ │ │ │ ├── BaseException.java │ │ │ │ └── BaseRuntimeException.java │ │ │ ├── jackson │ │ │ └── XHuiJacksonConfig.java │ │ │ ├── thread │ │ │ ├── AsyncThreadExecuteConfiguration.java │ │ │ ├── AsyncThreadExecutePool.java │ │ │ ├── AsyncThreadExecuteProperties.java │ │ │ ├── ThreadBroker.java │ │ │ └── ThreadFactoryName.java │ │ │ ├── ttl │ │ │ └── XHuiCommonThreadLocalHolder.java │ │ │ └── utils │ │ │ ├── AesUtil.java │ │ │ ├── BaseBeanCopier.java │ │ │ ├── BeanProperty.java │ │ │ ├── BeanUtils.java │ │ │ ├── ByteFormat.java │ │ │ ├── ClassUtils.java │ │ │ ├── DateUtils.java │ │ │ ├── ExcelUtil.java │ │ │ ├── KeyStrResolver.java │ │ │ ├── ReflectUtils.java │ │ │ ├── Response.java │ │ │ ├── ScalpelUtil.java │ │ │ └── WebUtils.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ └── banner.txt ├── XHuiCloud-common-data │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── data │ │ │ ├── cache │ │ │ ├── DefaultRedisCacheWriter.java │ │ │ ├── RedisAutoCacheManager.java │ │ │ ├── RedisCacheAutoConfiguration.java │ │ │ ├── RedisCacheManagerConfig.java │ │ │ └── RedisTemplateConfig.java │ │ │ ├── resolver │ │ │ └── TenantKeyResolver.java │ │ │ └── tenant │ │ │ └── XHuiTenantThreadBroker.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── XHuiCloud-common-dds │ ├── ReadMe.md │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── xhuicloud │ │ └── common │ │ └── datasource │ │ ├── XHuiDdsAutoConfiguration.java │ │ ├── annotation │ │ └── EnableDynamicDataSource.java │ │ ├── config │ │ ├── ClearDataSourceInterceptor.java │ │ ├── DataSourceProperties.java │ │ ├── TenantDsProcessor.java │ │ ├── WebMvcConfig.java │ │ └── XHuiDynamicDataSourceProvider.java │ │ ├── entity │ │ └── GenDsInfo.java │ │ └── enums │ │ └── DsJdbcUrlEnum.java ├── XHuiCloud-common-elasticJob │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── elasticJob │ │ │ ├── XHuiElasticJobAutoConfiguration.java │ │ │ ├── annotation │ │ │ └── EnableElasticJob.java │ │ │ ├── basejob │ │ │ ├── AllJobInitialize.java │ │ │ └── BaseJobInitialize.java │ │ │ └── properties │ │ │ └── ElasticJobProperties.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── XHuiCloud-common-feign │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── feign │ │ │ ├── XHuiFeignAutoConfiguration.java │ │ │ ├── annotation │ │ │ └── EnableXHuiFeignClients.java │ │ │ ├── endpoint │ │ │ └── FeignClientEndpoint.java │ │ │ ├── filters │ │ │ └── XHuiTenantFilter.java │ │ │ └── interceptor │ │ │ └── XHuiFeignTenantInterceptor.java │ │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── XHuiCloud-common-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── xhuicloud │ │ └── common │ │ └── gateway │ │ ├── annotation │ │ └── EnableDynamicRoute.java │ │ ├── configuration │ │ ├── DynamicRouteAutoConfiguration.java │ │ ├── GlobalGatewayExceptionHandler.java │ │ ├── GlobalGrayLoadBalancerClientConfiguration.java │ │ └── GlobalGrayReactiveLoadBalancerClientFilter.java │ │ ├── rule │ │ ├── GlobalGrayLoadBalancer.java │ │ └── VersionGlobalGrayLoadBalancer.java │ │ ├── support │ │ ├── ClientDetailsInitEvent.java │ │ ├── DynamicRouteInitEvent.java │ │ ├── RedisRouteDefinitionWriter.java │ │ └── RouteCacheHolder.java │ │ └── vo │ │ ├── ClientDefinitionVo.java │ │ └── RouteDefinitionVo.java ├── XHuiCloud-common-gray │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── gray │ │ │ ├── GlobalGrayRibbonLoadBalancerConfiguration.java │ │ │ ├── GrayLoadBalancerAutoConfiguration.java │ │ │ ├── interceptor │ │ │ └── GlobalGrayFeignRequestInterceptor.java │ │ │ └── rule │ │ │ └── GlobalGrayRibbonLoadBalancerRule.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── XHuiCloud-common-lock │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xhuicloud │ │ │ │ └── common │ │ │ │ └── lock │ │ │ │ ├── XHuiRedissonLock.java │ │ │ │ ├── XHuiRedissonManager.java │ │ │ │ ├── annotation │ │ │ │ └── XHuiLock.java │ │ │ │ ├── aspect │ │ │ │ └── LockAspect.java │ │ │ │ ├── config │ │ │ │ └── RedissonAutoConfiguration.java │ │ │ │ ├── enums │ │ │ │ └── RedissonEnum.java │ │ │ │ ├── operation │ │ │ │ ├── RedissonBinary.java │ │ │ │ ├── RedissonCollection.java │ │ │ │ └── RedissonObject.java │ │ │ │ ├── properties │ │ │ │ └── XHuiRedisProperties.java │ │ │ │ └── strategy │ │ │ │ ├── ConfigService.java │ │ │ │ └── impl │ │ │ │ ├── ClusterConfigImpl.java │ │ │ │ ├── MasterslaveConfigImpl.java │ │ │ │ ├── SentineConfigImpl.java │ │ │ │ └── StandaloneConfigImpl.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring.factories │ └── 分布式锁配置.md ├── XHuiCloud-common-log │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── log │ │ │ ├── XHuiLogAutoConfiguration.java │ │ │ ├── annotation │ │ │ ├── AuditRecord.java │ │ │ └── EnableAudit.java │ │ │ ├── aspect │ │ │ └── AuditRecordAspect.java │ │ │ ├── component │ │ │ ├── IOperatorGetService.java │ │ │ ├── LogEvaluationContext.java │ │ │ ├── LogExpressionEvaluator.java │ │ │ ├── LogExpressionParser.java │ │ │ └── MethodResult.java │ │ │ ├── constant │ │ │ └── LogConstant.java │ │ │ ├── filters │ │ │ └── XHuiReqIdFilter.java │ │ │ ├── init │ │ │ └── ApplicationLoggerInitializer.java │ │ │ ├── logback │ │ │ └── defaults-log.xml │ │ │ ├── model │ │ │ ├── AuditModel.java │ │ │ └── Operator.java │ │ │ └── utils │ │ │ ├── LogRecordContext.java │ │ │ └── LogUtil.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── XHuiCloud-common-mqtt │ ├── XHuiCloud-common-mqtt-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── xhuicloud │ │ │ │ └── common │ │ │ │ └── mqtt │ │ │ │ └── server │ │ │ │ ├── auth │ │ │ │ ├── MqttAuthHandler.java │ │ │ │ ├── MqttHttpAuthFilter.java │ │ │ │ ├── MqttSubscribeValidator.java │ │ │ │ └── MqttUniqueIdService.java │ │ │ │ └── listener │ │ │ │ └── DemoMqttServerMessageListener.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── pom.xml ├── XHuiCloud-common-mybatis │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── mybatis │ │ │ ├── config │ │ │ ├── DruidSqlLogFilterAdapter.java │ │ │ └── XHuiMybatisPlusConfig.java │ │ │ ├── handler │ │ │ └── StringToArrayTypeHandler.java │ │ │ ├── meta │ │ │ └── AutoFieldMetaObjectHandler.java │ │ │ ├── resolver │ │ │ └── SqlFilterResolver.java │ │ │ ├── tenant │ │ │ ├── TenantCoreProperties.java │ │ │ ├── XHuiRequestInterceptor.java │ │ │ ├── XHuiTenantConfiguration.java │ │ │ └── XHuiTenantHandler.java │ │ │ └── utils │ │ │ └── PageConvertor.java │ │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── XHuiCloud-common-oss │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── oss │ │ │ ├── OssAutoConfiguration.java │ │ │ ├── endpoint │ │ │ └── OssCommonEndpoint.java │ │ │ ├── properties │ │ │ └── OssProperties.java │ │ │ └── service │ │ │ ├── BucketService.java │ │ │ └── OssService.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── XHuiCloud-common-rabbitMq │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── xhuicloud │ │ └── common │ │ └── mq │ │ ├── XHuiRabbitMqAutoConfiguration.java │ │ ├── annotation │ │ └── EnableXHuiRabbitMq.java │ │ ├── aspect │ │ └── MqListenerAop.java │ │ ├── config │ │ ├── RabbitMqCommonCallbackConfig.java │ │ ├── XHuiDefaultRabbitMqCallback.java │ │ ├── XHuiRabbitAutoRegister.java │ │ └── XHuiRabbitMqCallback.java │ │ ├── constant │ │ └── XHuiRabbitMqConstant.java │ │ ├── entity │ │ ├── MqEntity.java │ │ └── push │ │ │ └── PushMqEntity.java │ │ ├── properties │ │ └── XHuiRabbitMqProperties.java │ │ └── service │ │ └── CommonMqService.java ├── XHuiCloud-common-seata │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── xhuicloud │ │ │ │ └── common │ │ │ │ └── transaction │ │ │ │ └── configuration │ │ │ │ └── XHuiSeataConfiguration.java │ │ └── io │ │ │ └── seata │ │ │ └── spring │ │ │ └── annotation │ │ │ └── GlobalTransactionScanner.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── XHuiCloud-common-sentinel │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── sentinel │ │ │ ├── SentinelAutoConfiguration.java │ │ │ ├── extension │ │ │ ├── CustomSentinelFeign.java │ │ │ ├── CustomSentinelInvocationHandler.java │ │ │ ├── EnhanceExceptionHandler.java │ │ │ └── EnhanceGlobalExceptionResolver.java │ │ │ └── handler │ │ │ ├── XHuiBlockRequestHandler.java │ │ │ └── XHuiUrlBlockHandler.java │ │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── XHuiCloud-common-swagger │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── xhuicloud │ │ └── common │ │ └── swagger │ │ ├── annotation │ │ └── EnableXHuiSwagger.java │ │ ├── config │ │ ├── FluxSwaggerConfiguration.java │ │ ├── SwaggerAutoConfiguration.java │ │ ├── SwaggerConfiguration.java │ │ └── SwaggerProvider.java │ │ ├── handle │ │ ├── SwaggerResourceHandler.java │ │ ├── SwaggerSecurityHandler.java │ │ └── SwaggerUiHandler.java │ │ └── properties │ │ └── SwaggerProperties.java ├── XHuiCloud-common-xxl │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── xhuicloud │ │ └── common │ │ └── xxl │ │ ├── XHuiXxlJobAutoConfiguration.java │ │ ├── annotation │ │ └── EnableXxlJob.java │ │ └── properties │ │ └── XxlJobProperties.java ├── XHuiCloud-common-zero │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── common │ │ │ └── zero │ │ │ ├── XHuiZeroAutoConfiguration.java │ │ │ ├── base │ │ │ ├── IDGenerate.java │ │ │ └── IDGenerateBuilder.java │ │ │ ├── connect │ │ │ └── SnowflakeZookeeper.java │ │ │ ├── exception │ │ │ ├── CheckLastTimeException.java │ │ │ ├── CheckOtherNodeException.java │ │ │ └── ClockGoBackException.java │ │ │ ├── properties │ │ │ └── DefaultSnowflakeProperties.java │ │ │ ├── snowflake │ │ │ ├── DefaultSnowflakeIDGenerate.java │ │ │ └── DefaultSnowflakeIDGenerateBuilder.java │ │ │ └── utils │ │ │ └── IpUtils.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ └── fdp.properties └── pom.xml ├── XHuiCloud-dependencies-bom └── pom.xml ├── XHuiCloud-upms ├── XHuiCloud-upms-api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── xhuicloud │ │ └── upms │ │ ├── dto │ │ ├── DeptTree.java │ │ ├── MenuTree.java │ │ ├── RoleDto.java │ │ ├── RoleMenusDto.java │ │ ├── RouteConfDto.java │ │ ├── TenantDto.java │ │ ├── TreeNode.java │ │ ├── UserDto.java │ │ ├── UserInfo.java │ │ └── UserQueryDto.java │ │ ├── entity │ │ ├── SysClientDetails.java │ │ ├── SysDept.java │ │ ├── SysDict.java │ │ ├── SysDictData.java │ │ ├── SysFile.java │ │ ├── SysMenu.java │ │ ├── SysParam.java │ │ ├── SysRole.java │ │ ├── SysRoleMenu.java │ │ ├── SysRouteConf.java │ │ ├── SysSocial.java │ │ ├── SysTenant.java │ │ ├── SysUser.java │ │ ├── SysUserDept.java │ │ ├── SysUserRole.java │ │ └── SysUserSocial.java │ │ ├── feign │ │ ├── SysClientDetailFeign.java │ │ ├── SysParamServiceFeign.java │ │ ├── SysSocialServiceFeign.java │ │ ├── SysTenantServiceFeign.java │ │ └── SysUserServiceFeign.java │ │ ├── utils │ │ └── TreeUtil.java │ │ └── vo │ │ ├── ClientVo.java │ │ ├── DeptVo.java │ │ ├── FileVo.java │ │ ├── FilterVo.java │ │ ├── MenuVo.java │ │ ├── PredicateAndFilterVo.java │ │ ├── PredicateVo.java │ │ ├── RoleVo.java │ │ ├── SocialVo.java │ │ ├── TenantVo.java │ │ └── UserVo.java ├── XHuiCloud-upms-service │ ├── Dockerfile │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── xhuicloud │ │ │ └── upms │ │ │ ├── XHuiUpmsApplication.java │ │ │ ├── controller │ │ │ ├── SysClientDetailController.java │ │ │ ├── SysDeptController.java │ │ │ ├── SysDictController.java │ │ │ ├── SysDictDataController.java │ │ │ ├── SysEnumController.java │ │ │ ├── SysFileController.java │ │ │ ├── SysMenuController.java │ │ │ ├── SysMobileController.java │ │ │ ├── SysParamController.java │ │ │ ├── SysRoleController.java │ │ │ ├── SysRouteConfController.java │ │ │ ├── SysSocialController.java │ │ │ ├── SysTenantController.java │ │ │ └── SysUserController.java │ │ │ ├── handle │ │ │ └── login │ │ │ │ ├── AbstractSocialHandler.java │ │ │ │ ├── MobileHandle.java │ │ │ │ ├── QqHandle.java │ │ │ │ ├── UsernamePasswordHandle.java │ │ │ │ └── WeChatMplHandle.java │ │ │ ├── init │ │ │ ├── ClientInit.java │ │ │ └── RouteInit.java │ │ │ ├── mapper │ │ │ ├── SysClientDetailsMapper.java │ │ │ ├── SysDeptMapper.java │ │ │ ├── SysDictDataMapper.java │ │ │ ├── SysDictMapper.java │ │ │ ├── SysFileMapper.java │ │ │ ├── SysMenuMapper.java │ │ │ ├── SysParamMapper.java │ │ │ ├── SysRoleMapper.java │ │ │ ├── SysRoleMenuMapper.java │ │ │ ├── SysRouteConfMapper.java │ │ │ ├── SysSocialMapper.java │ │ │ ├── SysTenantMapper.java │ │ │ ├── SysUserDeptMapper.java │ │ │ ├── SysUserMapper.java │ │ │ ├── SysUserRoleMapper.java │ │ │ └── SysUserSocialMapper.java │ │ │ └── service │ │ │ ├── SysClientDetailsService.java │ │ │ ├── SysDeptService.java │ │ │ ├── SysDictDataService.java │ │ │ ├── SysDictService.java │ │ │ ├── SysFileService.java │ │ │ ├── SysMenuService.java │ │ │ ├── SysMobileService.java │ │ │ ├── SysParamService.java │ │ │ ├── SysRoleMenuService.java │ │ │ ├── SysRoleService.java │ │ │ ├── SysRouteConfService.java │ │ │ ├── SysSocialService.java │ │ │ ├── SysTenantService.java │ │ │ ├── SysUserDeptService.java │ │ │ ├── SysUserRoleService.java │ │ │ ├── SysUserService.java │ │ │ ├── SysUserSocialService.java │ │ │ └── impl │ │ │ ├── SysClientDetailsServiceImpl.java │ │ │ ├── SysDeptServiceImpl.java │ │ │ ├── SysDictDataServiceImpl.java │ │ │ ├── SysDictServiceImpl.java │ │ │ ├── SysFileServiceImpl.java │ │ │ ├── SysMenuServiceImpl.java │ │ │ ├── SysMobileServiceImpl.java │ │ │ ├── SysParamServiceImpl.java │ │ │ ├── SysRoleMenuServiceImpl.java │ │ │ ├── SysRoleServiceImpl.java │ │ │ ├── SysRouteConfServiceImpl.java │ │ │ ├── SysSocialServiceImpl.java │ │ │ ├── SysTenantServiceImpl.java │ │ │ ├── SysUserDeptServiceImpl.java │ │ │ ├── SysUserRoleServiceImpl.java │ │ │ ├── SysUserServiceImpl.java │ │ │ └── SysUserSocialServiceImpl.java │ │ └── resources │ │ ├── bootstrap.yml │ │ └── mapper │ │ ├── SysDeptMapper.xml │ │ ├── SysDictDataMapper.xml │ │ ├── SysDictMapper.xml │ │ ├── SysFileMapper.xml │ │ ├── SysMenuMapper.xml │ │ ├── SysParamMapper.xml │ │ ├── SysRoleMapper.xml │ │ ├── SysRoleMenuMapper.xml │ │ ├── SysRouteConfMapper.xml │ │ ├── SysTenantMapper.xml │ │ ├── SysUserDeptMapper.xml │ │ ├── SysUserMapper.xml │ │ ├── SysUserRoleMapper.xml │ │ └── SysUserSocialMapper.xml └── pom.xml ├── architecture.png ├── doc ├── db │ ├── 1schema.sql │ ├── 2xhuicloud_sys.sql │ ├── 3xhuicloud_register.sql │ ├── 4xhuicloud_job.sql │ ├── 5xhuicloud_wechat.sql │ ├── 6xhuicloud_gen.sql │ ├── 7xhuicloud_push.sql │ ├── 8xhuicloud_audit.sql │ ├── Dockerfile │ └── README.md ├── mq │ ├── enabled_plugins │ └── rabbitmq_delayed_message_exchange-3.11.1.ez └── script │ └── windows │ └── host.bat ├── docker-compose.yaml ├── jetbrains.png └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | # Project exclude paths 2 | /FDP-auth/target/ 3 | /FDP-commons/FDP-common-core/target/ 4 | /FDP-commons/FDP-common-datasource/target/ 5 | /FDP-commons/FDP-common-security/target/ 6 | /FDP-commons/FDP-common-sentinel/target/ 7 | /FDP-management-business/FDP-gateway/target/ 8 | /FDP-management-business/FDP-register/target/ 9 | /FDP-management-business/FDP-sentinel-dashboard/target/ 10 | /FDP-upmm/FDP-upmm-api/target/ 11 | /FDP-upmm/FDP-upmm-business/target/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Sinda 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /XHuiCloud-auth/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-auth 10 | 11 | WORKDIR /XHuiCloud-auth 12 | 13 | EXPOSE 16000 14 | 15 | COPY ./target/XHuiCloud-auth.jar XHuiCloud-auth.jar 16 | 17 | CMD java -Xms256m -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-auth.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-auth/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: @artifactId@ 4 | profiles: 5 | active: @profiles.active@ 6 | cloud: 7 | nacos: 8 | discovery: 9 | #nacos 地址 10 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 11 | config: 12 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 13 | config: 14 | import: 15 | - optional:nacos:application-common-@profiles.active@.yml 16 | - optional:nacos:xhuicloud-common-@profiles.active@.yml 17 | - optional:nacos:@artifactId@-@profiles.active@.yml 18 | 19 | server: 20 | port: 16000 21 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-ai 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | XHuiCloud-ai-api 13 | 14 | 15 | 8 16 | 8 17 | 18 | 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-api/src/main/java/com/xhuicloud/ai/vo/MessagesVo.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.vo; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 7 | * @Author Sinda 8 | * @Date 2023/2/12 9 | */ 10 | @Data 11 | public class MessagesVo { 12 | 13 | private String messageId; 14 | 15 | private String text; 16 | 17 | private String userId; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/XHuiAiApplication.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai; 2 | 3 | import com.xhuicloud.common.authorization.resource.annotation.EnableResourceServer; 4 | import com.xhuicloud.common.feign.annotation.EnableXHuiFeignClients; 5 | import org.springframework.boot.SpringApplication; 6 | import org.springframework.boot.autoconfigure.SpringBootApplication; 7 | 8 | /** 9 | * @Desc 10 | * @Author Sinda 11 | * @Date 2023/2/10 12 | */ 13 | @SpringBootApplication 14 | @EnableXHuiFeignClients 15 | @EnableResourceServer 16 | public class XHuiAiApplication { 17 | 18 | public static void main(String[] args) { 19 | SpringApplication.run(XHuiAiApplication.class, args); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/completion/CompletionChoice.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.completion; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 7 | * @Author Sinda 8 | * @Date 2023/2/10 9 | */ 10 | @Data 11 | public class CompletionChoice { 12 | 13 | /** 14 | * 生成的文本。将包括提示,如果{@link CompletionRequest#echo } true 15 | */ 16 | String text; 17 | 18 | /** 19 | * 该补全在返回列表中的索引。 20 | */ 21 | Integer index; 22 | 23 | /** 24 | * 所选令牌和顶部{@link CompletionRequest#logprobs}令牌的日志概率 25 | */ 26 | LogProbResult logprobs; 27 | 28 | /** 29 | * GPT-3停止生成的原因,例如“长度”。 30 | */ 31 | String finish_reason; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/completion/CompletionResult.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.completion; 2 | 3 | import com.xhuicloud.ai.chatgpt.model.Usage; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @Desc 10 | * @Author Sinda 11 | * @Date 2023/2/10 12 | */ 13 | @Data 14 | public class CompletionResult { 15 | 16 | /** 17 | * 分配给该补全的唯一id。 18 | */ 19 | String id; 20 | 21 | /** 22 | * 返回的对象类型应该是"text_completion" 23 | */ 24 | String object; 25 | 26 | /** 27 | * 秒为单位的创建时间。 28 | */ 29 | long created; 30 | 31 | /** 32 | * 采用GPT-3模型。 33 | */ 34 | String model; 35 | 36 | /** 37 | * 生成的完成列表。 38 | */ 39 | List choices; 40 | 41 | /** 42 | * 此请求的API使用情况 43 | */ 44 | Usage usage; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/completion/LogProbResult.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.completion; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | /** 9 | * @Desc 记录不同令牌选项的概率 如果{@link CompletionRequest#logprobs}大于零返回 10 | * @Url https://beta.openai.com/docs/api-reference/create-completion 11 | * @Author Sinda 12 | * @Date 2023/2/10 13 | */ 14 | @Data 15 | public class LogProbResult { 16 | 17 | 18 | /** 19 | * 每个符号输入的对数概率 {@link tokensS} 20 | */ 21 | List tokenLogprobs; 22 | 23 | /** 24 | * 补全api选择的令牌 25 | */ 26 | List tokens; 27 | 28 | 29 | /** 30 | * 完成结果中每个索引的映射. 31 | * 该映射包含顶部 {@link CompletionRequest#logprobs} 令牌及其概率 32 | */ 33 | List> topLogprobs; 34 | 35 | /** 36 | * 对于每个选定的标记,从返回文本开始的字符偏移量。 37 | */ 38 | List textOffset; 39 | 40 | } 41 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/edit/EditChoice.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.edit; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 为提供的输入、指令和参数创建新的编辑。 7 | * @Author Sinda 8 | * @Date 2023/2/10 9 | */ 10 | @Data 11 | public class EditChoice { 12 | 13 | /** 14 | * 编辑后的文本。 15 | */ 16 | String text; 17 | 18 | /** 19 | * 该补全在返回列表中的索引 20 | */ 21 | Integer index; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/edit/EditResult.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.edit; 2 | 3 | import com.xhuicloud.ai.chatgpt.model.Usage; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @Desc 10 | * @Author Sinda 11 | * @Date 2023/2/10 12 | */ 13 | @Data 14 | public class EditResult { 15 | /** 16 | * 返回的对象类型应该是"edit" 17 | */ 18 | public String object; 19 | 20 | /** 21 | * 毫秒为单位的创建时间 22 | */ 23 | public long created; 24 | 25 | /** 26 | * 生成的编辑列表 27 | */ 28 | public List choices; 29 | 30 | /** 31 | * 此请求的API使用情况 32 | */ 33 | public Usage usage; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/embedding/Embedding.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.embedding; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @Desc 9 | * @Url https://platform.openai.com/docs/guides/embeddings/what-are-embeddings 10 | * @Author Sinda 11 | * @Date 2023/2/10 12 | */ 13 | @Data 14 | public class Embedding { 15 | 16 | /** 17 | * 返回的对象类型应该是"embedding" 18 | */ 19 | String object; 20 | 21 | /** 22 | * 嵌入向量 23 | */ 24 | List embedding; 25 | 26 | /** 27 | * 这个嵌入在列表中的位置 28 | */ 29 | Integer index; 30 | } 31 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/embedding/EmbeddingRequest.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.embedding; 2 | 3 | import lombok.*; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @Desc 创建表示输入文本的嵌入向量。 9 | * @Url https://beta.openai.com/docs/api-reference/embeddings/create 10 | * @Author Sinda 11 | * @Date 2023/2/10 12 | */ 13 | @Data 14 | @Builder 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | public class EmbeddingRequest { 18 | 19 | /** 20 | * 要使用的模型名称。 21 | * 如果使用新的v1/embeddings端点 不能为空 22 | */ 23 | String model; 24 | 25 | /** 26 | * 输入文本以获取嵌入,编码为字符串或令牌数组。 27 | * 要在单个请求中获得多个输入的嵌入,请传递一个字符串数组或令牌数组数组。 28 | * 每个输入的token长度不能超过2048个。 29 | *

30 | * 除非你是嵌入代码,否则我们建议将输入中的换行符(\n)替换为一个空格, 31 | * 当换行符出现时,我们观察到较差的结果。 32 | */ 33 | @NonNull 34 | List input; 35 | 36 | /** 37 | * 代表终端用户的唯一标识符 38 | */ 39 | String user; 40 | 41 | } 42 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/embedding/EmbeddingResult.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.embedding; 2 | 3 | import com.xhuicloud.ai.chatgpt.model.Usage; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @Desc 一个包含answer api响应的对象 10 | * @Author Sinda 11 | * @Date 2023/2/10 12 | */ 13 | @Data 14 | public class EmbeddingResult { 15 | /** 16 | * 用于生成嵌入的GPT-3模型 17 | */ 18 | String model; 19 | 20 | /** 21 | * 返回的对象类型应该是"list" 22 | */ 23 | String object; 24 | 25 | /** 26 | * 计算嵌入的列表 27 | */ 28 | List data; 29 | 30 | /** 31 | * 此请求的API使用情况 32 | */ 33 | Usage usage; 34 | 35 | 36 | } 37 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/file/File.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.file; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 文件用于上传可与微调等功能一起使用的文档. 7 | * @Url https://beta.openai.com/docs/api-reference/files 8 | * @Author Sinda 9 | * @Date 2023/2/10 10 | */ 11 | @Data 12 | public class File { 13 | 14 | 15 | /** 16 | * 此文件的唯一id. 17 | */ 18 | String id; 19 | 20 | /** 21 | * 返回的对象类型应该是"file" 22 | */ 23 | String object; 24 | 25 | /** 26 | * 文件大小(字节) 27 | */ 28 | Long bytes; 29 | 30 | /** 31 | * 秒为单位的创建时间 32 | */ 33 | Long createdAt; 34 | 35 | /** 36 | * 文件的名称。 37 | */ 38 | String filename; 39 | 40 | /** 41 | * 文件用途的描述。 42 | */ 43 | String purpose; 44 | } 45 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/finetune/FineTuneEvent.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.finetune; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 管理微调作业,以根据特定训练数据定制模型。 7 | * @Url https://beta.openai.com/docs/api-reference/fine-tunes 8 | * @Author Sinda 9 | * @Date 2023/2/10 10 | */ 11 | @Data 12 | public class FineTuneEvent { 13 | 14 | /** 15 | * 返回的对象类型应为"fine-tune-event"。 16 | */ 17 | String object; 18 | 19 | /** 20 | * 秒为单位的创建时间。 21 | */ 22 | Long createdAt; 23 | 24 | /** 25 | * 该消息的日志级别。 26 | */ 27 | String level; 28 | 29 | /** 30 | * 事件消息。 31 | */ 32 | String message; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/finetune/HyperParameters.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.finetune; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 微调作业 参数 7 | * @Author Sinda 8 | * @Date 2023/2/10 9 | */ 10 | @Data 11 | public class HyperParameters { 12 | 13 | /** 14 | * 用于微调的批大小 15 | */ 16 | String batchSize; 17 | 18 | /** 19 | * 用于训练的学习率乘数。 20 | */ 21 | Double learningRateMultiplier; 22 | 23 | /** 24 | * 训练模型的epoch数。 25 | */ 26 | Integer nEpochs; 27 | 28 | /** 29 | * 用于提示令牌损失的权重 30 | */ 31 | Double promptLossWeight; 32 | } 33 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/image/CreateImageEditRequest.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.image; 2 | 3 | import lombok.*; 4 | 5 | /** 6 | * @Desc 要求OpenAi根据提示编辑图像 除prompt外的所有字段都是可选的 7 | * @Url https://beta.openai.com/docs/api-reference/images/create-edit 8 | * @Author Sinda 9 | * @Date 2023/2/10 10 | */ 11 | @Data 12 | @Builder 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class CreateImageEditRequest { 16 | 17 | /** 18 | * 所需图像的文本描述。最大长度为1000个字符。 19 | */ 20 | @NonNull 21 | String prompt; 22 | 23 | /** 24 | * 要生成的图像数量。必须在1到10之间。默认值为1。 25 | */ 26 | Integer n; 27 | 28 | /** 29 | * 生成图像的大小。必须是256x256、512x512或1024x1024中的一个。默认为“1024x1024”。 30 | */ 31 | String size; 32 | 33 | /** 34 | * 所生成图像的返回格式。必须是url或b64_json之一。默认为url。 35 | */ 36 | String responseFormat; 37 | 38 | /** 39 | * 代表终端用户的唯一标识符,这将帮助OpenAI监控和检测滥用。 40 | */ 41 | String user; 42 | 43 | } 44 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/image/CreateImageRequest.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.image; 2 | 3 | import lombok.*; 4 | 5 | /** 6 | * @Desc 请求OpenAi根据提示创建图像 除prompt外的所有字段都是可选的 7 | * @Url https://beta.openai.com/docs/api-reference/images/create 8 | * @Author Sinda 9 | * @Date 2023/2/10 10 | */ 11 | @Data 12 | @Builder 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class CreateImageRequest { 16 | 17 | /** 18 | * 所需图像的文本描述。最大长度为1000个字符。 19 | */ 20 | @NonNull 21 | String prompt; 22 | 23 | /** 24 | * 要生成的图像数量。必须在1到10之间。默认值为1。 25 | */ 26 | Integer n; 27 | 28 | /** 29 | * 生成图像的大小。必须是256x256、512x512或1024x1024中的一个。默认为“1024x1024”。 30 | */ 31 | String size; 32 | 33 | /** 34 | * 所生成图像的返回格式。必须是url或b64_json之一。默认为url。 35 | */ 36 | String responseFormat; 37 | 38 | /** 39 | * 代表终端用户的唯一标识符,这将帮助OpenAI监控和检测滥用。 40 | */ 41 | String user; 42 | 43 | } 44 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/image/CreateImageVariationRequest.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.image; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @Desc 请求OpenAi创建一个图像的变体 所有字段都是可选的 10 | * @Url https://beta.openai.com/docs/api-reference/images/create-variation 11 | * @Author Sinda 12 | * @Date 2023/2/10 13 | */ 14 | @Data 15 | @Builder 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | public class CreateImageVariationRequest { 19 | 20 | /** 21 | * 要生成的图像数量。必须在1到10之间。默认值为1。 22 | */ 23 | Integer n; 24 | 25 | /** 26 | * 生成图像的大小。必须是256x256、512x512或1024x1024中的一个。默认为“1024x1024”。 27 | */ 28 | String size; 29 | 30 | /** 31 | * 所生成图像的返回格式。必须是url或b64_json之一。默认为url。 32 | */ 33 | String responseFormat; 34 | 35 | /** 36 | * 代表终端用户的唯一标识符,这将帮助OpenAI监控和检测滥用。 37 | */ 38 | String user; 39 | } 40 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/image/Image.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.image; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2023/2/10 10 | */ 11 | @Data 12 | public class Image { 13 | 14 | String url; 15 | 16 | @JsonProperty("b64_json") 17 | String b64Json; 18 | } 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/image/ImageResult.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.image; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @Desc 9 | * @Author Sinda 10 | * @Date 2023/2/10 11 | */ 12 | @Data 13 | public class ImageResult { 14 | 15 | Long createdAt; 16 | 17 | List data; 18 | } 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/interceptor/AuthenticationInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.interceptor; 2 | 3 | import okhttp3.Interceptor; 4 | import okhttp3.Request; 5 | import okhttp3.Response; 6 | 7 | import java.io.IOException; 8 | 9 | /** 10 | * @Desc 11 | * @Author Sinda 12 | * @Date 2023/2/10 13 | */ 14 | public class AuthenticationInterceptor implements Interceptor { 15 | 16 | private final String token; 17 | 18 | public AuthenticationInterceptor(String token) { 19 | this.token = token; 20 | } 21 | 22 | @Override 23 | public Response intercept(Chain chain) throws IOException { 24 | Request request = chain.request() 25 | .newBuilder() 26 | .header("Authorization", "Bearer " + token) 27 | .build(); 28 | return chain.proceed(request); 29 | } 30 | } -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/model/DeleteResult.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.model; 2 | 3 | /** 4 | * @Desc 删除对象时的响应 5 | * @Author Sinda 6 | * @Date 2023/2/10 7 | */ 8 | public class DeleteResult { 9 | 10 | String id; 11 | 12 | /** 13 | * 删除的对象类型,例如“文件”或“模型” 14 | */ 15 | String object; 16 | 17 | /** 18 | * 是否成功 19 | */ 20 | boolean deleted; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/model/Model.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.model; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @Desc 9 | * @Author Sinda 10 | * @Date 2023/2/10 11 | */ 12 | @Data 13 | public class Model { 14 | /** 15 | * 此模型的标识符,用于在执行补全等操作时指定模型 16 | */ 17 | public String id; 18 | 19 | /** 20 | * 返回的对象类型应该是"model" 21 | */ 22 | public String object; 23 | 24 | /** 25 | * GPT-3模型的所有者,通常是“openai” 26 | */ 27 | public String ownedBy; 28 | 29 | /** 30 | * 此模型的权限列表 31 | */ 32 | public List permission; 33 | 34 | /** 35 | * this及其父模型(如果适用)所基于的根模型 36 | */ 37 | public String root; 38 | 39 | /** 40 | * 父模型 41 | */ 42 | public String parent; 43 | } -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/model/OpenAiResponse.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.model; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @Desc 9 | * @Author Sinda 10 | * @Date 2023/2/10 11 | */ 12 | @Data 13 | public class OpenAiResponse { 14 | /** 15 | * 结果列表 16 | */ 17 | public List data; 18 | 19 | /** 20 | * 返回的对象类型应该是"list" 21 | */ 22 | public String object; 23 | } 24 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/model/Permission.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 没有文档。。 7 | * @Author Sinda 8 | * @Date 2023/2/10 9 | */ 10 | @Data 11 | public class Permission { 12 | 13 | public String id; 14 | 15 | public String object; 16 | 17 | public long created; 18 | 19 | public boolean allowCreateEngine; 20 | 21 | public boolean allowSampling; 22 | 23 | public boolean allowLogProbs; 24 | 25 | public boolean allowSearchIndices; 26 | 27 | public boolean allowView; 28 | 29 | public boolean allowFineTuning; 30 | 31 | public String organization; 32 | 33 | public String group; 34 | 35 | public boolean isBlocking; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/model/Usage.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 请求使用的OpenAI资源 7 | * @Author Sinda 8 | * @Date 2023/2/10 9 | */ 10 | @Data 11 | public class Usage { 12 | 13 | /** 14 | * 使用的提示令牌的数量。 15 | */ 16 | long promptTokens; 17 | 18 | /** 19 | * 所使用的完成令牌的数量。 20 | */ 21 | long completionTokens; 22 | 23 | /** 24 | * 使用的令牌总数 25 | */ 26 | long totalTokens; 27 | } 28 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/moderation/Moderation.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.moderation; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 分类文本是否违反 OpenAI 的内容政策 7 | * @Author Sinda 8 | * @Date 2023/2/10 9 | */ 10 | @Data 11 | public class Moderation { 12 | 13 | /** 14 | * 如果模型将内容分类为违反OpenAI的内容策略,则设置为true,否则为false 15 | */ 16 | public boolean flagged; 17 | 18 | /** 19 | * 对象,其中包含每个类别的二进制内容策略违反标志。 20 | * 对于每个类别,如果模型将相应类别标记为违规,则该值为true,否则为false。 21 | */ 22 | public ModerationCategories categories; 23 | 24 | /** 25 | * 对象,包含模型输出的每个类别的原始分数,表示模型对数据的置信度 26 | * 输入违反了OpenAI对类别的政策。 27 | * 该值介于0和1之间,其中值越大表示置信度越高。 28 | * 分数不应被解释为概率。 29 | */ 30 | public ModerationCategoryScores categoryScores; 31 | } 32 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/moderation/ModerationCategories.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.moderation; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2023/2/10 10 | */ 11 | @Data 12 | public class ModerationCategories { 13 | 14 | 15 | public boolean hate; 16 | 17 | @JsonProperty("hate/threatening") 18 | public boolean hateThreatening; 19 | 20 | @JsonProperty("self-harm") 21 | public boolean selfHarm; 22 | 23 | public boolean sexual; 24 | 25 | @JsonProperty("sexual/minors") 26 | public boolean sexualMinors; 27 | 28 | public boolean violence; 29 | 30 | @JsonProperty("violence/graphic") 31 | public boolean violenceGraphic; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/moderation/ModerationCategoryScores.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.moderation; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2023/2/10 10 | */ 11 | @Data 12 | public class ModerationCategoryScores { 13 | 14 | public double hate; 15 | 16 | @JsonProperty("hate/threatening") 17 | public double hateThreatening; 18 | 19 | @JsonProperty("self-harm") 20 | public double selfHarm; 21 | 22 | public double sexual; 23 | 24 | @JsonProperty("sexual/minors") 25 | public double sexualMinors; 26 | 27 | public double violence; 28 | 29 | @JsonProperty("violence/graphic") 30 | public double violenceGraphic; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/moderation/ModerationRequest.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.moderation; 2 | 3 | import lombok.*; 4 | 5 | /** 6 | * @Desc 7 | * @Author Sinda 8 | * @Date 2023/2/10 9 | */ 10 | @Data 11 | @Builder 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | public class ModerationRequest { 15 | 16 | /** 17 | * 输入文本进行分类。 18 | */ 19 | @NonNull 20 | String input; 21 | 22 | /** 23 | * 要使用的模型名称,默认为text-moderation-stable。 24 | */ 25 | String model; 26 | } 27 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/chatgpt/moderation/ModerationResult.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.chatgpt.moderation; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @Desc 9 | * @Author Sinda 10 | * @Date 2023/2/10 11 | */ 12 | @Data 13 | public class ModerationResult { 14 | /** 15 | * 分配给该审核的唯一id。 16 | */ 17 | public String id; 18 | 19 | /** 20 | * 模型 21 | */ 22 | public String model; 23 | 24 | public List results; 25 | } 26 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/controller/ChatController.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.controller; 2 | 3 | import io.swagger.annotations.Api; 4 | import lombok.AllArgsConstructor; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | /** 9 | * @Desc 10 | * @Author Sinda 11 | * @Date 2023/2/10 12 | */ 13 | @RestController 14 | @AllArgsConstructor 15 | @RequestMapping("/chat") 16 | @Api(value = "chat", tags = "聊天") 17 | public class ChatController { 18 | } 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/controller/ChatRoomController.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.controller; 2 | 3 | import io.swagger.annotations.Api; 4 | import lombok.AllArgsConstructor; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | /** 9 | * @Desc 10 | * @Author Sinda 11 | * @Date 2022/11/9 12 | */ 13 | @RestController 14 | @AllArgsConstructor 15 | @RequestMapping("/chat-room") 16 | @Api(value = "chatRoom", tags = "聊天室管理") 17 | public class ChatRoomController { 18 | 19 | 20 | } 21 | 22 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/XHuiCloud-ai-service/src/main/java/com/xhuicloud/ai/payload/MessagePayload.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.ai.payload; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 7 | * @Author Sinda 8 | * @Date 2023/2/16 9 | */ 10 | @Data 11 | public class MessagePayload { 12 | 13 | private String messageId; 14 | 15 | private String userId; 16 | 17 | private String text; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-ai/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-business 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | pom 12 | XHuiCloud-ai 13 | 14 | 15 | XHuiCloud-ai-api 16 | XHuiCloud-ai-service 17 | 18 | 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-gateway/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-gateway 10 | 11 | WORKDIR /XHuiCloud-gateway 12 | 13 | EXPOSE 15000 14 | 15 | ADD ./target/XHuiCloud-gateway.jar ./ 16 | 17 | CMD java -Xms256m -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-gateway.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-gateway/src/main/java/com/xhuicloud/gateway/config/CaptchaCacheRedisService.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.gateway.config; 2 | 3 | import com.anji.captcha.service.CaptchaCacheService; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.data.redis.core.StringRedisTemplate; 6 | 7 | import java.util.concurrent.TimeUnit; 8 | 9 | /** 10 | * @Desc 11 | * @Author Sinda 12 | * @Date 2022/10/22 13 | */ 14 | public class CaptchaCacheRedisService implements CaptchaCacheService { 15 | 16 | private static final String REDIS = "redis"; 17 | 18 | @Autowired 19 | private StringRedisTemplate stringRedisTemplate; 20 | 21 | @Override 22 | public void set(String key, String value, long expiresInSeconds) { 23 | stringRedisTemplate.opsForValue().set(key, value, expiresInSeconds, TimeUnit.SECONDS); 24 | } 25 | 26 | @Override 27 | public boolean exists(String key) { 28 | return stringRedisTemplate.hasKey(key); 29 | } 30 | 31 | @Override 32 | public void delete(String key) { 33 | stringRedisTemplate.delete(key); 34 | } 35 | 36 | @Override 37 | public String get(String key) { 38 | return stringRedisTemplate.opsForValue().get(key); 39 | } 40 | 41 | @Override 42 | public String type() { 43 | return REDIS; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-gateway/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaCacheService: -------------------------------------------------------------------------------- 1 | com.xhuicloud.gateway.config.CaptchaCacheRedisService -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-gateway/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 15000 3 | spring: 4 | application: 5 | name: @artifactId@ 6 | profiles: 7 | active: @profiles.active@ 8 | cloud: 9 | nacos: 10 | discovery: 11 | #nacos 地址 12 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 13 | config: 14 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 15 | config: 16 | import: 17 | - optional:nacos:application-common-@profiles.active@.yml 18 | - optional:nacos:xhuicloud-common-@profiles.active@.yml 19 | - optional:nacos:@artifactId@-@profiles.active@.yml 20 | 21 | swagger: 22 | ignore-providers: 23 | - XHuiCloud-auth -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-generator/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-generator 10 | 11 | WORKDIR /XHuiCloud-generator 12 | 13 | EXPOSE 21000 14 | 15 | ADD ./target/XHuiCloud-generator.jar ./ 16 | 17 | CMD java -Xms512m -Xmx512m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-generator.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-generator/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: @artifactId@ 4 | profiles: 5 | active: @profiles.active@ 6 | cloud: 7 | nacos: 8 | discovery: 9 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 10 | config: 11 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 12 | config: 13 | import: 14 | - optional:nacos:application-common-@profiles.active@.yml 15 | - optional:nacos:xhuicloud-common-@profiles.active@.yml 16 | - optional:nacos:@artifactId@-@profiles.active@.yml -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-generator/src/main/resources/template/ts/index.ts.ftl: -------------------------------------------------------------------------------- 1 | import { TableColumn } from '@/components/XhTable/crud' 2 | 3 | export const tableColumn: TableColumn[] = [ 4 | <#if columns??> 5 | <#list columns as column> 6 | { 7 | label: '${column.columnComment}', 8 | prop: '${column.smallColumnName}', 9 | <#if column.columnKey = 'PRI'> 10 | createDisplay: true, 11 | editDisabled: true, 12 | 13 | operationForm: {}, 14 | searchForm: {} 15 | }<#if column_has_next>, 16 | 17 | 18 | ] 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-job/XHuiCloud-job-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-job 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | XHuiCloud-job-api 13 | 14 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-job/XHuiCloud-job-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-job-service 10 | 11 | WORKDIR /XHuiCloud-job-service 12 | 13 | EXPOSE 19000 14 | 15 | ADD ./target/XHuiCloud-job-service.jar ./ 16 | 17 | CMD java -Xms256m -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-job-service.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-job/XHuiCloud-job-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: @artifactId@ 4 | profiles: 5 | active: @profiles.active@ 6 | cloud: 7 | nacos: 8 | discovery: 9 | #nacos 地址 10 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 11 | config: 12 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 13 | config: 14 | import: 15 | - optional:nacos:application-common-@profiles.active@.yml 16 | - optional:nacos:xhuicloud-common-@profiles.active@.yml 17 | - optional:nacos:@artifactId@-@profiles.active@.yml 18 | 19 | #xhuicloud: 20 | # elasticjob: 21 | # zookeeper: 22 | # namespace: XHuicloud-job 23 | # job-type: simple 24 | 25 | server: 26 | port: 19000 27 | 28 | job: 29 | executor: 30 | app-name: xhuicloud-job 31 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-job/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-business 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | 分布式定时任务 12 | XHuiCloud-job 13 | pom 14 | 15 | XHuiCloud-job-api 16 | XHuiCloud-job-service 17 | 18 | 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-logs/XHuiCloud-logs-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-logs 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | XHuiCloud-logs-api 13 | 14 | 15 | 16 | com.baomidou 17 | mybatis-plus-extension 18 | 19 | 20 | 21 | ${project.groupId} 22 | XHuiCloud-common-feign 23 | 24 | 25 | 26 | ${project.groupId} 27 | XHuiCloud-common-core 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-logs/XHuiCloud-logs-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuicloud-logs-service 10 | 11 | WORKDIR /XHuicloud-logs-service 12 | 13 | EXPOSE 18000 14 | 15 | ADD ./target/XHuiCloud-logs-service.jar ./ 16 | 17 | CMD java -Xms512m -Xmx512m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-logs-service.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-logs/XHuiCloud-logs-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: @artifactId@ 4 | profiles: 5 | active: @profiles.active@ 6 | cloud: 7 | nacos: 8 | discovery: 9 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 10 | config: 11 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 12 | config: 13 | import: 14 | - optional:nacos:application-common-@profiles.active@.yml 15 | - optional:nacos:xhuicloud-common-@profiles.active@.yml 16 | - optional:nacos:@artifactId@-@profiles.active@.yml 17 | mysql: 18 | scheme: xhuicloud_audit -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-logs/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-business 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | pom 12 | 13 | XHuiCloud-logs-service 14 | XHuiCloud-logs-api 15 | 16 | XHuiCloud-logs 17 | 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-monitor/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-monitor 10 | 11 | WORKDIR /XHuiCloud-monitor 12 | 13 | EXPOSE 9090 14 | 15 | ADD ./target/XHuiCloud-monitor.jar ./ 16 | 17 | CMD java -Xms256m -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-monitor.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-monitor/src/main/java/com/xhuicloud/monitor/XHuiMonitorApplication.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.monitor; 2 | 3 | import de.codecentric.boot.admin.server.config.EnableAdminServer; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 7 | 8 | /** 9 | * @Desc 10 | * @Author Sinda 11 | * @Date 2022/8/21 12 | */ 13 | @EnableAdminServer 14 | @EnableDiscoveryClient 15 | @SpringBootApplication 16 | public class XHuiMonitorApplication { 17 | 18 | public static void main(String[] args) { 19 | SpringApplication.run(XHuiMonitorApplication.class, args); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-monitor/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: @artifactId@ 4 | profiles: 5 | active: @profiles.active@ 6 | cloud: 7 | nacos: 8 | discovery: 9 | #nacos 地址 10 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 11 | 12 | server: 13 | port: 9090 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-pay/XHuiCloud-pay-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-pay 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | XHuiCloud-pay-api 13 | 14 | 15 | 16 | com.baomidou 17 | mybatis-plus-extension 18 | 19 | 20 | 21 | ${project.groupId} 22 | XHuiCloud-common-core 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-pay/XHuiCloud-pay-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-pay-service 10 | 11 | WORKDIR /XHuiCloud-pay-service 12 | 13 | EXPOSE 23000 14 | 15 | ADD ./target/XHuiCloud-pay-service.jar ./ 16 | 17 | CMD java -Xms512m -Xmx512m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-pay-service.jar 18 | 19 | 20 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-pay/XHuiCloud-pay-service/src/main/resources/static/css/tenant.css: -------------------------------------------------------------------------------- 1 | body, html { 2 | height: 100%; 3 | -webkit-tap-highlight-color: transparent; 4 | } 5 | .tenant-logo{ 6 | display:inline-block; 7 | margin:20px auto auto 20px; 8 | width:60px; 9 | height:60px; 10 | border-radius:100px; 11 | -webkit-border-radius:100px; 12 | -moz-border-radius:100px; 13 | border:2px solid #fff; 14 | box-shadow:0 0 4px #ccc; 15 | overflow:hidden; 16 | } 17 | 18 | /*图片的样式*/ 19 | .tenant-logo img{ 20 | width:100%; 21 | min-height:100%; 22 | } 23 | .tenant-names{ 24 | display:inline-block; 25 | margin:20px auto auto 20px; 26 | width:80px; 27 | height:80px; 28 | /*border-radius:100px;*/ 29 | /*-webkit-border-radius:100px;*/ 30 | /*-moz-border-radius:100px;*/ 31 | /*border:2px solid #fff;*/ 32 | /*box-shadow:0 0 4px #ccc;*/ 33 | overflow:hidden; 34 | } 35 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-pay/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-business 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | 聚合支付 12 | XHuiCloud-pay 13 | pom 14 | 15 | XHuiCloud-pay-api 16 | XHuiCloud-pay-service 17 | 18 | 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-push/XHuiCloud-push-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-push 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | XHuiCloud-push-api 13 | 14 | 15 | 16 | com.baomidou 17 | mybatis-plus-extension 18 | 19 | 20 | 21 | ${project.groupId} 22 | XHuiCloud-common-feign 23 | 24 | 25 | 26 | ${project.groupId} 27 | XHuiCloud-common-core 28 | 29 | 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-push/XHuiCloud-push-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-push-service 10 | 11 | WORKDIR /XHuiCloud-push-service 12 | 13 | EXPOSE 22000 14 | 15 | ADD ./target/XHuiCloud-push-service.jar ./ 16 | 17 | CMD java -Xms512m -Xmx512m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-push-service.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-push/XHuiCloud-push-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: @artifactId@ 4 | profiles: 5 | active: @profiles.active@ 6 | cloud: 7 | nacos: 8 | discovery: 9 | #nacos 地址 10 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 11 | config: 12 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 13 | config: 14 | import: 15 | - optional:nacos:application-common-@profiles.active@.yml 16 | - optional:nacos:xhuicloud-common-@profiles.active@.yml 17 | - optional:nacos:@artifactId@-@profiles.active@.yml 18 | 19 | server: 20 | port: 22000 21 | 22 | mysql: 23 | scheme: xhuicloud_push 24 | 25 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-push/XHuiCloud-push-service/src/main/resources/mapper/WeChatAccountService.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | id, tenant_id, create_time, update_time, is_del, create_id, update_id, template_code, 20 | `name` 21 | 22 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-push/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-business 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | 12 | XHuiCloud-push 13 | pom 14 | 15 | XHuiCloud-push-api 16 | XHuiCloud-push-service 17 | 18 | 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-register 10 | 11 | WORKDIR /XHuiCloud-register 12 | 13 | EXPOSE 13000 14 | 15 | ADD ./target/XHuiCloud-register.jar ./ 16 | 17 | CMD java -Xms256m -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-register.jar 18 | 19 | 20 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/java/com/alibaba/nacos/utils/PasswordEncoderUtil.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.alibaba.nacos.utils; 18 | 19 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 20 | 21 | /** 22 | * Password encoder tool. 23 | * 24 | * @author nacos 25 | */ 26 | public class PasswordEncoderUtil { 27 | 28 | public static Boolean matches(String raw, String encoded) { 29 | return new BCryptPasswordEncoder().matches(raw, encoded); 30 | } 31 | 32 | public static String encode(String raw) { 33 | return new BCryptPasswordEncoder().encode(raw); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | boot: # spring-boot admin 配置 3 | admin: 4 | client: 5 | url: http://xhuicloud-monitor:9090 6 | datasource: 7 | platform: mysql 8 | security: 9 | enabled: true 10 | application: 11 | name: @project.artifactId@ 12 | 13 | db: 14 | num: 1 15 | user: ${MYSQL_USER:root} 16 | password: ${MYSQL_PASSWORD:root} 17 | url: 18 | 0: jdbc:mysql://${MYSQL_HOST:xhuicloud-mysql}:${MYSQL_PORT:3306}/xhuicloud_register?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&allowMultiQueries=true&allowPublicKeyRetrieval=true 19 | 20 | nacos: 21 | core: 22 | auth: 23 | system.type: nacos 24 | default.token.secret.key: SecretKey012345678901234567890123456789012345678901234567890123456789 25 | security: 26 | ignore: 27 | urls: /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/** 28 | 29 | useAddressServer: true 30 | 31 | management: 32 | endpoints: 33 | web: 34 | exposure: 35 | include: '*' 36 | metrics: 37 | export: 38 | influx: 39 | enabled: false 40 | elastic: 41 | enabled: false 42 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/aliyun-console-font.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/aliyun-console-font.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/aliyun-console-font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/aliyun-console-font.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/aliyun-console-font.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/aliyun-console-font.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/font_515771_emcns5054x3whfr.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/font_515771_emcns5054x3whfr.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/font_515771_emcns5054x3whfr.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/font_515771_emcns5054x3whfr.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-bold.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-bold.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-bold.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-regular.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-regular.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/css/fonts/roboto-regular.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-bold.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-bold.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-bold.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-bold.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-light.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-light.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-light.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-light.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-medium.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-medium.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-medium.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-medium.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-regular.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-regular.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-regular.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-regular.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-thin.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-thin.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-thin.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-thin.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/fonts/roboto-thin.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/icons/icon-font.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/icons/icon-font.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/icons/icon-font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/icons/icon-font.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/icons/icon-font.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/icons/icon-font.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/icons/icon-font.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/icons/icon-font.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/img/black_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/img/black_dot.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/img/favicon.ico -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/img/nacos-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/img/nacos-logo.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/img/nacos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/console-ui/public/img/nacos.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/img/black_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/img/black_dot.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-register/src/main/resources/static/img/nacos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-register/src/main/resources/static/img/nacos.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-seata 10 | 11 | WORKDIR /XHuiCloud-seata 12 | 13 | EXPOSE 8091 14 | 15 | ADD ./target/XHuiCloud-seata.jar ./ 16 | 17 | CMD java -Xms256m -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-seata.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/java/io/seata/server/coordinator/TransactionCoordinatorInbound.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2019 Seata.io Group. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.seata.server.coordinator; 17 | 18 | import io.seata.core.model.ResourceManagerOutbound; 19 | import io.seata.core.model.TransactionManager; 20 | 21 | /** 22 | * receive inbound request from RM or TM. 23 | * 24 | * @author zhangchenghui.dev@gmail.com 25 | * @since 1.1.0 26 | */ 27 | public interface TransactionCoordinatorInbound extends ResourceManagerOutbound, TransactionManager { 28 | 29 | } 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/java/io/seata/server/event/EventBusManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2019 Seata.io Group. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.seata.server.event; 17 | 18 | import io.seata.core.event.EventBus; 19 | import io.seata.core.event.GuavaEventBus; 20 | 21 | /** 22 | * Manager hold the singleton event bus instance. 23 | * 24 | * @author zhengyangyong 25 | */ 26 | public class EventBusManager { 27 | private static class SingletonHolder { 28 | private static EventBus INSTANCE = new GuavaEventBus("tc"); 29 | } 30 | 31 | public static EventBus get() { 32 | return SingletonHolder.INSTANCE; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/java/io/seata/server/logging/logback/ansi/AnsiElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2019 Seata.io Group. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.seata.server.logging.logback.ansi; 17 | 18 | /** 19 | * An ANSI encodable element. 20 | * 21 | * @author Phillip Webb 22 | * @origin Copied from spring-boot.jar by wang.liang 23 | */ 24 | public interface AnsiElement { 25 | 26 | /** 27 | * @return the ANSI escape code 28 | */ 29 | @Override 30 | String toString(); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/java/io/seata/server/session/GlobalSessionHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2019 Seata.io Group. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.seata.server.session; 17 | 18 | import io.seata.core.exception.TransactionException; 19 | 20 | /** 21 | * The Functional Interface Global session handler 22 | * 23 | * @author wang.liang 24 | * @since 1.5.0 25 | */ 26 | @FunctionalInterface 27 | public interface GlobalSessionHandler { 28 | 29 | /** 30 | * Handle global session. 31 | * 32 | * @param globalSession the global session 33 | * @throws TransactionException the transaction exception 34 | */ 35 | void handle(GlobalSession globalSession) throws TransactionException; 36 | } -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/java/io/seata/server/session/Reloadable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2019 Seata.io Group. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.seata.server.session; 17 | 18 | /** 19 | * Service contains states which can be reloaded. 20 | * 21 | * @author sharajava 22 | */ 23 | public interface Reloadable { 24 | 25 | /** 26 | * Reload states. 27 | */ 28 | void reload(); 29 | } 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/java/io/seata/server/store/SessionStorable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2019 Seata.io Group. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.seata.server.store; 17 | 18 | /** 19 | * The interface Session storable. 20 | * 21 | * @author slievrly 22 | */ 23 | public interface SessionStorable { 24 | 25 | /** 26 | * Encode byte [ ]. 27 | * 28 | * @return the byte [ ] 29 | */ 30 | byte[] encode(); 31 | 32 | /** 33 | * Decode. 34 | * 35 | * @param src the src 36 | */ 37 | void decode(byte[] src); 38 | } 39 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/java/io/seata/server/transaction/tcc/TccCore.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2019 Seata.io Group. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.seata.server.transaction.tcc; 17 | 18 | import io.seata.core.model.BranchType; 19 | import io.seata.core.rpc.RemotingServer; 20 | import io.seata.server.coordinator.AbstractCore; 21 | 22 | /** 23 | * The type tcc core. 24 | * 25 | * @author ph3636 26 | */ 27 | public class TccCore extends AbstractCore { 28 | 29 | public TccCore(RemotingServer remotingServer) { 30 | super(remotingServer); 31 | } 32 | 33 | @Override 34 | public BranchType getHandleBranchType() { 35 | return BranchType.TCC; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/resources/META-INF/services/io.seata.core.rpc.RegisterCheckAuthHandler: -------------------------------------------------------------------------------- 1 | io.seata.server.auth.DefaultCheckAuthHandler -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/resources/META-INF/services/io.seata.core.store.db.DataSourceProvider: -------------------------------------------------------------------------------- 1 | io.seata.server.store.DbcpDataSourceProvider 2 | io.seata.server.store.DruidDataSourceProvider 3 | io.seata.server.store.HikariDataSourceProvider -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/resources/META-INF/services/io.seata.server.coordinator.AbstractCore: -------------------------------------------------------------------------------- 1 | io.seata.server.transaction.at.ATCore 2 | io.seata.server.transaction.tcc.TccCore 3 | io.seata.server.transaction.saga.SagaCore 4 | io.seata.server.transaction.xa.XACore -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/resources/META-INF/services/io.seata.server.lock.LockManager: -------------------------------------------------------------------------------- 1 | io.seata.server.storage.db.lock.DataBaseLockManager 2 | io.seata.server.storage.file.lock.FileLockManager 3 | io.seata.server.storage.redis.lock.RedisLockManager -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-seata/src/main/resources/META-INF/services/io.seata.server.session.SessionManager: -------------------------------------------------------------------------------- 1 | io.seata.server.storage.file.session.FileSessionManager 2 | io.seata.server.storage.db.session.DataBaseSessionManager 3 | io.seata.server.storage.redis.session.RedisSessionManager -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-sentinel-dashboard 10 | 11 | WORKDIR /XHuiCloud-sentinel-dashboard 12 | 13 | EXPOSE 10101 14 | 15 | ADD ./target/XHuiCloud-sentinel-dashboard.jar ./ 16 | 17 | CMD java -Xms256m -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-sentinel-dashboard.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/AuthorizationInterceptor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.csp.sentinel.dashboard.auth; 17 | 18 | import org.springframework.web.servlet.HandlerInterceptor; 19 | 20 | /** 21 | * The web interceptor for privilege-based authorization. 22 | * 23 | * @author lkxiaolou 24 | * @author wxq 25 | * @since 1.7.1 26 | */ 27 | public interface AuthorizationInterceptor extends HandlerInterceptor { 28 | 29 | } 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/CommandFailedException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.csp.sentinel.dashboard.client; 17 | 18 | /** 19 | * @author Eric Zhao 20 | */ 21 | public class CommandFailedException extends RuntimeException { 22 | 23 | public CommandFailedException() {} 24 | 25 | public CommandFailedException(String message) { 26 | super(message); 27 | } 28 | 29 | @Override 30 | public synchronized Throwable fillInStackTrace() { 31 | return this; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/CommandNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.csp.sentinel.dashboard.client; 17 | 18 | /** 19 | * @author Eric Zhao 20 | * @since 0.2.1 21 | */ 22 | public class CommandNotFoundException extends Exception { 23 | 24 | public CommandNotFoundException() { } 25 | 26 | public CommandNotFoundException(String message) { 27 | super(message); 28 | } 29 | 30 | @Override 31 | public synchronized Throwable fillInStackTrace() { 32 | return this; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/config/AuthProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.csp.sentinel.dashboard.config; 17 | 18 | import org.springframework.boot.context.properties.ConfigurationProperties; 19 | 20 | @ConfigurationProperties(prefix = "auth") 21 | public class AuthProperties { 22 | 23 | private boolean enabled = true; 24 | 25 | public boolean isEnabled() { 26 | return enabled; 27 | } 28 | 29 | public void setEnabled(boolean enabled) { 30 | this.enabled = enabled; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/datasource/entity/rule/RuleEntity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.csp.sentinel.dashboard.datasource.entity.rule; 17 | 18 | import com.alibaba.csp.sentinel.slots.block.Rule; 19 | 20 | import java.util.Date; 21 | 22 | /** 23 | * @author leyou 24 | */ 25 | public interface RuleEntity { 26 | 27 | Long getId(); 28 | 29 | void setId(Long id); 30 | 31 | String getApp(); 32 | 33 | String getIp(); 34 | 35 | Integer getPort(); 36 | 37 | Date getGmtCreate(); 38 | 39 | Rule toRule(); 40 | } 41 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/domain/cluster/request/ClusterModifyRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.csp.sentinel.dashboard.domain.cluster.request; 17 | 18 | /** 19 | * @author Eric Zhao 20 | * @since 1.4.0 21 | */ 22 | public interface ClusterModifyRequest { 23 | 24 | String getApp(); 25 | 26 | String getIp(); 27 | 28 | Integer getPort(); 29 | 30 | Integer getMode(); 31 | } 32 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/DynamicRuleProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.csp.sentinel.dashboard.rule; 17 | 18 | /** 19 | * @author Eric Zhao 20 | * @since 1.4.0 21 | */ 22 | public interface DynamicRuleProvider { 23 | 24 | T getRules(String appName) throws Exception; 25 | } 26 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/DynamicRulePublisher.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.alibaba.csp.sentinel.dashboard.rule; 17 | 18 | /** 19 | * @author Eric Zhao 20 | * @since 1.4.0 21 | */ 22 | public interface DynamicRulePublisher { 23 | 24 | /** 25 | * Publish rules to remote rule configuration center for given application name. 26 | * 27 | * @param app app name 28 | * @param rules list of rules to push 29 | * @throws Exception if some error occurs 30 | */ 31 | void publish(String app, T rules) throws Exception; 32 | } 33 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | tmp/ -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/README.md: -------------------------------------------------------------------------------- 1 | # Sentinel Dashboard Frontend 2 | 3 | ## Env Requirement 4 | 5 | - Node.js > 6.x 6 | 7 | ## Code Guide 8 | 9 | - [Code Style Guide for HTML/CSS](https://codeguide.bootcss.com/) 10 | - [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript/tree/es5-deprecated/es5) 11 | 12 | ## Install Packages 13 | 14 | ``` 15 | npm install 16 | ``` 17 | 18 | ## Start Development 19 | 20 | ``` 21 | npm start 22 | ``` 23 | 24 | ## Build for production 25 | 26 | ``` 27 | npm run build 28 | ``` 29 | 30 | ## Credit 31 | 32 | - [sb-admin-angular](https://github.com/start-angular/sb-admin-angular) -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/README_zh.md: -------------------------------------------------------------------------------- 1 | # Sentinel Dashboard Frontend 2 | 3 | ## 环境要求 4 | 5 | - Node.js > 6.x 6 | 7 | ## 编码规范 8 | 9 | - HTML/CSS 遵循 [Bootstrap 编码规范](https://codeguide.bootcss.com/) 10 | - JavaScript 遵循 [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript/tree/es5-deprecated/es5) 以及最新的 ES 6 标准 11 | 12 | ## 安装依赖 13 | 14 | ``` 15 | npm i 16 | ``` 17 | 18 | ## 开始本地开发 19 | 20 | ``` 21 | npm start 22 | ``` 23 | 24 | ## 构建前端资源 25 | 26 | ``` 27 | npm run build 28 | ``` 29 | 30 | ## Credit 31 | 32 | - [sb-admin-angular](https://github.com/start-angular/sb-admin-angular) -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/controllers/home.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc function 3 | * @name sentinelDashboardApp.controller:MainCtrl 4 | * @description 5 | * # MainCtrl 6 | * Controller of the sentinelDashboardApp 7 | */ 8 | angular.module('sentinelDashboardApp') 9 | .controller('HomeCtrl', ['$scope', '$position', function ($scope, $position) { 10 | // do noting 11 | }]); 12 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/controllers/login.js: -------------------------------------------------------------------------------- 1 | var app = angular.module('sentinelDashboardApp'); 2 | 3 | app.controller('LoginCtl', ['$scope', '$state', '$window', 'AuthService', 4 | function ($scope, $state, $window, AuthService) { 5 | // If auth passed, jump to the index page directly 6 | if ($window.localStorage.getItem('session_sentinel_admin')) { 7 | $state.go('dashboard'); 8 | } 9 | 10 | $scope.login = function () { 11 | if (!$scope.username) { 12 | alert('请输入用户名'); 13 | return; 14 | } 15 | 16 | if (!$scope.password) { 17 | alert('请输入密码'); 18 | return; 19 | } 20 | 21 | var param = {"username": $scope.username, "password": $scope.password}; 22 | 23 | AuthService.login(param).success(function (data) { 24 | if (data.code == 0) { 25 | $window.localStorage.setItem('session_sentinel_admin', JSON.stringify(data.data)); 26 | $state.go('dashboard'); 27 | } else { 28 | alert(data.msg); 29 | } 30 | }); 31 | }; 32 | }] 33 | ); -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/controllers/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc function 3 | * @name sentinelDashboardApp.controller:MainCtrl 4 | * @description 5 | * # MainCtrl 6 | * Controller of the sentinelDashboardApp 7 | */ 8 | angular.module('sentinelDashboardApp') 9 | .controller('DashboardCtrl', ['$scope', '$position', function ($scope, $position) { 10 | }]); 11 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/directives/header/header.html: -------------------------------------------------------------------------------- 1 |

2 | 13 | 14 | 15 |
-------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/directives/sidebar/sidebar-search/sidebar-search.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/directives/sidebar/sidebar-search/sidebar-search.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc directive 3 | * @name izzyposWebApp.directive:adminPosHeader 4 | * @description 5 | * # adminPosHeader 6 | */ 7 | 8 | angular.module('sentinelDashboardApp') 9 | .directive('sidebarSearch', function () { 10 | return { 11 | templateUrl: 'app/scripts/directives/sidebar/sidebar-search/sidebar-search.html', 12 | restrict: 'E', 13 | replace: true, 14 | scope: { 15 | }, 16 | controller: function ($scope) { 17 | $scope.selectedMenu = 'home'; 18 | } 19 | } 20 | }); 21 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/filters/filters.js: -------------------------------------------------------------------------------- 1 | var app = angular.module('sentinelDashboardApp'); 2 | 3 | app.filter('range', [function () { 4 | return function (input, length) { 5 | if (isNaN(length) || length <= 0) { 6 | return []; 7 | } 8 | 9 | input = []; 10 | for (var index = 1; index <= length; index++) { 11 | input.push(index); 12 | } 13 | 14 | return input; 15 | }; 16 | 17 | }]); 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/services/appservice.js: -------------------------------------------------------------------------------- 1 | 2 | var app = angular.module('sentinelDashboardApp'); 3 | 4 | app.service('AppService', ['$http', function ($http) { 5 | this.getApps = function () { 6 | return $http({ 7 | // url: 'app/mock_infos', 8 | url: 'app/briefinfos.json', 9 | method: 'GET' 10 | }); 11 | }; 12 | }]); 13 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/services/auth_service.js: -------------------------------------------------------------------------------- 1 | var app = angular.module('sentinelDashboardApp'); 2 | 3 | app.service('AuthService', ['$http', function ($http) { 4 | this.check = function () { 5 | return $http({ 6 | url: '/auth/check', 7 | method: 'POST' 8 | }); 9 | }; 10 | 11 | this.login = function (param) { 12 | return $http({ 13 | url: '/auth/login', 14 | params: param, 15 | method: 'POST' 16 | }); 17 | }; 18 | 19 | this.logout = function () { 20 | return $http({ 21 | url: '/auth/logout', 22 | method: 'POST' 23 | }); 24 | }; 25 | }]); 26 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/services/identityservice.js: -------------------------------------------------------------------------------- 1 | var app = angular.module('sentinelDashboardApp'); 2 | 3 | app.service('IdentityService', ['$http', function ($http) { 4 | 5 | this.fetchIdentityOfMachine = function (ip, port, searchKey) { 6 | var param = { 7 | ip: ip, 8 | port: port, 9 | searchKey: searchKey 10 | }; 11 | return $http({ 12 | url: 'resource/machineResource.json', 13 | params: param, 14 | method: 'GET' 15 | }); 16 | }; 17 | this.fetchClusterNodeOfMachine = function (ip, port, searchKey) { 18 | var param = { 19 | ip: ip, 20 | port: port, 21 | type: 'cluster', 22 | searchKey: searchKey 23 | }; 24 | return $http({ 25 | url: 'resource/machineResource.json', 26 | params: param, 27 | method: 'GET' 28 | }); 29 | }; 30 | }]); 31 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/services/machineservice.js: -------------------------------------------------------------------------------- 1 | var app = angular.module('sentinelDashboardApp'); 2 | 3 | app.service('MachineService', ['$http', '$httpParamSerializerJQLike', 4 | function ($http, $httpParamSerializerJQLike) { 5 | this.getAppMachines = function (app) { 6 | return $http({ 7 | url: 'app/' + app + '/machines.json', 8 | method: 'GET' 9 | }); 10 | }; 11 | this.removeAppMachine = function (app, ip, port) { 12 | return $http({ 13 | url: 'app/' + app + '/machine/remove.json', 14 | method: 'POST', 15 | headers: { 16 | 'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8' 17 | }, 18 | data: $httpParamSerializerJQLike({ 19 | ip: ip, 20 | port: port 21 | }) 22 | }); 23 | }; 24 | }] 25 | ); 26 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/services/metricservice.js: -------------------------------------------------------------------------------- 1 | var app = angular.module('sentinelDashboardApp'); 2 | 3 | app.service('MetricService', ['$http', function ($http) { 4 | 5 | this.queryAppSortedIdentities = function (params) { 6 | return $http({ 7 | url: '/metric/queryTopResourceMetric.json', 8 | params: params, 9 | method: 'GET' 10 | }); 11 | }; 12 | 13 | this.queryByAppAndIdentity = function (params) { 14 | return $http({ 15 | url: '/metric/queryByAppAndResource.json', 16 | params: params, 17 | method: 'GET' 18 | }); 19 | }; 20 | 21 | this.queryByMachineAndIdentity = function (ip, port, identity, startTime, endTime) { 22 | var param = { 23 | ip: ip, 24 | port: port, 25 | identity: identity, 26 | startTime: startTime.getTime(), 27 | endTime: endTime.getTime() 28 | }; 29 | 30 | return $http({ 31 | url: '/metric/queryByAppAndResource.json', 32 | params: param, 33 | method: 'GET' 34 | }); 35 | }; 36 | }]); 37 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/scripts/services/version_service.js: -------------------------------------------------------------------------------- 1 | var app = angular.module('sentinelDashboardApp'); 2 | 3 | app.service('VersionService', ['$http', function ($http) { 4 | this.version = function () { 5 | return $http({ 6 | url: '/version', 7 | method: 'GET' 8 | }); 9 | }; 10 | }]); 11 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/views/dashboard/home.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

欢迎使用 Sentinel 控制台

5 |
6 | 7 |
8 | 9 | 10 |
11 |
12 | 13 |
14 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/views/dashboard/main.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | 6 |
7 |
8 |
9 | 10 |
11 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/views/dialog/confirm-dialog.html: -------------------------------------------------------------------------------- 1 |
2 | {{confirmDialog.title}} 3 |
4 |
5 |
6 |

7 | {{confirmDialog.attentionTitle}}: 8 |
9 |
10 | {{confirmDialog.attention}} 11 |

12 |
13 |
14 |
15 | 16 | 17 |
18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/app/views/pagination.tpl.html: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/assets/img/sentinel-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/assets/img/sentinel-logo.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Sentinel Dashboard 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/index_dev.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Sentinel 控制台 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/lib/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/license-stat.csv: -------------------------------------------------------------------------------- 1 | Type,Package,License 2 | npm,angular,MIT License 3 | npm,angular-animate,MIT License 4 | npm,angular-bootstrap,MIT License 5 | npm,angular-clipboard,MIT License 6 | npm,angular-cookies,MIT License 7 | npm,angular-date-time-input,MIT License 8 | npm,angular-loading-bar,MIT License 9 | npm,angular-mocks,MIT License 10 | npm,angular-resource,MIT License 11 | npm,angular-route,MIT License 12 | npm,angular-selectize2,MIT License 13 | npm,angular-table-resize,MIT License 14 | npm,angular-touch,MIT License 15 | npm,angular-ui-notification,MIT License 16 | npm,angular-ui-router,MIT License 17 | npm,angular-utils-pagination,MIT License 18 | npm,angularjs-bootstrap-datetimepicker,MIT License 19 | npm,bootstrap-switch,Apache License 2.0 20 | npm,bootstrap-tagsinput,MIT License 21 | npm,moment,MIT License 22 | npm,ng-dialog,MIT License 23 | npm,ng-tags-input,MIT License 24 | npm,oclazyload,MIT License 25 | npm,selectize,Apache License 2.0 26 | lib,jsTreeTable,MIT License -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-sentinel-dashboard/src/main/webapp/resources/static/favicon.ico -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-wechat 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | XHuiCloud-wechat-api 13 | 14 | 15 | com.baomidou 16 | mybatis-plus-extension 17 | 18 | 19 | 20 | ${project.groupId} 21 | XHuiCloud-common-feign 22 | 23 | 24 | 25 | ${project.groupId} 26 | XHuiCloud-common-core 27 | 28 | 29 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-api/src/main/java/com/xhuicloud/wechat/feign/WeChatAccountFeign.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.wechat.feign; 2 | 3 | import com.xhuicloud.common.core.constant.ServiceNameConstants; 4 | import org.springframework.cloud.openfeign.FeignClient; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2022/11/7 10 | */ 11 | @FeignClient(contextId = WeChatAccountFeign.WECHATACCOUNTFEIGN, value = ServiceNameConstants.XHUICLOUD_WECHAT_SERVICE, path = "/account") 12 | public interface WeChatAccountFeign { 13 | 14 | String WECHATACCOUNTFEIGN = "weChatAccountFeign"; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-api/src/main/java/com/xhuicloud/wechat/vo/WeChatAccountVo.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.wechat.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2023/1/11 10 | */ 11 | @Data 12 | public class WeChatAccountVo { 13 | 14 | @ApiModelProperty(value = "公众号名称") 15 | private String name; 16 | 17 | @ApiModelProperty(value = "公众号头像") 18 | private String url; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-api/src/main/java/com/xhuicloud/wechat/vo/WeChatSummaryVo.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.wechat.vo; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2022/11/9 10 | */ 11 | @Data 12 | public class WeChatSummaryVo { 13 | 14 | @ApiModelProperty(value = "公众号名称") 15 | private String name; 16 | 17 | @ApiModelProperty(value = "公众号AppId") 18 | private String appId; 19 | 20 | @ApiModelProperty(value = "新增的用户数量") 21 | private Integer newUser; 22 | 23 | @ApiModelProperty(value = "取消关注的用户数量") 24 | private Integer cancelUser; 25 | 26 | @ApiModelProperty(value = "合计用户数量") 27 | private Integer totalUser; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-wechat-service 10 | 11 | WORKDIR /XHuiCloud-wechat-service 12 | 13 | EXPOSE 24000 14 | 15 | ADD ./target/XHuiCloud-wechat-service.jar ./ 16 | 17 | CMD java -Xms512m -Xmx512m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-wechat-service.jar 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-service/src/main/java/com/xhuicloud/wechat/XHuiWechatApplication.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.wechat; 2 | 3 | import com.xhuicloud.common.authorization.resource.annotation.EnableResourceServer; 4 | import com.xhuicloud.common.feign.annotation.EnableXHuiFeignClients; 5 | import com.xhuicloud.common.log.annotation.EnableAudit; 6 | import com.xhuicloud.common.swagger.annotation.EnableXHuiSwagger; 7 | import org.springframework.boot.SpringApplication; 8 | import org.springframework.boot.autoconfigure.SpringBootApplication; 9 | 10 | /** 11 | * @Desc 12 | * @Author Sinda 13 | * @Date 2022/11/4 14 | */ 15 | @EnableAudit 16 | @EnableXHuiSwagger 17 | @SpringBootApplication 18 | @EnableXHuiFeignClients 19 | @EnableResourceServer 20 | public class XHuiWechatApplication { 21 | public static void main(String[] args) { 22 | SpringApplication.run(XHuiWechatApplication.class, args); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-service/src/main/java/com/xhuicloud/wechat/config/WeChatAppIdContextHolder.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.wechat.config; 2 | 3 | import com.alibaba.ttl.TransmittableThreadLocal; 4 | import lombok.experimental.UtilityClass; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2022/11/12 10 | */ 11 | @UtilityClass 12 | public class WeChatAppIdContextHolder { 13 | 14 | private final ThreadLocal APPID = new TransmittableThreadLocal<>(); 15 | 16 | 17 | public void setAppId(String appId) { 18 | APPID.set(appId); 19 | } 20 | 21 | public String getAppId() { 22 | return APPID.get(); 23 | } 24 | 25 | public void remove() { 26 | APPID.remove(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-service/src/main/java/com/xhuicloud/wechat/config/WeChatExceptionHandlerResolver.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.wechat.config; 2 | 3 | import com.xhuicloud.common.authorization.resource.component.GlobalExceptionHandlerResolver; 4 | import com.xhuicloud.common.core.utils.Response; 5 | import lombok.extern.slf4j.Slf4j; 6 | import me.chanjar.weixin.common.error.WxErrorException; 7 | import org.springframework.http.HttpStatus; 8 | import org.springframework.web.bind.annotation.ExceptionHandler; 9 | import org.springframework.web.bind.annotation.ResponseStatus; 10 | import org.springframework.web.bind.annotation.RestControllerAdvice; 11 | 12 | /** 13 | * @Desc 14 | * @Author Sinda 15 | * @Date 2022/11/22 16 | */ 17 | @Slf4j 18 | @RestControllerAdvice 19 | public class WeChatExceptionHandlerResolver extends GlobalExceptionHandlerResolver { 20 | 21 | /** 22 | * 微信异常. 23 | * 24 | * @param e the e 25 | * @return R 26 | */ 27 | @ExceptionHandler(WxErrorException.class) 28 | @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) 29 | public Response handleGlobalException(WxErrorException e) { 30 | log.error("微信异常 ex={}", e.getMessage(), e); 31 | return Response.failed(e.getError().getErrorMsg()); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/XHuiCloud-wechat-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: @artifactId@ 4 | profiles: 5 | active: @profiles.active@ 6 | cloud: 7 | nacos: 8 | discovery: 9 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 10 | config: 11 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 12 | config: 13 | import: 14 | - optional:nacos:application-common-@profiles.active@.yml 15 | - optional:nacos:xhuicloud-common-@profiles.active@.yml 16 | - optional:nacos:@artifactId@-@profiles.active@.yml 17 | servlet: 18 | multipart: 19 | # 根据实际需求作调整 20 | # 默认最大上传文件大小为1M,单个文件大小 21 | max-file-size: 200MB 22 | # 默认最大请求大小为10M,总上传的数据大小 23 | max-request-size: 200MB 24 | mysql: 25 | scheme: xhuicloud_wechat 26 | 27 | server: 28 | port: 24000 29 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-wechat/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-business 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | XHuiCloud-wechat 12 | pom 13 | 14 | XHuiCloud-wechat-api 15 | XHuiCloud-wechat-service 16 | 17 | 18 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-xxl-admin 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | XHuiCloud-xxl-admin-api 13 | 14 | 15 | 16 | 17 | ${project.groupId} 18 | XHuiCloud-common-feign 19 | 20 | 21 | 22 | com.xhuicloud 23 | XHuiCloud-common-core 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-api/src/main/java/com/xxl/job/admin/api/entity/XxlJobLogReport.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.api.entity; 2 | 3 | import java.util.Date; 4 | 5 | public class XxlJobLogReport { 6 | 7 | private int id; 8 | 9 | private Date triggerDay; 10 | 11 | private int runningCount; 12 | 13 | private int sucCount; 14 | 15 | private int failCount; 16 | 17 | public int getId() { 18 | return id; 19 | } 20 | 21 | public void setId(int id) { 22 | this.id = id; 23 | } 24 | 25 | public Date getTriggerDay() { 26 | return triggerDay; 27 | } 28 | 29 | public void setTriggerDay(Date triggerDay) { 30 | this.triggerDay = triggerDay; 31 | } 32 | 33 | public int getRunningCount() { 34 | return runningCount; 35 | } 36 | 37 | public void setRunningCount(int runningCount) { 38 | this.runningCount = runningCount; 39 | } 40 | 41 | public int getSucCount() { 42 | return sucCount; 43 | } 44 | 45 | public void setSucCount(int sucCount) { 46 | this.sucCount = sucCount; 47 | } 48 | 49 | public int getFailCount() { 50 | return failCount; 51 | } 52 | 53 | public void setFailCount(int failCount) { 54 | this.failCount = failCount; 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-api/src/main/java/com/xxl/job/admin/api/entity/XxlJobRegistry.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.api.entity; 2 | 3 | import java.util.Date; 4 | 5 | /** 6 | * Created by xuxueli on 16/9/30. 7 | */ 8 | public class XxlJobRegistry { 9 | 10 | private int id; 11 | 12 | private String registryGroup; 13 | 14 | private String registryKey; 15 | 16 | private String registryValue; 17 | 18 | private Date updateTime; 19 | 20 | public int getId() { 21 | return id; 22 | } 23 | 24 | public void setId(int id) { 25 | this.id = id; 26 | } 27 | 28 | public String getRegistryGroup() { 29 | return registryGroup; 30 | } 31 | 32 | public void setRegistryGroup(String registryGroup) { 33 | this.registryGroup = registryGroup; 34 | } 35 | 36 | public String getRegistryKey() { 37 | return registryKey; 38 | } 39 | 40 | public void setRegistryKey(String registryKey) { 41 | this.registryKey = registryKey; 42 | } 43 | 44 | public String getRegistryValue() { 45 | return registryValue; 46 | } 47 | 48 | public void setRegistryValue(String registryValue) { 49 | this.registryValue = registryValue; 50 | } 51 | 52 | public Date getUpdateTime() { 53 | return updateTime; 54 | } 55 | 56 | public void setUpdateTime(Date updateTime) { 57 | this.updateTime = updateTime; 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-api/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xxl.job.admin.api.AutoConfiguration -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-xxl-admin-service 10 | 11 | WORKDIR /XHuiCloud-xxl-admin-service 12 | 13 | EXPOSE 20000 14 | 15 | ADD ./target/XHuiCloud-xxl-admin-service.jar ./ 16 | 17 | CMD java -Xms256m -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-xxl-admin-service.jar 18 | 19 | 20 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/XHuiXxlJobAdminApplication.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class XHuiXxlJobAdminApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(XHuiXxlJobAdminApplication.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.controller.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 权限限制 10 | * @author xuxueli 2015-12-12 18:29:02 11 | */ 12 | @Target(ElementType.METHOD) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface PermissionLimit { 15 | 16 | /** 17 | * 登录拦截 (默认拦截) 18 | */ 19 | boolean limit() default true; 20 | 21 | /** 22 | * 要求管理员权限 23 | * @return 24 | */ 25 | boolean adminuser() default false; 26 | 27 | } -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.controller.interceptor; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 5 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 6 | 7 | import javax.annotation.Resource; 8 | 9 | /** 10 | * web mvc config 11 | * 12 | * @author xuxueli 2018-04-02 20:48:20 13 | */ 14 | @Configuration 15 | public class WebMvcConfig implements WebMvcConfigurer { 16 | 17 | @Resource 18 | private PermissionInterceptor permissionInterceptor; 19 | 20 | @Resource 21 | private CookieInterceptor cookieInterceptor; 22 | 23 | @Override 24 | public void addInterceptors(InterceptorRegistry registry) { 25 | registry.addInterceptor(permissionInterceptor).addPathPatterns("/**"); 26 | registry.addInterceptor(cookieInterceptor).addPathPatterns("/**"); 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/alarm/JobAlarm.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.alarm; 2 | 3 | import com.xxl.job.admin.api.entity.XxlJobInfo; 4 | import com.xxl.job.admin.api.entity.XxlJobLog; 5 | 6 | /** 7 | * @author xuxueli 2020-01-19 8 | */ 9 | public interface JobAlarm { 10 | 11 | /** 12 | * job alarm 13 | * @param info 14 | * @param jobLog 15 | * @return 16 | */ 17 | public boolean doAlarm(XxlJobInfo info, XxlJobLog jobLog); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/exception/XxlJobException.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.exception; 2 | 3 | /** 4 | * @author xuxueli 2019-05-04 23:19:29 5 | */ 6 | public class XxlJobException extends RuntimeException { 7 | 8 | public XxlJobException() { 9 | } 10 | 11 | public XxlJobException(String message) { 12 | super(message); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/old/RemoteHttpJobBean.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.old;// package com.xxl.job.admin.core.jobbean; 2 | // 3 | // import com.xxl.job.admin.core.thread.JobTriggerPoolHelper; 4 | // import com.xxl.job.admin.core.trigger.TriggerTypeEnum; 5 | // import org.quartz.JobExecutionContext; 6 | // import org.quartz.JobExecutionException; 7 | // import org.quartz.JobKey; 8 | // import org.slf4j.Logger; 9 | // import org.slf4j.LoggerFactory; 10 | // import org.springframework.scheduling.quartz.QuartzJobBean; 11 | // 12 | /// ** 13 | // * http job bean 14 | // * “@DisallowConcurrentExecution” disable concurrent, thread size can not be only one, 15 | // better given more 16 | // * @author xuxueli 2015-12-17 18:20:34 17 | // */ 18 | //// @DisallowConcurrentExecution 19 | // public class RemoteHttpJobBean extends QuartzJobBean { 20 | // private static Logger logger = LoggerFactory.getLogger(RemoteHttpJobBean.class); 21 | // 22 | // @Override 23 | // protected void executeInternal(JobExecutionContext context) 24 | // throws JobExecutionException { 25 | // 26 | // // load jobId 27 | // JobKey jobKey = context.getTrigger().getJobKey(); 28 | // Integer jobId = Integer.valueOf(jobKey.getName()); 29 | // 30 | // 31 | // } 32 | // 33 | // } -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/old/XxlJobThreadPool.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.old;// package com.xxl.job.admin.core.quartz; 2 | // 3 | // import org.quartz.SchedulerConfigException; 4 | // import org.quartz.spi.ThreadPool; 5 | // 6 | /// ** 7 | // * single thread pool, for async trigger 8 | // * 9 | // * @author xuxueli 2019-03-06 10 | // */ 11 | // public class XxlJobThreadPool implements ThreadPool { 12 | // 13 | // @Override 14 | // public boolean runInThread(Runnable runnable) { 15 | // 16 | // // async run 17 | // runnable.run(); 18 | // return true; 19 | // 20 | // //return false; 21 | // } 22 | // 23 | // @Override 24 | // public int blockForAvailableThreads() { 25 | // return 1; 26 | // } 27 | // 28 | // @Override 29 | // public void initialize() throws SchedulerConfigException { 30 | // 31 | // } 32 | // 33 | // @Override 34 | // public void shutdown(boolean waitForJobsToComplete) { 35 | // 36 | // } 37 | // 38 | // @Override 39 | // public int getPoolSize() { 40 | // return 1; 41 | // } 42 | // 43 | // @Override 44 | // public void setInstanceId(String schedInstId) { 45 | // 46 | // } 47 | // 48 | // @Override 49 | // public void setInstanceName(String schedName) { 50 | // 51 | // } 52 | // 53 | // // support 54 | // public void setThreadCount(int count) { 55 | // // 56 | // } 57 | // 58 | // } 59 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.route; 2 | 3 | import com.xxl.job.core.biz.model.ReturnT; 4 | import com.xxl.job.core.biz.model.TriggerParam; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * Created by xuxueli on 17/3/10. 12 | */ 13 | public abstract class ExecutorRouter { 14 | 15 | protected static Logger logger = LoggerFactory.getLogger(ExecutorRouter.class); 16 | 17 | /** 18 | * route address 19 | * @param addressList 20 | * @return ReturnT.content=address 21 | */ 22 | public abstract ReturnT route(TriggerParam triggerParam, List addressList); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.route.strategy; 2 | 3 | import com.xxl.job.admin.core.route.ExecutorRouter; 4 | import com.xxl.job.core.biz.model.ReturnT; 5 | import com.xxl.job.core.biz.model.TriggerParam; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by xuxueli on 17/3/10. 11 | */ 12 | public class ExecutorRouteFirst extends ExecutorRouter { 13 | 14 | @Override 15 | public ReturnT route(TriggerParam triggerParam, List addressList) { 16 | return new ReturnT(addressList.get(0)); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.route.strategy; 2 | 3 | import com.xxl.job.admin.core.route.ExecutorRouter; 4 | import com.xxl.job.core.biz.model.ReturnT; 5 | import com.xxl.job.core.biz.model.TriggerParam; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by xuxueli on 17/3/10. 11 | */ 12 | public class ExecutorRouteLast extends ExecutorRouter { 13 | 14 | @Override 15 | public ReturnT route(TriggerParam triggerParam, List addressList) { 16 | return new ReturnT(addressList.get(addressList.size() - 1)); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.route.strategy; 2 | 3 | import com.xxl.job.admin.core.route.ExecutorRouter; 4 | import com.xxl.job.core.biz.model.ReturnT; 5 | import com.xxl.job.core.biz.model.TriggerParam; 6 | 7 | import java.util.List; 8 | import java.util.Random; 9 | 10 | /** 11 | * Created by xuxueli on 17/3/10. 12 | */ 13 | public class ExecutorRouteRandom extends ExecutorRouter { 14 | 15 | private static Random localRandom = new Random(); 16 | 17 | @Override 18 | public ReturnT route(TriggerParam triggerParam, List addressList) { 19 | String address = addressList.get(localRandom.nextInt(addressList.size())); 20 | return new ReturnT(address); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/scheduler/MisfireStrategyEnum.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.scheduler; 2 | 3 | import com.xxl.job.admin.core.util.I18nUtil; 4 | 5 | /** 6 | * @author xuxueli 2020-10-29 21:11:23 7 | */ 8 | public enum MisfireStrategyEnum { 9 | 10 | /** 11 | * do nothing 12 | */ 13 | DO_NOTHING(I18nUtil.getString("misfire_strategy_do_nothing")), 14 | 15 | /** 16 | * fire once now 17 | */ 18 | FIRE_ONCE_NOW(I18nUtil.getString("misfire_strategy_fire_once_now")); 19 | 20 | private String title; 21 | 22 | MisfireStrategyEnum(String title) { 23 | this.title = title; 24 | } 25 | 26 | public String getTitle() { 27 | return title; 28 | } 29 | 30 | public static MisfireStrategyEnum match(String name, MisfireStrategyEnum defaultItem) { 31 | for (MisfireStrategyEnum item : MisfireStrategyEnum.values()) { 32 | if (item.name().equals(name)) { 33 | return item; 34 | } 35 | } 36 | return defaultItem; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/scheduler/ScheduleTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.scheduler; 2 | 3 | import com.xxl.job.admin.core.util.I18nUtil; 4 | 5 | /** 6 | * @author xuxueli 2020-10-29 21:11:23 7 | */ 8 | public enum ScheduleTypeEnum { 9 | 10 | NONE(I18nUtil.getString("schedule_type_none")), 11 | 12 | /** 13 | * schedule by cron 14 | */ 15 | CRON(I18nUtil.getString("schedule_type_cron")), 16 | 17 | /** 18 | * schedule by fixed rate (in seconds) 19 | */ 20 | FIX_RATE(I18nUtil.getString("schedule_type_fix_rate")), 21 | 22 | /** 23 | * schedule by fix delay (in seconds), after the last time 24 | */ 25 | /* FIX_DELAY(I18nUtil.getString("schedule_type_fix_delay")) */; 26 | 27 | private String title; 28 | 29 | ScheduleTypeEnum(String title) { 30 | this.title = title; 31 | } 32 | 33 | public String getTitle() { 34 | return title; 35 | } 36 | 37 | public static ScheduleTypeEnum match(String name, ScheduleTypeEnum defaultItem) { 38 | for (ScheduleTypeEnum item : ScheduleTypeEnum.values()) { 39 | if (item.name().equals(name)) { 40 | return item; 41 | } 42 | } 43 | return defaultItem; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/trigger/TriggerTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.trigger; 2 | 3 | import com.xxl.job.admin.core.util.I18nUtil; 4 | 5 | /** 6 | * trigger type enum 7 | * 8 | * @author xuxueli 2018-09-16 04:56:41 9 | */ 10 | public enum TriggerTypeEnum { 11 | 12 | MANUAL(I18nUtil.getString("jobconf_trigger_type_manual")), CRON( 13 | I18nUtil.getString("jobconf_trigger_type_cron")), RETRY( 14 | I18nUtil.getString("jobconf_trigger_type_retry")), PARENT( 15 | I18nUtil.getString("jobconf_trigger_type_parent")), API( 16 | I18nUtil.getString("jobconf_trigger_type_api")), MISFIRE( 17 | I18nUtil.getString("jobconf_trigger_type_misfire")); 18 | 19 | private TriggerTypeEnum(String title) { 20 | this.title = title; 21 | } 22 | 23 | private String title; 24 | 25 | public String getTitle() { 26 | return title; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/core/util/FtlUtil.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.core.util; 2 | 3 | import freemarker.ext.beans.BeansWrapper; 4 | import freemarker.ext.beans.BeansWrapperBuilder; 5 | import freemarker.template.Configuration; 6 | import freemarker.template.TemplateHashModel; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | /** 11 | * ftl util 12 | * 13 | * @author xuxueli 2018-01-17 20:37:48 14 | */ 15 | public class FtlUtil { 16 | 17 | private static Logger logger = LoggerFactory.getLogger(FtlUtil.class); 18 | 19 | private static BeansWrapper wrapper = new BeansWrapperBuilder(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS) 20 | .build(); // BeansWrapper.getDefaultInstance(); 21 | 22 | public static TemplateHashModel generateStaticModel(String packageName) { 23 | try { 24 | TemplateHashModel staticModels = wrapper.getStaticModels(); 25 | TemplateHashModel fileStatics = (TemplateHashModel) staticModels.get(packageName); 26 | return fileStatics; 27 | } 28 | catch (Exception e) { 29 | logger.error(e.getMessage(), e); 30 | } 31 | return null; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.dao; 2 | 3 | import com.xxl.job.admin.api.entity.XxlJobGroup; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by xuxueli on 16/9/30. 11 | */ 12 | @Mapper 13 | public interface XxlJobGroupDao { 14 | 15 | public List findAll(); 16 | 17 | public List findByAddressType(@Param("addressType") int addressType); 18 | 19 | public int save(XxlJobGroup xxlJobGroup); 20 | 21 | public int update(XxlJobGroup xxlJobGroup); 22 | 23 | public int remove(@Param("id") int id); 24 | 25 | public XxlJobGroup load(@Param("id") int id); 26 | 27 | public List pageList(@Param("offset") int offset, @Param("pagesize") int pagesize, 28 | @Param("appname") String appname, @Param("title") String title); 29 | 30 | public int pageListCount(@Param("offset") int offset, @Param("pagesize") int pagesize, 31 | @Param("appname") String appname, @Param("title") String title); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.dao; 2 | 3 | import com.xxl.job.admin.api.entity.XxlJobLogGlue; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * job log for glue 11 | * 12 | * @author xuxueli 2016-5-19 18:04:56 13 | */ 14 | @Mapper 15 | public interface XxlJobLogGlueDao { 16 | 17 | public int save(XxlJobLogGlue xxlJobLogGlue); 18 | 19 | public List findByJobId(@Param("jobId") int jobId); 20 | 21 | public int removeOld(@Param("jobId") int jobId, @Param("limit") int limit); 22 | 23 | public int deleteByJobId(@Param("jobId") int jobId); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/dao/XxlJobLogReportDao.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.dao; 2 | 3 | import com.xxl.job.admin.api.entity.XxlJobLogReport; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.Date; 8 | import java.util.List; 9 | 10 | /** 11 | * job log 12 | * 13 | * @author xuxueli 2019-11-22 14 | */ 15 | @Mapper 16 | public interface XxlJobLogReportDao { 17 | 18 | public int save(XxlJobLogReport xxlJobLogReport); 19 | 20 | public int update(XxlJobLogReport xxlJobLogReport); 21 | 22 | public List queryLogReport(@Param("triggerDayFrom") Date triggerDayFrom, 23 | @Param("triggerDayTo") Date triggerDayTo); 24 | 25 | public XxlJobLogReport queryLogReportTotal(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/dao/XxlJobRegistryDao.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.dao; 2 | 3 | import com.xxl.job.admin.api.entity.XxlJobRegistry; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.Date; 8 | import java.util.List; 9 | 10 | /** 11 | * Created by xuxueli on 16/9/30. 12 | */ 13 | @Mapper 14 | public interface XxlJobRegistryDao { 15 | 16 | public List findDead(@Param("timeout") int timeout, @Param("nowTime") Date nowTime); 17 | 18 | public int removeDead(@Param("ids") List ids); 19 | 20 | public List findAll(@Param("timeout") int timeout, @Param("nowTime") Date nowTime); 21 | 22 | public int registryUpdate(@Param("registryGroup") String registryGroup, @Param("registryKey") String registryKey, 23 | @Param("registryValue") String registryValue, @Param("updateTime") Date updateTime); 24 | 25 | public int registrySave(@Param("registryGroup") String registryGroup, @Param("registryKey") String registryKey, 26 | @Param("registryValue") String registryValue, @Param("updateTime") Date updateTime); 27 | 28 | public int registryDelete(@Param("registryGroup") String registryGroup, @Param("registryKey") String registryKey, 29 | @Param("registryValue") String registryValue); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/dao/XxlJobUserDao.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.dao; 2 | 3 | import com.xxl.job.admin.api.entity.XxlJobUser; 4 | import org.apache.ibatis.annotations.Mapper; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author xuxueli 2019-05-04 16:44:59 11 | */ 12 | @Mapper 13 | public interface XxlJobUserDao { 14 | 15 | public List pageList(@Param("offset") int offset, @Param("pagesize") int pagesize, 16 | @Param("username") String username, @Param("role") int role); 17 | 18 | public int pageListCount(@Param("offset") int offset, @Param("pagesize") int pagesize, 19 | @Param("username") String username, @Param("role") int role); 20 | 21 | public XxlJobUser loadByUserName(@Param("username") String username); 22 | 23 | public int save(XxlJobUser xxlJobUser); 24 | 25 | public int update(XxlJobUser xxlJobUser); 26 | 27 | public int delete(@Param("id") int id); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java: -------------------------------------------------------------------------------- 1 | package com.xxl.job.admin.service.impl; 2 | 3 | import com.xxl.job.admin.core.thread.JobCompleteHelper; 4 | import com.xxl.job.admin.core.thread.JobRegistryHelper; 5 | import com.xxl.job.core.biz.AdminBiz; 6 | import com.xxl.job.core.biz.model.HandleCallbackParam; 7 | import com.xxl.job.core.biz.model.RegistryParam; 8 | import com.xxl.job.core.biz.model.ReturnT; 9 | import org.springframework.stereotype.Service; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @author xuxueli 2017-07-27 21:54:20 15 | */ 16 | @Service 17 | public class AdminBizImpl implements AdminBiz { 18 | 19 | @Override 20 | public ReturnT callback(List callbackParamList) { 21 | return JobCompleteHelper.getInstance().callback(callbackParamList); 22 | } 23 | 24 | @Override 25 | public ReturnT registry(RegistryParam registryParam) { 26 | return JobRegistryHelper.getInstance().registry(registryParam); 27 | } 28 | 29 | @Override 30 | public ReturnT registryRemove(RegistryParam registryParam) { 31 | return JobRegistryHelper.getInstance().registryRemove(registryParam); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | boot: # spring-boot admin 配置 3 | admin: 4 | client: 5 | url: http://xhuicloud-monitor:9090 6 | application: 7 | name: @artifactId@ 8 | profiles: 9 | active: @profiles.active@ 10 | cloud: 11 | nacos: 12 | discovery: 13 | #nacos 地址 14 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 15 | config: 16 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 17 | config: 18 | import: 19 | - optional:nacos:@artifactId@-@profiles.active@.yml 20 | server: 21 | port: 20000 22 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | white-space: pre; 29 | color: black; 30 | cursor: pointer; 31 | } 32 | 33 | li.CodeMirror-hint-active { 34 | background: #08f; 35 | color: white; 36 | } 37 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/icon-ext.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/icon.png -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/loading-0.gif -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/loading-1.gif -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/static/plugins/layer/theme/default/loading-2.gif -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/XHuiCloud-xxl-admin-service/src/main/resources/templates/common/common.exception.ftl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Error 6 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

System Error

25 |

${exceptionMsg}

26 | Back 27 |

28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /XHuiCloud-business/XHuiCloud-xxl-admin/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-business 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | pom 12 | XHuiCloud-xxl-admin 13 | 14 | 15 | XHuiCloud-xxl-admin-service 16 | XHuiCloud-xxl-admin-api 17 | 18 | 19 | -------------------------------------------------------------------------------- /XHuiCloud-business/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | pom 12 | XHuiCloud-business 13 | 公共管理业务模块 14 | 15 | XHuiCloud-sentinel-dashboard 16 | XHuiCloud-gateway 17 | XHuiCloud-register 18 | XHuiCloud-seata 19 | XHuiCloud-logs 20 | XHuiCloud-generator 21 | XHuiCloud-pay 22 | XHuiCloud-xxl-admin 23 | XHuiCloud-job 24 | XHuiCloud-push 25 | XHuiCloud-monitor 26 | XHuiCloud-wechat 27 | XHuiCloud-ai 28 | 29 | 30 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-authorization-resource/src/main/java/com/xhuicloud/common/authorization/resource/constant/LoginPlatformEnum.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.authorization.resource.constant; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | import java.util.Arrays; 7 | 8 | /** 9 | * @Desc 10 | * @Author Sinda 11 | * @Date 2022/9/15 12 | */ 13 | @Getter 14 | @AllArgsConstructor 15 | public enum LoginPlatformEnum { 16 | 17 | 18 | QQ("qq", "社交登录-QQ登录"), 19 | WECHAT_MP("wechat_mp", "社交登录-微信公众号登录"); 20 | 21 | /** 22 | * 类型 23 | */ 24 | private final String type; 25 | /** 26 | * 描述 27 | */ 28 | private final String description; 29 | 30 | public static Boolean hasType(String type){ 31 | return Arrays.stream(values()).anyMatch(x -> x.getType().equals(type)); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-authorization-resource/src/main/java/com/xhuicloud/common/authorization/resource/userdetails/XHuiOtherUserDetailsServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.authorization.resource.userdetails; 2 | 3 | import org.springframework.security.core.userdetails.UserDetails; 4 | import org.springframework.security.core.userdetails.UsernameNotFoundException; 5 | 6 | import java.util.Map; 7 | 8 | /** 9 | * @Desc 其他用户体系 10 | * @Author Sinda 11 | * @Date 2022/9/16 12 | */ 13 | public class XHuiOtherUserDetailsServiceImpl implements XHuiUserDetailsService { 14 | 15 | @Override 16 | public UserDetails getUserDetails(Map claims) { 17 | return null; 18 | } 19 | 20 | @Override 21 | public UserDetails loadUserBySocial(String username, String grantType) throws UsernameNotFoundException { 22 | return null; 23 | } 24 | 25 | @Override 26 | public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-authorization-resource/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.xhuicloud.common.authorization.resource.aspect.AnonymousAspect 2 | com.xhuicloud.common.authorization.resource.component.AuthorizeService 3 | com.xhuicloud.common.authorization.resource.userdetails.XHuiUserDetailsServiceImpl 4 | com.xhuicloud.common.authorization.resource.userdetails.XHuiOtherUserDetailsServiceImpl 5 | com.xhuicloud.common.authorization.resource.component.GlobalExceptionHandlerResolver 6 | com.xhuicloud.common.authorization.resource.component.OAuth2TokenRequestInterceptor -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-authorization/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-commons 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | 通用认证模块 13 | XHuiCloud-common-authorization 14 | 15 | 16 | 17 | org.springframework.security 18 | spring-security-oauth2-authorization-server 19 | 20 | 21 | com.xhuicloud 22 | XHuiCloud-common-authorization-resource 23 | 24 | 25 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-authorization/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.xhuicloud.common.authorization.AuthorizationServerAutoConfiguration 2 | com.xhuicloud.common.authorization.BaseWebSecurityConfigurer 3 | com.xhuicloud.common.authorization.extension.RedisOAuth2AuthorizationService 4 | com.xhuicloud.common.authorization.repository.CustomRegisteredClientRepository 5 | com.xhuicloud.common.authorization.handler.DelegatingAuthenticationSuccessHandler 6 | com.xhuicloud.common.authorization.handler.DelegatingAuthenticationFailureHandler 7 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-core/src/main/java/com/xhuicloud/common/core/enums/RejectedExecutionEnum.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.core.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | import java.util.concurrent.RejectedExecutionHandler; 7 | import java.util.concurrent.ThreadPoolExecutor; 8 | 9 | /** 10 | * @Desc 11 | * @Author Sinda 12 | * @Date 2023/2/20 13 | */ 14 | @Getter 15 | @AllArgsConstructor 16 | public enum RejectedExecutionEnum { 17 | 18 | AbortPolicy(new ThreadPoolExecutor.AbortPolicy(), "丢弃任务并抛出RejectedExecutionException异常(默认)"), 19 | 20 | DiscardPolicy(new ThreadPoolExecutor.DiscardPolicy(), "丢弃任务,但是不抛出异常"), 21 | 22 | DiscardOldestPolicy(new ThreadPoolExecutor.DiscardOldestPolicy(), "丢弃队列最前面的任务,然后重新尝试执行任务"), 23 | 24 | CallerRunsPolicy(new ThreadPoolExecutor.CallerRunsPolicy(), "由调用线程处理该任务"); 25 | 26 | private final RejectedExecutionHandler handler; 27 | 28 | private final String description; 29 | } 30 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-core/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.core.jackson.XHuiJacksonConfig,\ 3 | com.xhuicloud.common.core.thread.AsyncThreadExecuteConfiguration 4 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-core/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | ${AnsiColor.BRIGHT_YELLOW} 2 | 3 | # # # # ##### 4 | # # # # # # # # # # #### # # ##### 5 | # # # # # # # # # # # # # # # 6 | # ####### # # # # # # # # # # # 7 | # # # # # # # # # # # # # # # 8 | # # # # # # # # # # # # # # # # 9 | # # # # #### # ##### ###### #### #### ##### 10 | 11 | 12 | Application-name : ${spring.application.name} 13 | Application-Version : @project.version@ 14 | Spring Boot Version: ${spring-boot.version} 15 | ${AnsiColor.DEFAULT} 16 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-data/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-commons 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | 数据缓存模块 12 | jar 13 | XHuiCloud-common-data 14 | 15 | 16 | 17 | org.springframework.boot 18 | spring-boot-starter-data-redis 19 | 20 | 21 | com.xhuicloud 22 | XHuiCloud-common-core 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-data/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.data.cache.RedisTemplateConfig,\ 3 | com.xhuicloud.common.data.cache.RedisCacheManagerConfig,\ 4 | com.xhuicloud.common.data.cache.RedisCacheAutoConfiguration,\ 5 | com.xhuicloud.common.data.resolver.TenantKeyResolver 6 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-elasticJob/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.elasticJob.XHuiElasticJobAutoConfiguration 3 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-feign/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.xhuicloud.common.feign.filters.XHuiTenantFilter 2 | com.xhuicloud.common.feign.XHuiFeignAutoConfiguration -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-gateway/src/main/java/com/xhuicloud/common/gateway/support/ClientDetailsInitEvent.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.gateway.support; 2 | 3 | import org.springframework.context.ApplicationEvent; 4 | 5 | /** 6 | * @Desc 7 | * @Author Sinda 8 | * @Date 2022/10/27 9 | */ 10 | public class ClientDetailsInitEvent extends ApplicationEvent { 11 | 12 | public ClientDetailsInitEvent(Object source) { 13 | super(source); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-gray/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.gray.GrayLoadBalancerAutoConfiguration -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-lock/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.lock.config.RedissonAutoConfiguration 3 | org.springframework.boot.context.properties.EnableConfigurationProperties=\ 4 | com.xhuicloud.common.lock.properties.XHuiRedisProperties 5 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-log/src/main/java/com/xhuicloud/common/log/annotation/AuditRecord.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.log.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * @Desc 7 | * @Author Sinda 8 | * @Date 2023/1/11 9 | */ 10 | @Documented 11 | @Target(ElementType.METHOD) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface AuditRecord { 14 | 15 | /** 16 | * eg: "'修改了:从' + #new1 + ',修改到 '+ #new2" 17 | * eg: "'修改了:从' + deliveryUser(#new1) + ',修改到 '+ #new2" 注意:调用的是当前切点类中的方法 18 | * 19 | * @return 20 | */ 21 | String value() default ""; 22 | 23 | /** 24 | * 记录日志的条件 25 | * 26 | * @return 27 | */ 28 | String condition() default ""; 29 | 30 | /** 31 | * 打码字段: 只对请求参数 返回结果有效 32 | * 默认使用: * 打码 33 | * 34 | * @return 35 | */ 36 | String[] anonymousFields() default {}; 37 | } 38 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-log/src/main/java/com/xhuicloud/common/log/annotation/EnableAudit.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.log.annotation; 2 | 3 | import com.xhuicloud.common.log.XHuiLogAutoConfiguration; 4 | import org.springframework.context.annotation.Import; 5 | 6 | import java.lang.annotation.*; 7 | 8 | /** 9 | * @Desc 10 | * @Author Sinda 11 | * @Date 2023/2/20 12 | */ 13 | @Documented 14 | @Inherited 15 | @Target({ElementType.TYPE}) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Import(XHuiLogAutoConfiguration.class) 18 | public @interface EnableAudit { 19 | } 20 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-log/src/main/java/com/xhuicloud/common/log/component/IOperatorGetService.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.log.component; 2 | 3 | 4 | import com.xhuicloud.common.log.model.Operator; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2023/2/1 10 | */ 11 | public interface IOperatorGetService { 12 | 13 | Operator getUser(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-log/src/main/java/com/xhuicloud/common/log/component/LogExpressionEvaluator.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.log.component; 2 | 3 | import org.springframework.context.expression.AnnotatedElementKey; 4 | import org.springframework.context.expression.CachedExpressionEvaluator; 5 | import org.springframework.expression.EvaluationContext; 6 | import org.springframework.expression.Expression; 7 | 8 | import java.util.Map; 9 | import java.util.concurrent.ConcurrentHashMap; 10 | 11 | /** 12 | * @Desc 13 | * @Author Sinda 14 | * @Date 2023/1/30 15 | */ 16 | public class LogExpressionEvaluator extends CachedExpressionEvaluator { 17 | 18 | private Map expressionCache = new ConcurrentHashMap<>(64); 19 | 20 | public String parseExpressionToStr(String conditionExpression, AnnotatedElementKey methodKey, EvaluationContext evalContext) { 21 | return getExpression(this.expressionCache, methodKey, conditionExpression).getValue(evalContext, String.class); 22 | } 23 | 24 | public T parseExpression(String conditionExpression, AnnotatedElementKey methodKey, EvaluationContext evalContext, Class desiredResultType) { 25 | return getExpression(this.expressionCache, methodKey, conditionExpression).getValue(evalContext, desiredResultType); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-log/src/main/java/com/xhuicloud/common/log/component/MethodResult.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.log.component; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | /** 7 | * @Desc 8 | * @Author Sinda 9 | * @Date 2023/1/30 10 | */ 11 | @Data 12 | @AllArgsConstructor 13 | public class MethodResult { 14 | 15 | private boolean success; 16 | 17 | private Throwable throwable; 18 | 19 | private String errorMsg; 20 | } 21 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-log/src/main/java/com/xhuicloud/common/log/constant/LogConstant.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.log.constant; 2 | 3 | /** 4 | * @Desc 5 | * @Author Sinda 6 | * @Date 2023/1/31 7 | */ 8 | public interface LogConstant { 9 | 10 | /** 11 | * 审计日志队列 12 | */ 13 | String AUDIT_RECORD_QUEUE_NAME = "log.audit.record.queue"; 14 | 15 | /** 16 | * 登录日志队列 17 | */ 18 | String LOGIN_RECORD_QUEUE_NAME = "log.login.record.queue"; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-log/src/main/java/com/xhuicloud/common/log/model/Operator.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.log.model; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @Desc 7 | * @Author Sinda 8 | * @Date 2023/2/1 9 | */ 10 | @Data 11 | public class Operator { 12 | 13 | private String operatorId; 14 | 15 | private String operatorName; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-log/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.log.filters.XHuiReqIdFilter 3 | org.springframework.context.ApplicationContextInitializer=\ 4 | com.xhuicloud.common.log.init.ApplicationLoggerInitializer 5 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-mqtt/XHuiCloud-common-mqtt-server/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-common-mqtt 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | 12 | XHuiCloud-common-mqtt-server 13 | 14 | 15 | 8 16 | 8 17 | 18 | 19 | 20 | 21 | net.dreamlu 22 | mica-mqtt-server-spring-boot-starter 23 | 24 | 25 | 26 | ${project.groupId} 27 | XHuiCloud-common-authorization-resource 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-mqtt/XHuiCloud-common-mqtt-server/src/main/java/com/xhuicloud/common/mqtt/server/auth/MqttAuthHandler.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.mqtt.server.auth; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import net.dreamlu.iot.mqtt.core.server.auth.IMqttServerAuthHandler; 5 | import org.tio.core.ChannelContext; 6 | 7 | /** 8 | * @Desc mqtt tcp、websocket 认证,请按照自己的需求和业务进行扩展 9 | * @Author Sinda 10 | * @Date 2023/2/14 11 | */ 12 | @Slf4j 13 | //@ConditionalOnMissingBean 14 | //@Configuration(proxyBeanMethods = false) 15 | public class MqttAuthHandler implements IMqttServerAuthHandler { 16 | 17 | @Override 18 | public boolean authenticate(ChannelContext context, String uniqueId, String clientId, String userName, String password) { 19 | return true; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-mqtt/XHuiCloud-common-mqtt-server/src/main/java/com/xhuicloud/common/mqtt/server/auth/MqttSubscribeValidator.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.mqtt.server.auth; 2 | 3 | import net.dreamlu.iot.mqtt.codec.MqttQoS; 4 | import net.dreamlu.iot.mqtt.core.server.auth.IMqttServerSubscribeValidator; 5 | import org.springframework.context.annotation.Configuration; 6 | import org.tio.core.ChannelContext; 7 | 8 | /** 9 | * @Desc 自定义订阅校验,请按照自己的需求和业务进行扩展 10 | * @Author Sinda 11 | * @Date 2023/2/14 12 | */ 13 | @Configuration(proxyBeanMethods = false) 14 | public class MqttSubscribeValidator implements IMqttServerSubscribeValidator { 15 | 16 | @Override 17 | public boolean isValid(ChannelContext context, String clientId, String topicFilter, MqttQoS qoS) { 18 | // 校验客户端订阅的 topic,校验成功返回 true,失败返回 false 19 | return true; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-mqtt/XHuiCloud-common-mqtt-server/src/main/java/com/xhuicloud/common/mqtt/server/auth/MqttUniqueIdService.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.mqtt.server.auth; 2 | 3 | import net.dreamlu.iot.mqtt.core.server.auth.IMqttServerUniqueIdService; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.tio.core.ChannelContext; 6 | 7 | /** 8 | * @Desc 自定义 clientId,请按照自己的需求和业务进行扩展 9 | * @Author Sinda 10 | * @Date 2023/2/14 11 | */ 12 | @Configuration(proxyBeanMethods = false) 13 | public class MqttUniqueIdService implements IMqttServerUniqueIdService { 14 | 15 | @Override 16 | public String getUniqueId(ChannelContext context, String clientId, String userName, String password) { 17 | // 返回的 uniqueId 会替代 mqtt client 传过来的 clientId,请保证返回的 uniqueId 唯一。 18 | return clientId; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-mqtt/XHuiCloud-common-mqtt-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.xhuicloud.common.mqtt.server.auth.MqttHttpAuthFilter 2 | com.xhuicloud.common.mqtt.server.auth.MqttSubscribeValidator 3 | com.xhuicloud.common.mqtt.server.auth.MqttUniqueIdService 4 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-mqtt/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-commons 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | pom 12 | XHuiCloud-common-mqtt 13 | 14 | 15 | 8 16 | 8 17 | 18 | 19 | 20 | XHuiCloud-common-mqtt-server 21 | 22 | 23 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.xhuicloud.common.mybatis.tenant.XHuiTenantConfiguration 2 | com.xhuicloud.common.mybatis.config.XHuiMybatisPlusConfig -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-oss/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.oss.OssAutoConfiguration 3 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-rabbitMq/src/main/java/com/xhuicloud/common/mq/config/XHuiDefaultRabbitMqCallback.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.mq.config; 2 | 3 | import org.springframework.amqp.core.ReturnedMessage; 4 | import org.springframework.amqp.rabbit.connection.CorrelationData; 5 | 6 | public class XHuiDefaultRabbitMqCallback implements XHuiRabbitMqCallback{ 7 | @Override 8 | public void confirm(CorrelationData correlationData, boolean ack, String cause) { 9 | 10 | } 11 | 12 | @Override 13 | public void returnedMessage(ReturnedMessage returnedMessage) { 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-rabbitMq/src/main/java/com/xhuicloud/common/mq/config/XHuiRabbitMqCallback.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.mq.config; 2 | 3 | import org.springframework.amqp.core.ReturnedMessage; 4 | import org.springframework.amqp.rabbit.connection.CorrelationData; 5 | 6 | public interface XHuiRabbitMqCallback { 7 | 8 | void confirm(CorrelationData correlationData, boolean ack, String cause); 9 | 10 | void returnedMessage(ReturnedMessage returnedMessage); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-seata/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-commons 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | 分布式事务模块 12 | jar 13 | XHuiCloud-common-seata 14 | 15 | 16 | 17 | com.alibaba.cloud 18 | spring-cloud-starter-alibaba-seata 19 | 20 | 21 | 22 | io.seata 23 | seata-spring-boot-starter 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-seata/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.transaction.configuration.XHuiSeataConfiguration 3 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-sentinel/src/main/java/com/xhuicloud/common/sentinel/extension/EnhanceExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.sentinel.extension; 2 | 3 | import org.springframework.beans.BeansException; 4 | import org.springframework.beans.factory.config.BeanPostProcessor; 5 | import org.springframework.web.bind.annotation.ControllerAdvice; 6 | import org.springframework.web.bind.annotation.RestControllerAdvice; 7 | 8 | /** 9 | * @Desc 全局异常增强 10 | * @Author Sinda 11 | * @Date 2022/8/18 12 | */ 13 | public class EnhanceExceptionHandler implements BeanPostProcessor { 14 | 15 | @Override 16 | public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { 17 | ControllerAdvice controllerAdvice = bean.getClass().getAnnotation(ControllerAdvice.class); 18 | RestControllerAdvice restControllerAdvice = bean.getClass().getAnnotation(RestControllerAdvice.class); 19 | if (controllerAdvice != null || restControllerAdvice != null) { 20 | return new EnhanceGlobalExceptionResolver(bean).getProxyInstance(); 21 | } 22 | return bean; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-sentinel/src/main/java/com/xhuicloud/common/sentinel/extension/EnhanceGlobalExceptionResolver.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.sentinel.extension; 2 | 3 | 4 | import com.alibaba.csp.sentinel.Tracer; 5 | import org.springframework.cglib.proxy.Enhancer; 6 | import org.springframework.cglib.proxy.MethodInterceptor; 7 | import org.springframework.cglib.proxy.MethodProxy; 8 | 9 | import java.lang.reflect.Method; 10 | 11 | /** 12 | * @Desc 13 | * @Author Sinda 14 | * @Date 2022/8/19 15 | */ 16 | public class EnhanceGlobalExceptionResolver implements MethodInterceptor { 17 | private Object target; 18 | 19 | public EnhanceGlobalExceptionResolver(Object target) { 20 | this.target = target; 21 | } 22 | 23 | /** 24 | * 创建代理对象 25 | * 26 | * @return 27 | */ 28 | public Object getProxyInstance() { 29 | Enhancer en = new Enhancer(); 30 | en.setSuperclass(target.getClass()); 31 | en.setCallback(this); 32 | return en.create(); 33 | } 34 | 35 | @Override 36 | public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { 37 | // sentinel 记录 38 | Tracer.trace((Throwable) objects[0]); 39 | Object result = method.invoke(target, objects); 40 | return result; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-sentinel/src/main/java/com/xhuicloud/common/sentinel/handler/XHuiBlockRequestHandler.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.common.sentinel.handler; 2 | 3 | import com.alibaba.csp.sentinel.adapter.spring.webflux.callback.BlockRequestHandler; 4 | import com.xhuicloud.common.core.utils.Response; 5 | import org.springframework.http.HttpStatus; 6 | import org.springframework.http.MediaType; 7 | import org.springframework.web.reactive.function.BodyInserters; 8 | import org.springframework.web.reactive.function.server.ServerResponse; 9 | import org.springframework.web.server.ServerWebExchange; 10 | import reactor.core.publisher.Mono; 11 | 12 | /** 13 | * @Desc 14 | * @Author Sinda 15 | * @Date 2022/8/17 16 | */ 17 | public class XHuiBlockRequestHandler implements BlockRequestHandler { 18 | 19 | @Override 20 | public Mono handleRequest(ServerWebExchange serverWebExchange, Throwable throwable) { 21 | return ServerResponse.status(HttpStatus.TOO_MANY_REQUESTS) 22 | .contentType(MediaType.APPLICATION_JSON) 23 | .body(BodyInserters.fromValue(Response.failed(throwable.getMessage()))); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-sentinel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.xhuicloud.common.sentinel.SentinelAutoConfiguration 2 | com.xhuicloud.common.sentinel.extension.EnhanceExceptionHandler -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-xxl/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-commons 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | 分布式任务XXL-JOB 12 | jar 13 | XHuiCloud-common-xxl 14 | 15 | 16 | 17 | 18 | com.xuxueli 19 | xxl-job-core 20 | 21 | 22 | 23 | org.springframework.cloud 24 | spring-cloud-commons 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-zero/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-commons 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | 分布式发号器 12 | jar 13 | XHuiCloud-common-zero 14 | 15 | 16 | 17 | org.apache.curator 18 | curator-framework 19 | 20 | 21 | 22 | commons-io 23 | commons-io 24 | 2.6 25 | 26 | 27 | 28 | org.springframework.boot 29 | spring-boot-starter-json 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-zero/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.xhuicloud.common.zero.XHuiZeroAutoConfiguration 3 | -------------------------------------------------------------------------------- /XHuiCloud-commons/XHuiCloud-common-zero/src/main/resources/fdp.properties: -------------------------------------------------------------------------------- 1 | leaf.name=@project.name@ 2 | leaf.segment.enable=false 3 | #leaf.jdbc.url= 4 | #leaf.jdbc.username= 5 | #leaf.jdbc.password= 6 | 7 | leaf.snowflake.enable=false 8 | #leaf.snowflake.zk.address= 9 | #leaf.snowflake.port= 10 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud-upms 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | jar 12 | XHuiCloud-upms-api 13 | 14 | 15 | com.baomidou 16 | mybatis-plus-extension 17 | 18 | 19 | 20 | ${project.groupId} 21 | XHuiCloud-common-feign 22 | 23 | 24 | 25 | ${project.groupId} 26 | XHuiCloud-common-core 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-api/src/main/java/com/xhuicloud/upms/dto/RouteConfDto.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.upms.dto; 2 | 3 | import com.xhuicloud.upms.vo.FilterVo; 4 | import com.xhuicloud.upms.vo.PredicateVo; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.Data; 7 | 8 | import javax.validation.constraints.NotNull; 9 | import java.util.List; 10 | 11 | /** 12 | * @Desc 13 | * @Author Sinda 14 | * @Date 2022/10/31 15 | */ 16 | @Data 17 | public class RouteConfDto { 18 | 19 | @ApiModelProperty(value="主键") 20 | @NotNull(message = "id不能为空") 21 | private Long id; 22 | 23 | /** 24 | * 路由名称 25 | */ 26 | @ApiModelProperty(value="路由名称") 27 | private String routeName; 28 | 29 | /** 30 | * 路由id 31 | */ 32 | @ApiModelProperty(value="路由id") 33 | private String routeId; 34 | 35 | /** 36 | * 路由地址 37 | */ 38 | @ApiModelProperty(value="路由地址") 39 | private String uri; 40 | 41 | @ApiModelProperty(value="谓词") 42 | private List predicateVos; 43 | 44 | @ApiModelProperty(value="过滤器") 45 | private List filterVos; 46 | 47 | } 48 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-api/src/main/java/com/xhuicloud/upms/vo/FilterVo.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.upms.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @Desc 9 | * @Author Sinda 10 | * @Date 2022/10/31 11 | */ 12 | @Data 13 | public class FilterVo implements Serializable { 14 | 15 | private static final long serialVersionUID = 1L; 16 | 17 | private String name; 18 | 19 | private String value; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-api/src/main/java/com/xhuicloud/upms/vo/PredicateAndFilterVo.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.upms.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @Desc 9 | * @Author Sinda 10 | * @Date 2022/11/1 11 | */ 12 | @Data 13 | public class PredicateAndFilterVo { 14 | 15 | private List predicateVos; 16 | 17 | private List filterVos; 18 | } 19 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-api/src/main/java/com/xhuicloud/upms/vo/PredicateVo.java: -------------------------------------------------------------------------------- 1 | package com.xhuicloud.upms.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @Desc 9 | * @Author Sinda 10 | * @Date 2022/10/31 11 | */ 12 | @Data 13 | public class PredicateVo implements Serializable { 14 | 15 | private static final long serialVersionUID = 1L; 16 | 17 | private String name; 18 | 19 | private String value; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | RUN mkdir -p /XHuiCloud-upms-service 10 | 11 | WORKDIR /XHuiCloud-upms-service 12 | 13 | EXPOSE 17000 14 | 15 | ADD ./target/XHuiCloud-upms-service.jar ./ 16 | 17 | CMD java -Xms512m -Xmx512m -Xss256k -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar XHuiCloud-upms-service.jar 18 | 19 | 20 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: @artifactId@ 4 | profiles: 5 | active: @profiles.active@ 6 | cloud: 7 | gateway: 8 | enabled: false 9 | nacos: 10 | discovery: 11 | #nacos 地址 12 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 13 | config: 14 | server-addr: ${NACOS_HOST:xhuicloud-register}:${NACOS_PORT:13000} 15 | config: 16 | import: 17 | - optional:nacos:application-common-@profiles.active@.yml 18 | - optional:nacos:xhuicloud-common-@profiles.active@.yml 19 | - optional:nacos:@artifactId@-@profiles.active@.yml 20 | autoconfigure: 21 | exclude: org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration 22 | 23 | server: 24 | port: 17000 25 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysDictDataMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | id, dict_id, `type`, `label`, `value`, description, remarks, sort, create_time, create_id, 24 | update_time, update_id, is_del 25 | 26 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysDictMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | id, `type`, description, remark, sort, create_time, create_id, update_time, update_id, 22 | is_del, tenant_id 23 | 24 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysParamMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | id, config_name, config_key, config_value, config_type, remark, sort, create_id, 23 | create_time, update_id, update_time, is_del 24 | 25 | 26 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysRoleMenuMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | DELETE FROM sys_role_menu 12 | 13 | menu_id in 14 | 15 | #{item} 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysRouteConfMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | id, route_name, route_id, predicates, filters, uri, sort, create_time, create_id, update_time, update_id, 23 | is_del 24 | 25 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysTenantMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | id, `name`, `state`, expiration_time, logo, `remake`, create_time, create_id, update_time, update_id, 22 | is_del 23 | 24 | 25 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysUserDeptMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysUserRoleMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /XHuiCloud-upms/XHuiCloud-upms-service/src/main/resources/mapper/SysUserSocialMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | user_id, social_type, user_openid 14 | 15 | 16 | -------------------------------------------------------------------------------- /XHuiCloud-upms/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | XHuiCloud 7 | com.xhuicloud 8 | ${revision} 9 | 10 | 4.0.0 11 | XHuiCloud-upms 12 | pom 13 | 14 | XHuiCloud-upms-api 15 | XHuiCloud-upms-service 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/architecture.png -------------------------------------------------------------------------------- /doc/db/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mysql:8.0.28 2 | 3 | MAINTAINER Sinda(sindazeng@gmail.com) 4 | 5 | ENV TZ=Asia/Shanghai 6 | 7 | RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 8 | 9 | COPY 1schema.sql /docker-entrypoint-initdb.d 10 | 11 | COPY 2xhuicloud_sys.sql /docker-entrypoint-initdb.d 12 | 13 | COPY 3xhuicloud_register.sql /docker-entrypoint-initdb.d 14 | 15 | COPY 4xhuicloud_job.sql /docker-entrypoint-initdb.d 16 | 17 | COPY 5xhuicloud_wechat.sql /docker-entrypoint-initdb.d 18 | 19 | COPY 6xhuicloud_gen.sql /docker-entrypoint-initdb.d 20 | 21 | COPY 7xhuicloud_push.sql /docker-entrypoint-initdb.d 22 | 23 | COPY 8xhuicloud_audit.sql /docker-entrypoint-initdb.d 24 | -------------------------------------------------------------------------------- /doc/db/README.md: -------------------------------------------------------------------------------- 1 | ### 全量DB 2 | 3 | ### 增量DB将在此文件夹下新增对应时间的增量DB -------------------------------------------------------------------------------- /doc/mq/enabled_plugins: -------------------------------------------------------------------------------- 1 | [rabbitmq_prometheus,rabbitmq_delayed_message_exchange,rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp]. 2 | -------------------------------------------------------------------------------- /doc/mq/rabbitmq_delayed_message_exchange-3.11.1.ez: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/doc/mq/rabbitmq_delayed_message_exchange-3.11.1.ez -------------------------------------------------------------------------------- /doc/script/windows/host.bat: -------------------------------------------------------------------------------- 1 | @attrib -r "%windir%\system32\drivers\etc\hosts" 2 | 3 | @echo 120.0.0.1 xhuicloud-register >>"%windir%\system32\drivers\etc\hosts" 4 | 5 | @echo 120.0.0.1 xhuicloud-sentinel >>"%windir%\system32\drivers\etc\hosts" 6 | 7 | @echo 120.0.0.1 xhuicloud-mysql >>"%windir%\system32\drivers\etc\hosts" 8 | 9 | -------------------------------------------------------------------------------- /jetbrains.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindaZeng/XHuiCloud/2fe07015e70db87b830135c8fa5e5e025b7869cf/jetbrains.png --------------------------------------------------------------------------------