07_开发计划.md 19 KB

药店诊所 SAAS 私域运营系统 —— 缺失功能分析与开发计划

版本: V1.0 | 日期: 2026-07-30 | 基于文档: 01~06 系统文档 + Java代码库全量扫描


一、租户多店铺功能深度分析

1.1 当前架构现状

数据隔离层:系统已实现完整的租户多店铺数据模型:

层级 隔离方式 实现状态
租户级隔离 X-Tenant-Code → 独立数据库,每租户一库 已完成
门店级隔离 业务表中 store_id 字段 + SQL查询过滤 已完成
商品-门店关联 fs_store_product 通过 store_id 归属门店 已完成
订单-门店关联 fs_store_order 通过 store_id 归属门店 已完成
库存-门店关联 fs_inventory_transferfrom_store_id/to_store_id 已完成
店员-门店绑定 fs_store_shop_staff_scrm 已完成

1.2 关键缺失:C端用户门店选择与切换

现状缺陷

  1. 无用户-门店绑定关系:C端用户(FsUser)没有 store_id 字段,没有 customer_store_binding 绑定表
  2. 无门店切换机制:小程序端没有门店选择器,用户无法主动选择/切换门店
  3. 门店上下文缺失AuthorizationInterceptor 仅解析 userId,没有解析当前 storeId
  4. 无默认门店匹配:没有基于LBS定位的最近门店自动匹配
  5. 多门店商品展示不完整StoreScrmControllerrecommendList 标注"多店铺推荐",但实现仅简单聚合

影响范围

  • 用户浏览商品时无法区分不同门店的商品库存和价格
  • 下单时无法指定自提门店
  • 到店自提/核销场景无法准确匹配门店
  • 会员权益无法按门店区分

1.3 改进方案

优先级 功能 方案
P0 用户-门店绑定 新建 fs_customer_store_binding 表,存储用户默认门店、历史门店
P0 X-Store-Id 请求头 AuthorizationInterceptor 中解析 X-Store-Id,写入 StoreContextHolder
P0 门店列表/切换API 新增 GET /app/store/list (附近门店)、POST /app/store/switch
P1 LBS定位匹配 基于用户经纬度计算最近门店,自动推荐
P1 门店商品库存查询 根据当前 storeId 过滤商品库存和价格
P2 门店级会员权益 会员等级/积分支持门店维度配置

二、缺失功能清单(按优先级排列)

P0 - 核心缺失(影响主要业务流程)

# 功能模块 缺失内容 对应文档 影响范围
1 C端多门店切换 用户门店绑定、门店选择器、门店上下文传递 03§五/八、02§3.4 fs-user-app全体Controller
2 总后台-供应商管理 供应商入驻审核、信息管理、状态管控的Controller 03§二(资源库管理) fs-admin/saas-admin
3 总后台-一键代发管理 代发订单管理、物流追踪Controller 03§二(资源库管理) fs-admin
4 总后台-资源授权管理 课程/直播/商品资源授权给租户的Controller 03§二(资源库管理) fs-admin
5 门店端-设备管理 设备日常开关机、检测数据查看、故障上报Controller 03§五 fs-store
6 总后台-数据大屏 平台级核心指标实时看板API 03§二(数据大屏) fs-admin
7 代理端-数据统计完善 下属租户分布、业绩排行、活跃统计的完整API 03§三 fs-agent

P1 - 重要缺失(影响功能完整性)

# 功能模块 缺失内容 对应文档 影响范围
8 多语言支持 英文资源包、语言切换API、前端语言选择器 03§一(多语言) 全模块
9 财务报表/对账 对账报表Controller、财务总账Controller 03§四(财务对账)、04§九 fs-admin/saas-admin
10 发票管理Controller 发票开具、查询、红冲的面向租户/用户API 03§四(财务对账) fs-saas-company
11 租户端-提现管理 租户提现申请、记录查看Controller 03§四(分销模式) fs-company-app
12 营销自动化-触发器 触发条件配置Controller (生日/复购周期/流失预警) 03§四(营销自动化) fs-saas-company
13 营销自动化-流程编排 自动化流程可视化编排的后端存储和API 03§四(营销自动化) fs-saas-company
14 门店端-考勤打卡 考勤打卡记录、统计Controller 03§五 fs-store
15 门店端-耗材管理 耗材入库、领用、统计Controller 03§五 fs-store
16 门店端-交接班记录 交接班创建、物品交接、班次统计Controller 03§五 fs-store
17 门店端-会员卡办理 到店办理会员卡、绑定微信Controller 03§五 fs-store

