# 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数据 ,插入数据库