Эх сурвалжийг харах

v2获取推送消息增加标签转二进制筛选

zhangdongming 2 жил өмнө
parent
commit
cc378196af

+ 31 - 0
Service/EquipmentInfoService.py

@@ -169,6 +169,8 @@ class EquipmentInfoService:
         if event_type:
             # 多类型查询
             eventTypeList = cls.get_comb_event_type(event_type)
+            eventTypeList += cls.get_combo_type_bins(event_type)
+            eventTypeList = list(set(eventTypeList))
             qs = qs.filter(event_type__in=eventTypeList)
         if start_time and end_time:
             qs = qs.filter(event_time__range=(start_time, end_time))
@@ -380,3 +382,32 @@ class EquipmentInfoService:
             num //= 2
             result = str(ret) + result
         return result
+
+    @staticmethod
+    def get_combo_type_bins(event_type):
+        """
+        获取组合类型二进制列表
+        @param event_type: 标签类型
+        @return:
+        """
+        res_list = []
+        try:
+            if ',' in event_type:
+                res_list = event_type.split(',')
+                res_list = [int(i.strip()) for i in res_list]
+            else:
+                res_list = [int(event_type)]
+            combo_types = [51, 57, 58, 60]
+            for e_item in res_list:
+                bins = EquipmentInfoService.combo_type_all()
+                if e_item in combo_types:
+                    event_label = combo_types.index(e_item) + 1
+                    for item in bins:
+                        val = str(item)
+                        val_len = len(val)
+                        if val_len >= event_label and int(val[val_len - event_label]) == 1:
+                            res_list.append(int(item))
+            return res_list
+        except Exception as e:
+            print('推送错误异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+            return res_list