P2 - 增强缺失(提升系统完整性)

# 功能模块 缺失内容 对应文档 影响范围
18 总后台-设备厂商管理 设备厂商信息维护Controller 03§二(设备管理) fs-admin
19 总后台-设备授权 设备接入平台授权Controller 03§二(设备管理) fs-admin
20 代理端-消息通知 系统公告、租户注册通知、续费提醒 03§三 fs-agent
21 租户端-业绩管理 门店/员工/医生/药师业绩统计Controller 03§四(业绩管理) fs-saas-company
22 租户端-小程序支付配置 微信/支付宝支付参数配置Controller 03§四(小程序管理) fs-company-app
23 门店端-活动推广 活动推广、客户邀约、签到核销Controller 03§五 fs-store
24 电子处方流转 处方外流到第三方药店的接口 03§一(电子处方) fs-doctor-app
25 总后台-套餐分配 为租户分配套餐、续费管理的Controller 03§二(租户套餐) fs-admin

三、已实现功能确认清单

以下功能经代码扫描确认已实现,无需重复开发:

模块 已实现功能 代码位置
系统管理 用户/角色/菜单/部门/字典/配置/公告/岗位 全套CRUD fs-admin + fs-agent + fs-saas-admin
代理管理 代理CRUD、配额、余额、服务价格、模块用量、承租关系 fs-admin + fs-agent
租户管理 租户CRUD、升级、数据源配置、套餐绑定 fs-admin/admin/tenant/
SCRM 客户档案、标签、画像、分层、生命周期、转移/继承 fs-saas-company/crm/ (22个Controller)
企微集成 服务商模式、客户关联、离职继承、群管理、SOP(60+ Controller) fs-saas-company/qw/
AI知识库 条目CRUD、分类、提示词、敏感词、对话日志、自动标签 fs-saas-company/knowledge/ + workflow/
活动管理 直播(31 Controller)、课程(40+)、促销、优惠券 fs-saas-company/live/ + course/
商城系统 商品管理(50+ Controller)、订单、购物车、售后、支付 fs-saas-company/hisStore/
在线问诊 IM咨询、问诊订单、处方开具/审核/调剂(完整生命周期) fs-doctor-app + fs-pharmacist-app + fs-store
会员积分 积分商品CRUD、积分订单 fs-saas-company/hisStore/FsIntegralGoods等
预存款 充值、余额查询、消费记录 fs-store/StorePreDepositController
库存调拨 调拨单、调拨明细、状态机 fs-service/IFsInventoryTransferService
供应链(OMS) 供应商、采购单、仓库、订单 fs-service/oms/
供应链(新版) 采购订单、库存管理、库存盘点、库存调拨 fs-service/supplychain/ + fs-saas-admin/web/supplychain/
SaaS计费 计费方案、收费项、用量上报、账单生成、钱包、分账比例 fs-saas-admin/billing/ (7 Controller)
数据大屏 实时数据采集、WebSocket推送 fs-service/dashboard/
AI工作流 Lobster引擎(42 Controller)、AB测试、优化、自动标签 fs-saas-company/workflow/
医生端 问诊仪表盘、患者管理、处方、排班(16 Controller) fs-doctor-app
药师端 用药咨询、处方审核、排班(16 Controller) fs-pharmacist-app
门店端 客户接待、收银、预存款、业绩、交接班(44 Controller) fs-store
营销自动化 AutomationFlow引擎、Lobster AB测试 fs-service/marketing/ + fs-saas-company/workflow/
发票管理 诺诺SDK(开具/查询/红冲) fs-service/nuonuo/
广告投放 多渠道广告管理(13 Controller) fs-saas-company/newAdv/ + fs-admin/ad/
微信SOP 微信个人号SOP、用户管理 fs-saas-company/wx/
设备/穿戴 手表设备语言设置、设备设置 fs-service/watch/ + fs-watch
外部外呼 AI外呼任务、通话记录、TTS配置 fs-saas-company/aiSipCall/

四、开发计划

第一阶段:核心缺失补齐(P0,预计4-6周)

1.1 C端多门店切换机制

