1811872455@163.com 1 månad sedan
förälder
incheckning
a9e0d96b70

+ 25 - 0
java/storlead-crm/pom.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-smarttrade-platform</artifactId>
+        <version>1.0</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-crm</artifactId>
+    <packaging>pom</packaging>
+    <name>storlead-crm</name>
+    <description>客户经营域聚合模块;具体业务在下方子模块中实现。</description>
+
+    <modules>
+        <module>storlead-customer</module>
+        <module>storlead-order</module>
+        <module>storlead-email</module>
+        <module>storlead-marketing</module>
+        <module>storlead-acquisition</module>
+    </modules>
+</project>

+ 91 - 0
java/storlead-crm/storlead-acquisition/README.md

@@ -0,0 +1,91 @@
+# 获客(storlead-acquisition)功能需求文档
+
+对应目录:`storlead-acquisition` · Maven `artifactId`:`storlead-acquisition` · Java 包根:`com.storlead.crm.acquisition`
+
+## 1. 模块目标
+
+本模块核心能力不是渠道投放,而是将业务侧定义的策略和基础画像传给 Python 服务,由 Python 服务执行客户匹配与检索,再将候选客户返回 CRM,供后续入池和跟进。
+
+## 2. 业务场景
+
+1. 运营或销售负责人在 CRM 中配置获客策略(行业、规模、地域、行为标签、预算偏好等)。
+2. 系统将策略与基础画像组装为标准请求,调用 Python 智能匹配服务。
+3. Python 服务返回候选客户列表及匹配分、标签、推荐理由。
+4. CRM 侧落库匹配结果,支持人工筛选、批量入客户池、建立跟进任务。
+
+## 3. 功能范围
+
+### 3.1 策略管理
+
+- 新建/编辑/启停策略。
+- 支持策略版本管理(每次变更形成版本快照)。
+- 支持策略试跑(不入正式结果,仅返回预览)。
+
+### 3.2 业务画像管理
+
+- 维护基础画像模板(行业、企业规模、岗位、地区、关键词、负向关键词等)。
+- 支持画像参数与策略参数合并规则(策略优先、模板兜底)。
+- 支持画像校验(必填项、取值范围、枚举合法性)。
+
+### 3.3 Python 服务对接
+
+- 提供统一调用网关(HTTP/HTTPS)。
+- 支持同步调用(小批量)与异步任务调用(大批量)。
+- 记录请求体、响应体摘要、耗时、状态码、错误码、重试次数。
+- 支持超时控制、重试策略、熔断与降级(避免阻塞主业务)。
+
+### 3.4 匹配结果管理
+
+- 存储候选客户基础信息、匹配得分、命中标签、推荐理由、来源策略版本。
+- 去重与合并(同一客户跨任务命中时保留最新和最高分)。
+- 支持结果筛选(分值区间、标签、区域、时间)与导出。
+- 支持批量转入 `storlead-customer` 模块。
+
+### 3.5 任务与流程
+
+- 支持手动触发与定时触发(如每天 09:00)。
+- 任务状态:待执行、执行中、成功、部分成功、失败、已取消。
+- 失败任务支持重跑,并保留历史执行记录。
+
+### 3.6 权限与多租户
+
+- 按租户隔离策略、画像、任务、匹配结果。
+- 仅授权角色可创建/修改策略与触发任务。
+- 跨租户数据访问严格禁止。
+
+## 4. 外部接口需求(CRM -> Python)
+
+建议统一定义请求对象:
+
+- `tenantId`:租户标识
+- `strategyId` / `strategyVersion`
+- `portrait`:业务画像参数
+- `limit`:期望返回条数
+- `traceId`:链路追踪 ID
+
+Python 返回建议包含:
+
+- `taskId`(同步可选)
+- `candidates`:候选客户集合
+- `score`:匹配分
+- `tags`:命中标签
+- `reason`:推荐理由
+- `status` / `errorCode` / `errorMessage`
+
+## 5. 数据与审计需求
+
+- 所有策略变更要留痕(谁在何时改了什么)。
+- 任务执行要可追踪(入参快照、响应摘要、执行日志)。
+- 对外返回敏感信息需脱敏或按权限控制展示。
+
+## 6. 非功能需求
+
+- 性能:单次同步请求建议 3-5 秒内返回;异步任务支持分页回传。
+- 可用性:Python 服务不可用时,不影响 CRM 其他模块运行。
+- 可观测性:提供任务成功率、平均耗时、失败原因分布监控。
+
+## 7. 与其他模块边界
+
+- 本模块负责“策略/画像编排 + Python 匹配调用 + 结果回收”。
+- 客户入池后的分配与跟进由 `storlead-customer` 负责。
+- 订单、邮件、营销执行分别由 `storlead-order`、`storlead-email`、`storlead-marketing` 负责。

+ 24 - 0
java/storlead-crm/storlead-acquisition/pom.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-crm</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-acquisition</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name>
+    <description>获客</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-web</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 4 - 0
java/storlead-crm/storlead-acquisition/src/main/java/com/storlead/crm/acquisition/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 获客。
+ */
+package com.storlead.crm.acquisition;

+ 28 - 0
java/storlead-crm/storlead-customer/README.md

@@ -0,0 +1,28 @@
+# 客户(storlead-customer)
+
+对应目录:`storlead-customer` · Maven `artifactId`:`storlead-customer` · Java 包根:`com.storlead.crm.customerpool`
+
+## 模块定位
+
+集中管理「可跟进的客户线索与联系人」资源,为销售、运营与营销提供统一的客户资产视图与分配能力。
+
+## 建议实现的业务功能
+
+1. **资源入库与归集**  
+   支持从获客、导入、外部系统同步等渠道写入客户/线索;去重、合并、标签与来源标记。
+
+2. **资源池分层与视图**  
+   公海池、部门池、个人库等分层;列表筛选、排序、批量操作;与租户/组织权限一致。
+
+3. **分配与流转**  
+   领取、分配、退回、转移;记录操作人与时间,满足审计与协作。
+
+4. **客户侧摘要入口(可选)**  
+   展示与该客户关联的订单、邮件、营销触达等摘要链接(明细由 `storlead-order`、`storlead-email`、`storlead-marketing` 等子模块提供)。
+
+5. **多租户**  
+   数据按租户隔离;接口与查询落在当前租户上下文。
+
+## 非本模块职责
+
+订单履约、邮件投递与记录详情、营销活动执行明细、获客渠道与表单配置等,分别由 `storlead-order`、`storlead-email`、`storlead-marketing`、`storlead-acquisition` 等子模块负责。

+ 24 - 0
java/storlead-crm/storlead-customer/pom.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-crm</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-customer</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name>
+    <description>客户资源池</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-web</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 4 - 0
java/storlead-crm/storlead-customer/src/main/java/com/storlead/crm/customer/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 客户资源池。
+ */
+package com.storlead.crm.customerpool;

+ 28 - 0
java/storlead-crm/storlead-email/README.md

@@ -0,0 +1,28 @@
+# 邮件(storlead-email)
+
+对应目录:`storlead-email` · Maven `artifactId`:`storlead-email` · Java 包根:`com.storlead.crm.email`
+
+## 模块定位
+
+记录与查询「对客户/线索的邮件触达」事实数据,支撑沟通历史、合规留痕与效果复盘。
+
+## 建议实现的业务功能
+
+1. **发送记录**  
+   收件人、抄送、主题、发送时间、发送结果(成功/失败/退信)、关联客户或线索 ID。
+
+2. **内容与模板关联(按合规设计)**  
+   可仅存摘要或模板 ID + 变量快照;若需全文,按公司合规策略存储与脱敏。
+
+3. **接收与线程(可选)**  
+   若对接邮箱同步:入站邮件、会话线程 ID,便于在系统内查看往来记录。
+
+4. **检索与统计**  
+   按客户、时间、主题、结果筛选;发送量、失败率等基础统计。
+
+5. **多租户**  
+   记录按租户隔离。
+
+## 非本模块职责
+
+SMTP/API 底层投递一般由基础设施或独立消息服务承担;本模块以业务侧记录与查询为主。客户公海、订单、营销活动编排见 `storlead-customer`、`storlead-order`、`storlead-marketing` 等模块。

+ 24 - 0
java/storlead-crm/storlead-email/pom.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-crm</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-email</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name>
+    <description>邮件记录</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-web</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 4 - 0
java/storlead-crm/storlead-email/src/main/java/com/storlead/crm/email/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 邮件记录。
+ */
+package com.storlead.crm.email;

+ 145 - 0
java/storlead-crm/storlead-marketing/README.md

