Browse Source

mvp: city

Signed-off-by: binren <zhangbr@elab-plus.com>
binren 5 years ago
parent
commit
cbec0ae6f9
1 changed files with 65 additions and 9 deletions
  1. 65 9
      mvp.py

+ 65 - 9
mvp.py

@@ -104,10 +104,28 @@ class Mvp:
     sql_5 = 'select testcase_id, COUNT(uuid) from f_t_daren_score_2 where uuid in %s group by testcase_id '
 
     # 根据父选项获取子选项id列表
-    sql_6 = 'SELECT c.id, c.sub_question_id, c.content FROM bq_sub_option c WHERE c.father_id in (SELECT a.id FROM ' \
-            'bq_option a ' \
-            'LEFT JOIN bq_question b ON a.question_id = b.id WHERE a.serial_number = %s AND b.serial_number = %s ' \
-            'and a.status = 1 and b.status = 1) and c.status = 1 '
+    sql_6 = '''
+        SELECT
+            c.id,
+            c.sub_question_id,
+            c.content
+        FROM
+            bq_sub_option c
+        WHERE
+            c.father_id IN (
+                SELECT
+                    a.id
+                FROM
+                    bq_option a
+                LEFT JOIN bq_question b ON a.question_id = b.id
+                WHERE
+                    a.serial_number = % s
+                AND b.serial_number = % s
+                AND a. STATUS = 1
+                AND b. STATUS = 1
+            )
+        AND c. STATUS = 1
+    '''
 
     # 根据子题id获取包含子题id的测试
     sql_7 = 'select id from bq_testcase where status = 1 and FIND_IN_SET(%s, question_ids)'
@@ -188,7 +206,7 @@ class Mvp:
         )
         AND a.uuid = %s
         AND b.father_id = 249
-        AND a. STATUS = b. STATUS = 1
+        AND a.STATUS = b. STATUS = 1
     '''
 
     # 答题人人群分类信息
@@ -207,9 +225,49 @@ class Mvp:
         )
         AND a.uuid = %s
         AND b.father_id = 236
-        AND a. STATUS = b. STATUS = 1
+        AND a.STATUS = b.STATUS = 1
     '''
 
+    """
+        数据debug SQL
+        1:
+            SELECT
+                c.id,
+                c.sub_question_id,
+                c.content
+            FROM
+                bq_sub_option c
+            WHERE
+                c.father_id IN (
+                    SELECT
+                        a.id
+                    FROM
+                        bq_option a
+                    LEFT JOIN bq_question b ON a.question_id = b.id
+                    WHERE
+                        a.serial_number ='FA001'
+                    AND b.serial_number = 'F00245'
+                    AND a. STATUS = 1
+                    AND b. STATUS = 1
+                )
+            AND c.STATUS = 1
+        2:
+            select id from bq_testcase where status = 1 and FIND_IN_SET(%s, question_ids)
+        3:
+            SELECT
+                count(1)
+            FROM
+                f_t_daren_score_2 a
+            LEFT JOIN d_shangju_tiku_02 b ON a.sub_question_id = b.sub_question_id
+            AND (
+                a.score = b.score
+                OR a.score = b.sub_option_id
+            )
+            AND a.testcase_id = b.testcase_id
+            WHERE
+                b.sub_option_id IN (1964,1965,1966,1967,1968,1969,1970,1971,1972)
+    """
+
     def __init__(self, path=None):
         self.shangju_db = MysqlDB('shangju')
         self.marketing_db = MysqlDB('bi_report')
@@ -293,7 +351,7 @@ class Mvp:
             if testcaseid:
                 testcastids = list(map(int, str(testcaseid).split(',')))
                 if len(testcastids) > 0:
-                    gt_75 = [x for x in testcastids if x in [75, 76, 77, 78]]
+                    gt_75 = [x for x in testcastids if x > 74]
                     if city is None and len(gt_75) > 0:
                         # 从答题结果中获取城市信息
                         citys = self.marketing_db.select(self.sql_16, [uuid])
@@ -302,8 +360,6 @@ class Mvp:
                                 city_name = info[1]
                                 if city_name in ['一线', '二线', '其他']:
                                     city = city_name
-                        else:
-                            city = '二线'
                     # 根据用户子选项id集合,获取用户的人群分类
                     if len(gt_75) > 0:
                         # 特定的测试人群分类从答题结果中获取