Crm-第一天

CRM基本概念

圈内存在这么一句话:“世上原本没有CRM,大家的生意越来越难做了,才有了CRM。”在同质化竞争时代,顾客资产尤为重要,新时代在召唤CRM。

CRM零碎即客户关系管理系统, 顾名思义就是治理公司与客户之间的关系. 是一种以"客户关系一对一实践"为根底,旨在改善企业与客户之间关系的新型管理机制。客户关系治理的定义是:企业为进步外围竞争力,利用相应的信息技术以及互联网技术来协调企业与顾客间在销售、营销和服务上的交互,从而晋升其治理形式,向客户提供翻新式的个性化的客户交互和服务的过程。 其最终目标是吸引新客户、保留老客户以及将已有客户转为忠诚客户,减少公司市场份额。

CRM的施行指标就是通过全面晋升企业业务流程的治理来升高企业老本,通过提供更疾速和周到的优质服务来吸引和放弃更多的客户。作为一种新型管理机制,CRM极大地改善了企业与客户之间的关系,利用于企业的市场营销、销售、服务与技术支持等与客户相干的畛域。

Crm分类

依据客户的类型不同,CRM能够分为BtoB CRM及BtoC CRM. BtoB CRM中治理的客户是企业客户,而BtoC CRM治理的客户则是集体客户。提供企业产品销售和服务的企业须要的BtoB的CRM,也就是市面上大部分CRM的内容。而提供集体及家庭生产的企业须要的是BtoC的CRM。

依据CRM治理侧重点不同又分为操作性和剖析型CRM。大部分CRM为操作型CRM,反对CRM的日常作业流程的每个环节,而剖析型CRM则偏重于数据分析。

企业我的项目开发流程

  1. 产品组依据市场调研或商户共事的反馈提出idea, 设计出原型而后跟市场, 商户共事进行确认
  2. UI设计组和开发组一起探讨, 确定计划是否可行
  3. UI组依据产品组提供的原型稿做出设计稿, 与产品和开发确认
  4. 开发组依据产品的原型稿(看逻辑)和UI组的设计稿(看界面)编写代码其中当然也会来回跟设计, 产品同学进行确认和沟通
  5. 代码编写结束后提交给测试组. 而后再提交上线
  6. 前期的数据跟踪和优化

    这就是一个产品研发的大抵流程. 其中开发的责任就是选用适合的框架技术来实现产品所提供的需要以及设计所提供的成果。

Crm 零碎模块划分

根底模块

蕴含零碎根本的用户登录,退出,记住我,明码批改等基本操作。

营销治理

营销机会治理:企业客户的质询需要所建设的信息录入性能,不便销售人员进行后续的客户需要跟踪。

     营销开发计划:开发计划是依据营销机会而来,对于企业质询的客户,会有相应的销售人员对于该客户进行具体的沟通交流,此时对于整个Crm零碎而言,通过营销开发计划来进行相应的信息管理,进步客户的购买企业产品的可能性。
客户治理

客户信息管理:Crm零碎中残缺记录客户信息起源的数据、企业与客户来往、客户订单查问等信息录入性能,不便企业与客户进行相应的信息交换与后续单干。

客户散失治理:Crm通过肯定规定机制所定义的散失客户(有效客户),通过该规定能够无效治理客户信息资源,进步营销开发效率。

服务治理

服务治理是针对客户而开发的性能,针对客户要求,Crm提供客户相应的信息质询,反馈与投诉性能,进步企业对于客户的服务质量。

数据报表

Crm提供的数据报表性能可能帮忙企业理解客户整体散布,理解客户开发后果整体信息,从而帮忙企业整体调整客户开发计划,进步企业的在市场中的竞争力度。

系统管理

系统管理蕴含常量字典保护工作,以及权限治理模块,Crm权限治理是基于角色的一种权限管制,基于RBAC实现基于角色的权限管制,通过不同角色的用户登录该零碎后展现零碎不同的操作性能,从而达到对不同角色实现不同操作性能。

CRM 零碎数据库设计

CRM零碎依据产品的原型搞以及UI组的设计稿, 接下来就要设计数据库, 个别在大公司通常会有专门的DBA, 这时咱们能够不要思考数据库表设计, 然而也要可能读懂或者理解DBA的设计思路不便在程序开发阶段不会呈现问题, 个别关系型数据库表设计满足三范式的设计即可, 表名设计做到见名知意最好。

表构造详情

