import requests import time from urllib.parse import urlencode from config.using_config import sha256_token, sha256_account from model.UserAuthUtils import get_g_token_sha256 from model.DateUtils import DateUtils from model.DataBaseUtils import * from model.UserAuthUtils import super_auth du = DateUtils() def user_channel(arg): 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 = [] for _ in rsp.json()['data']: channel_list.append({'id': _['id'], 'nick_name': _['resourceName']}) return channel_list def user_channel_group(arg): db = MysqlUtils() 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_dict = {} for _ in rsp.json()['data']: channel_dict[str(_['id'])] = _['resourceName'] user_id = arg.get('user_id') if user_id: sql = f"""SELECT id,name,channel_ids from channel_group where id in (select channel_group_id from user_channel_group_auth where user_id={user_id})""" else: # 不传user_id 返回所有组 sql = "select id,name,channel_ids from channel_group" data = db.quchen_text.getData_json(sql) for i in data: sr = '' for j in i['channel_ids'].split(','): sr += channel_dict[j] + ',' i['channel_names'] = sr return data def user(arg): # 在2021-9月之后不被前端使用 # 返回所有用户 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_list = [] for _ in rsp.json()['data']: user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']}) return user_list 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)) def group_del(arg): db = MysqlUtils() id = arg.get("id") if id: sql = f"delete from channel_group where id={id}" db.quchen_text.execute(sql) def group_auth_add(arg): db = MysqlUtils() user_id = arg.get("user_id") group_id = arg.get("group_id") if user_id and group_id: 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") group_id = arg.get("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}" db.quchen_text.execute(sql) def get_channel(arg): db = MysqlUtils() user_id = arg.get('user_id') name_cahnnel = arg.get('name') pitcher_id = arg.get('pitcher_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}) url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) channel_list_all = [] channel_dict = {} for _ in rsp.json()['data']: # channel_list.append((_['id'], _['nickName'])) if name_cahnnel and name_cahnnel in _['resourceName']: channel_list_all.append({'id': _['id'], 'nick_name': _['resourceName']}) if not name_cahnnel: channel_list_all.append({'id': _['id'], 'nick_name': _['resourceName']}) channel_dict[_['id']] = _['resourceName'] if user_id in super_auth() and not pitcher_id: # return channel_list_all[:100] return channel_list_all select_id = user_id # 通过pitcher_id,来添加 if pitcher_id: select_id = pitcher_id # 普通权限------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) data1 = [] for _ in rsp.json()['data']: # for可替换这个,下面的for循环未找到原因为何这样写,暂时以下面为主 # if name_cahnnel in _['resourceName']: # if name_cahnnel and name_cahnnel in _['resourceName']: # print("1----------->" + _['resourceName']) # data1.append({'id': _['id'], 'nick_name': _['resourceName']}) # if not name_cahnnel: # print("2----------->" + _['resourceName']) # data1.append({'id': _['id'], 'nick_name': _['resourceName']}) if name_cahnnel and name_cahnnel in _['resourceName']: if not name_cahnnel in _['resourceName']: data1.append({'id': _['id'], 'nick_name': _['resourceName']}) elif name_cahnnel in _['nickName']: data1.append({'id': _['id'], 'nick_name': _['resourceName']}) if not name_cahnnel: data1.append({'id': _['id'], 'nick_name': _['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={select_id}""" # data2 = db.quchen_text.getOne(sql2) # data3 = [] # if data2: # data2_2 = tuple(data2.split(',')) # for _ in data2_2: # data3.append({'id': int(_), 'nick_name': channel_dict[int(_)]}) # data4=[] # data4 = data1 + data3 return data1 def get_pitcher(arg): user_id = arg.get('user_id') if user_id in super_auth(): user_list = [] g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = '/erp/api/user/search/3' params_others = '?resourceTags=投手' 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_others + '&' + params_other_urlencode rsp = requests.get(url) for _ in rsp.json()['data']: user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']}) return user_list user_list = [] g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = f'/erp/api/user/subUser/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}) url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) for _ in rsp.json()['data']: user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']}) return user_list def get_user_name_by_id(user_id): g_time = int(time.time()) base_url = 'https://api.zanxiangnet.com' params = f'/erp/api/user/subUser/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}) url = base_url + params + '?' + params_other_urlencode rsp = requests.get(url) 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_channel({'user_id': 78})) # print(get_user_name_by_id({'user_id':78,'name':''})) # print(get_user_name_by_id(78))