提交用户管理相关代码
This commit is contained in:
parent
d5edec83ad
commit
c54f10cc71
|
|
@ -54,3 +54,20 @@ class CrossDbHelper(TableDbHelperBase):
|
||||||
update cross_doctor_matedata.cross_phase_problems_record set final_state = '%s', end_date = '%s' where crossid = '%s' and first_date = '%s' and start_hm = %s
|
update cross_doctor_matedata.cross_phase_problems_record set final_state = '%s', end_date = '%s' where crossid = '%s' and first_date = '%s' and start_hm = %s
|
||||||
""" % (state, end_date, crossid, first_date, start_hm)
|
""" % (state, end_date, crossid, first_date, start_hm)
|
||||||
return self.do_execute(sql)
|
return self.do_execute(sql)
|
||||||
|
|
||||||
|
def query_monitor_task_dates(self, nodeid, area_id):
|
||||||
|
day_sql = f"select distinct day from traffic_{nodeid}.cross_inspect where citycode = {nodeid} and area_id = {area_id} and type = 'day'"
|
||||||
|
week_sql = f"select distinct day from traffic_{nodeid}.cross_inspect where citycode = {nodeid} and area_id = {area_id} and type = 'week'"
|
||||||
|
day_date_list = self.do_select(day_sql)
|
||||||
|
week_date_list = self.do_select(week_sql)
|
||||||
|
day_list = [item['day'] for item in day_date_list]
|
||||||
|
week_list = [item['day'] for item in week_date_list]
|
||||||
|
return day_list, week_list
|
||||||
|
|
||||||
|
def query_monitor_data(self, nodeid, area_id, date_type, query_date):
|
||||||
|
if date_type in ['week', 'workday', 'weekend']:
|
||||||
|
date_type = 'week'
|
||||||
|
sql = f"""
|
||||||
|
select * from traffic_{nodeid}.cross_inspect where citycode = {nodeid} and area_id = {area_id} and type = '{date_type}' and day = '{query_date}'
|
||||||
|
"""
|
||||||
|
return self.do_select(sql)
|
||||||
|
|
@ -53,10 +53,10 @@ g_redisinfo = {
|
||||||
}
|
}
|
||||||
|
|
||||||
g_user_db = {
|
g_user_db = {
|
||||||
'host': '120.53.125.169',
|
'host': '82.157.173.20',
|
||||||
'port': 3306,
|
'port': 3306,
|
||||||
'user': 'root',
|
'user': 'root',
|
||||||
'password': 'pmenJIn7EaK40oThn~~~',
|
'password': 'pmenJIn7EaK40oThn~~',
|
||||||
'db': 'user'
|
'db': 'user'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class UserDbHelper(TableDbHelperBase):
|
||||||
return md5.hexdigest() # 返回十六进制的哈希值
|
return md5.hexdigest() # 返回十六进制的哈希值
|
||||||
|
|
||||||
def login(self, userno, password_md5):
|
def login(self, userno, password_md5):
|
||||||
sql_query = "select password,token, last_modify_pwd_time from `user` where userno='%s'" % (userno)
|
sql_query = "select password,token, last_modify_pwd_time, role from `user` where userno='%s'" % (userno)
|
||||||
users = self.do_select(sql_query)
|
users = self.do_select(sql_query)
|
||||||
if len(users) != 1:
|
if len(users) != 1:
|
||||||
logging.error('query_ledger error! %s' % (sql_query))
|
logging.error('query_ledger error! %s' % (sql_query))
|
||||||
|
|
@ -34,9 +34,9 @@ class UserDbHelper(TableDbHelperBase):
|
||||||
str_md5 = self.generate_md5(users[0]['password'])
|
str_md5 = self.generate_md5(users[0]['password'])
|
||||||
|
|
||||||
if str_md5==password_md5:
|
if str_md5==password_md5:
|
||||||
return users[0]['token'], users[0]['last_modify_pwd_time']
|
return users[0]['token'], users[0]['last_modify_pwd_time'], users[0]['role']
|
||||||
else:
|
else:
|
||||||
return '', ''
|
return '', '', ''
|
||||||
|
|
||||||
def authentication(self, token):
|
def authentication(self, token):
|
||||||
sql_query = "select author.resource ,author.author from `user`,`author` where user.role=author.role and user.token='%s'" % (token)
|
sql_query = "select author.resource ,author.author from `user`,`author` where user.role=author.role and user.token='%s'" % (token)
|
||||||
|
|
@ -140,3 +140,98 @@ class UserDbHelper(TableDbHelperBase):
|
||||||
def modify_password(self, userid, new_password):
|
def modify_password(self, userid, new_password):
|
||||||
sql = "update user set password = '%s' where userno = '%s'" % (new_password, userid)
|
sql = "update user set password = '%s' where userno = '%s'" % (new_password, userid)
|
||||||
return self.do_execute(sql)
|
return self.do_execute(sql)
|
||||||
|
|
||||||
|
def query_users(self):
|
||||||
|
sql = """
|
||||||
|
select t1.*, t2.area_ids, t2.nodeids from
|
||||||
|
(select userno, user_name, role, password, last_modify_pwd_time from user where state != 1) t1
|
||||||
|
left join
|
||||||
|
(select userno, GROUP_CONCAT(area_id SEPARATOR ',') as area_ids, GROUP_CONCAT(nodeid SEPARATOR ',') as nodeids from area_user group by userno) t2
|
||||||
|
on t1.userno = t2.userno
|
||||||
|
"""
|
||||||
|
return self.do_select(sql)
|
||||||
|
|
||||||
|
def query_user_info_sql(self, userid):
|
||||||
|
sql = "select * from user where userno = '%s'" % (userid)
|
||||||
|
res = self.do_select(sql)
|
||||||
|
if res:
|
||||||
|
return res[0]
|
||||||
|
return None
|
||||||
|
|
||||||
|
def update_user_info(self, modify_sql, userid, area_id_list, new_userid, all_area_info_dict):
|
||||||
|
conn, cursor = self.connect()
|
||||||
|
conn.begin()
|
||||||
|
sql1 = "update user %s where userno = '%s'" % (modify_sql, userid)
|
||||||
|
sql2 = "delete from area_user where userno = '%s'" % (userid)
|
||||||
|
values = []
|
||||||
|
if not new_userid:
|
||||||
|
for area_id in area_id_list:
|
||||||
|
values.append((userid, area_id, all_area_info_dict[int(area_id)]['nodeid']))
|
||||||
|
else:
|
||||||
|
for area_id in area_id_list:
|
||||||
|
values.append((new_userid, area_id, all_area_info_dict[int(area_id)]['nodeid']))
|
||||||
|
sql3 = "insert into area_user(userno, area_id, nodeid) values(%s, %s, %s)"
|
||||||
|
try:
|
||||||
|
if modify_sql != '':
|
||||||
|
ret = cursor.execute(sql1)
|
||||||
|
else:
|
||||||
|
ret = 1
|
||||||
|
cursor.execute(sql2)
|
||||||
|
if len(area_id_list) > 0:
|
||||||
|
ret2 = cursor.executemany(sql3, values)
|
||||||
|
else:
|
||||||
|
ret2 = 0
|
||||||
|
if ret != 1 or ret2 != len(area_id_list):
|
||||||
|
conn.rollback()
|
||||||
|
return False, ret2
|
||||||
|
else:
|
||||||
|
conn.commit()
|
||||||
|
return True, ret2
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(e)
|
||||||
|
conn.rollback()
|
||||||
|
return False, 0
|
||||||
|
|
||||||
|
def insert_login_log(self, userid, op_type, ip, ip_city, op_user=None):
|
||||||
|
sql = """
|
||||||
|
insert into login_log (userid, op_type, ip, ip_city) values ('%s', '%s', '%s', '%s')
|
||||||
|
""" % (userid, op_type, ip, ip_city)
|
||||||
|
if op_user:
|
||||||
|
sql = """
|
||||||
|
insert into login_log (userid, op_type, ip, ip_city,op_user) values ('%s', '%s', '%s', '%s', '%s')
|
||||||
|
""" % (userid, op_type, ip, ip_city, op_user)
|
||||||
|
return self.do_execute(sql)
|
||||||
|
|
||||||
|
def del_user_sql(self, userid):
|
||||||
|
sql = """
|
||||||
|
update user set state = 1 where userno = '%s'
|
||||||
|
""" % (userid)
|
||||||
|
return self.do_execute(sql)
|
||||||
|
|
||||||
|
def insert_user(self, userid, password, user_name, area_id_list, all_area_info_dict):
|
||||||
|
values = []
|
||||||
|
for area_id in area_id_list:
|
||||||
|
values.append((userid, area_id, all_area_info_dict[int(area_id)]['nodeid']))
|
||||||
|
tmp_token = 'iuqwefhjdbcsajhdshcgaiudncjadhajn_' + userid
|
||||||
|
sql1 = """
|
||||||
|
insert into user(userno, user_name, password, token, department, role) values('%s', '%s', '%s', '%s', '信号调优团队', 'engineer')
|
||||||
|
""" % (userid, user_name, password, tmp_token)
|
||||||
|
sql2 = "insert into area_user(userno, area_id, nodeid) values(%s, %s, %s)"
|
||||||
|
conn, cursor = self.connect()
|
||||||
|
conn.begin()
|
||||||
|
try:
|
||||||
|
ret = self.do_execute(sql1)
|
||||||
|
if len(area_id_list) > 0:
|
||||||
|
ret2 = cursor.executemany(sql2, values)
|
||||||
|
else:
|
||||||
|
ret2 = 0
|
||||||
|
if ret != 1 or ret2 != len(area_id_list):
|
||||||
|
conn.rollback()
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
conn.commit()
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(e)
|
||||||
|
conn.rollback()
|
||||||
|
return False
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,13 @@
|
||||||
# @Author: Owl
|
# @Author: Owl
|
||||||
# @Date: 2025/11/10 18:12
|
# @Date: 2025/11/10 18:12
|
||||||
# @Description:
|
# @Description:
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
|
||||||
|
import requests
|
||||||
from flask import Flask, request
|
from flask import Flask, request
|
||||||
from app.cross_eva_views import app
|
from app.cross_eva_views import app
|
||||||
from app.user_worker import query_host_by_nodeid, do_login, do_authentication, do_get_user_info, set_rerun_dates, \
|
from app.user_worker import *
|
||||||
clear_rerun_dates, get_rerun_dates, do_modify_password
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/api/route', methods=['GET'])
|
@app.route('/api/route', methods=['GET'])
|
||||||
|
|
@ -16,9 +19,14 @@ def query_route():
|
||||||
#输入userno
|
#输入userno
|
||||||
#输入password(MD5)
|
#输入password(MD5)
|
||||||
#返回token
|
#返回token
|
||||||
@app.route('/api/login', methods=['GET'])
|
@app.route('/api/login', methods=['POST'])
|
||||||
def login():
|
def login():
|
||||||
return do_login(dict(request.args))
|
ip = request.remote_addr
|
||||||
|
params = request.get_json()
|
||||||
|
city_name = get_province_by_ip(ip)
|
||||||
|
params['ip'] = ip
|
||||||
|
params['city_name'] = city_name
|
||||||
|
return do_login(params)
|
||||||
|
|
||||||
#输入token
|
#输入token
|
||||||
#返回有操作权限的资源列表
|
#返回有操作权限的资源列表
|
||||||
|
|
@ -61,4 +69,57 @@ def get_rerun():
|
||||||
|
|
||||||
@app.route('/api/modify_password', methods=['POST'])
|
@app.route('/api/modify_password', methods=['POST'])
|
||||||
def modify_password():
|
def modify_password():
|
||||||
return do_modify_password(request.get_json())
|
ip = request.remote_addr
|
||||||
|
params = request.get_json()
|
||||||
|
city_name = get_province_by_ip(ip)
|
||||||
|
params['ip'] = ip
|
||||||
|
params['city_name'] = city_name
|
||||||
|
return do_modify_password(params)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/query_all_users', methods=['GET'])
|
||||||
|
def query_all_users_controller():
|
||||||
|
return query_user_list(dict(request.args))
|
||||||
|
|
||||||
|
|
||||||
|
def get_province_by_ip(ip):
|
||||||
|
try:
|
||||||
|
response = requests.get(f'http://whois.pconline.com.cn/ipJson.jsp?ip={ip}&json=true')
|
||||||
|
ip_info = json.loads(response.content.strip().decode('gbk'))
|
||||||
|
addr = ip_info['addr']
|
||||||
|
if addr == ' 本机地址':
|
||||||
|
addr = '本机'
|
||||||
|
return addr.split(' ')[0]
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(e)
|
||||||
|
return '未知'
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/modify_user', methods=['POST'])
|
||||||
|
def modify_user_controller():
|
||||||
|
params = request.get_json()
|
||||||
|
ip = request.remote_addr
|
||||||
|
city_name = get_province_by_ip(ip)
|
||||||
|
params['ip'] = ip
|
||||||
|
params['city_name'] = city_name
|
||||||
|
return modify_user(params)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/delete_user', methods=['GET'])
|
||||||
|
def delete_user_controller():
|
||||||
|
params = dict(request.args)
|
||||||
|
ip = request.remote_addr
|
||||||
|
city_name = get_province_by_ip(ip)
|
||||||
|
params['ip'] = ip
|
||||||
|
params['city_name'] = city_name
|
||||||
|
return del_user(params)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/api/add_user', methods=['POST'])
|
||||||
|
def add_user_controller():
|
||||||
|
params = request.get_json()
|
||||||
|
ip = request.remote_addr
|
||||||
|
city_name = get_province_by_ip(ip)
|
||||||
|
params['ip'] = ip
|
||||||
|
params['city_name'] = city_name
|
||||||
|
return create_user(params)
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
import configparser
|
import configparser
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
from pypinyin import lazy_pinyin
|
||||||
|
|
||||||
from app.common_worker import check_param
|
from app.common_worker import check_param
|
||||||
from app.global_source import db_user
|
from app.global_source import db_user, g_config
|
||||||
from app.user_db_func import *
|
from app.user_db_func import *
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -21,13 +24,19 @@ def query_host_by_nodeid(params):
|
||||||
def do_login(params):
|
def do_login(params):
|
||||||
userno = params.get('userno')
|
userno = params.get('userno')
|
||||||
password = params.get('password')
|
password = params.get('password')
|
||||||
|
ip = check_param(params, 'ip')
|
||||||
token, last_modify_pdw_time = db_user.login(userno, password)
|
city_name = check_param(params, 'city_name')
|
||||||
|
token, last_modify_pdw_time, role = db_user.login(userno, password)
|
||||||
|
area_infos = db_user.query_all_area_infos()
|
||||||
if token is not None and len(token) > 0:
|
if token is not None and len(token) > 0:
|
||||||
res = make_res(0, 'ok', '登录成功。')
|
res = make_res(0, 'ok', '登录成功。')
|
||||||
res['token'] = token
|
res['token'] = token
|
||||||
areaid_list = db_user.query_areaid_list(userno)
|
areaid_list = db_user.query_areaid_list(userno)
|
||||||
|
if not areaid_list:
|
||||||
|
if role != 'manager':
|
||||||
|
return json.dumps(make_common_res(3, '无可用城市信息,请联系管理员添加城市权限'))
|
||||||
|
else:
|
||||||
|
areaid_list = list(area_infos.keys())
|
||||||
areaid_list = [x for x in set(areaid_list)]
|
areaid_list = [x for x in set(areaid_list)]
|
||||||
area_infos = db_user.query_all_area_infos()
|
area_infos = db_user.query_all_area_infos()
|
||||||
area_info_list = []
|
area_info_list = []
|
||||||
|
|
@ -49,6 +58,9 @@ def do_login(params):
|
||||||
return json.dumps(make_common_res(5, '密码已过期,请修改密码后重试'))
|
return json.dumps(make_common_res(5, '密码已过期,请修改密码后重试'))
|
||||||
res['node_list'] = area_info_list
|
res['node_list'] = area_info_list
|
||||||
res['usable_date'] = abs(time_diff.days - 30)
|
res['usable_date'] = abs(time_diff.days - 30)
|
||||||
|
ret = db_user.insert_login_log(userno, 0, ip, city_name)
|
||||||
|
if ret != 1:
|
||||||
|
return json.dumps(make_common_res(6, '登录失败,请检查是否已经登录。'))
|
||||||
else:
|
else:
|
||||||
res = make_res(-1, '登录失败,请检查用户名或者密码是否正确。', 'error')
|
res = make_res(-1, '登录失败,请检查用户名或者密码是否正确。', 'error')
|
||||||
res['token'] = ''
|
res['token'] = ''
|
||||||
|
|
@ -82,8 +94,11 @@ def do_get_user_info(params, token):
|
||||||
all_area_info = db_user.query_all_area_infos()
|
all_area_info = db_user.query_all_area_infos()
|
||||||
user = db_user.query_user(token)
|
user = db_user.query_user(token)
|
||||||
if user is not None:
|
if user is not None:
|
||||||
|
super_user = 0
|
||||||
|
if user['userno'] in g_config['executives']:
|
||||||
|
super_user = 1
|
||||||
user_t = {'userno': user['userno'], 'user_name': user['user_name'], 'role': user['role'],
|
user_t = {'userno': user['userno'], 'user_name': user['user_name'], 'role': user['role'],
|
||||||
'department': user['department']}
|
'department': user['department'], 's': super_user}
|
||||||
if user['role'] == 'manager':
|
if user['role'] == 'manager':
|
||||||
all_areas = db_user.query_all_area_infos()
|
all_areas = db_user.query_all_area_infos()
|
||||||
user_area_info = list(all_areas.values())
|
user_area_info = list(all_areas.values())
|
||||||
|
|
@ -150,11 +165,17 @@ def do_modify_password(params):
|
||||||
new_password = params.get('new_password')
|
new_password = params.get('new_password')
|
||||||
if not new_password:
|
if not new_password:
|
||||||
return json.dumps(make_common_res(3, '新密码信息缺失,请刷新后重试'))
|
return json.dumps(make_common_res(3, '新密码信息缺失,请刷新后重试'))
|
||||||
|
if len(new_password) < 6:
|
||||||
|
return json.dumps(make_common_res(4, '新密码长度不能小于6位'))
|
||||||
|
ip = check_param(params, 'ip')
|
||||||
|
city_name = check_param(params, 'city_name')
|
||||||
check_res, role, last_modify_pwd_time = db_user.check_user_info(userid, password)
|
check_res, role, last_modify_pwd_time = db_user.check_user_info(userid, password)
|
||||||
if check_res == 0:
|
if check_res == 0:
|
||||||
ret = db_user.modify_password(userid, new_password)
|
ret = db_user.modify_password(userid, new_password)
|
||||||
if ret == 1:
|
if ret == 1:
|
||||||
|
insert_log_ret = db_user.insert_login_log(userid, 1, ip, city_name)
|
||||||
|
if insert_log_ret != 1:
|
||||||
|
return json.dumps(make_common_res(5, '登录失败,请检查是否已经登录。'))
|
||||||
return json.dumps(make_common_res(0, 'ok'))
|
return json.dumps(make_common_res(0, 'ok'))
|
||||||
else:
|
else:
|
||||||
return json.dumps(make_common_res(4, '修改密码失败,请稍后重试'))
|
return json.dumps(make_common_res(4, '修改密码失败,请稍后重试'))
|
||||||
|
|
@ -162,3 +183,211 @@ def do_modify_password(params):
|
||||||
return json.dumps(make_common_res(3, '用户名不存在,请检查后重试'))
|
return json.dumps(make_common_res(3, '用户名不存在,请检查后重试'))
|
||||||
else:
|
else:
|
||||||
return json.dumps(make_common_res(4, '用户名或密码错误,请检查后重试'))
|
return json.dumps(make_common_res(4, '用户名或密码错误,请检查后重试'))
|
||||||
|
|
||||||
|
|
||||||
|
def query_user_list(params):
|
||||||
|
userid = check_param(params, 'userid')
|
||||||
|
if not userid:
|
||||||
|
return json.dumps(make_common_res(1, '用户id信息异常,请检查后重试'))
|
||||||
|
if userid not in g_config['executives']:
|
||||||
|
return json.dumps(make_common_res(2, '用户无权限'))
|
||||||
|
keyword = check_param(params, 'keyword')
|
||||||
|
if not keyword:
|
||||||
|
keyword = ''
|
||||||
|
role = check_param(params, 'role')
|
||||||
|
if not role:
|
||||||
|
role = 0
|
||||||
|
role = int(role)
|
||||||
|
start_date = check_param(params, 'start_date')
|
||||||
|
end_date = check_param(params, 'end_date')
|
||||||
|
if not start_date:
|
||||||
|
start_date = ''
|
||||||
|
if not end_date:
|
||||||
|
end_date = ''
|
||||||
|
page = check_param(params, 'page')
|
||||||
|
if not page:
|
||||||
|
page = 1
|
||||||
|
page_size = check_param(params, 'page_size')
|
||||||
|
if not page_size:
|
||||||
|
page_size = 10
|
||||||
|
start_index = (int(page) - 1) * int(page_size)
|
||||||
|
end_index = start_index + int(page_size)
|
||||||
|
|
||||||
|
user_list = db_user.query_users()
|
||||||
|
all_area_info = db_user.query_all_area_infos()
|
||||||
|
res_list = user_list.copy()
|
||||||
|
|
||||||
|
if keyword != '':
|
||||||
|
if any(char.isdigit() for char in keyword):
|
||||||
|
# 说明是手机号的某个子集
|
||||||
|
res_list = [item for item in user_list if keyword in item['userno']]
|
||||||
|
else:
|
||||||
|
res_list = find_user_info(keyword, user_list)
|
||||||
|
if role != 0:
|
||||||
|
if role == 1:
|
||||||
|
role_str = 'engineer'
|
||||||
|
res_list = [item for item in res_list if item['role'] == role_str]
|
||||||
|
else:
|
||||||
|
role_str = 'manager'
|
||||||
|
res_list = [item for item in res_list if item['role'] == role_str]
|
||||||
|
if start_date != '' and end_date != '':
|
||||||
|
res_list = [item for item in res_list if start_date <= item['last_modify_pwd_time'].strftime("%Y%m%d") <= end_date]
|
||||||
|
|
||||||
|
for item in res_list:
|
||||||
|
item['last_modify_pwd_time'] = item['last_modify_pwd_time'].strftime("%Y年%m月%d日 %H:%M:%S")
|
||||||
|
if item['role'] != 'manager':
|
||||||
|
item['role'] = '工程师'
|
||||||
|
area_id_list = item['area_ids'].split(',') if item['area_ids'] else []
|
||||||
|
nodeid_list = item['nodeids'].split(',') if item['nodeids'] else []
|
||||||
|
area_name = '' if len(area_id_list) < 1 else ','.join([all_area_info[int(o)]['area_name'] for o in area_id_list])
|
||||||
|
city_names = '' if len(nodeid_list) < 1 else ','.join([all_area_info[int(o)]['city_name'] for o in area_id_list])
|
||||||
|
item['city_names'] = city_names
|
||||||
|
item['area_names'] = area_name
|
||||||
|
else:
|
||||||
|
item['role'] = '超级管理员'
|
||||||
|
item['city_names'] = '全部'
|
||||||
|
item['area_names'] = '全部'
|
||||||
|
|
||||||
|
res = make_common_res(0, 'ok')
|
||||||
|
res['data'] = {
|
||||||
|
'user_list': res_list[start_index:end_index],
|
||||||
|
'area_list': list(all_area_info.values()),
|
||||||
|
'total': len(res_list)
|
||||||
|
}
|
||||||
|
return json.dumps(res)
|
||||||
|
|
||||||
|
|
||||||
|
def modify_user(params):
|
||||||
|
userid = check_param(params, 'userid')
|
||||||
|
if not userid:
|
||||||
|
return json.dumps(make_common_res(1, '用户id信息异常,请检查后重试'))
|
||||||
|
if userid not in g_config['executives']:
|
||||||
|
return json.dumps(make_common_res(2, '用户无权限'))
|
||||||
|
modify_userid = check_param(params, 'modify_userid')
|
||||||
|
if not modify_userid:
|
||||||
|
return json.dumps(make_common_res(3, '缺少修改用户id信息,请检查后重试'))
|
||||||
|
ip = check_param(params, 'ip')
|
||||||
|
city_name = check_param(params, 'city_name')
|
||||||
|
user_name = check_param(params, 'user_name')
|
||||||
|
user_info = db_user.query_user_info_sql(modify_userid)
|
||||||
|
if not user_info:
|
||||||
|
return json.dumps(make_common_res(5, '该用户不存在'))
|
||||||
|
if user_info['role'] == 'manager':
|
||||||
|
return json.dumps(make_common_res(4, '所选用户为超级管理员,暂不支持修改超级管理员信息'))
|
||||||
|
if not user_name:
|
||||||
|
user_name = ''
|
||||||
|
new_userid = check_param(params, 'new_userid')
|
||||||
|
if not new_userid:
|
||||||
|
new_userid = ''
|
||||||
|
password = check_param(params, 'password')
|
||||||
|
if not password:
|
||||||
|
password = ''
|
||||||
|
area_id_list = check_param(params, 'area_id_list')
|
||||||
|
if not area_id_list or len(area_id_list) < 1:
|
||||||
|
area_id_list = []
|
||||||
|
for area_id in area_id_list:
|
||||||
|
if not str(area_id).lstrip('-').isdigit():
|
||||||
|
return json.dumps(make_common_res(6, '区域id信息异常,请检查后重试'))
|
||||||
|
modify_sql = ''
|
||||||
|
if user_name != '' and user_name != user_info['user_name']:
|
||||||
|
modify_sql += "set user_name='%s'" % user_name
|
||||||
|
if new_userid != '' and new_userid != user_info['userno']:
|
||||||
|
if modify_sql == '':
|
||||||
|
modify_sql += "set userno='%s'" % new_userid
|
||||||
|
else:
|
||||||
|
modify_sql += ",userno='%s'" % new_userid
|
||||||
|
if password != '' and password != user_info['password']:
|
||||||
|
if modify_sql == '':
|
||||||
|
modify_sql += "set password='%s'" % password
|
||||||
|
else:
|
||||||
|
modify_sql += ",password='%s'" % password
|
||||||
|
all_area_info = db_user.query_all_area_infos()
|
||||||
|
res, ret = db_user.update_user_info(modify_sql, modify_userid, area_id_list, new_userid, all_area_info)
|
||||||
|
if res and ret == len(area_id_list):
|
||||||
|
insert_log_ret = db_user.insert_login_log(modify_userid, 2, ip, city_name, userid)
|
||||||
|
if insert_log_ret == 1:
|
||||||
|
return json.dumps(make_common_res(0, 'ok'))
|
||||||
|
else:
|
||||||
|
return json.dumps(make_common_res(5, '用户信息修改日志记录失败,请检查后重试'))
|
||||||
|
return json.dumps(make_common_res(5, '修改失败,请检查后重试'))
|
||||||
|
|
||||||
|
|
||||||
|
def del_user(params):
|
||||||
|
userid = check_param(params, 'userid')
|
||||||
|
if not userid:
|
||||||
|
return json.dumps(make_common_res(1, '用户id信息异常,请检查后重试'))
|
||||||
|
if userid not in g_config['executives']:
|
||||||
|
return json.dumps(make_common_res(2, '用户无权限'))
|
||||||
|
modify_userid = check_param(params, 'modify_userid')
|
||||||
|
if not modify_userid:
|
||||||
|
return json.dumps(make_common_res(3, '缺少修改用户id信息,请检查后重试'))
|
||||||
|
ip = check_param(params, 'ip')
|
||||||
|
city_name = check_param(params, 'city_name')
|
||||||
|
user_info = db_user.query_user_info_sql(modify_userid)
|
||||||
|
if user_info['role'] == 'manager':
|
||||||
|
return json.dumps(make_common_res(4, '所选用户为超级管理员,暂不支持删除超级管理员'))
|
||||||
|
ret = db_user.del_user_sql(modify_userid)
|
||||||
|
if ret == 1:
|
||||||
|
insert_log_ret = db_user.insert_login_log(modify_userid, 3, ip, city_name, userid)
|
||||||
|
if insert_log_ret == 1:
|
||||||
|
return json.dumps(make_common_res(0, 'ok'))
|
||||||
|
else:
|
||||||
|
return json.dumps(make_common_res(5, '用户信息修改日志记录失败,请检查后重试'))
|
||||||
|
else:
|
||||||
|
return json.dumps(make_common_res(5, '删除失败,请检查后重试'))
|
||||||
|
|
||||||
|
|
||||||
|
def create_user(params):
|
||||||
|
userid = check_param(params, 'userid')
|
||||||
|
if not userid:
|
||||||
|
return json.dumps(make_common_res(1, '用户id信息异常,请检查后重试'))
|
||||||
|
if userid not in g_config['executives']:
|
||||||
|
return json.dumps(make_common_res(2, '用户无权限'))
|
||||||
|
modify_userid = check_param(params, 'modify_userid')
|
||||||
|
if not modify_userid:
|
||||||
|
return json.dumps(make_common_res(3, '缺少修改用户id信息,请检查后重试'))
|
||||||
|
user_name = check_param(params, 'user_name')
|
||||||
|
if not user_name:
|
||||||
|
return json.dumps(make_common_res(4, '缺少用户名信息,请检查后重试'))
|
||||||
|
password = check_param(params, 'password')
|
||||||
|
if not password:
|
||||||
|
return json.dumps(make_common_res(5, '缺少密码信息,请检查后重试'))
|
||||||
|
if len(password) < 6:
|
||||||
|
return json.dumps(make_common_res(6, '密码长度不能小于6位,请检查后重试'))
|
||||||
|
area_id_list = check_param(params, 'area_id_list')
|
||||||
|
if not area_id_list or len(area_id_list) < 1:
|
||||||
|
area_id_list = []
|
||||||
|
for area_id in area_id_list:
|
||||||
|
if not str(area_id).lstrip('-').isdigit():
|
||||||
|
return json.dumps(make_common_res(6, '区域id信息异常,请检查后重试'))
|
||||||
|
ip = check_param(params, 'ip')
|
||||||
|
city_name = check_param(params, 'city_name')
|
||||||
|
all_area_info = db_user.query_all_area_infos()
|
||||||
|
ret = db_user.insert_user(modify_userid, password, user_name, area_id_list, all_area_info)
|
||||||
|
if ret:
|
||||||
|
insert_log_ret = db_user.insert_login_log(modify_userid, 4, ip, city_name, userid)
|
||||||
|
if insert_log_ret == 1:
|
||||||
|
return json.dumps(make_common_res(0, 'ok'))
|
||||||
|
else:
|
||||||
|
return json.dumps(make_common_res(7, '用户信息修改日志记录失败,请检查后重试'))
|
||||||
|
return json.dumps(make_common_res(7, '创建失败,请检查后重试'))
|
||||||
|
|
||||||
|
|
||||||
|
def find_user_info(key, value_list):
|
||||||
|
result = []
|
||||||
|
# 遍历名字列表
|
||||||
|
for value in value_list:
|
||||||
|
# 检查是否完全匹配
|
||||||
|
if key in value['user_name']:
|
||||||
|
result.append(value)
|
||||||
|
# 检查是否是首字母缩写匹配
|
||||||
|
elif len(key) >= 2 and len(value['user_name']) >= 2:
|
||||||
|
# 将名字转换为拼音并提取首字母
|
||||||
|
first_pinyin = lazy_pinyin(value['user_name'][0])[0]
|
||||||
|
second_pinyin = lazy_pinyin(value['user_name'][1])[0]
|
||||||
|
if key[0].lower() == first_pinyin[0].lower() and key[1].lower() == second_pinyin[0].lower():
|
||||||
|
result.append(value)
|
||||||
|
# # 检查是否包含关键字
|
||||||
|
# elif key in value['name']:
|
||||||
|
# result.append(value)
|
||||||
|
return result
|
||||||
Loading…
Reference in New Issue