|
@@ -12,6 +12,146 @@ import traceback
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
+
|
|
|
+@router.get('/')
|
|
|
+async def usercreate01(
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token)):
|
|
|
+ try:
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "成功",
|
|
|
+ "data": {
|
|
|
+ "postIds":None,
|
|
|
+ "posts":None,
|
|
|
+ "roleIds":None,
|
|
|
+ "roles":get_role(db),
|
|
|
+ "user":None
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+@router.post('')
|
|
|
+async def usercreate(
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ if 'deptId' in body:
|
|
|
+ deptId = body['deptId']
|
|
|
+ else:
|
|
|
+ deptId = None
|
|
|
+ if 'phonenumber' in body:
|
|
|
+ phonenumber = body['phonenumber']
|
|
|
+ else:
|
|
|
+ phonenumber = None
|
|
|
+ if 'email' in body:
|
|
|
+ email = body['email']
|
|
|
+ else:
|
|
|
+ email = None
|
|
|
+ if 'sex' in body:
|
|
|
+ sex = body['sex']
|
|
|
+ else:
|
|
|
+ sex = None
|
|
|
+ userName = body['userName']
|
|
|
+ nickName = body['nickName']
|
|
|
+ roleIds = body['roleIds']
|
|
|
+ postIds = body['postIds']
|
|
|
+ remark = body['remark']
|
|
|
+ status = body['status']
|
|
|
+ password = '$2a$10$b8yUzN0C71sbz.PhNOCgJe.Tu1yWC3RNrTyjSQ8p1W0.aaUXUJ.Ne'
|
|
|
+
|
|
|
+ new_user = SysUser(
|
|
|
+ user_name = userName,
|
|
|
+ nick_name=nickName,
|
|
|
+ dept_id=deptId,
|
|
|
+ phonenumber=phonenumber,
|
|
|
+ email=email,
|
|
|
+ sex=sex,
|
|
|
+ remark=remark,
|
|
|
+ status=status,
|
|
|
+ password=password
|
|
|
+ )
|
|
|
+ db.add(new_user)
|
|
|
+ db.commit()
|
|
|
+ db.refresh(new_user)
|
|
|
+
|
|
|
+ # 创建新的用户角色关联
|
|
|
+ new_roles = [SysUserRole(user_id=new_user.user_id, role_id=role_id) for role_id in roleIds]
|
|
|
+ db.add_all(new_roles)
|
|
|
+
|
|
|
+ # 创建新的用户角色关联
|
|
|
+ new_posts = [SysUserPost(user_id=new_user.user_id, post_id=post_id) for post_id in postIds]
|
|
|
+ db.add_all(new_posts)
|
|
|
+
|
|
|
+ db.commit()
|
|
|
+ return {"code": 200, "msg": "创建成功", "data": None}
|
|
|
+
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+@router.put('')
|
|
|
+async def userupdate(
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ user_id_1 = body['userId']
|
|
|
+ user = user_id_get_user_info(db,user_id_1)
|
|
|
+ nickName = body['nickName']
|
|
|
+ deptId = body['deptId']
|
|
|
+ phonenumber = body['phonenumber']
|
|
|
+ email = body['email']
|
|
|
+ sex = body['sex']
|
|
|
+ roleIds = body['roleIds']
|
|
|
+ postIds = body['postIds']
|
|
|
+ remark = body['remark']
|
|
|
+
|
|
|
+ user.nick_name=nickName
|
|
|
+ user.dept_id=deptId
|
|
|
+ user.phonenumber=phonenumber
|
|
|
+ user.email=email
|
|
|
+ user.sex=sex
|
|
|
+ user.remark=remark
|
|
|
+ # 解析角色ID列表
|
|
|
+ # role_ids_list = [int(id) for id in roleIds.split(',')]
|
|
|
+
|
|
|
+ # 清除当前用户的所有角色关联
|
|
|
+ db.query(SysUserRole).filter(SysUserRole.user_id == user_id_1).delete()
|
|
|
+
|
|
|
+ # 创建新的用户角色关联
|
|
|
+ new_roles = [SysUserRole(user_id=user_id_1, role_id=role_id) for role_id in roleIds]
|
|
|
+ db.add_all(new_roles)
|
|
|
+
|
|
|
+ # 解析角色ID列表
|
|
|
+ # post_ids_list = [int(id) for id in postIds.split(',')]
|
|
|
+
|
|
|
+ # 清除当前用户的所有角色关联
|
|
|
+ db.query(SysUserPost).filter(SysUserPost.user_id == user_id_1).delete()
|
|
|
+
|
|
|
+ # 创建新的用户角色关联
|
|
|
+ new_posts = [SysUserPost(user_id=user_id_1, post_id=post_id) for post_id in postIds]
|
|
|
+ db.add_all(new_posts)
|
|
|
+
|
|
|
+ db.commit()
|
|
|
+ return {"code": 200, "msg": "更新成功", "data": None}
|
|
|
+
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@router.get('/getInfo')
|
|
|
async def getInfo(request: Request,db: Session = Depends(get_db), user_id: int = Depends(valid_access_token)):
|
|
|
# 用户信息
|
|
@@ -174,8 +314,12 @@ async def userlist( deptId: int = Query(None ,description='部门id'),
|
|
|
users = query.offset((page - 1) * pageSize).limit(pageSize).all()
|
|
|
|
|
|
# 将查询结果转换为列表形式的字典
|
|
|
- user_list = [
|
|
|
- {
|
|
|
+ user_list = []
|
|
|
+ for user in users:
|
|
|
+ roleIds = user_id_get_user_roleIds(db, user.user_id)
|
|
|
+ user_roles = role_id_list_get_user_role(db,roleIds)
|
|
|
+
|
|
|
+ user_info = {
|
|
|
"userId": user.user_id,
|
|
|
"tenantId": user.tenant_id,
|
|
|
"deptId": user.dept_id,
|
|
@@ -192,13 +336,12 @@ async def userlist( deptId: int = Query(None ,description='部门id'),
|
|
|
"remark": user.remark,
|
|
|
"createTime": user.create_time.strftime('%Y-%m-%d %H:%M:%S') if user.create_time else '',
|
|
|
"deptName": user.dept_name,
|
|
|
- "roles": None,
|
|
|
+ "roles": user_roles,
|
|
|
"roleIds": None,
|
|
|
"postIds": None,
|
|
|
"roleId": None
|
|
|
}
|
|
|
- for user in users
|
|
|
- ]
|
|
|
+ user_list.append(user_info)
|
|
|
|
|
|
# 返回结果
|
|
|
return {
|
|
@@ -361,6 +504,30 @@ async def get_user_video_points(
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
|
|
|
+@router.put('/authRole')
|
|
|
+async def authRoleUpdate( userId: int = Query(None ,description='用户id'),
|
|
|
+ roleIds: str = Query(None ,description='权限id'),
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token)):
|
|
|
+ try:
|
|
|
+
|
|
|
+ # 解析角色ID列表
|
|
|
+ role_ids_list = [int(id) for id in roleIds.split(',')]
|
|
|
+
|
|
|
+ # 清除当前用户的所有角色关联
|
|
|
+ db.query(SysUserRole).filter(SysUserRole.user_id == userId).delete()
|
|
|
+
|
|
|
+ # 创建新的用户角色关联
|
|
|
+ new_roles = [SysUserRole(user_id=userId, role_id=role_id) for role_id in role_ids_list]
|
|
|
+ db.add_all(new_roles)
|
|
|
+ db.commit()
|
|
|
+ return {"code": 200, "msg": "更新成功", "data": None}
|
|
|
+
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+@router.get('/authRole/{user_id_1}')
|
|
|
@router.get('/{user_id_1}')
|
|
|
async def userlist( user_id_1: int = Query(None ,description='用户id'),
|
|
|
db: Session = Depends(get_db),
|
|
@@ -390,12 +557,12 @@ async def userlist( user_id_1: int = Query(None ,description='用户id'),
|
|
|
"createTime": user.create_time.strftime('%Y-%m-%d %H:%M:%S') if user.create_time else '',
|
|
|
"deptName": user.dept_name,
|
|
|
"roles": user_roles,
|
|
|
- "roleIds": None,
|
|
|
+ "roleIds": roleIds,
|
|
|
"postIds": None,
|
|
|
"roleId": None
|
|
|
}
|
|
|
|
|
|
- roles = get_role(db)
|
|
|
+ roles = get_role(db,roleIds)
|
|
|
|
|
|
|
|
|
# 返回结果
|