diff --git a/video-gen-api/app/api/v1/upload_material.py b/video-gen-api/app/api/v1/upload_material.py index e906d3ba..761dce8b 100644 --- a/video-gen-api/app/api/v1/upload_material.py +++ b/video-gen-api/app/api/v1/upload_material.py @@ -16,6 +16,8 @@ from app.models.user import User from app.models.pre_test_template import PreTestTemplate from app.models.upload_task import UploadTask from app.models.generated_resource import GeneratedResource +from app.models.user_oauth import UserOAuth +from app.models.user_oauth_account import UserOAuthAccount from app.services.upload_material_service import upload_material_to_platform from app.services.upload_queue import upload_queue from app.services.upload_queue import upload_queue @@ -201,6 +203,54 @@ async def async_batch_upload_material( "errors": [], } + +@router.post( + "/oauth_account_list", + summary="获取授权账户列表", + description="获取用户授权账户列表", +) +async def async_get_oauth_account_list( + current_user: User = Depends(get_current_user), + db: AsyncSession = Depends(get_db), +) -> Any | dict: + try: + result = await db.execute( + select( + UserOAuthAccount.advertiser_id, + UserOAuthAccount.advertiser_name, + UserOAuthAccount.oauth_id, + UserOAuth.open_type, + ).join( + UserOAuth, + UserOAuth.id == UserOAuthAccount.oauth_id + ).where( + UserOAuth.user_id == current_user.id, + UserOAuth.deleted_at.is_(None), + UserOAuthAccount.deleted_at.is_(None), + ) + ) + + accounts = result.all() + + return { + "code": 0, + "message": "查询成功", + "data": [ + { + "advertiser_id": account.advertiser_id, + "advertiser_name": account.advertiser_name, + "oauth_id": account.oauth_id, + "open_type": account.open_type, + } + for account in accounts + ], + } + except Exception as e: + return { + "code": 1, + "message": str(e), + } + @router.post( "/batch-update-filename", summary="批量修改资源文件名", diff --git a/video-gen-api/app/utils/douyinRequest.py b/video-gen-api/app/utils/douyinRequest.py index 6ebf0b5b..6943f398 100644 --- a/video-gen-api/app/utils/douyinRequest.py +++ b/video-gen-api/app/utils/douyinRequest.py @@ -255,11 +255,11 @@ class DouyinRequest: else: options_log[key] = value - res = json.dumps(data) if 'data' in locals() else '' + res = json.dumps(data, ensure_ascii=False) if 'data' in locals() else '' logger.error( f'DouYin API request failed after {request_count} retries. ' - f'url:{url};method:{method};oauth_id:{oauth_id};options:{json.dumps(options_log)};response:{res}' + f'url:{url};method:{method};oauth_id:{oauth_id};options:{json.dumps(options_log, ensure_ascii=False)};response:{res}' ) if 'data' in locals() and data.get('code', 0) != 0: