# crm-api
**Repository Path**: nieps/crm-api
## Basic Information
- **Project Name**: crm-api
- **Description**: 寒假作业
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-09
- **Last Updated**: 2026-02-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# CRM
> 目标: 寒假作业
现状: 基本的增删改查 基础
## 架构
1. 单体单模块 (早先)
2. 单体多模块
## 模块
### 核心模块
封装系统运行的基础功能
1. 配置持久层
mybatis
2. 统一结果 ResultBean
3. 全局异常
> 1. 引入验证
4. 分页
> 核心参数:
>
> * 当前页
> * 每页记录数
> * 总记录数
> * 当前页的记录
### 客户模块
引用核心模块
## 接口文档
* swagger
* knife4j
> 两个版本:
>
> 1. swagger
> 2. springdoc
### 核心配置类
~~~java
@Configuration
@EnableKnife4j//开启增强功能
@OpenAPIDefinition(
info = @Info(title = "CRM系统接口文档", version = "1.0.0", description = "CRM系统接口文档,提供所有的CURD接口", contact = @Contact(name = "niu", url = "http://localhost:8080", email = "3519973006@qq.com")),
servers = {@Server(url = "http://localhost:8080", description = "接口服务地址")}
)
public class Knife4jConfig {
}
~~~
## 版本调整
springboot 3.0.4
### mybatis启动器
~~~xml
org.mybatis.spring.boot
mybatis-spring-boot-starter
${mybatis.version}
compile
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-jdbc
~~~
同时,在引用Mybatis启动器的地方,引入新版本的jdbc
~~~xml
org.mybatis.spring.boot
mybatis-spring-boot-starter
org.springframework.boot
spring-boot-starter-jdbc
~~~
### 分页插件
~~~xml
com.github.pagehelper
pagehelper-spring-boot-starter
2.1.1
compile
org.springframework.boot
spring-boot-starter
org.mybatis.spring.boot
mybatis-spring-boot-starter
org.springframework.boot
spring-boot-autoconfigure
~~~
### 引入接口文档依赖
~~~xml
com.github.xiaoymin
knife4j-openapi3-jakarta-spring-boot-starter
4.5.0
~~~
## 文档注解
* @Tag name属性指定类名
* @Operation 描述方法
* @Schema 定义JavaBean及属性描述
* @Parameters---@Parameter 单个或多个参数描述(非javabean形式传递)
扩展:
* @Hidden 用在类上,隐藏类, 同样可以用在方法 、字段上 实现隐藏功能
重要因素:
1. 请求地址
2. 请求方法 post get
3. 参数数据类型
4. 请求参数描述 (入参)
5. 响应参数描述
## JWT
目标:
1. 了解token hutools 工具包有生成和验证
2. 升级(双token实现)
## 表格设计
通常字段:
* 创建时间 create_time
* 创建人 create_user_id
* 更新时间 update_time
* 更新人 update_user_id
* isdel (可选)
## 接口功能
### 客户管理
注意: 添加人 (只记名称)----拥有人(建议使用编码 )
* 客户列表 多条件筛选 分页功能 返回可见字段 id (考虑公海列表 是否合二为一)
> 个人客户列表:
>
> * 所有客户 自己所有的客户
> * 我的客户 自己所有的客户
> * 下属客户
>
> 领导:
>
> * 所有客户 自己的客户、包含下属的客户
> * 我的客户 领导自己的的客户
> * 下属客户
>
> 公海:
>
> 没有拥有人的客户、账号 停用的人 的客户
* 新增客户 (分两部分: 1. 客户 2 联系人 要用事务)
* 修改客户
* 删除客户
* 导入 excel导入 需要模板
* 导出
* 批量删除 客户
* 转移客户 ( 增加日志表 记录客户拥有人变更记录) 变更拥有人
* 领取 ----销售人员领取 ----审核(领导)
* 移入公海 去掉拥有人 (记录客户拥有人变更记录)
* 客户详情 查询一对多其它信息,如联系人 、跟进记录》。。。。
### 联系人
* 联系人列表 条件 筛选 分页
* 新增
* 修改
* 删除
* 导入 注意要加上客户 方便关联
* 导出
## easy excel
> [实现百万级数据从Excel导入到数据库的方式](https://blog.csdn.net/weixin_43957967/article/details/137668378)
>
> 延伸,结合多线程 (有面试题)
之前:
* apahce poi
* jxl
### 导入
实现:
1. 需要准备一个excel 模板
2. 根据模板 添加数据
3. 将excel文件上传到服务器
4. 读取excel数据 ,插入数据库