CRM 客户关系管理系统-总结

CRM 客户关系管理系统-总结

这是一个前后端分离的项目,后端用的技术框架SSM ,springboot+spring+Mybatis

前端用到的技术有VUE+element-ui

这个系统的作用,这个项目有什么用?
简单说就是通过系统维客户的关系,从而达到销售的目的

其中包含哪些模块?

权限模块,组织机构模块,系统模块,营销模块,产品模块,订单模块,财务模块,售后模块等等

主要负责的是权限模块,组织机构模块,营销模块,

权限模块:

​ 设计: 基于RBAC模型–通过角色控制权限

为什么用RBAC模型:-------------
​ 用户和权限两者之间关联起来的操作是十分复杂的,在这两者中间添加角色这一个概念,将角色分配给用户,给角色赋予权限,大大的简化了用户授权的这个问题。

权限模块:包含角色管理,菜单管理,权限管理

​ 角色管理:销售,财务,老板,他们看见的东西都不相同

权限中的认证和授权的定义

​ 什么是认证: 认证是对用户的身份确认,也就是登录。 在本系统中登录认证是通过token+全局的map来实现的

​ 因为这个项目是前后端分离项目,不能使用session来存储用户信息。

​ 什么是授权: 权限我们看做是访问、操作某一资源的前置条件,而授权就是赋予认证的用户拥有这样的权限。

​ 用户认证成功后,就可以对某些资源进行访问,不同的用户有不同的资源访问权利。

​ 为什么需要权限: 因为在一个系统中用户是多样化的,我们需要他们看到不同的资源和界面。

​ 从安全方面考虑:可以防止 信息的泄露,防止恶意破坏,

​ 从用户职责方面考虑:能更加的明确用户、员工的职责比如客服,销售,策划,等等

权限的设计:
权限的要素:资源,权限,用户,授权,鉴权

资源: 用户可访问的任何东西,比如可以是一个按钮,一个菜单,一个方法都可以是资源

权限:我们可以把权限看做是对资源可被访问的一种前置条件约定,比如:访问 “采购功能” 必须有 “采购权限”

用户:要为用户做授权就必须先登录成功,没有用户你给谁做授权呢?

授权:授权是一个动作,就是给登录成功的用户绑定好权限,让该用户可以访问相关的资源,需要事先在数据库中给用户分配好权限,用户登录成功之后就把用户的权限和用户绑定好。

鉴权:权限检查是当用户对某个资源发起请求时,需要判断该用户是否拥有访问该资源的权限

基于RBAC模型

​ RBAC:Role base access control基于角色的访问控制

​ 其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。

角色管理中实现的功能有
CRUD

授权:权限授予,菜单授予

如何实现不同角色看见不同的数据

​ 通过给角色赋予菜单,将菜单与角色挂钩,前端展示菜单用动态路由、菜单,就可以实现不同的角色看见不同的菜单与界面。

权限控制包括?
登录权限

权限控制:菜单权限,按钮权限,数据权限

权限管理功能

采用自定义注解+扫描的方式

​ 自定义一个权限注解,在需要权限控制的资源上打上注解,当程序启动的时候通过监听器,进入Service层,通过反射的方式来获取类和上面的方法和注解,当一个方法上有自定义注解就将这条资源数据封装成权限对象,然后在存入数据库。

权限数据的维护就自定义注解加扫描

如何自定义一个注解?

鉴权–权限拦截
登录认证+鉴权

认证:登录的时候返回一个token给前端,每一次请求都通过前端的axios请求将token 一同发送给后端,然后

在拦截器中获取heard的token,先判断token是否有无,然后再通过token去全局map中拿到user对象,有user则登录无则没有登录。

鉴权:拦截器中可以拿到请求的方法信息和类信息(这就是这个资源的信息),通过用户的信息获取这个用户所拥有的权限信息,两者通过对比来查看这个用户是否有这个资源的权限

登录的信息为什么不存session而用token 存入全局map?
项目为前后端分离,前端每次发送请求为新的会话,jsession的id会改变。

前后端跨域

什么造成了跨域