任务 模块 说明
创建 fs_customer_store_binding sql 字段: id, user_id, store_id, is_default, bind_time, create_time
创建实体类 FsCustomerStoreBinding fs-service 继承 BaseEntity
创建 Mapper + XML fs-service MyBatis-Plus + XML
新增 StoreContextHolder fs-framework ThreadLocal存储当前storeId
修改 AuthorizationInterceptor fs-user-app 解析 X-Store-Id 请求头写入StoreContextHolder
新增 GET /app/store/nearby fs-user-app 根据经纬度查询附近门店
新增 GET /app/store/list fs-user-app 租户下所有门店列表
新增 POST /app/store/switch fs-user-app 切换当前门店,写入绑定表
新增 GET /app/store/current fs-user-app 获取当前门店信息
修改商品/订单查询 fs-user-app 根据当前storeId过滤数据

1.2 总后台-供应商管理

任务 模块 说明
新增 SupplierController fs-admin 供应商入驻审核、CRUD、状态管理
新增 SupplierAuditController fs-admin 资质审核流程
前端页面 adminUI 供应商列表、详情、审核

1.3 总后台-一键代发管理

任务 模块 说明
新增 DropShippingController fs-admin 代发订单列表、状态跟踪、物流查询
新增物流追踪接口 fs-admin 对接物流API(快递鸟/菜鸟等)
前端页面 adminUI 代发订单管理、物流追踪

1.4 总后台-资源授权管理

任务 模块 说明
新增 ResourceAuthController fs-admin 课程/直播/商品资源授权给租户
实现授权期限管理 fs-admin 到期自动回收
前端页面 adminUI 资源授权弹窗/页面

1.5 门店端-设备管理

任务 模块 说明
新增 StoreDeviceController fs-store 设备开关机日志、检测数据查看、故障上报
新增设备日志实体 fs-service store_device_log 表
前端页面 storeUI 设备管理页面

1.6 总后台-数据大屏API

任务 模块 说明
新增 DashboardController fs-admin 平台级实时数据API
完善 DashboardServiceImpl fs-service 补充缺失指标统计
前端页面 adminUI 大屏可视化页面

1.7 代理端-数据统计完善

任务 模块 说明
完善 ProxyController fs-agent 补充租户分布图、业绩排行、活跃度统计
新增 ProxyStatisticsService fs-service 代理维度数据聚合
前端页面 agentUI 数据统计Dashboard

第二阶段:重要功能补齐(P1,预计4-6周)

2.1 多语言支持

任务 模块 说明
创建 messages_en_US.properties 全模块 英文翻译资源文件
创建 messages_zh_CN.properties 全模块 中文资源文件(从原messages拆分)
新增 LocaleChangeInterceptor fs-framework URL参数 ?lang=en 切换语言
新增 CookieLocaleResolver fs-framework Cookie持久化语言选择
新增 GET /app/common/languages fs-user-app 获取可用语言列表
新增 POST /app/common/language fs-user-app 切换语言

2.2 财务报表与对账

任务 模块 说明
新增 ReconciliationController fs-admin 对账报表查询(日/周/月)
新增 FinancialLedgerController fs-admin 财务总账查询
新增 FeeStatementController fs-admin 平台收入/支出报表
新增对账差异处理 fs-service 订单金额与支付金额核验
前端页面 adminUI 财务报表、对账管理

2.3 发票管理面向用户API

任务 模块 说明
新增 InvoiceController fs-saas-company 发票开具申请、查询、红冲
新增 InvoiceController fs-user-app C端用户开票申请
新增发票申请实体 fs-service invoice_apply 表
前端页面 companyUI + 小程序 发票管理

2.4 租户端-提现管理

任务 模块 说明
新增 WithdrawController fs-company-app 租户提交提现申请
新增 WithdrawController fs-saas-company 租户PC端提现管理
新增提现记录实体 fs-service 复用或扩展现有表
前端页面 companyUI 提现管理页面

2.5 营销自动化-触发器与流程编排

任务 模块 说明
新增 AutomationTriggerController fs-saas-company 触发器条件配置CRUD
新增 AutomationFlowController fs-saas-company 自动化流程编排CRUD
新增 AutomationLogController fs-saas-company 流程执行日志查询
完善触发条件枚举 fs-service 生日/复购周期/流失预警
前端页面 companyUI MA流程编排

2.6 门店端-运营管理补充

任务 模块 说明
完善 StoreAttendanceController fs-store 考勤打卡、统计
新增 StoreConsumableController fs-store 耗材入库/领用
完善 StoreShiftController fs-store 交接班物品清单、班次统计
新增 StoreMembershipController fs-store 到店办理会员卡
前端页面 storeUI 运营管理页面群

第三阶段:增强功能(P2,预计3-4周)

3.1 总后台补充功能

