一.CRM简介:(为什么开发CRM)

此项目主要供自己的公司使用,原来因为公司人员较少,人员管理考勤等都用excel保存。但是现在因为公司人员,以及部门增多,为了方便管理 ,供销售人员使用内部系统更方便。

二.此项目实现的主要功能:

1.列表页面:
  -添加,编辑,删除
  -客户的单条导入和批量导入
  -关键字搜索
  -actions定制
  -组合搜索
  -分页(组件)

2.为销售自动分配订单,并发送通知(短信,微信,叮叮)
3.每天定时跟新或筛选超时客户,并列为公共资源
4.抢单
5.学生考勤
6.记录每个学生的成绩,并用图表(hightchart)动态显示
7.权限管理(组件)

三.此项目中有多少张数据库表?

department-部门表  userinfo-员工表  course-课程表  school-校区表  classlist-班级表
customer-客户表 customerdistribution-客户分配表 salerank-销售权重和数量表
consultrecord-客户跟进记录表 PaymentRecord-缴费记录 Student-学生表 courserecord-上课记录表 studyrecord-学习记录详细表

crm数据库(13张表)

menu-菜单组  group-权限组  permission-权限表   user-用户表   role-角色表

rbac数据库(5张表)

四.业务概述

1.客户信息:
(1)客户信息中有公共客户,自己的客户。而公共客户属于新录入的客户和在规定的时间中某个业务人员没有完成的。假如:规定在3天业务人员和客户没有进行跟进或者是在15天没有完成这个订单并且没有报名,那么这个客户就会属于公共资源,那么就是当前时间减去15天它如果大于你接单的时间或者当前时间减去3天它大于最后的跟进的时间,那么他就属于公共客户资源(通过Q对象把这个条件构造出来),这客户你就在无权去访问。
(2)我的客户就是在自己这里成单或者是在这15天自己跟进的客户,而在这期间在创建一个客户分配表,分配表中包括它的状态,接单时间,以及客户的ID和课程顾问的ID。生成一条记录。如果新来一个客户,那么设计一个定时任务,这个定时就好每天在规定的时间的让这个脚本跑一次,那么这个数据它会在每天定时更新,它具体的功能是:执行py文件:操作两张表,查找客户表,找到它的公共资源,查找分配表中的数据,并更新状态(3天/15天)。而在事实定时有两种方案:一是:可以通过原生的SQL写,也可以通过django也可以写(必须把定时任务和django放在一起使用,)当前用户所有的客户具体实现:创建一个url,首先在session中获取当前用户登录的ID,根据当前用户登录的ID去表中获取他自己的数据(custmers=models.CustomerDistribution.objects.filter(user_id=current_user_id).order_by('status'))把正在跟进的排在前面已成单的放在最后面
(3)在新建的选出没有报名的客户,在没有报名的客户后面加上抢单这个功能,获取当前用户的ID,把客户表中的客户修改,并把接单时间修改成当前时间,把跟进时间也改成当前时间,把原来的课程顾问改为现在跟进的课程顾问,把这些修改的数据更新到数据库中(更新时注意,原顾问不是自己,状态是没报名15天没有成单的,才可以跟新)。在分配表中创建一条数据。

2.自动抢单:
(1) 单条录入:先创建一个url,首先get看到一个页面,(用modelform写一个页面),客户表中新增数据:一获取改分配的课程顾问的id,以及当前的时间,客户分配表新增数据,获取新创建的客户的ID,顾问的ID。该分配的 课程顾问:就是按照权重以及按照分配表的的排序来分配,用迭代器来实现,数据库必须存在每个人的权重,在数据中在创建一个销售权重表表中有个数以及权重。先创建一个文件,在这个文件中写一个静态字段(静态字段包括user,iter_users,reset_status),下来就是跟中权重在数据库中来去符合的数据(数据就是销售)把数据库中拿到的数据跟新到静态字段中的user中,iter_users是生成迭代器的。

3.学生业务

共有三张表:学生表,上课记录表,班级表

学习记录:
为什么要用初始化:这样做起来方便,批量初始一些数据。
单个的初始化学生:
  刚开始设置学生上课记录的初始化功能,在上课记录这张表中拿到班级的ID来找到这个班级所有的学生,循环这个班的所有学生,这样就可以拿到每一个学生,为每一个学生生成每一天的学习记录。这样就是对每一个学生进行了上课的初始化。
批量初始化操作:
  设置一个action(可以有返回值),在上课记录这张表中拿到这个上课记录的对象。循环拿到每一个上课记录,为一个学生创建学习记录(在创建学习记录是在学生学习记录表中
查看这个学生是否有学习记录如果有,就不让他创建,如果没有就让他创建),
考勤管理:
  上课时有多少人,把学生罗列出来。设置action(action里面有缺勤,迟到,早退,签到,请假),以缺勤来说,默认是签到,拿到id,把拿到的数据更新

