ck 4 年 前
コミット
57f21007d6

+ 44 - 3
data_manage/operate.py

@@ -1,7 +1,6 @@
 from model.DateUtils import DateUtils
 from model.DateUtils import DateUtils
 from model.DataBaseUtils import *
 from model.DataBaseUtils import *
-from model.log import logger
-from model.CommonUtils import *
+
 du = DateUtils()
 du = DateUtils()
 
 
 
 
@@ -71,4 +70,46 @@ def group_auth_del(arg):
     if user_id and group_id:
     if user_id and group_id:
         sql = f"delete from  user_channel_group_auth where user_id={user_id} and channel_group_id={group_id}"
         sql = f"delete from  user_channel_group_auth where user_id={user_id} and channel_group_id={group_id}"
         # print(sql)
         # print(sql)
-        db.quchen_text.execute(sql)
+        db.quchen_text.execute(sql)
+
+def get_channel(arg):
+    user_id= arg.get('user_id')
+    name = arg.get('name')
+    op = f" nick_name like '%{name}%'" if name else ''
+
+
+    db = MysqlUtils()
+    sql = f"""select id,nick_name from t_mp_account where {op} and (oper_user_id in 
+         (select user_id from t_sys_user_group_relation where group_id=(select id from t_sys_user_group where del_flag=0 and group_user_id={user_id})) or 
+         put_user_id in (select user_id from t_sys_user_group_relation where group_id=(select id from t_sys_user_group where del_flag=0 and group_user_id={user_id})))"""
+    data1 = db.zx.getData_json(sql)
+
+    sql2 = f"""select GROUP_CONCAT(channel_ids) from user_channel_group_auth a
+                     left join channel_group b on a.channel_group_id=b.id
+                     where user_id={user_id}"""
+
+    data2 = db.quchen_text.getOne(sql2)
+
+    if data2:
+        data2_2 = tuple(data2.split(','))
+        sql3 = f"""select id,nick_name from t_mp_account where nick_name like '%{name}%' and id in {str(data2_2)}"""
+        data3 = db.zx.getData_json(sql3)
+    else:
+        data3 = []
+    return data1 + data3
+
+
+
+
+def get_user(arg):
+    user_id = arg.get('user_id')
+    db = MysqlUtils()
+    sql = f"""select b.user_id,b.nick_name from t_sys_user_group_relation a
+               left join t_sys_user b USING(user_id)
+               where a.group_id=(select id from t_sys_user_group where del_flag=0 and group_user_id={user_id})"""
+
+    return db.zx.getData_json(sql)
+
+
+if __name__ == '__main__':
+    print(get_user({'user_id':78}))

+ 12 - 15
data_manage/pitcher_panel.py

@@ -110,13 +110,17 @@ where 1=1 {op1}
     return db.dm.getData_json(sql)
     return db.dm.getData_json(sql)
 
 
 
 
-def get_channel_overview(channel,pitcher,stage,start,end,page,page_size,order_by,order):
+def get_channel_overview(user_id,channel,pitcher,stage,start,end,page,page_size,order_by,order):
     db=MysqlUtils()
     db=MysqlUtils()
-    if pitcher:
-        op1 = f" and pitcher='{pitcher}'" if get_channels_from_user(
-            pitcher).__len__() == 0 else f" and channel in {get_channels_from_user(pitcher)}"
+    if user_id in super_auth:
+        op = ''
     else:
     else:
-        op1 = ''
+        if len(UserAuthUtils.get_auth_channel(user_id)) == 0:
+            return None, None, None
+        else:
+            op = f" and a.channel in {str(UserAuthUtils.get_auth_channel(user_id))}"
+
+    op1 = f" and pitcher ='{pitcher}' "   if pitcher  else ''
     op2 = f" and channel='{channel}'" if channel else ''
     op2 = f" and channel='{channel}'" if channel else ''
     op3 = f" and dt>='{start}' " if start else ''
     op3 = f" and dt>='{start}' " if start else ''
     op4 = f" and dt<='{end}' " if end else ''
     op4 = f" and dt<='{end}' " if end else ''
