{"id":30558217,"url":"https://github.com/shj-v/open-shj-visual-backend","last_synced_at":"2026-05-16T08:12:04.088Z","repository":{"id":311932038,"uuid":"1045446989","full_name":"shj-v/open-shj-visual-backend","owner":"shj-v","description":"Shanhejian Visualization Backend （山河鉴可视化后端）","archived":false,"fork":false,"pushed_at":"2025-08-27T07:31:36.000Z","size":15350,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-27T23:32:56.364Z","etag":null,"topics":["3d","3dgs","babylonjs","java","llm","low-code","threejs","tools","visualization"],"latest_commit_sha":null,"homepage":"https://shj.studio/website","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shj-v.png","metadata":{"files":{"readme":"README.cn.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-27T07:24:45.000Z","updated_at":"2025-08-27T09:27:09.000Z","dependencies_parsed_at":"2025-08-27T23:33:07.967Z","dependency_job_id":"1915d0e9-6004-4ce6-8aa7-04d64d3a4f1e","html_url":"https://github.com/shj-v/open-shj-visual-backend","commit_stats":null,"previous_names":["shj-v/open-shj-visual-backend"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/shj-v/open-shj-visual-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shj-v%2Fopen-shj-visual-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shj-v%2Fopen-shj-visual-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shj-v%2Fopen-shj-visual-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shj-v%2Fopen-shj-visual-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shj-v","download_url":"https://codeload.github.com/shj-v/open-shj-visual-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shj-v%2Fopen-shj-visual-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231103,"owners_count":25245687,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","3dgs","babylonjs","java","llm","low-code","threejs","tools","visualization"],"created_at":"2025-08-28T08:02:40.896Z","updated_at":"2026-05-16T08:12:04.048Z","avatar_url":"https://github.com/shj-v.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 山河鉴可视化 —— 后台\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\" style=\"background: #fff; margin-bottom: 20px;\"\u003e\n\u003cimg src=\"./assets/s1.png\" alt=\"山河鉴Logo\" width=\"100%\" style=\"border-radius: 0px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); margin-bottom: 20px\"/\u003e\n\n[English](./README.en.md) | 简体中文\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cp\u003e\u003cstrong\u003e自由创作 所想所得\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003e您设计，我们生成源码和应用程序，随时可以展示、发布或二次开发。\u003c/p\u003e\n  \n  [![Version](https://img.shields.io/badge/version-2.0.46-blue.svg)](https://github.com/your-org/open-shj-visual)\n  [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n  [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://shj.studio/website/)\n  \n  [🌐 官网](https://shj.studio/website/) | [📖 文档](https://shj.studio/website/) | [💬 社区](https://github.com/your-org/open-shj-visual/discussions) | [🐛 反馈](https://github.com/your-org/open-shj-visual/issues)\n\u003c/div\u003e\n\n## 介绍\n\n\u003e 当前组件库主要用于\"山河鉴可视化\"工具组件模块以及导出源码组件模块，包括100+组件、事件以及数据源。\n\n山河鉴是一款自主可控、国产自研的低代码数据 3D 可视化工具，致力于为用户提供专业、高效、开放的数据可视化解决方案。通过可视化拖拽操作，让数据分析师、设计师、开发者都能轻松创建出色的数据可视化作品，将传统数周的开发工作压缩至数小时完成。工具基于 Vue 3 + TypeScript + Electron 等现代前端技术栈，支持团队协作、自定义组件开发，适用于企业数字化、政府数字化、教育科研等多种场景。\n\n\n## 系统架构\n\n### 1. 总体架构\n\n- **分层设计**：前端（可对接 Vue/React 等）、后端（Spring Boot）、数据库（MySQL/PG/Oracle/DM/ClickHouse 等）、WebSocket 实时通信。\n- **模块化**：各功能模块独立开发、解耦部署，便于维护和扩展。\n- **插件化**：数据源、可视化组件、认证等均支持插件式扩展。\n\n### 2. 主要模块说明\n\n#### 2.1  shj-datasource（数据源模块）\n\n- **功能**：负责所有数据源的统一接入、配置、连接管理、数据抽取与权限隔离来自dataease。\n- **支持类型**：\n  - 关系型数据库：MySQL、MariaDB、PostgreSQL、SQLServer、Oracle、ClickHouse、达梦（DM）等\n  - 文件型数据源：Excel、CSV、JSON\n- **核心能力**：\n  - 数据源注册、配置、动态加载\n  - 数据库连接池（Druid）高效管理\n  - 插件化 Provider 机制，便于扩展新类型数据源\n  - SQL 查询、元数据（表/字段）获取、数据预览\n  - 文件型数据源解析与字段自动识别\n  - 团队/用户级权限隔离\n  - 支持多字符集、JDBC参数自定义\n\n#### 2.2 shj-common（公共模块）\n\n- **内容**：通用工具类、常量、异常处理、基础实体、注解、AOP、配置等。\n- **作用**：为各业务模块提供基础能力和复用组件。\n\n#### 2.3  shj-system（系统模块）\n\n- **功能**：系统级配置、用户与团队管理、权限控制、日志、任务调度等。\n- **亮点**：支持多团队协作、细粒度权限分配、系统参数灵活配置。\n\n#### 2.4 zerov-tools（工具模块）\n\n- **内容**：第三方集成、认证、文件存储、辅助工具等。\n- **作用**：为平台提供外部能力扩展和便捷工具。\n\n#### 2.5  shj-websocket（WebSocket模块）\n\n- **功能**：实现前后端实时通信，支持消息推送、在线协作、数据变更通知等。\n\n---\n\n## 技术选型\n\n- **后端**：Spring Boot、MyBatis-Plus、Druid、Gson/Fastjson\n- **数据库**：支持 MySQL、PostgreSQL、Oracle、DM、ClickHouse 等\n- **前端**：可对接 Vue、React 等现代前端框架\n- **通信协议**：RESTful API + WebSocket\n- **依赖管理**：Maven\n- **部署方式**：支持本地、云端、容器化部署\n\n---\n\n## 典型业务流程\n\n### 1. 数据源注册与管理\n\n1. 用户/管理员在前端页面填写数据源信息（类型、地址、端口、用户名、密码等）。\n2. 后端 zerov-datasource 模块接收请求，校验并保存数据源配置。\n3. 系统根据数据源类型，动态选择对应 Provider，通过 Druid 连接池建立连接。\n4. 支持对数据源的增删改查、启用禁用、权限分配等操作。\n\n### 2. 数据查询与元数据获取\n\n1. 用户选择数据源并输入 SQL 查询或选择表。\n2. Provider 负责执行 SQL，返回数据结果或表结构、字段信息。\n3. 支持分页、数据预览、字段权限过滤等。\n\n### 3. 文件型数据源处理\n\n1. 用户上传 Excel/CSV/JSON 文件。\n2. 系统自动解析文件内容，识别字段、预览数据。\n3. 支持字段映射、数据清洗、批量导入等操作。\n\n### 4. 多团队/多用户隔离\n\n- 数据源、数据集、可视化资源均可按团队、用户进行隔离和权限控制，保障数据安全。\n\n---\n\n## 扩展性与定制能力\n\n- **数据源扩展**：只需实现 Provider 接口并注册，即可支持新类型数据源。\n- **可视化组件扩展**：支持自定义图表、仪表盘等前端组件。\n- **认证与权限**：可集成企业 SSO、LDAP、OAuth2 等多种认证方式。\n- **第三方集成**：支持与外部数据平台、存储、消息队列等对接。\n\n---\n\n## 适用场景\n\n- 企业级数据分析与可视化\n- 多数据源统一管理与数据集成\n- 数据开发、数据治理平台\n- BI 报表、仪表盘搭建\n- 数据中台、数据资产管理\n\n---\n\n## 目录结构（示例）\n\n```\n shj_visual/\n  ├─ zerov-common/      # 公共模块\n  ├─ zerov-datasource/  # 数据源模块\n  ├─ zerov-system/      # 系统模块\n  ├─ zerov-tools/       # 工具模块\n  ├─ zerov-websocket/   # WebSocket模块\n  └─ pom.xml            # 项目聚合配置\n```\n\n---\n\n## 快速开始\n\n1. 克隆代码仓库，安装依赖\n2. 配置数据库及相关参数（application.yml/application-dev.yml）\n3. 启动后端服务（Maven 或 IDE 运行主类）\n4. 访问前端页面，进行数据源配置和可视化操作\n\n---\n\n## 特色亮点\n\n- 插件化数据源扩展，支持自定义 Provider\n- 多团队/多用户隔离，权限灵活\n- 支持大数据量高效查询与缓存\n- 丰富的可视化能力与数据建模支持\n- 支持多种文件型数据源，灵活的数据导入导出\n\n---\n\n## 联系方式与支持\n\n如需定制开发、技术支持或有任何建议，请联系项目维护者或提交 issue。\n\n---\n\n如需更详细的接口文档、开发指南、部署说明或英文版文档，请随时告知！ \n\n## 第三方配置\n- 文件上传使用的腾讯云的，请大家自己去配置在tools模块\n- 微信登录也需要配置\n- 短信配置\n\n## 默认登录的账号密码\n- 185111112222/Aa123456\n\n\n## 社区与支持\n\n\n### 资源\n\n- 官方网站: [https://shjv.yuque.com/org-wiki-shjv-psfwkn/shj](https://shjv.yuque.com/org-wiki-shjv-psfwkn/shj)\n- 官方文档: [https://shj.studio/website/](https://shj.studio/website/)\n- 视频教程: B 站搜索\"山河鉴可视化\"\n\n### 交流\n- QQ群：795698425、805334126\n- 微信社区: 扫描官网二维码加入\n- GitHub Discussions: 技术讨论和问题解答\n- 知乎: @山河鉴可视化\n- B 站: @山河鉴可视化\n\n\u003cbr /\u003e\n\n\u003cdiv style=\"display:flex; gap:4px;\"\u003e\n  \u003cimg src=\"./assets/q2.jpg\" width=\"200px\" style=\"border-radius: 0px; box-shadow: 0 2px 4px rgba(0,0,0,0.1)\"/\u003e\n  \u003cimg src=\"./assets/q1.jpg\" width=\"200px\" style=\"border-radius: 0px; box-shadow: 0 2px 4px rgba(0,0,0,0.1)\"/\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e如果这个项目对您有帮助，请给我们一个Star支持！⭐⭐⭐\u003c/p\u003e\n  \u003cp\u003e让我们一起构建更好的数据可视化生态！🚀\u003c/p\u003e\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshj-v%2Fopen-shj-visual-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshj-v%2Fopen-shj-visual-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshj-v%2Fopen-shj-visual-backend/lists"}