models.py 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. # coding=utf-8
  2. '''
  3. '''
  4. from django.db import models
  5. # ---------------- 用户部分 ------------------
  6. class Subject(models.Model):
  7. name = models.CharField(u"组织名称",max_length=256,blank=True)
  8. intro = models.TextField(u"科目介绍",max_length=256,blank=True,null=True)
  9. device_cats = models.TextField(u"设备种类",max_length=256,blank=True,null=True)
  10. price_new = models.FloatField(u"新考费用",max_length=256,blank=True,null=True)
  11. price_re = models.FloatField(u"复审费用",max_length=256,blank=True,null=True)
  12. price_change = models.FloatField(u"换证费用",max_length=256,blank=True,null=True)
  13. pid = models.CharField(u"父节点ID",max_length=16,blank=True,null=True)
  14. status = models.SmallIntegerField(u"状态(0删除)",default=1)
  15. order = models.IntegerField(u"培训科目",blank=True,null=True)
  16. class_hour = models.IntegerField(u"学时",blank=True,null=True)
  17. update_class_hour = models.IntegerField(u"复审学时",blank=True,null=True)
  18. change_class_hour = models.IntegerField(u"换证学时",blank=True,null=True)
  19. cid = models.IntegerField(u"创建人ID",blank=True)
  20. cperson = models.CharField(u"创建人",max_length=255,blank=True)
  21. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  22. class Meta:
  23. db_table = "subject"
  24. verbose_name = u"培训科目"
  25. app_label = "common"
  26. class Class(models.Model):
  27. subject_id = models.TextField(u"培训科目",blank=True,null=True)
  28. subject_name = models.CharField(u"培训科目",blank=True,null=True,max_length=100)
  29. subject_item = models.CharField(u"培训科目",blank=True,null=True,max_length=255)
  30. name = models.CharField(u"名称",max_length=256,blank=True)
  31. signup_time = models.CharField(u"报名时间",max_length=100,blank=True,null=True)
  32. signup_limit = models.IntegerField(u"招生人数",blank=True,null=True)
  33. signuped_count = models.IntegerField(u"已报名人数",blank=True,null=True,default=0)
  34. class_hour = models.IntegerField(u"学时",blank=True,null=True,default=0)
  35. class_status = models.SmallIntegerField(u"班级状态",default=1)
  36. price = models.FloatField(u"价格信息",blank=True,null=True)
  37. status = models.SmallIntegerField(u"状态(0删除)",default=1)
  38. remark = models.CharField(u"备注",max_length=256,blank=True,null=True)
  39. remind = models.TextField(u"备注",max_length=256,blank=True,null=True)
  40. cid = models.IntegerField(u"创建人ID",blank=True)
  41. cperson = models.CharField(u"创建人",max_length=255,blank=True)
  42. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  43. class Meta:
  44. db_table = "class"
  45. verbose_name = u"培训班"
  46. app_label = "common"
  47. class SignupOrders(models.Model):
  48. user_id = models.IntegerField(u"用户id",blank=True,null=True)
  49. name = models.CharField(u"名称",max_length=256,blank=True)
  50. sex = models.CharField(u"性别",max_length=256,blank=True)
  51. idno = models.CharField(u"身份证号",max_length=256,blank=True)
  52. education = models.CharField(u"文化程度",max_length=256,blank=True)
  53. phone = models.CharField(u"手机号",max_length=13,blank=True)
  54. company = models.CharField(u"公司/单位",max_length=255,blank=True,null=True)
  55. class_id = models.IntegerField(u"班级id",blank=True,null=True)
  56. subject_id = models.IntegerField(u"培训科目id",blank=True,null=True)
  57. subject_item = models.CharField(u"培训科目id",max_length=256,blank=True,null=True)
  58. train_type = models.CharField(u"培训类型",max_length=50,blank=True,null=True)
  59. receive_card = models.CharField(u"领取方式",max_length=255,blank=True,null=True)
  60. area = models.CharField(u"所在地区",max_length=255,blank=True,null=True)
  61. address = models.CharField(u"地址",max_length=255,blank=True,null=True)
  62. idnoimg_face = models.CharField(u"身份证正面照",max_length=256,blank=True,null=True)
  63. idnoimg_back = models.CharField(u"身份证正面照",max_length=256,blank=True,null=True)
  64. halfbody_img = models.CharField(u"上半身照",max_length=256,blank=True,null=True)
  65. education_img = models.CharField(u"学历证书",max_length=256,blank=True,null=True)
  66. oldcard_img = models.CharField(u"学历证书",max_length=256,blank=True,null=True)
  67. health_img = models.CharField(u"体检报告",max_length=256,blank=True,null=True)
  68. remark = models.CharField(u"备注",max_length=256,blank=True,null=True)
  69. admin_remark = models.CharField(u"后台备注",max_length=256,blank=True,null=True)
  70. price = models.FloatField(u"价格信息",blank=True,null=True)
  71. out_trade_no = models.CharField(u"订单号",max_length=256,blank=True,null=True)
  72. order_status = models.SmallIntegerField(u"订单状态",default=-1)
  73. pay_status = models.SmallIntegerField(u"支付状态",default=0)
  74. pay_time = models.CharField(u"支付时间",max_length=256,blank=True,null=True)
  75. transaction_id = models.CharField(u"交易单号",max_length=256,blank=True,null=True)
  76. bill_type = models.SmallIntegerField(u"发票类型",default=0,blank=True,null=True)
  77. bill_mat = models.SmallIntegerField(u"发票材料",default=1,blank=True,null=True)
  78. bill_no = models.CharField(u"发票税号",max_length=256,blank=True,null=True)
  79. bill_name = models.CharField(u"发票公司名",max_length=256,blank=True,null=True)
  80. signup_status = models.SmallIntegerField(u"报名状态",default=1)
  81. classhour_cert_status = models.SmallIntegerField(u"生成学时证明状态",default=0)
  82. classhour_cert_url = models.CharField(u"发票税号",max_length=256,blank=True,null=True)
  83. classhour_total = models.IntegerField(u"总学时",blank=True,null=True,default=0)
  84. classhour_finish = models.IntegerField(u"已完成学时",blank=True,null=True,default=0)
  85. status = models.SmallIntegerField(u"状态(0删除)",default=1)
  86. exam_time = models.DateTimeField(u"考试时间",blank=True,null=True)
  87. train_time_start = models.DateTimeField(u"培训开始时间",blank=True,null=True)
  88. train_time_end = models.DateTimeField(u"培训结束时间",blank=True,null=True)
  89. update_time = models.DateTimeField(u"复审时间",null=True,blank=True,auto_now_add=True)
  90. change_time = models.DateField(u"换证时间",blank=True,null=True)
  91. send_update_notice = models.IntegerField(u"已完成学时",blank=True,null=True,default=0)
  92. send_change_notice = models.IntegerField(u"已完成学时",blank=True,null=True,default=0)
  93. device_cats = models.TextField(u"设备种类",max_length=256,blank=True,null=True)
  94. cid = models.IntegerField(u"创建人ID",blank=True)
  95. cperson = models.CharField(u"创建人",max_length=255,blank=True)
  96. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  97. class Meta:
  98. db_table = "signup_orders"
  99. verbose_name = u"报名信息"
  100. app_label = "common"
  101. class Category(models.Model):
  102. # 基础属性
  103. name = models.CharField(u"名字", max_length=255, blank=True,null=True)
  104. icon = models.CharField(u"图标", max_length=255, blank=True,null=True)
  105. path = models.CharField(u"路径", max_length=255, blank=True,null=True)
  106. order = models.IntegerField(u"排序",default=1)
  107. is_show = models.SmallIntegerField(u"是否展示",default=1)
  108. status = models.SmallIntegerField(u"状态(0删除)",default=1)
  109. cid = models.IntegerField(u"创建人ID",blank=True)
  110. cperson = models.CharField(u"创建人",max_length=255,blank=True)
  111. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  112. class Meta:
  113. db_table = "category"
  114. verbose_name = u"栏目信息"
  115. app_label = "common"
  116. class Article(models.Model):
  117. # 基础属性
  118. category = models.ForeignKey(Category)
  119. title = models.CharField(u"标题", max_length=255, blank=True,null=True)
  120. intro = models.TextField(u"简介",blank=True,null=True)
  121. content = models.TextField(u"内容",blank=True,null=True)
  122. order = models.IntegerField(u"排序",default=1)
  123. status = models.SmallIntegerField(u"状态(0删除)",default=1)
  124. imgs = models.TextField(u"多图",blank=True,null=True)
  125. address = models.CharField(u"地址信息",blank=True,null=True,max_length=255)
  126. point = models.CharField(u"经纬度",blank=True,null=True,max_length=255)
  127. phone = models.CharField(u"联系方式",blank=True,null=True,max_length=255)
  128. cid = models.IntegerField(u"创建人ID",blank=True)
  129. cperson = models.CharField(u"创建人",max_length=255,blank=True)
  130. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  131. class Meta:
  132. db_table = "article"
  133. verbose_name = u"文章信息"
  134. app_label = "common"
  135. class UserInfo(models.Model):
  136. # 基础属性
  137. name = models.CharField(u"名字", max_length=255, blank=True,null=True)
  138. password = models.CharField(u"密码", max_length=255, blank=True,null=True)
  139. realname = models.CharField(u"真实名称", max_length=255, blank=True, null=True)
  140. email = models.CharField(u"邮箱", max_length=255, blank=True,null=True)
  141. phone = models.CharField(u"手机号", max_length=64, blank=True,null=True)
  142. remark = models.TextField(u"备注", blank=True,null=True)
  143. openid = models.CharField(u"微信openid", max_length=64, blank=True,null=True)
  144. avatar = models.CharField(u"手机号", max_length=64, blank=True,null=True)
  145. nickname = models.CharField(u"手机号", max_length=64, blank=True,null=True)
  146. vcard = models.TextField(u"电子名片", blank=True,null=True)
  147. utype = models.SmallIntegerField(u"用户类型", blank=True,null=True,default=2)
  148. status = models.SmallIntegerField(u"状态(0删除)",default=1)
  149. verify = models.SmallIntegerField(u"是否实名认证(0/1)",default=0,blank=True,null=True)
  150. permissions = models.TextField(u"权限", blank=True,null=True)
  151. userinfo = models.TextField(u"权限", blank=True,null=True)
  152. last_login = models.CharField(u"上次登录时间", max_length=128, blank=True,null=True,db_column='last_login_time')
  153. last_login_ip = models.CharField(u"上次登录IP", max_length=128, blank=True,null=True)
  154. is_active = models.CharField(u"是否激活可用", max_length=4, default="1")
  155. # 功能权限及数据权限
  156. #department = models.ForeignKey("Department", verbose_name=u"所属部门", blank=True, null=True)
  157. user_wx_id = models.IntegerField(u"老系统用户id",blank=True,null=True)
  158. cid = models.IntegerField(u"创建人ID",blank=True,null=True)
  159. cperson = models.CharField(u"创建人", max_length=255, blank=True,null=True)
  160. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  161. class Meta:
  162. db_table = "users"
  163. verbose_name = u"用户信息"
  164. app_label = "common"
  165. def __str__(self):
  166. return u"{}){}".format(self.id, self.email)
  167. def is_authenticated(self):
  168. return True
  169. def is_anonymous(self):
  170. return False
  171. class OperationLogConfig(models.Model):
  172. """操作日志模板配置
  173. """
  174. op_view = models.CharField(u"操作模块", max_length=100,blank=True,null=True)
  175. op_action_flag = models.CharField(u"操作类型", max_length=50)
  176. op_module = models.CharField(u"操作模块",max_length=255,blank=True,null=True)
  177. op_template = models.TextField(u"操作日志模板")
  178. op_url = models.CharField(u"URL", max_length=255)
  179. op_request = models.TextField(u"请求参数", max_length=255, blank=True, null=True)
  180. op_response = models.TextField(u"URL", max_length=255, blank=True, null=True)
  181. order = models.IntegerField(u"排序字段",blank=True,null=True)
  182. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  183. class Meta:
  184. db_table = "oplog_config"
  185. verbose_name = u"操作日志配置"
  186. class OperationLog(models.Model):
  187. """操作日志
  188. """
  189. op_user_name = models.CharField(u"操作员名称",max_length=255)
  190. op_user_realname = models.CharField(u"操作员姓名",max_length=255)
  191. op_user_id = models.IntegerField(u"操作员id")
  192. op_user_ip = models.CharField(u"操作员ip",max_length=100)
  193. op_config = models.ForeignKey(OperationLogConfig)
  194. op_request = models.TextField(u"request body", default="")
  195. is_suc = models.BooleanField(u"是否成功", default=True)
  196. error_msg = models.TextField(u"错误信息", max_length=255, blank=True, null=True)
  197. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  198. class Meta:
  199. db_table = "oplog"
  200. verbose_name = u"操作日志"
  201. class MsgNotice(models.Model):
  202. """短信通知
  203. """
  204. receiver = models.TextField(u"接收人集合", blank=True)
  205. receiver_name = models.CharField(u'接收人id', max_length=256, blank=True)
  206. template = models.CharField(u'模板id', blank=True, max_length=128)
  207. content = models.TextField(u"邮件内容", max_length=32, blank=True)
  208. is_suc = models.BooleanField(u"是否成功", default=False)
  209. error_msg = models.TextField(u'报错信息', blank=True,null=True)
  210. send_type = models.CharField(u"发送方式(手动、自动)", max_length=12, blank=True)
  211. cid = models.IntegerField(u"创建人ID",blank=True,null=True)
  212. cperson = models.CharField(u'邮件主题', blank=True, max_length=128,null=True)
  213. ctime = models.DateTimeField(u"创建时间(发送时间)", auto_now_add=True)
  214. class Meta:
  215. db_table = "msg_notice"
  216. verbose_name = u"短信通知"
  217. class SysNotice(models.Model):
  218. """系统通知
  219. """
  220. title = models.CharField(u'标题', max_length=256, blank=True)
  221. content = models.TextField(u"内容", max_length=32, blank=True)
  222. viewer = models.TextField(u"查看人", max_length=32, blank=True,null=True)
  223. to = models.TextField(u"接收人", max_length=32, blank=True,null=True)
  224. cid = models.IntegerField(u"创建人ID",blank=True,null=True)
  225. ctime = models.DateTimeField(u"创建时间(发送时间)", auto_now_add=True)
  226. class Meta:
  227. db_table = "sys_notice"
  228. verbose_name = u"系统通知"
  229. class ClassRoom(models.Model):
  230. """课程
  231. """
  232. CAT_CHO = (
  233. (1,u"python教程"),
  234. (2,u"爬虫教程"),
  235. (3,u"Sanic教程")
  236. )
  237. title = models.CharField(u"标题",max_length=100)
  238. cat = models.SmallIntegerField(u"分类",choices=CAT_CHO,default=1)
  239. img = models.ImageField(u"封面图",max_length=100,default="")
  240. intro = models.CharField(u"课程简介",max_length=255,default="")
  241. content = models.TextField(u"课程详情",default="")
  242. create_date = models.DateTimeField(u"创建时间",auto_now=True)
  243. update_date = models.DateTimeField(u"修改时间",auto_now=True)
  244. def __unicode__(self):
  245. return self.title
  246. class Meta:
  247. db_table = 'classroom'
  248. verbose_name = u'课程管理'
  249. verbose_name_plural = u'课程管理'
  250. class Lessons(models.Model):
  251. """视频
  252. """
  253. classroom = models.ForeignKey(ClassRoom,related_name="lessons")
  254. title = models.CharField(u"标题",max_length=100,default="")
  255. img = models.ImageField(u"封面图",default="")
  256. turl = models.CharField(u"试看地址",default="",max_length=255)
  257. url = models.FileField(u"视频地址",default="")
  258. enc_url = models.TextField(u"视频地址",default="",blank=True,null=True)
  259. charge = models.BooleanField(u"是否收费",default=False)
  260. iv = models.CharField(u"iv",default="",max_length=255,blank=True,null=True)
  261. create_date = models.DateTimeField(u"创建时间",auto_now=True)
  262. update_date = models.DateTimeField(u"修改时间",auto_now=True)
  263. def __unicode__(self):
  264. return self.title
  265. class Meta:
  266. db_table = 'lessons'
  267. verbose_name = u'视频管理'
  268. verbose_name_plural = u'视频管理'
  269. class Questions(models.Model):
  270. """试题
  271. """
  272. qtype = models.IntegerField(u"题型")
  273. title = models.TextField(u"试题标题",default="")
  274. options = models.TextField(u"选项",blank=True,null=True)
  275. answer = models.TextField(u"选项",blank=True,null=True)
  276. analysis = models.TextField(u"题目解析",blank=True,null=True)
  277. score = models.IntegerField(u"分数",blank=True,null=True)
  278. ctime = models.DateTimeField(u"创建时间",auto_now=True)
  279. def __unicode__(self):
  280. return self.title
  281. class Meta:
  282. db_table = 'questions'
  283. verbose_name = u'试题'
  284. verbose_name_plural = u'试题'
  285. class Papers(models.Model):
  286. """试卷
  287. """
  288. title = models.CharField(u"标题",max_length=100,default="")
  289. subject_id = models.IntegerField(u"科目id",blank=True,null=True)
  290. subject_item = models.CharField(u"培训科目",max_length=255,default="")
  291. train_type = models.CharField(u"培训类型",max_length=255,default="")
  292. total_score = models.IntegerField(u"总分",blank=True,null=True)
  293. total_time = models.IntegerField(u"总时间",blank=True,null=True)
  294. questions = models.ManyToManyField(Questions,blank=True,null=True)
  295. ctime = models.DateTimeField(u"创建时间",auto_now=True)
  296. def __unicode__(self):
  297. return self.title
  298. class Meta:
  299. db_table = 'paper'
  300. verbose_name = u'试卷管理'
  301. verbose_name_plural = u'试卷管理'
  302. class PostPapers(models.Model):
  303. """试卷
  304. """
  305. title = models.CharField(u"标题",max_length=100,default="")
  306. paper_id = models.IntegerField(u"试卷id",blank=True,null=True)
  307. user_id = models.IntegerField(u"用户id",blank=True,null=True)
  308. questions = models.TextField(u"答案",blank=True,null=True)
  309. score = models.FloatField(u"得分",blank=True,null=True)
  310. ctime = models.DateTimeField(u"创建时间",auto_now=True)
  311. def __unicode__(self):
  312. return self.title
  313. class Meta:
  314. db_table = 'post_paper'
  315. verbose_name = u'答题记录'
  316. verbose_name_plural = u'答题记录'
  317. class Videos(models.Model):
  318. """视频
  319. """
  320. subject_id = models.IntegerField(u"科目id",blank=True,null=True)
  321. subject_item = models.CharField(u"培训科目",max_length=255,default="")
  322. train_type = models.CharField(u"培训类型",max_length=255,default="")
  323. title = models.CharField(u"标题",max_length=100,default="")
  324. img = models.ImageField(u"封面图",default="")
  325. url = models.FileField(u"视频地址",default="")
  326. enc_url = models.TextField(u"视频地址",default="",blank=True,null=True)
  327. ctime = models.DateTimeField(u"创建时间",auto_now=True)
  328. def __unicode__(self):
  329. return self.title
  330. class Meta:
  331. db_table = 'videos'
  332. verbose_name = u'视频管理'
  333. verbose_name_plural = u'视频管理'
  334. class Docs(models.Model):
  335. """视频
  336. """
  337. name = models.CharField(u"资料名称",max_length=100,default="")
  338. url = models.FileField(u"视频地址",default="")
  339. ctime = models.DateTimeField(u"创建时间",auto_now=True)
  340. def __unicode__(self):
  341. return self.name
  342. class Meta:
  343. db_table = 'docs'
  344. verbose_name = u'资料管理'
  345. verbose_name_plural = u'资料管理'