Files
2026-07-13 12:31:34 +08:00

187 lines
4.5 KiB
Python

# -*- coding: utf-8 -*-
"""
group_user_api.py
"""
from __future__ import print_function, unicode_literals, absolute_import, division
from flask import request, g
from playhouse.shortcuts import model_to_dict
from domain_admin.enums.operation_enum import OperationEnum
from domain_admin.enums.role_enum import RoleEnum
from domain_admin.model.group_model import GroupModel
from domain_admin.model.group_user_model import GroupUserModel
from domain_admin.service import group_service, operation_service, common_service, auth_service
from domain_admin.utils.flask_ext.app_exception import DataNotFoundAppException
@auth_service.permission(role=RoleEnum.USER)
@operation_service.operation_log_decorator(
model=GroupUserModel,
operation_type_id=OperationEnum.CREATE,
primary_key='id'
)
def add_group_user():
"""
添加
:return:
"""
current_user_id = g.user_id
group_id = request.json['group_id']
user_id = request.json['user_id']
has_edit_permission = request.json.get('has_edit_permission', False)
# 权限校验
group_service.check_group_permission(group_id, current_user_id)
row = GroupUserModel.create(
group_id=group_id,
user_id=user_id,
has_edit_permission=has_edit_permission
)
return {'id': row.id}
@auth_service.permission(role=RoleEnum.USER)
@operation_service.operation_log_decorator(
model=GroupUserModel,
operation_type_id=OperationEnum.UPDATE,
primary_key='group_user_id'
)
def update_group_user_by_id():
"""
更新数据
:return:
"""
current_user_id = g.user_id
group_user_id = request.json['group_user_id']
has_edit_permission = request.json.get('has_edit_permission', False)
group_user_row = GroupUserModel.get_by_id(group_user_id)
group_service.check_group_permission(group_user_row.group_id, current_user_id)
GroupUserModel.update(
has_edit_permission=has_edit_permission,
).where(
GroupUserModel.id == group_user_id
).execute()
@auth_service.permission(role=RoleEnum.USER)
@operation_service.operation_log_decorator(
model=GroupUserModel,
operation_type_id=OperationEnum.DELETE,
primary_key='group_user_id'
)
def delete_group_user_by_id():
"""
删除
:return:
"""
current_user_id = g.user_id
group_user_id = request.json['group_user_id']
group_user_row = GroupUserModel.get_by_id(group_user_id)
group_service.check_group_permission(group_user_row.group_id, current_user_id)
GroupUserModel.delete().where(
GroupUserModel.id == group_user_id,
).execute()
@auth_service.permission(role=RoleEnum.USER)
@operation_service.operation_log_decorator(
model=GroupUserModel,
operation_type_id=OperationEnum.BATCH_DELETE,
primary_key='group_user_ids'
)
def delete_group_user_by_ids():
"""
批量删除
:return:
"""
current_user_id = g.user_id
group_user_ids = request.json['group_user_ids']
group_user_rows = GroupUserModel.select().where(
GroupUserModel.id.in_(group_user_ids)
)
for group_user_row in group_user_rows:
group_service.check_group_permission(group_user_row.group_id, current_user_id)
GroupUserModel.delete().where(
GroupUserModel.id.in_(group_user_ids),
).execute()
@auth_service.permission(role=RoleEnum.USER)
def get_group_user_list():
"""
获取列表
:return:
"""
current_user_id = g.user_id
group_id = request.json.get('group_id')
# 分组列表数据
query = GroupUserModel.select().where(
GroupUserModel.group_id == group_id
)
total = query.count()
rows = query.order_by(
GroupUserModel.create_time.asc(),
GroupUserModel.id.asc()
)
lst = [model_to_dict(row) for row in rows]
# 添加leader
group_row = GroupModel.get_by_id(group_id)
leader = GroupUserModel()
leader.group_id = group_id
leader.user_id = group_row.user_id
leader.has_edit_permission = True
lst.insert(0, model_to_dict(leader))
common_service.load_user_name(lst)
for row in lst:
# add leader
if row['user_id'] == group_row.user_id:
row['is_leader'] = True
else:
row['is_leader'] = False
return {
'list': lst,
'total': len(lst),
}
@auth_service.permission(role=RoleEnum.USER)
def get_group_user_by_id():
"""
获取
:return:
"""
current_user_id = g.user_id
group_id = request.json['group_id']
group_service.check_group_permission(group_id, current_user_id)
return GroupUserModel.get_by_id(group_id)