浏览代码

胜率修改

xjconline 2 年之前
父节点
当前提交
98206838aa
共有 3 个文件被更改,包括 76 次插入68 次删除
  1. 48 43
      src/manage/controls.py
  2. 1 1
      src/tools/rank_server.py
  3. 27 24
      src/weixin/controls.py

+ 48 - 43
src/manage/controls.py

@@ -545,51 +545,56 @@ def download_records(request):
 
     data = []
     for item in qdata:
-        user = cm.UserInfo.objects.filter(id=item["user_id"]).first()
-        item["username"] = user.username
-        item["usercode"] = user.usercode
-        item["today_income"] = "{}%".format(item["today_income"]*100)
-        item["total_income"] = "{}%".format(item["total_income"]*100)
-
-        today_stock = json.loads(item["today_stock"]) if item["today_stock"] else []
-        today_stock = list(filter(lambda x:x["name"],today_stock if today_stock else []))
-        today_stock = ",".join([x["name"]+str(x["fund"]) for x in today_stock]) if today_stock else ""
-
-        yesterday_stock = json.loads(item["yesterday_stock"]) if item["yesterday_stock"] else []
-        yesterday_stock = list(filter(lambda x:x["name"],yesterday_stock if yesterday_stock else []))
-        yesterday_stock = ",".join([x["name"]+str(x["fund"]) for x in yesterday_stock]) if yesterday_stock else ""
-
-        #空仓、开超市、请假判断
-        if item["auto_complete"] > 0:
-            today_stock = u"请假"
-        else:
-            if item["is_markt"] == 1:
-                today_stock = u"开超市"
+        try:
+            user = cm.UserInfo.objects.filter(id=item["user_id"]).first()
+            item["username"] = user.username
+            item["usercode"] = user.usercode
+            item["today_income"] = "{}%".format(item["today_income"]*100)
+            item["total_income"] = "{}%".format(item["total_income"]*100)
+            print(item)
+
+            today_stock = json.loads(item["today_stock"]) if item["today_stock"] else []
+            today_stock = list(filter(lambda x:x["name"],today_stock if today_stock else []))
+            today_stock = ",".join([x["name"]+str(x.get("fund","")) for x in today_stock]) if today_stock else ""
+
+                
+            yesterday_stock = json.loads(item["yesterday_stock"]) if item["yesterday_stock"] else []
+            yesterday_stock = list(filter(lambda x:x["name"],yesterday_stock if yesterday_stock else []))
+            yesterday_stock = ",".join([x["name"]+str(x.get("fund","")) for x in yesterday_stock]) if yesterday_stock else ""
+      
+            #空仓、开超市、请假判断
+            if item["auto_complete"] > 0:
+                today_stock = u"请假"
             else:
-                if today_stock == "":
-                    today_stock = u"空仓"
-        #昨日
-        if item["yesterday_auto_complete"] > 0:
-            yesterday_stock = u"请假"
-        else:
-            if item["yesterday_is_markt"] == 1:
-                yesterday_stock = u"开超市"
+                if item["is_markt"] == 1:
+                    today_stock = u"开超市"
+                else:
+                    if today_stock == "":
+                        today_stock = u"空仓"
+            #昨日
+            if item["yesterday_auto_complete"] > 0:
+                yesterday_stock = u"请假"
             else:
-                if yesterday_stock == "":
-                    yesterday_stock = u"空仓"
-
-        data.append(
-                [
-                    item["group_rank"],
-                    item["username"],
-                    item["init_fund"],
-                    item["yesterday_fund"],
-                    item["today_fund"],
-                    item["today_income"],
-                    item["total_income"],
-                    yesterday_stock,
-                    today_stock
-                ])
+                if item["yesterday_is_markt"] == 1:
+                    yesterday_stock = u"开超市"
+                else:
+                    if yesterday_stock == "":
+                        yesterday_stock = u"空仓"
+
+            data.append(
+                    [
+                        item["group_rank"],
+                        item["username"],
+                        item["init_fund"],
+                        item["yesterday_fund"],
+                        item["today_fund"],
+                        item["today_income"],
+                        item["total_income"],
+                        yesterday_stock,
+                        today_stock
+                    ])
+        except Exception as e:
+            pass
     xlsfile = os.path.join(settings.BASE_DIR,"demo.xls")
     exceltool = ExcelTool(xlsfile)
     xlsdata = exceltool.save_data(u"学员报名数据表",header,data)

