Commit 7e312aae027efd02b2e83d8429c13ac2a159520b

Authored by YunaiV
1 parent 82fd800a

初始化 crm 模块

Showing 44 changed files with 313 additions and 1 deletions
@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
21 <!-- <module>yudao-module-mp</module>--> 21 <!-- <module>yudao-module-mp</module>-->
22 <!-- <module>yudao-module-pay</module>--> 22 <!-- <module>yudao-module-pay</module>-->
23 <!-- <module>yudao-module-mall</module>--> 23 <!-- <module>yudao-module-mall</module>-->
  24 + <module>yudao-module-crm</module>
24 <!-- 示例项目 --> 25 <!-- 示例项目 -->
25 <module>yudao-example</module> 26 <module>yudao-example</module>
26 </modules> 27 </modules>
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/enums/ServiceErrorCodeRange.java
@@ -35,9 +35,12 @@ public class ServiceErrorCodeRange { @@ -35,9 +35,12 @@ public class ServiceErrorCodeRange {
35 // 模块 member 错误码区间 [1-004-000-000 ~ 1-005-000-000) 35 // 模块 member 错误码区间 [1-004-000-000 ~ 1-005-000-000)
36 // 模块 mp 错误码区间 [1-006-000-000 ~ 1-007-000-000) 36 // 模块 mp 错误码区间 [1-006-000-000 ~ 1-007-000-000)
37 // 模块 pay 错误码区间 [1-007-000-000 ~ 1-008-000-000) 37 // 模块 pay 错误码区间 [1-007-000-000 ~ 1-008-000-000)
38 - // 模块 product 错误码区间 [1-008-000-000 ~ 1-009-000-000)  
39 // 模块 bpm 错误码区间 [1-009-000-000 ~ 1-010-000-000) 38 // 模块 bpm 错误码区间 [1-009-000-000 ~ 1-010-000-000)
  39 +
  40 + // 模块 product 错误码区间 [1-008-000-000 ~ 1-009-000-000)
40 // 模块 trade 错误码区间 [1-011-000-000 ~ 1-012-000-000) 41 // 模块 trade 错误码区间 [1-011-000-000 ~ 1-012-000-000)
41 // 模块 promotion 错误码区间 [1-013-000-000 ~ 1-014-000-000) 42 // 模块 promotion 错误码区间 [1-013-000-000 ~ 1-014-000-000)
42 43
  44 + // 模块 crm 错误码区间 [1-020-000-000 ~ 1-021-000-000)
  45 +
43 } 46 }
yudao-module-crm/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>cn.iocoder.boot</groupId>
  7 + <artifactId>yudao</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modules>
  11 + <module>yudao-module-crm-api</module>
  12 + <module>yudao-module-crm-biz</module>
  13 + </modules>
  14 + <modelVersion>4.0.0</modelVersion>
  15 + <artifactId>yudao-module-crm</artifactId>
  16 + <packaging>pom</packaging>
  17 +
  18 + <name>${project.artifactId}</name>
  19 +
  20 + <description>
  21 + crm 包下,客户关系管理(Customer Relationship Management)。
  22 + 例如说:客户、联系人、商机、合同、回款等等
  23 + </description>
  24 +
  25 +</project>
yudao-module-crm/yudao-module-crm-api/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>cn.iocoder.boot</groupId>
  7 + <artifactId>yudao-module-crm</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-crm-api</artifactId>
  12 + <packaging>jar</packaging>
  13 +
  14 + <name>${project.artifactId}</name>
  15 + <description>
  16 + crm 模块 API,暴露给其它模块调用
  17 + </description>
  18 +
  19 + <dependencies>
  20 + <dependency>
  21 + <groupId>cn.iocoder.boot</groupId>
  22 + <artifactId>yudao-common</artifactId>
  23 + </dependency>
  24 +
  25 + <!-- 参数校验 -->
  26 + <dependency>
  27 + <groupId>org.springframework.boot</groupId>
  28 + <artifactId>spring-boot-starter-validation</artifactId>
  29 + <optional>true</optional>
  30 + </dependency>
  31 + </dependencies>
  32 +
  33 +</project>
yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/api/package-info.java 0 → 100644
  1 +/**
  2 + * crm API 包,定义暴露给其它模块的 API
  3 + */
  4 +package cn.iocoder.yudao.module.crm.api;
yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java 0 → 100644
  1 +package cn.iocoder.yudao.module.crm.enums;
  2 +
  3 +/**
  4 + * CRM 错误码枚举类
  5 + * <p>
  6 + * crm 系统,使用 1-020-000-000 段
  7 + */
  8 +public interface ErrorCodeConstants {
  9 +
  10 +
  11 +
  12 +}
