diff --git a/backend/app/admin/api/v1/wx.py b/backend/app/admin/api/v1/wx.py index ff23f5d..22a1c14 100755 --- a/backend/app/admin/api/v1/wx.py +++ b/backend/app/admin/api/v1/wx.py @@ -8,7 +8,7 @@ from backend.app.admin.schema.wx import WxLoginRequest, TokenResponse, UserInfo, from backend.app.admin.service.wx_service import wx_service from backend.common.response.response_schema import response_base, ResponseSchemaModel -from backend.common.security.jwt import wx_openid_authentication, create_access_token, create_refresh_token +from backend.common.security.jwt import wx_openid_authentication, create_access_token, create_refresh_token, DependsJwtAuth from backend.app.admin.schema.token import BasicWxUserInfo, WxSettings, PointsBrief from backend.app.admin.service.points_service import points_service from backend.utils.timezone import timezone @@ -113,55 +113,8 @@ async def get_current_user(request: Request, response: Response) -> ResponseSche return response_base.success(data=data) -# @router.put("/settings", summary="更新用户设置", dependencies=[DependsJwtAuth]) -# async def update_user_settings( -# request: Request, -# settings: UpdateUserSettingsRequest -# ) -> ResponseSchemaModel[None]: -# """ -# 更新用户设置 -# """ -# -# # 更新用户设置 -# await wx_service.update_user_settings( -# user_id=request.user.id, -# dict_level=settings.dict_level -# ) -# -# return response_base.success() -# -# -# @router.get("/settings", summary="获取用户设置", dependencies=[DependsJwtAuth]) -# async def get_user_settings( -# request: Request -# ) -> ResponseSchemaModel[GetUserSettingsResponse]: -# """ -# 获取用户设置 -# """ -# # 从请求中获取用户ID(实际项目中应该从JWT token中获取) -# user_id = getattr(request.state, 'user_id', None) -# if not user_id: -# raise HTTPException(status_code=401, detail="未授权访问") -# -# # 获取用户信息 -# async with async_db_session() as db: -# user = await wx_user_dao.get(db, user_id) -# if not user: -# raise HTTPException(status_code=404, detail="用户不存在") -# -# # 提取设置信息 -# dict_level = None -# if user.profile and isinstance(user.profile, dict): -# dict_level_value = user.profile.get("dict_level") -# if dict_level_value: -# # 将字符串值转换为枚举值 -# try: -# dict_level = DictLevel(dict_level_value) -# except ValueError: -# pass # 无效值,保持为None -# -# response_data = GetUserSettingsResponse( -# dict_level=dict_level -# ) -# -# return response_base.success(data=response_data) +# @router.put('/agree-terms', summary='同意服务条款时间', dependencies=[DependsJwtAuth]) +# async def agree_terms(request: Request) -> ResponseSchemaModel[dict]: +# ts = await wx_service.update_agree_terms(user_id=request.user.id) +# return response_base.success(data={"agree_terms": ts}) + diff --git a/backend/app/admin/service/file_service.py b/backend/app/admin/service/file_service.py index 34a79fd..af57cb3 100755 --- a/backend/app/admin/service/file_service.py +++ b/backend/app/admin/service/file_service.py @@ -134,7 +134,7 @@ class FileService: ) update_params = UpdateFileParam( - storage_path=avif_key, + storage_path=storage_path, metadata_info=meta, details={ "key": key, @@ -143,7 +143,7 @@ class FileService: } ) await file_dao.update(db, file_id, update_params) - db_file.storage_path = avif_key + db_file.storage_path = storage_path else: # 数据库存储,将文件数据保存到数据库 db_file.file_data = content diff --git a/backend/app/admin/service/wx_service.py b/backend/app/admin/service/wx_service.py index a9b739c..b709829 100755 --- a/backend/app/admin/service/wx_service.py +++ b/backend/app/admin/service/wx_service.py @@ -47,7 +47,8 @@ class WxAuthService: session_key=session_key, profile={ 'dict_level': DictLevel.LEVEL1.value, - 'dict_category': DictCategory.GENERAL.value + 'dict_category': DictCategory.GENERAL.value, + 'agree_terms': timezone.now().isoformat(), }, ) await wx_user_dao.add(db, user) @@ -154,5 +155,17 @@ class WxAuthService: # 使用新的方法更新用户资料,会自动更新updated_time字段 await wx_user_dao.update_user_profile(db, user_id, user.profile) + @staticmethod + async def update_agree_terms(*, user_id: int) -> str: + async with async_db_session.begin() as db: + user = await wx_user_dao.get(db, user_id) + if not user: + raise ValueError("用户不存在") + profile = user.profile or {} + ts = timezone.now().isoformat() + profile["agree_terms"] = ts + await wx_user_dao.update_user_profile(db, user_id, profile) + return ts + wx_service: WxAuthService = WxAuthService()