# coding=utf-8 from __future__ import unicode_literals import requests import random,datetime,time import json import uuid from django.contrib import auth from django.core.cache import cache from django.conf import settings from django.http import FileResponse,HttpResponse from wsgiref.util import FileWrapper import common.error_info as ce from common import core_views as cv import common.common_control as ccc import common.common_functions as ccf import manage.control_auth as ca import manage.controls as ctl import common.models as cm class UploadFileView(cv.AdminView): def post(self, request): """ #文件上传(平台管理后台) @file:"",文件对象 @type:"",前端自定义参数 """ try: rst = ccc.upload_file(request) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class UserInfoListView(cv.AdminView): def get(self, request): """#用户列表(平台管理后台) @username:"用户名" @usercode:"用户代码" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class UserInfoView(cv.AdminView): def get(self, request): """#用户详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def gen_code(self): """ """ code = "" while True: code = "".join([str(random.choice([0,1,2,3,5,6,7,8,9])) for x in range(0,6)]) if cm.UserInfo.objects.filter(usercode=code).exists(): time.sleep(0.1) continue break return code def post(self,request): """#新增用户(平台管理后台) @username:"用户名" @usercode:"用户代码(非必填限制6位数字)" """ return cv.to_suc({}) qdata = request.json need_params = ["username"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["usercode","badge","zq","cw","df","avatar","player_type","phone","intro"]) vals = ccf.get_need_params(*need_params,**qdata) if not vals.get("usercode"): vals["usercode"] = self.gen_code() rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改账号(平台管理后台) @id:"1" @username:"用户名" @usercode:"用户代码(非必填限制6位数字)" @is_bind:"是否绑定",0/1 """ qdata = request.json need_params = ["id","username","usercode"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["is_bind","badge","zq","cw","df","avatar","player_type","phone","intro"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除用户(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerListView(cv.AdminView): def get(self, request): """#选手列表(平台管理后台) @user_id:"" @match_id:"" @match_group:"" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerView(cv.AdminView): def get(self, request): """#选手详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增选手(平台管理后台) @user_id:"用户id" @fund:"资金" @match_id:"比赛id" @match_group:"比赛分组" """ qdata = request.json need_params = ["user_id","match_id","match_group"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["match_status","fund"]) vals = ccf.get_need_params(*need_params,**qdata) vals["fund"] = round(float(vals.get("fund",0)),4) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改选手(平台管理后台) @id:"1" @fund:"资金" @match_id:"比赛id" @match_group:"比赛分组" """ qdata = request.json need_params = ["id","user_id","match_id","match_group"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["match_status","fund","username"]) vals = ccf.get_need_params(*need_params,**qdata) vals["fund"] = round(float(vals.get("fund",0)),4) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除选手(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class MatchListView(cv.AdminView): def get(self, request): """#赛事列表(平台管理后台) @name:"" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class MatchView(cv.AdminView): def get(self, request): """#赛事详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增赛事(平台管理后台) @name:"赛事名称" @start_time:"开始时间" @end_time:"结束时间" """ qdata = request.json need_params = ["name","start_time","end_time"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["calendar","valid_dates","player_price","viewer_price", "match_status","signup_start_time","signup_end_time","post_start_time","awards_content"]) vals = ccf.get_need_params(*need_params,**qdata) vals["valid_dates"] = json.dumps(vals["valid_dates"]) rst = ctl.add_model(self,**vals) match_id = rst from tools.split_table import create_table create_table(match_id) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改赛事(平台管理后台) @id:"1" @name:"赛事名称" @start_time:"开始时间" @end_time:"结束时间" """ qdata = request.json need_params = ["id","name","start_time","end_time","player_price","viewer_price"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["calendar","valid_dates","signup_start_time","signup_end_time", "match_status","post_start_time","awards_content"]) vals = ccf.get_need_params(*need_params,**qdata) vals["valid_dates"] = json.dumps(vals["valid_dates"]) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除赛事(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class MatchGroupListView(cv.AdminView): def get(self, request): """#分组列表(平台管理后台) @name:"" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class MatchGroupView(cv.AdminView): def get(self, request): """#分组详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增分组(平台管理后台) @match_id:"赛事id" @name:"分组名称" """ qdata = request.json need_params = ["match_id","name"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["is_active"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改赛事(平台管理后台) @id:"1" @match_id:"赛事id" @name:"分组名称" """ qdata = request.json need_params = ["id","match_id","name"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["is_active","order"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除分组(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerRecordListView(cv.AdminView): def get(self, request): """#数据列表(平台管理后台) @name:"" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerRecordView(cv.AdminView): def get(self, request): """#数据详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id","match_id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增数据(平台管理后台) @player_id:"选手id" @match_id:"赛事id" @stock_date:"持股日期" @today_fund:"今日净资产" @today_stock:"今日持股" @today_stock_img:"今日持股截图" """ qdata = request.json need_params = ["player_id","match_id","today_fund"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["stock_date","is_markt","today_stock","today_stock_img"]) vals = ccf.get_need_params(*need_params,**qdata) vals["today_fund"] = round(float(vals["today_fund"]),4) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改数据(平台管理后台) @id:"1" @match_id:"赛事id" @name:"分组名称" """ qdata = request.json need_params = ["id","user_id","match_id","today_fund"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["stock_date","is_markt","today_stock","today_stock_img","yesterday_fund","init_fund","experience"]) vals = ccf.get_need_params(*need_params,**qdata) vals["today_fund"] = round(float(vals["today_fund"]),4) vals["yesterday_fund"] = round(float(vals["yesterday_fund"]),4) vals["init_fund"] = round(float(vals["init_fund"]),4) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除数据(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id","match_id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class MatchSearchView(cv.AdminView): def get(self, request): """#比赛搜索列表(管理后台) @name:赛事名称 """ try: qdata = request.json rst = ctl.get_search_list(self,**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class MatchGroupSearchView(cv.AdminView): def get(self, request): """#分组搜索列表(管理后台) @match_id:赛事id @name:分组名称 """ try: qdata = request.json rst = ctl.get_search_list(self,**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerSearchView(cv.AdminView): def get(self, request): """#选手搜索列表(管理后台) @match_id:赛事id @username:选手名称 """ try: qdata = request.json rst = ctl.get_search_list(self,**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class StockSearchView(cv.AdminView): def get(self, request): """#股票搜索列表(管理后台) @name:选手名称 """ try: qdata = request.json rst = ctl.get_search_list(self,**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class UserInfoSearchView(cv.AdminView): def get(self, request): """#用户搜索列表(管理后台) @name:选手名称 """ try: qdata = request.json rst = ctl.get_search_list(self,**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerRecordDownloadView(cv.AdminView): def get(self, request): """#数据详情(平台管理后台) @id:1 """ try: xlsdata = ctl.download_records(request) filename = u"%s参数数据.xls" % datetime.datetime.now().strftime("%Y-%m-%d") return cv.stream_file(xlsdata,"application/vnd.ms-excel",filename) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerRecordDownloadImageView(cv.BaseView): def get(self, request): """download player record as image """ try: zipfile = ctl.download_records_image(request) wrapper = FileWrapper(zipfile) response = HttpResponse(wrapper, content_type='application/zip') response['Content-Disposition'] = 'attachment;filename={}'\ .format(ccf.datetime_to_str(datetime.datetime.now(),"%Y%m%d%H%M%S")+".zip") return response except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerFastSaveView(cv.AdminView): def gen_code(self): """ """ code = "" while True: code = "".join([str(random.choice([0,1,2,3,5,6,7,8,9])) for x in range(0,6)]) if cm.UserInfo.objects.filter(usercode=code).exists(): time.sleep(0.1) continue break return code def post(self,request): """#快速创建用户与选手(平台管理后台) @username:"用户名" @usercode:"用户代码" @fund:"资金" @match_id:"比赛id" @match_group:"比赛分组" @match_status:"比赛状态" """ qdata = request.json need_params = ["username","match_id","match_group"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["usercode","match_status","fund"]) vals = ccf.get_need_params(*need_params,**qdata) if not vals.get("usercode"): vals["usercode"] = self.gen_code() if vals.get("fund"): vals["fund"] = round(float(vals["fund"]),4) rst = ctl.fast_save_player(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerAutoRecordView(cv.AdminView): def post(self,request): """#自动补全数据(平台管理后台) """ return cv.to_suc() qdata = request.json stock_date = qdata.get("stock_date") from tools.autocomplete_record import auto_gen_record auto_gen_record(stock_date) return cv.to_suc() class ArticleView(cv.AdminView): def get(self, request): """#赛事详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增赛事(平台管理后台) @name:"赛事名称" @content:"详情" """ qdata = request.json need_params = ["name","content","status"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["type","img","category","isbanner","ishot"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改赛事(平台管理后台) @id:"1" @name:"名称" @content:"详情" """ qdata = request.json need_params = ["id","name","content","status"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["type","img","category","isbanner","ishot"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除赛事(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class ArticleListView(cv.AdminView): def get(self, request): """#文章列表(平台管理后台) @name:"" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class ArticleSpiderView(cv.BaseView): def get(self, request): """#文章抓取(平台管理后台) """ qdata = request.json try: data = ctl.spider_article(**qdata) return cv.to_suc(data) except Exception as e: cv.tracefail() return cv.to_fail(e) class FlushRankView(cv.AdminView): def get(self, request): """#更新排名(平台管理后台) @name:"" @page:1 @page_size:20 """ qdata = request.json need_params = ["stock_date","match_id","groupId"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: stock_date = qdata.get("stock_date") match_id = qdata.get("match_id") groupId = qdata.get("groupId") ctl.update_group_rank(stock_date,match_id,groupId) return cv.to_suc() except Exception as e: cv.tracefail() return cv.to_fail(e) class StockView(cv.AdminView): def get(self, request): """#赛事详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增股票(平台管理后台) @name:"赛事名称" @content:"详情" """ qdata = request.json need_params = ["name","code"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["desc","img"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改股票(平台管理后台) @id:"1" @name:"名称" @content:"详情" """ qdata = request.json need_params = ["id","name","code"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["desc","img"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除股票(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerRecordCommentView(cv.AdminView): def put(self,request): """#顽主点评(平台管理后台) @id:"1" @wanzhu_comment:"顽主点评" """ qdata = request.json need_params = ["id","wanzhu_comment","match_id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_comment(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class StockListView(cv.AdminView): def get(self, request): """#股票仓库列表(平台管理后台) @name:"用户名" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class ResetInitFundView(cv.AdminView): def post(self,request): """#重置初始资金(平台管理后台) @match_id:"1" """ qdata = request.json need_params = ["match_id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.reset_initfund(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class SignupOrderListView(cv.AdminView): def get(self, request): """#订单列表(平台管理后台) @name:"用户名" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class StockCommentsListView(cv.AdminView): def get(self, request): """#股票评论列表(平台管理后台) @name:"股票名称" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_stock_comments_list(**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class RecordCommentsListView(cv.AdminView): def get(self, request): """#作业评论列表(平台管理后台) @name:"股票名称" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_record_comments_list(**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class ConsultListView(cv.AdminView): def get(self, request): """#顽主咨询列表(平台管理后台) @name:"股票名称" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_wanzhu_consult_list(**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class WanzhuConsultView(cv.AdminView): def get(self, request): """#顽主咨询详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除咨询(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_consult(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class WanzhuConsultReplyView(cv.AdminView): def post(self, request): """#顽主咨询回复(平台管理后台) @id:1 """ qdata = request.json need_params = ["reply_content","user_id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["pid","action"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.reply_wanzhu_consult(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class SignupOrderView(cv.AdminView): def get(self, request): """#订单详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除订单(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改订单(平台管理后台) @id:"1" @order_status:0/1/-1 @remark:"" """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["order_status","remark"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerTypeView(cv.AdminView): def put(self,request): """#修改选手类型(平台管理后台) @player_id:"1" @player_type:0/1/2/3 @phone:"",手机号 """ qdata = request.json need_params = ["player_id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["player_type","phone","user_id"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_player_type(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class CommentsTopView(cv.AdminView): def put(self,request): """#置顶与取消置顶(平台管理后台) @id:"1" """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.comments_top(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class CommentsBlackView(cv.AdminView): def put(self,request): """#拉黑评论(平台管理后台) @id:"1" """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.comments_black(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class CommentsView(cv.AdminView): def delete(self,request): """#删除用户(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class UeditorUploadView(cv.BaseView): def get(self, request): """#ueditor(管理后台) @name:名称 """ try: 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"]}' return cv.to_response(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self, request): """ #文件上传(平台管理后台) @file:"",文件对象 @type:"",前端自定义参数 """ try: url = ccc.ueditor_to_oss(request) data = { "original":"base.jpg", "state":"SUCCESS", "title":"base.jpg", "url":url } return cv.to_response(json.dumps(data)) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerRoleView(cv.AdminView): def put(self,request): """#修改选手角色(平台管理后台) @player_id:"1" @player_type:0/1/2/3 @phone:"",手机号 """ qdata = request.json need_params = ["player_id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["role"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_player_role(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class RelationOldView(cv.AdminView): def put(self,request): """#修改选手角色(平台管理后台) @player_id:"1" @player_type:0/1/2/3 @phone:"",手机号 """ qdata = request.json need_params = ["user_id","old_user_id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.relation_old_user(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class OpenidMissView(cv.AdminView): def get(self, request): """#用户列表(平台管理后台) @username:"用户名" @usercode:"用户代码" @page:1 @page_size:20 """ qdata = request.json try: rst = ctl.get_openid_miss(**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class SignupOldUserView(cv.AdminView): def put(self,request): """#老用户处理(平台管理后台) @id:"1" @match_group:1 @player_type:"" @role_type:"" """ qdata = request.json need_params = ["id","signup_type","match_group"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["player_type","role_type","match_id"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.signup_old_user(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class FundInOutView(cv.AdminView): def get(self, request): """#资金出入详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除资金出入(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class FundInOutListView(cv.AdminView): def get(self, request): """#资金出入列表(平台管理后台) @name:"" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class FundInOutCaculateView(cv.AdminView): def get(self, request): """#资金出入计算(平台管理后台) """ qdata = request.json try: rst = ctl.caculate_inout(**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class UserConsultDetailView(cv.AdminView): def get(self, request): """#咨询详情(平台管理后台) @user_id:1 """ qdata = request.json try: rst = ctl.get_consult_detail(**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class BaikeCategoryListView(cv.AdminView): def get(self, request): """#百科词条分类列表(平台管理后台) @name:"股票名称" @page:1 @page_size:20 """ qdata = request.json try: rst = ctl.get_baike_category_tree(**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class BaikeDetailView(cv.AdminView): def get(self, request): """#词条详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增词条(平台管理后台) @user_id:"用户id" @fund:"资金" @match_id:"比赛id" @match_group:"比赛分组" """ qdata = request.json need_params = ["name","content","category_id","category_name"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["editor","intro","img"]) vals = ccf.get_need_params(*need_params,**qdata) vals["cid"] = 0 vals["cname"] = u"系统管理员" if qdata.get("action") == "publish": vals["status"] = 1 rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改词条(平台管理后台) @id:"1" @fund:"资金" @match_id:"比赛id" @match_group:"比赛分组" """ qdata = request.json need_params = ["id","name","content","category_id","category_name"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["editor","intro","img"]) vals = ccf.get_need_params(*need_params,**qdata) if qdata.get("action") == "publish": vals["status"] = 1 rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除词条(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class BaikeDetailListView(cv.AdminView): def get(self, request): """#百科词条列表(平台管理后台) @name:"" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class BaikeCategoryView(cv.AdminView): def get(self, request): """#词条分类详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增词条分类(平台管理后台) @user_id:"用户id" @fund:"资金" @match_id:"比赛id" @match_group:"比赛分组" """ qdata = request.json need_params = ["name"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["parent_id","parent_name"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改词条分类(平台管理后台) @id:"1" @fund:"资金" @match_id:"比赛id" @match_group:"比赛分组" """ qdata = request.json need_params = ["id","name"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["parent_id","parent_name"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除词条分类(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PushArticleView(cv.AdminView): def post(self,request): """#新增词条分类(平台管理后台) @id:"文章id" """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.push_article(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class ImportArticleView(cv.BaseView): def post(self,request): """#新增赛事(平台管理后台) @name:"赛事名称" @content:"详情" @status:"详情" """ qdata = request.json need_params = ["name","content","status"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["type","img","category","isbanner"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.import_article(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class APPVersionView(cv.AdminView): def get(self, request): """#赛事详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增赛事(平台管理后台) @name:"赛事名称" @content:"详情" """ qdata = request.json need_params = ["version","android_version","android_url"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["name","ios_url","force"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改赛事(平台管理后台) @id:"1" @name:"名称" @content:"详情" """ qdata = request.json need_params = ["id","version","android_version","android_url"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: need_params.extend(["name","ios_url","force"]) vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除赛事(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class APPVersionListView(cv.AdminView): def get(self, request): """#文章列表(平台管理后台) @name:"" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class WXPayRefundView(cv.AdminView): def post(self,request): """#微信退款(平台管理后台) @id:"订单id" """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.refund_out_trade_order(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class StockCommentsListView(cv.AdminView): def get(self, request): """#用户列表(平台管理后台) @username:"用户名" @usercode:"用户代码" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class StockCommentsView(cv.AdminView): def get(self, request): """#赛事详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增赛事(平台管理后台) @name:"赛事名称" @content:"详情" """ qdata = request.json need_params = ["stock_id","stock_name","stock_code","content","img"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改赛事(平台管理后台) @id:"1" @name:"名称" @content:"详情" """ qdata = request.json need_params = ["id","stock_id","stock_name","stock_code","content","img"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除赛事(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class UserArticleRelationListView(cv.AdminView): def get(self, request): """#用户列表(平台管理后台) @username:"用户名" @usercode:"用户代码" @page:1 @page_size:20 """ qdata = request.json try: total,rst = ctl.get_list_info(self,**qdata) return cv.to_suc({"total":total,"list":rst}) except Exception as e: cv.tracefail() return cv.to_fail(e) class UserArticleRelationView(cv.AdminView): def get(self, request): """#赛事详情(平台管理后台) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.get_detail_info(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self,request): """#新增赛事(平台管理后台) @name:"赛事名称" @content:"详情" """ qdata = request.json need_params = ["user_id","user_name","user_avatar","content","article_ids"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.add_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self,request): """#修改赛事(平台管理后台) @id:"1" @name:"名称" @content:"详情" """ qdata = request.json need_params = ["id","user_id","user_name","user_avatar","content","article_ids"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.update_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def delete(self,request): """#删除赛事(平台管理后台) @id:"1",多个逗号分隔 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.delete_model(self,**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class ArticleSearchView(cv.AdminView): def get(self, request): """#比赛搜索列表(管理后台) @name:赛事名称 """ try: qdata = request.json rst = ctl.get_search_list(self,**qdata) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class BaikeDetailTopView(cv.AdminView): def put(self,request): """#修改词条(平台管理后台) @id:"1" @action:"top/cancel",置顶/取消置顶 """ qdata = request.json need_params = ["id","action"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rst = ctl.baike_detail_top(**vals) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class DownloadTop3ImageView(cv.BaseView): def get(self, request): """download player record as image """ try: zipfile = ctl.download_top3_imgs(request) #return cv.to_suc(zipfile) wrapper = FileWrapper(zipfile) response = HttpResponse(wrapper, content_type='application/zip') response['Content-Disposition'] = 'attachment;filename={}'\ .format(ccf.datetime_to_str(datetime.datetime.now(),"%Y%m%d%H%M%S")+".zip") return response except Exception as e: cv.tracefail() return cv.to_fail(e)