@@ -0,0 +1,145 @@
+# 营销(storlead-marketing)功能需求与设计说明
+
+对应目录:`storlead-marketing` · Maven `artifactId`:`storlead-marketing` · Java 包根:`com.storlead.crm.marketing`
+
+## 1. 模块目标
+
+基于“创建营销活动”四步向导,为销售团队提供可执行、可追踪、可自动化的邮件营销能力。当前版本聚焦邮件渠道,不包含 WhatsApp、LinkedIn、微信企业号等多渠道触达。
+
+## 2. 核心业务流程(四步向导)
+
+1. **基本信息**:定义活动名称、类型、优先级、周期、负责人、活动描述和活动目标。
+2. **目标客户**:基于客户分群和筛选条件圈定触达对象,形成目标客户包。
+3. **触达渠道**:配置邮件触达参数(发件账号、发送策略、模板、主题、正文)。
+4. **自动化规则**:配置 SOP 序列和跟进规则,保存并执行活动。
+
+## 2.1 智能寻客任务展示约束(新增)
+
+- 营销侧“智能寻客任务”展示区的数据来源,必须是用户在“创建智能寻客任务”流程中实际创建并保存成功的任务数据。
+- 展示层禁止使用硬编码、Mock 假数据或与任务主记录无关联的缓存拼装数据。
+- 任务列表最少展示:任务名称、创建人、创建时间、当前状态、目标客户规模、最近执行时间。
+- 任务详情需要可回溯到创建时配置:策略条件、画像参数、筛选条件、渠道选择与自动化规则版本。
+- 当创建任务被修改或重跑后,展示页需实时反映最新任务版本,并保留历史执行记录入口。
+
+## 3. 详细功能需求
+
+### 3.1 基本信息页
+
+#### 功能项
+
+- 活动基础字段维护:活动名称、活动类型、优先级、开始日期、结束日期、负责人、活动描述。
+- 活动目标输入:支持录入本次活动目标值(如触达量、打开量、回复量等)。
+- AI 辅助:支持“一键生成活动名称”“智能生成活动描述和策略”。
+
+#### 设计要求
+
+- 页面校验:活动名称、负责人、开始/结束日期为必填。
+- 日期校验:结束日期不能早于开始日期。
+- 目标值校验:仅允许非负整数。
+- 当前版本去除“关联商机”和“商机数”目标字段。
+
+### 3.2 目标客户页
+
+#### 功能项
+
+- 预设客户包:全部潜客、本周新增、高意向客户、沉默客户。
+- AI 智能推荐客户包(系统可按活动类型推荐优先人群)。
+- 高级筛选:地区、行业、意向分数、客户规模、关键词搜索。
+- 结果展示:展示已选择客户数、来源分布,并支持“预览客户”。
+
+#### 设计要求
+
+- “已选择客户”数量需实时更新,并作为下一步可执行前置条件。
+- 支持“清除筛选”和回退上一步后保留筛选条件。
+- 当前版本去除“客户阶段”“采购意向”两个筛选维度。
+
+### 3.3 触达渠道页(当前仅邮件)
+
+#### 功能项
+
+- 渠道选择:只启用“邮件营销”。
+- 邮件发送设置:发件邮箱、发送时间(含 AI 推荐时段)、单批发送量。
+- 内容设置:邮件模板、邮件主题、邮件正文、AI 生成正文。
+- 追踪设置:邮件打开追踪。
+
+#### 设计要求
+
+- 仅允许单渠道邮件,不展示或不启用 WhatsApp、LinkedIn、微信企业号。
+- 邮件主题必填,正文必填(或由 AI 生成后自动填充)。
+- 发件邮箱必须是已验证账号。
+- 当前版本不启用“追踪链接点击”“追踪客户回复”勾选项。
+- 当前版本不展示“渠道效果预测”卡片(预计打开率/回复率/转化率)。
+
+### 3.4 自动化规则页
+
+#### 功能项
+
+- SOP 序列模板:标准开发序列、快速跟进序列、培育序列、唤醒序列。
+- 序列步骤展示:按顺序显示动作(邮件、电话等),支持重定义步骤文案。
+- 跟进规则开关:  
+  - 未打开邮件自动跟进(可配置等待天数)  
+  - 未点击链接跟进(可配置等待天数)  
+  - 客户回复后停止自动化
+
+#### 设计要求
+
+- 规则粒度为“活动级”,生效范围是本活动所有目标客户。
+- 等待天数支持可配置下拉值(如 1/3/5/7 天)。
+- 规则冲突时优先级:停止类规则 > 跟进类规则。
+- 当前版本去除“未回复自动跟进(依赖 WhatsApp/LinkedIn)”与“客户预约后停止自动化”。
+
+## 4. 活动状态与执行设计
+
+### 状态定义
+
+- 草稿:向导未完成或仅保存未提交。
+- 待执行:已配置完成,等待到达发送时间。
+- 执行中:发送任务或自动化规则正在运行。
+- 已完成:活动执行完毕且无后续动作。
+- 已暂停:人工暂停,不再触发自动动作。
+
+### 状态流转
+
+- 草稿 -> 待执行 -> 执行中 -> 已完成
+- 执行中 -> 已暂停(人工操作)
+- 已暂停 -> 执行中(恢复)
+
+## 5. 数据展示与运营支持
+
+- 活动列表需支持按状态、负责人、日期范围筛选。
+- 活动详情需展示:
+  - 目标客户规模
+  - 实际触达数
+  - 邮件打开表现
+  - 自动化规则命中次数
+- 支持活动复用:以历史活动为模板创建新活动。
+
+## 6. 权限与边界
+
+### 权限
+
+- 活动创建/编辑:营销负责人及授权角色。
+- 活动审批/发布(如有):管理角色。
+- 查看权限:按租户和团队范围隔离。
+
+### 模块边界
+
+- 本模块负责活动编排、目标客户圈选、邮件触达配置、自动化规则执行编排。
+- 邮件底层投递能力由 `storlead-email` 或基础消息能力承接。
+- 客户主数据维护由 `storlead-customer` 承接。
+
+## 7. 本期范围说明(与页面标注一致)
+
+本期保留:
+
+- 邮件营销单渠道
+- 客户分群与高级筛选(不含客户阶段/采购意向)
+- SOP 模板与基础自动化规则
+
+本期不做:
+
+- WhatsApp、LinkedIn、微信企业号渠道
+- 关联商机与商机目标字段
+- 链接点击与客户回复追踪
+- 触达效果预测卡片
+- 依赖外部 IM 渠道的自动跟进规则

