12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790 |
- # 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.AuthView):
- 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.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","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:
- 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:
- total,rst = ctl.get_champion_articles_list(request)
- 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.AuthView):
- 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.AuthView):
- 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.AuthView):
- 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.AuthView):
- def get(self, request):
- """#今日反思列表v3(3.0小程序)
- """
- try:
- total,rst = ctl.get_experience_list(request)
- 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.AuthView):
- 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["user_id"] = request.user.get("id")
- 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.get_user_markscore_list(**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)
|