1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921 |
- # coding=utf-8
- from __future__ import unicode_literals
- import requests
- import random,datetime
- import json
- import uuid
- from django.contrib import auth
- from django.core.cache import cache
- from django.conf import settings
- 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 weixin.control_auth as ca
- import weixin.controls as ctl
- import weixin.wzhifuSDK as wzf
- from utils.upload_to_oss import hnoss
- from utils.baiduai import baidu_ai_detect_image,baidu_ai_detect_txt
- from utils.ocr import BaiduOcrForm
- from utils.ocrmanage import OcrManage
- class OpenidView(cv.BaseView):
- def get(self,request):
- """
- #获取openid(小程序)
- @code:1212
- """
- code = request.json.get("code")
- open_id = cache.get(code)
- if open_id:
- return cv.to_suc({"openid":open_id})
- else:
- get_token_url = 'https://api.weixin.qq.com/sns/jscode2session?appid={}&secret={}&js_code={}&grant_type=authorization_code' .format(wzf.WxPayConf_pub.APPID,wzf.WxPayConf_pub.APPSECRET,code)
- res = requests.get(get_token_url).json()
- print res
- if res.has_key('openid'):
- open_id = res['openid']
- unionid = res['unionid']
- cache.set(code,open_id,24*3600)
- else:
- open_id = ''
- unionid = ''
- if open_id:
- ccc.cache.set(open_id,1)
- return cv.to_suc({"openid":open_id,"unionid":unionid})
- else:
- return cv.to_fail(u"获取用户信息出错!")
- class UploadFileView(cv.BaseView):
- def post(self, request):
- """
- #文件上传(小程序)
- @file:"",文件对象
- """
- import time
- upload_file = request.FILES['file']
- ts = str(int(time.time()))
- dest = settings.STATIC_ROOT + "/upload/"+ ts + upload_file.name
- content = upload_file.read()
- ossfile = ts + upload_file.name
- url = hnoss.upload_from_str(content,ossfile)
- return cv.to_suc({"url":url})
- class UploadAvatarView(cv.BaseView):
- def post(self, request):
- """
- #文件上传(小程序)
- @file:"",文件对象
- """
- import time
- upload_file = request.FILES['file']
- ts = str(int(time.time()))
- dest = settings.STATIC_ROOT + "/upload/"+ ts + upload_file.name
- content = upload_file.read()
- ossfile = ts + upload_file.name
- url = hnoss.upload_from_str(content,ossfile,None)
- return cv.to_suc({"url":url})
- class TopicUploadFileView(cv.BaseView):
- def post(self, request):
- """
- #文件上传(WEB端)
- @file:"",文件对象
- """
- import time
- upload_file = request.FILES['file']
- dest = settings.STATIC_ROOT + "/upload/"+str(int(time.time())) + upload_file.name
- with open(dest,"wb+") as f:
- for chunk in upload_file.chunks():
- f.write(chunk)
- f.close()
- url = dest.replace(settings.STATIC_ROOT,settings.HOST)
- return cv.to_suc({"url":url})
- class AuthView(cv.BaseView):
- def post(self, request):
- """#保存微信授权信息(小程序)
- @nickname:"新",昵称
- @avatar:"",头像
- @openid:"",openid
- """
- try:
- rst = ca.add_wxauth_info(request)
- return cv.to_suc({"uid":rst.id})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class AuthinfoView(cv.AuthView):
- def get(self,request):
- """#获取用户信息(小程序)
- """
- try:
- rst = ca.get_wxauth_info(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- def put(self, request):
- """#修改个人信息(小程序)
- """
- try:
- rst = ca.update_wxauth_info(request)
- return cv.to_suc()
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class LoginView(cv.BaseView):
- def post(self, request):
- """#小程序登录(小程序)
- @usercode:"用户代号"
- @nickanme:"微信昵称"
- @avatar:"微信头像"
- @openid:"openid"
- """
- try:
- #rst = ca.login_user(request)
- rst = {}
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class IndexView(cv.AuthView):
- def get(self, request):
- """#首页数据(小程序)
- """
- try:
- rst = ctl.get_index_data(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerRecordView(cv.AuthView):
- 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)
- rcid = vals.get("id")
- #rst = ctl.get_detail_info(self,**vals)
- rst = ctl.get_record_info(rcid)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- def post(self, request):
- """#新增每日数据(小程序)
- @stock_date:"2021-07-30"
- @today_fund:100
- @today_stock:[{name:"江苏国泰",code:121221}]
- @today_stock_img:["http://test.png"]
- """
- qdata = request.json
- now = datetime.datetime.now()
- need_params = ["stock_date","today_fund"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["is_markt","today_stock","today_stock_img","experience","id"])
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["user_id"] = request.user.get("id",0)
- vals["match_id"] = ccc.get_cur_match().id
- 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)
- class PlayerMatchListView(cv.AuthView):
- def get(self, request):
- """#选手参赛列表(小程序)
- """
- try:
- rst = ctl.get_player_match_list(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerMatchView(cv.AuthView):
- def get(self, request):
- """#选手参赛详情(小程序)
- """
- try:
- rst = ctl.get_player_match_detail(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerMatchRecordListView(cv.AuthView):
- def get(self, request):
- """#选手参赛每日持股(小程序)
- @id:1,赛事id
- @page:1
- @page_size:20
- """
- try:
- total,rst = ctl.get_player_match_records(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class StockSearchView(cv.AuthView):
- def get(self, request):
- """#股票搜索列表(小程序)
- @name:名称
- """
- try:
- qdata = request.json
- rst = ctl.get_search_list(self,**qdata)
- #rst = ctl.get_stock_search(**qdata)
- #if qdata.get("name"):
- # rst = filter(lambda x:qdata.get("name") in x["name"],rst)
- #print(rst)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class GroupRankListView(cv.BaseView):
- def get(self, request):
- """#排名列表(小程序)
- """
- try:
- rst = ctl.get_rank_list(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class GroupRankView(cv.BaseView):
- def get(self, request):
- """#分组排名(小程序)
- """
- try:
- rst = ctl.get_group_rank_list(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerRecordSingleView(cv.BaseView):
- def post(self, request):
- """#新增每日数据(WEB端)
- @usercode:"选手code"
- @match_id:"赛事id"
- @stock_date:"持股日期"
- @today_fund:"今日净资产"
- @today_stock:"今日持股"
- @today_stock_img:"今日持股截图"
- """
- qdata = request.json
- now = datetime.datetime.now()
- #if not now.isoweekday() in [1,2,3,4,5] or not "09:30"<now.strftime("%H:%S")<"15:30":
- # raise ce.TipException(u"只有每周一至周五 9:30 - 15:30 之间才可以提交数据!")
- need_params = ["match_id","usercode","stock_date","today_fund","today_stock_img"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["is_markt","today_stock","experience"])
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["today_fund"] = round(float(vals["today_fund"]),4)
- rst = ctl.add_player_record_single(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerRecordSingleMatchView(cv.BaseView):
- def get(self, request):
- """#获取赛事数据(WEB端)
- @id:"赛事id"
- """
- qdata = request.json
- match_id = qdata.get("id")
- try:
- now_date,rst = ctl.get_single_match_info(match_id)
- return cv.to_suc({"stock_date":now_date,"match":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerCurRecordView(cv.AuthView):
- def get(self, request):
- """#当前数据(小程序)
- @id:1
- """
- qdata = request.json
- try:
- rst = ctl.get_cur_record(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class ArticleView(cv.AuthView):
- 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)
- class FollowUserView(cv.AuthView):
- def post(self, request):
- """#关注选手(2.0小程序)
- @follow_id:1,被关注选手id
- @action:"cancel",取消关注
- """
- qdata = request.json
- need_params = ["follow_id"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["action"])
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["user_id"] = request.user.get("id")
- rst = ctl.follow_player(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class FollowUserListView(cv.AuthView):
- def get(self, request):
- """#我的关注(2.0小程序)
- """
- try:
- total,rst = ctl.get_user_follows(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class FollowerUserListView(cv.AuthView):
- def get(self, request):
- """#我的粉丝(3.0小程序)
- """
- try:
- total,rst = ctl.get_user_follower(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class HotStockListView(cv.AuthView):
- def get(self, request):
- """#热门股票(2.0小程序)
- @stock_date:"",持股日期
- """
- qdata = request.json
- need_params = ["stock_date"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["name"])
- vals = ccf.get_need_params(*need_params,**qdata)
- rst = ctl.get_hot_stock_rank(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class HotFollowListView(cv.BaseView):
- def get(self, request):
- """#热门关注(2.0小程序)
- @stock_date:"",持股日期
- @page:1
- @page_size:20
- """
- qdata = request.json
- need_params = ["stock_date"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["name","page","page_size"])
- vals = ccf.get_need_params(*need_params,**qdata)
- total,rst = ctl.get_hot_follow(**vals)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class HotStockBuyListView(cv.BaseView):
- def get(self, request):
- """#热门持仓股票(2.0小程序)
- @stock_date:"",持股日期
- @page:1
- @page_size:20
- """
- qdata = request.json
- need_params = ["stock_date"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- if qdata['stock_date'] == '2024-08-01':
- return cv.to_suc({"total": 0, "list": []})
- need_params.extend(["name","fund_rank","page","page_size"])
- vals = ccf.get_need_params(*need_params,**qdata)
- total,rst = ctl.get_hot_stock_buy(**vals)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class HotStockSellListView(cv.AuthView):
- def get(self, request):
- """#热门清仓股票(2.0小程序)
- @stock_date:"",持股日期
- @page:1
- @page_size:20
- """
- qdata = request.json
- need_params = ["stock_date"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["name"])
- vals = ccf.get_need_params(*need_params,**qdata)
- total,rst = ctl.get_hot_stock_sell(**vals)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class HotStockSellPlayersListView(cv.AuthView):
- def get(self, request):
- """#获取股票清仓选手列表(2.0小程序)
- @id:"",股票id
- @stock_date:"",持股日期
- @page:1
- @page_size:20
- """
- qdata = request.json
- need_params = ["stock_date","id"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- vals = ccf.get_need_params(*need_params,**qdata)
- _id = vals["id"]
- total,rst = ctl.get_hot_stock_sell_players(**vals)
- data = {"total":total,"list":rst}
- stock = ctl.get_stock_info(_id)
- data.update(stock)
- return cv.to_suc(data)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class WinRateRankView(cv.AuthView):
- def get(self, request):
- """#胜率榜(2.0小程序)
- """
- try:
- total,rst = ctl.get_win_rate_rank(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class DefendRankView(cv.AuthView):
- def get(self, request):
- """#防守榜(2.0小程序)
- """
- try:
- total,rst = ctl.get_defend_rank(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class ChampionArticleListView(cv.BaseView):
- def get(self, request):
- """#冠军心得(2.0小程序)
- """
- try:
- kwargs = request.json
- total,rst = ctl.get_champion_articles_list(**kwargs)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class WanzhuCommentListView(cv.AuthView):
- def get(self, request):
- """#顽主点评(2.0小程序)
- @group_id:1,分组id
- @page:1
- @page_size:20
- """
- qdata = request.json
- need_params = ["group_id","page","page_size"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["match_id"] = request.player.match_id
- total,rst = ctl.get_wanzhu_comment(**vals)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class EnumListView(cv.AuthView):
- def get(self, request):
- """#枚举值(2.0小程序)
- """
- try:
- rst = ctl.get_enum_list(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerListView(cv.AuthView):
- def get(self, request):
- """#选手列表搜索(2.0小程序)
- @name:"选手名"
- @zq:"短线",周期
- @cw:"分仓",仓位
- @df:"首板",打法
- @page:1
- @page_size:20
- """
- qdata = request.json
- need_params = ["page","page_size"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["name","zq","cw","df"])
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["match_id"] = qdata.get("match_id")
- total,rst = ctl.get_player_list(**vals)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MineStyleView(cv.AuthView):
- def get(self, request):
- """#我的风格(2.0小程序)
- """
- try:
- rst = ctl.get_mine_style(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- def put(self, request):
- """#修改我的风格(小程序)
- @zq:"",周期
- @cw:"",仓位
- @df:"",打法
- @pz:"",品种
- @join_time:"",入市时间
- @init_fund:"",参数金额
- @account_img:"",账号截图
- """
- qdata = request.json
- need_params = ["zq","cw","df","pz","join_time"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["init_fund","account_img","username","avatar"])
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["user_id"] = request.user["id"]
- #vals["player_id"] = request.player.id if request.player else None
- rst = ctl.update_user_style(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerFundView(cv.AuthView):
- def put(self, request):
- """#修改初始资金(小程序)
- @init_fund:"",参数金额
- """
- qdata = request.json
- need_params = ["init_fund"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["user_id"] = request.user.id
- vals["player_id"] = request.player.id if request.player else None
- rst = ctl.update_user_fund(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class StockView(cv.AuthView):
- def get(self, request):
- """#股票詳情(2.0小程序)
- @id:1
- @page:1
- @page_size:1
- """
- qdata = request.json
- need_params = ["id"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["page","page_size","stock_date"])
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["user_id"] = request.user.get("id")
- #vals["player_id"] = request.player.id if request.player else None
- rst = ctl.get_detail_info(self,**vals)
- vals["stock_id"] = rst["id"]
- rst["list"] = ctl.get_stock_players(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class DefaultDateView(cv.BaseView):
- def get(self, request):
- """#默认日期(2.0小程序)
- @id:1
- """
- try:
- qdata = request.json
- rst = ctl.get_default_date(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class NoticesListView(cv.BaseView):
- def get(self, request):
- """#公告列表(2.0小程序)
- @id:1
- """
- try:
- rst = ctl.get_notices()
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerMatchCalendarView(cv.AuthView):
- def get(self, request):
- """#获取日历收益(2.0小程序)
- @match_id:1
- @user_id:1
- @month:2021-12
- """
- qdata = request.json
- need_params = ["user_id","match_id","month"]
- 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_player_match_calendar(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MatchListView(cv.BaseView):
- def get(self, request):
- """#获取所有赛事(2.0小程序)
- """
- try:
- rst = ctl.get_all_match(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MineLatestView(cv.AuthView):
- def get(self, request):
- """#我的最新(2.0小程序)
- """
- try:
- rst = ctl.get_mine_latest(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MatchValidDatesView(cv.AuthView):
- def get(self, request):
- """#比赛时间(2.0小程序)
- """
- try:
- qdata = request.json
- match_id = qdata.get("match_id")
- rst = ctl.get_match_validdates(match_id)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3LoginView(cv.BaseView):
- def post(self, request):
- """#小程序登录v3(3.0小程序)
- @nickanme:"微信昵称"
- @avatar:"微信头像"
- @openid:"openid"
- @phone:"15982456282"
- @phcode:"2345"
- """
- try:
- rst = ca.login_user_v3(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3PhoneCodeView(cv.BaseView):
- def post(self, request):
- """#短信验证码接口v3(3.0小程序)
- @phone:"手机号"
- """
- try:
- rst = ctl.send_phcode(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class V3PhoneBindView(cv.AuthView):
- def post(self, request):
- """#手机绑定接口v3(3.0小程序)
- @phone:"手机号"
- @phcode:"验证码"
- """
- try:
- rst = ca.bind_user_phone(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class V3SignupInfoView(cv.AuthView):
- def get(self, request):
- """#报名信息v3(3.0小程序)
- """
- try:
- rst = ctl.get_signup_info(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class V3SignupWebView(cv.BaseView):
- def get(self, request):
- """#报名信息v3(3.0小程序)
- """
- try:
- rst = ctl.get_signup_info(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
-
- class V3SignupWXPayView(cv.AuthView):
- def post(self, request):
- """#微信支付v3(3.0小程序)
- @match_id:1,
- @match_name:"测试比赛",
- @signup_type:1,1/游客报名,2/选手报名,
- @total_fee:10,总价
- """
- try:
- rst = ctl.do_wx_pay(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3SignupNotifyView(cv.BaseView):
- def post(self, request):
- """#微信支付回调v3(3.0小程序)
- @match_id:1,
- @match_name:"",
- @signup_type:1,1游客报名/2选手报名
- @total_fee:200,总价
- """
- try:
- rst = ctl.do_wxpay_notify(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class V3CommentsListView(cv.AuthView):
- def get(self, request):
- """#获取评论列表v3(3.0小程序)
- @record_id:29411,作业id
- """
- try:
- total,rst = ctl.get_user_comments(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3WanzhuConsultListView(cv.AuthView):
- def get(self, request):
- """#获取我的咨询列表v3(3.0小程序)
- """
- try:
- total,rst = ctl.get_user_consult_list(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3ZanCountView(cv.AuthView):
- def get(self, request):
- """#获取点赞数v3(3.0小程序)
- @record_id:1,作业id
- """
- try:
- rst = ctl.get_user_zans(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3CommentsCountView(cv.AuthView):
- def get(self, request):
- """#获取评论数v3(3.0小程序)
- @record_id:1,作业id
- @stock_id:1,股票id
- """
- try:
- rst = ctl.get_user_comments_count(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class V3WanzhuConsultView(cv.AuthView):
- def post(self, request):
- """#顽主咨询v3(3.0小程序)
- @cotent:"咨询内容"
- @pid:1,评论id(相当于回复哪条评论)
- """
- try:
- rst = ctl.add_wanzhu_consult(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class V3CommentsView(cv.AuthView):
- def post(self, request):
- """#评论v3(3.0小程序)
- @record_id:1,作业id
- @stock_id:1,股票id
- @cotent:"评论内容"
- @pid:1,评论id
- """
- try:
- rst = ctl.add_comments(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- def delete(self, request):
- """#删除评论v3(3.0小程序)
- @id:1,评论id
- """
- try:
- rst = ctl.delete_comments(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class V3ZanView(cv.AuthView):
- def post(self, request):
- """#点赞v3(3.0小程序)
- @record_id:1,作业id
- """
- try:
- rst = ctl.add_zan(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3ExperienceView(cv.BaseView):
- def get(self, request):
- """#今日反思列表v3(3.0小程序)
- """
- try:
- kwargs = request.json
- total,rst = ctl.get_experience_list(**kwargs)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3UserFundModifyView(cv.AuthView):
- def put(self, request):
- """#修改初始资金v3(3.0小程序)
- @out_fund:10
- @in_fund:10
- @account_img:""
- """
- try:
- rst = ctl.modify_user_fund(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3UserChoiceListView(cv.AuthView):
- def get(self, request):
- """#我的自选v3(3.0小程序)
- @stock_id:1
- """
- try:
- total,rst = ctl.get_user_choices(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3UserChoiceView(cv.AuthView):
- def post(self, request):
- """#加入首选v3(3.0小程序)
- @stock_id:""
- """
- try:
- rst = ctl.add_choice(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- def delete(self,request):
- """#取消自选(3.0小程序)
- @id:"1",多个逗号分隔
- @stock_id:"1",股票id
- """
- qdata = request.json
- need_params = ["stock_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_choice(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserMatchListView(cv.AuthView):
- def get(self, request):
- """#用户参赛列表v3(3.0小程序)
- """
- try:
- total,rst = ctl.get_user_match_list(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserInfoView(cv.AuthView):
- def get(self, request):
- """#用户信息(公共)
- """
- try:
- rst = ctl.get_format_user_info(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class StockUserListView(cv.AuthView):
- def get(self, request):
- """#股票持仓选手数据(3.0小程序)
- """
- try:
- qdata = request.json
- total,rst = ctl.get_stock_players(**qdata)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserInOutListView(cv.AuthView):
- def get(self, request):
- """#每日盈亏(3.0小程序)
- """
- try:
- total,rst = ctl.get_day_inout_rank_list(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3FollowUserListView(cv.AuthView):
- def get(self, request):
- """#我的关注(2.0小程序)
- """
- try:
- total,rst = ctl.get_user_follows_v3(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3LatestMatchView(cv.AuthView):
- def get(self, request):
- """#最新赛事与分组信息(3.0app)
- """
- try:
- rst = ctl.get_latest_match_info(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3StockView(cv.AuthView):
- def get(self, request):
- """#股票詳情(3.0小程序)
- @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)
- #vals["user_id"] = request.user.get("id")
- stock_id = vals.get("id")
- rst = ctl.get_stock_info(stock_id)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3StockPlayersListView(cv.BaseView):
- def get(self, request):
- """#股票持仓列表(3.0小程序)
- @id:1
- @page:1
- @page_size:1
- """
- qdata = request.json
- need_params = ["id"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["page","page_size","stock_date"])
- vals = ccf.get_need_params(*need_params,**qdata)
- #vals["user_id"] = request.user.get("id")
- vals["stock_id"] = vals.get("id")
- vals["v3"] = 1
- total,rst = ctl.get_stock_players(**vals)
- return cv.to_suc({"total":total,"list":rst})
- #return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3ArticleDetailView(cv.BaseView):
- def get(self, request):
- """#文章详情(APP)
- @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_article_info(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class ProfitRankListView(cv.BaseView):
- def get(self, request):
- """#盈亏列表(小程序)
- @id:1
- """
- qdata = request.json
- try:
- total,rst = ctl.get_profit_list(**qdata)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3GroupRankView(cv.AuthView):
- def get(self, request):
- """#分组排名(小程序)
- """
- try:
- total,rst = ctl.get_group_rank_list_v3(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3ArticleTypeListView(cv.BaseView):
- def get(self, request):
- """#盈亏列表(小程序)
- @id:1
- """
- qdata = request.json
- try:
- rst = ctl.get_article_type_list(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class ConsultListView(cv.AuthView):
- 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 BaikeCategoryListView(cv.BaseView):
- 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 BaikeListView(cv.BaseView):
- def get(self, request):
- """#百科词条列表(平台管理后台)
- @category_id:1,分类id
- """
- qdata = request.json
- try:
- total,rst = ctl.get_baike_list_by_category(**qdata)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class BaikeDetailView(cv.AuthView):
- def get(self, request):
- """#百科词条列表(平台管理后台)
- @id:1,百科id
- """
- qdata = request.json
- try:
- rst = ctl.get_baike_detail(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- def post(self, request):
- """#新增百科词条(3.0小程序)
- """
- qdata = request.json
- now = datetime.datetime.now()
- need_params = ["name","content"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- need_params.extend(["editor"])
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["cid"] = request.user.get("id",0)
- vals["cname"] = request.user.get("username","")
- rst = ctl.add_model(self,**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3AuthinfoView(cv.BaseView):
- def get(self,request):
- """#获取用户信息(小程序)
- """
- try:
- rst = ca.get_wxauth_info_v3(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class V3APPVersionView(cv.BaseView):
- def get(self,request):
- """#获取用户信息(小程序)
- """
- try:
- rst = ctl.get_app_version(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class WanzhuConsultReplyView(cv.AuthView):
- 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","width","height"])
- 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 UserDeleteView(cv.AuthView):
- def delete(self, request):
- """#删除评论v3(3.0小程序)
- @id:1,评论id
- """
- try:
- rst = ctl.delete_user_info(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class StockCommentsListView(cv.AuthView):
- def get(self, request):
- """#股票评论列表(平台管理后台)
- @stock_id:""
- @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 UserArticleRelationListView(cv.AuthView):
- def get(self, request):
- """#名人堂列表(平台管理后台)
- @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.AuthView):
- 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)
- class BaikeRandomListView(cv.AuthView):
- def get(self, request):
- """#随机百科词条(小程序)
- """
- qdata = request.json
- try:
- rst = ctl.get_random_bake_list(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class TypeArticleTop5ListView(cv.AuthView):
- def get(self, request):
- """#每个分类下最新5条数据(小程序)
- """
- qdata = request.json
- try:
- rst = ctl.articles_top5_by_type(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MatchWinlostTop5ListView(cv.BaseView):
- def get(self, request):
- """#每届比赛收益top5(小程序)
- """
- qdata = request.json
- try:
- rst = ctl.get_match_winlost_top5(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class AiDetectImageView(cv.BaseView):
- def post(self, request):
- """
- #ai图片检测(小程序)
- @imgurl:"",图片地址
- """
- qdata = request.json
- try:
- imgurl = qdata.get("imgurl")
- rst = baidu_ai_detect_image(imgurl)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class AiDetectTxtView(cv.AuthView):
- def post(self, request):
- """
- #ai文本检测(小程序)
- @content:"",检测文本
- """
- qdata = request.json
- try:
- content = qdata.get("content")
- rst = baidu_ai_detect_txt(content)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class AiOcr(cv.AuthView):
- def post(self, request):
- """
- extract balance, stocks and money from screenshots by ocr using baidu.
-
- @source: str | None, source of image. optional['tonghuashun']
- @img_url: str, the url of image
- """
- qdata = request.json
- try:
- source = qdata.get('source')
- content = qdata.get('img_url')
- if not content:
- return cv.to_fail('img_url can not be empty')
- # rst = BaiduOcrForm.do_ocr(source, content)
- rst = OcrManage.loadOcr(content,source)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserBlacksView(cv.AuthView):
- def post(self, request):
- """#拉黑用户(3.0小程序)
- @black_user_id:1,拉黑用户id
- """
- try:
- rst = ctl.black_user(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- def delete(self, request):
- """#取消拉黑用户v3(3.0小程序)
- @black_user_id:1,拉黑用户id
- """
- try:
- rst = ctl.delete_black_user(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class UserBlacksListView(cv.AuthView):
- def get(self, request):
- """#用户黑名单(小程序)
- """
- try:
- total,rst = ctl.get_user_black_user_list(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class StockNbCommentsListView(cv.BaseView):
- def get(self, request):
- """#获取牛人v3(3.0小程序)
- @date:"2023-07-16",评论时间
- """
- try:
- total,rst = ctl.get_stock_nb_comments(request)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- ####
- class OpModelGroupListView(cv.BaseView):
- def get(self, request):
- """#获取所有操作模式分组(微信小程序)
- """
- 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 OpModelGroupRankListView(cv.BaseView):
- def get(self, request):
- """#获取所有操作模式分组排名(微信小程序)
- """
- qdata = request.json
- try:
- rst = ctl.get_opmode_group_rank_list(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class OpModelGroupRankInfoView(cv.BaseView):
- def get(self, request):
- """#获取模式分组信息(微信小程序)
- """
- qdata = request.json
- try:
- statistic = ctl.get_opmode_group_statistic(**qdata)
- return cv.to_suc(statistic)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class OpModelGroupRankInfoListView(cv.BaseView):
- def get(self, request):
- """#获取模式分组信息(微信小程序)
- """
- qdata = request.json
- try:
- total,rst = ctl.get_opmode_group_rank_info_list(**qdata)
- return cv.to_suc({"total":total,"list":rst})
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MatchGroupWinloseStatisticView(cv.BaseView):
- def get(self, request):
- """#获取分组盈亏统计量
- """
- qdata = request.json
- try:
- rst = ctl.get_match_group_winlose_statistic(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MatchGroupListView(cv.BaseView):
- def get(self, request):
- """#获取比赛分组
- """
- qdata = request.json
- try:
- rst = ctl.get_match_group_list(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserMarkScoreView(cv.AuthView):
- def post(self, request):
- """新增评分
- """
- qdata = request.json
- now = datetime.datetime.now()
- need_params = ["score"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- today = qdata.get("stock_date")
- if not today:
- today = get_today_date()
- vals = ccf.get_need_params(*need_params,**qdata)
- vals["stock_date"] = today
- vals["user_id"] = request.user.get("id")
- #判断是否周末
- weekDay = datetime.datetime.strptime("2024-11-21","%Y-%m-%d").weekday()
- if weekDay in [5,6]:
- raise ce.TipException(u"周六、周天不能评分!")
- rst = ctl.user_mark_score(**vals)
- return cv.to_suc()
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserMarkScoreListView(cv.AuthView):
- def get(self, request):
- """#获取分组盈亏统计量
- """
- qdata = request.json
- try:
- qdata["user_id"] = request.user.get("id")
- rst = ctl.get_user_markscore_list(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserMarkScoreCheckView(cv.AuthView):
- def get(self, request):
- """#获取分组盈亏统计量
- """
- qdata = request.json
- try:
- qdata["user_id"] = request.user.get("id",0)
- rst = ctl.check_user_markscore(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MatchGroupWinloseAllDayView(cv.BaseView):
- def get(self, request):
- """#获取分组盈亏统计量
- """
- qdata = request.json
- try:
- rst = ctl.get_match_group_winlose_allday(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MatchGroupWinloseAvgAllDayView(cv.BaseView):
- def get(self, request):
- """#获取分组盈亏统计量
- """
- qdata = request.json
- try:
- rst = ctl.get_match_group_winlose_avg_allday(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserMatchStockWinLossListView(cv.BaseView):
- def get(self, request):
- """#获取个人股票盈亏排名
- """
- qdata = request.json
- try:
- rst = ctl.get_user_match_stock_winloss_rank_list(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerMatchExternalView(cv.BaseView):
- def get(self, request):
- """#选手参赛详情(小程序)
- """
- try:
- rst = ctl.get_player_match_detail(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class PlayerMatchCalendarExternalView(cv.BaseView):
- def get(self, request):
- """#获取日历收益(2.0小程序)
- @match_id:1
- @user_id:1
- @month:2021-12
- """
- qdata = request.json
- need_params = ["user_id","match_id","month"]
- 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_player_match_calendar(**vals)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class OSS2PolicyAndSignView(cv.BaseView):
- def get(self, request):
- """#获取oss签名和上传策略
- """
- try:
- rst = ctl.get_oss2_policy_sign(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class UserMarkWekkAvgView(cv.BaseView):
- def get(self, request):
- """#用户每周平均值
- """
- try:
- rst = ctl.get_user_markscore_week_avg(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class WXPayRefundView(cv.AuthView):
- 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 SignupOldUserView(cv.AuthView):
- 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 UserSignupOrder(cv.BaseView):
- def get(self, request):
- """#获取用户当前赛事报名信息
- """
- try:
- rst = ctl.get_user_signup_order(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MsgContentCheck(cv.BaseView):
- def post(self,request):
- """#微信退款(平台管理后台)
- @id:"订单id"
- """
- qdata = request.json
- need_params = ["content"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- try:
- vals = ccf.get_need_params(*need_params,**qdata)
- rst = ctl.check_msg_content(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class DeleteUserStock(cv.AuthView):
- def delete(self, request):
- """#删除用户今日持仓数据v3(3.0小程序)
- """
- try:
- rst = ctl.delete_user_stock(request)
- return cv.to_suc(rst)
- except Exception as e:
- return cv.to_fail(e)
- class GetUserFundInOut(cv.AuthView):
- def get(self,request):
- """获取用户出入资金
- """
- try:
- rst = ctl.get_user_fundinout(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class DeleteUserFundInOut(cv.AuthView):
- def delete(self, request):
- """#删除用户出入资金
- """
- try:
- rst = ctl.delete_user_fundinout(request)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
- class MatchCangweiAvgAllDayView(cv.BaseView):
- def get(self, request):
- """#获取每日人均仓位
- """
- qdata = request.json
- try:
- rst = ctl.get_match_cangwei_avg_allday(**qdata)
- return cv.to_suc(rst)
- except Exception as e:
- cv.tracefail()
- return cv.to_fail(e)
|