|
|
@@ -27,13 +27,11 @@ from threading import Thread
|
|
|
#from django.core.cache import cache
|
|
|
from django.db import connection
|
|
|
from utils.wxSubscribeMessage import send_consult_reply_message
|
|
|
-from utils.aliyunpush import aliyunpush
|
|
|
|
|
|
import xlrd
|
|
|
import xlwt
|
|
|
from xlutils.copy import copy
|
|
|
from xltpl.writer import BookWriter
|
|
|
-from weixin.wzhifuSDK_V3 import refund_order
|
|
|
|
|
|
@ccc.cache_data()
|
|
|
def get_user_info(uid):
|
|
|
@@ -282,8 +280,6 @@ def delete_model(cls,**kwargs):
|
|
|
if model_name == "MatchGroup":
|
|
|
cm.PlayerRecord.objects.filter(match_group__in=ids).delete()
|
|
|
cm.Player.objects.filter(match_group__in=ids).delete()
|
|
|
- if model_name == "BaikeCategory":
|
|
|
- cm.BaikeDetail.objects.filter(category_id__in=ids).delete()
|
|
|
|
|
|
return ids
|
|
|
|
|
|
@@ -296,7 +292,7 @@ def get_search_list(cls,**kwargs):
|
|
|
qset = model.objects.all().order_by("-id")
|
|
|
if model_name == "Player":
|
|
|
if kwargs.get("usercode"):
|
|
|
- qset = qset.filter(Q(usercode__icontains=kwargs.get("usercode"))|Q(username__icontains=kwargs.get("usercode"))|Q(phone__icontains=kwargs.get("usercode")))
|
|
|
+ qset = qset.filter(usercode__icontains=kwargs.get("usercode"))
|
|
|
data = list(qset.values("id","user_id","username","usercode"))
|
|
|
for item in data:
|
|
|
item["label"] = "%s(%s)" % (item["username"],item["usercode"])
|
|
|
@@ -405,6 +401,7 @@ def get_list_info(cls,**kwargs):
|
|
|
if kwargs.get("match_id"):
|
|
|
qset = qset.filter(match_id=kwargs.get("match_id"))
|
|
|
if kwargs.get("username"):
|
|
|
+ #qset = qset.filter(Q(user_name__icontains=kwargs.get("username"))|Q(phone__icontains=kwargs.get("username"))|Q(transaction_id__icontains=kwargs.get("username")))
|
|
|
qset = qset.filter(Q(user_name__icontains=kwargs.get("username"))|Q(phone__icontains=kwargs.get("username")))
|
|
|
if kwargs.get("signup_type"):
|
|
|
qset = qset.filter(signup_type=kwargs.get("signup_type"))
|
|
|
@@ -416,22 +413,15 @@ def get_list_info(cls,**kwargs):
|
|
|
if model_name == "Article":
|
|
|
if kwargs.get("type"):
|
|
|
qset = qset.filter(type=kwargs.get("type"))
|
|
|
- if kwargs.get("category"):
|
|
|
- qset = qset.filter(category=kwargs.get("category"))
|
|
|
if model_name == "Stock":
|
|
|
if kwargs.get("username"):
|
|
|
qset = qset.filter(name__icontains=kwargs.get("username"))
|
|
|
|
|
|
- if model_name == "BaikeDetail":
|
|
|
- if kwargs.get("name"):
|
|
|
- qset = qset.filter(name__icontains=kwargs.get("name"))
|
|
|
- if kwargs.get("status"):
|
|
|
- qset = qset.filter(status=kwargs.get("status"))
|
|
|
- if kwargs.get("category_id"):
|
|
|
- qset = qset.filter(category_id=kwargs.get("category_id"))
|
|
|
-
|
|
|
if model_name == "PlayerRecord":
|
|
|
- data = list(qset.order_by("-total_income").values())
|
|
|
+ if kwargs.get("username"):
|
|
|
+ data = list(qset.order_by("-stock_date").values())
|
|
|
+ else:
|
|
|
+ data = list(qset.order_by("-total_income").values())
|
|
|
else:
|
|
|
data = list(qset.order_by("-id").values())
|
|
|
page = int(kwargs.get("page",1))
|
|
|
@@ -448,6 +438,12 @@ def get_list_info(cls,**kwargs):
|
|
|
item["openid"] = user["openid"]
|
|
|
item["player_type"] = user["player_type"]
|
|
|
item["phone"] = user["phone"]
|
|
|
+ #try:
|
|
|
+ # item["match_group"] = int(item["match_group"])
|
|
|
+ # item["match_group_name"] = cm.MatchGroup.objects.filter(id=int(item["match_group"])).first().name
|
|
|
+ #except:
|
|
|
+ # pass
|
|
|
+ #cm.Player.objects.filter(id=item["id"]).update(username=user.username,usercode=user.usercode)
|
|
|
if model_name == "PlayerRecord":
|
|
|
for item in data:
|
|
|
user = cm.UserInfo.objects.filter(id=item["user_id"]).first()
|
|
|
@@ -511,7 +507,11 @@ def get_list_info(cls,**kwargs):
|
|
|
item["usercode"] = user.usercode
|
|
|
|
|
|
if kwargs.get("username"):
|
|
|
+ print(111111111111111111)
|
|
|
+ print(data)
|
|
|
+ print(kwargs.get("username"))
|
|
|
data = filter(lambda x:x["username"] == str(kwargs.get("username")) or kwargs.get("username") ==x["usercode"],data)
|
|
|
+ print(data,22222222222222)
|
|
|
|
|
|
return (total,data)
|
|
|
else:
|
|
|
@@ -545,56 +545,51 @@ def download_records(request):
|
|
|
|
|
|
data = []
|
|
|
for item in qdata:
|
|
|
- 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"请假"
|
|
|
+ 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"开超市"
|
|
|
else:
|
|
|
- if item["is_markt"] == 1:
|
|
|
- today_stock = u"开超市"
|
|
|
- else:
|
|
|
- if today_stock == "":
|
|
|
- today_stock = u"空仓"
|
|
|
- #昨日
|
|
|
- if item["yesterday_auto_complete"] > 0:
|
|
|
- yesterday_stock = u"请假"
|
|
|
+ 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"开超市"
|
|
|
else:
|
|
|
- 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
|
|
|
+ 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
|
|
|
+ ])
|
|
|
xlsfile = os.path.join(settings.BASE_DIR,"demo.xls")
|
|
|
exceltool = ExcelTool(xlsfile)
|
|
|
xlsdata = exceltool.save_data(u"学员报名数据表",header,data)
|
|
|
@@ -680,7 +675,7 @@ def update_group_rank(stock_date=None,match_id=None,group_id=None):
|
|
|
ccc.pl.execute()
|
|
|
|
|
|
winset = cm.PlayerRecord.get_db_model(match_id).objects.filter(
|
|
|
- match_id=match_id,match_group=match_group,today_income__gte=0)\
|
|
|
+ match_id=match_id,match_group=match_group)\
|
|
|
.values("user_id").annotate(wincnt=Count("user_id")).values("user_id","match_id","match_group","wincnt")
|
|
|
|
|
|
totalset = cm.PlayerRecord.get_db_model(match_id).objects.filter(
|
|
|
@@ -787,6 +782,7 @@ def get_wanzhu_consult_list(**kwargs):
|
|
|
userinfo = get_user_info(user_id)
|
|
|
if userinfo:
|
|
|
item["user_code"] = userinfo.get("usercode")
|
|
|
+ item["phone"] = userinfo.get("phone")
|
|
|
|
|
|
#分页
|
|
|
page = int(kwargs.get("page",1))
|
|
|
@@ -816,63 +812,20 @@ def reply_wanzhu_consult(**kwargs):
|
|
|
pid = kwargs.get("pid")
|
|
|
content = kwargs.get("reply_content")
|
|
|
user_id = kwargs.get("user_id")
|
|
|
- action = kwargs.get("action")
|
|
|
- if action == "send":
|
|
|
- user = cm.UserInfo.objects.filter(id=user_id).first()
|
|
|
- user_name = user.username
|
|
|
- user_avatar = user.avatar
|
|
|
-
|
|
|
- obj,flag = cm.Consult.objects.get_or_create(
|
|
|
- user_id = user_id,
|
|
|
- )
|
|
|
- obj.user_name = user_name
|
|
|
- obj.user_avatar = user_avatar
|
|
|
- #obj.reply_content = content
|
|
|
- obj.view_status = 1
|
|
|
- obj.reply_status = 0
|
|
|
- obj.ctime = datetime.datetime.now()
|
|
|
- obj.save()
|
|
|
-
|
|
|
- wanzhu_obj = cm.WanzhuConsult.objects.create(
|
|
|
- user_id = user_id,
|
|
|
- user_name = user_name,
|
|
|
- user_avatar = user_avatar
|
|
|
- )
|
|
|
-
|
|
|
- wanzhu_obj_1 = cm.WanzhuConsult.objects.create(
|
|
|
- reply_content = content,
|
|
|
- user_id = 0,
|
|
|
- player_id = 0,
|
|
|
- reply_user_id = user_id,
|
|
|
- pid = wanzhu_obj.id
|
|
|
- )
|
|
|
- cm.Consult.objects.filter(user_id=user_id).update(reply_status=1,reply_content=content,ctime=datetime.datetime.now())
|
|
|
-
|
|
|
-
|
|
|
- else:
|
|
|
- cm.WanzhuConsult.objects.create(
|
|
|
- pid = pid,
|
|
|
- reply_content = content,
|
|
|
- user_id = 0,
|
|
|
- player_id = 0,
|
|
|
- reply_user_id = user_id
|
|
|
- )
|
|
|
- cm.Consult.objects.filter(user_id=user_id).update(reply_status=1,reply_content=content,ctime=datetime.datetime.now())
|
|
|
+ cm.WanzhuConsult.objects.create(
|
|
|
+ pid = pid,
|
|
|
+ reply_content = content,
|
|
|
+ user_id = 0,
|
|
|
+ player_id = 0,
|
|
|
+ reply_user_id = user_id
|
|
|
+ )
|
|
|
+ cm.Consult.objects.filter(user_id=user_id).update(reply_status=1,reply_content=content,ctime=datetime.datetime.now())
|
|
|
#发送消息提醒
|
|
|
if cm.UserInfo.objects.filter(id=user_id).exists():
|
|
|
user = cm.UserInfo.objects.filter(id=user_id).first()
|
|
|
openid = user.openid
|
|
|
username = user.username
|
|
|
- try:
|
|
|
- send_consult_reply_message(openid,username)
|
|
|
- except Exception as e:
|
|
|
- print(e)
|
|
|
- #发送app推送消息
|
|
|
- title = u"顽主杯"
|
|
|
- body = u"你收到一条顽主的消息"
|
|
|
- params = {"type":"message","id":str(user_id)}
|
|
|
- aliyunpush.push_notice_by_userid(user_id,title,body,params,"ios")
|
|
|
- aliyunpush.push_notice_by_userid(user_id,title,body,params,"android")
|
|
|
+ send_consult_reply_message(openid,username)
|
|
|
|
|
|
def update_player_type(**kwargs):
|
|
|
"""
|
|
|
@@ -1019,70 +972,3 @@ def batch_update_player_latest(record):
|
|
|
#win_rate = wincnt/float(total) if total else 0.0
|
|
|
#win_rate = round(win_rate,3)
|
|
|
#ccc.cache.hset(key,"win_rate",win_rate)
|
|
|
-
|
|
|
-def get_sub_category(pid):
|
|
|
- """
|
|
|
- """
|
|
|
- qset = cm.BaikeCategory.objects.filter(parent_id=pid)
|
|
|
- qdata = list(qset.values())
|
|
|
- if qdata:
|
|
|
- for subitem in qdata:
|
|
|
- subitem["type"] = "ent"
|
|
|
- subitem["label"] = subitem["name"]
|
|
|
- subitem["children"] = get_sub_category(subitem["id"])
|
|
|
- return qdata
|
|
|
-
|
|
|
-def get_baike_category_tree(**kwargs):
|
|
|
- parents = list(cm.BaikeCategory.objects.filter(parent_id__isnull=True).values())
|
|
|
- for item in parents:
|
|
|
- item["label"] = item["name"]
|
|
|
- item["children"] = get_sub_category(item["id"])
|
|
|
- return parents
|
|
|
-
|
|
|
-
|
|
|
-def get_baike_list_by_category(**kwargs):
|
|
|
- category_id = kwargs.get("category_id")
|
|
|
- qset = cm.BaikeDetail.objects.filter(category_id=category_id)
|
|
|
- data = list(qset.values("id","name"))
|
|
|
- return data
|
|
|
-
|
|
|
-def push_article(**kwargs):
|
|
|
- _id = kwargs.get("id")
|
|
|
- article = cm.Article.objects.filter(id=_id).first()
|
|
|
- #发送app推送消息
|
|
|
- title = u"顽主杯"
|
|
|
- body = article.name
|
|
|
- user_id = "ALL"
|
|
|
- params = {"type":"article","id":_id}
|
|
|
- aliyunpush.push_notice_by_userid(user_id,title,body,params,"ios")
|
|
|
- aliyunpush.push_notice_by_userid(user_id,title,body,params,"android")
|
|
|
-
|
|
|
-
|
|
|
-def import_article(**kwargs):
|
|
|
- """
|
|
|
- """
|
|
|
- obj = cm.Article.objects.create(**kwargs)
|
|
|
-
|
|
|
-
|
|
|
-def refund_out_trade_order(**kwargs):
|
|
|
- """
|
|
|
- """
|
|
|
- _id = kwargs.get("id")
|
|
|
- signup_order = cm.SignupOrder.objects.filter(id=_id).first()
|
|
|
- if signup_order:
|
|
|
- out_trade_no = signup_order.out_trade_no
|
|
|
- transaction_id = signup_order.transaction_id
|
|
|
- total_fee = signup_order.total_fee
|
|
|
- amount = str(int(total_fee*100))
|
|
|
- print(amount)
|
|
|
- result = refund_order(transaction_id,out_trade_no,out_trade_no,amount)
|
|
|
- if result.get("result_code") == "SUCCESS":
|
|
|
- signup_order.order_status = -1
|
|
|
- signup_order.save()
|
|
|
- return "success"
|
|
|
- else:
|
|
|
- raise ce.TipException(result.get("err_code_des"))
|
|
|
- else:
|
|
|
- raise ce.TipException(u"该订单不存在退款失败!")
|
|
|
-
|
|
|
-
|