它是浏览器同源策略造成的,是浏览器对JS实施的安全限制,所谓同源是指:“域名”、“协议”、“端口”均为相同

不同端口,不同域名,不同协议 只要一个不同就是跨域

前端解决跨域

前端使用代理的方式来解决跨域问题

vue.config.js文件进行配置

const { defineConfig } = **require**('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer:{
    // 设置项目端口和自动启动浏览器
    host:'localhost',
    port:8000,
    open:true,//配置代理
​    proxy:{'api':{	//配置名为'api'的代理
​        target:'http://localhost:8082', //请求后台服务端的IP,即代理转发的目标地址
​        pathRewrite:{'^/api':''},	//重写请求路径
​        changeOrigin:true     //开启跨域}}
  }
})

axios请求中路径为:‘/api/**’

         getStudent() {
            axios.get("/api/student/list").then(resp => {
                this.tableData= resp.data;
            })
        },
js
         getStudent() {
            axios.get("/api/student/list").then(resp => {
                this.tableData= resp.data;
            })
        },

​ 当在前端发起请求时,如果路径以’/api’开头,代理会将这个请求转发到’http://localhost:8082’,并且将路径中的‘/api’替换为空字符串,

后端解决跨域------

​ 用的springboot,只用在Controller类上添加一个@CrossOrigin注解就可以实现对当前controller 的跨域 访问了,当然这个标签也可以加到方法上。

组织机构模块

部门管理

员工管理

员工管理中有赋予角色这个功能,

系统模块
系统设置

​ 为什么需要系统设置?因为在系统中有一些参数需要人为设置或者需要定期修改,写si就不方便,

​ 所以就通过系统设置这个功能来管理这些参数,解决了硬编码问题。

数据字典

数据字典明细

​ 为什么需要数据字典? 因为有一些数据,没必要单独写成一张表,就集中在一起写成数据字典这一张表。

​ 数据字典明细,就是对数据字典中的数据再进一步的细分,

营销模块

活动管理,线索管理,商机管理,

活动管理包括:市场活动,和营销活动,

​ 市场活动的目的是为了获取线索,营销活动的目的是为了促单

线索管理:

​ 线索中的操作: 新的线索,还没有分配销售人员,分配销售人员后,销售人员需要进行线索的跟进,而每一次跟进都需记录信息和确定下一次约谈时间

​ 跟进之后如果发现客户有意向购买,就将这条线索转为商机

​ 跟进后发现客户没有意向购买,不会将这条线索删除而是将其存放进线索池中

​ 如果员工有变动 就将其移交给其他的销售人员

​ 在线索池中的线索 可以将这条线索尝试跟进一下。

​ 线索池中的数据全部销售员工都可以看见,

​ 登录的销售人员 只能通过数据权限控制 看到属于自己的线索

​ // 而不在线索池中的数据,每个员工只能看见所属自己的线索

​ 线索关联活动:可以进行统计线索和活动的关系

商机管理

当一条线索转为商机,选择商品并跳转到商机界面,修改线索表状态,添加线索备注,添加商机信息,添加商机备注,添加商机产品。

商机列表的管理有 跟进,移交,转入/转出商机池,付定金

在跟进的过程中发现用户有意愿,通过营销活动促使客户下单,

​ 下单又分为 付定金 ,全款,分期

下定金流程是:在商机里面 点击付定金,弹框 通过营销活动计算商品价格,然后输入用户的定金金额,然后发送到后台。修改商机状态(为已付定金),添加商机备注,生成订单数据,生成订单产品,订单关联的活动,生成合同表,生成合同备注,生成定金信息。(生成客户信息添加到客户表里面,生成保修单)

​ 在订单界面去收尾款,分为 分期和全款

​ 根据付款方式来生成 应收款表,和应收款明细表,和其对应的备注表和客户商议每月几号还款。

财务模块:

​ 应收款: 卖出去的商品

​ 应付款:工资,税

售后模块:
​ 客户管理

​ 客户关怀:定时器,根据客户的生日信息 来发送关怀短信

​ 或者一些礼品

​ 保修功能:当客户需要进行维修时,打电话给客服,根据维修的信息来生成保修备注信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值