# sharedata **Repository Path**: lih0wei/sharedata ## Basic Information - **Project Name**: sharedata - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-10 - **Last Updated**: 2026-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据共享系统 一期技术栈:Vue 3、Spring Boot、PostgreSQL、Redis、Podman。项目当前实现可演示的登录、客户/联系人数据权限和记录级分享骨架;金蝶 s-HR、分享销客 API 暂不接入,只保留数据源页面和连接器接口。 ## 已实现 - 独立账号密码登录和 Redis Session。 - 普通用户按负责人查看客户、联系人。 - 部门负责人按组织树查看本部门及下级部门数据。 - 有效期内的客户/联系人记录级分享权限。 - 客户、联系人独立授权,联系人所属客户仅做摘要展示。 - 管理员四步分享页面和接收人选择。 - PostgreSQL/Flyway 数据结构及演示数据。 - 金蝶 s-HR、分享销客数据源入口及后端连接器边界。 - Podman Compose 单机编排。 异步 Excel 导出、密码修改/锁定、分享列表与撤回、完整审计页面仍属于后续开发内容,页面上对应入口不会伪装成已完成。 ## 目录 ```text backend/ Spring Boot 后端 frontend/ Vue 3 前端 docs/ 需求、设计和接口调研文档 compose.yml Podman Compose 编排 ``` ## Podman 启动 需要 Podman 4.9+ 及支持 Compose 的 `podman compose` provider。 ```bash cp .env.example .env # 修改 .env 中的数据库密码 podman compose -f compose.yml up --build -d podman compose -f compose.yml ps ``` 浏览器访问 `http://localhost:8080`。 PostgreSQL 默认仅映射到本机 `127.0.0.1:5432`,连接参数为数据库 `data_sharing`、用户 `data_sharing`,密码取自 `.env` 的 `DB_PASSWORD`。如本机端口已占用,可修改 `POSTGRES_PORT`。 演示账号密码: | 账号 | 角色 | 密码 | | --- | --- | --- | | admin | 系统管理员、共享管理员 | Admin123! | | 10001 | 销售部负责人 | Admin123! | | 10002 | 普通用户 | Admin123! | | 10003 | 普通用户 | Admin123! | 演示迁移使用 `{noop}` 密码,仅用于本地原型。接入正式初始化流程前不得上线,并应改为 BCrypt/Argon2id 哈希、首次登录改密和密码重置流程。 停止服务: ```bash podman compose -f compose.yml down ``` 该命令保留数据库卷。删除卷会清空数据,不应在正式环境随意执行。 ## 本地开发 后端需要 Java 21、Maven 3.9;前端需要 Node.js 22、npm。 ```bash cd backend mvn test mvn spring-boot:run ``` ```bash cd frontend npm install npm run dev ``` Vite 会将 `/api` 代理到 `http://localhost:8080`。 ## API 预留位置 - 后端连接器接口:`backend/src/main/java/com/company/datasharing/integration/DataSourceConnector.java` - 当前占位实现:`ReservedConnector.java` - 数据源表:Flyway 迁移中的 `data_source` - 前端入口:管理后台 → 数据源管理 后续取得厂商 API 后,分别增加 `ShrConnector` 和 `FxiaokeConnector`,不要把厂商字段直接渗透进客户、联系人和权限模块。 ## 当前验证状态 - `podman compose -f compose.yml config` 已通过。 - 容器镜像统一通过 `docker.m.daocloud.io` 拉取,避免当前网络无法直接访问 Docker Hub。 - Vue TypeScript 检查和生产构建已在 Node 构建容器中通过。 - Spring Boot Java 编译和 Maven 测试已在构建容器中通过。 - PostgreSQL、Redis、后端和前端均已启动;Flyway 两个迁移已成功执行。 - 已通过 Nginx 验证登录接口、普通用户本人客户范围和部门负责人下级部门范围。 当前主机的 `podman-compose` 对 `depends_on.condition: service_healthy` 偶尔会长期等待;各容器的手动健康检查均通过。如果启动命令等待时间异常,可在另一个终端先执行 `podman compose -f compose.yml ps` 查看实际状态。 网络可访问镜像仓库后执行: ```bash cd backend && mvn test cd ../frontend && npm install && npm run build cd .. && podman compose -f compose.yml config podman compose -f compose.yml up --build ```