| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- from backend.modules.database.connection import DatabaseConnection
- from backend.modules.database.operations import DatabaseOperations
- from backend.modules.database.models import TextRecord, User
- from backend.utils.logger_config import setup_logger
- from typing import Optional, List, Dict, Any
- import os
- logger = setup_logger(__name__)
- """
- 实现用户文本模板管理服务:用户创建、编辑、删除、查找文本模板
- """
- class UserTemplateService:
- def __init__(self):
- self.db_ops = DatabaseOperations()
- def create_text_template(self, user_id: int, text_type: str, text_name: str, text_label: str, text_content: str) -> dict:
- """
- 创建文本模板
- """
- logger.info(f"用户{user_id}创建文本模板: {text_name}, 类型: {text_type}")
- user = self.db_ops.get_user_by_id(user_id)
- if not user:
- return {"success": False, "error": "用户不存在"}
-
- text_record = self.db_ops.create_text_record(
- user_id=user_id,
- text_type=text_type,
- text_name=text_name,
- text_label=text_label,
- text_content=text_content
- )
- if not text_record:
- return {"success": False, "error": "数据库记录失败"}
- return {
- "success": True,
- "text_id": text_record['id'],
- "text_name": text_name,
- "text_label": text_label,
- "text_content": text_content
- }
- def list_text_templates(self, user_id: int, text_type: Optional[str] = None, page: int = 1, page_size: int = 20) -> dict:
- """
- 获取用户文本模板列表
- """
- logger.info(f"获取用户{user_id}的文本模板列表, 类型: {text_type}, 页码: {page}")
- user = self.db_ops.get_user_by_id(user_id)
- if not user:
- return {"success": False, "error": "用户不存在"}
-
- result = self.db_ops.get_user_text_records(user_id, text_type, page, page_size)
- return {
- "success": True,
- "templates": result.get("records", []),
- "total": result.get("total", 0),
- "page": result.get("page", 1),
- "page_size": result.get("page_size", 20),
- "total_pages": result.get("total_pages", 1)
- }
- def delete_text_template(self, user_id: int, text_id: int) -> dict:
- """
- 删除文本模板
- """
- logger.info(f"用户{user_id}删除文本模板: {text_id}")
- user = self.db_ops.get_user_by_id(user_id)
- if not user:
- return {"success": False, "error": "用户不存在"}
-
- text_record = self.db_ops.get_text_record_by_id(text_id)
- if not text_record:
- return {"success": False, "error": "文本模板不存在"}
- if text_record['user_id'] != user_id:
- return {"success": False, "error": "无权删除他人模板"}
- success = self.db_ops.delete_text_record(text_id)
- if not success:
- return {"success": False, "error": "文本模板删除失败"}
- return {"success": True, "message": "文本模板删除成功"}
-
- def update_text_template(self, user_id: int, text_id: int, data: dict) -> Dict[str, Any]:
- """
- 更新文本模板
- """
- logger.info(f"用户{user_id}更新文本模板: {text_id}")
- user = self.db_ops.get_user_by_id(user_id)
- if not user:
- return {"success": False, "error": "用户不存在"}
-
- text_record = self.db_ops.get_text_record_by_id(text_id)
- if not text_record:
- return {"success": False, "error": "文本模板不存在"}
- if text_record['user_id'] != user_id:
- return {"success": False, "error": "无权更新他人模板"}
- success = self.db_ops.update_text_record(text_id, **data)
- if not success:
- return {"success": False, "error": "数据库更新失败"}
- return {"success": True, "message": "文本模板更新成功"}
- user_template_service = UserTemplateService()
|