+ 1 - 1
src/tools/rank_server.py

@@ -141,7 +141,7 @@ def update_player_latest(record):
         ccc.cache.hset(key,"match_group",match_group)
         #更新胜率
         qset = cm.PlayerRecord.get_db_model(match_id).objects.filter(match_id=match_id,user_id=user_id)
-        win_rate = qset.filter(today_income__gte=0).count()/float(qset.count()) if qset else 0.0
+        win_rate = qset.filter(today_income__gt=0).count()/float(qset.count()) if qset else 0.0
         win_rate = round(win_rate,3)
         ccc.cache.hset(key,"win_rate",win_rate)
 

+ 27 - 24
src/weixin/controls.py

@@ -341,15 +341,15 @@ def format_today_record(today_record):
             today_record["cangwei"] = "{}%".format(round(today_stock_total/today_record["today_fund"],4)*100)
             today_record["today_stock_total"] = today_stock_total
 
-            win_rate = ccc.cache.hget("PLAYER_LATEST_%d" % today_record["user_id"],"win_rate")
-            if win_rate:
-                today_record["win_rate"] = str(float(win_rate)*100)+"%"
-            else:
-                today_record["win_rate"] = "0.0%"
+#             win_rate = ccc.cache.hget("PLAYER_LATEST_%d" % today_record["user_id"],"win_rate")
+#             if win_rate:
+#                 today_record["win_rate"] = str(float(win_rate)*100)+"%"
+#             else:
+#                 today_record["win_rate"] = "0.0%"
 
-            ##
-            #win_rate = calc_win_rate(today_record["user_id"],today_record["match_id"])
-            #today_record["win_rate"] = win_rate
+            
+            win_rate = calc_win_rate(today_record["user_id"],today_record["match_id"])
+            today_record["win_rate"] = win_rate
 
 
 
@@ -1121,7 +1121,7 @@ def calc_win_rate(player_id,match_id):
     """计算胜率
     """
     qset = cm.PlayerRecord.get_db_model(match_id).objects.filter(match_id=match_id,user_id=player_id)
-    win_rate = qset.filter(today_income__gte=0).count()/float(qset.count()) if qset else 0.0
+    win_rate = qset.filter(today_income__gt=0).count()/float(qset.count()) if qset else 0.0
     win_rate = round(win_rate,3)
     win_rate = "{}%".format(win_rate*100)
     return win_rate
@@ -1251,23 +1251,26 @@ def get_user_follows(request):
         total,data = ccf.get_page_list(data,page,page_size)
         for item in data:
             if item:
-                user_id = item["user_id"]
-                latest_key = "PLAYER_LATEST_%d"%user_id
+                try:
+                    user_id = item["user_id"]
+                    latest_key = "PLAYER_LATEST_%d"%user_id
 
-                today_stock = json.loads(item["today_stock"])
-                today_stock = filter(lambda x:x["name"] and x["fund"],today_stock)
-                item["today_stock"] = today_stock
-                item["today_stock_img"] = json.loads(item["today_stock_img"])
+                    today_stock = json.loads(item["today_stock"])
+                    today_stock = filter(lambda x:x["name"] and x["fund"],today_stock)
+                    item["today_stock"] = today_stock
+                    item["today_stock_img"] = json.loads(item["today_stock_img"])
 
-                win_rate = ccc.cache.hget(latest_key,"win_rate")
-                if win_rate:
-                    item["win_rate"] = str(float(win_rate)*100)+"%"
-                else:
-                    item["win_rate"] = "0.0%"
-                item["today_income"] = "{}%".format(item["today_income"]*100)
-                item["total_income"] = "{}%".format(item["total_income"]*100)
-                item["zans_count"] = item.get("zans",0)
-                item["comments_count"] = cm.Comments.objects.filter(record_id=item.get("id",0)).count()
+                    win_rate = ccc.cache.hget(latest_key,"win_rate")
+                    if win_rate:
+                        item["win_rate"] = str(float(win_rate)*100)+"%"
+                    else:
+                        item["win_rate"] = "0.0%"
+                    item["today_income"] = "{}%".format(item["today_income"]*100)
+                    item["total_income"] = "{}%".format(item["total_income"]*100)
+                    item["zans_count"] = item.get("zans",0)
+                    item["comments_count"] = cm.Comments.objects.filter(record_id=item.get("id",0)).count()
+                except Exception as e:
+                    print(e)
         return total,data
     else:
         return len(data),data