yudao-module-crm/yudao-module-crm-biz/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>cn.iocoder.boot</groupId>
  7 + <artifactId>yudao-module-crm</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-crm-biz</artifactId>
  12 +
  13 + <name>${project.artifactId}</name>
  14 + <description>
  15 + crm 包下,客户关系管理(Customer Relationship Management)。
  16 + 例如说:客户、联系人、商机、合同、回款等等
  17 + </description>
  18 +
  19 + <dependencies>
  20 + <dependency>
  21 + <groupId>cn.iocoder.boot</groupId>
  22 + <artifactId>yudao-module-system-api</artifactId>
  23 + <version>${revision}</version>
  24 + </dependency>
  25 +
  26 + <!-- 业务组件 -->
  27 + <dependency>
  28 + <groupId>cn.iocoder.boot</groupId>
  29 + <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
  30 + </dependency>
  31 +
  32 + <!-- Web 相关 -->
  33 + <dependency>
  34 + <groupId>cn.iocoder.boot</groupId>
  35 + <artifactId>yudao-spring-boot-starter-web</artifactId>
  36 + </dependency>
  37 +
  38 + <dependency>
  39 + <groupId>cn.iocoder.boot</groupId>
  40 + <artifactId>yudao-spring-boot-starter-security</artifactId>
  41 + </dependency>
  42 +
  43 + <!-- DB 相关 -->
  44 + <dependency>
  45 + <groupId>cn.iocoder.boot</groupId>
  46 + <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
  47 + </dependency>
  48 +
  49 + <!-- Test 测试相关 -->
  50 + <dependency>
  51 + <groupId>cn.iocoder.boot</groupId>
  52 + <artifactId>yudao-spring-boot-starter-test</artifactId>
  53 + </dependency>
  54 + </dependencies>
  55 +</project>
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/api/package-info.java 0 → 100644
  1 +/**
  2 + * crm API 实现类,定义暴露给其它模块的 API
  3 + */
  4 +package cn.iocoder.yudao.module.crm.api;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/business/package-info.java 0 → 100644
  1 +/**
  2 + * 商机(销售机会)
  3 + */
  4 +package cn.iocoder.yudao.module.crm.controller.admin.business;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/clue/package-info.java 0 → 100644
  1 +/**
  2 + * 线索
  3 + */
  4 +package cn.iocoder.yudao.module.crm.controller.admin.clue;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contact/package-info.java 0 → 100644
  1 +/**
  2 + * 联系人
  3 + */
  4 +package cn.iocoder.yudao.module.crm.controller.admin.contact;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/package-info.java 0 → 100644
  1 +/**
  2 + * 合同
  3 + */
  4 +package cn.iocoder.yudao.module.crm.controller.admin.contract;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.http 0 → 100644
  1 +### 请求 /crm/customer/test 接口 => 成功
  2 +GET {{baseUrl}}/crm/customer/test
  3 +tenant-id: 1
  4 +Authorization: Bearer {{token}}
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.crm.controller.admin.customer;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import io.swagger.v3.oas.annotations.tags.Tag;
  5 +import org.springframework.validation.annotation.Validated;
  6 +import org.springframework.web.bind.annotation.GetMapping;
  7 +import org.springframework.web.bind.annotation.RequestMapping;
  8 +import org.springframework.web.bind.annotation.RestController;
  9 +
  10 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  11 +
  12 +@Tag(name = "管理后台 - 客户信息")
  13 +@RestController
  14 +@RequestMapping("/crm/customer")
  15 +@Validated
  16 +public class CrmCustomerController {
  17 +
  18 + @GetMapping("/test")
  19 + public CommonResult<String> test() {
  20 + return success("hello");
  21 + }
  22 +
  23 +}
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/product/package-info.java 0 → 100644
  1 +/**
  2 + * 产品表
  3 + */
  4 +package cn.iocoder.yudao.module.crm.controller.admin.product;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/package-info.java 0 → 100644
  1 +/**
  2 + * 回款
  3 + */
  4 +package cn.iocoder.yudao.module.crm.controller.admin.receivable;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/app/package-info.java 0 → 100644
  1 +/**
  2 + * 占位
  3 + */
  4 +package cn.iocoder.yudao.module.crm.controller.app;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/package-info.java 0 → 100644
  1 +/**
  2 + * 提供 RESTful API 给前端:
  3 + * 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目
  4 + * 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分
  5 + */
  6 +package cn.iocoder.yudao.module.crm.controller;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/convert/package-info.java 0 → 100644
  1 +/**
  2 + * 提供 POJO 类的实体转换
  3 + *
  4 + * 目前使用 MapStruct 框架
  5 + */
  6 +package cn.iocoder.yudao.module.crm.convert;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md 0 → 100644
  1 +<http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao>
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/business/package-info.java 0 → 100644
  1 +/**
  2 + * 商机(销售机会)
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.dataobject.business;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/clue/package-info.java 0 → 100644
  1 +/**
  2 + * 线索
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.dataobject.clue;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contact/package-info.java 0 → 100644
  1 +/**
  2 + * 联系人
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.dataobject.contact;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contract/package-info.java 0 → 100644
  1 +/**
  2 + * 合同
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.dataobject.contract;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/customer/package-info.java 0 → 100644
  1 +/**
  2 + * 客户
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.dataobject.customer;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/product/package-info.java 0 → 100644
  1 +/**
  2 + * 产品表
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.dataobject.product;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/package-info.java 0 → 100644
  1 +/**
  2 + * 回款
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.dataobject.receivable;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/business/package-info.java 0 → 100644
  1 +/**
  2 + * 商机(销售机会)
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.mysql.business;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/clue/package-info.java 0 → 100644
  1 +/**
  2 + * 线索
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.mysql.clue;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/contact/package-info.java 0 → 100644
  1 +/**
  2 + * 联系人
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.mysql.contact;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/contract/package-info.java 0 → 100644
  1 +/**
  2 + * 合同
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.mysql.contract;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/package-info.java 0 → 100644
  1 +/**
  2 + * 客户
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.mysql.customer;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/product/package-info.java 0 → 100644
  1 +/**
  2 + * 产品表
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.mysql.product;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/package-info.java 0 → 100644
  1 +/**
  2 + * 回款
  3 + */
  4 +package cn.iocoder.yudao.module.crm.dal.mysql.receivable;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/package-info.java 0 → 100644
  1 +/**
  2 + * 属于 crm 模块的 framework 封装
  3 + *
  4 + * @author 芋道源码
  5 + */
  6 +package cn.iocoder.yudao.module.crm.framework;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/package-info.java 0 → 100644
  1 +/**
  2 + * crm 包下,客户关系管理(Customer Relationship Management)。
  3 + * 例如说:客户、联系人、商机、合同、回款等等
  4 + *
  5 + * 1. Controller URL:以 /crm/ 开头,避免和其它 Module 冲突
  6 + * 2. DataObject 表名:以 crm_ 开头,方便在数据库中区分
  7 + *
  8 + * 注意,由于 Crm 模块下,容易和其它模块重名,所以类名都加载 Crm 的前缀~
  9 + */
  10 +package cn.iocoder.yudao.module.crm;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/business/package-info.java 0 → 100644
  1 +/**
  2 + * 商机(销售机会)
  3 + */
  4 +package cn.iocoder.yudao.module.crm.service.business;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/package-info.java 0 → 100644
  1 +/**
  2 + * 线索
  3 + */
  4 +package cn.iocoder.yudao.module.crm.service.clue;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contact/package-info.java 0 → 100644
  1 +/**
  2 + * 联系人
  3 + */
  4 +package cn.iocoder.yudao.module.crm.service.contact;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/package-info.java 0 → 100644
  1 +/**
  2 + * 合同
  3 + */
  4 +package cn.iocoder.yudao.module.crm.service.contract;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/package-info.java 0 → 100644
  1 +/**
  2 + * 客户
  3 + */
  4 +package cn.iocoder.yudao.module.crm.service.customer;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/product/package-info.java 0 → 100644
  1 +/**
  2 + * 产品表
  3 + */
  4 +package cn.iocoder.yudao.module.crm.service.product;
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/package-info.java 0 → 100644
  1 +/**
  2 + * 回款
  3 + */
  4 +package cn.iocoder.yudao.module.crm.service.receivable;
yudao-server/pom.xml
@@ -91,6 +91,13 @@ @@ -91,6 +91,13 @@
91 <!-- <version>${revision}</version>--> 91 <!-- <version>${revision}</version>-->
92 <!-- </dependency>--> 92 <!-- </dependency>-->
93 93
  94 + <!-- CRM 相关模块。默认注释,保证编译速度 -->
  95 + <dependency>
  96 + <groupId>cn.iocoder.boot</groupId>
  97 + <artifactId>yudao-module-crm-biz</artifactId>
  98 + <version>${revision}</version>
  99 + </dependency>
  100 +
94 <!-- spring boot 配置所需依赖 --> 101 <!-- spring boot 配置所需依赖 -->
95 <dependency> 102 <dependency>
96 <groupId>org.springframework.boot</groupId> 103 <groupId>org.springframework.boot</groupId>