operate.py 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  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. print("1------------------------->"+url)
  102. rsp = requests.get(url)
  103. channel_list_all = []
  104. channel_dict = {}
  105. for _ in rsp.json()['data']:
  106. # channel_list.append((_['id'], _['nickName']))
  107. if name_cahnnel and name_cahnnel in _['resourceName']:
  108. channel_list_all.append({'id': _['id'], 'nick_name': _['resourceName']})
  109. if not name_cahnnel:
  110. channel_list_all.append({'id': _['id'], 'nick_name': _['resourceName']})
  111. channel_dict[_['id']] = _['resourceName']
  112. print("2------------------------->"+channel_list_all)
  113. if user_id in super_auth() and not pitcher_id:
  114. # return channel_list_all[:100]
  115. return channel_list_all
  116. select_id = user_id
  117. # 通过pitcher_id,来添加
  118. if pitcher_id:
  119. select_id = pitcher_id
  120. print("3------------------------->")
  121. # 普通权限------java,获取本人对应拥有的公众号
  122. g_time = int(time.time())
  123. base_url = 'https://api.zanxiangnet.com'
  124. params = f'/erp/api/resource/subUserResourceList/3/{user_id}/投手,运营'
  125. g_token = get_g_token_sha256(g_time, params)
  126. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account})
  127. # 防止urlencode自动换行
  128. params_other_urlencode = params_other_urlencode.replace('%0A', '')
  129. url = base_url + params + '?' + params_other_urlencode
  130. print("4------------------------->"+url)
  131. rsp = requests.get(url)
  132. channel_list = rsp.json()['data']
  133. data1 = []
  134. for _ in channel_list:
  135. if 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. # # 加上配置的号
  141. sql2 = f"""select GROUP_CONCAT(channel_ids) from user_channel_group_auth a
  142. left join channel_group b on a.channel_group_id=b.id
  143. where user_id={select_id}"""
  144. data2 = db.quchen_text.getOne(sql2)
  145. data3 = []
  146. if data2:
  147. data2_2 = tuple(data2.split(','))
  148. for _ in data2_2:
  149. data3.append({'id': int(_), 'nick_name': channel_dict[int(_)]})
  150. data4 = data1 + data3
  151. print("5------------------------->"+data4)
  152. return data4[:100] # 给100个
  153. def get_pitcher(arg):
  154. user_id = arg.get('user_id')
  155. if user_id in super_auth():
  156. user_list = []
  157. g_time = int(time.time())
  158. base_url = 'https://api.zanxiangnet.com'
  159. params = '/erp/api/user/search/3'
  160. params_others = '?resourceTags=投手'
  161. g_token = get_g_token_sha256(g_time, params)
  162. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account})
  163. url = base_url + params + params_others + '&' + params_other_urlencode
  164. rsp = requests.get(url)
  165. for _ in rsp.json()['data']:
  166. user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']})
  167. return user_list
  168. user_list = []
  169. g_time = int(time.time())
  170. base_url = 'https://api.zanxiangnet.com'
  171. params = f'/erp/api/user/subUser/3/{user_id}'
  172. g_token = get_g_token_sha256(g_time, params)
  173. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account})
  174. url = base_url + params + '?' + params_other_urlencode
  175. rsp = requests.get(url)
  176. for _ in rsp.json()['data']:
  177. user_list.append({'user_id': _['userId'], 'nick_name': _['nickName']})
  178. return user_list
  179. def get_user_name_by_id(user_id):
  180. g_time = int(time.time())
  181. base_url = 'https://api.zanxiangnet.com'
  182. params = f'/erp/api/user/subUser/3/{user_id}'
  183. g_token = get_g_token_sha256(g_time, params)
  184. params_other_urlencode = urlencode({'g_time': g_time, 'g_token': g_token, 'g_account': sha256_account})
  185. url = base_url + params + '?' + params_other_urlencode
  186. rsp = requests.get(url)
  187. nick_name = None
  188. for _ in rsp.json()['data']:
  189. if str(_['userId']) == str(user_id):
  190. nick_name = _['nickName']
  191. return nick_name
  192. if __name__ == '__main__':
  193. print(get_channel({'user_id': 78}))
  194. # print(get_user_name_by_id({'user_id':78,'name':''}))
  195. # print(get_user_name_by_id(78))