Quellcode durchsuchen

优化咨询功能

xjc vor 8 Monaten
Ursprung
Commit
57afcc7b3c
5 geänderte Dateien mit 155 neuen und 5 gelöschten Zeilen
  1. 4 0
      src/common/models.py
  2. 9 5
      src/manage/controls.py
  3. 101 0
      src/weixin/controls.py
  4. 4 0
      src/weixin/urls_backstage.py
  5. 37 0
      src/weixin/views.py

+ 4 - 0
src/common/models.py

@@ -455,6 +455,8 @@ class Consult(models.Model):
     """
     user_id = models.IntegerField(u"用户id",blank=True,null=True)
     user_name = models.CharField(u"用户名", max_length=255, blank=True,null=True)
+    user_code = models.CharField(u"用编号", max_length=255, blank=True,null=True)
+    phone = models.CharField(u"手机号", max_length=255, blank=True,null=True)
     user_avatar = models.TextField(u"头像", max_length=255, blank=True,null=True)
     content = models.TextField(u"咨询内容", max_length=255, blank=True,null=True)
     reply_content = models.TextField(u"回复内容", max_length=255, blank=True,null=True)
@@ -477,6 +479,8 @@ class WanzhuConsult(models.Model):
     """
     user_id = models.IntegerField(u"用户id",blank=True,null=True)
     user_name = models.CharField(u"用户名", max_length=255, blank=True,null=True)
+    user_code = models.CharField(u"用编号", max_length=255, blank=True,null=True)
+    phone = models.CharField(u"手机号", max_length=255, blank=True,null=True)
     user_avatar = models.TextField(u"头像", max_length=255, blank=True,null=True)
     player_id = models.IntegerField(u"选手id",blank=True,null=True)
     content = models.TextField(u"咨询内容", max_length=255, blank=True,null=True)

+ 9 - 5
src/manage/controls.py

@@ -1006,16 +1006,20 @@ def get_wanzhu_consult_list(**kwargs):
     if kwargs.get("content"):
         qset = qset.filter(Q(content__icontains=kwargs.get("content"))|Q(reply_content__icontains=kwargs.get("content")))
     data = list(qset.values())
-    for item in data:
-        user_id = item["user_id"]
-        userinfo = get_user_info(user_id)
-        item["user_code"] = userinfo.get("usercode")
-        item["phone"] 	  = userinfo.get("phone")
+
 
 
     #分页
     page = int(kwargs.get("page",1))
     page_size = int(kwargs.get("page_size",20))
+
+    #for item in data:
+    #    user_id = item["user_id"]
+    #    userinfo = get_user_info(user_id)
+    #    if userinfo:
+    #        item["user_code"] = userinfo.get("usercode")
+    #        item["phone"] 	  = userinfo.get("phone")
+
     if page and page_size:
         total,data = ccf.get_page_list(data,page,page_size)
     else:

+ 101 - 0
src/weixin/controls.py

@@ -793,6 +793,7 @@ def add_model(cls,**kwargs):
 
         with transaction.atomic():
             #记录持股情况
+            today_stock_fund = 0
             new_stock_list = []
             today_stock_list = json.loads(today_stock)
             month = "%s%s" % (stock_date.split("-")[0],stock_date.split("-")[1])
@@ -811,6 +812,10 @@ def add_model(cls,**kwargs):
                         )
                         if ts.get("fund"):
                             usobj.fund = ts["fund"]
+                            try:
+                                today_stock_fund += float(ts["fund"])
+                            except:
+                                pass
                         if ts.get("name"):
                             usobj.stock_name = ts.get("name")
                         if match_group:
@@ -850,6 +855,10 @@ def add_model(cls,**kwargs):
             #计算今日收益和总收益
             if float(today_fund)>9999 or float(today_fund)<=0:                              
                 raise ce.TipException(u"数据错误,今日净资产不能超过9999万元,不能低于0万元,请仔细核对数据!")
+            
+            #如果今日持仓金额大于总资产的10倍,则提示数据有问题
+            if today_stock_total > float(today_fund)*10:
+                raise ce.TipException(u"今日持仓金额有误,请修改持仓金额!")
 
             #有资金出入
             if cm.FundInOut.objects.filter(user_id=user_id,stock_date=stock_date).exists() and player.fund>0:
@@ -2482,6 +2491,8 @@ def add_wanzhu_consult(request):
     user_id = request.user.get("id",0)
     user_name = request.user.get("username")
     user_avatar = request.user.get("avatar")
+    user_code = request.user.get("usercode")
+    phone = request.user.get("phone")
     openid = request.user.get("openid")
     qdata = request.json
     content = qdata.get("cotent")
@@ -2496,6 +2507,8 @@ def add_wanzhu_consult(request):
         content = content,
         pid = pid
     )
+    wanzhu_obj.user_code = user_code
+    wanzhu_obj.phone = phone
     wanzhu_obj.width = width
     wanzhu_obj.height = height
     wanzhu_obj.save()
@@ -2505,6 +2518,8 @@ def add_wanzhu_consult(request):
     )
     obj.user_name = user_name
     obj.user_avatar = user_avatar
+    obj.user_code = user_code
+    obj.phone = phone
     obj.content = content
     obj.view_status = 0
     obj.reply_status = 0
@@ -3169,12 +3184,16 @@ def reply_wanzhu_consult(**kwargs):
         user = cm.UserInfo.objects.filter(id=user_id).first()
         user_name = user.username
         user_avatar = user.avatar
+        user_code = user.usercode
+        phone = user.phone
 
         obj,flag = cm.Consult.objects.get_or_create(
             user_id = user_id, 
         )
         obj.user_name = user_name
         obj.user_avatar = user_avatar
