Browse Source

tongce: 逻辑标准

Signed-off-by: binren <zhangbr@elab-plus.com>
binren 5 years ago
parent
commit
b53327d2f2
1 changed files with 53 additions and 50 deletions
  1. 53 50
      tongce.py

+ 53 - 50
tongce.py

@@ -492,56 +492,59 @@ class TongCe:
         # 筛选写入data的数据
         count = 0
         no_data_case = []
-        for ci in crowd_info:
-            insert_data = []
-            crowd_info_id = ci[0]
-            zhifuli = ci[1]
-            age = ci[2]
-            city = ci[3]
-            juzhujiegou = ci[4]
-            data = self.filter_people(city, age, zhifuli, juzhujiegou)
-            data.sort(key=lambda obj: obj[0])
-            for key, questions_data in groupby(data, key=lambda obj: obj[0]):
-                question_data_list = []
-                for qd in questions_data:
-                    question_data_list.append([x for x in qd])
-                rule_id = self.get_rule_id(key, rule)
-                if rule_id is not None:
-                    question_people = len(question_data_list)
-                    if question_people > 0:
-                        question_data_list.sort(key=lambda obj: obj[3])
-                        for option_name, option_data_1 in groupby(question_data_list, key=lambda obj: obj[3]):
-                            option_data_list = []
-                            for od in option_data_1:
-                                option_data_list.append([x for x in od])
-                            if len(option_data_list) > 0:
-                                match_id = 0
-                                option_name_alias = option_name
-                                option_id = option_data_list[0][2]
-                                for md in self.match_data_info:
-                                    if str(md[1]) == str(key) and str(md[2]) == str(option_id):
-                                        match_id = md[0]
-                                        option_name_alias = md[3]
-                                insert_data.append([crowd_info_id, match_id, rule_id, option_name_alias, len(option_data_list)])
-                            else:
-                                no_data_case.append([zhifuli, city, age, juzhujiegou, option_name])
-                    else:
-                        no_data_case.append([zhifuli, city, age, juzhujiegou, key])
-            count += len(insert_data)
-            self.linshi_db.add_some(self.sql_6, insert_data)
-        isnert_data_all = []
-        quanliang_scores = self.scores()
-        for q_s in quanliang_scores:
-            rule_id = self.get_rule_id(q_s[0], rule)
-            if rule_id:
-                for md in self.match_data_info:
-                    if str(md[1]) == str(q_s[0]) and str(md[2]) == str(q_s[1]):
-                        match_id = md[0]
-                        option_name_alias = md[3]
-                        isnert_data_all.append([5405, match_id, rule_id, option_name_alias, q_s[2]])
-        self.linshi_db.add_some(self.sql_6, isnert_data_all)
-        count += len(isnert_data_all)
-        return {'写入库中的数据': count, '无数据': len(no_data_case)}
+        try:
+            for ci in crowd_info:
+                insert_data = []
+                crowd_info_id = ci[0]
+                zhifuli = ci[1]
+                age = ci[2]
+                city = ci[3]
+                juzhujiegou = ci[4]
+                data = self.filter_people(city, age, zhifuli, juzhujiegou)
+                data.sort(key=lambda obj: obj[0])
+                for key, questions_data in groupby(data, key=lambda obj: obj[0]):
+                    question_data_list = []
+                    for qd in questions_data:
+                        question_data_list.append([x for x in qd])
+                    rule_id = self.get_rule_id(key, rule)
+                    if rule_id is not None:
+                        question_people = len(question_data_list)
+                        if question_people > 0:
+                            question_data_list.sort(key=lambda obj: obj[3])
+                            for option_name, option_data_1 in groupby(question_data_list, key=lambda obj: obj[3]):
+                                option_data_list = []
+                                for od in option_data_1:
+                                    option_data_list.append([x for x in od])
+                                if len(option_data_list) > 0:
+                                    match_id = 0
+                                    option_name_alias = option_name
+                                    option_id = option_data_list[0][2]
+                                    for md in self.match_data_info:
+                                        if str(md[1]) == str(key) and str(md[2]) == str(option_id):
+                                            match_id = md[0]
+                                            option_name_alias = md[3]
+                                    insert_data.append([crowd_info_id, match_id, rule_id, option_name_alias, len(option_data_list)])
+                                else:
+                                    no_data_case.append([zhifuli, city, age, juzhujiegou, option_name])
+                        else:
+                            no_data_case.append([zhifuli, city, age, juzhujiegou, key])
+                count += len(insert_data)
+                self.linshi_db.add_some(self.sql_6, insert_data)
+            isnert_data_all = []
+            quanliang_scores = self.scores()
+            for q_s in quanliang_scores:
+                rule_id = self.get_rule_id(q_s[0], rule)
+                if rule_id:
+                    for md in self.match_data_info:
+                        if str(md[1]) == str(q_s[0]) and str(md[2]) == str(q_s[1]):
+                            match_id = md[0]
+                            option_name_alias = md[3]
+                            isnert_data_all.append([5405, match_id, rule_id, option_name_alias, q_s[2]])
+            self.linshi_db.add_some(self.sql_6, isnert_data_all)
+            count += len(isnert_data_all)
+            return {'写入库中的数据': count, '无数据': len(no_data_case)}
+        except Exception as e:
+            return str(e)
 
     sql_20 = '''
             UPDATE mvp_page_display_rule