operate.py 8.5 KB

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