50 lines
1.6 KiB
Plaintext
50 lines
1.6 KiB
Plaintext
from PDAPI import *
|
|
|
|
|
|
__metadata__ = {
|
|
"methods": ["POST"],
|
|
"blueprint": "GERP",
|
|
"permission": 3.0,
|
|
"attributes": [],
|
|
"limit": "1 per second",
|
|
"args": [
|
|
{"Name": "DepartmentUUID", "Type": "UUID"},
|
|
{"Name": "UserUUIDs", "Type": "str"}
|
|
]
|
|
}
|
|
def HandleRequest():
|
|
UserUUIDs = flask.request.form.get("UserUUIDs")
|
|
DepartmentUUID = flask.request.form.get("DepartmentUUID")
|
|
|
|
if not UserUUIDs:
|
|
return {"code": 400, "msg": "参数缺失: UserUUIDs"}
|
|
if not DepartmentUUID:
|
|
return {"code": 400, "msg": "参数缺失: DepartmentUUID"}
|
|
|
|
if not (Department := GERPDepartment.query.filter(
|
|
GERPDepartment.DepartmentUUID == Get16toBytes(DepartmentUUID)
|
|
).first()):
|
|
return {"code": 1, "msg": "部门 不存在"}
|
|
|
|
user_uuid_list = [uuid.strip() for uuid in UserUUIDs.split('\n') if uuid.strip()]
|
|
if not user_uuid_list:
|
|
return {"code": 400, "msg": "参数缺失: UserUUIDs"}
|
|
|
|
deleted_count = 0
|
|
for user_uuid in user_uuid_list:
|
|
smtm_record = GERPSMTM.query.filter(
|
|
GERPSMTM.DepartmentUUID == Get16toBytes(DepartmentUUID),
|
|
GERPSMTM.UserUUID == Get16toBytes(user_uuid)
|
|
).first()
|
|
|
|
if smtm_record:
|
|
db.session.delete(smtm_record)
|
|
deleted_count += 1
|
|
|
|
try:
|
|
db.session.commit()
|
|
return {"code": 0, "msg": f"成功删除 {deleted_count} 个成员"}
|
|
except:
|
|
print(traceback.print_exc())
|
|
db.session.rollback()
|
|
return {"code": 1, "msg": "SQL 提交失败"} |