|
@@ -0,0 +1,212 @@
|
|
|
|
+# coding:utf-8
|
|
|
|
+from flask import Flask
|
|
|
|
+from flask_sqlalchemy import SQLAlchemy
|
|
|
|
+from docs.config import mysqlConfig
|
|
|
|
+
|
|
|
|
+app = Flask(__name__)
|
|
|
|
+DB_URL = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(mysqlConfig.USERNAME, mysqlConfig.PASSWORD, mysqlConfig.HOSTNAME,
|
|
|
|
+ mysqlConfig.PORT, mysqlConfig.DATABASE)
|
|
|
|
+app.config['SQLALCHEMY_DATABASE_URI'] = DB_URL
|
|
|
|
+app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
|
|
|
+db = SQLAlchemy(app) # db为继承了SQLALchemy
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class Customer(db.Model):
|
|
|
|
+ __tablename__ = 'customer'
|
|
|
|
+ unique_id = db.Column(db.String(100), primary_key=True, unique=True, comment="呼叫中心用户标识")
|
|
|
|
+ company = db.Column(db.String(100), comment="公司名称") # 公司名称..
|
|
|
|
+ username = db.Column(db.String(100), comment="姓名") # 姓名..
|
|
|
|
+ phone = db.Column(db.String(100), comment="联系人电话") # 联系人电话
|
|
|
|
+ email = db.Column(db.String(50), comment="邮箱") # 邮箱..
|
|
|
|
+ address = db.Column(db.String(200), comment="职位") # 职位..
|
|
|
|
+ usernickname = db.Column(db.String(100), comment="用户昵称") # 用户昵称..
|
|
|
|
+ product = db.Column(db.String(100), comment="购买的产品类型") # 购买的产品类型
|
|
|
|
+ web = db.Column(db.String(50), comment="公司网站") # 公司网站 ..
|
|
|
|
+ id = db.Column(db.String(50), comment="用户ID") # 用户ID..
|
|
|
|
+ job = db.Column(db.String(255), comment="职位") # 职位..
|
|
|
|
+ regtime = db.Column(db.DateTime(), comment="用户注册时间") # 用户注册时间
|
|
|
|
+ payorderinfo = db.Column(db.String(255), comment="已支付订单信息") # 已支付订单信息
|
|
|
|
+ unpayorderinfo = db.Column(db.String(255), comment="未支付订单类型") # 未支付订单类型
|
|
|
|
+ source = db.Column(db.String(500), comment="销售线索来源") # 销售线索来源
|
|
|
|
+ keyword = db.Column(db.Text(), comment="订阅关键词") # 订阅关键词
|
|
|
|
+ area = db.Column(db.Text(), comment="订阅区域") # 订阅区域
|
|
|
|
+ searchkeyword = db.Column(db.Text(), comment="搜索关键词") # 搜索关键词
|
|
|
|
+ searcharea = db.Column(db.Text(), comment="搜索区域") # 搜索区域
|
|
|
|
+ lastlogintime = db.Column(db.DateTime(), comment="最近一次登录时间") # 最近一次登录时间
|
|
|
|
+ lastloginport = db.Column(db.String(50), comment="最近一次登录端口") # 最近一次登录端口
|
|
|
|
+ isclickkf = db.Column(db.Integer(), comment="最近一周点击人工客服次数") # 最近一周点击人工客服次数
|
|
|
|
+ browsetitle1 = db.Column(db.Text(), comment="最近浏览正文标题1") # 最近浏览正文标题1
|
|
|
|
+ browsetitle2 = db.Column(db.Text(), comment="最近浏览正文标题2") # 最近浏览正文标题2
|
|
|
|
+ browsetitle3 = db.Column(db.Text(), comment="最近浏览正文标题3") # 最近浏览正文标题3
|
|
|
|
+ customerNeeds = db.Column(db.String(1000), comment="客户需求") # 客户需求
|
|
|
|
+ customerFocus = db.Column(db.String(3000), comment="客户关注点") # 客户关注点
|
|
|
|
+ wantGoods = db.Column(db.String(500), comment="意向产品") # 意向产品
|
|
|
|
+ customerBudget = db.Column(db.String(100), comment="客户预算") # 客户预算
|
|
|
|
+ rivalCompare = db.Column(db.String(100), comment="友商对比情况") # 友商对比情况
|
|
|
|
+ isPolicymaker = db.Column(db.String(100), comment="是否为决策人") # 是否为决策人
|
|
|
|
+ secondContactName = db.Column(db.String(100), comment="第二联系人姓名") # 第二联系人姓名
|
|
|
|
+ secondContactJob = db.Column(db.String(100), comment="第二联系人职务") # 第二联系人职务
|
|
|
|
+ secondContactPhone = db.Column(db.String(100), comment="第二联系人电话") # 第二联系人电话
|
|
|
|
+ secondContactEmail = db.Column(db.String(50), comment="第二联系人邮件") # 第二联系人邮件
|
|
|
|
+ thirdContactName = db.Column(db.String(100), comment="第三联系人姓名") # 第三联系人姓名
|
|
|
|
+ thirdContactJob = db.Column(db.String(100), comment="第三联系人职务") # 第三联系人职务
|
|
|
|
+ thirdContactPhone = db.Column(db.String(100), comment="第三联系人电话") # 第三联系人电话
|
|
|
|
+ thirdContactEmail = db.Column(db.String(50), comment="第三联系人邮件") # 第三联系人邮件
|
|
|
|
+ empNo = db.Column(db.String(50), comment="坐席唯一标识") # 坐席唯一标识
|
|
|
|
+ owner = db.Column(db.String(50), comment="坐席名称") # 坐席名称
|
|
|
|
+ ownerLeader = db.Column(db.String(50), comment="坐席主管") # 坐席主管
|
|
|
|
+ isDelete = db.Column(db.Integer(), default=0, comment="删除") # 删除
|
|
|
|
+ lastUpdateTime = db.Column(db.DateTime(), comment="最后同步时间") # 最后同步时间
|
|
|
|
+ createTime = db.Column(db.DateTime(), comment="创建时间") # 创建时间
|
|
|
|
+ status999 = db.Column(db.String(30), comment="客户状态") # 客户状态
|
|
|
|
+ belongTo = db.Column(db.String(300), comment="线索归属") # 线索归属
|
|
|
|
+ interfaceBatch = db.Column(db.String(300), comment="接口插入批次") # 接口插入批次
|
|
|
|
+ spaceNumber = db.Column(db.String(100), comment="空号")
|
|
|
|
+ phoneDown = db.Column(db.String(100), comment="停机")
|
|
|
|
+ purchaseNumber = db.Column(db.String(100), comment="购买数量")
|
|
|
|
+ testField = db.Column(db.String(100), comment="测试")
|
|
|
|
+ subscribeArticle = db.Column(db.Text(), comment="最近订阅普通公告")
|
|
|
|
+ supplementContact = db.Column(db.String(300), comment="补充联系人")
|
|
|
|
+ belongToIndustry = db.Column(db.String(800), comment="所属行业")
|
|
|
|
+ recentGeneralNotice = db.Column(db.String(1000), comment="最近订阅普通公告")
|
|
|
|
+ recentPlanToBuild = db.Column(db.String(1000), comment="最近订阅拟建项目")
|
|
|
|
+ recentPurchaseIntention = db.Column(db.String(1000), comment="最近订阅采购意向")
|
|
|
|
+ remarks = db.Column(db.String(255), comment="备注")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class CustomerUpdateLogs(db.Model):
|
|
|
|
+ __tablename__ = 'customerUpdateLogs'
|
|
|
|
+ logId = db.Column(db.Integer, primary_key=True, unique=True, autoincrement=True, comment="日志ID")
|
|
|
|
+ logCreateTime = db.Column(db.DateTime(), comment="记录时间")
|
|
|
|
+ updateStatus = db.Column(db.Integer(), comment="更新状态成功or失败")
|
|
|
|
+ updateType = db.Column(db.String(20), comment="更新类型")
|
|
|
|
+ changeField = db.Column(db.Text(), comment="更新字段")
|
|
|
|
+ unique_id = db.Column(db.String(100), comment="呼叫中心用户标识")
|
|
|
|
+ company = db.Column(db.String(100), comment="公司名称") # 公司名称..
|
|
|
|
+ username = db.Column(db.String(100), comment="姓名") # 姓名..
|
|
|
|
+ phone = db.Column(db.String(100), comment="联系人电话") # 联系人电话
|
|
|
|
+ email = db.Column(db.String(50), comment="邮箱") # 邮箱..
|
|
|
|
+ address = db.Column(db.String(200), comment="职位") # 职位..
|
|
|
|
+ usernickname = db.Column(db.String(100), comment="用户昵称") # 用户昵称..
|
|
|
|
+ product = db.Column(db.String(100), comment="购买的产品类型") # 购买的产品类型
|
|
|
|
+ web = db.Column(db.String(50), comment="公司网站") # 公司网站 ..
|
|
|
|
+ id = db.Column(db.String(50), comment="用户ID") # 用户ID..
|
|
|
|
+ job = db.Column(db.String(255), comment="职位") # 职位..
|
|
|
|
+ regtime = db.Column(db.DateTime(), comment="用户注册时间") # 用户注册时间
|
|
|
|
+ payorderinfo = db.Column(db.String(255), comment="已支付订单信息") # 已支付订单信息
|
|
|
|
+ unpayorderinfo = db.Column(db.String(255), comment="未支付订单类型") # 未支付订单类型
|
|
|
|
+ source = db.Column(db.String(500), comment="销售线索来源") # 销售线索来源
|
|
|
|
+ keyword = db.Column(db.Text(), comment="订阅关键词") # 订阅关键词
|
|
|
|
+ area = db.Column(db.Text(), comment="订阅区域") # 订阅区域
|
|
|
|
+ searchkeyword = db.Column(db.Text(), comment="搜索关键词") # 搜索关键词
|
|
|
|
+ searcharea = db.Column(db.Text(), comment="搜索区域") # 搜索区域
|
|
|
|
+ lastlogintime = db.Column(db.DateTime(), comment="最近一次登录时间") # 最近一次登录时间
|
|
|
|
+ lastloginport = db.Column(db.String(50), comment="最近一次登录端口") # 最近一次登录端口
|
|
|
|
+ isclickkf = db.Column(db.Integer(), comment="最近一周点击人工客服次数") # 最近一周点击人工客服次数
|
|
|
|
+ browsetitle1 = db.Column(db.Text(), comment="最近浏览正文标题1") # 最近浏览正文标题1
|
|
|
|
+ browsetitle2 = db.Column(db.Text(), comment="最近浏览正文标题2") # 最近浏览正文标题2
|
|
|
|
+ browsetitle3 = db.Column(db.Text(), comment="最近浏览正文标题3") # 最近浏览正文标题3
|
|
|
|
+ customerNeeds = db.Column(db.String(1000), comment="客户需求") # 客户需求
|
|
|
|
+ customerFocus = db.Column(db.String(3000), comment="客户关注点") # 客户关注点
|
|
|
|
+ wantGoods = db.Column(db.String(500), comment="意向产品") # 意向产品
|
|
|
|
+ customerBudget = db.Column(db.String(100), comment="客户预算") # 客户预算
|
|
|
|
+ rivalCompare = db.Column(db.String(100), comment="友商对比情况") # 友商对比情况
|
|
|
|
+ isPolicymaker = db.Column(db.String(100), comment="是否为决策人") # 是否为决策人
|
|
|
|
+ secondContactName = db.Column(db.String(100), comment="第二联系人姓名") # 第二联系人姓名
|
|
|
|
+ secondContactJob = db.Column(db.String(100), comment="第二联系人职务") # 第二联系人职务
|
|
|
|
+ secondContactPhone = db.Column(db.String(100), comment="第二联系人电话") # 第二联系人电话
|
|
|
|
+ secondContactEmail = db.Column(db.String(50), comment="第二联系人邮件") # 第二联系人邮件
|
|
|
|
+ thirdContactName = db.Column(db.String(100), comment="第三联系人姓名") # 第三联系人姓名
|
|
|
|
+ thirdContactJob = db.Column(db.String(100), comment="第三联系人职务") # 第三联系人职务
|
|
|
|
+ thirdContactPhone = db.Column(db.String(100), comment="第三联系人电话") # 第三联系人电话
|
|
|
|
+ thirdContactEmail = db.Column(db.String(50), comment="第三联系人邮件") # 第三联系人邮件
|
|
|
|
+ empNo = db.Column(db.String(50), comment="坐席唯一标识") # 坐席唯一标识
|
|
|
|
+ owner = db.Column(db.String(50), comment="坐席名称") # 坐席名称
|
|
|
|
+ ownerLeader = db.Column(db.String(50), comment="坐席主管") # 坐席主管
|
|
|
|
+ isDelete = db.Column(db.Integer(), default=0, comment="删除") # 删除
|
|
|
|
+ lastUpdateTime = db.Column(db.DateTime(), comment="最后同步时间") # 最后同步时间
|
|
|
|
+ createTime = db.Column(db.DateTime(), comment="创建时间") # 创建时间
|
|
|
|
+ status999 = db.Column(db.String(30), comment="客户状态") # 客户状态
|
|
|
|
+ belongTo = db.Column(db.String(300), comment="线索归属") # 线索归属
|
|
|
|
+ interfaceBatch = db.Column(db.String(300), comment="接口插入批次") # 接口插入批次
|
|
|
|
+ spaceNumber = db.Column(db.String(100), comment="空号")
|
|
|
|
+ phoneDown = db.Column(db.String(100), comment="停机")
|
|
|
|
+ purchaseNumber = db.Column(db.String(100), comment="购买数量")
|
|
|
|
+ testField = db.Column(db.String(100), comment="测试")
|
|
|
|
+ subscribeArticle = db.Column(db.Text(), comment="最近订阅普通公告")
|
|
|
|
+ supplementContact = db.Column(db.String(300), comment="补充联系人")
|
|
|
|
+ belongToIndustry = db.Column(db.String(800), comment="所属行业")
|
|
|
|
+ recentGeneralNotice = db.Column(db.String(1000), comment="最近订阅普通公告")
|
|
|
|
+ recentPlanToBuild = db.Column(db.String(1000), comment="最近订阅拟建项目")
|
|
|
|
+ recentPurchaseIntention = db.Column(db.String(1000), comment="最近订阅采购意向")
|
|
|
|
+ remarks = db.Column(db.String(255), comment="备注")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class CallRecords(db.Model):
|
|
|
|
+ __tablename__ = 'voice_record'
|
|
|
|
+ id = db.Column(db.Integer, primary_key=True, unique=True, autoincrement=True, comment="记录ID")
|
|
|
|
+ createTime = db.Column(db.DateTime(), comment="创建时间")
|
|
|
|
+ CallSheetID = db.Column(db.String(100), comment="通话记录的ID")
|
|
|
|
+ CallID = db.Column(db.String(100), comment="通话ID")
|
|
|
|
+ CustomerName = db.Column(db.String(100), comment="客户名称")
|
|
|
|
+ CustomerID = db.Column(db.String(100), comment="客户ID")
|
|
|
|
+ CallType = db.Column(db.String(50), comment="呼叫类型")
|
|
|
|
+ CallNo = db.Column(db.String(50), comment="主叫号码")
|
|
|
|
+ CalledNo = db.Column(db.String(50), comment="被叫号码")
|
|
|
|
+ Ring = db.Column(db.DateTime(), comment="开始呼叫时间") # 开始呼叫时间
|
|
|
|
+ RingingTime = db.Column(db.DateTime(), comment="响铃时间") # 开始呼叫时间
|
|
|
|
+ Begin = db.Column(db.DateTime(), comment="摘机接通时间") # 摘机接通时间
|
|
|
|
+ End = db.Column(db.DateTime(), comment="通话结束时间")
|
|
|
|
+ CallTimeLength = db.Column(db.String(20), comment="通话时长(单元:秒)")
|
|
|
|
+ QueueTime = db.Column(db.DateTime(), comment="呼入来电进入技能组时间")
|
|
|
|
+ Queue = db.Column(db.String(100), comment="呼入来电进入的技能组")
|
|
|
|
+ QueueId = db.Column(db.String(30), comment="呼入来电进入的技能组号")
|
|
|
|
+ AccountID = db.Column(db.String(50), comment="账户ID")
|
|
|
|
+ ActionID = db.Column(db.String(50), comment="请求ID")
|
|
|
|
+ Agent = db.Column(db.String(50), comment="坐席登录名")
|
|
|
|
+ Exten = db.Column(db.String(50), comment="坐席工号")
|
|
|
|
+ State = db.Column(db.String(50), comment="通话记录状态")
|
|
|
|
+ MonitorFilename = db.Column(db.String(500), comment="录音文件链接地址")
|
|
|
|
+ RecordFile = db.Column(db.String(500), comment="录音文件名")
|
|
|
|
+ FileServer = db.Column(db.String(500), comment="录音文件地址")
|
|
|
|
+ PBX = db.Column(db.String(50), comment="坐席所在的PBX")
|
|
|
|
+ AgentName = db.Column(db.String(50), comment="坐席姓名")
|
|
|
|
+ DepartmentName = db.Column(db.String(50), comment="坐席所在部门名称")
|
|
|
|
+ CallState = db.Column(db.String(50), comment="事件状态")
|
|
|
|
+ RealState = db.Column(db.String(50), comment="内部处理参数")
|
|
|
|
+ Province = db.Column(db.String(50), comment="省份")
|
|
|
|
+ District = db.Column(db.String(50), comment="市区")
|
|
|
|
+ isInQueue = db.Column(db.String(50), comment="是否进入技能组")
|
|
|
|
+ IVRKEY = db.Column(db.String(50), comment="ivr按键值")
|
|
|
|
+ IVRKeyName = db.Column(db.String(50), comment="ivr按键名称")
|
|
|
|
+ Hanguper = db.Column(db.String(50),
|
|
|
|
+ comment="挂断方,caller:主叫,callee:被叫,systemTransfer:系统转接,transferOuter:转接外线,agent:坐席,customer:客户")
|
|
|
|
+ uptimestamp = db.Column(db.String(50), comment="坐席接起电话的时间戳")
|
|
|
|
+ DisposalAgentLocal = db.Column(db.String(50), comment="接听坐席的直线号码")
|
|
|
|
+ LastIVRNode = db.Column(db.String(50), comment="终结节点")
|
|
|
|
+ Investigate = db.Column(db.String(50), comment="满意度按键值")
|
|
|
|
+ HangupCause = db.Column(db.String(50), comment="通话拦截原因")
|
|
|
|
+ HangupCauseDetail = db.Column(db.String(50), comment="外呼防骚扰拦截原因")
|
|
|
|
+ DoMainName = db.Column(db.String(100), comment="通话服务器域名")
|
|
|
|
+ TASK_ID = db.Column(db.String(50), comment="表单批量任务ID")
|
|
|
|
+ FORM_ID = db.Column(db.String(50), comment="表单ID")
|
|
|
|
+ callrescode = db.Column(db.String(50), comment="表单ID")
|
|
|
|
+ detail = db.Column(db.String(50), comment="表单ID")
|
|
|
|
+ OriginalFromCID = db.Column(db.String(50), comment="表单ID")
|
|
|
|
+ callHistoryId = db.Column(db.Integer(), comment="拨打记录")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class CustomerFollowUp(db.Model):
|
|
|
|
+ __tablename = "customer_follow_up"
|
|
|
|
+ id = db.Column(db.Integer, primary_key=True, unique=True, autoincrement=True, comment="记录ID")
|
|
|
|
+ customerId = db.Column(db.String(50), comment="客户唯一id")
|
|
|
|
+ customerName = db.Column(db.String(300), comment="跟进的客户名称")
|
|
|
|
+ createTime = db.Column(db.String(300), comment="创建时间")
|
|
|
|
+ remark = db.Column(db.Text(), comment="手动输入的跟进内容")
|
|
|
|
+ followRemindTime = db.Column(db.DateTime, comment="跟进计划时间")
|
|
|
|
+ isNotFollow = db.Column(db.String(20), comment="是否为不再跟进")
|
|
|
|
+ dataType = db.Column(db.String(50), comment="推送数据类型:followContent: 跟进内容新增, followPlan: 跟进计划变更")
|
|
|
|
+ dbTypeName = db.Column(db.String(300), comment="所属客户数据库名")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+db.create_all()
|