models.py 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746
  1. # coding=utf-8
  2. '''
  3. '''
  4. from django.db import models
  5. class UserInfo(models.Model):
  6. """用户表
  7. """
  8. username = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  9. usercode = models.CharField(u"用户代码", max_length=255, blank=True,null=True)
  10. password = models.CharField(u"密码", max_length=255, blank=True,null=True)
  11. realname = models.CharField(u"真实名称", max_length=255, blank=True, null=True)
  12. openid = models.CharField(u"微信openid", max_length=64, blank=True,null=True)
  13. avatar = models.TextField(u"手机号", max_length=255, blank=True,null=True)
  14. nickname = models.CharField(u"手机号", max_length=64, blank=True,null=True)
  15. is_bind = models.SmallIntegerField(u"是否绑定",default=0)
  16. utype = models.SmallIntegerField(u"是否激活可用",default=0)
  17. zq = models.CharField(u"周期", max_length=255, blank=True, null=True)
  18. cw = models.CharField(u"仓位", max_length=255, blank=True, null=True)
  19. df = models.CharField(u"打法", max_length=255, blank=True, null=True)
  20. pz = models.CharField(u"品种", max_length=255, blank=True, null=True)
  21. account_img = models.TextField(u"账号截图", max_length=255, blank=True, null=True)
  22. join_time = models.CharField(u"入市时间", max_length=255, blank=True, null=True)
  23. badge = models.CharField(u"选手标识", max_length=255,blank=True,null=True,default=u"选手")
  24. phone = models.CharField(u"手机号", max_length=64, blank=True,null=True)
  25. role = models.SmallIntegerField(u"角色0/游客,1/普通选手,2/免费参赛选手",default=0)
  26. player_type = models.SmallIntegerField(u"选手类型,0/游客,1/普通选手,2/种子选手,3/开户选手",default=0)
  27. comment_status = models.SmallIntegerField(u"1/正常,0/拉黑",default=1)
  28. unionid = models.CharField(u"微信unionid", max_length=64, blank=True,null=True)
  29. app_openid = models.CharField(u"微信openid", max_length=64, blank=True,null=True)
  30. intro = models.TextField(u"用户简介", blank=True, null=True)
  31. forbid_status = models.SmallIntegerField(u"1/forbid,0/unforbid",default=0)
  32. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  33. class Meta:
  34. db_table = "users"
  35. verbose_name = u"用户信息"
  36. app_label = "common"
  37. def __str__(self):
  38. return u"{}){}".format(self.id, self.username)
  39. def is_authenticated(self):
  40. return True
  41. def is_anonymous(self):
  42. return False
  43. class Player(models.Model):
  44. """参数选手
  45. """
  46. user_id = models.IntegerField(u"用户id", blank=True,null=True)
  47. username = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  48. usercode = models.CharField(u"用户代码", max_length=255, blank=True,null=True)
  49. match_id = models.IntegerField(u"比赛id", blank=True,null=True)
  50. match_name = models.CharField(u"比赛名称", max_length=255,blank=True,null=True)
  51. match_group = models.CharField(u"比赛分组", max_length=255,blank=True,null=True)
  52. match_group_name = models.CharField(u"比赛分组名称", max_length=255,blank=True,null=True)
  53. fund = models.FloatField(u"资金",default=0.0)
  54. match_status = models.SmallIntegerField(u"比赛状态,退赛/暂停/比赛中-1/0/1",default=0)
  55. badge = models.CharField(u"选手标识", max_length=255,blank=True,null=True,default=u"选手")
  56. role = models.SmallIntegerField(u"角色",default=0)
  57. player_type = models.SmallIntegerField(u"选手类型,0/游客,1/普通选手,2/种子选手,3/开户选手",default=1)
  58. phone = models.CharField(u"手机号", max_length=50,blank=True,null=True)
  59. opmode_group = models.CharField(u"操作模式分组", max_length=255,blank=True,null=True)
  60. opmode_group_name = models.CharField(u"操作模式分组名称", max_length=255,blank=True,null=True)
  61. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  62. class Meta:
  63. db_table = "player"
  64. verbose_name = u"参数选手"
  65. app_label = "common"
  66. def __str__(self):
  67. return u"{}){}".format(self.id, self.username)
  68. class PlayerRecord(models.Model):
  69. """参数选手数据
  70. """
  71. user_id = models.IntegerField(u"用户id", blank=True,null=True)
  72. player_id = models.IntegerField(u"用户id", blank=True,null=True)
  73. username = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  74. usercode = models.CharField(u"用户代码", max_length=255, blank=True,null=True)
  75. match_id = models.IntegerField(u"比赛id", blank=True,null=True)
  76. stock_date = models.CharField(u"持股日期", max_length=255,blank=True,null=True)
  77. match_name = models.CharField(u"比赛名称", max_length=255,blank=True,null=True)
  78. match_group = models.CharField(u"比赛分组", max_length=255,blank=True,null=True)
  79. init_fund = models.FloatField(u"初始资金",blank=True,null=True)
  80. yesterday_fund = models.FloatField(u"昨日资金",blank=True,null=True)
  81. today_fund = models.FloatField(u"今日资金",blank=True,null=True)
  82. yesterday_stock = models.TextField(u"昨日持股",blank=True,null=True)
  83. today_stock = models.TextField(u"今日持股",blank=True,null=True)
  84. yesterday_stock_img = models.TextField(u"昨日持股截图",blank=True,null=True)
  85. today_stock_img = models.TextField(u"今日持股截图",blank=True,null=True)
  86. today_income = models.FloatField(u"今日收益",blank=True,null=True)
  87. total_income = models.FloatField(u"总收益",blank=True,null=True)
  88. rank = models.IntegerField(u"排名", blank=True,null=True)
  89. group_rank = models.IntegerField(u"分组排名", blank=True,null=True)
  90. is_markt = models.SmallIntegerField(u"是否开超市",default=0)
  91. yesterday_is_markt = models.SmallIntegerField(u"昨日是否开超市",default=0)
  92. auto_complete = models.SmallIntegerField(u"请假次数",default=0)
  93. yesterday_auto_complete = models.SmallIntegerField(u"请假次数",default=0)
  94. wanzhu_comment = models.TextField(u"点评",blank=True,null=True)
  95. experience = models.TextField(u"操盘总结/今日反思",blank=True,null=True)
  96. zq = models.CharField(u"周期", max_length=255, blank=True, null=True)
  97. cw = models.CharField(u"仓位", max_length=255, blank=True, null=True)
  98. df = models.CharField(u"打法", max_length=255, blank=True, null=True)
  99. pz = models.CharField(u"品种", max_length=255, blank=True, null=True)
  100. badge = models.CharField(u"选手标识", max_length=255,blank=True,null=True,default=u"选手")
  101. zans = models.IntegerField(u"点赞数", blank=True,null=True,default=0)
  102. comments_count = models.IntegerField(u"点赞数", blank=True,null=True,default=0)
  103. opmode_group = models.IntegerField(u"操作模式分组", blank=True,null=True)
  104. opmode_group_name = models.CharField(u"操作模式分组名称", max_length=255,blank=True,null=True)
  105. today_stock_total = models.FloatField(u"今日持仓总额",blank=True,null=True)
  106. today_cangwei = models.FloatField(u"今日仓位",blank=True,null=True)
  107. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  108. #class Meta:
  109. # db_table = "player_record"
  110. # verbose_name = u"参数选手"
  111. # app_label = "common"
  112. #def __str__(self):
  113. # return u"{}){}".format(self.id, self.username)
  114. @classmethod
  115. def get_db_model(cls,match_id):
  116. table_name = "player_record_%s" % match_id
  117. if table_name in cls._db_model_dict:
  118. return cls._db_model_dict[table_name]
  119. class Meta:
  120. db_table = table_name
  121. attrs = {
  122. "__module__":cls.__module__,
  123. "Meta":Meta
  124. }
  125. db_model = type(str(table_name),(cls,),attrs)
  126. cls._db_model_dict[table_name] = db_model
  127. return db_model
  128. _db_model_dict = {}
  129. class Meta:
  130. abstract = True
  131. class Match(models.Model):
  132. """比赛数据
  133. """
  134. name = models.CharField(u"名称", max_length=255, blank=True,null=True)
  135. start_time = models.CharField(u"开始时间", max_length=255, blank=True,null=True)
  136. end_time = models.CharField(u"结束时间", max_length=255, blank=True,null=True)
  137. groups = models.TextField(u"结束时间", max_length=255, blank=True,null=True)
  138. calendar = models.TextField(u"报单日历", max_length=255, blank=True,null=True)
  139. valid_dates = models.TextField(u"有效报单时间", max_length=255, blank=True,null=True)
  140. player_price = models.FloatField(u"选手价格", blank=True,null=True)
  141. viewer_price = models.FloatField(u"游客价格", blank=True,null=True)
  142. match_status = models.SmallIntegerField(u"赛事状态1/待发布,2/开始报名,3/比赛中,4/比赛结束", blank=True,null=True,default=1)
  143. signup_start_time = models.CharField(u"报名开始时间", max_length=255, blank=True,null=True)
  144. signup_end_time = models.CharField(u"报名结束时间", max_length=255, blank=True,null=True)
  145. post_start_time = models.CharField(u"交作业开始时间", max_length=255, blank=True,null=True)
  146. awards_content = models.TextField(u"奖项内容", max_length=255, blank=True,null=True)
  147. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  148. class Meta:
  149. db_table = "match"
  150. verbose_name = u"比赛数据"
  151. app_label = "common"
  152. def __str__(self):
  153. return u"{}){}".format(self.id, self.name)
  154. class MatchGroup(models.Model):
  155. """比赛分组
  156. """
  157. match_id = models.IntegerField(u"比赛id", blank=True,null=True)
  158. name = models.CharField(u"名称", max_length=255, blank=True,null=True)
  159. is_active = models.SmallIntegerField(u"是否显示",default=1)
  160. order = models.IntegerField(u"排序字段",default=1)
  161. charge = models.IntegerField(u"是否收费1/收费0/免费",default=1)
  162. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  163. class Meta:
  164. db_table = "match_group"
  165. verbose_name = u"比赛分组"
  166. app_label = "common"
  167. def __str__(self):
  168. return u"{}){}".format(self.id, self.username)
  169. class Stock(models.Model):
  170. """股票信息表
  171. """
  172. name = models.CharField(u"名称", max_length=255, blank=True,null=True)
  173. code = models.CharField(u"代码", max_length=255, blank=True,null=True)
  174. img = models.TextField(u"封面图",blank=True,null=True)
  175. desc = models.TextField(u"内容",blank=True,null=True)
  176. user_num = models.IntegerField(u"持股人数",blank=False,null=False,default=0)
  177. comments_num = models.IntegerField(u"留言条数",blank=False,null=False,default=0)
  178. choice_num = models.IntegerField(u"自选人数",blank=False,null=False,default=0)
  179. stock_date = models.CharField(u"持股日期", max_length=255,blank=True,null=True)
  180. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  181. class Meta:
  182. db_table = "stock"
  183. verbose_name = u"股票"
  184. app_label = "common"
  185. def __str__(self):
  186. return u"{}){}".format(self.id, self.name)
  187. class SysUserInfo(models.Model):
  188. # 基础属性
  189. name = models.CharField(u"名字", max_length=255, blank=True,null=True)
  190. phone = models.CharField(u"手机号", max_length=255, blank=True,null=True)
  191. password = models.CharField(u"密码", max_length=255, blank=True,null=True)
  192. realname = models.CharField(u"真实名称", max_length=255, blank=True, null=True)
  193. permissions = models.TextField(u"权限", blank=True,null=True)
  194. is_active = models.SmallIntegerField(u"是否激活可用",default=0)
  195. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  196. last_login = models.DateTimeField(u"创建时间", blank=True,null=True)
  197. class Meta:
  198. db_table = "sys_users"
  199. verbose_name = u"系统用户信息"
  200. app_label = "common"
  201. def __str__(self):
  202. return u"{}){}".format(self.id, self.name)
  203. def is_authenticated(self):
  204. return True
  205. def is_anonymous(self):
  206. return False
  207. class OperationLogConfig(models.Model):
  208. """操作日志模板配置
  209. """
  210. op_view = models.CharField(u"操作模块", max_length=100,blank=True,null=True)
  211. op_action_flag = models.CharField(u"操作类型", max_length=50)
  212. op_module = models.CharField(u"操作模块",max_length=255,blank=True,null=True)
  213. op_template = models.TextField(u"操作日志模板")
  214. op_url = models.CharField(u"URL", max_length=255)
  215. op_response = models.TextField(u"URL", max_length=255, blank=True, null=True)
  216. order = models.IntegerField(u"排序字段",blank=True,null=True)
  217. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  218. class Meta:
  219. db_table = "oplog_config"
  220. verbose_name = u"操作日志配置"
  221. class OperationLog(models.Model):
  222. """操作日志
  223. """
  224. op_user_name = models.CharField(u"操作员名称",max_length=255)
  225. op_user_realname = models.CharField(u"操作员姓名",max_length=255)
  226. op_user_id = models.IntegerField(u"操作员id")
  227. op_user_ip = models.CharField(u"操作员ip",max_length=100)
  228. op_config = models.ForeignKey(OperationLogConfig)
  229. op_request = models.TextField(u"request body", default="")
  230. is_suc = models.BooleanField(u"是否成功", default=True)
  231. error_msg = models.TextField(u"错误信息", max_length=255, blank=True, null=True)
  232. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  233. class Meta:
  234. db_table = "oplog"
  235. verbose_name = u"操作日志"
  236. class Article(models.Model):
  237. # 基础属性
  238. name = models.CharField(u"标题", max_length=255, blank=True,null=True)
  239. type = models.CharField(u"类型", max_length=255, blank=True,null=True)
  240. img = models.TextField(u"封面图",blank=True,null=True)
  241. content = models.TextField(u"内容",blank=True,null=True)
  242. status = models.SmallIntegerField(u"下线/上线/编辑中-1/2/1",default=1)
  243. isbanner = models.SmallIntegerField(u"是否banner",default=0)
  244. category = models.CharField(u"类型", max_length=255, blank=True,null=True)
  245. ishot = models.SmallIntegerField(u"是否精选",default=0)
  246. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  247. class Meta:
  248. db_table = "article"
  249. verbose_name = u"文章信息"
  250. app_label = "common"
  251. class test(models.Model):
  252. """测试
  253. """
  254. name = models.CharField(u"标题", max_length=255, blank=True,null=True)
  255. group_rank = models.IntegerField(u"排名",blank=True,null=True)
  256. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  257. class Meta:
  258. db_table = "test"
  259. verbose_name = u"测试表"
  260. app_label = "common"
  261. class UserFollows(models.Model):
  262. """用户关注表
  263. """
  264. player_id = models.IntegerField(u"选手id", blank=True,null=True)
  265. user_id = models.IntegerField(u"用户id", blank=True,null=True)
  266. follow_id = models.IntegerField(u"被关注选手id", blank=True,null=True)
  267. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  268. class Meta:
  269. db_table = "user_follows"
  270. verbose_name = u"用户关注表"
  271. app_label = "common"
  272. def __str__(self):
  273. return u"{}){}".format(self.id, self.user_id)
  274. class UserStock(models.Model):
  275. """选手持股情况
  276. """
  277. user_id = models.IntegerField(u"用户id", blank=True,null=True)
  278. player_id = models.IntegerField(u"选手id", blank=True,null=True)
  279. stock_id = models.IntegerField(u"股票id", blank=True,null=True)
  280. stock_date = models.CharField(u"持股日期", max_length=255,blank=True,null=True)
  281. stock_name = models.CharField(u"股票名称", max_length=255,blank=True,null=True)
  282. fund = models.FloatField(u"持股金额",blank=True,null=True)
  283. match_group = models.IntegerField(u"选手分组id", blank=True,null=True)
  284. opmode_group = models.IntegerField(u"选手操作模式分组id", blank=True,null=True)
  285. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  286. #class Meta:
  287. # db_table = "user_stock"
  288. # verbose_name = u"选手持股"
  289. # app_label = "common"
  290. #def __str__(self):
  291. # return u"{}){}".format(self.id, self.stock_name)
  292. @classmethod
  293. def get_db_model(cls,month):
  294. table_name = "user_stock_%s" % month
  295. if table_name in cls._db_model_dict:
  296. return cls._db_model_dict[table_name]
  297. class Meta:
  298. db_table = table_name
  299. attrs = {
  300. "__module__":cls.__module__,
  301. "Meta":Meta
  302. }
  303. db_model = type(str(table_name),(cls,),attrs)
  304. cls._db_model_dict[table_name] = db_model
  305. return db_model
  306. _db_model_dict = {}
  307. class Meta:
  308. abstract = True
  309. class WinDefendRank(models.Model):
  310. """胜率榜
  311. """
  312. match_id = models.IntegerField(u"选手id", blank=True,null=True)
  313. match_group = models.CharField(u"比赛分组", max_length=255,blank=True,null=True)
  314. user_id = models.IntegerField(u"用户id", blank=True,null=True)
  315. player_id = models.IntegerField(u"选手id", blank=True,null=True)
  316. username = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  317. today_fund = models.FloatField(u"资产",blank=True,null=True)
  318. total_income = models.FloatField(u"总收益",blank=True,null=True)
  319. win_rate = models.FloatField(u"胜率",blank=True,null=True)
  320. badest_income = models.FloatField(u"最大回撤",blank=True,null=True)
  321. zq = models.CharField(u"周期", max_length=255, blank=True, null=True)
  322. cw = models.CharField(u"仓位", max_length=255, blank=True, null=True)
  323. df = models.CharField(u"打法", max_length=255, blank=True, null=True)
  324. pz = models.CharField(u"品种", max_length=255, blank=True, null=True)
  325. auto_complete = models.SmallIntegerField(u"请假次数",default=0)
  326. match_status = models.SmallIntegerField(u"比赛状态,退赛/暂停/比赛中-1/0/1",default=1)
  327. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  328. class Meta:
  329. db_table = "win_defend_rank"
  330. verbose_name = u"胜率防守榜"
  331. app_label = "common"
  332. def __str__(self):
  333. return u"{}){}".format(self.id, self.username)
  334. class HotStockSellCount(models.Model):
  335. """热门清仓
  336. """
  337. stock_id = models.IntegerField(u"股票id", blank=True,null=True)
  338. stock_name = models.CharField(u"股票名称", blank=True,null=True,max_length=255)
  339. stock_date = models.CharField(u"持股日期", max_length=255,blank=True,null=True)
  340. seller_ids = models.TextField(u"清仓选手id",blank=True,null=True)
  341. count = models.IntegerField(u"清仓人数",default=1)
  342. class Meta:
  343. db_table = "hot_stock_seller"
  344. verbose_name = u"热门清仓"
  345. app_label = "common"
  346. def __str__(self):
  347. return u"{}){}".format(self.stock_id, self.stock_name)
  348. class SignupOrder(models.Model):
  349. """报名订单表
  350. """
  351. user_id = models.IntegerField(u"用户id",blank=True,null=True)
  352. player_id = models.IntegerField(u"选手id",blank=True,null=True)
  353. user_name = models.CharField(u"用户名",max_length=50,blank=True,null=True)
  354. match_id = models.IntegerField(u"比赛id",blank=True,null=True)
  355. match_name = models.CharField(u"比赛名称",max_length=50,blank=True,null=True)
  356. total_fee = models.FloatField(u"价格",blank=True,null=True)
  357. out_trade_no = models.CharField(u"订单号",max_length=50,blank=True,null=True)
  358. order_status = models.SmallIntegerField(u"订单状态",blank=True,null=True,default=0)
  359. pay_status = models.SmallIntegerField(u"支付状态",blank=True,null=True,default=0)
  360. pay_time = models.DateTimeField(u"支付时间",blank=True,null=True)
  361. signup_type = models.SmallIntegerField(u"报名类型1/游客,2/选手",blank=True,null=True)
  362. transaction_id = models.CharField(u"交易id",max_length=50,blank=True,null=True)
  363. remark = models.TextField(u"备注",max_length=50,blank=True,null=True)
  364. phone = models.CharField(u"手机号",max_length=50,blank=True,null=True)
  365. match_group = models.IntegerField(u"赛事分组",blank=True,null=True)
  366. signup_name = models.CharField(u"参赛名",max_length=50,blank=True,null=True)
  367. opmode_group = models.CharField(u"操作模式分组", max_length=255,blank=True,null=True)
  368. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  369. class Meta:
  370. db_table = "signup_order"
  371. verbose_name = u"报名订单表"
  372. app_label = "common"
  373. class Consult(models.Model):
  374. """顽主咨询
  375. """
  376. user_id = models.IntegerField(u"用户id",blank=True,null=True)
  377. user_name = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  378. user_code = models.CharField(u"用编号", max_length=255, blank=True,null=True)
  379. phone = models.CharField(u"手机号", max_length=255, blank=True,null=True)
  380. user_avatar = models.TextField(u"头像", max_length=255, blank=True,null=True)
  381. content = models.TextField(u"咨询内容", max_length=255, blank=True,null=True)
  382. reply_content = models.TextField(u"回复内容", max_length=255, blank=True,null=True)
  383. reply_status = models.SmallIntegerField(u"0/未回复,1/已回复",blank=True,null=True,default=0)
  384. view_status = models.SmallIntegerField(u"0/未读,1/已读",blank=True,null=True,default=0)
  385. width = models.IntegerField(u"宽度",blank=True,null=True)
  386. height = models.IntegerField(u"高度",blank=True,null=True)
  387. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  388. class Meta:
  389. db_table = "consult"
  390. verbose_name = u"顽主咨询"
  391. app_label = "common"
  392. class WanzhuConsult(models.Model):
  393. """顽主咨询
  394. """
  395. user_id = models.IntegerField(u"用户id",blank=True,null=True)
  396. user_name = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  397. user_code = models.CharField(u"用编号", max_length=255, blank=True,null=True)
  398. phone = models.CharField(u"手机号", max_length=255, blank=True,null=True)
  399. user_avatar = models.TextField(u"头像", max_length=255, blank=True,null=True)
  400. player_id = models.IntegerField(u"选手id",blank=True,null=True)
  401. content = models.TextField(u"咨询内容", max_length=255, blank=True,null=True)
  402. reply_content = models.TextField(u"回复内容", max_length=255, blank=True,null=True)
  403. reply_status = models.SmallIntegerField(u"0/未回复,1/已回复",blank=True,null=True,default=0)
  404. pid = models.IntegerField(u"上级id",blank=True,null=True)
  405. reply_user_id = models.IntegerField(u"回复用户id",blank=True,null=True)
  406. width = models.IntegerField(u"宽度",blank=True,null=True)
  407. height = models.IntegerField(u"高度",blank=True,null=True)
  408. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  409. class Meta:
  410. db_table = "wanzhu_consult"
  411. verbose_name = u"顽主咨询"
  412. app_label = "common"
  413. class Comments(models.Model):
  414. """作业评论
  415. """
  416. user_id = models.IntegerField(u"用户id",blank=True,null=True)
  417. user_name = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  418. user_avatar = models.TextField(u"头像", max_length=255, blank=True,null=True)
  419. player_id = models.IntegerField(u"选手id",blank=True,null=True)
  420. content = models.TextField(u"咨询内容", max_length=255, blank=True,null=True)
  421. record_id = models.IntegerField(u"作业id",blank=True,null=True)
  422. pid = models.IntegerField(u"上级id",blank=True,null=True)
  423. ip = models.CharField(u"ip地址", max_length=255, blank=True,null=True)
  424. location = models.CharField(u"地理位置", max_length=255, blank=True,null=True)
  425. stock_id = models.IntegerField(u"作业id",blank=True,null=True)
  426. stock_name = models.CharField(u"股票名称", max_length=255, blank=True,null=True)
  427. rank = models.IntegerField(u"排序",blank=True,null=True,default=1)
  428. istop = models.IntegerField(u"置顶",blank=True,null=True,default=0)
  429. match_id = models.IntegerField(u"比赛id", blank=True,null=True)
  430. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  431. class Meta:
  432. db_table = "comments"
  433. verbose_name = u"评论"
  434. app_label = "common"
  435. class UserChoice(models.Model):
  436. """跟踪/自选
  437. """
  438. user_id = models.IntegerField(u"用户id",blank=True,null=True)
  439. user_name = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  440. user_avatar = models.TextField(u"头像", max_length=255, blank=True,null=True)
  441. player_id = models.IntegerField(u"选手id",blank=True,null=True)
  442. stock_id = models.IntegerField(u"股票id",blank=True,null=True)
  443. stock_name = models.CharField(u"股票名称", max_length=255,blank=True,null=True)
  444. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  445. class Meta:
  446. db_table = "user_choice"
  447. verbose_name = u"跟踪/自选"
  448. app_label = "common"
  449. class FundInOut(models.Model):
  450. """资金出入
  451. """
  452. user_id = models.IntegerField(u"用户id",blank=True,null=True)
  453. fundin = models.FloatField(u"资金入",default=0.0)
  454. fundout = models.FloatField(u"资金出",default=0.0)
  455. stock_date = models.CharField(u"持股日期", max_length=255,blank=True,null=True)
  456. account_img = models.TextField(u"账号截图", max_length=255, blank=True, null=True)
  457. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  458. class Meta:
  459. db_table = "fund_inout"
  460. verbose_name = u"资金出入"
  461. app_label = "common"
  462. class UserMatch(models.Model):
  463. """用户参赛信息
  464. """
  465. user_id = models.IntegerField(u"用户id", blank=True,null=True)
  466. signup_name = models.CharField(u"参赛名", max_length=255,blank=True,null=True)
  467. match_id = models.IntegerField(u"比赛id", blank=True,null=True)
  468. match_group = models.CharField(u"比赛分组", max_length=255,blank=True,null=True)
  469. match_status = models.SmallIntegerField(u"比赛状态,退赛/暂停/比赛中-1/0/1",default=0)
  470. fund = models.FloatField(u"初始资金",default=0.0)
  471. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  472. class Meta:
  473. db_table = "user_match"
  474. verbose_name = u"用户参赛信息(选手信息)"
  475. app_label = "common"
  476. def __str__(self):
  477. return u"{}){}".format(self.id, self.signup_name)
  478. #class PlayerRecordBase(models.Model):
  479. # """参数选手数据
  480. # """
  481. # user_id = models.IntegerField(u"用户id", blank=True,null=True)
  482. # player_id = models.IntegerField(u"用户id", blank=True,null=True)
  483. #
  484. # @classmethod
  485. # def get_db_model(cls,match_id):
  486. # table_name = "player_record_%s" % match_id
  487. # if table_name in cls._db_model_dict:
  488. # return cls._db_model_dict[table_name]
  489. # class Meta:
  490. # db_table = table_name
  491. #
  492. # attrs = {
  493. # "__module__":cls.__module__,
  494. # "Meta":Meta
  495. # }
  496. # db_model = type(table_name,(cls,),attrs)
  497. # cls._db_model_dict[table_name] = db_model
  498. # return db_model
  499. # _db_model_dict = {}
  500. # class Meta:
  501. # abstract = True
  502. class BaikeCategory(models.Model):
  503. """百科分类
  504. """
  505. name = models.CharField(u"政府名称", max_length=255, blank=True,null=True)
  506. parent_id = models.IntegerField(u"父级id",blank=True,null=True)
  507. parent_name = models.CharField(u"父级名称",blank=True,null=True,max_length=255)
  508. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  509. class Meta:
  510. db_table = "baike_category"
  511. verbose_name = u"百科分类"
  512. app_label = "common"
  513. class BaikeDetail(models.Model):
  514. """百科词条详情
  515. """
  516. category_id = models.IntegerField(u"父级id",blank=True,null=True)
  517. category_name = models.CharField(u"父级名称", max_length=255, blank=True,null=True)
  518. name = models.CharField(u"词条名称", max_length=255, blank=True,null=True)
  519. intro = models.CharField(u"词条简介", max_length=255, blank=True,null=True)
  520. content = models.TextField(u"词条详情", max_length=255, blank=True,null=True)
  521. cid = models.IntegerField(u"创建人id",blank=True,null=True)
  522. cname = models.CharField(u"创建人名称", max_length=255, blank=True,null=True)
  523. editor = models.CharField(u"editor", max_length=255, blank=True,null=True)
  524. status = models.SmallIntegerField(u"0/待发布,1/已发布",default=0)
  525. img = models.TextField(u"咨询图片", max_length=255, blank=True,null=True)
  526. istop = models.SmallIntegerField(u"1/置顶",default=0)
  527. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  528. class Meta:
  529. db_table = "baike_detail"
  530. verbose_name = u"百科词条详情"
  531. app_label = "common"
  532. class APPVersion(models.Model):
  533. """APP版本管理
  534. """
  535. name = models.CharField(u"词条名称", max_length=255, blank=True,null=True)
  536. version = models.CharField(u"词条名称", max_length=255, blank=True,null=True)
  537. android_url = models.CharField(u"安装包地址", max_length=255, blank=True,null=True)
  538. ios_url = models.CharField(u"安装包地址", max_length=255, blank=True,null=True)
  539. force = models.SmallIntegerField(u"0/待发布,1/已发布",default=0)
  540. android_version = models.CharField(u"安卓版本", max_length=255, blank=True,null=True)
  541. ctime = models.DateTimeField(u"创建时间",auto_now_add=True)
  542. class Meta:
  543. db_table = "app_version"
  544. verbose_name = u"app版本管理"
  545. app_label = "common"
  546. class StockComments(models.Model):
  547. """股票评论
  548. """
  549. stock_id = models.IntegerField(u"股票id",blank=True,null=True)
  550. stock_name = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  551. stock_code = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  552. img = models.TextField(u"咨询图片", max_length=255, blank=True,null=True)
  553. content = models.TextField(u"咨询内容", max_length=255, blank=True,null=True)
  554. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  555. class Meta:
  556. db_table = "stock_comments"
  557. verbose_name = u"股票点评"
  558. app_label = "common"
  559. class UserArticleRelation(models.Model):
  560. """用户文章关联
  561. """
  562. user_id = models.IntegerField(u"股票id",blank=True,null=True)
  563. user_name = models.CharField(u"用户名", max_length=255, blank=True,null=True)
  564. user_avatar = models.TextField(u"头像", max_length=255, blank=True,null=True)
  565. content = models.TextField(u"用户简介", max_length=255, blank=True,null=True)
  566. article_ids = models.TextField(u"文章id", max_length=255, blank=True,null=True)
  567. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  568. class Meta:
  569. db_table = "user_aritcle_relation"
  570. verbose_name = u"用户文章关联表"
  571. app_label = "common"
  572. class UserBlacks(models.Model):
  573. """用户黑名单
  574. """
  575. user = models.ForeignKey(UserInfo,related_name="user")
  576. black_user = models.ForeignKey(UserInfo,related_name="black_user")
  577. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  578. class Meta:
  579. db_table = "user_blacks"
  580. verbose_name = u"用户黑名单"
  581. app_label = "common"
  582. class OpModelGroup(models.Model):
  583. """操作模式分组
  584. """
  585. name = models.CharField(u"名称", max_length=255, blank=True,null=True)
  586. is_active = models.SmallIntegerField(u"是否显示",default=1)
  587. order = models.IntegerField(u"排序字段",default=1)
  588. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  589. class Meta:
  590. db_table = "opmodel_group"
  591. verbose_name = u"操作模式分组"
  592. app_label = "common"
  593. class UserMarkScore(models.Model):
  594. """用户打分
  595. """
  596. user_id = models.IntegerField(u"股票id",blank=True,null=True)
  597. stock_date = models.CharField(u"持股日期", max_length=255,blank=True,null=True)
  598. score = models.IntegerField(u"分数",blank=True,null=True)
  599. ctime = models.DateTimeField(u"创建时间", auto_now_add=True)
  600. class Meta:
  601. db_table = "user_markscore"
  602. verbose_name = u"用户评分"
  603. app_label = "common"