models.py 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. # coding:utf-8
  2. from flask import Flask
  3. from flask_sqlalchemy import SQLAlchemy
  4. from docs.config import mysqlConfig
  5. app = Flask(__name__)
  6. DB_URL = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(mysqlConfig.USERNAME, mysqlConfig.PASSWORD, mysqlConfig.HOSTNAME,
  7. mysqlConfig.PORT, mysqlConfig.DATABASE)
  8. app.config['SQLALCHEMY_DATABASE_URI'] = DB_URL
  9. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  10. db = SQLAlchemy(app) # db为继承了SQLALchemy
  11. class Customer(db.Model):
  12. __tablename__ = 'customer'
  13. unique_id = db.Column(db.String(100), primary_key=True, unique=True, comment="呼叫中心用户标识")
  14. company = db.Column(db.String(100), comment="公司名称") # 公司名称..
  15. username = db.Column(db.String(100), comment="姓名") # 姓名..
  16. phone = db.Column(db.String(100), comment="联系人电话") # 联系人电话
  17. email = db.Column(db.String(50), comment="邮箱") # 邮箱..
  18. address = db.Column(db.String(200), comment="职位") # 职位..
  19. usernickname = db.Column(db.String(100), comment="用户昵称") # 用户昵称..
  20. product = db.Column(db.String(100), comment="购买的产品类型") # 购买的产品类型
  21. web = db.Column(db.String(50), comment="公司网站") # 公司网站 ..
  22. id = db.Column(db.String(50), comment="用户ID") # 用户ID..
  23. job = db.Column(db.String(255), comment="职位") # 职位..
  24. regtime = db.Column(db.DateTime(), comment="用户注册时间") # 用户注册时间
  25. payorderinfo = db.Column(db.String(255), comment="已支付订单信息") # 已支付订单信息
  26. unpayorderinfo = db.Column(db.String(255), comment="未支付订单类型") # 未支付订单类型
  27. source = db.Column(db.String(500), comment="销售线索来源") # 销售线索来源
  28. keyword = db.Column(db.Text(), comment="订阅关键词") # 订阅关键词
  29. area = db.Column(db.Text(), comment="订阅区域") # 订阅区域
  30. searchkeyword = db.Column(db.Text(), comment="搜索关键词") # 搜索关键词
  31. searcharea = db.Column(db.Text(), comment="搜索区域") # 搜索区域
  32. lastlogintime = db.Column(db.DateTime(), comment="最近一次登录时间") # 最近一次登录时间
  33. lastloginport = db.Column(db.String(50), comment="最近一次登录端口") # 最近一次登录端口
  34. isclickkf = db.Column(db.Integer(), comment="最近一周点击人工客服次数") # 最近一周点击人工客服次数
  35. browsetitle1 = db.Column(db.Text(), comment="最近浏览正文标题1") # 最近浏览正文标题1
  36. browsetitle2 = db.Column(db.Text(), comment="最近浏览正文标题2") # 最近浏览正文标题2
  37. browsetitle3 = db.Column(db.Text(), comment="最近浏览正文标题3") # 最近浏览正文标题3
  38. customerNeeds = db.Column(db.String(1000), comment="客户需求") # 客户需求
  39. customerFocus = db.Column(db.String(3000), comment="客户关注点") # 客户关注点
  40. wantGoods = db.Column(db.String(500), comment="意向产品") # 意向产品
  41. customerBudget = db.Column(db.String(100), comment="客户预算") # 客户预算
  42. rivalCompare = db.Column(db.String(100), comment="友商对比情况") # 友商对比情况
  43. isPolicymaker = db.Column(db.String(100), comment="是否为决策人") # 是否为决策人
  44. secondContactName = db.Column(db.String(100), comment="第二联系人姓名") # 第二联系人姓名
  45. secondContactJob = db.Column(db.String(100), comment="第二联系人职务") # 第二联系人职务
  46. secondContactPhone = db.Column(db.String(100), comment="第二联系人电话") # 第二联系人电话
  47. secondContactEmail = db.Column(db.String(50), comment="第二联系人邮件") # 第二联系人邮件
  48. thirdContactName = db.Column(db.String(100), comment="第三联系人姓名") # 第三联系人姓名
  49. thirdContactJob = db.Column(db.String(100), comment="第三联系人职务") # 第三联系人职务
  50. thirdContactPhone = db.Column(db.String(100), comment="第三联系人电话") # 第三联系人电话
  51. thirdContactEmail = db.Column(db.String(50), comment="第三联系人邮件") # 第三联系人邮件
  52. empNo = db.Column(db.String(50), comment="坐席唯一标识") # 坐席唯一标识
  53. owner = db.Column(db.String(50), comment="坐席名称") # 坐席名称
  54. ownerLeader = db.Column(db.String(50), comment="坐席主管") # 坐席主管
  55. isDelete = db.Column(db.Integer(), default=0, comment="删除") # 删除
  56. lastUpdateTime = db.Column(db.DateTime(), comment="最后同步时间") # 最后同步时间
  57. createTime = db.Column(db.DateTime(), comment="创建时间") # 创建时间
  58. status999 = db.Column(db.String(30), comment="客户状态") # 客户状态
  59. belongTo = db.Column(db.String(300), comment="线索归属") # 线索归属
  60. interfaceBatch = db.Column(db.String(300), comment="接口插入批次") # 接口插入批次
  61. spaceNumber = db.Column(db.String(100), comment="空号")
  62. phoneDown = db.Column(db.String(100), comment="停机")
  63. purchaseNumber = db.Column(db.String(100), comment="购买数量")
  64. testField = db.Column(db.String(100), comment="测试")
  65. subscribeArticle = db.Column(db.Text(), comment="最近订阅普通公告")
  66. supplementContact = db.Column(db.String(300), comment="补充联系人")
  67. belongToIndustry = db.Column(db.String(800), comment="所属行业")
  68. recentGeneralNotice = db.Column(db.String(1000), comment="最近订阅普通公告")
  69. recentPlanToBuild = db.Column(db.String(1000), comment="最近订阅拟建项目")
  70. recentPurchaseIntention = db.Column(db.String(1000), comment="最近订阅采购意向")
  71. remarks = db.Column(db.String(255), comment="备注")
  72. class CustomerUpdateLogs(db.Model):
  73. __tablename__ = 'customerUpdateLogs'
  74. logId = db.Column(db.Integer, primary_key=True, unique=True, autoincrement=True, comment="日志ID")
  75. logCreateTime = db.Column(db.DateTime(), comment="记录时间")
  76. updateStatus = db.Column(db.Integer(), comment="更新状态成功or失败")
  77. updateType = db.Column(db.String(20), comment="更新类型")
  78. changeField = db.Column(db.Text(), comment="更新字段")
  79. unique_id = db.Column(db.String(100), comment="呼叫中心用户标识")
  80. company = db.Column(db.String(100), comment="公司名称") # 公司名称..
  81. username = db.Column(db.String(100), comment="姓名") # 姓名..
  82. phone = db.Column(db.String(100), comment="联系人电话") # 联系人电话
  83. email = db.Column(db.String(50), comment="邮箱") # 邮箱..
  84. address = db.Column(db.String(200), comment="职位") # 职位..
  85. usernickname = db.Column(db.String(100), comment="用户昵称") # 用户昵称..
  86. product = db.Column(db.String(100), comment="购买的产品类型") # 购买的产品类型
  87. web = db.Column(db.String(50), comment="公司网站") # 公司网站 ..
  88. id = db.Column(db.String(50), comment="用户ID") # 用户ID..
  89. job = db.Column(db.String(255), comment="职位") # 职位..
  90. regtime = db.Column(db.DateTime(), comment="用户注册时间") # 用户注册时间
  91. payorderinfo = db.Column(db.String(255), comment="已支付订单信息") # 已支付订单信息
  92. unpayorderinfo = db.Column(db.String(255), comment="未支付订单类型") # 未支付订单类型
  93. source = db.Column(db.String(500), comment="销售线索来源") # 销售线索来源
  94. keyword = db.Column(db.Text(), comment="订阅关键词") # 订阅关键词
  95. area = db.Column(db.Text(), comment="订阅区域") # 订阅区域
  96. searchkeyword = db.Column(db.Text(), comment="搜索关键词") # 搜索关键词
  97. searcharea = db.Column(db.Text(), comment="搜索区域") # 搜索区域
  98. lastlogintime = db.Column(db.DateTime(), comment="最近一次登录时间") # 最近一次登录时间
  99. lastloginport = db.Column(db.String(50), comment="最近一次登录端口") # 最近一次登录端口
  100. isclickkf = db.Column(db.Integer(), comment="最近一周点击人工客服次数") # 最近一周点击人工客服次数
  101. browsetitle1 = db.Column(db.Text(), comment="最近浏览正文标题1") # 最近浏览正文标题1
  102. browsetitle2 = db.Column(db.Text(), comment="最近浏览正文标题2") # 最近浏览正文标题2
  103. browsetitle3 = db.Column(db.Text(), comment="最近浏览正文标题3") # 最近浏览正文标题3
  104. customerNeeds = db.Column(db.String(1000), comment="客户需求") # 客户需求
  105. customerFocus = db.Column(db.String(3000), comment="客户关注点") # 客户关注点
  106. wantGoods = db.Column(db.String(500), comment="意向产品") # 意向产品
  107. customerBudget = db.Column(db.String(100), comment="客户预算") # 客户预算
  108. rivalCompare = db.Column(db.String(100), comment="友商对比情况") # 友商对比情况
  109. isPolicymaker = db.Column(db.String(100), comment="是否为决策人") # 是否为决策人
  110. secondContactName = db.Column(db.String(100), comment="第二联系人姓名") # 第二联系人姓名
  111. secondContactJob = db.Column(db.String(100), comment="第二联系人职务") # 第二联系人职务
  112. secondContactPhone = db.Column(db.String(100), comment="第二联系人电话") # 第二联系人电话
  113. secondContactEmail = db.Column(db.String(50), comment="第二联系人邮件") # 第二联系人邮件
  114. thirdContactName = db.Column(db.String(100), comment="第三联系人姓名") # 第三联系人姓名
  115. thirdContactJob = db.Column(db.String(100), comment="第三联系人职务") # 第三联系人职务
  116. thirdContactPhone = db.Column(db.String(100), comment="第三联系人电话") # 第三联系人电话
  117. thirdContactEmail = db.Column(db.String(50), comment="第三联系人邮件") # 第三联系人邮件
  118. empNo = db.Column(db.String(50), comment="坐席唯一标识") # 坐席唯一标识
  119. owner = db.Column(db.String(50), comment="坐席名称") # 坐席名称
  120. ownerLeader = db.Column(db.String(50), comment="坐席主管") # 坐席主管
  121. isDelete = db.Column(db.Integer(), default=0, comment="删除") # 删除
  122. lastUpdateTime = db.Column(db.DateTime(), comment="最后同步时间") # 最后同步时间
  123. createTime = db.Column(db.DateTime(), comment="创建时间") # 创建时间
  124. status999 = db.Column(db.String(30), comment="客户状态") # 客户状态
  125. belongTo = db.Column(db.String(300), comment="线索归属") # 线索归属
  126. interfaceBatch = db.Column(db.String(300), comment="接口插入批次") # 接口插入批次
  127. spaceNumber = db.Column(db.String(100), comment="空号")
  128. phoneDown = db.Column(db.String(100), comment="停机")
  129. purchaseNumber = db.Column(db.String(100), comment="购买数量")
  130. testField = db.Column(db.String(100), comment="测试")
  131. subscribeArticle = db.Column(db.Text(), comment="最近订阅普通公告")
  132. supplementContact = db.Column(db.String(300), comment="补充联系人")
  133. belongToIndustry = db.Column(db.String(800), comment="所属行业")
  134. recentGeneralNotice = db.Column(db.String(1000), comment="最近订阅普通公告")
  135. recentPlanToBuild = db.Column(db.String(1000), comment="最近订阅拟建项目")
  136. recentPurchaseIntention = db.Column(db.String(1000), comment="最近订阅采购意向")
  137. remarks = db.Column(db.String(255), comment="备注")
  138. class CallRecords(db.Model):
  139. __tablename__ = 'voice_record'
  140. id = db.Column(db.Integer, primary_key=True, unique=True, autoincrement=True, comment="记录ID")
  141. createTime = db.Column(db.DateTime(), comment="创建时间")
  142. CallSheetID = db.Column(db.String(100), comment="通话记录的ID")
  143. CallID = db.Column(db.String(100), comment="通话ID")
  144. CustomerName = db.Column(db.String(100), comment="客户名称")
  145. CustomerID = db.Column(db.String(100), comment="客户ID")
  146. CallType = db.Column(db.String(50), comment="呼叫类型")
  147. CallNo = db.Column(db.String(50), comment="主叫号码")
  148. CalledNo = db.Column(db.String(50), comment="被叫号码")
  149. Ring = db.Column(db.DateTime(), comment="开始呼叫时间") # 开始呼叫时间
  150. RingingTime = db.Column(db.DateTime(), comment="响铃时间") # 开始呼叫时间
  151. Begin = db.Column(db.DateTime(), comment="摘机接通时间") # 摘机接通时间
  152. End = db.Column(db.DateTime(), comment="通话结束时间")
  153. CallTimeLength = db.Column(db.String(20), comment="通话时长(单元:秒)")
  154. QueueTime = db.Column(db.DateTime(), comment="呼入来电进入技能组时间")
  155. Queue = db.Column(db.String(100), comment="呼入来电进入的技能组")
  156. QueueId = db.Column(db.String(30), comment="呼入来电进入的技能组号")
  157. AccountID = db.Column(db.String(50), comment="账户ID")
  158. ActionID = db.Column(db.String(50), comment="请求ID")
  159. Agent = db.Column(db.String(50), comment="坐席登录名")
  160. Exten = db.Column(db.String(50), comment="坐席工号")
  161. State = db.Column(db.String(50), comment="通话记录状态")
  162. MonitorFilename = db.Column(db.String(500), comment="录音文件链接地址")
  163. RecordFile = db.Column(db.String(500), comment="录音文件名")
  164. FileServer = db.Column(db.String(500), comment="录音文件地址")
  165. PBX = db.Column(db.String(50), comment="坐席所在的PBX")
  166. AgentName = db.Column(db.String(50), comment="坐席姓名")
  167. DepartmentName = db.Column(db.String(50), comment="坐席所在部门名称")
  168. CallState = db.Column(db.String(50), comment="事件状态")
  169. RealState = db.Column(db.String(50), comment="内部处理参数")
  170. Province = db.Column(db.String(50), comment="省份")
  171. District = db.Column(db.String(50), comment="市区")
  172. isInQueue = db.Column(db.String(50), comment="是否进入技能组")
  173. IVRKEY = db.Column(db.String(50), comment="ivr按键值")
  174. IVRKeyName = db.Column(db.String(50), comment="ivr按键名称")
  175. Hanguper = db.Column(db.String(50),
  176. comment="挂断方,caller:主叫,callee:被叫,systemTransfer:系统转接,transferOuter:转接外线,agent:坐席,customer:客户")
  177. uptimestamp = db.Column(db.String(50), comment="坐席接起电话的时间戳")
  178. DisposalAgentLocal = db.Column(db.String(50), comment="接听坐席的直线号码")
  179. LastIVRNode = db.Column(db.String(50), comment="终结节点")
  180. Investigate = db.Column(db.String(50), comment="满意度按键值")
  181. HangupCause = db.Column(db.String(50), comment="通话拦截原因")
  182. HangupCauseDetail = db.Column(db.String(50), comment="外呼防骚扰拦截原因")
  183. DoMainName = db.Column(db.String(100), comment="通话服务器域名")
  184. TASK_ID = db.Column(db.String(50), comment="表单批量任务ID")
  185. FORM_ID = db.Column(db.String(50), comment="表单ID")
  186. callrescode = db.Column(db.String(50), comment="表单ID")
  187. detail = db.Column(db.String(50), comment="表单ID")
  188. OriginalFromCID = db.Column(db.String(50), comment="表单ID")
  189. callHistoryId = db.Column(db.Integer(), comment="拨打记录")
  190. class CustomerFollowUp(db.Model):
  191. __tablename = "customer_follow_up"
  192. id = db.Column(db.Integer, primary_key=True, unique=True, autoincrement=True, comment="记录ID")
  193. customerId = db.Column(db.String(50), comment="客户唯一id")
  194. customerName = db.Column(db.String(300), comment="跟进的客户名称")
  195. createTime = db.Column(db.String(300), comment="创建时间")
  196. remark = db.Column(db.Text(), comment="手动输入的跟进内容")
  197. followRemindTime = db.Column(db.DateTime, comment="跟进计划时间")
  198. isNotFollow = db.Column(db.String(20), comment="是否为不再跟进")
  199. dataType = db.Column(db.String(50), comment="推送数据类型:followContent: 跟进内容新增, followPlan: 跟进计划变更")
  200. dbTypeName = db.Column(db.String(300), comment="所属客户数据库名")
  201. db.create_all()