一、销售与客户——表结构

1、客户类型

(1)公共客户(公共资源)

  必备条件:没有报名;

  在必备条件满足的情况下,满足以下任意条件都是公共客户:

    3天没有跟进;15天没有成单。

(2)我的客户

原销售——三江:
  2018-5-18 12:00 龙泰 男  2018-5-18 正在跟进
  2018-5-19 0:0 龙泰 男  2018-5-19 15天未成单

抢单销售——暴雨:

  2018-5-19 12:00 龙泰 男 2018-5-19 正在跟进

  2018-5-20 0:0 龙泰 男 2018-5-20 正在跟进

  2018-5-21 0:0 龙泰 男 2018-5-21 正在跟进

  2018-5-22 0:0 龙泰 男 2018-5-22 正在跟进

  2018-5-23 0:0 龙泰 男 2018-5-23 3天未成单

抢单销售——大傻:

  2018-5-23 0:0 龙泰 男 2018-5-23 正在跟进

2、添加客户分布表(CustomerDistrbute)

(1)为什么创建客户分布表,为什么不能直接用Customer?

  因为:销售可以查看,自己的客户是否已过期,是否正在跟进,月底可以算业绩!不能说没谈成,就没有业绩!!

(2)更新models.py

class CustomerDistrbute(models.Model):"""customer:客户consultant:跟进人date:日期status:状态meno:"""customer = models.ForeignKey("Customer", related_name="customers", on_delete=models.CASCADE)consultant = models.ForeignKey(verbose_name="课程顾问", to="UserInfo", limit_choices_to={"depart_id":1001}, on_delete=models.CASCADE)date = models.DateField()status_choices = ((1, '正在跟进'),(2, '已报名'),(3, '三天未跟进'),(4, '15天未成单'),)status = models.IntegerField(choices=status_choices, default=1)meno = models.CharField(max_length=255)def __str__(self):return self.customer.name + ":" + self.consultant.name

  注意:__str__函数返回客户名和顾问名

(3)再次执行数据库迁移加载新表到数据库中

manage.py@CRM_demo > makemigrations
manage.py@CRM_demo > migrate

3、新的表结构

二、公共客户

  继续配置Customer自定义配置类,扩展公共客户路由、视图、模板。

1、添加public客户url

class CustomerConfig(ModelStark):def extra_url(self):"""扩展路由"""temp = []temp.append(url((r"cancel_course/(\d+)/(\d+)"), self.cancel_course))temp.append(url(r"public", self.public_customer))return temp

2、定制公共客户视图

    def public_customer(self, request):"""公共客户"""# 未报名、且三天未跟进或15天未成单from django.db.models import Qimport datetimenow = datetime.datetime.now()   # datetime.datetime:表示日期时间# datetime.timedelta:表示时间间隔,即两个时间点之间的长度delta_day3 = datetime.timedelta(days=3)delta_day15 = datetime.timedelta(days=15)# 三天未跟进:now-last_consult_date>3  ===> last_consult_date < now - 3# 15天未成单:now-recv_data > 15  ====> recv_data < now - 15user_id = 2  # 课程顾问吴三江customer_list = Customer.objects.filter(Q(last_consult_date__lt=now - delta_day3) | Q(recv_date__lt=now - delta_day15), status=2).exclude(consultant=user_id)print(customer_list)   # <QuerySet [<Customer: 小东北>, <Customer: 泰哥>]>return render(request, "public.html", locals())

  注意:

(1)datetime模块的使用

  datetime.datetime:表示的是日期时间。

  datetime.timedelta:表示时间间隔,即两个时间点之间的长度

now = datetime.datetime.now()   # 当前日期
delta_day3 = datetime.timedelta(days=3)    # 时间间隔三天
delta_day15 = datetime.timedelta(days=15)   # 时间间隔15天

(2)根据公共客户条件筛选客户

