# 产品与服务目录
> 产品级视图:服务域划分、服务清单、对外协议、实现完成度、跨域耦合与运行拓扑。
> 逐服务审计明细见 [`docs/`](../docs/README.md);风险与优先级见 [`audit-2026-09-22-总体审计报告.md`](audit-2026-09-22-总体审计报告.md)。
## 一、产品定位
BSM Infra Full 是 BSM 后端服务的 Go workspace,按**四个服务域**组织,提供账号与身份、后台权限、内容与运营、文件与个人云空间、电商交易、资金支付、社交关系等能力。既有"每服务独立进程"的部署形态(`module/*/cmd/main`),也有"多服务单进程聚合"的部署形态(`pkgs/all` 全量、`pkgs/ecmall` 电商)。
## 二、服务域与服务清单
| 服务域 | 服务 | 模块路径 | 主要职责 | 对外协议 | 聚合归属 |
| --- | --- | --- | --- | --- | --- |
| 基础与平台 | passport | `module/base/passport` | 账号、密码/验证码登录、找回、KYC 核验 | gRPC + gateway | all、ecmall |
| 基础与平台 | mgt | `module/base/mgt` | 后台登录、组织/角色/权限/部门 | 原生 REST `/rest/mgt` | all、ecmall |
| 基础与平台 | initial | `module/base/initial` | 服务探测、客户端配置、版本、国家/区划/字典 | gRPC + gateway | all、ecmall |
| 基础与平台 | sender | `module/base/sender` | 短信、邮件、验证码生成与校验 | gRPC + gateway | all、ecmall |
| 基础与平台 | fts | `module/base/fts` | 文件上传(本地/MinIO)、上传配置 | 原生 REST `/rest/fts` | all、ecmall |
| 基础与平台 | cloud | `module/base/cloud` | 网盘、相册、笔记、书签、私人资料、分享、空间 | gRPC + gateway | 仅 all |
| 基础与平台 | cms | `module/base/cms` | 文章、页面、分类、标签、评论、赞踩 | gRPC + gateway | all、ecmall |
| 基础与平台 | ads | `module/base/ads` | 按广告位分发广告素材 | gRPC + gateway | all、ecmall |
| 基础与平台 | feedback | `module/base/feedback` | 意见反馈的增删改查与备注 | gRPC + gateway | all、ecmall |
| 基础与平台 | logs | `module/base/logs` | 业务操作日志写入与查询 | 原生 REST `/rest/logs` | all、ecmall |
| 电商与交易 | address | `module/ec/address` | 收货地址簿 | gRPC + gateway | all、ecmall |
| 电商与交易 | mall | `module/ec/mall` | 店铺、商品、规格、图片、分类、广告、公告、运费、员工 | gRPC + gateway | all、ecmall |
| 电商与交易 | market | `module/ec/market` | 代理商、供应商、审核 | gRPC + gateway | all、ecmall |
| 电商与交易 | order | `module/ec/order` | 购物车、下单、拆单、订单状态、优惠券 | gRPC + gateway | all、ecmall |
| 资金与支付 | wallet | `module/finance/wallet` | 钱包、流水、银行卡、提现、支付渠道、回调 | gRPC + gateway | all、ecmall |
| 社交 | relation | `module/social/relation` | 好友、标签、关注、匹配 | gRPC + gateway | **未接入** |
| 社交 | group | `module/social/group` | 群组、成员、入群申请 | gRPC + gateway | **未接入** |
| 社交 | feed | `module/social/feed` | 动态、标签、评论、互动计数、时间线 | gRPC + gateway | **未接入** |
| 聚合 | all | `pkgs/all` | 15 服务聚合宿主(gRPC 12000 / HTTP 12001) | gRPC + HTTP 多路 | — |
| 聚合 | ecmall | `pkgs/ecmall` | 14 服务电商聚合宿主(gRPC 12300 / HTTP 12301) | gRPC + HTTP 多路 | — |
预留/空目录(不计入已实现服务):`module/ec/supply`(仅 README)、`module/finance/bill`、`module/finance/loan`(空目录)。
## 三、实现完成度
> "占位"指接口已声明但逻辑为空/返回成功/TODO。以下为本次核实结论,明细见对应 `docs/*.md`。
| 服务 | 完成度 | 已确认的占位/缺口 |
| --- | --- | --- |
| cloud | 方法齐全 | 全部 gRPC 方法均有实现;但容量配额只统计不限制、分享链路断裂、私人资料未真正加密 |
| passport | 方法齐全 | `Verify.JumioCallback` 为空 stub;`Forget.Verify` 为伪实现 |
| sender | 部分 | **腾讯云短信空实现**(`TencentSender`);邮件仅 `qq` 渠道 |
| cms | 部分 | `Site` 全系列占位(get/fetch/create/modify/delete 均为 TODO) |
| feed | 大量占位 | 4 类 Timeline(recommend/hot/friend/follow)、`Tag.PostList`、`Post.CommentList`、`Setting.Info`、`Setting.Rights` 共 9 处 |
| wallet | 大量占位 | 支付宝 page/app/wap 支付与转账、微信 APP/Native 下单与转账共 7 处 TODO;`WxCallback` 验签后无业务逻辑 |
| mall | 部分 | 入驻、授权、小程序码、按规格查询、商品批量操作、运费与禁运区域占位;员工验证码登录明确未实现 |
| market | 部分 | `Data` 概况/会员/订单统计 5 个文件全部占位 |
| order | 部分 | 管理端 `OrderModify` 占位;`SimulatePay/SimulateShipments/SimulateReceiving` 为模拟实现(生产可达,见总体报告 S8) |
| group | 部分 | `Basic.Disband` 占位但返回成功 |
| relation | 方法齐全 | 无占位函数,但存在遗留死代码 `follow.Do` |
| ads | 方法齐全 | 仅 1 个只读接口;README 宣称的 Redis/内存缓存**未实现** |
| initial / fts / logs / address / mgt / feedback | 方法齐全 | 无占位,但存在本报告所列的越权/鉴权/分页/键名等缺陷 |
## 四、跨域耦合
| 耦合 | 说明 | 影响 |
| --- | --- | --- |
| order → mall / address 数据表 | `order` 直接读写 `mall_product`、`mall_product_spec`、`mall_store`、`address_library`(散落 8 个文件) | 任一表结构变更即运行期报错;订单侧可直接改商品库存 |
| passport ↔ sender | 验证码生成/校验依赖 sender;但 passport 登录/注册路径实际未调用校验 | 验证码形同虚设 |
| mall ↔ wallet / order | 店铺支付配置由 mall 维护、支付执行在 wallet、订单在 order | 店铺凭据当前可被任意登录用户读改 |
| cloud ↔ fts | cloud 维护文件/照片业务记录,fts 执行实际二进制上传 | 两者未自动组成完整上传链路 |
| 聚合入口 | `pkgs/all`、`pkgs/ecmall` 复用 `module/` 同一份代码,仅注册表与端口不同;两入口 `internal/server` 4 个文件逐字节相同 | 任一入口的修复需同步两份拷贝 |
## 五、运行拓扑
```mermaid
flowchart TD
C["客户端 / 后台"] --> GA["pkgs/all
gRPC 12000 / HTTP 12001"]
C --> GE["pkgs/ecmall
gRPC 12300 / HTTP 12301"]
C --> S1["module/*/cmd/main
独立服务进程"]
GA --> M1["module/base/* 10"]
GA --> M2["module/ec/* 4"]
GA --> M3["module/finance/wallet"]
GE --> M4["module/base/* 9
不含 cloud"]
GE --> M2
GE --> M3
M1 --> DB[("共享 MySQL")]
M2 --> DB
M3 --> DB
M1 --> R[("共享 Redis / etcd")]
S2["module/social/*
未接入聚合"] --> DB
```
`pkgs/all` 与 `pkgs/ecmall` 的 HTTP 入口依次承载:grpc-gateway → 动态 RPC `/rpc/{package}/{service}/{method}` → 原生 REST `/rest/{module}/...`。请求先进入 grpc-gateway,返回 404 时回退 Gin(此回退判定存在缺陷,见总体报告 S29)。
## 六、配置与运行入口
| 入口 | 配置 | 端口 | 备注 |
| --- | --- | --- | --- |
| `pkgs/all` | `etc/default_.yaml` | gRPC 12000 / HTTP 12001 | **仅有 dev 配置**,prod 模式启动即 `log.Fatalf` |
| `pkgs/ecmall` | `etc/default_.yaml` | gRPC 12300 / HTTP 12301 | 同上 |
| 各业务模块 | `etc/_.yaml` | 各自 `Port` | 部分模块(wallet、feed)yaml 字段名与 `SrvConfig` 不匹配,需修配置才能启动 |
服务启用由聚合 `Services` 列表或环境变量 `BSM_SERVICES` 控制(非空则覆盖;值为 `all` 时注册全部)。
## 七、文档地图
| 文档 | 位置 | 内容 |
| --- | --- | --- |
| 代码审计索引 | [`docs/README.md`](../docs/README.md) | 21 篇逐服务审计报告入口 |
| 总体审计报告 | [`audit-2026-09-22-总体审计报告.md`](audit-2026-09-22-总体审计报告.md) | 风险台账、共性根因、修复优先级 |
| 本文 | `产品与服务目录.md` | 服务域、清单、完成度、耦合、拓扑 |
| 系统架构 | [`architecture.md`](architecture.md) | 模块边界、聚合启动流程、依赖注入 |
| 开发与运维 | [`operations.md`](operations.md) | 配置、启动、验证、构建、发布、排障 |
| API 接入 | [`api/00-overview.md`](api/00-overview.md) | gRPC / 动态 RPC / gateway / 鉴权 |
| 历史审计 | [`audit-2026-08-10.md`](audit-2026-08-10.md) | 上一轮 workspace 层审计 |