UserAuthUtils.py 7.0 KB

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