117 lines
3.8 KiB
Python
117 lines
3.8 KiB
Python
from datetime import date
|
|
from tinydb import TinyDB, Query
|
|
|
|
class User:
|
|
def __init__(self, db_file='user_data.json'):
|
|
"""初始化用户管理,自动打开并加载 JSON 数据文件。"""
|
|
self.db_file = db_file
|
|
self.db = TinyDB(self.db_file)
|
|
self.user_query = Query()
|
|
|
|
def add_user(self, user_data):
|
|
"""添加新的用户"""
|
|
if not self.db.search(self.user_query.user_id == user_data['user_id']):
|
|
self.db.insert(user_data)
|
|
else:
|
|
print(f"User with ID {user_data['user_id']} already exists.")
|
|
|
|
def get_user(self, user_id):
|
|
"""根据 user_id 获取用户信息"""
|
|
result = self.db.search(self.user_query.user_id == user_id)
|
|
return result[0] if result else None
|
|
|
|
def update_user(self, user_id, updated_data):
|
|
"""更新用户信息"""
|
|
self.db.update(updated_data, self.user_query.user_id == user_id)
|
|
|
|
def delete_user(self, user_id):
|
|
"""删除用户"""
|
|
self.db.remove(self.user_query.user_id == user_id)
|
|
|
|
def get_all_users(self):
|
|
"""获取所有用户"""
|
|
return self.db.all()
|
|
|
|
|
|
# 用户数据结构示例
|
|
# user_data = {
|
|
# 'user_id': 'user123',
|
|
# 'select_course': ['course1', 'course2'],
|
|
# 'course_process_dict': {
|
|
# 'course1': {
|
|
# 'course_process': {
|
|
# 'lesson_processs': [
|
|
# {
|
|
# 'lesson_process': [
|
|
# {
|
|
# 'chapter_info': {
|
|
# 'dialog': ['This is chapter 1 dialog'],
|
|
# 'score': 85,
|
|
# 'is_rebuttal': True,
|
|
# 'rebuttal_score': 90
|
|
# }
|
|
# },
|
|
# {
|
|
# 'chapter_info': {
|
|
# 'dialog': ['This is chapter 2 dialog'],
|
|
# 'score': 75,
|
|
# 'is_rebuttal': False,
|
|
# 'rebuttal_score': 0
|
|
# }
|
|
# }
|
|
# ]
|
|
# }
|
|
# ],
|
|
# 'course_put_in_date': date(2024, 1, 1),
|
|
# 'course_last_study_date': date(2024, 12, 25),
|
|
# 'course_total_study_time': 120 # 总学习时间:分钟
|
|
# }
|
|
# },
|
|
# 'course2': {
|
|
# 'course_process': {
|
|
# 'lesson_processs': [
|
|
# {
|
|
# 'lesson_process': [
|
|
# {
|
|
# 'chapter_info': {
|
|
# 'dialog': ['This is course2 chapter 1 dialog'],
|
|
# 'score': 88,
|
|
# 'is_rebuttal': False,
|
|
# 'rebuttal_score': 0
|
|
# }
|
|
# }
|
|
# ]
|
|
# }
|
|
# ],
|
|
# 'course_put_in_date': date(2024, 2, 1),
|
|
# 'course_last_study_date': date(2024, 12, 24),
|
|
# 'course_total_study_time': 90
|
|
# }
|
|
# }
|
|
# }
|
|
# }
|
|
|
|
# updated_user_data = {
|
|
# 'select_course': ['course1', 'course3']
|
|
# }
|
|
|
|
# # 创建 User 实例
|
|
# user_list = User()
|
|
|
|
# # 添加用户
|
|
# user_list.add_user(user_data)
|
|
|
|
# # 获取用户信息
|
|
# user = user_list.get_user('user123')
|
|
# print(user)
|
|
|
|
# # 更新用户选择的课程
|
|
# user_list.update_user('user123', updated_user_data)
|
|
|
|
# # 获取所有用户
|
|
# all_users = user_list.get_all_users()
|
|
# print(all_users)
|
|
|
|
# # 删除用户
|
|
# user_list.delete_user('user123')
|