views.py 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537
  1. # coding=utf-8
  2. from __future__ import unicode_literals
  3. import requests
  4. import random,datetime,time
  5. import json
  6. import uuid
  7. from django.contrib import auth
  8. from django.core.cache import cache
  9. from django.conf import settings
  10. from django.http import FileResponse,HttpResponse
  11. from wsgiref.util import FileWrapper
  12. import common.error_info as ce
  13. from common import core_views as cv
  14. import common.common_control as ccc
  15. import common.common_functions as ccf
  16. import manage.control_auth as ca
  17. import manage.controls as ctl
  18. import common.models as cm
  19. class UploadFileView(cv.AdminView):
  20. def post(self, request):
  21. """
  22. #文件上传(平台管理后台)
  23. @file:"",文件对象
  24. @type:"",前端自定义参数
  25. """
  26. try:
  27. rst = ccc.upload_file(request)
  28. return cv.to_suc(rst)
  29. except Exception as e:
  30. cv.tracefail()
  31. return cv.to_fail(e)
  32. class UserInfoListView(cv.AdminView):
  33. def get(self, request):
  34. """#用户列表(平台管理后台)
  35. @username:"用户名"
  36. @usercode:"用户代码"
  37. @page:1
  38. @page_size:20
  39. """
  40. qdata = request.json
  41. try:
  42. total,rst = ctl.get_list_info(self,**qdata)
  43. return cv.to_suc({"total":total,"list":rst})
  44. except Exception as e:
  45. cv.tracefail()
  46. return cv.to_fail(e)
  47. class UserInfoView(cv.AdminView):
  48. def get(self, request):
  49. """#用户详情(平台管理后台)
  50. @id:1
  51. """
  52. qdata = request.json
  53. need_params = ["id"]
  54. mse = ccf.check_params(*need_params,**qdata)
  55. if mse:
  56. raise ce.TipException(mse)
  57. try:
  58. vals = ccf.get_need_params(*need_params,**qdata)
  59. rst = ctl.get_detail_info(self,**vals)
  60. return cv.to_suc(rst)
  61. except Exception as e:
  62. cv.tracefail()
  63. return cv.to_fail(e)
  64. def gen_code(self):
  65. """
  66. """
  67. code = ""
  68. while True:
  69. code = "".join([str(random.choice([0,1,2,3,5,6,7,8,9])) for x in range(0,6)])
  70. if cm.UserInfo.objects.filter(usercode=code).exists():
  71. time.sleep(0.1)
  72. continue
  73. break
  74. return code
  75. def post(self,request):
  76. """#新增用户(平台管理后台)
  77. @username:"用户名"
  78. @usercode:"用户代码(非必填限制6位数字)"
  79. """
  80. return cv.to_suc({})
  81. qdata = request.json
  82. need_params = ["username"]
  83. mse = ccf.check_params(*need_params,**qdata)
  84. if mse:
  85. raise ce.TipException(mse)
  86. try:
  87. need_params.extend(["usercode","badge","zq","cw","df","avatar","player_type","phone"])
  88. vals = ccf.get_need_params(*need_params,**qdata)
  89. if not vals.get("usercode"):
  90. vals["usercode"] = self.gen_code()
  91. rst = ctl.add_model(self,**vals)
  92. return cv.to_suc(rst)
  93. except Exception as e:
  94. cv.tracefail()
  95. return cv.to_fail(e)
  96. def put(self,request):
  97. """#修改账号(平台管理后台)
  98. @id:"1"
  99. @username:"用户名"
  100. @usercode:"用户代码(非必填限制6位数字)"
  101. @is_bind:"是否绑定",0/1
  102. """
  103. qdata = request.json
  104. need_params = ["id","username","usercode"]
  105. mse = ccf.check_params(*need_params,**qdata)
  106. if mse:
  107. raise ce.TipException(mse)
  108. try:
  109. need_params.extend(["is_bind","badge","zq","cw","df","avatar","player_type","phone"])
  110. vals = ccf.get_need_params(*need_params,**qdata)
  111. rst = ctl.update_model(self,**vals)
  112. return cv.to_suc(rst)
  113. except Exception as e:
  114. cv.tracefail()
  115. return cv.to_fail(e)
  116. def delete(self,request):
  117. """#删除用户(平台管理后台)
  118. @id:"1",多个逗号分隔
  119. """
  120. qdata = request.json
  121. need_params = ["id"]
  122. mse = ccf.check_params(*need_params,**qdata)
  123. if mse:
  124. raise ce.TipException(mse)
  125. try:
  126. vals = ccf.get_need_params(*need_params,**qdata)
  127. rst = ctl.delete_model(self,**vals)
  128. return cv.to_suc(rst)
  129. except Exception as e:
  130. cv.tracefail()
  131. return cv.to_fail(e)
  132. class PlayerListView(cv.AdminView):
  133. def get(self, request):
  134. """#选手列表(平台管理后台)
  135. @user_id:""
  136. @match_id:""
  137. @match_group:""
  138. @page:1
  139. @page_size:20
  140. """
  141. qdata = request.json
  142. try:
  143. total,rst = ctl.get_list_info(self,**qdata)
  144. return cv.to_suc({"total":total,"list":rst})
  145. except Exception as e:
  146. cv.tracefail()
  147. return cv.to_fail(e)
  148. class PlayerView(cv.AdminView):
  149. def get(self, request):
  150. """#选手详情(平台管理后台)
  151. @id:1
  152. """
  153. qdata = request.json
  154. need_params = ["id"]
  155. mse = ccf.check_params(*need_params,**qdata)
  156. if mse:
  157. raise ce.TipException(mse)
  158. try:
  159. vals = ccf.get_need_params(*need_params,**qdata)
  160. rst = ctl.get_detail_info(self,**vals)
  161. return cv.to_suc(rst)
  162. except Exception as e:
  163. cv.tracefail()
  164. return cv.to_fail(e)
  165. def post(self,request):
  166. """#新增选手(平台管理后台)
  167. @user_id:"用户id"
  168. @fund:"资金"
  169. @match_id:"比赛id"
  170. @match_group:"比赛分组"
  171. """
  172. qdata = request.json
  173. need_params = ["user_id","match_id","match_group"]
  174. mse = ccf.check_params(*need_params,**qdata)
  175. if mse:
  176. raise ce.TipException(mse)
  177. try:
  178. need_params.extend(["match_status","fund"])
  179. vals = ccf.get_need_params(*need_params,**qdata)
  180. vals["fund"] = round(float(vals.get("fund",0)),4)
  181. rst = ctl.add_model(self,**vals)
  182. return cv.to_suc(rst)
  183. except Exception as e:
  184. cv.tracefail()
  185. return cv.to_fail(e)
  186. def put(self,request):
  187. """#修改选手(平台管理后台)
  188. @id:"1"
  189. @fund:"资金"
  190. @match_id:"比赛id"
  191. @match_group:"比赛分组"
  192. """
  193. qdata = request.json
  194. need_params = ["id","user_id","match_id","match_group"]
  195. mse = ccf.check_params(*need_params,**qdata)
  196. if mse:
  197. raise ce.TipException(mse)
  198. try:
  199. need_params.extend(["match_status","fund","username"])
  200. vals = ccf.get_need_params(*need_params,**qdata)
  201. vals["fund"] = round(float(vals.get("fund",0)),4)
  202. rst = ctl.update_model(self,**vals)
  203. return cv.to_suc(rst)
  204. except Exception as e:
  205. cv.tracefail()
  206. return cv.to_fail(e)
  207. def delete(self,request):
  208. """#删除选手(平台管理后台)
  209. @id:"1",多个逗号分隔
  210. """
  211. qdata = request.json
  212. need_params = ["id"]
  213. mse = ccf.check_params(*need_params,**qdata)
  214. if mse:
  215. raise ce.TipException(mse)
  216. try:
  217. vals = ccf.get_need_params(*need_params,**qdata)
  218. rst = ctl.delete_model(self,**vals)
  219. return cv.to_suc(rst)
  220. except Exception as e:
  221. cv.tracefail()
  222. return cv.to_fail(e)
  223. class MatchListView(cv.AdminView):
  224. def get(self, request):
  225. """#赛事列表(平台管理后台)
  226. @name:""
  227. @page:1
  228. @page_size:20
  229. """
  230. qdata = request.json
  231. try:
  232. total,rst = ctl.get_list_info(self,**qdata)
  233. return cv.to_suc({"total":total,"list":rst})
  234. except Exception as e:
  235. cv.tracefail()
  236. return cv.to_fail(e)
  237. class MatchView(cv.AdminView):
  238. def get(self, request):
  239. """#赛事详情(平台管理后台)
  240. @id:1
  241. """
  242. qdata = request.json
  243. need_params = ["id"]
  244. mse = ccf.check_params(*need_params,**qdata)
  245. if mse:
  246. raise ce.TipException(mse)
  247. try:
  248. vals = ccf.get_need_params(*need_params,**qdata)
  249. rst = ctl.get_detail_info(self,**vals)
  250. return cv.to_suc(rst)
  251. except Exception as e:
  252. cv.tracefail()
  253. return cv.to_fail(e)
  254. def post(self,request):
  255. """#新增赛事(平台管理后台)
  256. @name:"赛事名称"
  257. @start_time:"开始时间"
  258. @end_time:"结束时间"
  259. """
  260. qdata = request.json
  261. need_params = ["name","start_time","end_time"]
  262. mse = ccf.check_params(*need_params,**qdata)
  263. if mse:
  264. raise ce.TipException(mse)
  265. try:
  266. need_params.extend(["calendar","valid_dates","player_price","viewer_price","match_status","signup_start_time","signup_end_time","post_start_time"])
  267. vals = ccf.get_need_params(*need_params,**qdata)
  268. vals["valid_dates"] = json.dumps(vals["valid_dates"])
  269. rst = ctl.add_model(self,**vals)
  270. return cv.to_suc(rst)
  271. except Exception as e:
  272. cv.tracefail()
  273. return cv.to_fail(e)
  274. def put(self,request):
  275. """#修改赛事(平台管理后台)
  276. @id:"1"
  277. @name:"赛事名称"
  278. @start_time:"开始时间"
  279. @end_time:"结束时间"
  280. """
  281. qdata = request.json
  282. need_params = ["id","name","start_time","end_time","player_price","viewer_price"]
  283. mse = ccf.check_params(*need_params,**qdata)
  284. if mse:
  285. raise ce.TipException(mse)
  286. try:
  287. need_params.extend(["calendar","valid_dates","signup_start_time","signup_end_time","match_status","post_start_time"])
  288. vals = ccf.get_need_params(*need_params,**qdata)
  289. vals["valid_dates"] = json.dumps(vals["valid_dates"])
  290. rst = ctl.update_model(self,**vals)
  291. return cv.to_suc(rst)
  292. except Exception as e:
  293. cv.tracefail()
  294. return cv.to_fail(e)
  295. def delete(self,request):
  296. """#删除赛事(平台管理后台)
  297. @id:"1",多个逗号分隔
  298. """
  299. qdata = request.json
  300. need_params = ["id"]
  301. mse = ccf.check_params(*need_params,**qdata)
  302. if mse:
  303. raise ce.TipException(mse)
  304. try:
  305. vals = ccf.get_need_params(*need_params,**qdata)
  306. rst = ctl.delete_model(self,**vals)
  307. return cv.to_suc(rst)
  308. except Exception as e:
  309. cv.tracefail()
  310. return cv.to_fail(e)
  311. class MatchGroupListView(cv.AdminView):
  312. def get(self, request):
  313. """#分组列表(平台管理后台)
  314. @name:""
  315. @page:1
  316. @page_size:20
  317. """
  318. qdata = request.json
  319. try:
  320. total,rst = ctl.get_list_info(self,**qdata)
  321. return cv.to_suc({"total":total,"list":rst})
  322. except Exception as e:
  323. cv.tracefail()
  324. return cv.to_fail(e)
  325. class MatchGroupView(cv.AdminView):
  326. def get(self, request):
  327. """#分组详情(平台管理后台)
  328. @id:1
  329. """
  330. qdata = request.json
  331. need_params = ["id"]
  332. mse = ccf.check_params(*need_params,**qdata)
  333. if mse:
  334. raise ce.TipException(mse)
  335. try:
  336. vals = ccf.get_need_params(*need_params,**qdata)
  337. rst = ctl.get_detail_info(self,**vals)
  338. return cv.to_suc(rst)
  339. except Exception as e:
  340. cv.tracefail()
  341. return cv.to_fail(e)
  342. def post(self,request):
  343. """#新增分组(平台管理后台)
  344. @match_id:"赛事id"
  345. @name:"分组名称"
  346. """
  347. qdata = request.json
  348. need_params = ["match_id","name"]
  349. mse = ccf.check_params(*need_params,**qdata)
  350. if mse:
  351. raise ce.TipException(mse)
  352. try:
  353. need_params.extend(["is_active"])
  354. vals = ccf.get_need_params(*need_params,**qdata)
  355. rst = ctl.add_model(self,**vals)
  356. return cv.to_suc(rst)
  357. except Exception as e:
  358. cv.tracefail()
  359. return cv.to_fail(e)
  360. def put(self,request):
  361. """#修改赛事(平台管理后台)
  362. @id:"1"
  363. @match_id:"赛事id"
  364. @name:"分组名称"
  365. """
  366. qdata = request.json
  367. need_params = ["id","match_id","name"]
  368. mse = ccf.check_params(*need_params,**qdata)
  369. if mse:
  370. raise ce.TipException(mse)
  371. try:
  372. need_params.extend(["is_active"])
  373. vals = ccf.get_need_params(*need_params,**qdata)
  374. rst = ctl.update_model(self,**vals)
  375. return cv.to_suc(rst)
  376. except Exception as e:
  377. cv.tracefail()
  378. return cv.to_fail(e)
  379. def delete(self,request):
  380. """#删除分组(平台管理后台)
  381. @id:"1",多个逗号分隔
  382. """
  383. qdata = request.json
  384. need_params = ["id"]
  385. mse = ccf.check_params(*need_params,**qdata)
  386. if mse:
  387. raise ce.TipException(mse)
  388. try:
  389. vals = ccf.get_need_params(*need_params,**qdata)
  390. rst = ctl.delete_model(self,**vals)
  391. return cv.to_suc(rst)
  392. except Exception as e:
  393. cv.tracefail()
  394. return cv.to_fail(e)
  395. class PlayerRecordListView(cv.AdminView):
  396. def get(self, request):
  397. """#数据列表(平台管理后台)
  398. @name:""
  399. @page:1
  400. @page_size:20
  401. """
  402. qdata = request.json
  403. try:
  404. total,rst = ctl.get_list_info(self,**qdata)
  405. return cv.to_suc({"total":total,"list":rst})
  406. except Exception as e:
  407. cv.tracefail()
  408. return cv.to_fail(e)
  409. class PlayerRecordView(cv.AdminView):
  410. def get(self, request):
  411. """#数据详情(平台管理后台)
  412. @id:1
  413. """
  414. qdata = request.json
  415. need_params = ["id","match_id"]
  416. mse = ccf.check_params(*need_params,**qdata)
  417. if mse:
  418. raise ce.TipException(mse)
  419. try:
  420. vals = ccf.get_need_params(*need_params,**qdata)
  421. rst = ctl.get_detail_info(self,**vals)
  422. return cv.to_suc(rst)
  423. except Exception as e:
  424. cv.tracefail()
  425. return cv.to_fail(e)
  426. def post(self,request):
  427. """#新增数据(平台管理后台)
  428. @player_id:"选手id"
  429. @match_id:"赛事id"
  430. @stock_date:"持股日期"
  431. @today_fund:"今日净资产"
  432. @today_stock:"今日持股"
  433. @today_stock_img:"今日持股截图"
  434. """
  435. qdata = request.json
  436. need_params = ["player_id","match_id","today_fund"]
  437. mse = ccf.check_params(*need_params,**qdata)
  438. if mse:
  439. raise ce.TipException(mse)
  440. try:
  441. need_params.extend(["stock_date","is_markt","today_stock","today_stock_img"])
  442. vals = ccf.get_need_params(*need_params,**qdata)
  443. vals["today_fund"] = round(float(vals["today_fund"]),4)
  444. rst = ctl.add_model(self,**vals)
  445. return cv.to_suc(rst)
  446. except Exception as e:
  447. cv.tracefail()
  448. return cv.to_fail(e)
  449. def put(self,request):
  450. """#修改数据(平台管理后台)
  451. @id:"1"
  452. @match_id:"赛事id"
  453. @name:"分组名称"
  454. """
  455. qdata = request.json
  456. need_params = ["id","user_id","match_id","today_fund"]
  457. mse = ccf.check_params(*need_params,**qdata)
  458. if mse:
  459. raise ce.TipException(mse)
  460. try:
  461. need_params.extend(["stock_date","is_markt","today_stock","today_stock_img","yesterday_fund","init_fund"])
  462. vals = ccf.get_need_params(*need_params,**qdata)
  463. vals["today_fund"] = round(float(vals["today_fund"]),4)
  464. vals["yesterday_fund"] = round(float(vals["yesterday_fund"]),4)
  465. vals["init_fund"] = round(float(vals["init_fund"]),4)
  466. rst = ctl.update_model(self,**vals)
  467. return cv.to_suc(rst)
  468. except Exception as e:
  469. cv.tracefail()
  470. return cv.to_fail(e)
  471. def delete(self,request):
  472. """#删除数据(平台管理后台)
  473. @id:"1",多个逗号分隔
  474. """
  475. qdata = request.json
  476. need_params = ["id","match_id"]
  477. mse = ccf.check_params(*need_params,**qdata)
  478. if mse:
  479. raise ce.TipException(mse)
  480. try:
  481. vals = ccf.get_need_params(*need_params,**qdata)
  482. rst = ctl.delete_model(self,**vals)
  483. return cv.to_suc(rst)
  484. except Exception as e:
  485. cv.tracefail()
  486. return cv.to_fail(e)
  487. class MatchSearchView(cv.AdminView):
  488. def get(self, request):
  489. """#比赛搜索列表(管理后台)
  490. @name:赛事名称
  491. """
  492. try:
  493. qdata = request.json
  494. rst = ctl.get_search_list(self,**qdata)
  495. return cv.to_suc(rst)
  496. except Exception as e:
  497. cv.tracefail()
  498. return cv.to_fail(e)
  499. class MatchGroupSearchView(cv.AdminView):
  500. def get(self, request):
  501. """#分组搜索列表(管理后台)
  502. @match_id:赛事id
  503. @name:分组名称
  504. """
  505. try:
  506. qdata = request.json
  507. rst = ctl.get_search_list(self,**qdata)
  508. return cv.to_suc(rst)
  509. except Exception as e:
  510. cv.tracefail()
  511. return cv.to_fail(e)
  512. class PlayerSearchView(cv.AdminView):
  513. def get(self, request):
  514. """#选手搜索列表(管理后台)
  515. @match_id:赛事id
  516. @username:选手名称
  517. """
  518. try:
  519. qdata = request.json
  520. rst = ctl.get_search_list(self,**qdata)
  521. return cv.to_suc(rst)
  522. except Exception as e:
  523. cv.tracefail()
  524. return cv.to_fail(e)
  525. class StockSearchView(cv.AdminView):
  526. def get(self, request):
  527. """#股票搜索列表(管理后台)
  528. @name:选手名称
  529. """
  530. try:
  531. qdata = request.json
  532. rst = ctl.get_search_list(self,**qdata)
  533. return cv.to_suc(rst)
  534. except Exception as e:
  535. cv.tracefail()
  536. return cv.to_fail(e)
  537. class UserInfoSearchView(cv.AdminView):
  538. def get(self, request):
  539. """#用户搜索列表(管理后台)
  540. @name:选手名称
  541. """
  542. try:
  543. qdata = request.json
  544. rst = ctl.get_search_list(self,**qdata)
  545. return cv.to_suc(rst)
  546. except Exception as e:
  547. cv.tracefail()
  548. return cv.to_fail(e)
  549. class PlayerRecordDownloadView(cv.AdminView):
  550. def get(self, request):
  551. """#数据详情(平台管理后台)
  552. @id:1
  553. """
  554. try:
  555. xlsdata = ctl.download_records(request)
  556. filename = u"%s参数数据.xls" % datetime.datetime.now().strftime("%Y-%m-%d")
  557. return cv.stream_file(xlsdata,"application/vnd.ms-excel",filename)
  558. except Exception as e:
  559. cv.tracefail()
  560. return cv.to_fail(e)
  561. class PlayerFastSaveView(cv.AdminView):
  562. def gen_code(self):
  563. """
  564. """
  565. code = ""
  566. while True:
  567. code = "".join([str(random.choice([0,1,2,3,5,6,7,8,9])) for x in range(0,6)])
  568. if cm.UserInfo.objects.filter(usercode=code).exists():
  569. time.sleep(0.1)
  570. continue
  571. break
  572. return code
  573. def post(self,request):
  574. """#快速创建用户与选手(平台管理后台)
  575. @username:"用户名"
  576. @usercode:"用户代码"
  577. @fund:"资金"
  578. @match_id:"比赛id"
  579. @match_group:"比赛分组"
  580. @match_status:"比赛状态"
  581. """
  582. qdata = request.json
  583. need_params = ["username","match_id","match_group"]
  584. mse = ccf.check_params(*need_params,**qdata)
  585. if mse:
  586. raise ce.TipException(mse)
  587. try:
  588. need_params.extend(["usercode","match_status","fund"])
  589. vals = ccf.get_need_params(*need_params,**qdata)
  590. if not vals.get("usercode"):
  591. vals["usercode"] = self.gen_code()
  592. if vals.get("fund"):
  593. vals["fund"] = round(float(vals["fund"]),4)
  594. rst = ctl.fast_save_player(**vals)
  595. return cv.to_suc(rst)
  596. except Exception as e:
  597. cv.tracefail()
  598. return cv.to_fail(e)
  599. class PlayerAutoRecordView(cv.AdminView):
  600. def post(self,request):
  601. """#自动补全数据(平台管理后台)
  602. """
  603. return cv.to_suc()
  604. qdata = request.json
  605. stock_date = qdata.get("stock_date")
  606. from tools.autocomplete_record import auto_gen_record
  607. auto_gen_record(stock_date)
  608. return cv.to_suc()
  609. class ArticleView(cv.AdminView):
  610. def get(self, request):
  611. """#赛事详情(平台管理后台)
  612. @id:1
  613. """
  614. qdata = request.json
  615. need_params = ["id"]
  616. mse = ccf.check_params(*need_params,**qdata)
  617. if mse:
  618. raise ce.TipException(mse)
  619. try:
  620. vals = ccf.get_need_params(*need_params,**qdata)
  621. rst = ctl.get_detail_info(self,**vals)
  622. return cv.to_suc(rst)
  623. except Exception as e:
  624. cv.tracefail()
  625. return cv.to_fail(e)
  626. def post(self,request):
  627. """#新增赛事(平台管理后台)
  628. @name:"赛事名称"
  629. @content:"详情"
  630. """
  631. qdata = request.json
  632. need_params = ["name","content","status"]
  633. mse = ccf.check_params(*need_params,**qdata)
  634. if mse:
  635. raise ce.TipException(mse)
  636. try:
  637. need_params.extend(["type","img","category","isbanner"])
  638. vals = ccf.get_need_params(*need_params,**qdata)
  639. rst = ctl.add_model(self,**vals)
  640. return cv.to_suc(rst)
  641. except Exception as e:
  642. cv.tracefail()
  643. return cv.to_fail(e)
  644. def put(self,request):
  645. """#修改赛事(平台管理后台)
  646. @id:"1"
  647. @name:"名称"
  648. @content:"详情"
  649. """
  650. qdata = request.json
  651. need_params = ["id","name","content","status"]
  652. mse = ccf.check_params(*need_params,**qdata)
  653. if mse:
  654. raise ce.TipException(mse)
  655. try:
  656. need_params.extend(["type","img","category","isbanner"])
  657. vals = ccf.get_need_params(*need_params,**qdata)
  658. rst = ctl.update_model(self,**vals)
  659. return cv.to_suc(rst)
  660. except Exception as e:
  661. cv.tracefail()
  662. return cv.to_fail(e)
  663. def delete(self,request):
  664. """#删除赛事(平台管理后台)
  665. @id:"1",多个逗号分隔
  666. """
  667. qdata = request.json
  668. need_params = ["id"]
  669. mse = ccf.check_params(*need_params,**qdata)
  670. if mse:
  671. raise ce.TipException(mse)
  672. try:
  673. vals = ccf.get_need_params(*need_params,**qdata)
  674. rst = ctl.delete_model(self,**vals)
  675. return cv.to_suc(rst)
  676. except Exception as e:
  677. cv.tracefail()
  678. return cv.to_fail(e)
  679. class ArticleListView(cv.AdminView):
  680. def get(self, request):
  681. """#文章列表(平台管理后台)
  682. @name:""
  683. @page:1
  684. @page_size:20
  685. """
  686. qdata = request.json
  687. try:
  688. total,rst = ctl.get_list_info(self,**qdata)
  689. return cv.to_suc({"total":total,"list":rst})
  690. except Exception as e:
  691. cv.tracefail()
  692. return cv.to_fail(e)
  693. class FlushRankView(cv.AdminView):
  694. def get(self, request):
  695. """#更新排名(平台管理后台)
  696. @name:""
  697. @page:1
  698. @page_size:20
  699. """
  700. qdata = request.json
  701. need_params = ["stock_date","match_id","groupId"]
  702. mse = ccf.check_params(*need_params,**qdata)
  703. if mse:
  704. raise ce.TipException(mse)
  705. try:
  706. stock_date = qdata.get("stock_date")
  707. match_id = qdata.get("match_id")
  708. groupId = qdata.get("groupId")
  709. ctl.update_group_rank(stock_date,match_id,groupId)
  710. return cv.to_suc()
  711. except Exception as e:
  712. cv.tracefail()
  713. return cv.to_fail(e)
  714. class StockView(cv.AdminView):
  715. def get(self, request):
  716. """#赛事详情(平台管理后台)
  717. @id:1
  718. """
  719. qdata = request.json
  720. need_params = ["id"]
  721. mse = ccf.check_params(*need_params,**qdata)
  722. if mse:
  723. raise ce.TipException(mse)
  724. try:
  725. vals = ccf.get_need_params(*need_params,**qdata)
  726. rst = ctl.get_detail_info(self,**vals)
  727. return cv.to_suc(rst)
  728. except Exception as e:
  729. cv.tracefail()
  730. return cv.to_fail(e)
  731. def post(self,request):
  732. """#新增股票(平台管理后台)
  733. @name:"赛事名称"
  734. @content:"详情"
  735. """
  736. qdata = request.json
  737. need_params = ["name","code"]
  738. mse = ccf.check_params(*need_params,**qdata)
  739. if mse:
  740. raise ce.TipException(mse)
  741. try:
  742. need_params.extend(["desc","img"])
  743. vals = ccf.get_need_params(*need_params,**qdata)
  744. rst = ctl.add_model(self,**vals)
  745. return cv.to_suc(rst)
  746. except Exception as e:
  747. cv.tracefail()
  748. return cv.to_fail(e)
  749. def put(self,request):
  750. """#修改股票(平台管理后台)
  751. @id:"1"
  752. @name:"名称"
  753. @content:"详情"
  754. """
  755. qdata = request.json
  756. need_params = ["id","name","code"]
  757. mse = ccf.check_params(*need_params,**qdata)
  758. if mse:
  759. raise ce.TipException(mse)
  760. try:
  761. need_params.extend(["desc","img"])
  762. vals = ccf.get_need_params(*need_params,**qdata)
  763. rst = ctl.update_model(self,**vals)
  764. return cv.to_suc(rst)
  765. except Exception as e:
  766. cv.tracefail()
  767. return cv.to_fail(e)
  768. def delete(self,request):
  769. """#删除股票(平台管理后台)
  770. @id:"1",多个逗号分隔
  771. """
  772. qdata = request.json
  773. need_params = ["id"]
  774. mse = ccf.check_params(*need_params,**qdata)
  775. if mse:
  776. raise ce.TipException(mse)
  777. try:
  778. vals = ccf.get_need_params(*need_params,**qdata)
  779. rst = ctl.delete_model(self,**vals)
  780. return cv.to_suc(rst)
  781. except Exception as e:
  782. cv.tracefail()
  783. return cv.to_fail(e)
  784. class PlayerRecordCommentView(cv.AdminView):
  785. def put(self,request):
  786. """#顽主点评(平台管理后台)
  787. @id:"1"
  788. @wanzhu_comment:"顽主点评"
  789. """
  790. qdata = request.json
  791. need_params = ["id","wanzhu_comment","match_id"]
  792. mse = ccf.check_params(*need_params,**qdata)
  793. if mse:
  794. raise ce.TipException(mse)
  795. try:
  796. vals = ccf.get_need_params(*need_params,**qdata)
  797. rst = ctl.update_comment(**vals)
  798. return cv.to_suc(rst)
  799. except Exception as e:
  800. cv.tracefail()
  801. return cv.to_fail(e)
  802. class StockListView(cv.AdminView):
  803. def get(self, request):
  804. """#股票仓库列表(平台管理后台)
  805. @name:"用户名"
  806. @page:1
  807. @page_size:20
  808. """
  809. qdata = request.json
  810. try:
  811. total,rst = ctl.get_list_info(self,**qdata)
  812. return cv.to_suc({"total":total,"list":rst})
  813. except Exception as e:
  814. cv.tracefail()
  815. return cv.to_fail(e)
  816. class ResetInitFundView(cv.AdminView):
  817. def post(self,request):
  818. """#重置初始资金(平台管理后台)
  819. @match_id:"1"
  820. """
  821. qdata = request.json
  822. need_params = ["match_id"]
  823. mse = ccf.check_params(*need_params,**qdata)
  824. if mse:
  825. raise ce.TipException(mse)
  826. try:
  827. vals = ccf.get_need_params(*need_params,**qdata)
  828. rst = ctl.reset_initfund(**vals)
  829. return cv.to_suc(rst)
  830. except Exception as e:
  831. cv.tracefail()
  832. return cv.to_fail(e)
  833. class SignupOrderListView(cv.AdminView):
  834. def get(self, request):
  835. """#订单列表(平台管理后台)
  836. @name:"用户名"
  837. @page:1
  838. @page_size:20
  839. """
  840. qdata = request.json
  841. try:
  842. total,rst = ctl.get_list_info(self,**qdata)
  843. return cv.to_suc({"total":total,"list":rst})
  844. except Exception as e:
  845. cv.tracefail()
  846. return cv.to_fail(e)
  847. class StockCommentsListView(cv.AdminView):
  848. def get(self, request):
  849. """#股票评论列表(平台管理后台)
  850. @name:"股票名称"
  851. @page:1
  852. @page_size:20
  853. """
  854. qdata = request.json
  855. try:
  856. total,rst = ctl.get_stock_comments_list(**qdata)
  857. return cv.to_suc({"total":total,"list":rst})
  858. except Exception as e:
  859. cv.tracefail()
  860. return cv.to_fail(e)
  861. class RecordCommentsListView(cv.AdminView):
  862. def get(self, request):
  863. """#作业评论列表(平台管理后台)
  864. @name:"股票名称"
  865. @page:1
  866. @page_size:20
  867. """
  868. qdata = request.json
  869. try:
  870. total,rst = ctl.get_record_comments_list(**qdata)
  871. return cv.to_suc({"total":total,"list":rst})
  872. except Exception as e:
  873. cv.tracefail()
  874. return cv.to_fail(e)
  875. class ConsultListView(cv.AdminView):
  876. def get(self, request):
  877. """#顽主咨询列表(平台管理后台)
  878. @name:"股票名称"
  879. @page:1
  880. @page_size:20
  881. """
  882. qdata = request.json
  883. try:
  884. total,rst = ctl.get_wanzhu_consult_list(**qdata)
  885. return cv.to_suc({"total":total,"list":rst})
  886. except Exception as e:
  887. cv.tracefail()
  888. return cv.to_fail(e)
  889. class WanzhuConsultView(cv.AdminView):
  890. def get(self, request):
  891. """#顽主咨询详情(平台管理后台)
  892. @id:1
  893. """
  894. qdata = request.json
  895. need_params = ["id"]
  896. mse = ccf.check_params(*need_params,**qdata)
  897. if mse:
  898. raise ce.TipException(mse)
  899. try:
  900. vals = ccf.get_need_params(*need_params,**qdata)
  901. rst = ctl.get_detail_info(self,**vals)
  902. return cv.to_suc(rst)
  903. except Exception as e:
  904. cv.tracefail()
  905. return cv.to_fail(e)
  906. def delete(self,request):
  907. """#删除咨询(平台管理后台)
  908. @id:"1",多个逗号分隔
  909. """
  910. qdata = request.json
  911. need_params = ["id"]
  912. mse = ccf.check_params(*need_params,**qdata)
  913. if mse:
  914. raise ce.TipException(mse)
  915. try:
  916. vals = ccf.get_need_params(*need_params,**qdata)
  917. rst = ctl.delete_consult(**vals)
  918. return cv.to_suc(rst)
  919. except Exception as e:
  920. cv.tracefail()
  921. return cv.to_fail(e)
  922. class WanzhuConsultReplyView(cv.AdminView):
  923. def post(self, request):
  924. """#顽主咨询回复(平台管理后台)
  925. @id:1
  926. """
  927. qdata = request.json
  928. need_params = ["reply_content","user_id"]
  929. mse = ccf.check_params(*need_params,**qdata)
  930. if mse:
  931. raise ce.TipException(mse)
  932. try:
  933. need_params.extend(["pid","action"])
  934. vals = ccf.get_need_params(*need_params,**qdata)
  935. rst = ctl.reply_wanzhu_consult(**vals)
  936. return cv.to_suc(rst)
  937. except Exception as e:
  938. cv.tracefail()
  939. return cv.to_fail(e)
  940. class SignupOrderView(cv.AdminView):
  941. def get(self, request):
  942. """#订单详情(平台管理后台)
  943. @id:1
  944. """
  945. qdata = request.json
  946. need_params = ["id"]
  947. mse = ccf.check_params(*need_params,**qdata)
  948. if mse:
  949. raise ce.TipException(mse)
  950. try:
  951. vals = ccf.get_need_params(*need_params,**qdata)
  952. rst = ctl.get_detail_info(self,**vals)
  953. return cv.to_suc(rst)
  954. except Exception as e:
  955. cv.tracefail()
  956. return cv.to_fail(e)
  957. def delete(self,request):
  958. """#删除订单(平台管理后台)
  959. @id:"1",多个逗号分隔
  960. """
  961. qdata = request.json
  962. need_params = ["id"]
  963. mse = ccf.check_params(*need_params,**qdata)
  964. if mse:
  965. raise ce.TipException(mse)
  966. try:
  967. vals = ccf.get_need_params(*need_params,**qdata)
  968. rst = ctl.delete_model(self,**vals)
  969. return cv.to_suc(rst)
  970. except Exception as e:
  971. cv.tracefail()
  972. return cv.to_fail(e)
  973. def put(self,request):
  974. """#修改订单(平台管理后台)
  975. @id:"1"
  976. @order_status:0/1/-1
  977. @remark:""
  978. """
  979. qdata = request.json
  980. need_params = ["id"]
  981. mse = ccf.check_params(*need_params,**qdata)
  982. if mse:
  983. raise ce.TipException(mse)
  984. try:
  985. need_params.extend(["order_status","remark"])
  986. vals = ccf.get_need_params(*need_params,**qdata)
  987. rst = ctl.update_model(self,**vals)
  988. return cv.to_suc(rst)
  989. except Exception as e:
  990. cv.tracefail()
  991. return cv.to_fail(e)
  992. class PlayerTypeView(cv.AdminView):
  993. def put(self,request):
  994. """#修改选手类型(平台管理后台)
  995. @player_id:"1"
  996. @player_type:0/1/2/3
  997. @phone:"",手机号
  998. """
  999. qdata = request.json
  1000. need_params = ["player_id"]
  1001. mse = ccf.check_params(*need_params,**qdata)
  1002. if mse:
  1003. raise ce.TipException(mse)
  1004. try:
  1005. need_params.extend(["player_type","phone","user_id"])
  1006. vals = ccf.get_need_params(*need_params,**qdata)
  1007. rst = ctl.update_player_type(**vals)
  1008. return cv.to_suc(rst)
  1009. except Exception as e:
  1010. cv.tracefail()
  1011. return cv.to_fail(e)
  1012. class CommentsTopView(cv.AdminView):
  1013. def put(self,request):
  1014. """#置顶与取消置顶(平台管理后台)
  1015. @id:"1"
  1016. """
  1017. qdata = request.json
  1018. need_params = ["id"]
  1019. mse = ccf.check_params(*need_params,**qdata)
  1020. if mse:
  1021. raise ce.TipException(mse)
  1022. try:
  1023. vals = ccf.get_need_params(*need_params,**qdata)
  1024. rst = ctl.comments_top(**vals)
  1025. return cv.to_suc(rst)
  1026. except Exception as e:
  1027. cv.tracefail()
  1028. return cv.to_fail(e)
  1029. class CommentsBlackView(cv.AdminView):
  1030. def put(self,request):
  1031. """#拉黑评论(平台管理后台)
  1032. @id:"1"
  1033. """
  1034. qdata = request.json
  1035. need_params = ["id"]
  1036. mse = ccf.check_params(*need_params,**qdata)
  1037. if mse:
  1038. raise ce.TipException(mse)
  1039. try:
  1040. vals = ccf.get_need_params(*need_params,**qdata)
  1041. rst = ctl.comments_black(**vals)
  1042. return cv.to_suc(rst)
  1043. except Exception as e:
  1044. cv.tracefail()
  1045. return cv.to_fail(e)
  1046. class CommentsView(cv.AdminView):
  1047. def delete(self,request):
  1048. """#删除用户(平台管理后台)
  1049. @id:"1",多个逗号分隔
  1050. """
  1051. qdata = request.json
  1052. need_params = ["id"]
  1053. mse = ccf.check_params(*need_params,**qdata)
  1054. if mse:
  1055. raise ce.TipException(mse)
  1056. try:
  1057. vals = ccf.get_need_params(*need_params,**qdata)
  1058. rst = ctl.delete_model(self,**vals)
  1059. return cv.to_suc(rst)
  1060. except Exception as e:
  1061. cv.tracefail()
  1062. return cv.to_fail(e)
  1063. class UeditorUploadView(cv.BaseView):
  1064. def get(self, request):
  1065. """#ueditor(管理后台)
  1066. @name:名称
  1067. """
  1068. try:
  1069. rst = '{"videoMaxSize":102400000,"videoActionName":"uploadvideo","fileActionName":"uploadfile","fileManagerListPath":"/ueditor/jsp/upload/file/","imageCompressBorder":1600,"imageManagerAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp"],"imageManagerListPath":"/ueditor/jsp/upload/image/","fileMaxSize":51200000,"fileManagerAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp",".flv",".swf",".mkv",".avi",".rm",".rmvb",".mpeg",".mpg",".ogg",".ogv",".mov",".wmv",".mp4",".webm",".mp3",".wav",".mid",".rar",".zip",".tar",".gz",".7z",".bz2",".cab",".iso",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".pdf",".txt",".md",".xml"],"fileManagerActionName":"listfile","snapscreenInsertAlign":"none","scrawlActionName":"uploadscrawl","videoFieldName":"upfile","imageCompressEnable":true,"videoUrlPrefix":"","fileManagerUrlPrefix":"","catcherAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp"],"imageManagerActionName":"listimage","snapscreenPathFormat":"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}","scrawlPathFormat":"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}","scrawlMaxSize":2048000,"imageInsertAlign":"none","catcherPathFormat":"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}","catcherMaxSize":2048000,"snapscreenUrlPrefix":"","imagePathFormat":"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}","imageManagerUrlPrefix":"","scrawlUrlPrefix":"http://192.168.101.81:8001","scrawlFieldName":"upfile","imageMaxSize":2048000,"imageAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp"],"snapscreenActionName":"uploadimage","catcherActionName":"catchimage","fileFieldName":"upfile","fileUrlPrefix":"","imageManagerInsertAlign":"none","catcherLocalDomain":["127.0.0.1","localhost","img.baidu.com"],"filePathFormat":"/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}","videoPathFormat":"/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}","fileManagerListSize":20,"imageActionName":"uploadimage","imageFieldName":"upfile","imageUrlPrefix":"","scrawlInsertAlign":"none","fileAllowFiles":[".png",".jpg",".jpeg",".gif",".bmp",".flv",".swf",".mkv",".avi",".rm",".rmvb",".mpeg",".mpg",".ogg",".ogv",".mov",".wmv",".mp4",".webm",".mp3",".wav",".mid",".rar",".zip",".tar",".gz",".7z",".bz2",".cab",".iso",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".pdf",".txt",".md",".xml"],"catcherUrlPrefix":"","imageManagerListSize":20,"catcherFieldName":"source","videoAllowFiles":[".flv",".swf",".mkv",".avi",".rm",".rmvb",".mpeg",".mpg",".ogg",".ogv",".mov",".wmv",".mp4",".webm",".mp3",".wav",".mid"]}'
  1070. return cv.to_response(rst)
  1071. except Exception as e:
  1072. cv.tracefail()
  1073. return cv.to_fail(e)
  1074. def post(self, request):
  1075. """
  1076. #文件上传(平台管理后台)
  1077. @file:"",文件对象
  1078. @type:"",前端自定义参数
  1079. """
  1080. try:
  1081. url = ccc.ueditor_to_oss(request)
  1082. data = {
  1083. "original":"base.jpg",
  1084. "state":"SUCCESS",
  1085. "title":"base.jpg",
  1086. "url":url
  1087. }
  1088. return cv.to_response(json.dumps(data))
  1089. except Exception as e:
  1090. cv.tracefail()
  1091. return cv.to_fail(e)
  1092. class PlayerRoleView(cv.AdminView):
  1093. def put(self,request):
  1094. """#修改选手角色(平台管理后台)
  1095. @player_id:"1"
  1096. @player_type:0/1/2/3
  1097. @phone:"",手机号
  1098. """
  1099. qdata = request.json
  1100. need_params = ["player_id"]
  1101. mse = ccf.check_params(*need_params,**qdata)
  1102. if mse:
  1103. raise ce.TipException(mse)
  1104. try:
  1105. need_params.extend(["role"])
  1106. vals = ccf.get_need_params(*need_params,**qdata)
  1107. rst = ctl.update_player_role(**vals)
  1108. return cv.to_suc(rst)
  1109. except Exception as e:
  1110. cv.tracefail()
  1111. return cv.to_fail(e)
  1112. class RelationOldView(cv.AdminView):
  1113. def put(self,request):
  1114. """#修改选手角色(平台管理后台)
  1115. @player_id:"1"
  1116. @player_type:0/1/2/3
  1117. @phone:"",手机号
  1118. """
  1119. qdata = request.json
  1120. need_params = ["user_id","old_user_id"]
  1121. mse = ccf.check_params(*need_params,**qdata)
  1122. if mse:
  1123. raise ce.TipException(mse)
  1124. try:
  1125. vals = ccf.get_need_params(*need_params,**qdata)
  1126. rst = ctl.relation_old_user(**vals)
  1127. return cv.to_suc(rst)
  1128. except Exception as e:
  1129. cv.tracefail()
  1130. return cv.to_fail(e)
  1131. class OpenidMissView(cv.AdminView):
  1132. def get(self, request):
  1133. """#用户列表(平台管理后台)
  1134. @username:"用户名"
  1135. @usercode:"用户代码"
  1136. @page:1
  1137. @page_size:20
  1138. """
  1139. qdata = request.json
  1140. try:
  1141. rst = ctl.get_openid_miss(**qdata)
  1142. return cv.to_suc(rst)
  1143. except Exception as e:
  1144. cv.tracefail()
  1145. return cv.to_fail(e)
  1146. class SignupOldUserView(cv.AdminView):
  1147. def put(self,request):
  1148. """#老用户处理(平台管理后台)
  1149. @id:"1"
  1150. @match_group:1
  1151. @player_type:""
  1152. @role_type:""
  1153. """
  1154. qdata = request.json
  1155. need_params = ["id","signup_type","match_group"]
  1156. mse = ccf.check_params(*need_params,**qdata)
  1157. if mse:
  1158. raise ce.TipException(mse)
  1159. try:
  1160. need_params.extend(["player_type","role_type","match_id"])
  1161. vals = ccf.get_need_params(*need_params,**qdata)
  1162. rst = ctl.signup_old_user(**vals)
  1163. return cv.to_suc(rst)
  1164. except Exception as e:
  1165. cv.tracefail()
  1166. return cv.to_fail(e)
  1167. class FundInOutView(cv.AdminView):
  1168. def get(self, request):
  1169. """#资金出入详情(平台管理后台)
  1170. @id:1
  1171. """
  1172. qdata = request.json
  1173. need_params = ["id"]
  1174. mse = ccf.check_params(*need_params,**qdata)
  1175. if mse:
  1176. raise ce.TipException(mse)
  1177. try:
  1178. vals = ccf.get_need_params(*need_params,**qdata)
  1179. rst = ctl.get_detail_info(self,**vals)
  1180. return cv.to_suc(rst)
  1181. except Exception as e:
  1182. cv.tracefail()
  1183. return cv.to_fail(e)
  1184. def delete(self,request):
  1185. """#删除资金出入(平台管理后台)
  1186. @id:"1",多个逗号分隔
  1187. """
  1188. qdata = request.json
  1189. need_params = ["id"]
  1190. mse = ccf.check_params(*need_params,**qdata)
  1191. if mse:
  1192. raise ce.TipException(mse)
  1193. try:
  1194. vals = ccf.get_need_params(*need_params,**qdata)
  1195. rst = ctl.delete_model(self,**vals)
  1196. return cv.to_suc(rst)
  1197. except Exception as e:
  1198. cv.tracefail()
  1199. return cv.to_fail(e)
  1200. class FundInOutListView(cv.AdminView):
  1201. def get(self, request):
  1202. """#资金出入列表(平台管理后台)
  1203. @name:""
  1204. @page:1
  1205. @page_size:20
  1206. """
  1207. qdata = request.json
  1208. try:
  1209. total,rst = ctl.get_list_info(self,**qdata)
  1210. return cv.to_suc({"total":total,"list":rst})
  1211. except Exception as e:
  1212. cv.tracefail()
  1213. return cv.to_fail(e)
  1214. class UserConsultDetailView(cv.AdminView):
  1215. def get(self, request):
  1216. """#咨询详情(平台管理后台)
  1217. @user_id:1
  1218. """
  1219. qdata = request.json
  1220. try:
  1221. rst = ctl.get_consult_detail(**qdata)
  1222. return cv.to_suc(rst)
  1223. except Exception as e:
  1224. cv.tracefail()
  1225. return cv.to_fail(e)
  1226. class BaikeCategoryListView(cv.AdminView):
  1227. def get(self, request):
  1228. """#百科词条分类列表(平台管理后台)
  1229. @name:"股票名称"
  1230. @page:1
  1231. @page_size:20
  1232. """
  1233. qdata = request.json
  1234. try:
  1235. rst = ctl.get_baike_category_tree(**qdata)
  1236. return cv.to_suc(rst)
  1237. except Exception as e:
  1238. cv.tracefail()
  1239. return cv.to_fail(e)
  1240. class BaikeDetailView(cv.AdminView):
  1241. def get(self, request):
  1242. """#词条详情(平台管理后台)
  1243. @id:1
  1244. """
  1245. qdata = request.json
  1246. need_params = ["id"]
  1247. mse = ccf.check_params(*need_params,**qdata)
  1248. if mse:
  1249. raise ce.TipException(mse)
  1250. try:
  1251. vals = ccf.get_need_params(*need_params,**qdata)
  1252. rst = ctl.get_detail_info(self,**vals)
  1253. return cv.to_suc(rst)
  1254. except Exception as e:
  1255. cv.tracefail()
  1256. return cv.to_fail(e)
  1257. def post(self,request):
  1258. """#新增词条(平台管理后台)
  1259. @user_id:"用户id"
  1260. @fund:"资金"
  1261. @match_id:"比赛id"
  1262. @match_group:"比赛分组"
  1263. """
  1264. qdata = request.json
  1265. need_params = ["name","content","category_id","category_name"]
  1266. mse = ccf.check_params(*need_params,**qdata)
  1267. if mse:
  1268. raise ce.TipException(mse)
  1269. try:
  1270. vals = ccf.get_need_params(*need_params,**qdata)
  1271. vals["cid"] = 0
  1272. vals["cname"] = u"系统管理员"
  1273. if qdata.get("action") == "publish":
  1274. vals["status"] = 1
  1275. rst = ctl.add_model(self,**vals)
  1276. return cv.to_suc(rst)
  1277. except Exception as e:
  1278. cv.tracefail()
  1279. return cv.to_fail(e)
  1280. def put(self,request):
  1281. """#修改词条(平台管理后台)
  1282. @id:"1"
  1283. @fund:"资金"
  1284. @match_id:"比赛id"
  1285. @match_group:"比赛分组"
  1286. """
  1287. qdata = request.json
  1288. need_params = ["id","name","content","category_id","category_name"]
  1289. mse = ccf.check_params(*need_params,**qdata)
  1290. if mse:
  1291. raise ce.TipException(mse)
  1292. try:
  1293. vals = ccf.get_need_params(*need_params,**qdata)
  1294. if qdata.get("action") == "publish":
  1295. vals["status"] = 1
  1296. rst = ctl.update_model(self,**vals)
  1297. return cv.to_suc(rst)
  1298. except Exception as e:
  1299. cv.tracefail()
  1300. return cv.to_fail(e)
  1301. def delete(self,request):
  1302. """#删除词条(平台管理后台)
  1303. @id:"1",多个逗号分隔
  1304. """
  1305. qdata = request.json
  1306. need_params = ["id"]
  1307. mse = ccf.check_params(*need_params,**qdata)
  1308. if mse:
  1309. raise ce.TipException(mse)
  1310. try:
  1311. vals = ccf.get_need_params(*need_params,**qdata)
  1312. rst = ctl.delete_model(self,**vals)
  1313. return cv.to_suc(rst)
  1314. except Exception as e:
  1315. cv.tracefail()
  1316. return cv.to_fail(e)
  1317. class BaikeDetailListView(cv.AdminView):
  1318. def get(self, request):
  1319. """#百科词条列表(平台管理后台)
  1320. @name:""
  1321. @page:1
  1322. @page_size:20
  1323. """
  1324. qdata = request.json
  1325. try:
  1326. total,rst = ctl.get_list_info(self,**qdata)
  1327. return cv.to_suc({"total":total,"list":rst})
  1328. except Exception as e:
  1329. cv.tracefail()
  1330. return cv.to_fail(e)
  1331. class BaikeCategoryView(cv.AdminView):
  1332. def get(self, request):
  1333. """#词条分类详情(平台管理后台)
  1334. @id:1
  1335. """
  1336. qdata = request.json
  1337. need_params = ["id"]
  1338. mse = ccf.check_params(*need_params,**qdata)
  1339. if mse:
  1340. raise ce.TipException(mse)
  1341. try:
  1342. vals = ccf.get_need_params(*need_params,**qdata)
  1343. rst = ctl.get_detail_info(self,**vals)
  1344. return cv.to_suc(rst)
  1345. except Exception as e:
  1346. cv.tracefail()
  1347. return cv.to_fail(e)
  1348. def post(self,request):
  1349. """#新增词条分类(平台管理后台)
  1350. @user_id:"用户id"
  1351. @fund:"资金"
  1352. @match_id:"比赛id"
  1353. @match_group:"比赛分组"
  1354. """
  1355. qdata = request.json
  1356. need_params = ["name"]
  1357. mse = ccf.check_params(*need_params,**qdata)
  1358. if mse:
  1359. raise ce.TipException(mse)
  1360. try:
  1361. need_params.extend(["parent_id","parent_name"])
  1362. vals = ccf.get_need_params(*need_params,**qdata)
  1363. rst = ctl.add_model(self,**vals)
  1364. return cv.to_suc(rst)
  1365. except Exception as e:
  1366. cv.tracefail()
  1367. return cv.to_fail(e)
  1368. def put(self,request):
  1369. """#修改词条分类(平台管理后台)
  1370. @id:"1"
  1371. @fund:"资金"
  1372. @match_id:"比赛id"
  1373. @match_group:"比赛分组"
  1374. """
  1375. qdata = request.json
  1376. need_params = ["id","name"]
  1377. mse = ccf.check_params(*need_params,**qdata)
  1378. if mse:
  1379. raise ce.TipException(mse)
  1380. try:
  1381. need_params.extend(["parent_id","parent_name"])
  1382. vals = ccf.get_need_params(*need_params,**qdata)
  1383. rst = ctl.update_model(self,**vals)
  1384. return cv.to_suc(rst)
  1385. except Exception as e:
  1386. cv.tracefail()
  1387. return cv.to_fail(e)
  1388. def delete(self,request):
  1389. """#删除词条分类(平台管理后台)
  1390. @id:"1",多个逗号分隔
  1391. """
  1392. qdata = request.json
  1393. need_params = ["id"]
  1394. mse = ccf.check_params(*need_params,**qdata)
  1395. if mse:
  1396. raise ce.TipException(mse)
  1397. try:
  1398. vals = ccf.get_need_params(*need_params,**qdata)
  1399. rst = ctl.delete_model(self,**vals)
  1400. return cv.to_suc(rst)
  1401. except Exception as e:
  1402. cv.tracefail()
  1403. return cv.to_fail(e)