from model.DataBaseUtils import MysqlUtils,CkUtils import base64 import requests import time import hashlib from config.using_config import sha256_token, sha256_account from urllib.parse import urlencode from Crypto.Cipher import AES from Crypto.Util.Padding import pad def get_g_token_sha256(g_time, params): secret = sha256_token sha256_str = secret + params + str(g_time) g_token = hashlib.sha256(sha256_str.encode('utf-8')).hexdigest() return g_token def get_auth_user(user_id): """获取用户拥有所有用户(包括自己)的权限""" g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = f'/erp/api/user/subUser/3/{user_id}' print(params) g_token = get_g_token_sha256(g_time, params) params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account}) url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) nick_name_list = [] for _ in rsp.json()['data']: nick_name_list.append(_['nickName']) return nick_name_list def get_auth_channel_self(user_id): g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = '/erp/api/resource/search/3' g_token = get_g_token_sha256(g_time, params) params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account}) params_other = f'?userIds={user_id}' url = base_url + params + params_other + '&' + params_other_urlencode rsp = requests.get(url) channel_list = rsp.json()['data'] data1 = [] if channel_list: for _ in channel_list: data1.append(_['resourceName']) return tuple(data1) def get_auth_channel(user_id): """获取用户拥有的所有公众号权限""" db = MysqlUtils() # 普通权限------java,获取本人对应拥有的公众号 g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = f'/erp/api/resource/subUserResourceList/3/{user_id}/投手,运营' g_token = get_g_token_sha256(g_time, params) params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account}) # 防止urlencode自动换行 params_other_urlencode = params_other_urlencode.replace('%0A', '') url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) channel_list = rsp.json()['data'] data1 = [] if channel_list: for _ in channel_list: data1.append(_['resourceName']) 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) data3 = [] if data2: g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = '/erp/api/resource/search/3' g_token = get_g_token_sha256(g_time, params) params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account}) url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) channel_list = [] channel_dict = {} for _ in rsp.json()['data']: channel_list.append((_['id'], _['resourceName'])) channel_dict[_['id']] = _['resourceName'] data2_2 = tuple(data2.split(',')) for _ in data2_2: data3.append(channel_dict[int(_)]) return tuple(data1 + data3) def get_auth_game_info(user_id): """获取用户拥有的所有用户拥有的游戏""" ck = CkUtils() # 1.获取用户名字 g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = '/erp/api/user/search/3' g_token = get_g_token_sha256(g_time, params) params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account}) url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) user_name = None for _ in rsp.json()['data']: if str(_['userId']) == str(user_id): user_name = _['nickName'] print(user_name) # 2.获取所有游戏id ''' SELECT d.id ,d.name,min(DATE_FORMAT(a.start_date,"%Y-%m-%d")) 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 c.advertiser_conf_id = b.id left join db_mp.h_game d on c.app_id = d.id where pitcher ='{user_name}' and d.id is not null group by id ''' sql = f''' SELECT d.id ,d.name,toUnixTimestamp(concat(toString(min(a.start_date)),' 00:00:00'),'Asia/Shanghai') FROM CostSourceData.advertiser_vx a left join GameDataSum.mp_mp_conf_sum b on a.name =b.wx_name left join GameDataSum.mp_conf_agent_sum c on c.advertiser_conf_id = b.id left join GameDataSum.h_game_sum d on c.app_id = d.id where LENGTH (d.id)>0 and a.pitcher = '{user_name}' group by d.id,d.name ''' data_res = ck.execute(sql) # user_ids = db.quchen_text.get_data_list(sql) return data_res def get_auth_game_name(user_id): """获取用户拥有的所有用户拥有的游戏""" db = MysqlUtils() # 1.获取用户名字 g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = '/erp/api/user/search/3' g_token = get_g_token_sha256(g_time, params) params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account}) url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) user_name = None for _ in rsp.json()['data']: if str(_['userId']) == str(user_id): user_name = _['nickName'] # 2.获取所有游戏id sql = f''' SELECT d.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 c.advertiser_conf_id = b.id left join db_mp.h_game d on c.app_id = d.id where pitcher ='{user_name}' and d.name is not null group by name ''' user_ids = db.quchen_text.get_data_list(sql) return user_ids def super_auth(): "获取超级数据权限的用户列表" g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = '/erp/api/user/search/3' g_token = get_g_token_sha256(g_time, params) params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account}) url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) print(rsp.text) user_list = [] for _ in rsp.json()['data']: if _['powerLevel'] >= 99: user_list.append(_['userId']) print(user_list) return user_list if __name__ == '__main__': print(get_auth_game_name(85)) # print(get_role(78)) # print(f"ssed{tuple([1, 3, 4])}") # xx = super_auth() # print(xx)