Forráskód Böngészése

📖 CRM:线索 clue 新增/修改的完善

YunaiV 1 éve
szülő
commit
fe330482b3

+ 9 - 11
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/clue/vo/CrmClueRespVO.java

@@ -70,10 +70,6 @@ public class CrmClueRespVO {
     @ExcelProperty("电话")
     private String telephone;
 
-    @Schema(description = "网址", example = "25682")
-    @ExcelProperty("网址")
-    private String website;
-
     @Schema(description = "QQ", example = "25682")
     @ExcelProperty("QQ")
     private String qq;
@@ -86,9 +82,15 @@ public class CrmClueRespVO {
     @ExcelProperty("email")
     private String email;
 
-    @Schema(description = "地址", example = "北京市海淀区")
-    @ExcelProperty("地址")
-    private String address;
+    @Schema(description = "地区编号", example = "1024")
+    @ExcelProperty("地区编号")
+    private Integer areaId;
+    @Schema(description = "地区名称", example = "北京市")
+    @ExcelProperty("地区名称")
+    private String areaName;
+    @Schema(description = "详细地址", example = "北京市成华大道")
+    @ExcelProperty("详细地址")
+    private String detailAddress;
 
     @Schema(description = "所属行业", requiredMode = Schema.RequiredMode.REQUIRED, example = "13563")
     @ExcelProperty(value = "所属行业", converter = DictConvert.class)
@@ -105,10 +107,6 @@ public class CrmClueRespVO {
     @DictFormat(cn.iocoder.yudao.module.crm.enums.DictTypeConstants.CRM_CUSTOMER_SOURCE)
     private Integer source;
 
-    @Schema(description = "客户描述", example = "25682")
-    @ExcelProperty("客户描述")
-    private String description;
-
     @Schema(description = "备注", example = "随便")
     @ExcelProperty("备注")
     private String remark;

+ 8 - 7
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/clue/vo/CrmClueSaveReqVO.java

@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.crm.enums.customer.CrmCustomerLevelEnum;
 import cn.iocoder.yudao.module.crm.framework.operatelog.core.CrmCustomerIndustryParseFunction;
 import cn.iocoder.yudao.module.crm.framework.operatelog.core.CrmCustomerLevelParseFunction;
 import cn.iocoder.yudao.module.crm.framework.operatelog.core.CrmCustomerSourceParseFunction;
+import cn.iocoder.yudao.module.crm.framework.operatelog.core.SysAreaParseFunction;
 import com.mzt.logapi.starter.annotation.DiffLogField;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.Email;
@@ -56,10 +57,6 @@ public class CrmClueSaveReqVO {
     @Telephone
     private String telephone;
 
-    @Schema(description = "网址", example = "https://www.baidu.com")
-    @DiffLogField(name = "网址")
-    private String website;
-
     @Schema(description = "QQ", example = "123456789")
     @DiffLogField(name = "QQ")
     @Size(max = 20, message = "QQ长度不能超过 20 个字符")
@@ -76,9 +73,13 @@ public class CrmClueSaveReqVO {
     @Size(max = 255, message = "邮箱长度不能超过 255 个字符")
     private String email;
 
-    @Schema(description = "地址", example = "北京市海淀区")
-    @DiffLogField(name = "地址")
-    private String address;
+    @Schema(description = "地区编号", example = "20158")
+    @DiffLogField(name = "地区编号", function = SysAreaParseFunction.NAME)
+    private Integer areaId;
+
+    @Schema(description = "详细地址", example = "北京市海淀区")
+    @DiffLogField(name = "详细地址")
+    private String detailAddress;
 
     @Schema(description = "所属行业", example = "1")
     @DiffLogField(name = "所属行业", function = CrmCustomerIndustryParseFunction.NAME)

+ 2 - 2
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java

@@ -239,10 +239,10 @@ public class CrmCustomerController {
         // 手动创建导出 demo
         List<CrmCustomerImportExcelVO> list = Arrays.asList(
                 CrmCustomerImportExcelVO.builder().name("芋道").industryId(1).level(1).source(1).mobile("15601691300").telephone("")
-                        .website("https://doc.iocoder.cn/").qq("").wechat("").email("yunai@iocoder.cn").description("").remark("")
+                        .qq("").wechat("").email("yunai@iocoder.cn").description("").remark("")
                         .areaId(null).detailAddress("").build(),
                 CrmCustomerImportExcelVO.builder().name("源码").industryId(1).level(1).source(1).mobile("15601691300").telephone("")
-                        .website("https://doc.iocoder.cn/").qq("").wechat("").email("yunai@iocoder.cn").description("").remark("")
+                        .qq("").wechat("").email("yunai@iocoder.cn").description("").remark("")
                         .areaId(null).detailAddress("").build()
         );
         // 输出

+ 0 - 3
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerImportExcelVO.java

@@ -43,9 +43,6 @@ public class CrmCustomerImportExcelVO {
     @ExcelProperty("电话")
     private String telephone;
 
-    @ExcelProperty("网址")
-    private String website;
-
     @ExcelProperty("QQ")
     private String qq;
 

+ 0 - 8
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerRespVO.java

@@ -64,10 +64,6 @@ public class CrmCustomerRespVO {
     @ExcelProperty("电话")
     private String telephone;
 
-    @Schema(description = "负责人的用户编号", example = "25682")
-    @ExcelProperty("网址")
-    private String website;
-
     @Schema(description = "负责人的用户编号", example = "25682")
     @ExcelProperty("QQ")
     private String qq;
@@ -80,10 +76,6 @@ public class CrmCustomerRespVO {
     @ExcelProperty("email")
     private String email;
 
-    @Schema(description = "负责人的用户编号", example = "25682")
-    @ExcelProperty("客户描述")
-    private String description;
-
     @Schema(description = "负责人的用户编号", example = "25682")
     @ExcelProperty("备注")
     private String remark;

+ 0 - 4
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/vo/CrmCustomerSaveReqVO.java

@@ -58,10 +58,6 @@ public class CrmCustomerSaveReqVO {
     @Telephone
     private String telephone;
 
-    @Schema(description = "网址", example = "https://www.baidu.com")
-    @DiffLogField(name = "网址")
-    private String website;
-
     @Schema(description = "QQ", example = "123456789")
     @DiffLogField(name = "QQ")
     @Size(max = 20, message = "QQ长度不能超过 20 个字符")

+ 8 - 10
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/clue/CrmClueDO.java

@@ -80,10 +80,6 @@ public class CrmClueDO extends BaseDO {
      * 电话
      */
     private String telephone;
-    /**
-     * 网址
-     */
-    private String website;
     /**
      * QQ
      */
@@ -97,9 +93,15 @@ public class CrmClueDO extends BaseDO {
      */
     private String email;
     /**
-     * 地址
+     * 所在地
+     *
+     * 关联 {@link cn.iocoder.yudao.framework.ip.core.Area#getId()} 字段
      */
-    private String address;
+    private Integer areaId;
+    /**
+     * 详细地址
+     */
+    private String detailAddress;
     /**
      * 所属行业
      *
@@ -118,10 +120,6 @@ public class CrmClueDO extends BaseDO {
      * 对应字典 {@link DictTypeConstants#CRM_CUSTOMER_SOURCE}
      */
     private Integer source;
-    /**
-     * 客户描述
-     */
-    private String description;
     /**
      * 备注
      */

+ 0 - 8
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/customer/CrmCustomerDO.java

@@ -79,10 +79,6 @@ public class CrmCustomerDO extends BaseDO {
      * 电话
      */
     private String telephone;
-    /**
-     * 网址
-     */
-    private String website;
     /**
      * QQ
      */
@@ -123,10 +119,6 @@ public class CrmCustomerDO extends BaseDO {
      * 对应字典 {@link DictTypeConstants#CRM_CUSTOMER_SOURCE}
      */
     private Integer source;
-    /**
-     * 客户描述
-     */
-    private String description;
     /**
      * 备注
      */

+ 0 - 4
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/bo/CrmCustomerCreateReqBO.java

@@ -64,10 +64,6 @@ public class CrmCustomerCreateReqBO {
      */
     @Telephone
     private String telephone;
-    /**
-     * 网址
-     */
-    private String website;
     /**
      * QQ
      */

+ 0 - 11
yudao-module-crm/yudao-module-crm-biz/src/test/resources/sql/clean.sql

@@ -1,11 +0,0 @@
-DELETE FROM "crm_contract";
-
-DELETE FROM "crm_clue";
-
-DELETE FROM "crm_receivable";
-
-DELETE FROM "crm_receivable_plan";
-
-DELETE FROM "crm_customer";
-
-DELETE FROM "crm_customer_limit_config";

+ 0 - 162
yudao-module-crm/yudao-module-crm-biz/src/test/resources/sql/create_tables.sql

@@ -1,162 +0,0 @@
-CREATE TABLE IF NOT EXISTS "crm_contract" (
-  "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
-  "name" varchar NOT NULL,
-  "customer_id" bigint,
-  "business_id" bigint,
-  "process_instance_id" bigint,
-  "order_date" varchar,
-  "owner_user_id" bigint,
-  "no" varchar,
-  "start_time" varchar,
-  "end_time" varchar,
-  "price" int,
-  "discount_percent" int,
-  "product_price" int,
-  "ro_user_ids" varchar,
-  "rw_user_ids" varchar,
-  "contact_id" bigint,
-  "sign_user_id" bigint,
-  "contact_last_time" varchar,
-  "remark" varchar,
-  "creator" varchar DEFAULT '',
-  "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  "updater" varchar DEFAULT '',
-  "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  "deleted" bit NOT NULL DEFAULT FALSE,
-  PRIMARY KEY ("id")
-) COMMENT '合同表';
-
-CREATE TABLE IF NOT EXISTS "crm_clue" (
-  "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
-  "transform_status" bit NOT NULL,
-  "follow_up_status" bit NOT NULL,
-  "name" varchar NOT NULL,
-  "customer_id" bigint NOT NULL,
-  "contact_next_time" varchar,
-  "telephone" varchar,
-  "mobile" varchar,
-  "address" varchar,
-  "owner_user_id" bigint,
-  "contact_last_time" varchar,
-  "remark" varchar,
-  "creator" varchar DEFAULT '',
-  "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  "updater" varchar DEFAULT '',
-  "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  "deleted" bit NOT NULL DEFAULT FALSE,
-  "tenant_id" bigint NOT NULL,
-  PRIMARY KEY ("id")
-) COMMENT '线索表';
-
-CREATE TABLE IF NOT EXISTS "crm_receivable" (
-    "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
-    "no" varchar,
-    "plan_id" bigint,
-    "customer_id" bigint,
-    "contract_id" bigint,
-    "check_status" int,
-    "process_instance_id" bigint,
-    "return_time" varchar,
-    "return_type" varchar,
-    "price" varchar,
-    "owner_user_id" bigint,
-    "batch_id" bigint,
-    "sort" int,
-    "data_scope" int,
-    "data_scope_dept_ids" varchar,
-    "status" int NOT NULL,
-    "remark" varchar,
-    "creator" varchar DEFAULT '',
-    "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
-    "updater" varchar DEFAULT '',
-    "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-    "deleted" bit NOT NULL DEFAULT FALSE,
-    PRIMARY KEY ("id")
-) COMMENT '回款';
-
-CREATE TABLE IF NOT EXISTS "crm_receivable_plan" (
-     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
-     "index_no" bigint,
-     "receivable_id" bigint,
-     "status" int NOT NULL,
-     "check_status" varchar,
-     "process_instance_id" bigint,
-     "price" varchar,
-     "return_time" varchar,
-     "remind_days" bigint,
-     "remind_time" varchar,
-     "customer_id" bigint,
-     "contract_id" bigint,
-     "owner_user_id" bigint,
-     "sort" int,
-     "remark" varchar,
-     "creator" varchar DEFAULT '',
-     "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
-     "updater" varchar DEFAULT '',
-     "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-     "deleted" bit NOT NULL DEFAULT FALSE,
-     PRIMARY KEY ("id")
-) COMMENT '回款计划';
-
-CREATE TABLE IF NOT EXISTS "crm_customer" (
-  "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
-  "name"              varchar(255),
-  "follow_up_status"  int NOT NULL,
-  "lock_status"       int NOT NULL,
-  "deal_status"       int NOT NULL,
-  "industry_id"       int,
-  "level"             int,
-  "source"            int,
-  "mobile"            varchar(255),
-  "telephone"         varchar(255),
-  "website"           varchar(255),
-  "qq"                varchar(255),
-  "wechat"            varchar(255),
-  "email"             varchar(255),
-  "description"       varchar(255),
-  "remark"            varchar(255),
-  "owner_user_id" bigint,
-  "area_id"           int,
-  "detail_address"    varchar(255),
-  "contact_last_time" datetime,
-  "contact_next_time" datetime,
-  "creator" varchar DEFAULT '',
-  "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  "updater" varchar DEFAULT '',
-  "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  "deleted" bit NOT NULL DEFAULT FALSE,
-  "tenant_id" bigint NOT NULL,
-  PRIMARY KEY ("id")
-) COMMENT '客户表';
-
-CREATE TABLE IF NOT EXISTS "crm_customer_limit_config" (
-   "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
-   "type" int NOT NULL,
-   "user_ids" varchar,
-   "dept_ids" varchar,
-   "max_count" int NOT NULL,
-   "deal_count_enabled" varchar,
-   "creator" varchar DEFAULT '',
-   "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
-   "updater" varchar DEFAULT '',
-   "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-   "deleted" bit NOT NULL DEFAULT FALSE,
-   "tenant_id" bigint NOT NULL,
-   PRIMARY KEY ("id")
-) COMMENT '客户限制配置表';
-
-CREATE TABLE IF NOT EXISTS "crm_permission"
-(
-    "id"          bigint   NOT NULL GENERATED BY DEFAULT AS IDENTITY,
-    "biz_id"      bigint   NOT NULL,
-    "biz_type"    int      NOT NULL,
-    "user_id"     bigint   NOT NULL,
-    "level"       int      NOT NULL,
-    "creator"     varchar           DEFAULT '',
-    "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
-    "updater"     varchar           DEFAULT '',
-    "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-    "deleted"     bit      NOT NULL DEFAULT FALSE,
-   "tenant_id" bigint NOT NULL,
-   PRIMARY KEY ("id")
-) COMMENT '客户限制配置表';