├── snow-ui ├── public │ ├── robots.txt │ └── favicon.ico ├── bin │ ├── build.bat │ ├── package.bat │ └── run-web.bat ├── src │ ├── components │ │ ├── ParentView │ │ │ └── index.vue │ │ ├── IconSelect │ │ │ └── requireIcons.js │ │ ├── RuoYi │ │ │ ├── Doc │ │ │ │ └── index.vue │ │ │ └── Git │ │ │ │ └── index.vue │ │ └── iFrame │ │ │ └── index.vue │ ├── assets │ │ ├── images │ │ │ ├── pay.png │ │ │ ├── profile.jpg │ │ │ └── login-background.jpg │ │ ├── logo │ │ │ └── logo.png │ │ ├── 401_images │ │ │ └── 401.gif │ │ ├── 404_images │ │ │ ├── 404.png │ │ │ └── 404_cloud.png │ │ ├── icons │ │ │ ├── svg │ │ │ │ ├── chart.svg │ │ │ │ ├── size.svg │ │ │ │ ├── link.svg │ │ │ │ ├── guide.svg │ │ │ │ ├── money.svg │ │ │ │ ├── email.svg │ │ │ │ ├── drag.svg │ │ │ │ ├── documentation.svg │ │ │ │ ├── fullscreen.svg │ │ │ │ ├── user.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── excel.svg │ │ │ │ ├── example.svg │ │ │ │ ├── slider.svg │ │ │ │ ├── star.svg │ │ │ │ ├── table.svg │ │ │ │ ├── search.svg │ │ │ │ ├── education.svg │ │ │ │ ├── tab.svg │ │ │ │ ├── message.svg │ │ │ │ ├── switch.svg │ │ │ │ ├── theme.svg │ │ │ │ ├── code.svg │ │ │ │ ├── druid.svg │ │ │ │ ├── peoples.svg │ │ │ │ ├── input.svg │ │ │ │ ├── server.svg │ │ │ │ ├── textarea.svg │ │ │ │ ├── time.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── nested.svg │ │ │ │ ├── row.svg │ │ │ │ ├── monitor.svg │ │ │ │ ├── tree-table.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── build.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── list.svg │ │ │ │ ├── download.svg │ │ │ │ ├── icon.svg │ │ │ │ ├── international.svg │ │ │ │ ├── question.svg │ │ │ │ ├── wechat.svg │ │ │ │ ├── skill.svg │ │ │ │ └── people.svg │ │ │ ├── index.js │ │ │ └── svgo.yml │ │ └── styles │ │ │ ├── element-variables.scss │ │ │ └── transition.scss │ ├── utils │ │ ├── errorCode.js │ │ ├── dict │ │ │ ├── DictData.js │ │ │ ├── DictConverter.js │ │ │ ├── index.js │ │ │ └── DictMeta.js │ │ ├── generator │ │ │ ├── css.js │ │ │ └── drawingDefault.js │ │ └── auth.js │ ├── api │ │ ├── menu.js │ │ ├── monitor │ │ │ ├── online.js │ │ │ └── jobLog.js │ │ └── system │ │ │ ├── operlog.js │ │ │ ├── logininfor.js │ │ │ ├── post.js │ │ │ ├── notice.js │ │ │ ├── dept.js │ │ │ └── dict │ │ │ └── data.js │ ├── layout │ │ └── components │ │ │ ├── index.js │ │ │ ├── Sidebar │ │ │ ├── FixiOSBug.js │ │ │ ├── Item.vue │ │ │ └── Link.vue │ │ │ └── IframeToggle │ │ │ └── index.vue │ ├── views │ │ ├── redirect.vue │ │ └── dinky │ │ │ └── index.vue │ ├── plugins │ │ └── index.js │ ├── store │ │ ├── index.js │ │ ├── getters.js │ │ └── modules │ │ │ └── dict.js │ ├── App.vue │ ├── directive │ │ ├── permission │ │ │ ├── hasRole.js │ │ │ └── hasPermi.js │ │ ├── index.js │ │ └── dialog │ │ │ └── dragWidth.js │ └── settings.js ├── .env.production ├── .env.staging ├── .eslintignore ├── .env.development ├── .gitignore ├── .editorconfig ├── README.md ├── babel.config.js └── build │ └── index.js ├── snow-modules ├── .DS_Store ├── snow-dinky │ └── src │ │ ├── main │ │ ├── resources │ │ │ ├── META-INF │ │ │ │ ├── services │ │ │ │ │ ├── org.dinky.job.JobHandler │ │ │ │ │ └── org.dinky.daemon.task.DaemonTask │ │ │ │ └── spring.factories │ │ │ ├── json │ │ │ │ ├── openapi_submittask.json │ │ │ │ ├── openapi_getjobdata.json │ │ │ │ ├── openapi_savepointtask.json │ │ │ │ ├── openapi_cancel.json │ │ │ │ ├── openapi_savepoint.json │ │ │ │ ├── openapi_explainsql.json │ │ │ │ ├── openapi_getjobplan.json │ │ │ │ ├── openapi_getstreamgraph.json │ │ │ │ └── openapi_executeJar_application.json │ │ │ ├── static │ │ │ │ ├── p__DevOps__JobDetail__index.48e97902.chunk.css │ │ │ │ ├── favicon.ico │ │ │ │ ├── community │ │ │ │ │ ├── qq.png │ │ │ │ │ ├── wechat.jpg │ │ │ │ │ └── dingtalk.jpg │ │ │ │ ├── icons │ │ │ │ │ └── user_avatar.png │ │ │ │ ├── static │ │ │ │ │ └── codicon.ecfbfe4b.ttf │ │ │ │ ├── 6390.064531aa.async.js │ │ │ │ ├── p__DataStudio__index.89f5fbf8.chunk.css │ │ │ │ ├── p__Other__404__index.9913a139.async.js │ │ │ │ ├── p__Other__Redirect__index.d84ca07b.async.js │ │ │ │ ├── 1471.7b64dafb.async.js │ │ │ │ ├── t__plugin-layout__Layout.6cae69f5.chunk.css │ │ │ │ └── 2798.4a06d39c.async.js │ │ │ ├── banner.txt │ │ │ ├── jmx │ │ │ │ └── jmx_exporter_config.yaml │ │ │ ├── mapper │ │ │ │ ├── UserTenantMapper.xml │ │ │ │ ├── RoleMenuMapper.xml │ │ │ │ └── JobHistoryMapper.xml │ │ │ ├── bootstrap.yml │ │ │ ├── mybatis.xml │ │ │ └── DinkyFlinkDockerfile │ │ └── java │ │ │ └── org │ │ │ └── dinky │ │ │ ├── service │ │ │ ├── sse │ │ │ │ └── SseService.java │ │ │ ├── APIService.java │ │ │ ├── FlinkService.java │ │ │ └── AlertRuleService.java │ │ │ ├── mybatis │ │ │ └── annotation │ │ │ │ └── Save.java │ │ │ ├── mapper │ │ │ ├── MetricsMapper.java │ │ │ └── ResourcesMapper.java │ │ │ ├── job │ │ │ └── handler │ │ │ │ └── AbsJobHandler.java │ │ │ └── data │ │ │ └── dto │ │ │ └── SseSubscribeDTO.java │ │ └── test │ │ └── java │ │ └── org │ │ └── dinky │ │ └── service │ │ └── impl │ │ └── PrintTableServiceImplTest.java ├── snow-dolphinscheduler │ └── src │ │ └── main │ │ ├── resources │ │ ├── static │ │ │ └── shell │ │ │ │ ├── shell.png │ │ │ │ └── shell_hover.png │ │ ├── banner.txt │ │ └── swagger.properties │ │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── dolphinscheduler │ │ │ └── api │ │ │ ├── service │ │ │ ├── extend │ │ │ │ └── ExtendSysUserService.java │ │ │ └── TaskDefinitionLogService.java │ │ │ ├── executor │ │ │ ├── ExecuteResult.java │ │ │ └── ExecuteRequest.java │ │ │ ├── dto │ │ │ ├── resources │ │ │ │ └── FileLeaf.java │ │ │ └── ProcessInstanceDto.java │ │ │ └── security │ │ │ └── impl │ │ │ └── AbstractSsoAuthenticator.java │ │ └── bin │ │ └── jvm_args_env.sh ├── snow-file │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── snow │ │ │ └── file │ │ │ └── service │ │ │ └── ISysFileService.java │ │ └── resources │ │ ├── banner.txt │ │ └── bootstrap.yml ├── snow-job │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── snow │ │ │ └── job │ │ │ ├── util │ │ │ ├── QuartzJobExecution.java │ │ │ └── QuartzDisallowConcurrentExecution.java │ │ │ └── task │ │ │ └── RyTask.java │ │ └── resources │ │ ├── banner.txt │ │ └── bootstrap.yml ├── snow-gen │ └── src │ │ └── main │ │ ├── resources │ │ ├── bootstrap.yml │ │ ├── banner.txt │ │ └── vm │ │ │ └── js │ │ │ └── api.js.vm │ │ └── java │ │ └── com │ │ └── snow │ │ └── gen │ │ ├── util │ │ └── VelocityInitializer.java │ │ └── service │ │ └── IGenTableColumnService.java ├── snow-system │ └── src │ │ └── main │ │ ├── resources │ │ ├── bootstrap.yml │ │ └── banner.txt │ │ └── java │ │ └── com │ │ └── snow │ │ └── system │ │ ├── service │ │ ├── ISysPermissionService.java │ │ ├── ISysLogininforService.java │ │ └── ISysOperLogService.java │ │ ├── mapper │ │ ├── SysLogininforMapper.java │ │ ├── SysRoleMenuMapper.java │ │ ├── SysUserPostMapper.java │ │ ├── SysRoleDeptMapper.java │ │ └── SysOperLogMapper.java │ │ └── domain │ │ ├── SysRoleDept.java │ │ ├── SysRoleMenu.java │ │ ├── SysUserRole.java │ │ └── SysUserPost.java └── pom.xml ├── snow-common ├── snow-common-core │ └── src │ │ └── main │ │ ├── resources │ │ └── META-INF │ │ │ └── spring │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ └── java │ │ └── com │ │ └── snow │ │ └── common │ │ └── core │ │ ├── exception │ │ ├── DemoModeException.java │ │ ├── PreAuthorizeException.java │ │ ├── CaptchaException.java │ │ ├── InnerAuthException.java │ │ ├── auth │ │ │ ├── NotLoginException.java │ │ │ ├── NotRoleException.java │ │ │ └── NotPermissionException.java │ │ ├── user │ │ │ ├── CaptchaExpireException.java │ │ │ ├── UserPasswordNotMatchException.java │ │ │ └── UserException.java │ │ ├── file │ │ │ ├── FileException.java │ │ │ ├── FileSizeLimitExceededException.java │ │ │ └── FileNameLengthLimitExceededException.java │ │ ├── UtilException.java │ │ ├── CheckedException.java │ │ └── job │ │ │ └── TaskException.java │ │ ├── annotation │ │ └── Excels.java │ │ ├── constant │ │ ├── TokenConstants.java │ │ ├── ServiceNameConstants.java │ │ └── SecurityConstants.java │ │ ├── utils │ │ ├── poi │ │ │ └── ExcelHandlerAdapter.java │ │ ├── bean │ │ │ └── BeanValidators.java │ │ ├── ExceptionUtil.java │ │ ├── PageUtils.java │ │ └── uuid │ │ │ └── IdUtils.java │ │ ├── enums │ │ └── UserStatus.java │ │ └── xss │ │ └── Xss.java ├── snow-common-datascope │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── META-INF │ │ │ │ └── spring │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ └── java │ │ │ └── com │ │ │ └── snow │ │ │ └── common │ │ │ └── datascope │ │ │ └── annotation │ │ │ └── DataScope.java │ └── pom.xml ├── snow-common-log │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── META-INF │ │ │ │ └── spring │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ └── java │ │ │ └── com │ │ │ └── snow │ │ │ └── common │ │ │ └── log │ │ │ ├── enums │ │ │ ├── BusinessStatus.java │ │ │ ├── OperatorType.java │ │ │ └── BusinessType.java │ │ │ ├── filter │ │ │ └── PropertyPreExcludeFilter.java │ │ │ └── service │ │ │ └── AsyncLogService.java │ └── pom.xml ├── snow-common-redis │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── pom.xml ├── snow-common-translation │ └── src │ │ └── main │ │ ├── resources │ │ └── META-INF │ │ │ └── spring │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ └── java │ │ └── com │ │ └── snow │ │ └── common │ │ └── translation │ │ ├── core │ │ └── TranslationInterface.java │ │ ├── annotation │ │ ├── TranslationType.java │ │ └── Translation.java │ │ └── constant │ │ └── TransConstant.java ├── snow-common-swagger │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── META-INF │ │ │ │ └── spring │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ └── java │ │ │ └── com │ │ │ └── snow │ │ │ └── common │ │ │ └── swagger │ │ │ ├── annotation │ │ │ └── EnableCustomSwagger2.java │ │ │ └── config │ │ │ └── SwaggerWebConfiguration.java │ └── pom.xml ├── snow-common-security │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── snow │ │ │ └── common │ │ │ └── security │ │ │ ├── annotation │ │ │ ├── Logical.java │ │ │ ├── InnerAuth.java │ │ │ ├── RequiresLogin.java │ │ │ ├── RequiresRoles.java │ │ │ ├── RequiresPermissions.java │ │ │ └── EnableRyFeignClients.java │ │ │ ├── feign │ │ │ └── FeignAutoConfiguration.java │ │ │ └── config │ │ │ ├── ApplicationConfig.java │ │ │ └── WebMvcConfig.java │ │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── snow-common-datasource │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── snow │ │ └── common │ │ └── datasource │ │ └── annotation │ │ ├── Master.java │ │ └── Slave.java ├── snow-common-sensitive │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── snow │ │ │ └── common │ │ │ └── sensitive │ │ │ └── annotation │ │ │ └── Sensitive.java │ └── pom.xml ├── snow-common-seata │ └── pom.xml └── pom.xml ├── snow-auth └── src │ └── main │ ├── java │ └── com │ │ └── snow │ │ └── auth │ │ └── form │ │ ├── RegisterBody.java │ │ └── LoginBody.java │ └── resources │ ├── bootstrap.yml │ └── banner.txt ├── snow-api ├── snow-api-system │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── META-INF │ │ │ │ └── spring │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ └── java │ │ │ └── com │ │ │ └── snow │ │ │ └── system │ │ │ └── api │ │ │ ├── domain │ │ │ └── SysFile.java │ │ │ └── RemoteFileService.java │ └── pom.xml └── pom.xml ├── snow-gateway └── src │ └── main │ ├── java │ └── com │ │ └── snow │ │ └── gateway │ │ ├── service │ │ └── ValidateCodeService.java │ │ └── config │ │ ├── GatewayConfig.java │ │ ├── properties │ │ ├── IgnoreWhiteProperties.java │ │ └── CaptchaProperties.java │ │ └── RouterFunctionConfiguration.java │ └── resources │ ├── banner.txt │ └── bootstrap.yml ├── snow-visual ├── snow-monitor │ └── src │ │ └── main │ │ └── resources │ │ ├── bootstrap.yml │ │ └── banner.txt └── pom.xml ├── .gitignore └── LICENSE /snow-ui/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / -------------------------------------------------------------------------------- /snow-ui/bin/build.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/bin/build.bat -------------------------------------------------------------------------------- /snow-ui/src/components/ParentView/index.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /snow-modules/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/.DS_Store -------------------------------------------------------------------------------- /snow-ui/bin/package.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/bin/package.bat -------------------------------------------------------------------------------- /snow-ui/bin/run-web.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/bin/run-web.bat -------------------------------------------------------------------------------- /snow-ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/public/favicon.ico -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/META-INF/services/org.dinky.job.JobHandler: -------------------------------------------------------------------------------- 1 | org.dinky.job.handler.Job2MysqlHandler -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/json/openapi_submittask.json: -------------------------------------------------------------------------------- 1 | /* http://127.0.0.1:8888/openapi/submitTask?id=1 */ -------------------------------------------------------------------------------- /snow-ui/src/assets/images/pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/src/assets/images/pay.png -------------------------------------------------------------------------------- /snow-ui/src/assets/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/src/assets/logo/logo.png -------------------------------------------------------------------------------- /snow-ui/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /snow-ui/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/src/assets/404_images/404.png -------------------------------------------------------------------------------- /snow-ui/src/assets/images/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/src/assets/images/profile.jpg -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | -------------------------------------------------------------------------------- /snow-ui/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /snow-ui/src/assets/images/login-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-ui/src/assets/images/login-background.jpg -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/p__DevOps__JobDetail__index.48e97902.chunk.css: -------------------------------------------------------------------------------- 1 | @keyframes running-line{to{stroke-dashoffset:-1000}} 2 | -------------------------------------------------------------------------------- /snow-ui/.env.production: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VUE_APP_TITLE = 数据中台 3 | 4 | # 生产环境配置 5 | ENV = 'production' 6 | 7 | # 数据中台/生产环境 8 | VUE_APP_BASE_API = '/prod-api' 9 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/json/openapi_getjobdata.json: -------------------------------------------------------------------------------- 1 | /* http://127.0.0.1:8888/openapi/getJobData?jobId=195352b0a4518e16699983a13205f059 */ 2 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.snow.common.core.utils.SpringUtils 2 | -------------------------------------------------------------------------------- /snow-ui/src/utils/errorCode.js: -------------------------------------------------------------------------------- 1 | export default { 2 | '401': '认证失败,无法访问系统资源', 3 | '403': '当前操作没有权限', 4 | '404': '访问资源不存在', 5 | 'default': '系统未知错误,请反馈给管理员' 6 | } 7 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/snow-dinky/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /snow-common/snow-common-datascope/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.snow.common.datascope.aspect.DataScopeAspect 2 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/community/qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/snow-dinky/src/main/resources/static/community/qq.png -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/META-INF/services/org.dinky.daemon.task.DaemonTask: -------------------------------------------------------------------------------- 1 | org.dinky.job.FlinkJobTask 2 | org.dinky.job.SystemMetricsTask 3 | org.dinky.job.ClearJobHistoryTask -------------------------------------------------------------------------------- /snow-ui/.env.staging: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VUE_APP_TITLE = 数据中台 3 | 4 | NODE_ENV = production 5 | 6 | # 测试环境配置 7 | ENV = 'staging' 8 | 9 | # 数据中台/测试环境 10 | VUE_APP_BASE_API = '/stage-api' 11 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/community/wechat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/snow-dinky/src/main/resources/static/community/wechat.jpg -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/icons/user_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/snow-dinky/src/main/resources/static/icons/user_avatar.png -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/community/dingtalk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/snow-dinky/src/main/resources/static/community/dingtalk.jpg -------------------------------------------------------------------------------- /snow-modules/snow-dolphinscheduler/src/main/resources/static/shell/shell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/snow-dolphinscheduler/src/main/resources/static/shell/shell.png -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/static/codicon.ecfbfe4b.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/snow-dinky/src/main/resources/static/static/codicon.ecfbfe4b.ttf -------------------------------------------------------------------------------- /snow-common/snow-common-log/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.snow.common.log.service.AsyncLogService 2 | com.snow.common.log.aspect.LogAspect 3 | -------------------------------------------------------------------------------- /snow-ui/src/api/menu.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获取路由 4 | export const getRouters = () => { 5 | return request({ 6 | url: '/system/menu/getRouters', 7 | method: 'get' 8 | }) 9 | } -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-modules/snow-dolphinscheduler/src/main/resources/static/shell/shell_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/642933588/dataworks/HEAD/snow-modules/snow-dolphinscheduler/src/main/resources/static/shell/shell_hover.png -------------------------------------------------------------------------------- /snow-ui/.eslintignore: -------------------------------------------------------------------------------- 1 | # 忽略build目录下类型为js的文件的语法检查 2 | build/*.js 3 | # 忽略src/assets目录下文件的语法检查 4 | src/assets 5 | # 忽略public目录下文件的语法检查 6 | public 7 | # 忽略当前目录下为js的文件的语法检查 8 | *.js 9 | # 忽略当前目录下为vue的文件的语法检查 10 | *.vue -------------------------------------------------------------------------------- /snow-common/snow-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.snow.common.redis.configure.RedisConfig 2 | com.snow.common.redis.service.RedisService 3 | -------------------------------------------------------------------------------- /snow-auth/src/main/java/com/snow/auth/form/RegisterBody.java: -------------------------------------------------------------------------------- 1 | package com.snow.auth.form; 2 | 3 | /** 4 | * 用户注册对象 5 | * 6 | * @author snow 7 | */ 8 | public class RegisterBody extends LoginBody 9 | { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /snow-ui/.env.development: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VUE_APP_TITLE = 数据中台 3 | 4 | # 开发环境配置 5 | ENV = 'development' 6 | 7 | # 数据中台/开发环境 8 | VUE_APP_BASE_API = '/dev-api' 9 | 10 | # 路由懒加载 11 | VUE_CLI_BABEL_TRANSPILE_MODULES = true 12 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/size.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.snow.common.translation.config.TranslationConfig 2 | com.snow.common.translation.core.impl.UserNameTranslationImpl 3 | -------------------------------------------------------------------------------- /snow-api/snow-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.snow.system.api.factory.RemoteUserFallbackFactory 2 | com.snow.system.api.factory.RemoteLogFallbackFactory 3 | com.snow.system.api.factory.RemoteFileFallbackFactory 4 | -------------------------------------------------------------------------------- /snow-common/snow-common-swagger/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | # com.snow.common.swagger.config.SwaggerAutoConfiguration 2 | # com.snow.common.swagger.config.SwaggerWebConfiguration 3 | # com.snow.common.swagger.config.SwaggerBeanPostProcessor 4 | -------------------------------------------------------------------------------- /snow-ui/src/layout/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as AppMain } from './AppMain' 2 | export { default as Navbar } from './Navbar' 3 | export { default as Settings } from './Settings' 4 | export { default as Sidebar } from './Sidebar/index.vue' 5 | export { default as TagsView } from './TagsView/index.vue' 6 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/json/openapi_savepointtask.json: -------------------------------------------------------------------------------- 1 | /* http://127.0.0.1:8888/openapi/savepointTask */ 2 | { 3 | /* required-start */ 4 | "taskId":"1", 5 | /* required-end */ 6 | /* custom-start */ 7 | "type":"trigger" // trigger | stop | cancel | canceljob 8 | /* custom-start */ 9 | } -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/views/redirect.vue: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /snow-ui/src/utils/dict/DictData.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @classdesc 字典数据 3 | * @property {String} label 标签 4 | * @property {*} value 标签 5 | * @property {Object} raw 原始数据 6 | */ 7 | export default class DictData { 8 | constructor(label, value, raw) { 9 | this.label = label 10 | this.value = value 11 | this.raw = raw 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/6390.064531aa.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkdinky_web=self.webpackChunkdinky_web||[]).push([[6390],{96390:function(O,n,t){t.r(n),t.d(n,{default:function(){return e}});var o=t(67294),u=t(57344),E=t(85893);function e(){var s=(0,u.useOutletContext)();return(0,E.jsx)(u.Outlet,{context:s})}}}]); 2 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/guide.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/components/IconSelect/requireIcons.js: -------------------------------------------------------------------------------- 1 | 2 | const req = require.context('../../assets/icons/svg', false, /\.svg$/) 3 | const requireAll = requireContext => requireContext.keys() 4 | 5 | const re = /\.\/(.*)\.svg/ 6 | 7 | const icons = requireAll(req).map(i => { 8 | return i.match(re)[1] 9 | }) 10 | 11 | export default icons 12 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import SvgIcon from '@/components/SvgIcon'// svg component 3 | 4 | // register globally 5 | Vue.component('svg-icon', SvgIcon) 6 | 7 | const req = require.context('./svg', false, /\.svg$/) 8 | const requireAll = requireContext => requireContext.keys().map(requireContext) 9 | requireAll(req) 10 | -------------------------------------------------------------------------------- /snow-common/snow-common-log/src/main/java/com/snow/common/log/enums/BusinessStatus.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.log.enums; 2 | 3 | /** 4 | * 操作状态 5 | * 6 | * @author snow 7 | * 8 | */ 9 | public enum BusinessStatus 10 | { 11 | /** 12 | * 成功 13 | */ 14 | SUCCESS, 15 | 16 | /** 17 | * 失败 18 | */ 19 | FAIL, 20 | } 21 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/money.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/java/com/snow/common/security/annotation/Logical.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.security.annotation; 2 | 3 | /** 4 | * 权限注解的验证模式 5 | * 6 | * @author snow 7 | * 8 | */ 9 | public enum Logical 10 | { 11 | /** 12 | * 必须具有所有的元素 13 | */ 14 | AND, 15 | 16 | /** 17 | * 只需具有其中一个元素 18 | */ 19 | OR 20 | } 21 | -------------------------------------------------------------------------------- /snow-ui/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | **/*.log 8 | 9 | tests/**/coverage/ 10 | tests/e2e/reports 11 | selenium-debug.log 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.local 21 | 22 | package-lock.json 23 | yarn.lock 24 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/drag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svgo.yml: -------------------------------------------------------------------------------- 1 | # replace default config 2 | 3 | # multipass: true 4 | # full: true 5 | 6 | plugins: 7 | 8 | # - name 9 | # 10 | # or: 11 | # - name: false 12 | # - name: true 13 | # 14 | # or: 15 | # - name: 16 | # param1: 1 17 | # param2: 2 18 | 19 | - removeAttrs: 20 | attrs: 21 | - 'fill' 22 | - 'fill-rule' 23 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.snow.common.security.config.WebMvcConfig 2 | com.snow.common.security.service.TokenService 3 | com.snow.common.security.aspect.PreAuthorizeAspect 4 | com.snow.common.security.aspect.InnerAuthAspect 5 | com.snow.common.security.handler.GlobalExceptionHandler 6 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/DemoModeException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception; 2 | 3 | /** 4 | * 演示模式异常 5 | * 6 | * @author snow 7 | */ 8 | public class DemoModeException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public DemoModeException() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/PreAuthorizeException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception; 2 | 3 | /** 4 | * 权限异常 5 | * 6 | * @author snow 7 | */ 8 | public class PreAuthorizeException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public PreAuthorizeException() 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /snow-ui/src/views/dinky/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | -------------------------------------------------------------------------------- /snow-common/snow-common-log/src/main/java/com/snow/common/log/enums/OperatorType.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.log.enums; 2 | 3 | /** 4 | * 操作人类别 5 | * 6 | * @author snow 7 | */ 8 | public enum OperatorType 9 | { 10 | /** 11 | * 其它 12 | */ 13 | OTHER, 14 | 15 | /** 16 | * 后台用户 17 | */ 18 | MANAGE, 19 | 20 | /** 21 | * 手机端用户 22 | */ 23 | MOBILE 24 | } 25 | -------------------------------------------------------------------------------- /snow-ui/src/api/monitor/online.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询在线用户列表 4 | export function list(query) { 5 | return request({ 6 | url: '/system/online/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 强退用户 13 | export function forceLogout(tokenId) { 14 | return request({ 15 | url: '/system/online/' + tokenId, 16 | method: 'delete' 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/CaptchaException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception; 2 | 3 | /** 4 | * 验证码错误异常类 5 | * 6 | * @author snow 7 | */ 8 | public class CaptchaException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public CaptchaException(String msg) 13 | { 14 | super(msg); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /snow-ui/src/components/RuoYi/Doc/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /snow-ui/src/components/RuoYi/Git/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/InnerAuthException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception; 2 | 3 | /** 4 | * 内部认证异常 5 | * 6 | * @author snow 7 | */ 8 | public class InnerAuthException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public InnerAuthException(String message) 13 | { 14 | super(message); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/auth/NotLoginException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.auth; 2 | 3 | /** 4 | * 未能通过的登录认证异常 5 | * 6 | * @author snow 7 | */ 8 | public class NotLoginException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public NotLoginException(String message) 13 | { 14 | super(message); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | ______ _ __ 2 | |_ _ `. (_) [ | _ 3 | | | `. \ __ _ .--. | | / ] _ __ 4 | | | | |[ | [ `.-. | | '' < [ \ [ ] 5 | _| |_.' / | | | | | | | |`\ \ \ '/ / 6 | |______.' [___][___||__][__| \_][\_: / 7 | \__.' 8 | 9 | 10 | Version: @revision@ 11 | Github: https://github.com/DataLinkDC/dinky 12 | 公众号: Dinky 开源 13 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/documentation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/fullscreen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/user/CaptchaExpireException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.user; 2 | 3 | /** 4 | * 验证码失效异常类 5 | * 6 | * @author snow 7 | */ 8 | public class CaptchaExpireException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public CaptchaExpireException() 13 | { 14 | super("user.jcaptcha.expire", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/java/com/snow/common/security/annotation/InnerAuth.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.security.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | /** 6 | * 内部认证注解 7 | * 8 | * @author snow 9 | */ 10 | @Target(ElementType.METHOD) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Documented 13 | public @interface InnerAuth 14 | { 15 | /** 16 | * 是否校验用户信息 17 | */ 18 | boolean isUser() default false; 19 | } 20 | -------------------------------------------------------------------------------- /snow-ui/.editorconfig: -------------------------------------------------------------------------------- 1 | # 告诉EditorConfig插件,这是根文件,不用继续往上查找 2 | root = true 3 | 4 | # 匹配全部文件 5 | [*] 6 | # 设置字符集 7 | charset = utf-8 8 | # 缩进风格,可选space、tab 9 | indent_style = space 10 | # 缩进的空格数 11 | indent_size = 2 12 | # 结尾换行符,可选lf、cr、crlf 13 | end_of_line = lf 14 | # 在文件结尾插入新行 15 | insert_final_newline = true 16 | # 删除一行中的前后空格 17 | trim_trailing_whitespace = true 18 | 19 | # 匹配md结尾的文件 20 | [*.md] 21 | insert_final_newline = false 22 | trim_trailing_whitespace = false 23 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/excel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-modules/snow-dolphinscheduler/src/main/java/org/apache/dolphinscheduler/api/service/extend/ExtendSysUserService.java: -------------------------------------------------------------------------------- 1 | package org.apache.dolphinscheduler.api.service.extend; 2 | 3 | import org.apache.dolphinscheduler.dao.entity.User; 4 | 5 | import java.util.List; 6 | 7 | public interface ExtendSysUserService { 8 | 9 | User selectById(Integer userId); 10 | 11 | List selectList(Object obj); 12 | 13 | User queryByUserNameAccurately(String username); 14 | } 15 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/p__DataStudio__index.89f5fbf8.chunk.css: -------------------------------------------------------------------------------- 1 | @keyframes running-line{to{stroke-dashoffset:-1000}}.no_diff_content___IWXEw{display:flex;align-items:center;justify-content:center;height:50vh;text-align:center}.diff_content___LaRQA{height:50vh;padding:10px;border:1px solid #fdfdfd1f}.header___iIfLj{border-bottom:1px dotted #1677ff;border-left:5px solid #1677ff;border-radius:0;padding-inline-start:5px}.use_version_btn___RnwjK{float:right;margin-right:20px} 2 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/user/UserPasswordNotMatchException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.user; 2 | 3 | /** 4 | * 用户密码不正确或不符合规范异常类 5 | * 6 | * @author snow 7 | */ 8 | public class UserPasswordNotMatchException extends UserException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public UserPasswordNotMatchException() 13 | { 14 | super("user.password.not.match", null); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/p__Other__404__index.9913a139.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkdinky_web=self.webpackChunkdinky_web||[]).push([[4405],{90014:function(l,n,t){t.r(n);var _=t(41913),a=t(57344),s=t(59720),u=t(14726),D=t(67294),E=t(85893),P=function(){return(0,E.jsx)(s.ZP,{status:"404",title:"404",subTitle:(0,_.l)("app.request.404"),extra:(0,E.jsx)(u.ZP,{type:"primary",onClick:function(){return a.history.push("/")},children:(0,_.l)("app.request.back")})})};n.default=P}}]); 2 | -------------------------------------------------------------------------------- /snow-modules/snow-file/src/main/java/com/snow/file/service/ISysFileService.java: -------------------------------------------------------------------------------- 1 | package com.snow.file.service; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | 5 | /** 6 | * 文件上传接口 7 | * 8 | * @author snow 9 | */ 10 | public interface ISysFileService 11 | { 12 | /** 13 | * 文件上传接口 14 | * 15 | * @param file 上传的文件 16 | * @return 访问地址 17 | * @throws Exception 18 | */ 19 | public String uploadFile(MultipartFile file) throws Exception; 20 | } 21 | -------------------------------------------------------------------------------- /snow-ui/README.md: -------------------------------------------------------------------------------- 1 | ## 开发 2 | 3 | ```bash 4 | # 克隆项目 5 | git clone https://gitee.com/y_project/snow-Vue 6 | 7 | # 进入项目目录 8 | cd snow-ui 9 | 10 | # 安装依赖 11 | npm install 12 | 13 | # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 14 | npm install --registry=https://registry.npmmirror.com 15 | 16 | # 启动服务 17 | npm run dev 18 | ``` 19 | 20 | 浏览器访问 http://localhost:80 21 | 22 | ## 发布 23 | 24 | ```bash 25 | # 构建测试环境 26 | npm run build:stage 27 | 28 | # 构建生产环境 29 | npm run build:prod 30 | ``` 31 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/annotation/Excels.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.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 | * Excel注解集 10 | * 11 | * @author snow 12 | */ 13 | @Target(ElementType.FIELD) 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface Excels 16 | { 17 | Excel[] value(); 18 | } 19 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/example.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/plugins/index.js: -------------------------------------------------------------------------------- 1 | import tab from './tab' 2 | import auth from './auth' 3 | import cache from './cache' 4 | import modal from './modal' 5 | import download from './download' 6 | 7 | export default { 8 | install(Vue) { 9 | // 页签操作 10 | Vue.prototype.$tab = tab 11 | // 认证对象 12 | Vue.prototype.$auth = auth 13 | // 缓存对象 14 | Vue.prototype.$cache = cache 15 | // 模态框对象 16 | Vue.prototype.$modal = modal 17 | // 下载文件 18 | Vue.prototype.$download = download 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/user/UserException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.user; 2 | 3 | import com.snow.common.core.exception.base.BaseException; 4 | 5 | /** 6 | * 用户信息异常类 7 | * 8 | * @author snow 9 | */ 10 | public class UserException extends BaseException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public UserException(String code, Object[] args) 15 | { 16 | super("user", code, args, null); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /snow-ui/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app 4 | '@vue/cli-plugin-babel/preset' 5 | ], 6 | 'env': { 7 | 'development': { 8 | // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). 9 | // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. 10 | 'plugins': ['dynamic-import-node'] 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /snow-modules/snow-job/src/main/java/com/snow/job/util/QuartzJobExecution.java: -------------------------------------------------------------------------------- 1 | package com.snow.job.util; 2 | 3 | import org.quartz.JobExecutionContext; 4 | 5 | import com.snow.job.domain.SysJob; 6 | 7 | /** 8 | * 定时任务处理(允许并发执行) 9 | * 10 | * @author snow 11 | * 12 | */ 13 | public class QuartzJobExecution extends AbstractQuartzJob 14 | { 15 | @Override 16 | protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception 17 | { 18 | JobInvokeUtil.invokeMethod(sysJob); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/file/FileException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.file; 2 | 3 | import com.snow.common.core.exception.base.BaseException; 4 | 5 | /** 6 | * 文件信息异常类 7 | * 8 | * @author snow 9 | */ 10 | public class FileException extends BaseException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public FileException(String code, Object[] args, String msg) 15 | { 16 | super("file", code, args, msg); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/java/com/snow/common/security/annotation/RequiresLogin.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.security.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 | * 11 | * @author snow 12 | * 13 | */ 14 | @Retention(RetentionPolicy.RUNTIME) 15 | @Target({ ElementType.METHOD, ElementType.TYPE }) 16 | public @interface RequiresLogin 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/file/FileSizeLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.file; 2 | 3 | /** 4 | * 文件名大小限制异常类 5 | * 6 | * @author snow 7 | */ 8 | public class FileSizeLimitExceededException extends FileException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public FileSizeLimitExceededException(long defaultMaxSize) 13 | { 14 | super("upload.exceed.maxSize", new Object[] { defaultMaxSize }, "the filesize is too large"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /snow-common/snow-common-translation/src/main/java/com/snow/common/translation/core/TranslationInterface.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.translation.core; 2 | 3 | import com.snow.common.translation.annotation.TranslationType; 4 | 5 | /** 6 | * 翻译接口 (实现类需标注 {@link TranslationType} 注解标明翻译类型) 7 | * 8 | * @author Lion Li 9 | */ 10 | public interface TranslationInterface { 11 | 12 | /** 13 | * 翻译 14 | * 15 | * @param key 需要被翻译的键(不为空) 16 | * @param other 其他参数 17 | * @return 返回键对应的值 18 | */ 19 | T translation(Object key, String other); 20 | } 21 | -------------------------------------------------------------------------------- /snow-ui/src/api/system/operlog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询操作日志列表 4 | export function list(query) { 5 | return request({ 6 | url: '/system/operlog/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除操作日志 13 | export function delOperlog(operId) { 14 | return request({ 15 | url: '/system/operlog/' + operId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 清空操作日志 21 | export function cleanOperlog() { 22 | return request({ 23 | url: '/system/operlog/clean', 24 | method: 'delete' 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/slider.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/constant/TokenConstants.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.constant; 2 | 3 | /** 4 | * Token的Key常量 5 | * 6 | * @author snow 7 | */ 8 | public class TokenConstants 9 | { 10 | /** 11 | * 令牌自定义标识 12 | */ 13 | public static final String AUTHENTICATION = "Authorization"; 14 | 15 | /** 16 | * 令牌前缀 17 | */ 18 | public static final String PREFIX = "Bearer "; 19 | 20 | /** 21 | * 令牌秘钥 22 | */ 23 | public final static String SECRET = "abcdefghijklmnopqrstuvwxyz"; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /snow-ui/src/utils/generator/css.js: -------------------------------------------------------------------------------- 1 | const styles = { 2 | 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}', 3 | 'el-upload': '.el-upload__tip{line-height: 1.2;}' 4 | } 5 | 6 | function addCss(cssList, el) { 7 | const css = styles[el.tag] 8 | css && cssList.indexOf(css) === -1 && cssList.push(css) 9 | if (el.children) { 10 | el.children.forEach(el2 => addCss(cssList, el2)) 11 | } 12 | } 13 | 14 | export function makeUpCss(conf) { 15 | const cssList = [] 16 | conf.fields.forEach(el => addCss(cssList, el)) 17 | return cssList.join('\n') 18 | } 19 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/java/com/snow/common/security/feign/FeignAutoConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.security.feign; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import feign.RequestInterceptor; 6 | 7 | /** 8 | * Feign 配置注册 9 | * 10 | * @author snow 11 | **/ 12 | @Configuration 13 | public class FeignAutoConfiguration 14 | { 15 | @Bean 16 | public RequestInterceptor requestInterceptor() 17 | { 18 | return new FeignRequestInterceptor(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /snow-ui/src/api/monitor/jobLog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询调度日志列表 4 | export function listJobLog(query) { 5 | return request({ 6 | url: '/schedule/job/log/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除调度日志 13 | export function delJobLog(jobLogId) { 14 | return request({ 15 | url: '/schedule/job/log/' + jobLogId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 清空调度日志 21 | export function cleanJobLog() { 22 | return request({ 23 | url: '/schedule/job/log/clean', 24 | method: 'delete' 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/file/FileNameLengthLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.file; 2 | 3 | /** 4 | * 文件名称超长限制异常类 5 | * 6 | * @author snow 7 | */ 8 | public class FileNameLengthLimitExceededException extends FileException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public FileNameLengthLimitExceededException(int defaultFileNameLength) 13 | { 14 | super("upload.filename.exceed.length", new Object[] { defaultFileNameLength }, "the filename is too long"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /snow-common/snow-common-translation/src/main/java/com/snow/common/translation/annotation/TranslationType.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.translation.annotation; 2 | 3 | import com.snow.common.translation.core.TranslationInterface; 4 | 5 | import java.lang.annotation.*; 6 | 7 | /** 8 | * 翻译类型注解 (标注到{@link TranslationInterface} 的实现类) 9 | * 10 | * @author Lion Li 11 | */ 12 | @Inherited 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Target({ElementType.TYPE}) 15 | @Documented 16 | public @interface TranslationType { 17 | 18 | /** 19 | * 类型 20 | */ 21 | String type(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/constant/ServiceNameConstants.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.constant; 2 | 3 | /** 4 | * 服务名称 5 | * 6 | * @author snow 7 | */ 8 | public class ServiceNameConstants 9 | { 10 | /** 11 | * 认证服务的serviceid 12 | */ 13 | public static final String AUTH_SERVICE = "snow-auth"; 14 | 15 | /** 16 | * 系统模块的serviceid 17 | */ 18 | public static final String SYSTEM_SERVICE = "snow-system"; 19 | 20 | /** 21 | * 文件服务的serviceid 22 | */ 23 | public static final String FILE_SERVICE = "snow-file"; 24 | } 25 | -------------------------------------------------------------------------------- /snow-ui/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import app from './modules/app' 4 | import dict from './modules/dict' 5 | import user from './modules/user' 6 | import tagsView from './modules/tagsView' 7 | import permission from './modules/permission' 8 | import settings from './modules/settings' 9 | import getters from './getters' 10 | 11 | Vue.use(Vuex) 12 | 13 | const store = new Vuex.Store({ 14 | modules: { 15 | app, 16 | dict, 17 | user, 18 | tagsView, 19 | permission, 20 | settings 21 | }, 22 | getters 23 | }) 24 | 25 | export default store 26 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/auth/NotRoleException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.auth; 2 | 3 | import org.apache.commons.lang3.StringUtils; 4 | 5 | /** 6 | * 未能通过的角色认证异常 7 | * 8 | * @author snow 9 | */ 10 | public class NotRoleException extends RuntimeException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public NotRoleException(String role) 15 | { 16 | super(role); 17 | } 18 | 19 | public NotRoleException(String[] roles) 20 | { 21 | super(StringUtils.join(roles, ",")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/json/openapi_cancel.json: -------------------------------------------------------------------------------- 1 | /* http://127.0.0.1:8888/openapi/explainSql */ 2 | { 3 | /* required-start */ 4 | "jobId":"195352b0a4518e16699983a13205f059", 5 | /* required-end */ 6 | /* custom-start */ 7 | "address":"127.0.0.1:8081", 8 | "gatewayConfig":{ 9 | "clusterConfig":{ 10 | "appId":"application_1637739262398_0032", 11 | "flinkConfigPath":"/opt/src/flink-1.13.3_conf/conf", 12 | "flinkLibPath":"hdfs:///flink13/lib/flinklib", 13 | "yarnConfigPath":"/usr/local/hadoop/hadoop-2.7.7/etc/hadoop" 14 | } 15 | } 16 | /* custom-start */ 17 | } -------------------------------------------------------------------------------- /snow-modules/snow-file/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | Spring Application Name: ${spring.application.name} 3 | _ __ _ _ 4 | (_) / _|(_)| | 5 | _ __ _ _ ___ _ _ _ ______ | |_ _ | | ___ 6 | | '__|| | | | / _ \ | | | || ||______|| _|| || | / _ \ 7 | | | | |_| || (_) || |_| || | | | | || || __/ 8 | |_| \__,_| \___/ \__, ||_| |_| |_||_| \___| 9 | __/ | 10 | |___/ -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-auth/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | port: 9200 4 | 5 | # Spring 6 | spring: 7 | application: 8 | # 应用名称 9 | name: snow-auth 10 | profiles: 11 | # 环境配置 12 | active: dev 13 | cloud: 14 | nacos: 15 | discovery: 16 | # 服务注册地址 17 | server-addr: 192.168.210.10:8848 18 | config: 19 | # 配置中心地址 20 | server-addr: 192.168.210.10:8848 21 | # 配置文件格式 22 | file-extension: yml 23 | # 共享配置 24 | shared-configs: 25 | - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 26 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/jmx/jmx_exporter_config.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | lowercaseOutputLabelNames: true 3 | lowercaseOutputName: true 4 | whitelistObjectNames: ["java.lang:type=OperatingSystem"] 5 | blacklistObjectNames: [] 6 | rules: 7 | - pattern: 'java.lang<>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:' 8 | name: os_$1_bytes 9 | type: GAUGE 10 | attrNameSnakeCase: true 11 | - pattern: 'java.lang<>((?!process_cpu_time)\w+):' 12 | name: os_$1 13 | type: GAUGE 14 | attrNameSnakeCase: true -------------------------------------------------------------------------------- /snow-gateway/src/main/java/com/snow/gateway/service/ValidateCodeService.java: -------------------------------------------------------------------------------- 1 | package com.snow.gateway.service; 2 | 3 | import java.io.IOException; 4 | import com.snow.common.core.exception.CaptchaException; 5 | import com.snow.common.core.web.domain.AjaxResult; 6 | 7 | /** 8 | * 验证码处理 9 | * 10 | * @author snow 11 | */ 12 | public interface ValidateCodeService 13 | { 14 | /** 15 | * 生成验证码 16 | */ 17 | public AjaxResult createCaptcha() throws IOException, CaptchaException; 18 | 19 | /** 20 | * 校验验证码 21 | */ 22 | public void checkCaptcha(String key, String value) throws CaptchaException; 23 | } 24 | -------------------------------------------------------------------------------- /snow-modules/snow-gen/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | port: 9202 4 | 5 | # Spring 6 | spring: 7 | application: 8 | # 应用名称 9 | name: snow-gen 10 | profiles: 11 | # 环境配置 12 | active: dev 13 | cloud: 14 | nacos: 15 | discovery: 16 | # 服务注册地址 17 | server-addr: 192.168.210.10:8848 18 | config: 19 | # 配置中心地址 20 | server-addr: 192.168.210.10:8848 21 | # 配置文件格式 22 | file-extension: yml 23 | # 共享配置 24 | shared-configs: 25 | - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 26 | -------------------------------------------------------------------------------- /snow-modules/snow-job/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | Spring Application Name: ${spring.application.name} 3 | _ _ _ 4 | (_) (_) | | 5 | _ __ _ _ ___ _ _ _ ______ _ ___ | |__ 6 | | '__|| | | | / _ \ | | | || ||______| | | / _ \ | '_ \ 7 | | | | |_| || (_) || |_| || | | || (_) || |_) | 8 | |_| \__,_| \___/ \__, ||_| | | \___/ |_.__/ 9 | __/ | _/ | 10 | |___/ |__/ -------------------------------------------------------------------------------- /snow-modules/snow-job/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | port: 9203 4 | 5 | # Spring 6 | spring: 7 | application: 8 | # 应用名称 9 | name: snow-job 10 | profiles: 11 | # 环境配置 12 | active: dev 13 | cloud: 14 | nacos: 15 | discovery: 16 | # 服务注册地址 17 | server-addr: 192.168.210.10:8848 18 | config: 19 | # 配置中心地址 20 | server-addr: 192.168.210.10:8848 21 | # 配置文件格式 22 | file-extension: yml 23 | # 共享配置 24 | shared-configs: 25 | - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 26 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/mapper/UserTenantMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | id 6 | ,user_id,tenant_id 7 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /snow-modules/snow-file/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | port: 9300 4 | 5 | # Spring 6 | spring: 7 | application: 8 | # 应用名称 9 | name: snow-file 10 | profiles: 11 | # 环境配置 12 | active: dev 13 | cloud: 14 | nacos: 15 | discovery: 16 | # 服务注册地址 17 | server-addr: 192.168.210.10:8848 18 | config: 19 | # 配置中心地址 20 | server-addr: 192.168.210.10:8848 21 | # 配置文件格式 22 | file-extension: yml 23 | # 共享配置 24 | shared-configs: 25 | - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 26 | -------------------------------------------------------------------------------- /snow-modules/snow-system/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | port: 9201 4 | 5 | # Spring 6 | spring: 7 | application: 8 | # 应用名称 9 | name: snow-system 10 | profiles: 11 | # 环境配置 12 | active: dev 13 | cloud: 14 | nacos: 15 | discovery: 16 | # 服务注册地址 17 | server-addr: 192.168.210.10:8848 18 | config: 19 | # 配置中心地址 20 | server-addr: 192.168.210.10:8848 21 | # 配置文件格式 22 | file-extension: yml 23 | # 共享配置 24 | shared-configs: 25 | - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 26 | -------------------------------------------------------------------------------- /snow-modules/snow-gen/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | Spring Application Name: ${spring.application.name} 3 | _ 4 | (_) 5 | _ __ _ _ ___ _ _ _ ______ __ _ ___ _ __ 6 | | '__|| | | | / _ \ | | | || ||______| / _` | / _ \| '_ \ 7 | | | | |_| || (_) || |_| || | | (_| || __/| | | | 8 | |_| \__,_| \___/ \__, ||_| \__, | \___||_| |_| 9 | __/ | __/ | 10 | |___/ |___/ -------------------------------------------------------------------------------- /snow-modules/snow-job/src/main/java/com/snow/job/util/QuartzDisallowConcurrentExecution.java: -------------------------------------------------------------------------------- 1 | package com.snow.job.util; 2 | 3 | import org.quartz.DisallowConcurrentExecution; 4 | import org.quartz.JobExecutionContext; 5 | 6 | import com.snow.job.domain.SysJob; 7 | 8 | /** 9 | * 定时任务处理(禁止并发执行) 10 | * 11 | * @author snow 12 | * 13 | */ 14 | @DisallowConcurrentExecution 15 | public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob 16 | { 17 | @Override 18 | protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception 19 | { 20 | JobInvokeUtil.invokeMethod(sysJob); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /snow-visual/snow-monitor/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | port: 9100 4 | 5 | # Spring 6 | spring: 7 | application: 8 | # 应用名称 9 | name: snow-monitor 10 | profiles: 11 | # 环境配置 12 | active: dev 13 | cloud: 14 | nacos: 15 | discovery: 16 | # 服务注册地址 17 | server-addr: 192.168.210.10:8848 18 | config: 19 | # 配置中心地址 20 | server-addr: 192.168.210.10:8848 21 | # 配置文件格式 22 | file-extension: yml 23 | # 共享配置 24 | shared-configs: 25 | - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 26 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/education.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/utils/poi/ExcelHandlerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.utils.poi; 2 | 3 | import org.apache.poi.ss.usermodel.Cell; 4 | import org.apache.poi.ss.usermodel.Workbook; 5 | 6 | /** 7 | * Excel数据格式处理适配器 8 | * 9 | * @author snow 10 | */ 11 | public interface ExcelHandlerAdapter 12 | { 13 | /** 14 | * 格式化 15 | * 16 | * @param value 单元格数据值 17 | * @param args excel注解args参数组 18 | * @param cell 单元格对象 19 | * @param wb 工作簿对象 20 | * 21 | * @return 处理后的值 22 | */ 23 | Object format(Object value, String[] args, Cell cell, Workbook wb); 24 | } 25 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/enums/UserStatus.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.enums; 2 | 3 | /** 4 | * 用户状态 5 | * 6 | * @author snow 7 | */ 8 | public enum UserStatus 9 | { 10 | OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除"); 11 | 12 | private final String code; 13 | private final String info; 14 | 15 | UserStatus(String code, String info) 16 | { 17 | this.code = code; 18 | this.info = info; 19 | } 20 | 21 | public String getCode() 22 | { 23 | return code; 24 | } 25 | 26 | public String getInfo() 27 | { 28 | return info; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/auth/NotPermissionException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.auth; 2 | 3 | import org.apache.commons.lang3.StringUtils; 4 | 5 | /** 6 | * 未能通过的权限认证异常 7 | * 8 | * @author snow 9 | */ 10 | public class NotPermissionException extends RuntimeException 11 | { 12 | private static final long serialVersionUID = 1L; 13 | 14 | public NotPermissionException(String permission) 15 | { 16 | super(permission); 17 | } 18 | 19 | public NotPermissionException(String[] permissions) 20 | { 21 | super(StringUtils.join(permissions, ",")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /snow-common/snow-common-datasource/src/main/java/com/snow/common/datasource/annotation/Master.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.datasource.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | import com.baomidou.dynamic.datasource.annotation.DS; 9 | 10 | /** 11 | * 主库数据源 12 | * 13 | * @author snow 14 | */ 15 | @Target({ ElementType.TYPE, ElementType.METHOD }) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Documented 18 | @DS("master") 19 | public @interface Master 20 | { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /snow-common/snow-common-datasource/src/main/java/com/snow/common/datasource/annotation/Slave.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.datasource.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | import com.baomidou.dynamic.datasource.annotation.DS; 9 | 10 | /** 11 | * 从库数据源 12 | * 13 | * @author snow 14 | */ 15 | @Target({ ElementType.TYPE, ElementType.METHOD }) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Documented 18 | @DS("slave") 19 | public @interface Slave 20 | { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/tab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/utils/dict/DictConverter.js: -------------------------------------------------------------------------------- 1 | import DictOptions from './DictOptions' 2 | import DictData from './DictData' 3 | 4 | export default function(dict, dictMeta) { 5 | const label = determineDictField(dict, dictMeta.labelField, ...DictOptions.DEFAULT_LABEL_FIELDS) 6 | const value = determineDictField(dict, dictMeta.valueField, ...DictOptions.DEFAULT_VALUE_FIELDS) 7 | return new DictData(dict[label], dict[value], dict) 8 | } 9 | 10 | /** 11 | * 确定字典字段 12 | * @param {DictData} dict 13 | * @param {...String} fields 14 | */ 15 | function determineDictField(dict, ...fields) { 16 | return fields.find(f => Object.prototype.hasOwnProperty.call(dict, f)) 17 | } 18 | -------------------------------------------------------------------------------- /snow-auth/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | Spring Application Name: ${spring.application.name} 3 | _ _ _ 4 | (_) | | | | 5 | _ __ _ _ ___ _ _ _ ______ __ _ _ _ | |_ | |__ 6 | | '__|| | | | / _ \ | | | || ||______| / _` || | | || __|| '_ \ 7 | | | | |_| || (_) || |_| || | | (_| || |_| || |_ | | | | 8 | |_| \__,_| \___/ \__, ||_| \__,_| \__,_| \__||_| |_| 9 | __/ | 10 | |___/ -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/UtilException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception; 2 | 3 | /** 4 | * 工具类异常 5 | * 6 | * @author snow 7 | */ 8 | public class UtilException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 8247610319171014183L; 11 | 12 | public UtilException(Throwable e) 13 | { 14 | super(e.getMessage(), e); 15 | } 16 | 17 | public UtilException(String message) 18 | { 19 | super(message); 20 | } 21 | 22 | public UtilException(String message, Throwable throwable) 23 | { 24 | super(message, throwable); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /snow-common/snow-common-log/src/main/java/com/snow/common/log/filter/PropertyPreExcludeFilter.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.log.filter; 2 | 3 | import com.alibaba.fastjson2.filter.SimplePropertyPreFilter; 4 | 5 | /** 6 | * 排除JSON敏感属性 7 | * 8 | * @author snow 9 | */ 10 | public class PropertyPreExcludeFilter extends SimplePropertyPreFilter 11 | { 12 | public PropertyPreExcludeFilter() 13 | { 14 | } 15 | 16 | public PropertyPreExcludeFilter addExcludes(String... filters) 17 | { 18 | for (int i = 0; i < filters.length; i++) 19 | { 20 | this.getExcludes().add(filters[i]); 21 | } 22 | return this; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /snow-modules/snow-system/src/main/java/com/snow/system/service/ISysPermissionService.java: -------------------------------------------------------------------------------- 1 | package com.snow.system.service; 2 | 3 | import java.util.Set; 4 | 5 | import com.snow.system.api.domain.SysUser; 6 | 7 | /** 8 | * 权限信息 服务层 9 | * 10 | * @author snow 11 | */ 12 | public interface ISysPermissionService 13 | { 14 | /** 15 | * 获取角色数据权限 16 | * 17 | * @param userId 用户Id 18 | * @return 角色权限信息 19 | */ 20 | public Set getRolePermission(SysUser user); 21 | 22 | /** 23 | * 获取菜单数据权限 24 | * 25 | * @param userId 用户Id 26 | * @return 菜单权限信息 27 | */ 28 | public Set getMenuPermission(SysUser user); 29 | } 30 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/message.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/static/p__Other__Redirect__index.d84ca07b.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkdinky_web=self.webpackChunkdinky_web||[]).push([[9697],{79983:function(f,a,e){e.r(a);var n=e(57344),o=e(85893),s=function(){var u,i,r,d=(0,n.useModel)("@@initialState"),t=d.initialState,E=d._;console.log(t);var v=function(l){return l==null?void 0:l.filter(function(_){return _.type!=="F"})},c=v(t==null||(u=t.currentUser)===null||u===void 0?void 0:u.menuList);return t!=null&&(i=t.currentUser)!==null&&i!==void 0&&(i=i.user)!==null&&i!==void 0&&i.superAdminFlag?(0,o.jsx)(n.Navigate,{to:"/datastudio"}):(0,o.jsx)(n.Navigate,{to:(r=c[0])===null||r===void 0?void 0:r.path})};a.default=s}}]); 2 | -------------------------------------------------------------------------------- /snow-ui/src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 24 | 29 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/switch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/utils/auth.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const TokenKey = 'Admin-Token' 4 | 5 | const ExpiresInKey = 'Admin-Expires-In' 6 | 7 | export function getToken() { 8 | return Cookies.get(TokenKey) 9 | } 10 | 11 | export function setToken(token) { 12 | return Cookies.set(TokenKey, token) 13 | } 14 | 15 | export function removeToken() { 16 | return Cookies.remove(TokenKey) 17 | } 18 | 19 | export function getExpiresIn() { 20 | return Cookies.get(ExpiresInKey) || -1 21 | } 22 | 23 | export function setExpiresIn(time) { 24 | return Cookies.set(ExpiresInKey, time) 25 | } 26 | 27 | export function removeExpiresIn() { 28 | return Cookies.remove(ExpiresInKey) 29 | } 30 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/theme.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/java/com/snow/common/security/config/ApplicationConfig.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.security.config; 2 | 3 | import java.util.TimeZone; 4 | import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; 5 | import org.springframework.context.annotation.Bean; 6 | 7 | /** 8 | * 系统配置 9 | * 10 | * @author snow 11 | */ 12 | public class ApplicationConfig 13 | { 14 | /** 15 | * 时区配置 16 | */ 17 | @Bean 18 | public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() 19 | { 20 | return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault()); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /snow-gateway/src/main/java/com/snow/gateway/config/GatewayConfig.java: -------------------------------------------------------------------------------- 1 | package com.snow.gateway.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.core.Ordered; 6 | import org.springframework.core.annotation.Order; 7 | import com.snow.gateway.handler.SentinelFallbackHandler; 8 | 9 | /** 10 | * 网关限流配置 11 | * 12 | * @author snow 13 | */ 14 | @Configuration 15 | public class GatewayConfig 16 | { 17 | @Bean 18 | @Order(Ordered.HIGHEST_PRECEDENCE) 19 | public SentinelFallbackHandler sentinelGatewayExceptionHandler() 20 | { 21 | return new SentinelFallbackHandler(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | port: 8888 4 | 5 | # Spring 6 | spring: 7 | application: 8 | # 应用名称 9 | name: snow-dinky 10 | profiles: 11 | # 环境配置 12 | active: dev 13 | include: jmx 14 | lifecycle: 15 | timeout-per-shutdown-phase: 30s 16 | cloud: 17 | nacos: 18 | discovery: 19 | # 服务注册地址 20 | server-addr: 192.168.210.10:8848 21 | config: 22 | # 配置中心地址 23 | server-addr: 192.168.210.10:8848 24 | # 配置文件格式 25 | file-extension: yml 26 | # 共享配置 27 | shared-configs: 28 | - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 29 | -------------------------------------------------------------------------------- /snow-ui/src/layout/components/Sidebar/FixiOSBug.js: -------------------------------------------------------------------------------- 1 | export default { 2 | computed: { 3 | device() { 4 | return this.$store.state.app.device 5 | } 6 | }, 7 | mounted() { 8 | // In order to fix the click on menu on the ios device will trigger the mouseleave bug 9 | this.fixBugIniOS() 10 | }, 11 | methods: { 12 | fixBugIniOS() { 13 | const $subMenu = this.$refs.subMenu 14 | if ($subMenu) { 15 | const handleMouseleave = $subMenu.handleMouseleave 16 | $subMenu.handleMouseleave = (e) => { 17 | if (this.device === 'mobile') { 18 | return 19 | } 20 | handleMouseleave(e) 21 | } 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/json/openapi_savepoint.json: -------------------------------------------------------------------------------- 1 | /* http://127.0.0.1:8888/openapi/savepoint */ 2 | { 3 | /* required-start */ 4 | "jobId":"195352b0a4518e16699983a13205f059", 5 | "savePointType":"trigger", // trigger | stop | cancel 6 | /* required-end */ 7 | /* custom-start */ 8 | "savePoint":"195352b0a4518e16699983a13205f059", 9 | "address":"127.0.0.1:8081", 10 | "gatewayConfig":{ 11 | "clusterConfig":{ 12 | "appId":"application_1637739262398_0032", 13 | "flinkConfigPath":"/opt/src/flink-1.13.3_conf/conf", 14 | "flinkLibPath":"hdfs:///flink13/lib/flinklib", 15 | "yarnConfigPath":"/usr/local/hadoop/hadoop-2.7.7/etc/hadoop" 16 | } 17 | } 18 | /* custom-start */ 19 | } -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/druid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | com.snow 6 | snow 7 | 3.6.4 8 | 9 | 4.0.0 10 | 11 | 12 | snow-api-system 13 | 14 | 15 | snow-api 16 | pom 17 | 18 | 19 | snow-api系统接口 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/java/com/snow/common/security/annotation/RequiresRoles.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.security.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 | * 11 | * @author snow 12 | */ 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Target({ ElementType.METHOD, ElementType.TYPE }) 15 | public @interface RequiresRoles 16 | { 17 | /** 18 | * 需要校验的角色标识 19 | */ 20 | String[] value() default {}; 21 | 22 | /** 23 | * 验证逻辑:AND | OR,默认AND 24 | */ 25 | Logical logical() default Logical.AND; 26 | } 27 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/peoples.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/utils/generator/drawingDefault.js: -------------------------------------------------------------------------------- 1 | export default [ 2 | { 3 | layout: 'colFormItem', 4 | tagIcon: 'input', 5 | label: '手机号', 6 | vModel: 'mobile', 7 | formId: 6, 8 | tag: 'el-input', 9 | placeholder: '请输入手机号', 10 | defaultValue: '', 11 | span: 24, 12 | style: { width: '100%' }, 13 | clearable: true, 14 | prepend: '', 15 | append: '', 16 | 'prefix-icon': 'el-icon-mobile', 17 | 'suffix-icon': '', 18 | maxlength: 11, 19 | 'show-word-limit': true, 20 | readonly: false, 21 | disabled: false, 22 | required: true, 23 | changeTag: true, 24 | regList: [{ 25 | pattern: '/^1(3|4|5|7|8|9)\\d{9}$/', 26 | message: '手机号格式错误' 27 | }] 28 | } 29 | ] 30 | -------------------------------------------------------------------------------- /snow-visual/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | com.snow 6 | snow 7 | 3.6.4 8 | 9 | 4.0.0 10 | 11 | 12 | snow-monitor 13 | 14 | 15 | snow-visual 16 | pom 17 | 18 | 19 | snow-visual图形化管理模块 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /snow-modules/snow-dinky/src/main/resources/mybatis.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/input.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/server.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-auth/src/main/java/com/snow/auth/form/LoginBody.java: -------------------------------------------------------------------------------- 1 | package com.snow.auth.form; 2 | 3 | /** 4 | * 用户登录对象 5 | * 6 | * @author snow 7 | */ 8 | public class LoginBody 9 | { 10 | /** 11 | * 用户名 12 | */ 13 | private String username; 14 | 15 | /** 16 | * 用户密码 17 | */ 18 | private String password; 19 | 20 | public String getUsername() 21 | { 22 | return username; 23 | } 24 | 25 | public void setUsername(String username) 26 | { 27 | this.username = username; 28 | } 29 | 30 | public String getPassword() 31 | { 32 | return password; 33 | } 34 | 35 | public void setPassword(String password) 36 | { 37 | this.password = password; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/java/com/snow/common/security/annotation/RequiresPermissions.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.security.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 | * 11 | * @author snow 12 | * 13 | */ 14 | @Retention(RetentionPolicy.RUNTIME) 15 | @Target({ ElementType.METHOD, ElementType.TYPE }) 16 | public @interface RequiresPermissions 17 | { 18 | /** 19 | * 需要校验的权限码 20 | */ 21 | String[] value() default {}; 22 | 23 | /** 24 | * 验证模式:AND | OR,默认AND 25 | */ 26 | Logical logical() default Logical.AND; 27 | } 28 | -------------------------------------------------------------------------------- /snow-common/snow-common-swagger/src/main/java/com/snow/common/swagger/annotation/EnableCustomSwagger2.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.swagger.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | import org.springframework.context.annotation.Import; 10 | import com.snow.common.swagger.config.SwaggerAutoConfiguration; 11 | 12 | @Target({ ElementType.TYPE }) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Documented 15 | @Inherited 16 | @Import({ SwaggerAutoConfiguration.class }) 17 | public @interface EnableCustomSwagger2 18 | { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /snow-modules/snow-job/src/main/java/com/snow/job/task/RyTask.java: -------------------------------------------------------------------------------- 1 | package com.snow.job.task; 2 | 3 | import org.springframework.stereotype.Component; 4 | import com.snow.common.core.utils.StringUtils; 5 | 6 | /** 7 | * 定时任务调度测试 8 | * 9 | * @author snow 10 | */ 11 | @Component("ryTask") 12 | public class RyTask 13 | { 14 | public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) 15 | { 16 | System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); 17 | } 18 | 19 | public void ryParams(String params) 20 | { 21 | System.out.println("执行有参方法:" + params); 22 | } 23 | 24 | public void ryNoParams() 25 | { 26 | System.out.println("执行无参方法"); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /snow-ui/src/directive/permission/hasRole.js: -------------------------------------------------------------------------------- 1 | /** 2 | * v-hasRole 角色权限处理 3 | * Copyright (c) 2019 snow 4 | */ 5 | 6 | import store from '@/store' 7 | 8 | export default { 9 | inserted(el, binding, vnode) { 10 | const { value } = binding 11 | const super_admin = "admin"; 12 | const roles = store.getters && store.getters.roles 13 | 14 | if (value && value instanceof Array && value.length > 0) { 15 | const roleFlag = value 16 | 17 | const hasRole = roles.some(role => { 18 | return super_admin === role || roleFlag.includes(role) 19 | }) 20 | 21 | if (!hasRole) { 22 | el.parentNode && el.parentNode.removeChild(el) 23 | } 24 | } else { 25 | throw new Error(`请设置角色权限标签值"`) 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /snow-common/snow-common-swagger/src/main/java/com/snow/common/swagger/config/SwaggerWebConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.swagger.config; 2 | 3 | import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 4 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 5 | 6 | /** 7 | * swagger 资源映射路径 8 | * 9 | * @author snow 10 | */ 11 | public class SwaggerWebConfiguration implements WebMvcConfigurer 12 | { 13 | @Override 14 | public void addResourceHandlers(ResourceHandlerRegistry registry) 15 | { 16 | /** swagger-ui 地址 */ 17 | registry.addResourceHandler("/swagger-ui/**") 18 | .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /snow-ui/src/api/system/logininfor.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询登录日志列表 4 | export function list(query) { 5 | return request({ 6 | url: '/system/logininfor/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除登录日志 13 | export function delLogininfor(infoId) { 14 | return request({ 15 | url: '/system/logininfor/' + infoId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 解锁用户登录状态 21 | export function unlockLogininfor(userName) { 22 | return request({ 23 | url: '/system/logininfor/unlock/' + userName, 24 | method: 'get' 25 | }) 26 | } 27 | // 清空登录日志 28 | export function cleanLogininfor() { 29 | return request({ 30 | url: '/system/logininfor/clean', 31 | method: 'delete' 32 | }) 33 | } 34 | -------------------------------------------------------------------------------- /snow-common/snow-common-security/src/main/java/com/snow/common/security/annotation/EnableRyFeignClients.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.security.annotation; 2 | 3 | import org.springframework.cloud.openfeign.EnableFeignClients; 4 | import java.lang.annotation.*; 5 | 6 | /** 7 | * 自定义feign注解 8 | * 添加basePackages路径 9 | * 10 | * @author snow 11 | */ 12 | @Target(ElementType.TYPE) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Documented 15 | @EnableFeignClients 16 | public @interface EnableRyFeignClients 17 | { 18 | String[] value() default {}; 19 | 20 | String[] basePackages() default { "com.snow" }; 21 | 22 | Class[] basePackageClasses() default {}; 23 | 24 | Class[] defaultConfiguration() default {}; 25 | 26 | Class[] clients() default {}; 27 | } 28 | -------------------------------------------------------------------------------- /snow-ui/src/layout/components/Sidebar/Item.vue: -------------------------------------------------------------------------------- 1 | 34 | -------------------------------------------------------------------------------- /snow-modules/snow-system/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | Spring Application Name: ${spring.application.name} 3 | _ _ 4 | (_) | | 5 | _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___ 6 | | '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ 7 | | | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | | 8 | |_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_| 9 | __/ | __/ | 10 | |___/ |___/ -------------------------------------------------------------------------------- /snow-common/snow-common-translation/src/main/java/com/snow/common/translation/constant/TransConstant.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.translation.constant; 2 | 3 | /** 4 | * 翻译常量 5 | * 6 | * @author Lion Li 7 | */ 8 | public interface TransConstant { 9 | 10 | /** 11 | * 用户id转账号 12 | */ 13 | String USER_ID_TO_NAME = "user_id_to_name"; 14 | 15 | /** 16 | * 用户id转用户昵称 17 | */ 18 | String USER_ID_TO_NICKNAME = "user_id_to_nickname"; 19 | 20 | 21 | /** 22 | * 部门id转名称 23 | */ 24 | String DEPT_ID_TO_NAME = "dept_id_to_name"; 25 | 26 | /** 27 | * 字典type转label 28 | */ 29 | String DICT_TYPE_TO_LABEL = "dict_type_to_label"; 30 | 31 | /** 32 | * ossId转url 33 | */ 34 | String OSS_ID_TO_URL = "oss_id_to_url"; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/textarea.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/time.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-modules/snow-dolphinscheduler/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | ${AnsiColor.BLUE}${AnsiStyle.BOLD} 2 | ================================================================================ 3 | _ _ _ _ ____ _ _ _ 4 | __| | ___ | |_ __ | |__ (_)_ __ / ___| ___| |__ ___ __| |_ _| | ___ _ __ 5 | / _` |/ _ \| | '_ \| '_ \| | '_ \\___ \ / __| '_ \ / _ \/ _` | | | | |/ _ \ '__| 6 | | (_| | (_) | | |_) | | | | | | | |___) | (__| | | | __/ (_| | |_| | | __/ | 7 | \__,_|\___/|_| .__/|_| |_|_|_| |_|____/ \___|_| |_|\___|\__,_|\__,_|_|\___|_| 8 | |_| 9 | ================================================================================ 10 | ${AnsiColor.BLUE}${AnsiStyle.BOLD} 11 | :: DolphinScheduler api server :: ${application.formatted-version} 12 | ${AnsiStyle.NORMAL} 13 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/edit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/nested.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/directive/index.js: -------------------------------------------------------------------------------- 1 | import hasRole from './permission/hasRole' 2 | import hasPermi from './permission/hasPermi' 3 | import dialogDrag from './dialog/drag' 4 | import dialogDragWidth from './dialog/dragWidth' 5 | import dialogDragHeight from './dialog/dragHeight' 6 | import clipboard from './module/clipboard' 7 | 8 | const install = function(Vue) { 9 | Vue.directive('hasRole', hasRole) 10 | Vue.directive('hasPermi', hasPermi) 11 | Vue.directive('clipboard', clipboard) 12 | Vue.directive('dialogDrag', dialogDrag) 13 | Vue.directive('dialogDragWidth', dialogDragWidth) 14 | Vue.directive('dialogDragHeight', dialogDragHeight) 15 | } 16 | 17 | if (window.Vue) { 18 | window['hasRole'] = hasRole 19 | window['hasPermi'] = hasPermi 20 | Vue.use(install); // eslint-disable-line 21 | } 22 | 23 | export default install 24 | -------------------------------------------------------------------------------- /snow-ui/src/directive/permission/hasPermi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * v-hasPermi 操作权限处理 3 | * Copyright (c) 2019 snow 4 | */ 5 | 6 | import store from '@/store' 7 | 8 | export default { 9 | inserted(el, binding, vnode) { 10 | const { value } = binding 11 | const all_permission = "*:*:*"; 12 | const permissions = store.getters && store.getters.permissions 13 | 14 | if (value && value instanceof Array && value.length > 0) { 15 | const permissionFlag = value 16 | 17 | const hasPermissions = permissions.some(permission => { 18 | return all_permission === permission || permissionFlag.includes(permission) 19 | }) 20 | 21 | if (!hasPermissions) { 22 | el.parentNode && el.parentNode.removeChild(el) 23 | } 24 | } else { 25 | throw new Error(`请设置操作权限标签值`) 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /snow-common/snow-common-log/src/main/java/com/snow/common/log/enums/BusinessType.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.log.enums; 2 | 3 | /** 4 | * 业务操作类型 5 | * 6 | * @author snow 7 | */ 8 | public enum BusinessType 9 | { 10 | /** 11 | * 其它 12 | */ 13 | OTHER, 14 | 15 | /** 16 | * 新增 17 | */ 18 | INSERT, 19 | 20 | /** 21 | * 修改 22 | */ 23 | UPDATE, 24 | 25 | /** 26 | * 删除 27 | */ 28 | DELETE, 29 | 30 | /** 31 | * 授权 32 | */ 33 | GRANT, 34 | 35 | /** 36 | * 导出 37 | */ 38 | EXPORT, 39 | 40 | /** 41 | * 导入 42 | */ 43 | IMPORT, 44 | 45 | /** 46 | * 强退 47 | */ 48 | FORCE, 49 | 50 | /** 51 | * 生成代码 52 | */ 53 | GENCODE, 54 | 55 | /** 56 | * 清空数据 57 | */ 58 | CLEAN, 59 | } 60 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/xss/Xss.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.xss; 2 | 3 | import javax.validation.Constraint; 4 | import javax.validation.Payload; 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 自定义xss校验注解 12 | * 13 | * @author snow 14 | */ 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Target(value = { ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER }) 17 | @Constraint(validatedBy = { XssValidator.class }) 18 | public @interface Xss 19 | { 20 | String message() 21 | 22 | default "不允许任何脚本运行"; 23 | 24 | Class[] groups() default {}; 25 | 26 | Class[] payload() default {}; 27 | } 28 | -------------------------------------------------------------------------------- /snow-visual/snow-monitor/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | Spring Application Name: ${spring.application.name} 3 | _ _ _ 4 | (_) (_)| | 5 | _ __ _ _ ___ _ _ _ ______ _ __ ___ ___ _ __ _ | |_ ___ _ __ 6 | | '__|| | | | / _ \ | | | || ||______|| '_ ` _ \ / _ \ | '_ \ | || __| / _ \ | '__| 7 | | | | |_| || (_) || |_| || | | | | | | || (_) || | | || || |_ | (_) || | 8 | |_| \__,_| \___/ \__, ||_| |_| |_| |_| \___/ |_| |_||_| \__| \___/ |_| 9 | __/ | 10 | |___/ -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/utils/bean/BeanValidators.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.utils.bean; 2 | 3 | import java.util.Set; 4 | import javax.validation.ConstraintViolation; 5 | import javax.validation.ConstraintViolationException; 6 | import javax.validation.Validator; 7 | 8 | /** 9 | * bean对象属性验证 10 | * 11 | * @author snow 12 | */ 13 | public class BeanValidators 14 | { 15 | public static void validateWithException(Validator validator, Object object, Class... groups) 16 | throws ConstraintViolationException 17 | { 18 | Set> constraintViolations = validator.validate(object, groups); 19 | if (!constraintViolations.isEmpty()) 20 | { 21 | throw new ConstraintViolationException(constraintViolations); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /snow-gateway/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | Spring Boot Version: ${spring-boot.version} 2 | Spring Application Name: ${spring.application.name} 3 | _ _ 4 | (_) | | 5 | _ __ _ _ ___ _ _ _ ______ __ _ __ _ | |_ ___ __ __ __ _ _ _ 6 | | '__|| | | | / _ \ | | | || ||______| / _` | / _` || __| / _ \\ \ /\ / / / _` || | | | 7 | | | | |_| || (_) || |_| || | | (_| || (_| || |_ | __/ \ V V / | (_| || |_| | 8 | |_| \__,_| \___/ \__, ||_| \__, | \__,_| \__| \___| \_/\_/ \__,_| \__, | 9 | __/ | __/ | __/ | 10 | |___/ |___/ |___/ -------------------------------------------------------------------------------- /snow-ui/src/store/getters.js: -------------------------------------------------------------------------------- 1 | const getters = { 2 | sidebar: state => state.app.sidebar, 3 | size: state => state.app.size, 4 | device: state => state.app.device, 5 | dict: state => state.dict.dict, 6 | visitedViews: state => state.tagsView.visitedViews, 7 | cachedViews: state => state.tagsView.cachedViews, 8 | token: state => state.user.token, 9 | avatar: state => state.user.avatar, 10 | name: state => state.user.name, 11 | introduction: state => state.user.introduction, 12 | roles: state => state.user.roles, 13 | permissions: state => state.user.permissions, 14 | permission_routes: state => state.permission.routes, 15 | topbarRouters:state => state.permission.topbarRouters, 16 | defaultRoutes:state => state.permission.defaultRoutes, 17 | sidebarRouters:state => state.permission.sidebarRouters, 18 | } 19 | export default getters 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ###################################################################### 2 | # Build Tools 3 | 4 | .gradle 5 | /build/ 6 | !gradle/wrapper/gradle-wrapper.jar 7 | 8 | target/ 9 | !.mvn/wrapper/maven-wrapper.jar 10 | 11 | ###################################################################### 12 | # IDE 13 | 14 | ### STS ### 15 | .apt_generated 16 | .classpath 17 | .factorypath 18 | .project 19 | .settings 20 | .springBeans 21 | 22 | ### IntelliJ IDEA ### 23 | .idea 24 | *.iws 25 | *.iml 26 | *.ipr 27 | 28 | ### JRebel ### 29 | rebel.xml 30 | ### NetBeans ### 31 | nbproject/private/ 32 | build/* 33 | nbbuild/ 34 | dist/ 35 | nbdist/ 36 | .nb-gradle/ 37 | 38 | ###################################################################### 39 | # Others 40 | *.log 41 | *.xml.versionsBackup 42 | *.swp 43 | 44 | !*/build/*.java 45 | !*/build/*.html 46 | !*/build/*.xml -------------------------------------------------------------------------------- /snow-modules/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | com.snow 6 | snow 7 | 3.6.4 8 | 9 | 4.0.0 10 | 11 | 12 | snow-system 13 | snow-gen 14 | snow-job 15 | snow-file 16 | 17 | 18 | snow-modules 19 | pom 20 | 21 | 22 | snow-modules业务模块 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/CheckedException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception; 2 | 3 | /** 4 | * 检查异常 5 | * 6 | * @author snow 7 | */ 8 | public class CheckedException extends RuntimeException 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public CheckedException(String message) 13 | { 14 | super(message); 15 | } 16 | 17 | public CheckedException(Throwable cause) 18 | { 19 | super(cause); 20 | } 21 | 22 | public CheckedException(String message, Throwable cause) 23 | { 24 | super(message, cause); 25 | } 26 | 27 | public CheckedException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) 28 | { 29 | super(message, cause, enableSuppression, writableStackTrace); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /snow-common/snow-common-core/src/main/java/com/snow/common/core/exception/job/TaskException.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.core.exception.job; 2 | 3 | /** 4 | * 计划策略异常 5 | * 6 | * @author snow 7 | */ 8 | public class TaskException extends Exception 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | private Code code; 13 | 14 | public TaskException(String msg, Code code) 15 | { 16 | this(msg, code, null); 17 | } 18 | 19 | public TaskException(String msg, Code code, Exception nestedEx) 20 | { 21 | super(msg, nestedEx); 22 | this.code = code; 23 | } 24 | 25 | public Code getCode() 26 | { 27 | return code; 28 | } 29 | 30 | public enum Code 31 | { 32 | TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/row.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-common/snow-common-log/src/main/java/com/snow/common/log/service/AsyncLogService.java: -------------------------------------------------------------------------------- 1 | package com.snow.common.log.service; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.scheduling.annotation.Async; 5 | import org.springframework.stereotype.Service; 6 | import com.snow.common.core.constant.SecurityConstants; 7 | import com.snow.system.api.RemoteLogService; 8 | import com.snow.system.api.domain.SysOperLog; 9 | 10 | /** 11 | * 异步调用日志服务 12 | * 13 | * @author snow 14 | */ 15 | @Service 16 | public class AsyncLogService 17 | { 18 | @Autowired 19 | private RemoteLogService remoteLogService; 20 | 21 | /** 22 | * 保存系统日志记录 23 | */ 24 | @Async 25 | public void saveSysLog(SysOperLog sysOperLog) throws Exception 26 | { 27 | remoteLogService.saveLog(sysOperLog, SecurityConstants.INNER); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /snow-ui/src/assets/icons/svg/monitor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snow-ui/src/components/iFrame/index.vue: -------------------------------------------------------------------------------- 1 |