UserAuthUtils.py 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. from model.DataBaseUtils import MysqlUtils
  2. import base64
  3. import requests
  4. import time
  5. from config.using_config import aes_token
  6. from urllib.parse import urlencode
  7. from Crypto.Cipher import AES
  8. from Crypto.Util.Padding import pad
  9. def get_g_token(g_time, params):
  10. bs = AES.block_size
  11. # pad = lambda s: s + (bs - len(s) % bs) * chr(bs - len(s) % bs)
  12. # 设置加密方式
  13. cipher = AES.new(aes_token.encode('utf-8'), AES.MODE_ECB)
  14. # 设置原始数据
  15. pad_params = params + str(g_time)
  16. # 数据加密
  17. data = cipher.encrypt(pad(pad_params.encode('utf-8'), bs))
  18. g_token = (base64.encodebytes(data)).decode('utf8').strip()
  19. return g_token
  20. def get_auth_user(user_id):
  21. """获取用户拥有所有用户(包括自己)的权限"""
  22. g_time = int(time.time())
  23. base_url = 'https://api.zanxiangnet.com'
  24. params = f'/erp/api/user/subUser/3/{user_id}'
  25. print(params)
  26. g_token = get_g_token(g_time, params)
  27. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  28. url = base_url + params + '?' + params_other_urlencode
  29. rsp = requests.get(url)
  30. nick_name_list = []
  31. for _ in rsp.json()['data']:
  32. nick_name_list.append(_['nickName'])
  33. return nick_name_list
  34. def get_auth_channel_self(user_id):
  35. g_time = int(time.time())
  36. base_url = 'https://api.zanxiangnet.com'
  37. params = '/erp/api/resource/search/3'
  38. g_token = get_g_token(g_time, params)
  39. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  40. params_other = f'?userIds={user_id}'
  41. url = base_url + params + params_other + '&' + params_other_urlencode
  42. rsp = requests.get(url)
  43. channel_list = rsp.json()['data']
  44. data1 = []
  45. if channel_list:
  46. for _ in channel_list:
  47. data1.append(_['resourceName'])
  48. return tuple(data1)
  49. def get_auth_channel(user_id):
  50. """获取用户拥有的所有公众号权限"""
  51. db = MysqlUtils()
  52. # 普通权限------java,获取本人对应拥有的公众号
  53. g_time = int(time.time())
  54. base_url = 'https://api.zanxiangnet.com'
  55. params = f'/erp/api/resource/subUserResourceList/3/{user_id}/投手,运营'
  56. g_token = get_g_token(g_time, params)
  57. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  58. # 防止urlencode自动换行
  59. params_other_urlencode = params_other_urlencode.replace('%0A', '')
  60. url = base_url + params + '?' + params_other_urlencode
  61. rsp = requests.get(url)
  62. channel_list = rsp.json()['data']
  63. data1 = []
  64. if channel_list:
  65. for _ in channel_list:
  66. data1.append(_['resourceName'])
  67. sql2 = f"""select GROUP_CONCAT(channel_ids) from user_channel_group_auth a
  68. left join channel_group b on a.channel_group_id=b.id
  69. where user_id={user_id}"""
  70. data2 = db.quchen_text.getOne(sql2)
  71. data3 = []
  72. if data2:
  73. g_time = int(time.time())
  74. base_url = 'https://api.zanxiangnet.com'
  75. params = '/erp/api/resource/search/3'
  76. g_token = get_g_token(g_time, params)
  77. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  78. url = base_url + params + '?' + params_other_urlencode
  79. rsp = requests.get(url)
  80. channel_list = []
  81. channel_dict = {}
  82. for _ in rsp.json()['data']:
  83. channel_list.append((_['id'], _['resourceName']))
  84. channel_dict[_['id']] = _['resourceName']
  85. data2_2 = tuple(data2.split(','))
  86. for _ in data2_2:
  87. data3.append(channel_dict[int(_)])
  88. return tuple(data1 + data3)
  89. def get_auth_game_info(user_id):
  90. """获取用户拥有的所有用户拥有的游戏"""
  91. db = MysqlUtils()
  92. # 1.获取用户名字
  93. g_time = int(time.time())
  94. base_url = 'https://api.zanxiangnet.com'
  95. params = '/erp/api/user/search/3'
  96. g_token = get_g_token(g_time, params)
  97. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  98. url = base_url + params + '?' + params_other_urlencode
  99. rsp = requests.get(url)
  100. user_name = None
  101. for _ in rsp.json()['data']:
  102. if str(_['userId']) == str(user_id):
  103. user_name = _['nickName']
  104. # 2.获取所有游戏id
  105. sql = f'''
  106. SELECT d.id ,d.name,min(DATE_FORMAT(a.start_date,"%Y-%m-%d"))
  107. FROM quchen_text.advertiser_vx a
  108. left join db_mp.mp_mp_conf b on a.name =b.wx_name
  109. left join db_mp.mp_conf_agent c on c.advertiser_conf_id = b.id
  110. left join db_mp.h_game d on c.app_id = d.id
  111. where pitcher ='{user_name}' and d.id is not null
  112. group by id
  113. '''
  114. user_ids = db.quchen_text.get_data_list(sql)
  115. return user_ids
  116. def get_auth_game_name(user_id):
  117. """获取用户拥有的所有用户拥有的游戏"""
  118. db = MysqlUtils()
  119. # 1.获取用户名字
  120. g_time = int(time.time())
  121. base_url = 'https://api.zanxiangnet.com'
  122. params = '/erp/api/user/search/3'
  123. g_token = get_g_token(g_time, params)
  124. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  125. url = base_url + params + '?' + params_other_urlencode
  126. rsp = requests.get(url)
  127. user_name = None
  128. for _ in rsp.json()['data']:
  129. if str(_['userId']) == str(user_id):
  130. user_name = _['nickName']
  131. # 2.获取所有游戏id
  132. sql = f'''
  133. SELECT d.name
  134. FROM quchen_text.advertiser_vx a
  135. left join db_mp.mp_mp_conf b on a.name =b.wx_name
  136. left join db_mp.mp_conf_agent c on c.advertiser_conf_id = b.id
  137. left join db_mp.h_game d on c.app_id = d.id
  138. where pitcher ='{user_name}' and d.name is not null
  139. group by name
  140. '''
  141. user_ids = db.quchen_text.get_data_list(sql)
  142. return user_ids
  143. def super_auth():
  144. "获取超级数据权限的用户列表"
  145. g_time = int(time.time())
  146. base_url = 'https://api.zanxiangnet.com'
  147. params = '/erp/api/user/search/3'
  148. g_token = get_g_token(g_time, params)
  149. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  150. url = base_url + params + '?' + params_other_urlencode
  151. rsp = requests.get(url)
  152. print(rsp.text)
  153. user_list = []
  154. for _ in rsp.json()['data']:
  155. if _['powerLevel'] >= 99:
  156. user_list.append(_['userId'])
  157. print(user_list)
  158. return user_list
  159. if __name__ == '__main__':
  160. print(get_auth_game_name(85))
  161. # print(get_role(78))
  162. # print(f"ssed{tuple([1, 3, 4])}")
  163. # xx = super_auth()
  164. # print(xx)