You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
2.5 KiB
51 lines
2.5 KiB
# routes/UserController.py
|
|
import re
|
|
|
|
from fastapi import APIRouter, Request, Response, Depends
|
|
from auth.dependencies import *
|
|
from utils.CommonUtil import md5_encrypt
|
|
from utils.Database import *
|
|
from utils.ParseRequest import *
|
|
|
|
# 创建一个路由实例,需要依赖get_current_user,登录后才能访问
|
|
router = APIRouter(dependencies=[Depends(get_current_user)])
|
|
|
|
# 【Base-User-1】维护用户手机号
|
|
@router.post("/modifyTelephone")
|
|
async def modify_telephone(request: Request):
|
|
person_id = await get_request_str_param(request, "person_id", True, True)
|
|
telephone = await get_request_str_param(request, "telephone", True, True)
|
|
# 校验手机号码格式
|
|
if not re.match(r"^1[3-9]\d{9}$", telephone):
|
|
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="手机号码格式错误")
|
|
# 校验手机号码是否已被注册
|
|
select_telephone_sql: str = "select * from t_sys_loginperson where b_use = 1 and telephone = '" + telephone + "' and person_id <> '" + person_id + "'"
|
|
userlist = await find_by_sql(select_telephone_sql, ())
|
|
if userlist is not None:
|
|
return {"success": False, "message": "手机号码已被注册"}
|
|
else:
|
|
update_telephone_sql: str = "update t_sys_loginperson set telephone = '" + telephone + "' where person_id = '" + person_id + "'"
|
|
await execute_sql(update_telephone_sql, ())
|
|
return {"success": True, "message": "修改成功"}
|
|
|
|
|
|
# 【Base-User-2】维护用户密码
|
|
@router.post("/modifyPassword")
|
|
async def modify_password(request: Request):
|
|
person_id = await get_request_str_param(request, "person_id", True, True)
|
|
old_password = await get_request_str_param(request, "old_password", True, True)
|
|
password = await get_request_str_param(request, "password", True, True)
|
|
# 校验旧密码是否正确
|
|
select_password_sql: str = "select pwdmd5 from t_sys_loginperson where person_id = '" + person_id + "' and b_use = 1"
|
|
userlist = await find_by_sql(select_password_sql, ())
|
|
if len(userlist) == 0:
|
|
return {"success": False, "message": "用户不存在"}
|
|
else:
|
|
if userlist[0]["pwdmd5"] != md5_encrypt(old_password):
|
|
return {"success": False, "message": "旧密码错误"}
|
|
else:
|
|
update_password_sql: str = "update t_sys_loginperson set original_pwd = '" + password + "',pwdmd5 = '" + md5_encrypt(password) + "' where person_id = '" + person_id + "'"
|
|
await execute_sql(update_password_sql, ())
|
|
return {"success": True, "message": "修改成功"}
|
|
|