feat: 新增饮食记录和分析功能
- 创建饮食记录相关的数据库模型、DTO和API接口,支持用户手动添加和AI视觉识别记录饮食。 - 实现饮食分析服务,提供营养分析和健康建议,优化AI教练服务以集成饮食分析功能。 - 更新用户控制器,添加饮食记录的增删查改接口,增强用户饮食管理体验。 - 提供详细的API使用指南和数据库创建脚本,确保功能的完整性和可用性。
This commit is contained in:
121
sql-scripts/pilates-data-import.sql
Normal file
121
sql-scripts/pilates-data-import.sql
Normal file
@@ -0,0 +1,121 @@
|
||||
-- 普拉提分类和动作数据导入 SQL
|
||||
-- 执行前请确保数据库表结构已更新
|
||||
|
||||
-- 清空现有数据(可选,根据实际情况决定是否执行)
|
||||
-- DELETE FROM t_exercises;
|
||||
-- DELETE FROM t_exercise_categories;
|
||||
|
||||
-- 插入普拉提分类数据
|
||||
INSERT INTO t_exercise_categories (key, name, pilates_type, equipment_name, sort_order, created_at, updated_at) VALUES
|
||||
-- 垫上普拉提
|
||||
('mat_pilates', '垫上普拉提', 'mat_pilates', NULL, 1, NOW(), NOW()),
|
||||
|
||||
-- 器械普拉提
|
||||
('reformer', '核心床', 'equipment_pilates', '核心床', 2, NOW(), NOW()),
|
||||
('cadillac', '凯迪拉克', 'equipment_pilates', '凯迪拉克', 3, NOW(), NOW()),
|
||||
('chair', '普拉提椅', 'equipment_pilates', '普拉提椅', 4, NOW(), NOW()),
|
||||
('barrel', '普拉提桶', 'equipment_pilates', '普拉提桶', 5, NOW(), NOW());
|
||||
|
||||
-- 插入垫上普拉提动作数据
|
||||
INSERT INTO t_exercises (
|
||||
key, name, category_name, description, target_muscle_groups, equipment_name,
|
||||
beginner_reps, beginner_sets, breathing_cycles, hold_duration, special_instructions,
|
||||
category_key, sort_order, created_at, updated_at
|
||||
) VALUES
|
||||
('mat_hundred', '百次拍打', '垫上普拉提', '经典的普拉提动作,通过有节奏的手臂拍打配合呼吸来激活核心', '核心肌群、呼吸肌群、肩部稳定性', NULL, NULL, NULL, 10, NULL, '10个呼吸循环', 'mat_pilates', 1, NOW(), NOW()),
|
||||
|
||||
('mat_roll_up', '卷起', '垫上普拉提', '从仰卧位缓慢卷起至坐姿,锻炼脊柱逐节控制能力', '核心肌群、脊柱灵活性、腘绳肌柔韧性', NULL, 6, NULL, NULL, NULL, NULL, 'mat_pilates', 2, NOW(), NOW()),
|
||||
|
||||
('mat_single_leg_circle', '单腿画圈', '垫上普拉提', '单腿做圆周运动,保持骨盆稳定', '核心稳定性、髋关节灵活性、股四头肌、腘绳肌、臀肌', NULL, 5, NULL, NULL, NULL, '每条腿每个方向5次', 'mat_pilates', 3, NOW(), NOW()),
|
||||
|
||||
('mat_rolling_like_ball', '滚球', '垫上普拉提', '保持紧凑姿势前后滚动,挑战平衡和控制', '核心肌群、脊柱柔韧性、平衡感', NULL, 8, NULL, NULL, NULL, '6-8次', 'mat_pilates', 4, NOW(), NOW()),
|
||||
|
||||
('mat_single_leg_stretch', '单腿伸展', '垫上普拉提', '交替单腿伸展,保持上身抬起', '核心肌群、髋屈肌、股四头肌', NULL, 10, NULL, NULL, NULL, '每侧8-10次', 'mat_pilates', 5, NOW(), NOW()),
|
||||
|
||||
('mat_double_leg_stretch', '双腿伸展', '垫上普拉提', '双腿和手臂同时伸展,回到起始位置', '核心肌群、髋屈肌、股四头肌、肩部稳定性', NULL, 10, NULL, NULL, NULL, '6-10次', 'mat_pilates', 6, NOW(), NOW()),
|
||||
|
||||
('mat_spine_stretch', '脊柱伸展', '垫上普拉提', '坐姿前屈,逐节伸展脊柱', '脊柱柔韧性、腘绳肌伸展、核心控制', NULL, 6, NULL, NULL, NULL, NULL, 'mat_pilates', 7, NOW(), NOW()),
|
||||
|
||||
('mat_saw', '锯式', '垫上普拉提', '坐姿扭转配合前屈,增强脊柱旋转能力', '腹斜肌、背部伸肌、脊柱旋转灵活性', NULL, 6, NULL, NULL, NULL, '每侧6次', 'mat_pilates', 8, NOW(), NOW()),
|
||||
|
||||
('mat_swan', '天鹅式', '垫上普拉提', '俯卧位脊柱后伸,强化背部肌群', '背部伸肌、臀肌、腘绳肌', NULL, 6, NULL, NULL, NULL, NULL, 'mat_pilates', 9, NOW(), NOW()),
|
||||
|
||||
('mat_shoulder_bridge', '肩桥', '垫上普拉提', '仰卧抬臀,激活后链肌群', '臀肌、腘绳肌、下背部、脊柱灵活性', NULL, 6, NULL, NULL, NULL, NULL, 'mat_pilates', 10, NOW(), NOW());
|
||||
|
||||
-- 插入核心床(Reformer)动作数据
|
||||
INSERT INTO t_exercises (
|
||||
key, name, category_name, description, target_muscle_groups, equipment_name,
|
||||
beginner_reps, beginner_sets, breathing_cycles, hold_duration, special_instructions,
|
||||
category_key, sort_order, created_at, updated_at
|
||||
) VALUES
|
||||
('reformer_footwork', '脚部练习系列', '核心床', '在核心床上进行各种脚部位置的推蹬练习', '腿部、足部、核心稳定性', '核心床', 10, NULL, NULL, NULL, NULL, 'reformer', 1, NOW(), NOW()),
|
||||
|
||||
('reformer_hundred', '百次拍打', '核心床', '在核心床上进行百次拍打,增加阻力挑战', '核心肌群、呼吸肌群、上身耐力', '核心床', NULL, NULL, 10, NULL, '10个呼吸循环', 'reformer', 2, NOW(), NOW()),
|
||||
|
||||
('reformer_bridge', '桥式', '核心床', '在核心床上进行桥式动作,利用弹簧阻力', '臀肌、腘绳肌、脊柱关节', '核心床', 10, NULL, NULL, NULL, '6-10次', 'reformer', 3, NOW(), NOW()),
|
||||
|
||||
('reformer_straps', '脚套带练习', '核心床', '使用脚套带进行各种腿部和髋部练习', '髋部灵活性、骨盆稳定性、身体控制、内收肌', '核心床', 10, NULL, NULL, NULL, '8-10次', 'reformer', 4, NOW(), NOW()),
|
||||
|
||||
('reformer_elephant', '象式', '核心床', '四点跪撑位置进行推拉练习', '核心肌群、腘绳肌、背部伸肌、肩部稳定性', '核心床', 10, NULL, NULL, NULL, '8-10次', 'reformer', 5, NOW(), NOW()),
|
||||
|
||||
('reformer_knee_stretch', '跪姿伸展系列', '核心床', '跪姿位置进行多种伸展动作', '核心肌群、髋部灵活性、肩部控制', '核心床', 10, NULL, NULL, NULL, NULL, 'reformer', 6, NOW(), NOW());
|
||||
|
||||
-- 插入凯迪拉克(Cadillac)动作数据
|
||||
INSERT INTO t_exercises (
|
||||
key, name, category_name, description, target_muscle_groups, equipment_name,
|
||||
beginner_reps, beginner_sets, breathing_cycles, hold_duration, special_instructions,
|
||||
category_key, sort_order, created_at, updated_at
|
||||
) VALUES
|
||||
('cadillac_leg_springs', '腿部弹簧系列', '凯迪拉克', '使用腿部弹簧进行各种腿部强化练习', '腘绳肌、股四头肌、臀肌、髋屈肌、内收肌', '凯迪拉克', 20, NULL, NULL, NULL, '10-20次', 'cadillac', 1, NOW(), NOW()),
|
||||
|
||||
('cadillac_arm_springs', '手臂弹簧系列', '凯迪拉克', '使用手臂弹簧进行上身力量训练', '胸部、肩部、上背部、手臂', '凯迪拉克', 15, NULL, NULL, NULL, '10-15次', 'cadillac', 2, NOW(), NOW()),
|
||||
|
||||
('cadillac_roll_down_bar', '滚背杆卷下', '凯迪拉克', '使用滚背杆进行脊柱逐节控制练习', '腹部肌肉、脊柱灵活性', '凯迪拉克', 12, NULL, NULL, NULL, '8-12次', 'cadillac', 3, NOW(), NOW()),
|
||||
|
||||
('cadillac_push_through_bar', '推杆', '凯迪拉克', '推拉横杆进行全身协调练习', '肩部、核心、背部', '凯迪拉克', 12, NULL, NULL, NULL, '8-12次', 'cadillac', 4, NOW(), NOW());
|
||||
|
||||
-- 插入普拉提椅(Chair)动作数据
|
||||
INSERT INTO t_exercises (
|
||||
key, name, category_name, description, target_muscle_groups, equipment_name,
|
||||
beginner_reps, beginner_sets, breathing_cycles, hold_duration, special_instructions,
|
||||
category_key, sort_order, created_at, updated_at
|
||||
) VALUES
|
||||
('chair_seated_march', '坐姿行进', '普拉提椅', '坐在椅子上进行交替抬腿练习', '核心肌群、髋屈肌', '普拉提椅', 12, NULL, NULL, NULL, '每侧10-12次', 'chair', 1, NOW(), NOW()),
|
||||
|
||||
('chair_seated_leg_lift', '坐姿抬腿', '普拉提椅', '坐姿单腿伸展练习', '股四头肌、核心肌群', '普拉提椅', 12, NULL, NULL, NULL, '每侧10-12次', 'chair', 2, NOW(), NOW()),
|
||||
|
||||
('chair_seated_arm_circles', '坐姿手臂画圈', '普拉提椅', '坐姿手臂做圆周运动', '肩部、上背部、手臂', '普拉提椅', 12, NULL, NULL, NULL, '前后各10-12次', 'chair', 3, NOW(), NOW()),
|
||||
|
||||
('chair_spine_twist', '脊柱扭转', '普拉提椅', '坐姿脊柱旋转练习', '腹斜肌、脊柱旋转肌', '普拉提椅', 10, NULL, NULL, NULL, '每侧8-10次', 'chair', 4, NOW(), NOW()),
|
||||
|
||||
('chair_squat', '椅子深蹲', '普拉提椅', '使用椅子进行深蹲练习', '臀肌、股四头肌、腘绳肌、核心', '普拉提椅', 12, NULL, NULL, NULL, '10-12次', 'chair', 5, NOW(), NOW());
|
||||
|
||||
-- 插入普拉提桶(Barrel)动作数据
|
||||
INSERT INTO t_exercises (
|
||||
key, name, category_name, description, target_muscle_groups, equipment_name,
|
||||
beginner_reps, beginner_sets, breathing_cycles, hold_duration, special_instructions,
|
||||
category_key, sort_order, created_at, updated_at
|
||||
) VALUES
|
||||
('barrel_spine_stretch', '脊柱伸展', '普拉提桶', '在桶上进行脊柱后伸练习', '核心肌群、脊柱伸肌、背部肌肉', '普拉提桶', 12, 3, NULL, NULL, '10-12次,2-3组', 'barrel', 1, NOW(), NOW()),
|
||||
|
||||
('barrel_mermaid', '美人鱼伸展', '普拉提桶', '侧坐在桶上进行侧向伸展', '核心肌群、腹斜肌、侧向柔韧性', '普拉提桶', 10, 3, NULL, NULL, '每侧8-10次,2-3组', 'barrel', 2, NOW(), NOW()),
|
||||
|
||||
('barrel_side_bend', '侧弯', '普拉提桶', '侧卧在桶上进行侧向弯曲练习', '腹斜肌、腰部塑形、平衡感、核心稳定性', '普拉提桶', 10, 3, NULL, NULL, '每侧8-10次,2-3组', 'barrel', 3, NOW(), NOW()),
|
||||
|
||||
('barrel_teaser_prep', '预备式Teaser', '普拉提桶', '在桶上进行Teaser动作的预备练习', '核心肌群、平衡感、本体感受', '普拉提桶', 5, 2, NULL, 3, '5次,2组,保持3秒', 'barrel', 4, NOW(), NOW()),
|
||||
|
||||
('barrel_swan_dive_prep', '预备式Swan Dive', '普拉提桶', '在桶上进行Swan Dive的预备练习', '背部伸肌、脊柱伸展、平衡感', '普拉提桶', 5, 2, NULL, 3, '5次,2组,保持3秒', 'barrel', 5, NOW(), NOW());
|
||||
|
||||
-- 提交事务
|
||||
COMMIT;
|
||||
|
||||
-- 验证数据插入
|
||||
SELECT
|
||||
ec.name as category_name,
|
||||
ec.pilates_type,
|
||||
ec.equipment_name,
|
||||
COUNT(e.key) as exercise_count
|
||||
FROM t_exercise_categories ec
|
||||
LEFT JOIN t_exercises e ON ec.key = e.category_key
|
||||
GROUP BY ec.key, ec.name, ec.pilates_type, ec.equipment_name
|
||||
ORDER BY ec.sort_order;
|
||||
Reference in New Issue
Block a user