# 三天未跟进:now-last_consult_date>3  ===> last_consult_date < now - 3
# 15天未成单:now-recv_data > 15  ====> recv_data < now - 15
# Q查询 last_consult_date__lt recv_date__lt
customer_list = Customer.objects.filter(Q(last_consult_date__lt=now - delta_day3) | Q(recv_date__lt=now - delta_day15), status=2)
print(customer_list)   # <QuerySet [<Customer: 小东北>, <Customer: 泰哥>]>

3、public.html基础设计渲染

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">
</head>
<body>
<h3>公共客户</h3>
<div class="container"><div class="row"><div class="col-md-6"><table class="table table-bordered table-striped"><thead><tr><th>ID</th><th>姓名</th><th>QQ</th><th>课程顾问</th></tr></thead><tbody>{% for customer in customer_list %}<tr><td>{{ forloop.counter }}</td><td>{{ customer.name }}</td><td>{{ customer.qq }}</td><td>{{ customer.consultant }}</td></tr>{% endfor %}</tbody></table></div></div>
</div>
</body>
</html>

public.html

  显示效果如下所示:

  

4、exclude排除——公共客户原课程顾问不可见

  filter按条件筛选,exclude按条件排除。

user_id = 2  # 课程顾问吴三江
customer_list = Customer.objects.filter(Q(last_consult_date__lt=now - delta_day3) | Q(recv_date__lt=now - delta_day15), status=2).exclude(consultant=user_id)
print(customer_list)   # <QuerySet [<Customer: 泰哥>]>

  显示效果:

  

5、在public.html渲染当前客户跟进记录

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">
</head>
<body>
<h3>公共客户</h3>
<div class="container"><div class="row"><div class="col-md-6"><table class="table table-bordered table-striped"><thead><tr><th>ID</th><th>姓名</th><th>QQ</th><th>课程顾问</th><th>跟进详情</th></tr></thead><tbody>{% for customer in customer_list %}<tr><td>{{ forloop.counter }}</td><td>{{ customer.name }}</td><td>{{ customer.qq }}</td><td>{{ customer.consultant }}</td><td><a href="/stark/crm/consultrecord/?customer={{ customer.pk }}">跟进记录</a></td></tr>{% endfor %}</tbody></table></div></div>
</div>
</body>
</html>

public.html

(1)渲染跟进记录的a标签时,添加href地址:

<td><a href="/stark/crm/consultrecord/?customer={{ customer.pk }}">跟进记录</a></td>

(2)显示效果:

  

  点击泰哥的跟进记录,调整到客户记录页面,并过滤泰哥的记录:

  

三、确认跟进

1、增加确认跟进url和我的客户url

class CustomerConfig(ModelStark):def extra_url(self):"""扩展路由"""temp = []temp.append(url((r"cancel_course/(\d+)/(\d+)"), self.cancel_course))temp.append(url(r"public/", self.public_customer))temp.append(url(r"further/(\d+)", self.further))temp.append(url(r"mycustomer/", self.mycustomer))return temp

2、更改课程顾问和对应的时间

def further(self, request, customer_id):"""跟进客户"""user_id = 2  # 这里是模拟登陆状态requet.session.get("user_id")import datetimefrom django.db.models import Qnow = datetime.datetime.now()delta_day3 = datetime.timedelta(days=3)delta_day15 = datetime.timedelta(days=15)# 为符合条件客户更改课程顾问,避免多人同时或连续跟进ret = Customer.objects.filter(pk=customer_id).filter(Q(last_consult_date__lt=now - delta_day3) | Q(recv_date__lt=now - delta_day15), status=2).update(consultant=user_id, last_consult_date=now, recv_date=now)if not ret:# 没有更新return HttpResponse("已经被跟进了")# 添加一条记录  状态均是正在跟进状态CustomerDistrbute.objects.create(customer_id=customer_id, consultant_id=user_id, date=now, status=1)return HttpResponse("跟进成功!")

注意:

(1)更改课程需要提前过滤

  先进行过滤是为了防止多个用户同时抢单,最后给了最后一个抢单的人,先过滤再抢单,后抢单的人已经找不到之前看到的客户,提示已经被跟进了。

(2)创建一条客户分布记录