t_sale_chance营销机会表
字段字段类型字段限度字段形容
主键idint(11)自增id主键
chance_sourcevarchar(300)可空机会起源
customer_namevarchar(100)可空客户名称
cgjlint(11)可空胜利几率
overviewvarchar(300)可空概要
link_manvarchar(100)可空联系人
link_phonevarchar(100)可空手机号
descriptionvarchar(1000)可空形容
create_manvarchar(100)可空创建人
assign_manvarchar(100)可空调配人
assign_timedatetime可空调配工夫
stateint(11)可空调配状态
dev_resultint(11)可空开发后果
is_validint(4)可空无效状态
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
t_cus_dev_plan客户开发计划表
字段字段类型字段限度字段形容
主键idint(11)自增id
sale_chance_idint(11)可空营销机会id
plan_itemvarchar(100)可空打算内容
plan_datedatetime可空打算日期
exe_affectvarchar(100)可空执行成果
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
is_validint(4)可空无效状态
t_customer客户信息表
字段字段类型字段限度字段形容
主键idint(11)自增id主键
khnovarchar(20)可空客户编号
namevarchar(20)可空客户姓名
areavarchar(20)可空客户所属地区
cus_managervarchar(20)可空客户经理
levelvarchar(30)可空客户级别
mydvarchar(30)可空客户满意度
xydvarchar(30)可空客户信用度
addressvarchar(500)可空客户地址
post_codevarchar(50)可空邮编
phonevarchar(20)可空联系电话
faxvarchar(20)可空传真
web_sitevarchar(20)可空网址
yyzzzchvarchar(50)可空营业执照注册号
frvarchar(20)可空法人代表
zczjvarchar(20)可空注册资金
nyyevarchar(20)可空年营业额
khyhvarchar(50)可空开户银行
khzhvarchar(50)可空开户账号
dsdjhvarchar(50)可空地税登记号
gsdjhvarchar(50)可空国税登记号
stateint(11)可空散失状态
is_validint(4)可空无效状态
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
t_customer_contact客户来往记录表
字段字段类型字段限度字段形容
主键idint(11)自增id主键
cus_idint(11)可空客户id
contact_timedatetime可空来往工夫
addressvarchar(500)可空来往地址
overviewvarchar(100)可空概要
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
is_validint(4)可空无效状态
t_customer_linkman客户联系人表
字段字段类型字段限度字段形容
主键idint(11)自增id主键
cus_idint(11)可空客户id
link_namevarchar(20)可空联系人姓名
sexvarchar(20)可空性别
zhiweivarchar(50)可空职位
office_phonevarchar(50)可空办公电话
phonevarchar(20)可空手机号
is_validint(4)可空无效状态
ceate_datedatetime可空创立工夫
update_datedatetime可空更新工夫
t_customer_loss客户散失表
字段字段类型字段限度字段形容
主键idint(11)自增id主键
cus_novarchar(40)可空客户编号
cus_namevarchar(20)可空客户姓名
cus_managervarchar(20)可空客户经理
last_order_timedate可空最初下单工夫
confirm_loss_timedate可空确认散失工夫
stateint(11)可空散失状态
loss_reasonvarchar(1000)可空散失起因
is_validtinyint(4)可空无效状态
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
t_customer_order客户订单
字段字段类型字段限度字段形容
主键idint(11)自增id主键
cus_idint(11)可空客户id
order_novarchar(40)可空订单编号
order_datedatetime可空下单工夫
addressvarchar(200)可空地址
stateint(11)可空状态
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
is_validint(4)可空无效状态
t_order_details订单详情表
字段字段类型字段限度字段形容
主键idint(11)自增id主键
order_idint(11)可空订单id
goods_namevarchar(100)可空商品名称
goods_numint(11)可空商品数量
unitvarchar(20)可空商品单位
pricefloat可空单价
sumfloat可空总金额
is_validint(4)可空无效状态
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
t_customer_reprieve客户散失暂缓表
字段字段类型字段限度字段形容
主键idint(11)自增id主键
loss_idint(11)可空散失id
measurevarchar(500)可空措施
is_validtinyint(4)可空无效状态
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
t_customer_serve客户服务
字段字段类型字段限度字段形容
主键idint(11)自增id主键
serve_typevarchar(30)可空服务类型
overviewvarchar(500)可空概要
customervarchar(30)可空客户
statevarchar(20)可空服务状态
service_requestvarchar(500)可空服务申请
create_peoplevarchar(100)可空服务创建人
assignervarchar(100)可空服务调配人
assign_timedatetime可空调配工夫
service_procevarchar(500)可空服务解决
service_proce_peoplevarchar(20)可空服务解决人
service_proce_timedatetime可空服务解决工夫
service_proce_resultvarchar(500)可空处理结果
mydvarchar(50)可空满意度
is_validint(4)可空是否无效
update_datedatetime可空更新工夫
create_datedatetime可空创立工夫
t_datadic字典表
字段字段类型字段限度字段形容
主键idint(11)自增id主键
data_dic_namevarchar(50)可空字典名
data_dic_valuevarchar(50)可空字典值
is_validtinyint(4)可空是否无效
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
t_user用户表
字段字段类型字段限度字段形容
主键idint(11)自增字段形容
user_namevarchar(20)可空用户名
user_pwdvarchar(100)可空用户明码
true_namevarchar(20)可空实在姓名
emailvarchar(30)可空邮箱
phonevarchar(20)可空电话
is_validint(4)可空无效状态
create_datedatetime可空创立工夫
update_datedatetime可空更新工夫
t_role角色表
字段字段类型字段限度字段形容
主键idint(11)自增字段形容
role_namevarchar(255)可空角色名
role_remarkervarchar(255)可空角色备注
create_datedatetime可空创立工夫
update_datedatetime更新工夫
is_validint(11)非空是否无效
pom.xml引入坐标&插件
<properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <maven.compiler.source>1.8</maven.compiler.source>    <maven.compiler.target>1.8</maven.compiler.target></properties><parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.2.2.RELEASE</version>  </parent>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-aop</artifactId>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-freemarker</artifactId>    </dependency>      <dependency>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-test</artifactId>          <scope>test</scope>      </dependency>    <!--      mybatis 集成    -->    <dependency>      <groupId>org.mybatis.spring.boot</groupId>      <artifactId>mybatis-spring-boot-starter</artifactId>      <version>2.1.1</version>    </dependency>    <!-- 分页插件 -->    <dependency>      <groupId>com.github.pagehelper</groupId>      <artifactId>pagehelper-spring-boot-starter</artifactId>      <version>1.2.13</version>    </dependency>    <!--mysql 驱动-->    <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <scope>runtime</scope>    </dependency>    <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->    <dependency>      <groupId>com.mchange</groupId>      <artifactId>c3p0</artifactId>      <version>0.9.5.5</version>    </dependency>    <dependency>      <groupId>org.apache.commons</groupId>      <artifactId>commons-lang3</artifactId>      <version>3.5</version>    </dependency>    <dependency>      <groupId>com.alibaba</groupId>      <artifactId>fastjson</artifactId>      <version>1.2.47</version>    </dependency>    <!-- DevTools 的坐标 热部署 -->    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-devtools</artifactId>      <optional>true</optional>    </dependency>  </dependencies>  <build>    <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <version>2.3.2</version>        <configuration>          <source>1.8</source>          <target>1.8</target>          <encoding>UTF-8</encoding>        </configuration>      </plugin>        <plugin>            <groupId>org.mybatis.generator</groupId>            <artifactId>mybatis-generator-maven-plugin</artifactId>            <version>1.3.2</version>            <configuration>            <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>                <verbose>true</verbose>                <overwrite>true</overwrite>            </configuration>        </plugin>        <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>        <configuration>          <!-- 如果没有该配置,热部署的devtools不失效 -->          <fork>true</fork>        </configuration>      </plugin>    </plugins>  </build>
增加配置文件application.yml

