operate.py 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. import requests
  2. import time
  3. from urllib.parse import urlencode
  4. from model.UserAuthUtils import get_g_token
  5. from model.DateUtils import DateUtils
  6. from model.DataBaseUtils import *
  7. from model.UserAuthUtils import super_auth
  8. du = DateUtils()
  9. def user_channel(arg):
  10. g_time = int(time.time())
  11. base_url = 'https://api.zanxiangnet.com'
  12. params = '/erp/api/resource/search/3'
  13. g_token = get_g_token(g_time, params)
  14. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  15. url = base_url + params + '?' + params_other_urlencode
  16. rsp = requests.get(url)
  17. channel_list = []
  18. for _ in rsp.json()['data']:
  19. channel_list.append({'id': _['id'], 'nick_name': _['resourceName']})
  20. return channel_list
  21. def user_channel_group(arg):
  22. db = MysqlUtils()
  23. g_time = int(time.time())
  24. base_url = 'https://api.zanxiangnet.com'
  25. params = '/erp/api/resource/search/3'
  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. channel_dict = {}
  31. for _ in rsp.json()['data']:
  32. channel_dict[str(_['id'])] = _['resourceName']
  33. user_id = arg.get('user_id')
  34. if user_id:
  35. sql = f"""SELECT id,name,channel_ids from channel_group where id in
  36. (select channel_group_id from user_channel_group_auth where user_id={user_id})"""
  37. else:
  38. # 不传user_id 返回所有组
  39. sql = "select id,name,channel_ids from channel_group"
  40. data = db.quchen_text.getData_json(sql)
  41. for i in data:
  42. sr = ''
  43. for j in i['channel_ids'].split(','):
  44. sr += channel_dict[j] + ','
  45. i['channel_names'] = sr
  46. return data
  47. def user(arg):
  48. # 在2021-9月之后不被前端使用
  49. # 返回所有用户
  50. g_time = int(time.time())
  51. base_url = 'https://api.zanxiangnet.com'
  52. params = '/erp/api/user/search/3'
  53. g_token = get_g_token(g_time, params)
  54. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  55. url = base_url + params + '?' + params_other_urlencode
  56. rsp = requests.get(url)
  57. user_list = []
  58. for _ in rsp.json()['data']:
  59. user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']})
  60. return user_list
  61. def group_add(arg):
  62. db = MysqlUtils()
  63. name = arg.get("name")
  64. ids = arg.get("channel_ids")
  65. if name and ids:
  66. sql = "insert into channel_group (name,channel_ids) values (%s,%s)"
  67. db.quchen_text.execute(sql, (name, ids))
  68. def group_del(arg):
  69. db = MysqlUtils()
  70. id = arg.get("id")
  71. if id:
  72. sql = f"delete from channel_group where id={id}"
  73. db.quchen_text.execute(sql)
  74. def group_auth_add(arg):
  75. db = MysqlUtils()
  76. user_id = arg.get("user_id")
  77. group_id = arg.get("group_id")
  78. if user_id and group_id:
  79. sql = "insert into user_channel_group_auth (user_id,channel_group_id) values (%s,%s)"
  80. db.quchen_text.execute(sql, (user_id, group_id))
  81. def group_auth_del(arg):
  82. db = MysqlUtils()
  83. user_id = arg.get("user_id")
  84. group_id = arg.get("group_id")
  85. if user_id and group_id:
  86. sql = f"delete from user_channel_group_auth where user_id={user_id} and channel_group_id={group_id}"
  87. db.quchen_text.execute(sql)
  88. def get_channel(arg):
  89. db = MysqlUtils()
  90. user_id = arg.get('user_id')
  91. name_cahnnel = arg.get('name')
  92. pitcher_id = arg.get('pitcher_id')
  93. # 获取公众号列表
  94. g_time = int(time.time())
  95. base_url = 'https://api.zanxiangnet.com'
  96. params = '/erp/api/resource/search/3'
  97. g_token = get_g_token(g_time, params)
  98. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  99. url = base_url + params + '?' + params_other_urlencode
  100. rsp = requests.get(url)
  101. channel_list_all = []
  102. channel_dict = {}
  103. for _ in rsp.json()['data']:
  104. # channel_list.append((_['id'], _['nickName']))
  105. if name_cahnnel and name_cahnnel in _['resourceName']:
  106. channel_list_all.append({'id': _['id'], 'nick_name': _['resourceName']})
  107. if not name_cahnnel:
  108. channel_list_all.append({'id': _['id'], 'nick_name': _['resourceName']})
  109. channel_dict[_['id']] = _['resourceName']
  110. if user_id in super_auth() and not pitcher_id:
  111. return channel_list_all[:100]
  112. select_id = user_id
  113. # 通过pitcher_id,来添加
  114. if pitcher_id:
  115. select_id = pitcher_id
  116. # 普通权限------java,获取本人对应拥有的公众号
  117. g_time = int(time.time())
  118. base_url = 'https://api.zanxiangnet.com'
  119. params = '/erp/api/resource/search/3'
  120. g_token = get_g_token(g_time, params)
  121. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  122. params_other = f'?userIds={user_id}'
  123. url = base_url + params + params_other + '&' + params_other_urlencode
  124. rsp = requests.get(url)
  125. channel_list = rsp.json()['data']
  126. data1 = []
  127. for _ in channel_list:
  128. if name_cahnnel in _['resourceName']:
  129. if not name_cahnnel:
  130. data1.append({'id': _['id'], 'nick_name': _['resourceName']})
  131. elif name_cahnnel in _['nickName']:
  132. data1.append({'id': _['id'], 'nick_name': _['resourceName']})
  133. # # 加上配置的号
  134. sql2 = f"""select GROUP_CONCAT(channel_ids) from user_channel_group_auth a
  135. left join channel_group b on a.channel_group_id=b.id
  136. where user_id={select_id}"""
  137. data2 = db.quchen_text.getOne(sql2)
  138. data3 = []
  139. if data2:
  140. data2_2 = tuple(data2.split(','))
  141. for _ in data2_2:
  142. data3.append({'id': int(_), 'nick_name': channel_dict[int(_)]})
  143. data4 = data1 + data3
  144. return data4[:100] # 给100个
  145. def get_pitcher(arg):
  146. user_id = arg.get('user_id')
  147. if user_id in super_auth():
  148. user_list = []
  149. g_time = int(time.time())
  150. base_url = 'https://api.zanxiangnet.com'
  151. params = '/erp/api/user/search/3'
  152. params_others = '?resourceTags=投手'
  153. g_token = get_g_token(g_time, params)
  154. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  155. url = base_url + params + params_others + '&' + params_other_urlencode
  156. rsp = requests.get(url)
  157. for _ in rsp.json()['data']:
  158. user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']})
  159. return user_list
  160. user_list = []
  161. g_time = int(time.time())
  162. base_url = 'https://api.zanxiangnet.com'
  163. params = f'/erp/api/user/subUser/3/{user_id}'
  164. g_token = get_g_token(g_time, params)
  165. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  166. url = base_url + params + '?' + params_other_urlencode
  167. rsp = requests.get(url)
  168. for _ in rsp.json()['data']:
  169. user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']})
  170. return user_list
  171. def get_user_name_by_id(user_id):
  172. g_time = int(time.time())
  173. base_url = 'https://api.zanxiangnet.com'
  174. params = f'/erp/api/user/subUser/3/{user_id}'
  175. g_token = get_g_token(g_time, params)
  176. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token})
  177. url = base_url + params + '?' + params_other_urlencode
  178. rsp = requests.get(url)
  179. nick_name = None
  180. for _ in rsp.json()['data']:
  181. if str(_['userId']) == str(user_id):
  182. nick_name = _['nickName']
  183. return nick_name
  184. if __name__ == '__main__':
  185. # print(get_channel({'user_id':1}))
  186. # print(get_user_name_by_id({'user_id':78,'name':''}))
  187. print(get_user_name_by_id(78))