瀏覽代碼

MOD:用户权限改动

cxyu 3 年之前
父節點
當前提交
c6169c3856

+ 35 - 41
data_manage/operate.py

@@ -1,7 +1,8 @@
+import requests
 from model.DateUtils import DateUtils
 from model.DataBaseUtils import *
 from model.UserAuthUtils import super_auth
-import pandas as pd
+
 du = DateUtils()
 
 
@@ -24,29 +25,28 @@ def user_channel_group(arg):
         sql = "select id,name,channel_ids from channel_group"
     data = db.quchen_text.getData_json(sql)
     for i in data:
-        sr =''
+        sr = ''
         for j in i['channel_ids'].split(','):
-            sr+=di[j]+','
-        i['channel_names']=sr
+            sr += di[j] + ','
+        i['channel_names'] = sr
     return data
 
 
 def user(arg):
+    # 在2021-9月之后不被前端使用
     db = MysqlUtils()
     # 返回所有用户
     sql = "SELECT user_id,nick_name from t_sys_user where del_flag=0 and status=0"
     return db.zx.getData_json(sql)
 
 
-
 def group_add(arg):
     db = MysqlUtils()
     name = arg.get("name")
     ids = arg.get("channel_ids")
     if name and ids:
-
         sql = "insert into channel_group (name,channel_ids)  values (%s,%s)"
-        db.quchen_text.execute(sql,(name,ids))
+        db.quchen_text.execute(sql, (name, ids))
 
 
 def group_del(arg):
@@ -58,7 +58,6 @@ def group_del(arg):
         db.quchen_text.execute(sql)
 
 
-
 def group_auth_add(arg):
     db = MysqlUtils()
     user_id = arg.get("user_id")
@@ -67,6 +66,7 @@ def group_auth_add(arg):
         sql = "insert into user_channel_group_auth (user_id,channel_group_id)  values (%s,%s)"
         db.quchen_text.execute(sql, (user_id, group_id))
 
+
 def group_auth_del(arg):
     db = MysqlUtils()
     user_id = arg.get("user_id")
@@ -76,26 +76,24 @@ def group_auth_del(arg):
         # print(sql)
         db.quchen_text.execute(sql)
 
+
 def get_channel(arg):
     db = MysqlUtils()
-    user_id= arg.get('user_id')
+    user_id = arg.get('user_id')
     name = arg.get('name')
 
-    # 超级权限
     if user_id in super_auth():
         sql = f"select id,nick_name from t_mp_account where nick_name like '%{name}%' and del_flag=0"
 
         return db.zx.getData_json(sql)
 
