update_delete_user_logic
This commit is contained in:
		
							parent
							
								
									773fd5a9d4
								
							
						
					
					
						commit
						0378834133
					
				@ -3,7 +3,7 @@
 | 
			
		||||
from app.models.user import User, Role, db
 | 
			
		||||
from sqlalchemy import or_
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
 | 
			
		||||
from sqlalchemy import text
 | 
			
		||||
 | 
			
		||||
class UserService:
 | 
			
		||||
    @staticmethod
 | 
			
		||||
@ -111,27 +111,21 @@ class UserService:
 | 
			
		||||
            return False, "用户不存在"
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            # 检查是否有未归还的图书
 | 
			
		||||
            # 检查是否有未归还的图书 - 使用SQLAlchemy的text函数
 | 
			
		||||
            active_borrows_count = db.session.execute(
 | 
			
		||||
                "SELECT COUNT(*) FROM borrow_records WHERE user_id = :user_id AND return_date IS NULL",
 | 
			
		||||
                text("SELECT COUNT(*) FROM borrow_records WHERE user_id = :user_id AND return_date IS NULL"),
 | 
			
		||||
                {"user_id": user_id}
 | 
			
		||||
            ).scalar()
 | 
			
		||||
 | 
			
		||||
            if active_borrows_count > 0:
 | 
			
		||||
                return False, f"无法删除:该用户还有 {active_borrows_count} 本未归还的图书"
 | 
			
		||||
 | 
			
		||||
            # 删除用户相关的通知记录
 | 
			
		||||
            # 删除用户相关的通知记录 - 使用SQLAlchemy的text函数
 | 
			
		||||
            db.session.execute(
 | 
			
		||||
                "DELETE FROM notifications WHERE user_id = :user_id OR sender_id = :user_id",
 | 
			
		||||
                text("DELETE FROM notifications WHERE user_id = :user_id OR sender_id = :user_id"),
 | 
			
		||||
                {"user_id": user_id}
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
            # 删除用户相关的日志记录(可选,取决于是否需要保留审计记录)
 | 
			
		||||
            # db.session.execute(
 | 
			
		||||
            #     "DELETE FROM logs WHERE user_id = :user_id",
 | 
			
		||||
            #     {"user_id": user_id}
 | 
			
		||||
            # )
 | 
			
		||||
 | 
			
		||||
            # 物理删除用户
 | 
			
		||||
            db.session.delete(user)
 | 
			
		||||
            db.session.commit()
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user