Quellcode durchsuchen

MOD:自然量-财务数据

cxyu vor 3 Jahren
Ursprung
Commit
1f78d391f9
2 geänderte Dateien mit 48 neuen und 22 gelöschten Zeilen
  1. 46 19
      handlers/OrderHandler.py
  2. 2 3
      model/UserAuthUtils.py

+ 46 - 19
handlers/OrderHandler.py

@@ -68,35 +68,62 @@ class OrderInfoNobody(BaseHandler):
         else:
         else:
             args = self.get_args()
             args = self.get_args()
             user_id = args.get('user_id')
             user_id = args.get('user_id')
+            start = args.get("start", self.thisday)
+            end = args.get("end", self.thisday)
+            game = args.get('game')
+            page = args.get("page")
+            page_size = args.get("page_size")
 
 
             db = MysqlUtils()
             db = MysqlUtils()
             if user_id in super_auth():
             if user_id in super_auth():
                 op = ''
                 op = ''
             else:
             else:
-                if len(UserAuthUtils.get_auth_channel(user_id)) == 0:
-                    return None, None, None
-                elif len(UserAuthUtils.get_auth_channel(user_id)) == 1:
-                    op = f" and b.wx_name = '{UserAuthUtils.get_auth_channel(user_id)[0]}'"
-
+                if len(UserAuthUtils.get_auth_game_name(user_id)) == 0:
+                    self.write_json(None)
                 else:
                 else:
-                    op = f" and b.wx_name in {str(UserAuthUtils.get_auth_channel(user_id))}"
+                    game_name_list = UserAuthUtils.get_auth_game_name(user_id)
+                    game_name_list = [_[0] for _ in game_name_list if _[0]]
+                    game_str = "'" + "','".join(game_name_list) + "'"
+                    op = f" and name in ({game_str}) "
+
+            op1 = f''' and dt >= '{start}' and dt <= '{end}'  '''
+            game_str = "'" + "','".join(game) + "'"
+            op2 = f''' and name in  ({game_str}) '''
 
 
             sql = f'''
             sql = f'''
-            select row_number() over() as id,
-                d.user_nicename as agent_name
-                from quchen_text.advertiser_vx a
-                left join db_mp.mp_mp_conf b on a.name =b.wx_name 
-                left join db_mp.mp_conf_agent c on b.id = c.advertiser_conf_id 
-                left join db_mp.h_user d on c.agent_id = d.id
-                where d.user_nicename is not null
-                {op} 
-                group by d.user_nicename 
+                   select DATE_FORMAT(dt,"%Y-%m-%d") dt,name game,
+                        sum(if(agent='自然流量',sum_amount,0)) as 'nobody_order',
+                        sum(if(agent='买量流量',sum_amount,0)) as 'body_order',
+                        sum(if(agent='当日总量',sum_amount,0)) as 'all_order'
+                        from 
+                        (select sum(amount) sum_amount,date(FROM_UNIXTIME(a.create_time)) dt,
+                        b.name ,if(a.agent_id=0,'自然流量','买量流量') as agent 
+                        from db_mp.h_pay a 
+                        left join db_mp.h_game b on a.app_id = b.id
+                        where a.status = 2 {op}
+                        group by  date(FROM_UNIXTIME(a.create_time)) ,b.name,
+                        if(a.agent_id=0,'自然流量','买量流量')
+                        union 
+                        select sum(amount) sum_amount,date(FROM_UNIXTIME(a.create_time)) dt, 
+                        b.name ,'当日总量' as agent
+                        from db_mp.h_pay a 
+                        left join db_mp.h_game b on a.app_id = b.id
+                        where a.status = 2 {op}
+                        group by b.name ,date(FROM_UNIXTIME(a.create_time))) a
+                        where 1=1 {op1} {op2}
+                        group by dt,name
+                        order by dt desc
+                    '''
+            print(sql)
+            sumsql='''select 1;
             '''
             '''
-            data = db.quchen_text.getData_json(sql)
-            data.insert(0, {'id': -1, 'agent_name': '自然流量渠道'})
-            data.insert(0, {'id': -2, 'agent_name': '客服渠道'})
+            data, total, total_data = getLimitSumData(db.dm, sql, sumsql, page, page_size)
+
+            if args.get("download"):
+                self.write_download(str(int(time.time())), data)
             self.write_json(data=data)
             self.write_json(data=data)
 
 
+
 class OrderInfo(BaseHandler):
 class OrderInfo(BaseHandler):
 
 
     def post(self):
     def post(self):
@@ -174,7 +201,7 @@ class OrderInfo(BaseHandler):
                 game_ids = get_auth_game_info(user_id)
                 game_ids = get_auth_game_info(user_id)
                 print(game_ids)
                 print(game_ids)
                 op_game = ''
                 op_game = ''
-                for game_id,game_name, game_timestamp in game_ids:
+                for game_id, game_name, game_timestamp in game_ids:
                     op_game = op_game + f'''or (e.id = {game_id} and a.create_time >UNIX_TIMESTAMP('{game_timestamp}') ) '''
                     op_game = op_game + f'''or (e.id = {game_id} and a.create_time >UNIX_TIMESTAMP('{game_timestamp}') ) '''
                 op_game = ' and ' + '(' + op_game[2:] + ')' + op_base
                 op_game = ' and ' + '(' + op_game[2:] + ')' + op_base
             # 限制为自己公众号开始时候的数据
             # 限制为自己公众号开始时候的数据

+ 2 - 3
model/UserAuthUtils.py

@@ -59,7 +59,7 @@ def get_auth_game_info(user_id):
                                 left join db_mp.mp_mp_conf b on  a.name =b.wx_name 
                                 left join db_mp.mp_mp_conf b on  a.name =b.wx_name 
                                 left join db_mp.mp_conf_agent c on c.advertiser_conf_id = b.id
                                 left join db_mp.mp_conf_agent c on c.advertiser_conf_id = b.id
                                 left join db_mp.h_game d on c.app_id = d.id
                                 left join db_mp.h_game d on c.app_id = d.id
-        where pitcher ='{user_name}' and d.id
+        where pitcher ='{user_name}' and d.id is not null
         group by id
         group by id
     '''
     '''
     user_ids = db.quchen_text.get_data_list(sql)
     user_ids = db.quchen_text.get_data_list(sql)
@@ -82,11 +82,10 @@ def get_auth_game_name(user_id):
                                 left join db_mp.mp_mp_conf b on  a.name =b.wx_name 
                                 left join db_mp.mp_mp_conf b on  a.name =b.wx_name 
                                 left join db_mp.mp_conf_agent c on c.advertiser_conf_id = b.id
                                 left join db_mp.mp_conf_agent c on c.advertiser_conf_id = b.id
                                 left join db_mp.h_game d on c.app_id = d.id
                                 left join db_mp.h_game d on c.app_id = d.id
-        where pitcher ='{user_name}'
+        where pitcher ='{user_name}' and d.name is not null
         group by name
         group by name
     '''
     '''
     user_ids = db.quchen_text.get_data_list(sql)
     user_ids = db.quchen_text.get_data_list(sql)
-    print(user_ids)
     return user_ids
     return user_ids
 
 
 def super_auth():
 def super_auth():