-    # 普通权限
-    # # 搜索空字符默认给出全部
-    op = f" nick_name like '%{name}%'  and " if name !='' else ''
-    sql = f"""select id,nick_name from t_mp_account where {op} (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}))
-            or oper_user_id={user_id} or put_user_id={user_id})"""
-
-    data1 = db.zx.getData_json(sql)
+    # 普通权限------java,获取本人对应拥有的公众号
+    rsp = requests.get(f'http://api.zanxiangnet.com/system/api/mp/mpAccount/subAccountWithUser/{user_id}')
+    channel_list = rsp.json()['data']
+    data1 = []
+    for _ in channel_list:
+        if name in _['nickName']:
+            data1.append({'id': _['id'], 'nick_name': _['nickName']})
 
     # # 加上配置的号
     sql2 = f"""select GROUP_CONCAT(channel_ids) from user_channel_group_auth a
@@ -116,36 +114,32 @@ def get_channel(arg):
 
 def get_pitcher(arg):
     user_id = arg.get('user_id')
-
-    db = MysqlUtils()
-
     if user_id in super_auth():
-           sql = """
-                select a.user_id,nick_name from t_sys_user a 
-                left join t_sys_user_role c on a.user_id =c.user_id 
-                               where a.del_flag=0 and c.role_id in (7,9) group by a.user_id,nick_name"""
-           return db.zx.getData_json(sql)
+        user_list = []
+        url = 'http://api.zanxiangnet.com/erp/api/user/allPutUser'
+        rsp = requests.get(url)
+        for _ in rsp.json()['data']:
+            user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']})
+        return user_list
 
+    user_list = []
+    rsp = requests.get(url=f'http://api.zanxiangnet.com/erp/api/user/subUser/{user_id}')
+    for _ in rsp.json()['data']:
+        user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']})
 
-    sql = f"""select  b.user_id,b.nick_name from t_sys_user_group_relation a
-               left join t_sys_user b on a.user_id =b.user_id 
-            left join t_sys_user_role c on b.user_id =c.user_id 
-               where c.role_id in (7,9) and  a.group_id=(select id from t_sys_user_group where del_flag=0 and group_user_id={user_id}) 
-            group by b.user_id,b.nick_name
-            """
-
-    # print(db.zx.getData_json(sql))
-
-    return db.zx.getData_json(sql)
+    return user_list
 
 
 def get_user_name_by_id(user_id):
-    db = MysqlUtils()
-    sql = "select nick_name from t_sys_user where user_id="+str(user_id)
-    return  db.zx.getOne(sql)
+    rsp = requests.get(url=f'http://api.zanxiangnet.com/erp/api/user/subUser/{user_id}')
+    nick_name = None
+    for _ in rsp.json()['data']:
+        if str(_['userId']) == str(user_id):
+            nick_name = _['nickName']
+    return nick_name
 
 
 if __name__ == '__main__':
     # print(get_pitcher({'user_id':78}))
     # print(get_user_name_by_id(78))
-    user_channel_group({})
+    user_channel_group({})

+ 0 - 7
data_manage/pitcher_panel.py

@@ -24,12 +24,6 @@ log = logger()
 """根据名字获取其归属的公众号"""
 
 
-def get_channels_from_user(user):
-    sql = f"""SELECT a.nick_name FROM t_mp_account a 
-            left join t_sys_user b on a.oper_user_id=b.user_id where b.nick_name='{user}'"""
-    return tuple(MysqlUtils().zx.getOneList(sql))
-
-
 def get_pitcher_panel_channel(pitcher, channel, start, end, page, page_size, order_by, order):
     db = MysqlUtils()
     op1 = f" and pitcher='{pitcher}'" if pitcher else ''
@@ -126,7 +120,6 @@ def get_channel_overview(user_id, channel, pitcher, stage, book, start, end, pag
             op = f" and channel = '{UserAuthUtils.get_auth_channel(user_id)[0]}'"
         else:
             op = f" and 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 ''
     op3 = f" and dt>='{start}' " if start else ''

+ 2 - 2
data_manage/public_analysis.py

@@ -539,14 +539,14 @@ def advertisement_rank(user_id, start, end, type, page, page_size, order, order_
         else:
             op1 = f" and pitcher in {str(user)}"
 
-
     op4 = f" and channel='{channel}'" if channel else ''
     op5 = f" and pitcher ='{pitcher}' " if pitcher else ''
     op8 = f" and type='{type}'" if type else ''
     op10 = f" and book='{book}'" if book else ''
     op11 = f" and order_count>0" if has_order else ''
     op12 = f" and is_video" if is_video else ''
-    #公共数据,和素材库一样,个人只显示个人(小组)数据
+    # 公共数据,和素材库一样,个人只显示个人(小组)数据
+    # TODO:之后op_or1 变化为owner来限制,------dw_image_cost_day 生成时就根据dt,cost来归类owner
     op_or1 = f' or (dt<date_add(now(),interval -5 day) or cost>5000) ' if show_type == 'public' else ''
     op_order = f" order by {order_by} {order}" if order_by and order else ''
 

+ 1 - 1
handlers/OperateHandler.py

@@ -11,7 +11,7 @@ class ChannelGroupHandler(BaseHandler):
     APP_MAP = {
         "user_channel": user_channel,
         "user_channel_group": user_channel_group,
-        "user": user,
+        "user": user,#已经准备放弃
         "group_add": group_add,
         "group_del": group_del,
         "group_auth_add": group_auth_add,

+ 3 - 3
handlers/PublicAnalysisHandler.py

@@ -159,14 +159,14 @@ class AdvertisementRank(BaseHandler):
         else:
             du = DateUtils()
             arg = self.get_args()
-            show_type = arg.get('show_type', 'public') # 展示 public private,默认public
+            show_type = arg.get('show_type', 'public') # 展示 public private,默认public----public 会展示大于5000以上的数据,超过5天的数据
             user_id = arg.get('user_id')
             start = arg.get("start", du.getNow())
             end = arg.get("end")
             page = arg.get("page", 1)
             page_size = arg.get("page_size")
-            order_by = arg.get("order_by", 'cost')  # TODO:进行对应修改
-            order = arg.get("order", 'desc')  # TODO:进行对应修改
+            order_by = arg.get("order_by", 'cost')
+            order = arg.get("order", 'desc')
             type = arg.get("type")
             book = arg.get("book")
             channel = arg.get('channel')

+ 18 - 36
model/UserAuthUtils.py

@@ -1,48 +1,41 @@
 from model.DataBaseUtils import MysqlUtils
-
-
+import requests
 
 
 def get_auth_user(user_id):
     """获取用户拥有所有用户(包括自己)的权限"""
-    db = MysqlUtils()
-    sql = f"""select 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})
-            union 
-            select nick_name from t_sys_user where user_id='{user_id}'
-"""
-
-    return db.zx.getOneList(sql)
-
+    rsp = requests.get(url=f'http://api.zanxiangnet.com/erp/api/user/subUser/{user_id}')
+    nick_name_list = []
+    for _ in rsp.json()['data']:
+        nick_name_list.append(_['nickName'])
+    return nick_name_list
 
 def get_auth_channel(user_id):
     """获取用户拥有的所有公众号权限"""
-    db = MysqlUtils()
-    sql=f"""select nick_name from t_mp_account where 
-    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})) or 
-    oper_user_id = {user_id} or put_user_id = {user_id}
-    
-"""
-    data1 = db.zx.getOneList(sql)
 
+    db = MysqlUtils()
+    # 普通权限------java,获取本人对应拥有的公众号
+    rsp = requests.get(f'http://api.zanxiangnet.com/system/api/mp/mpAccount/subAccountWithUser/{user_id}')
+    channel_list = rsp.json()['data']
+    data1 = []
+    for _ in channel_list:
+        data1.append(_['nickName'])
 
     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 nick_name from t_mp_account where id in {str(data2_2)}"""
 
-        data3= db.zx.getOneList(sql3)
+        data3 = db.zx.getOneList(sql3)
         # print(data3)
     else:
-        data3 =[]
-    return tuple(data1+data3)
+        data3 = []
+    return tuple(data1 + data3)
+
 
 def super_auth():
     "获取超级数据权限的用户列表"
@@ -51,18 +44,7 @@ def super_auth():
     return db.zx.getOneList(sql)
 
 
-def get_role(user_id):
-    """获取用户的角色"""
-    db = MysqlUtils()
-    sql = "select role_id from t_sys_user_role where user_id ="+str(user_id)
-    return db.zx.getOneList(sql)
-
-def get_user_name_by_id(user_id):
-    db = MysqlUtils()
-    sql = "select nick_name from t_sys_user where user_id =" + str(user_id)
-    return db.zx.getOne(sql)
-
 if __name__ == '__main__':
     # print(get_auth_channel(109))
     # print(get_role(78))
-    print(f"ssed{tuple([1,3,4])}")
+    print(f"ssed{tuple([1, 3, 4])}")