operate.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. from model.DateUtils import DateUtils
  2. from model.DataBaseUtils import *
  3. from model.UserAuthUtils import super_auth
  4. import pandas as pd
  5. du = DateUtils()
  6. def user_channel(arg):
  7. db = MysqlUtils()
  8. # 返回所有公众号
  9. sql = "select id,nick_name from t_mp_account where del_flag=0"
  10. return db.zx.getData_json(sql)
  11. def user_channel_group(arg):
  12. db = MysqlUtils()
  13. di = db.zx.get_data_dict("select cast(id as char) ,nick_name from t_mp_account where del_flag=0")
  14. user_id = arg.get('user_id')
  15. if user_id:
  16. sql = f"""SELECT id,name,channel_ids from channel_group where id in
  17. (select channel_group_id from user_channel_group_auth where user_id={user_id})"""
  18. else:
  19. # 不传user_id 返回所有组
  20. sql = "select id,name,channel_ids from channel_group"
  21. data = db.quchen_text.getData_json(sql)
  22. for i in data:
  23. sr =''
  24. for j in i['channel_ids'].split(','):
  25. sr+=di[j]+','
  26. i['channel_names']=sr
  27. return data
  28. def user(arg):
  29. db = MysqlUtils()
  30. # 返回所有用户
  31. sql = "SELECT user_id,nick_name from t_sys_user where del_flag=0 and status=0"
  32. return db.zx.getData_json(sql)
  33. def group_add(arg):
  34. db = MysqlUtils()
  35. name = arg.get("name")
  36. ids = arg.get("channel_ids")
  37. if name and ids:
  38. sql = "insert into channel_group (name,channel_ids) values (%s,%s)"
  39. db.quchen_text.execute(sql,(name,ids))
  40. def group_del(arg):
  41. db = MysqlUtils()
  42. id = arg.get("id")
  43. if id:
  44. sql = f"delete from channel_group where id={id}"
  45. db.quchen_text.execute(sql)
  46. def group_auth_add(arg):
  47. db = MysqlUtils()
  48. user_id = arg.get("user_id")
  49. group_id = arg.get("group_id")
  50. if user_id and group_id:
  51. sql = "insert into user_channel_group_auth (user_id,channel_group_id) values (%s,%s)"
  52. db.quchen_text.execute(sql, (user_id, group_id))
  53. def group_auth_del(arg):
  54. db = MysqlUtils()
  55. user_id = arg.get("user_id")
  56. group_id = arg.get("group_id")
  57. if user_id and group_id:
  58. sql = f"delete from user_channel_group_auth where user_id={user_id} and channel_group_id={group_id}"
  59. # print(sql)
  60. db.quchen_text.execute(sql)
  61. def get_channel(arg):
  62. db = MysqlUtils()
  63. user_id= arg.get('user_id')
  64. name = arg.get('name')
  65. # 超级权限
  66. if user_id in super_auth():
  67. sql = f"select id,nick_name from t_mp_account where nick_name like '%{name}%' and del_flag=0"
  68. return db.zx.getData_json(sql)
  69. # 普通权限
  70. # # 搜索空字符默认给出全部
  71. op = f" nick_name like '%{name}%' and " if name !='' else ''
  72. sql = f"""select id,nick_name from t_mp_account where {op} (oper_user_id in
  73. (select user_id from t_sys_user_group_relation where group_id=(select id from t_sys_user_group where del_flag=0 and group_user_id={user_id})) or
  74. put_user_id in (select user_id from t_sys_user_group_relation where group_id=(select id from t_sys_user_group where del_flag=0 and group_user_id={user_id}))
  75. or oper_user_id={user_id} or put_user_id={user_id})"""
  76. data1 = db.zx.getData_json(sql)
  77. # # 加上配置的号
  78. sql2 = f"""select GROUP_CONCAT(channel_ids) from user_channel_group_auth a
  79. left join channel_group b on a.channel_group_id=b.id
  80. where user_id={user_id}"""
  81. data2 = db.quchen_text.getOne(sql2)
  82. if data2:
  83. data2_2 = tuple(data2.split(','))
  84. sql3 = f"""select id,nick_name from t_mp_account where nick_name like '%{name}%' and id in {str(data2_2)}"""
  85. data3 = db.zx.getData_json(sql3)
  86. else:
  87. data3 = []
  88. data4 = data1 + data3
  89. return data4[:100] # 给100个
  90. def get_pitcher(arg):
  91. user_id = arg.get('user_id')
  92. db = MysqlUtils()
  93. if user_id in super_auth():
  94. sql = """
  95. select a.user_id,nick_name from t_sys_user a
  96. left join t_sys_user_role c on a.user_id =c.user_id
  97. where a.del_flag=0 and c.role_id in (7,9) group by a.user_id,nick_name"""
  98. return db.zx.getData_json(sql)
  99. sql = f"""select b.user_id,b.nick_name from t_sys_user_group_relation a
  100. left join t_sys_user b on a.user_id =b.user_id
  101. left join t_sys_user_role c on b.user_id =c.user_id
  102. where c.role_id in (7,9) and a.group_id=(select id from t_sys_user_group where del_flag=0 and group_user_id={user_id})
  103. group by b.user_id,b.nick_name
  104. """
  105. # print(db.zx.getData_json(sql))
  106. return db.zx.getData_json(sql)
  107. def get_user_name_by_id(user_id):
  108. db = MysqlUtils()
  109. sql = "select nick_name from t_sys_user where user_id="+str(user_id)
  110. return db.zx.getOne(sql)
  111. if __name__ == '__main__':
  112. # print(get_pitcher({'user_id':78}))
  113. # print(get_user_name_by_id(78))
  114. user_channel_group({})