+        obj.user_code = user_code
+        obj.phone = phone
         #obj.reply_content = content
         obj.view_status = 1
         obj.reply_status = 0
@@ -3186,6 +3205,8 @@ def reply_wanzhu_consult(**kwargs):
             user_name = user_name, 
             user_avatar = user_avatar
         )
+        wanzhu_obj.user_code = user_code
+        wanzhu_obj.phone = phone
         wanzhu_obj.width = width
         wanzhu_obj.height = height
         wanzhu_obj.save()
@@ -3916,3 +3937,83 @@ def check_msg_content(request):
         rst = json.loads(os.popen(cmdStr).read())
         return rst
     return {}
+
+
+def delete_user_stock(request):
+    """
+    """
+
+    qdata = request.json
+    stock_date = qdata.get("stock_date")
+    user_id = qdata.get("user_id")
+    match_id = qdata.get("match_id")
+
+    player = cm.Player.objects.filter(user_id=user_id,match_id=match_id).first()
+    if player:
+        player_id = player.id
+        #删除今日作业数据
+        cm.PlayerRecord.get_db_model(match_id).objects.filter(user_id=user_id,stock_date=stock_date).delete()
+
+        #删除今日持仓数据
+        month = "%s%s" % (stock_date.split("-")[0],stock_date.split("-")[1])
+        cm.UserStock.get_db_model(month).objects.filter(
+            player_id = player.id,
+            stock_date = stock_date
+        ).delete()
+
+        #删除今日出入资金数据
+        if cm.FundInOut.objects.filter(user_id = user_id,stock_date=stock_date).exists():
+            cm.FundInOut.objects.filter(user_id = user_id,stock_date=stock_date).delete()
+
+            #用前一天数据重置选手初始资金
+            yesterday = cm.PlayerRecord.get_db_model(match_id).objects.filter(
+                            match_id=match_id,player_id=player_id).order_by("-stock_date").first()
+
+            if yesterday:
+                player.fund = yesterday.init_fund
+                player.save()
+
+
+def get_user_fundinout(request):
+    """
+    """
+    try:
+        user_id = request.user.get("id",0)
+    except:
+        user_id = 0
+    if not user_id:
+        user_id = qdata.get("user_id")
+    qdata = request.json()
+    stock_date = qdata.get("stock_date")
+
+    rst = cm.FundInOut.objects.filter(user_id = user_id,stock_date=stock_date).values().first()
+    return rst
+
+
+def delete_user_fundinout(request):
+    try:
+        user_id = request.user.get("id",0)
+    except:
+        user_id = 0
+    if not user_id:
+        user_id = qdata.get("user_id")
+    match_id = ccc.get_cur_match().id
+    qdata = request.json()
+    stock_date = qdata.get("stock_date")
+
+    #删除出入资金
+    if cm.FundInOut.objects.filter(user_id = user_id,stock_date=stock_date).exists():
+        cm.FundInOut.objects.filter(user_id = user_id,stock_date=stock_date).delete()
+
+        #player = cm.Player.objects.filter(user_id=user.id,match_id=match_id).first()
+        #if player:
+        #    player_id = player.id
+
+        #    #用前一天数据重置选手初始资金
+        #    yesterday = cm.PlayerRecord.get_db_model(match_id).objects.filter(
+        #                    match_id=match_id,stock_date=stock_date).order_by("-stock_date").first()
+
+        #    #if yesterday:
+        #    #    player.fund = yesterday.init_fund
+        #    #    player.save()
+

+ 4 - 0
src/weixin/urls_backstage.py

@@ -128,5 +128,9 @@ urlpatterns = [
     url(r'^v3/signup/olduser$', views.SignupOldUserView.as_view()),
     url(r'^v3/user/signup/order$', views.UserSignupOrder.as_view()),
     url(r'^v3/msg/content/check$', views.MsgContentCheck.as_view()),
+
+    url(r'^v3/userstock/delete$', views.DeleteUserStock.as_view()),
+    url(r'^v3/fundintout/get$', views.GetUserFundInOut.as_view()),
+    url(r'^v3/fundintout/delete$', views.DeleteUserFundInOut.as_view()),
 ]
 

+ 37 - 0
src/weixin/views.py

@@ -1662,6 +1662,10 @@ class UserMarkScoreView(cv.AuthView):
             vals = ccf.get_need_params(*need_params,**qdata)
             vals["stock_date"] = today
             vals["user_id"] = request.user.get("id")
+            #判断是否周末
+            weekDay = datetime.datetime.strptime("2024-11-21","%Y-%m-%d").weekday()
+            if weekDay in [5,6]:
+                raise ce.TipException(u"周六、周天不能评分!")
             rst = ctl.user_mark_score(**vals)
             return cv.to_suc()
         except Exception as e:
@@ -1866,3 +1870,36 @@ class MsgContentCheck(cv.BaseView):
             cv.tracefail()
             return cv.to_fail(e)
 
+
+
+class DeleteUserStock(cv.AuthView):
+    def delete(self, request):
+        """#删除用户今日持仓数据v3(3.0小程序)
+        """
+        try:
+            rst = ctl.delete_user_stock(request)
+            return cv.to_suc(rst)
+        except Exception as e: 
+            return cv.to_fail(e)
+
+
+class GetUserFundInOut(cv.AuthView):
+    def get(self,request):
+        """获取用户出入资金
+        """
+        try:
+            rst = ctl.get_user_fundinout(request)
+            return cv.to_suc(rst)
+        except Exception as e: 
+            return cv.to_fail(e)
+
+
+class DeleteUserFundInOut(cv.AuthView):
+    def delete(self, request):
+        """#删除用户出入资金
+        """
+        try:
+            rst = ctl.delete_user_fundinout(request)
+            return cv.to_suc(rst)
+        except Exception as e: 
+            return cv.to_fail(e)