|
@@ -178,7 +178,7 @@ class PlayerRecordView(cv.AuthView):
|
|
|
if mse:
|
|
|
raise ce.TipException(mse)
|
|
|
try:
|
|
|
- need_params.extend(["is_markt","today_stock","today_stock_img"])
|
|
|
+ need_params.extend(["is_markt","today_stock","today_stock_img","experience"])
|
|
|
vals = ccf.get_need_params(*need_params,**qdata)
|
|
|
vals["player_id"] = player.id
|
|
|
vals["match_id"] = player.match_id
|
|
@@ -286,7 +286,7 @@ class PlayerRecordSingleView(cv.BaseView):
|
|
|
if mse:
|
|
|
raise ce.TipException(mse)
|
|
|
try:
|
|
|
- need_params.extend(["is_markt","today_stock"])
|
|
|
+ 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)
|
|
@@ -340,23 +340,374 @@ class ArticleView(cv.AuthView):
|
|
|
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:"",参数金额
|
|
|
+ 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 = ["init_fund"]
|
|
|
+ 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.id
|
|
|
- vals["player_id"] = request.player.id if request.player else None
|
|
|
- rst = ctl.update_user_fund(**vals)
|
|
|
+ vals["player_id"] = request.player.id
|
|
|
+ rst = ctl.follow_player(**vals)
|
|
|
return cv.to_suc(rst)
|
|
|
except Exception as e:
|
|
|
cv.tracefail()
|
|
|
- return cv.to_fail(e)
|
|
|
+ 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 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"])
|
|
|
+ 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"])
|
|
|
+ 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:
|
|
|
+ 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"] = request.player.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","account_img"]
|
|
|
+ mse = ccf.check_params(*need_params,**qdata)
|
|
|
+ if mse:
|
|
|
+ raise ce.TipException(mse)
|
|
|
+ try:
|
|
|
+ need_params.extend(["init_fund"])
|
|
|
+ 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.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:
|
|
|
+ rst = ctl.get_today_date()
|
|
|
+ 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
|
|
|
+ @player_id:1
|
|
|
+ @month:2021-12
|
|
|
+ """
|
|
|
+ qdata = request.json
|
|
|
+ need_params = ["player_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)
|