src/main/resources 目录下新建application.yml配置文件,内容如下:

## 端口号  上下文门路server:  port: 9898  servlet:    context-path: /crm## 数据源配置spring:  datasource:    type: com.mchange.v2.c3p0.ComboPooledDataSource    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://127.0.0.1:3306/crm?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8    username: root    password: root  ## freemarker  freemarker:    suffix: .ftl    content-type: text/html    charset: UTF-8    template-loader-path: classpath:/views/  ## 启用热部署  devtools:    restart:      enabled: true      additional-paths: src/main/java## mybatis 配置mybatis:  mapper-locations: classpath:/mappers/*.xml  type-aliases-package: com.xxxx.crm.vo;com.xxxx.crm.query;com.xxxx.crm.dto  configuration:    map-underscore-to-camel-case: true## pageHelperpagehelper:  helper-dialect: mysql  ## 设置 dao 日志打印级别logging:  level:    com:      xxxx:        crm:          dao: debug
增加视图转发源代码

新建com.xxxx.crm.controller包,增加零碎登录,主页面转发代码(这里引入base 包,具体文件见相干目录)。

package com.xxxx.crm.controller;import com.xxxx.crm.base.BaseController;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class IndexController extends BaseController {    /**     * 零碎登录页     * @return     */    @RequestMapping("index")    public String index(){        return "index";    }        // 零碎界面欢送页    @RequestMapping("welcome")    public String welcome(){        return "welcome";    }    /**     * 后端治理主页面     * @return     */    @RequestMapping("main")    public String main(){        return "main";    }}
动态资源文件目录增加

在src/main/resources目录下新建public 目录寄存零碎相干动态资源文件,copy动态文件内容到public 目录。

增加零碎登录,主页面视图模板页

在src/main/resources 目录下新建views目录,增加index.ftl,main.ftl 文件(具体视图文件详见相干目录)

增加SpringBoot利用启动类Starter

在com.xxxx.crm 包下新建Starter.java ,增加启动我的项目相干代码如下:

package com.xxxx.crm;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Starter {    public static void main(String[] args) {        SpringApplication.run(Starter.class);    }}