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"} added_count = 0 for user_uuid in user_uuid_list: if not (User := GERPUser.query.filter( GERPUser.UserUUID == Get16toBytes(user_uuid) ).first()): continue if not GERPSMTM.query.filter( GERPSMTM.DepartmentUUID == Get16toBytes(DepartmentUUID), GERPSMTM.UserUUID == Get16toBytes(user_uuid) ).first(): new_smtm = GERPSMTM( DepartmentUUID=Get16toBytes(DepartmentUUID), UserUUID=Get16toBytes(user_uuid), PersonInChargeStatus=0 ) db.session.add(new_smtm) added_count += 1 try: db.session.commit() return {"code": 0, "msg": f"成功添加 {added_count} 个成员"} except: print(traceback.print_exc()) db.session.rollback() return {"code": 1, "msg": "SQL 提交失败"}