fix: correct indentation in batch loop, fix for-else bug causing continue syntax error

This commit is contained in:
yumoqing 2026-05-12 18:30:56 +08:00
parent 3bb57dafd7
commit 2fb9098699

View File

@ -34,10 +34,10 @@ dappid = params_kw.get('dappid', '')
# 参数验证 # 参数验证
if not dappid: if not dappid:
return json.dumps({ return json.dumps({
'status': 'error', 'status': 'error',
'message': 'dappid参数必填' 'message': 'dappid参数必填'
}, ensure_ascii=False) }, ensure_ascii=False)
# 获取数据库连接 # 获取数据库连接
dbname = get_module_dbname('dapi') dbname = get_module_dbname('dapi')
@ -47,185 +47,185 @@ db = DBPools()
create_apikey_func = create_user_apikey create_apikey_func = create_user_apikey
async with db.sqlorContext(dbname) as sor: async with db.sqlorContext(dbname) as sor:
if action == 'single': if action == 'single':
# 单个用户同步 # 单个用户同步
user_data = params_kw.get('user', {}) user_data = params_kw.get('user', {})
user_id = user_data.get('id', '') user_id = user_data.get('id', '')
user_orgid = user_data.get('orgid', '') user_orgid = user_data.get('orgid', '')
if not user_id or not user_orgid: if not user_id or not user_orgid:
return json.dumps({ return json.dumps({
'status': 'error', 'status': 'error',
'message': 'user.id和user.orgid参数必填' 'message': 'user.id和user.orgid参数必填'
}, ensure_ascii=False) }, ensure_ascii=False)
# 如果dapi模块提供了create_user_apikey函数直接调用 # 如果dapi模块提供了create_user_apikey函数直接调用
if create_apikey_func: if create_apikey_func:
result = await create_user_apikey( result = await create_user_apikey(
sor, sor,
dappid, dappid,
user_id, user_id,
user_orgid, user_orgid,
**{k: v for k, v in user_data.items() if k not in ['id', 'orgid']} **{k: v for k, v in user_data.items() if k not in ['id', 'orgid']}
) )
return json.dumps(result, ensure_ascii=False) return json.dumps(result, ensure_ascii=False)
# 否则自己创建apikey # 否则自己创建apikey
# 检查apikey是否已存在 # 检查apikey是否已存在
existing = await sor.R('downapikey', { existing = await sor.R('downapikey', {
'dappid': dappid, 'dappid': dappid,
'duserid': user_id, 'duserid': user_id,
'dorgid': user_orgid 'dorgid': user_orgid
}) })
if existing: if existing:
# 验证用户是否存在 # 验证用户是否存在
user_check = await sor.R('users', {'id': existing[0].userid}) user_check = await sor.R('users', {'id': existing[0].userid})
if not user_check: if not user_check:
# 脏数据downapikey 存在但用户已删除,清理后重新创建 # 脏数据downapikey 存在但用户已删除,清理后重新创建
await sor.D('downapikey', {'id': existing[0].id}) await sor.D('downapikey', {'id': existing[0].id})
existing = None existing = None
else: else:
apikey = password_decode(existing[0].apikey) apikey = password_decode(existing[0].apikey)
return json.dumps({ return json.dumps({
'status': 'success', 'status': 'success',
'data': [{ 'data': [{
'user_id': user_id, 'user_id': user_id,
'username': user_data.get('username', ''), 'username': user_data.get('username', ''),
'apikey': apikey, 'apikey': apikey,
'status': 'existing' 'status': 'existing'
}] }]
}, ensure_ascii=False) }, ensure_ascii=False)
# 创建新apikey # 创建新apikey
apikey_id = getID() apikey_id = getID()
apikey_value = getID() apikey_value = getID()
ns = { ns = {
'id': apikey_id, 'id': apikey_id,
'dappid': dappid, 'dappid': dappid,
'dorgid': user_orgid, 'dorgid': user_orgid,
'duserid': user_id, 'duserid': user_id,
'orgid': user_orgid, 'orgid': user_orgid,
'userid': user_id, 'userid': user_id,
'apikey': password_encode(apikey_value), 'apikey': password_encode(apikey_value),
'enabled': '1', 'enabled': '1',
'created_at': datetime.now().strftime('%Y-%m-%d'), 'created_at': datetime.now().strftime('%Y-%m-%d'),
'expired_date': '9999-12-31' 'expired_date': '9999-12-31'
} }
await sor.C('downapikey', ns) await sor.C('downapikey', ns)
return json.dumps({ return json.dumps({
'status': 'success', 'status': 'success',
'data': [{ 'data': [{
'user_id': user_id, 'user_id': user_id,
'username': user_data.get('username', ''), 'username': user_data.get('username', ''),
'apikey': apikey_value, 'apikey': apikey_value,
'status': 'created' 'status': 'created'
}] }]
}, ensure_ascii=False) }, ensure_ascii=False)
elif action == 'batch': elif action == 'batch':
# 批量用户同步 # 批量用户同步
users_list = params_kw.get('users', []) users_list = params_kw.get('users', [])
if not users_list: if not users_list:
return json.dumps({ return json.dumps({
'status': 'error', 'status': 'error',
'message': 'users参数必填用户对象数组' 'message': 'users参数必填用户对象数组'
}, ensure_ascii=False) }, ensure_ascii=False)
result_data = [] result_data = []
for user_data in users_list: for user_data in users_list:
user_id = user_data.get('id', '') user_id = user_data.get('id', '')
user_orgid = user_data.get('orgid', '') user_orgid = user_data.get('orgid', '')
if not user_id or not user_orgid: if not user_id or not user_orgid:
result_data.append({ result_data.append({
'user_id': user_id, 'user_id': user_id,
'status': 'error', 'status': 'error',
'message': 'user.id和user.orgid必填' 'message': 'user.id和user.orgid必填'
}) })
continue continue
# 如果dapi模块提供了create_user_apikey函数直接调用 # 如果dapi模块提供了create_user_apikey函数直接调用
if create_apikey_func: if create_apikey_func:
result = await create_user_apikey( result = await create_user_apikey(
sor, sor,
dappid, dappid,
user_id, user_id,
user_orgid, user_orgid,
**{k: v for k, v in user_data.items() if k not in ['id', 'orgid']} **{k: v for k, v in user_data.items() if k not in ['id', 'orgid']}
) )
result_data.append({ result_data.append({
'user_id': user_id, 'user_id': user_id,
'username': user_data.get('username', ''), 'username': user_data.get('username', ''),
'apikey': result.get('apikey', ''), 'apikey': result.get('apikey', ''),
'status': result.get('message', 'created'), 'status': result.get('message', 'created'),
'result_status': result.get('status') 'result_status': result.get('status')
}) })
else: else:
# 检查apikey是否已存在 # 检查apikey是否已存在
existing = await sor.R('downapikey', { existing = await sor.R('downapikey', {
'dappid': dappid, 'dappid': dappid,
'duserid': user_id, 'duserid': user_id,
'dorgid': user_orgid 'dorgid': user_orgid
}) })
if existing: if existing:
# 验证用户是否存在 # 验证用户是否存在
user_check = await sor.R('users', {'id': existing[0].userid}) user_check = await sor.R('users', {'id': existing[0].userid})
if not user_check: if not user_check:
# 脏数据,清理后重新创建 # 脏数据,清理后重新创建
await sor.D('downapikey', {'id': existing[0].id}) await sor.D('downapikey', {'id': existing[0].id})
existing = None existing = None
else: else:
apikey = password_decode(existing[0].apikey) apikey = password_decode(existing[0].apikey)
result_data.append({ result_data.append({
'user_id': user_id, 'user_id': user_id,
'username': user_data.get('username', ''), 'username': user_data.get('username', ''),
'apikey': apikey, 'apikey': apikey,
'status': 'existing' 'status': 'existing'
}) })
continue continue
else:
# 创建新apikey # 创建新apikey
apikey_id = getID() apikey_id = getID()
apikey_value = getID() apikey_value = getID()
ns = { ns = {
'id': apikey_id, 'id': apikey_id,
'dappid': dappid, 'dappid': dappid,
'dorgid': user_orgid, 'dorgid': user_orgid,
'duserid': user_id, 'duserid': user_id,
'orgid': user_orgid, 'orgid': user_orgid,
'userid': user_id, 'userid': user_id,
'apikey': password_encode(apikey_value), 'apikey': password_encode(apikey_value),
'enabled': '1', 'enabled': '1',
'created_at': datetime.now().strftime('%Y-%m-%d'), 'created_at': datetime.now().strftime('%Y-%m-%d'),
'expired_date': '9999-12-31' 'expired_date': '9999-12-31'
} }
await sor.C('downapikey', ns) await sor.C('downapikey', ns)
result_data.append({ result_data.append({
'user_id': user_id, 'user_id': user_id,
'username': user_data.get('username', ''), 'username': user_data.get('username', ''),
'apikey': apikey_value, 'apikey': apikey_value,
'status': 'created' 'status': 'created'
}) })
return json.dumps({ return json.dumps({
'status': 'success', 'status': 'success',
'data': result_data, 'data': result_data,
'total': len(result_data) 'total': len(result_data)
}, ensure_ascii=False) }, ensure_ascii=False)
else: else:
return json.dumps({ return json.dumps({
'status': 'error', 'status': 'error',
'message': 'action参数必须是single或batch' 'message': 'action参数必须是single或batch'
}, ensure_ascii=False) }, ensure_ascii=False)