# 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()