Browse Source

修改联合查询结果合并,修改侦测消息全部已读、单个已读、统计所有未读数

zhangdongming 3 years ago
parent
commit
5bb649a569
3 changed files with 41 additions and 19 deletions
  1. 14 8
      Controller/EquipmentInfo.py
  2. 21 5
      Controller/SysManage.py
  3. 6 6
      Service/EquipmentInfoService.py

+ 14 - 8
Controller/EquipmentInfo.py

@@ -150,11 +150,13 @@ class EquipmentInfo(View):
         eventType = request_dict.get('eventType', None)
         if int(is_update_all) == 1:
             try:
-                eq = Equipment_Info.objects.filter(userID_id=userID)
-                if eventType:
-                    eq = eq.filter(eventType=int(eventType))
-                is_update = eq.update(status=1)
-                return response.json(0, {'update_count': is_update})
+                for i in range(1, 8):
+                    eq_qs = EquipmentInfoService.get_equipment_info_model('', i)
+                    eq_qs = eq_qs.filter(device_user_id=userID)
+                    if eventType:
+                        eq_qs = eq_qs.filter(event_type=int(eventType))
+                    is_update = eq_qs.update(status=1)
+                    return response.json(0, {'update_count': is_update})
             except Exception as e:
                 print(repr(e))
             return response.json(0, {'update_success': 'all'})
@@ -165,11 +167,15 @@ class EquipmentInfo(View):
             param_flag = CommonService.get_param_flag(data=[id_list])
             if param_flag is True:
                 count = 0
-                for id in id_list:
+                for ei_id in id_list:
                     try:
-                        eq = Equipment_Info.objects.filter(id=int(id))
+                        event_date = '20{}'.format(ei_id[0:6])
+                        ei_id = ei_id[6:]
+                        val = LocalDateTimeUtil.format_date_to_week(event_date, '%Y%m%d')
+                        eq = EquipmentInfoService.get_equipment_info_model('', val)
+                        eq = eq.filter(id=int(ei_id))
                         if eq.exists():
-                            own_dev = ModelService.check_own_device(userID, eq[0].devUid)
+                            own_dev = ModelService.check_own_device(userID, eq[0].device_uid)
                             if own_dev is True:
                                 count += 1
                                 eq.update(status=1)

+ 21 - 5
Controller/SysManage.py

@@ -19,10 +19,10 @@ from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 
 from Ansjer.config import BASE_DIR
+from Model.models import SysMsgModel, Device_Info, Ai_Push_Info
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.ModelService import ModelService
-from Model.models import SysMsgModel, Equipment_Info, Device_Info, Ai_Push_Info
 
 
 @csrf_exempt
@@ -90,6 +90,9 @@ class getStatView(View):
             return response.json(907)
 
 
+from Service.EquipmentInfoService import EquipmentInfoService
+
+
 def initMsgFunc(request):
     response = ResponseObject()
     request.encoding = 'utf-8'
@@ -104,10 +107,23 @@ def initMsgFunc(request):
     response.lang = tko.lang
     if tko.code == 0:
         userID = tko.userID
-        seven_days_ago = int(time.time()) - 3600 * 24 * 7   # 过滤七天前数据
+        seven_days_ago = int(time.time()) - 3600 * 24 * 7  # 过滤七天前数据
+        sm_count = SysMsgModel.objects.filter(userID_id=userID, status=0).count()
+        # eq_count = Equipment_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, status=False).count()
+        # rq_count = Equipment_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, eventType=57,
+        # status=False).count()
         sm_count = SysMsgModel.objects.filter(userID_id=userID, status=0).count()
-        eq_count = Equipment_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, status=False).count()
-        rq_count = Equipment_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, eventType=57, status=False).count()
+        # eq_count = Equipment_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, status=False).count()
+        # rq_count = Equipment_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, eventType=57,
+        # status=False).count()
+        eq_count = 0
+        rq_count = 0
+        for i in range(1, 8):
+            eq_qs = EquipmentInfoService.get_equipment_info_model('', i)
+            eq_qs = eq_qs.filter(device_user_id=userID, event_time__gt=seven_days_ago, status=False)
+            if eq_qs.exists():
+                eq_count += eq_qs.count()
+                rq_count += eq_qs.filter(event_type=57).count()
         ai_count = Ai_Push_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, status=False).count()
         uid_reset_count = Device_Info.objects.filter(userID_id=userID, isExist=2).count()
         res = {
@@ -115,7 +131,7 @@ def initMsgFunc(request):
             'eq_count': eq_count,  # 未读消息总数
             'rq_count': rq_count,  # 人形检测总数
             'ai_count': ai_count,  # AI消息总数
-            'uid_reset_count': uid_reset_count,# 复位的设备数量
+            'uid_reset_count': uid_reset_count,  # 复位的设备数量
         }
         return response.json(0, res)
     else:

+ 6 - 6
Service/EquipmentInfoService.py

@@ -124,17 +124,17 @@ class EquipmentInfoService:
                                              uid_list)
         result = monday_qs
         if tuesday_qs.exists():
-            result = monday_qs.union(tuesday_qs)
+            result = result.union(tuesday_qs)
         if wednesday_qs.exists():
-            result = monday_qs.union(wednesday_qs)
+            result = result.union(wednesday_qs)
         if thursday_qs.exists():
-            result = monday_qs.union(thursday_qs)
+            result = result.union(thursday_qs)
         if friday_qs.exists():
-            result = monday_qs.union(friday_qs)
+            result = result.union(friday_qs)
         if saturday_qs.exists():
-            result = monday_qs.union(saturday_qs)
+            result = result.union(saturday_qs)
         if sunday_qs.exists():
-            result = monday_qs.union(sunday_qs)
+            result = result.union(sunday_qs)
         count = result.count()
         qs_page = cls.get_equipment_info_page(result, page, size)
         return qs_page, count