| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449 |
- # 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
- 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.AuthView):
- 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.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_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.AuthView):
- 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.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.AuthView):
- 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.AuthView):
- def get(self, request):
- """#百科词条列表(平台管理后台)
- @category_id:1,分类id
- """
- qdata = request.json
- try:
- rst = ctl.get_baike_list_by_category(**qdata)
- return cv.to_suc(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.AuthView):
- 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)
|