+ 24 - 0
java/storlead-crm/storlead-marketing/pom.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-crm</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-marketing</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name>
+    <description>营销记录</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-web</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 4 - 0
java/storlead-crm/storlead-marketing/src/main/java/com/storlead/crm/marketing/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 营销记录。
+ */
+package com.storlead.crm.marketing;

+ 28 - 0
java/storlead-crm/storlead-order/README.md

@@ -0,0 +1,28 @@
+# 订单(storlead-order)
+
+对应目录:`storlead-order` · Maven `artifactId`:`storlead-order` · Java 包根:`com.storlead.crm.order`
+
+## 模块定位
+
+管理与客户/商机相关的交易订单全生命周期,为营收统计、履约与客户价值分析提供数据基础。
+
+## 建议实现的业务功能
+
+1. **订单主数据**  
+   订单编号、客户关联、商品/服务行、金额、币种、状态(待支付、已支付、履约中、完成、关闭等)。
+
+2. **状态与流转**  
+   创建、改价、取消、退款申请与结果;状态机或明确规则,保证可追溯。
+
+3. **与客户/营销的关联**  
+   订单关联 `storlead-customer` 中的主体;可选记录营销活动或优惠券来源,便于归因。
+
+4. **查询与导出**  
+   多条件列表、详情、运营或财务维度导出(权限控制下)。
+
+5. **多租户**  
+   订单数据按租户隔离;金额与敏感字段访问受角色控制。
+
+## 非本模块职责
+
+客户公海分配、邮件单封记录、营销批次执行明细、获客渠道与表单等,由 `storlead-customer`、`storlead-email`、`storlead-marketing`、`storlead-acquisition` 等子模块实现。

+ 24 - 0
java/storlead-crm/storlead-order/pom.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-crm</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-order</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name>
+    <description>订单</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-web</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 4 - 0
java/storlead-crm/storlead-order/src/main/java/com/storlead/crm/order/package-info.java

@@ -0,0 +1,4 @@
+/**
+ * 订单。
+ */
+package com.storlead.crm.order;

+ 27 - 0
pom.xml

@@ -20,6 +20,7 @@
         <module>java/storlead-framework</module>
         <module>java/storlead-api</module>
         <module>java/storlead-account</module>
+        <module>java/storlead-crm</module>
     </modules>
 
     <properties>
@@ -146,6 +147,32 @@
             <version>1.0</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-customer</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-order</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-email</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-marketing</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-acquisition</artifactId>
+            <version>1.0</version>
+        </dependency>
+
         <dependency>
             <groupId>com.storlead.boot</groupId>
             <artifactId>storlead-mybatis</artifactId>