2025-01-23 11:13:52 +00:00
|
|
|
from tortoise import fields
|
|
|
|
|
from typing_extensions import Self
|
|
|
|
|
from src.my_sqlite.data_init.db_connect import Model
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ToDoList(Model):
|
|
|
|
|
id = fields.IntField(primary_key=True, generated=True, auto_increment=True)
|
|
|
|
|
user_id = fields.CharField(max_length=100,description="用户member_openid")
|
|
|
|
|
content = fields.TextField()
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table = "user_todo_list"
|
|
|
|
|
table_description = "用户待办表"
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
async def _get_data(cls, user_id: str | None) -> list | None:
|
|
|
|
|
"""
|
|
|
|
|
获取对应用户的待办
|
|
|
|
|
"""
|
|
|
|
|
if not user_id:
|
|
|
|
|
print("用户id为空")
|
|
|
|
|
else:
|
|
|
|
|
return (
|
|
|
|
|
await cls.filter(user_id=user_id).order_by("id").values_list("id","user_id","content")
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
async def get_todo_list(cls, user_id: str | None) -> Self | None:
|
|
|
|
|
todo_table = await cls._get_data(user_id)
|
|
|
|
|
todo_list = [row[2] for row in todo_table]
|
|
|
|
|
# print(todo_list)
|
|
|
|
|
if todo_list:
|
|
|
|
|
return todo_list
|
|
|
|
|
else:
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
@classmethod
|
2025-01-23 13:14:28 +00:00
|
|
|
async def insert_todo_list(cls, user_id: str | None, content: str | None) -> bool:
|
|
|
|
|
|
|
|
|
|
is_user = await UserList.get_user_data(user_id)
|
|
|
|
|
if not is_user:
|
|
|
|
|
await UserList.insert_user(user_id)
|
|
|
|
|
|
|
|
|
|
if content.lstrip(" ") == "":
|
|
|
|
|
return False
|
2025-01-23 11:13:52 +00:00
|
|
|
data = {
|
|
|
|
|
"user_id": user_id,
|
|
|
|
|
"content": content
|
|
|
|
|
}
|
|
|
|
|
await cls.create(**data)
|
2025-01-23 13:14:28 +00:00
|
|
|
return True
|
2025-01-23 11:13:52 +00:00
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
async def delete_user_todo(cls, user_id: str | None, del_line_num: int | None) -> int:
|
|
|
|
|
todo_table = await cls._get_data(user_id)
|
|
|
|
|
|
2025-01-23 13:14:28 +00:00
|
|
|
if not todo_table:
|
2025-01-23 11:13:52 +00:00
|
|
|
return -1
|
|
|
|
|
|
|
|
|
|
max_length = len(todo_table)
|
|
|
|
|
if del_line_num > max_length or del_line_num < 1:
|
|
|
|
|
return 1
|
|
|
|
|
|
|
|
|
|
del_id = todo_table[del_line_num - 1][0]
|
|
|
|
|
await cls.filter(id=del_id).delete()
|
|
|
|
|
return 0
|
|
|
|
|
|
|
|
|
|
|
2025-01-23 13:14:28 +00:00
|
|
|
class UserList(Model):
|
|
|
|
|
user_id = fields.CharField(max_length=100, description="用户member_openid")
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
table = "user_list"
|
|
|
|
|
table_description = "用户表"
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
async def get_user_data(cls, user_id: str | None) -> list | None:
|
|
|
|
|
if not user_id:
|
|
|
|
|
print("用户id为空")
|
|
|
|
|
else:
|
|
|
|
|
return (
|
|
|
|
|
await cls.filter(user_id=user_id).order_by("id").values_list("user_id")
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
async def insert_user(cls, user_id: str | None):
|
|
|
|
|
data = {
|
|
|
|
|
"user_id": user_id
|
|
|
|
|
}
|
|
|
|
|
await cls.create(**data)
|
|
|
|
|
|