@@ -152,7 +156,7 @@ def get_channel_overview(channel,pitcher,stage,start,end,page,page_size,order_by
         round(reg_order_amount/reg_order_user,2) user_per_amount, 
         round(reg_order_amount/reg_order_user,2) user_per_amount, 
         round(follow_user/click_count,4) click_follow_rate, 
         round(follow_user/click_count,4) click_follow_rate, 
         round(reg_order_user/follow_user,4) follow_order_rate 
         round(reg_order_user/follow_user,4) follow_order_rate 
-from dw_channel where 1=1 {op1} {op2} {op3} {op4} {op6} {op5} """
+from dw_channel where 1=1 {op}  {op1} {op2} {op3} {op4} {op6} {op5} """
 
 
     print(sql)
     print(sql)
     sumsql=f"""select '总计' date,
     sumsql=f"""select '总计' date,
@@ -577,23 +581,16 @@ left join src_book_info c on a.dt=c.dt and a.book=c.book  and a.type=c.type and
 def get_channel_summary(user_id,channel,pitcher,page,page_size,order_by,order,state,location,start,end):
 def get_channel_summary(user_id,channel,pitcher,page,page_size,order_by,order,state,location,start,end):
     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:
         if len(UserAuthUtils.get_auth_channel(user_id))==0:
             return None,None,None
             return None,None,None
         else:
         else:
             op = f" and a.channel in {str(UserAuthUtils.get_auth_channel(user_id))}"
             op = f" and a.channel in {str(UserAuthUtils.get_auth_channel(user_id))}"
 
 
-
     op1=f" and a.channel='{channel}'" if channel else ''
     op1=f" and a.channel='{channel}'" if channel else ''
-
-    if pitcher:
-        op2=f" and pitcher='{pitcher}'" if get_channels_from_user(pitcher).__len__()==0 else f" and a.channel in {get_channels_from_user(pitcher)}"
-    else:
-        op2=''
+    op2=f" and pitcher='{pitcher}'" if pitcher else ''
     op4=f" and location='{location}' " if location else ''
     op4=f" and location='{location}' " if location else ''
     op5=f" and state='{state}'" if state else ''
     op5=f" and state='{state}'" if state else ''
     op6=f" and a.dt>='{start}'" if start else ''
     op6=f" and a.dt>='{start}'" if start else ''

+ 3 - 1
handlers/OperateHandler.py

@@ -15,7 +15,9 @@ class ChannelGroupHandler(BaseHandler):
         "group_add": group_add,
         "group_add": group_add,
         "group_del": group_del,
         "group_del": group_del,
         "group_auth_add": group_auth_add,
         "group_auth_add": group_auth_add,
-        "group_auth_del": group_auth_del
+        "group_auth_del": group_auth_del,
+        "get_channel" : get_channel,
+        "get_user": get_user
     }
     }
 
 
 
 

+ 7 - 6
handlers/PitcherPanelHandler.py

@@ -66,24 +66,23 @@ class PitcherPanelOverview(BaseHandler):
 
 
 class ChannelOverview(BaseHandler):
 class ChannelOverview(BaseHandler):
     def post(self):
     def post(self):
+        du =DateUtils()
         if not self._au:
         if not self._au:
             self.write_fail(msg='auth error')
             self.write_fail(msg='auth error')
         else:
         else:
             args=self.get_args()
             args=self.get_args()
             print(args)
             print(args)
+            user_id =args.get('user_id')
             channel=args.get("channel")
             channel=args.get("channel")
             pitcher=args.get("pitcher")
             pitcher=args.get("pitcher")
-            start=args.get("start")
+            start=args.get("start",du.getNow())
             end=args.get("end")
             end=args.get("end")
             stage=args.get("stage")
             stage=args.get("stage")
             page = args.get("page", 1)
             page = args.get("page", 1)
             page_size = args.get("page_size", 10)
             page_size = args.get("page_size", 10)
             order_by = args.get("order_by", 'date')
             order_by = args.get("order_by", 'date')
             order = args.get("order", 'desc')
             order = args.get("order", 'desc')
-            if 'date_range' in list(args.keys()):
-                end = self.get_n_days(0)
-                start = self.get_n_days(-int(args['date_range'])+1)
-            data,total,total_data =get_channel_overview(channel,pitcher,stage,start,end,page,page_size,order_by,order)
+            data,total,total_data =get_channel_overview(user_id,channel,pitcher,stage,start,end,page,page_size,order_by,order)
             self.write_json(data=data,total=total,total_data=total_data)
             self.write_json(data=data,total=total,total_data=total_data)
 
 
 
 
@@ -147,6 +146,8 @@ class ChannelOrderTrend(BaseHandler):
 
 
 class ChannelSummary(BaseHandler):
 class ChannelSummary(BaseHandler):
     def post(self):
     def post(self):
+        du = DateUtils()
+
         if not self._au:
         if not self._au:
             self.write_fail(msg='auth error')
             self.write_fail(msg='auth error')
         else:
         else:
@@ -161,7 +162,7 @@ class ChannelSummary(BaseHandler):
             order_by = arg.get("order_by", 'total_cost')
             order_by = arg.get("order_by", 'total_cost')
             order = arg.get("order", 'desc')
             order = arg.get("order", 'desc')
             state = arg.get("state")
             state = arg.get("state")
-            start = arg.get("start")
+            start = arg.get("start",du.get_n_days(-7))
             end = arg.get("end")
             end = arg.get("end")
             data, total, total_data = get_channel_summary(user_id,channel, pitcher, page, page_size, order_by, order, state, location,start,end)
             data, total, total_data = get_channel_summary(user_id,channel, pitcher, page, page_size, order_by, order, state, location,start,end)
             if arg.get("download"):
             if arg.get("download"):

+ 3 - 0
model/UserAuthUtils.py

@@ -24,6 +24,9 @@ def get_auth_channel(user_id):
                 where user_id={user_id}"""
                 where user_id={user_id}"""
 
 
     data2 = db.quchen_text.getOne(sql2)
     data2 = db.quchen_text.getOne(sql2)
+
+
+
     if data2:
     if data2:
         data2_2 = tuple(data2.split(','))
         data2_2 = tuple(data2.split(','))
         sql3 = f"""select nick_name from t_mp_account where id in {str(data2_2)}"""
         sql3 = f"""select nick_name from t_mp_account where id in {str(data2_2)}"""