4.微信提醒

目的:让员工关注公司的推送消息公众号,并绑定个人用户(用于以后的消息提醒)
  第一步:扫码关注服务号
  第二部:扫码绑定个人账户,扫码的同时,个人的openid会自动录入到数据库中

在用户表中,获取到用户的openid,就能发送微信消息

class UserInfo(models.Model):
  openid = models.CharField(verbose_name='微信唯一ID', max_length=64, null=True, blank=True)
  ....

crm--业务点详细概述的更多相关文章

  1. 一、Microsoft Dynamics CRM 4.0 SDK概述

    Chapter 1. Microsoft Dynamics CRM 4.0 SDK Overview(SDK概述) You are probably reading this book because ...

  2. python 全栈开发,Day117(popup,Model类的继承,crm业务开发)

    昨日内容回顾 第一部分:权限相关 1. 权限基本流程 用户登录成功后获取权限信息,将[权限和菜单]信息写入到session. 以后用户在来访问,在中间件中进行权限校验. 为了提升用户体验友好度,在后台 ...

  3. CRM【第三篇】: crm业务

    1. 项目背景 crm系统是某某教育公司正在使用的项目,系统主要为 销售部.运营部.教质部门提供管理平台,随着公司规模的扩展,对公司员工的业务信息量化以及信息化建设越来越重要. crm系统为不同角色的 ...

  4. HBase详细概述

    原文地址:https://blog.csdn.net/u010270403/article/details/51648462 本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数 ...

  5. CRM 业务

    1. 创建CRM项目 引入插件 创建数据库 from django.db import models from django.db import models class Department(mod ...

  6. Zookeeper执行原理的详细概述

    文章作者:Holy Null,来源:http://holynull.leanote.com/post/Zookeeper,非常感谢作者提供如此优秀的原创文章,作者通过俩个月的努力将<Hadoop ...

  7. crm业务流程图(精简版)

    网址:https://www.processon.com/view/link/5e0be839e4b0aef94cbcee28#map如果链接失效,请及时反馈(在评论区评论),博主会及时更新

  8. FA_固定资产六大业务增加、修改、报废、在建、折旧、盘点概述(概念)

    2014-06-04 Created By BaoXinjian

  9. crm项目-业务实现

    ###############  crm业务    ############### """ 校区管理,部门管理,课程管理, 这三个都比较简单 1,只需要展示校区名称,这是 ...

随机推荐

  1. HIBERNATE与 MYBATIS的对比,在这里做一下总结

    我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...

  2. ADO.NET数据库编程

    ADO.NET数据库编程 1.ADO.NET的相关概念. Microsoft的新一代技术,是ADO组件的后继者. 主要目的是在.NET Framework平台存取数据. 提供一致的对象模型,可以存取和 ...

  3. 【PM面试题】请设计一个老年人用的新闻App

    考虑用户需求及痛点 老年人由于特殊的生理特点,需要考虑其阅读的痛点,加入例如文字大小自定义,朗读新闻,放大镜功能.同时在软件设计上减少文字的量,多放入一些多媒体的内容. 老年人会对过去发生的一些事情产 ...

  4. 请写出一个超链接,点击链接后可以向zhangsan@d-heaven.com发送电子邮件。

    请写出一个超链接,点击链接后可以向zhangsan@d-heaven.com发送电子邮件. <a href=”mailto: zhangsan@d-heaven.com”>发邮件</ ...

  5. TypeScript 基本类型(一)

    1.boolean 布尔值 true/false let isDone: boolean = false; 2.number 数字:和JavaScript 一样,TypeScript 里的所有数字都是 ...

  6. Android中Bitmap、Drawable、byte[]转换

    public byte[] getBitmapByte(Bitmap bitmap){ ByteArrayOutputStream out = new ByteArrayOutputStream(); ...

  7. 红黑树C++实现

    1 /* 2 * rbtree.h 3 * 1. 每个节点是红色或者黑色 4 * 2. 根节点是黑色 5 * 3. 每个叶子节点是黑色(该叶子节点就空的节点) 6 * 4. 如果一个节点是红色,则它的 ...

  8. 10招步骤保护IIS服务器安全

    问题 IIS(Internet Information Server)是黑客特别喜欢的目标.因此,对于管理IIS网页服务器的管理员来说,确保服务器安全是一件至关重要的事.IIS 4.0和IIS 5.0 ...

  9. ICE新手入门版

    1.ICE是什么?  网络通信引擎ICE(Internet Communications Engine)是Zero C公司的分布式系统开发专家实现的一种新的高性能的面向对象中间件平台.从根本上说, I ...

  10. mybatis循环map

    一.循环key <foreach collection="map.keys" item="key" separator="and"&g ...