CustomerDistrbute.objects.create(customer_id=customer_id, consultant_id=user_id, date=now, status=1
)

(3)ret是update的返回值

  update返回值返回的是更新的数据条数。

3、页面布局

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">
</head>
<body>
<h3>公共客户</h3>
<div class="container"><div class="row"><div class="col-md-6"><table class="table table-bordered table-striped"><thead><tr><th>ID</th><th>姓名</th><th>QQ</th><th>课程顾问</th><th>跟进详情</th><th>确认跟进</th></tr></thead><tbody>{% for customer in customer_list %}<tr><td>{{ forloop.counter }}</td><td>{{ customer.name }}</td><td>{{ customer.qq }}</td><td>{{ customer.consultant }}</td><td><a href="/stark/crm/consultrecord/?customer={{ customer.pk }}">跟进记录</a></td><td><a href="/stark/crm/customer/further/{{ customer.pk }}">确认跟进</a></td></tr>{% endfor %}</tbody></table></div></div>
</div>
</body>
</html>

public.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h3>我的客户</h3>
<ul>{% for customer_distribute in customer_distribute_list %}<li>{# 一个客户有多种分布状态 #}{{ customer_distribute.customer }}--{{ customer_distribute.date }}--{{ customer_distribute.get_status_display }}</li>{% endfor %}</ul>
</body>
</html>

mycustomer.html

4、测试验证

  两个浏览器同时访问:

  

  先跟进的浏览器:

  

  后跟进的浏览器:

  

四、我的客户

1、新增url

temp.append(url(r"mycustomer/", self.mycustomer))

2、我的客户视图

class CustomerConfig(ModelStark):def mycustomer(self, request):"""我的客户"""user_id = 2customer_distribute_list = CustomerDistrbute.objects.filter(consultant=user_id)return render(request, "mycustomer.html", locals())

  注意:

(1)在客户分布表查询

  不能在Customer表查询,这查询到的只是正在跟踪客户的信息。之前的跟踪过得信息不会显示。需要在客户分布表查询。

(2)模拟登陆销售

  在mycustomer视图函数下配置user_id,值等于哪个顾问的pk值就是模拟的谁登陆。

3、模板和展示效果

  mycustomer.html见跟进记录那一章。

  展示效果如下所示:

  

五、定时任务监控放入公共客户

  每天晚上12点检测CustomerDistribute哪个客户过期,一旦过期就调整为公共客户。

转载于:https://www.cnblogs.com/xiugeng/p/9560990.html

CRM——销售与客户相关推荐

  1. 3 CRM 销售与客户 我的客户,公共客户池

    1.销售与客户的表结构 1.公共客户与我的客户 ---公共客户(公共资源) 1.没有报名 2.3天没有跟进 3.15天没有成单 客户分布表 龙泰 男 yuan 2018-5-1 3天未跟进 龙泰 男 ...

  2. 智云通CRM:当客户上来就问价格,销售该怎么回答?

    我在做CRM销售时经常遇到这样的情况,产品还没怎么介绍清楚,客户就反复问价格.这是处于什么心理呢?大多数客户是出于恐惧,害怕被宰.吃亏上当,于是一开始就像确认自己能不能付得起这笔钱,商家后面还有没有套 ...

  3. CRM销售管理系统:用数据共享提升客户满意度

    在大多数行业当中,不管是卖产品还是卖服务的,只要是企业销售人员完成销售工作后,需要与客户签订合同,而签订完合同之后,就需要将合同的内容进行执行.那么如何让企业其他人员对你的工作进行配合,及时有效的将客 ...

  4. 微软Dynamics CRM管理销售流程 客户一个都不会跑

    在互联网连通世界的背景下,企业的"秘密"越来越少,产品同质化似乎成为一种趋势.这种时候,很多企业的优势已然不在于其产品的特别之处,而在于其能否拥有一套完整的精细化销售管理体系,在整 ...

  5. 看CRM如何整合客户资源,提升销售执行力

    销售人员作为企业与客户之间的纽带,承担着为企业开拓市场.发展客户的职责,而企业要维持良好的客户关系少不了沟通交流活动,选择高效的沟通渠道和方式,理解并影响客户行为,最终实现赢取更多客户.提高客户忠诚度 ...

  6. 续易crm源码客户资源管理系统crm源码(源代码c#)

    商业源码,不免费提供 续易软件 精品保证 演示地址:http://crm.soft-e.cn 价格合理,软件稳定,售后支持,法律保障: 官网:http://www.soft-e.cn/ 无聊人士,无购 ...

  7. oracle crm客户关系管理资料下载_悟空CRM:使用CRM系统进行客户关系管理的要点...

    使用过CRM的用户都知道,在CRM系统中,完整的客户关系管理包括客户数据管理.销售阶段管理和客户分析管理.它能在有效的客户细分基础上帮助你进行差异化管理,合理分配工作时间.那具体怎么操作呢?作为企业管 ...

  8. 销售如何维护客情关系 销售维护客户有什么方法

    B2B企业的客户群中,可能有这样一类客户,短期内他们可能不会与您有业务来往,但他们是您的潜在客户,当他们有业务需求时,才可能会找您.针对这类客户,销售应该如何维护客情关系,维护客户的方法有哪些? 通常 ...

  9. 如何利用CRM来维护客户关系?

    很多企业对于CRM这一概念并不陌生,他们认为管理好客户关系是企业的重中之重,并使用CRM软件来帮助企业更好地进行客户管理,但是对于利用CRM来维护客户关系这方面有些忽略. 前言 很多企业对于CRM这一 ...

  10. CRM如何进行客户关系管理

    在"以客户为中心"观念的指导下,企业格外重视客户关系管理,纷纷引进CRM投入使用,CRM赋予企业更完善的客户交流能力,帮助企业提高管理效率. 前言 如今市场竞争激烈,客户需求也是日 ...

最新文章

  1. 学会Python后能找到什么工作,待遇如何?
  2. perconadb mysql_是时候用PerconaDB替换MySQL了
  3. TextView 添加Onclick 无效
  4. 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法
  5. 网站推广期间要学会筛选关键词,有利于提升网站推广转化率
  6. Oracle四舍五入,向上取整,向下取整
  7. 透析CCNP路由知识五大技术4
  8. 为何红黄蓝一边在被做空,一边在逆势上涨?
  9. VS2010 不能将参数 2 从“char [20]”转换为“LPCWSTR”的错误解决
  10. 牛客网暑期ACM多校训练营(第九场)
  11. activemq 性能测试_ActiveMQ性能测试
  12. 洛谷P1937 [USACO10MAR]仓配置Barn Allocation
  13. Mantis-如何自定义流程状态
  14. 《TCP/IP详解》学习笔记(四):ICMP 协议、ping 和 Traceroute
  15. JavaScript基础二
  16. UI基础控件创建(UILabel、UITextField、UIButton)
  17. 能够生成动态图片的R模块:rCharts
  18. 全国计算机大学英语四六级报名网,点击进入http://cet-bm.neea.edu.cn(全国大学生英语四六级报名入口)...
  19. SQL Server 2008 索引超出了数组界限
  20. 类似Rainmeter、Conky的安卓插件

热门文章

  1. VMware - 虚拟机系统中无法使用键盘
  2. 达梦数据库管理工具介绍
  3. 判断在ios系统中打开微信浏览器
  4. thinkpadx1mdt 网络启动_二二、MDT 2013 Update 1批量部署-硬件驱动使用、驱动库建立及自动识别...
  5. 双子星tv源码_双子星IPTV电视直播管理系统源码安装教程
  6. 有哪些好用的低代码开发平台?
  7. 用什么软件测试固态硬盘坏没坏,SSD能用多久在哪看 检测固态硬盘寿命方法
  8. 微信小程序中如何使用阿里云iconfont图标
  9. 参与esri用户大会感想
  10. 深信服 云桌面 linux,深信服桌面云-深信服桌面云下载 v3.0官方版--pc6下载站