任务 模块 说明
新增 DeviceVendorController fs-admin 设备厂商信息维护
新增 DeviceAuthController fs-admin 设备接入平台授权
完善 TenantPackageController fs-admin 套餐分配、续费管理
前端页面 adminUI 设备厂商、套餐管理

3.2 代理端补充功能

任务 模块 说明
新增 ProxyNotificationController fs-agent 消息通知设置
新增系统公告推送 fs-agent 平台公告推送到代理
前端页面 agentUI 消息中心

3.3 租户端补充功能

任务 模块 说明
新增 PerformanceController fs-saas-company 门店/员工/医生/药师 业绩统计
新增 MiniProgramConfigController fs-company-app 小程序支付配置
前端页面 companyUI 业绩Dashboard、支付配置

3.4 门店端补充功能

任务 模块 说明
新增 StorePromotionController fs-store 活动推广、客户邀约、签到核销
前端页面 storeUI 活动管理页面

3.5 电子处方流转

任务 模块 说明
新增 PrescriptionTransferController fs-doctor-app 处方外流到第三方药店
新增处方流转记录 fs-service prescription_transfer 表

五、技术实施要点

5.1 多门店切换核心代码结构

fs-framework/
  +-- context/
  |   +-- StoreContextHolder.java        # ThreadLocal存储当前storeId
  +-- interceptor/
      +-- StoreSwitchInterceptor.java    # 解析X-Store-Id,写入StoreContextHolder

fs-service/
  +-- com.fs.hisStore/
      +-- domain/
      |   +-- FsCustomerStoreBinding.java  # 用户-门店绑定实体
      +-- mapper/
      |   +-- FsCustomerStoreBindingMapper.java
      +-- service/
          +-- IFsCustomerStoreBindingService.java

fs-user-app/
  +-- controller/store/
      +-- StoreSwitchController.java     # 门店选择/切换/当前门店API

5.2 数据隔离加强

-- 用户门店绑定表
CREATE TABLE `fs_customer_store_binding` (
    `id`          BIGINT NOT NULL AUTO_INCREMENT,
    `user_id`     BIGINT NOT NULL COMMENT 'C端用户ID',
    `store_id`    BIGINT NOT NULL COMMENT '门店ID',
    `is_default`  TINYINT DEFAULT 0 COMMENT '是否默认门店',
    `bind_time`   DATETIME COMMENT '绑定时间',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_user_store` (`user_id`, `store_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

5.3 请求链路改造

原链路:
  APPToken → AuthorizationInterceptor → userId
  X-Tenant-Code → AppTenantSwitchFilter → tenant DB

改造后:
  APPToken → AuthorizationInterceptor → userId
  X-Store-Id → StoreSwitchInterceptor → storeId (StoreContextHolder)
  X-Tenant-Code → AppTenantSwitchFilter → tenant DB

5.4 多语言实现方案

fs-framework/
  +-- config/
  |   +-- I18nConfig.java              # LocaleResolver + LocaleChangeInterceptor Bean
  +-- interceptor/
      +-- LocaleChangeInterceptor.java  # 拦截 ?lang= 参数

fs-user-app/
  +-- controller/
      +-- LanguageController.java       # 语言列表、切换API

六、风险与依赖

风险 影响 缓解措施
多门店切换涉及大量Controller改造 影响范围广、回归测试工作量大 分模块逐步改造,先核心商品/订单模块
多语言翻译工作量巨大 需要专业翻译资源 先实现框架,翻译分批提交
物流追踪依赖第三方API 物流接口不稳定 增加物流查询缓存和降级
私有依赖(jar包)可能缺少新功能支持 编译/运行问题 提前验证依赖版本兼容性
门店端前端页面缺失 前后端需要协同开发 与前端团队对齐排期

七、附录:模块对照表

文档中的模块名(ylrz-*) 代码中的模块名(fs-*) 说明
ylrz-common fs-common 通用工具类
ylrz-framework fs-framework 框架核心
ylrz-service fs-service 业务服务层
ylrz-admin fs-admin + fs-saas-admin 总后台(两个模块,fs-saas-admin功能更全)
ylrz-company (无独立) 租户PC端功能在fs-saas-company
ylrz-company-app fs-company-app 租户移动端
ylrz-user-app fs-user-app C端用户
ylrz-doctor-app fs-doctor-app 医生端
ylrz-pharmacist-app fs-pharmacist-app 药师端
ylrz-store-app fs-store 门店端
ylrz-agent fs-agent 代理端
ylrz-redis fs-redis Redis模块
ylrz-quartz fs-task 定时任务
ylrz-generator fs-generator 代码生成器