Compare commits

..

3 Commits

Author SHA1 Message Date
67908a4dd0 Merge branch 'main' of git.waypeak.work:martial/martial-master 2025-12-26 10:32:03 +08:00
0c9322c510 fix bugs 2025-12-26 10:31:41 +08:00
ec26191a5f 最新提交
All checks were successful
continuous-integration/drone/push Build is passing
2025-12-18 11:55:35 +08:00
10 changed files with 9441 additions and 9058 deletions

View File

@@ -27,7 +27,14 @@
"Bash(python -m json.tool:*)",
"Bash(\"/d/Program Files/mysql-8.0.32-winx64/bin/mysql\" -h localhost -P 3306 -u root -p123456 -D martial_db -e \"\nSELECT \n TABLE_NAME,\n CASE WHEN SUM(COLUMN_NAME = ''status'') > 0 THEN ''✓'' ELSE ''✗'' END AS has_status\nFROM information_schema.COLUMNS \nWHERE TABLE_SCHEMA = ''martial_db'' \n AND TABLE_NAME IN (''martial_athlete'', ''martial_live_update'', ''martial_result'', ''martial_schedule_athlete'')\nGROUP BY TABLE_NAME\nORDER BY TABLE_NAME;\n\")",
"Bash(git add:*)",
"Bash(git commit -m \"$(cat <<''EOF''\nMerge remote-tracking branch ''origin/main''\n\n解决目录重组冲突:\n- doc/ → docs/ (文档目录重命名)\n- doc/sql/ → database/ (数据库脚本目录重组)\n- doc/script/ → scripts/ (脚本目录重组)\n\n保留本地新增的武术比赛系统文件:\n- docs/sql/mysql/martial-*.sql (4个数据库脚本)\n- docs/后端开发完成报告.md\n- docs/数据库字段检查报告.md \n- docs/问题修复报告.md\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")"
"Bash(git commit -m \"$(cat <<''EOF''\nMerge remote-tracking branch ''origin/main''\n\n解决目录重组冲突:\n- doc/ → docs/ (文档目录重命名)\n- doc/sql/ → database/ (数据库脚本目录重组)\n- doc/script/ → scripts/ (脚本目录重组)\n\n保留本地新增的武术比赛系统文件:\n- docs/sql/mysql/martial-*.sql (4个数据库脚本)\n- docs/后端开发完成报告.md\n- docs/数据库字段检查报告.md \n- docs/问题修复报告.md\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
"Bash(\"/d/Program Files/mysql-8.0.32-winx64/bin/mysql\" -h localhost -P 3306 -u root -p123456 -D martial_db -e \"DESC martial_schedule_participant;\")",
"Bash(\"/d/Program Files/mysql-8.0.32-winx64/bin/mysql\" -h localhost -P 3306 -u root -p123456 -D martial_db -e \"SHOW CREATE TABLE martial_schedule_participant\\\\G\")",
"Bash(\"/d/Program Files/mysql-8.0.32-winx64/bin/mysql\" -h localhost -P 3306 -u root -p123456 -e \"DROP DATABASE IF EXISTS martial_db; CREATE DATABASE martial_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;\":*)",
"Bash(\"/d/Program Files/mysql-8.0.32-winx64/bin/mysql\" -h localhost -P 3306 -u root -p123456 -D martial_db -e \"DESC mt_venue;\")",
"Bash(grep:*)",
"Bash(\"/d/Program Files/mysql-8.0.32-winx64/bin/mysql\" -h localhost -P 3306 -u root -p123456 -D martial_db -e \"DESC martial_competition_rules_attachment;\")",
"Bash(\"/d/Program Files/mysql-8.0.32-winx64/bin/mysql\" -h localhost -P 3306 -u root -p123456 -D martial_db -e \"SELECT COUNT\\(*\\) FROM martial_competition_rules_attachment WHERE is_deleted = 0;\")"
],
"deny": [],
"ask": []

View File

@@ -0,0 +1,37 @@
-- 赛事通用附件表
-- 支持多种附件类型:赛事发布(info)、赛事规程(rules)、活动日程(schedule)、成绩(results)、奖牌榜(medals)、图片直播(photos)
DROP TABLE IF EXISTS `martial_competition_attachment`;
CREATE TABLE `martial_competition_attachment` (
`id` bigint NOT NULL COMMENT '主键ID',
`tenant_id` varchar(12) DEFAULT '000000' COMMENT '租户ID',
`competition_id` bigint NOT NULL COMMENT '赛事ID',
`attachment_type` varchar(20) NOT NULL COMMENT '附件类型info-赛事发布, rules-赛事规程, schedule-活动日程, results-成绩, medals-奖牌榜, photos-图片直播',
`file_name` varchar(255) NOT NULL COMMENT '文件名称',
`file_url` varchar(500) NOT NULL COMMENT '文件URL',
`file_size` bigint DEFAULT NULL COMMENT '文件大小(字节)',
`file_type` varchar(20) DEFAULT NULL COMMENT '文件类型pdf/doc/docx/xls/xlsx/jpg/png等',
`order_num` int DEFAULT 0 COMMENT '排序序号',
`status` int DEFAULT 1 COMMENT '状态1-启用 0-禁用)',
`create_user` bigint DEFAULT NULL COMMENT '创建人',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_user` bigint DEFAULT NULL COMMENT '更新人',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` int DEFAULT 0 COMMENT '是否已删除0-否 1-是)',
PRIMARY KEY (`id`),
KEY `idx_competition_id` (`competition_id`),
KEY `idx_attachment_type` (`attachment_type`),
KEY `idx_competition_type` (`competition_id`, `attachment_type`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='赛事通用附件表';
-- 插入测试数据假设赛事ID为1
INSERT INTO `martial_competition_attachment` (`id`, `tenant_id`, `competition_id`, `attachment_type`, `file_name`, `file_url`, `file_size`, `file_type`, `order_num`, `status`) VALUES
(1, '000000', 1, 'info', '2025年郑州武术大赛通知.pdf', 'http://example.com/files/notice.pdf', 1258291, 'pdf', 1, 1),
(2, '000000', 1, 'rules', '2025年郑州武术大赛竞赛规程.pdf', 'http://example.com/files/rules.pdf', 2621440, 'pdf', 1, 1),
(3, '000000', 1, 'rules', '参赛报名表.pdf', 'http://example.com/files/form.pdf', 163840, 'pdf', 2, 1),
(4, '000000', 1, 'schedule', '比赛日程安排表.pdf', 'http://example.com/files/schedule.pdf', 911360, 'pdf', 1, 1),
(5, '000000', 1, 'results', '比赛成绩公告.pdf', 'http://example.com/files/results.pdf', 1887436, 'pdf', 1, 1),
(6, '000000', 1, 'medals', '奖牌榜统计.pdf', 'http://example.com/files/medals.pdf', 532480, 'pdf', 1, 1),
(7, '000000', 1, 'photos', '比赛精彩瞬间.pdf', 'http://example.com/files/photos.pdf', 16357785, 'pdf', 1, 1);

View File

@@ -8908,6 +8908,59 @@ CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_martial_amount_stats`
-- ----------------------------
-- Records of mt_venue
-- ----------------------------
<<<<<<< HEAD
INSERT INTO `mt_venue` VALUES (200, '上海中学', 3, 3690.00);
INSERT INTO `mt_venue` VALUES (200, '上海体育学院武术系', 4, 3870.00);
INSERT INTO `mt_venue` VALUES (200, '上海市第二体育运动学校', 3, 3840.00);
INSERT INTO `mt_venue` VALUES (200, '东北师范大学附属中学', 3, 3740.00);
INSERT INTO `mt_venue` VALUES (200, '中国人民大学附属中学', 3, 3610.00);
INSERT INTO `mt_venue` VALUES (200, '北京体育大学武术学院', 3, 3610.00);
INSERT INTO `mt_venue` VALUES (200, '北京大学武术队', 3, 3570.00);
INSERT INTO `mt_venue` VALUES (200, '北京市什刹海体育运动学校', 3, 3730.00);
INSERT INTO `mt_venue` VALUES (200, '北京市第四中学', 4, 3750.00);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学', 3, 3760.00);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学附属中学', 4, 3880.00);
INSERT INTO `mt_venue` VALUES (200, '南京体育学院', 4, 3820.00);
INSERT INTO `mt_venue` VALUES (200, '南京外国语学校', 3, 3620.00);
INSERT INTO `mt_venue` VALUES (200, '厦门双十中学', 4, 3770.00);
INSERT INTO `mt_venue` VALUES (200, '复旦大学武术社', 4, 3830.00);
INSERT INTO `mt_venue` VALUES (200, '天津体育学院武术系', 4, 3930.00);
INSERT INTO `mt_venue` VALUES (200, '天津南开中学', 4, 3980.00);
INSERT INTO `mt_venue` VALUES (200, '山东省实验中学', 3, 3720.00);
INSERT INTO `mt_venue` VALUES (200, '山东省武术院', 3, 3670.00);
INSERT INTO `mt_venue` VALUES (200, '峨眉山武术学校', 3, 3740.00);
INSERT INTO `mt_venue` VALUES (200, '嵩山少林武术职业学院', 3, 3610.00);
INSERT INTO `mt_venue` VALUES (200, '广东省武术协会', 4, 3720.00);
INSERT INTO `mt_venue` VALUES (200, '广州体育学院武术系', 3, 3770.00);
INSERT INTO `mt_venue` VALUES (200, '成都七中', 4, 3870.00);
INSERT INTO `mt_venue` VALUES (200, '成都体育学院', 3, 3600.00);
INSERT INTO `mt_venue` VALUES (200, '成都外国语学校', 3, 3720.00);
INSERT INTO `mt_venue` VALUES (200, '杨氏太极拳传承中心', 3, 3720.00);
INSERT INTO `mt_venue` VALUES (200, '杭州学军中学', 4, 3810.00);
INSERT INTO `mt_venue` VALUES (200, '树德中学', 4, 3900.00);
INSERT INTO `mt_venue` VALUES (200, '武侯实验中学', 3, 3520.00);
INSERT INTO `mt_venue` VALUES (200, '武当山武术学校', 4, 3750.00);
INSERT INTO `mt_venue` VALUES (200, '武汉体育学院', 4, 3970.00);
INSERT INTO `mt_venue` VALUES (200, '江苏省武术运动协会', 4, 3750.00);
INSERT INTO `mt_venue` VALUES (200, '沈阳体育学院', 4, 4040.00);
INSERT INTO `mt_venue` VALUES (200, '河北省武术运动管理中心', 4, 3860.00);
INSERT INTO `mt_venue` VALUES (200, '河南登封少林寺武术学校', 3, 3470.00);
INSERT INTO `mt_venue` VALUES (200, '浙江大学武术队', 3, 3620.00);
INSERT INTO `mt_venue` VALUES (200, '深圳市体育运动学校', 3, 3690.00);
INSERT INTO `mt_venue` VALUES (200, '清华大学武术协会', 4, 3920.00);
INSERT INTO `mt_venue` VALUES (200, '湖南师范大学附属中学', 3, 3660.00);
INSERT INTO `mt_venue` VALUES (200, '石室中学', 3, 3650.00);
INSERT INTO `mt_venue` VALUES (200, '福建省武术队', 3, 3500.00);
INSERT INTO `mt_venue` VALUES (200, '西北工业大学附属中学', 4, 3820.00);
INSERT INTO `mt_venue` VALUES (200, '西安交通大学附属中学', 4, 3830.00);
INSERT INTO `mt_venue` VALUES (200, '西安体育学院', 3, 3700.00);
INSERT INTO `mt_venue` VALUES (200, '郑州外国语学校', 3, 3610.00);
INSERT INTO `mt_venue` VALUES (200, '重庆巴蜀中学', 4, 3680.00);
INSERT INTO `mt_venue` VALUES (200, '陈家沟太极拳学校', 4, 3840.00);
INSERT INTO `mt_venue` VALUES (200, '青城山武术院', 4, 3850.00);
INSERT INTO `mt_venue` VALUES (200, '首都师范大学', 4, 4050.00);
=======
>>>>>>> 284ebd2e734d6c86ad376bfb482c7775301ae292
-- ----------------------------
-- View structure for v_martial_participant_stats
@@ -8918,6 +8971,110 @@ CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_martial_participant_st
-- ----------------------------
-- Records of mt_venue
-- ----------------------------
<<<<<<< HEAD
INSERT INTO `mt_venue` VALUES (200, '北京体育大学武术学院', '青少年女子组', 7, 0, 0, 7, 7);
INSERT INTO `mt_venue` VALUES (200, '上海体育学院武术系', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '河南登封少林寺武术学校', '成年女子组', 15, 0, 0, 15, 15);
INSERT INTO `mt_venue` VALUES (200, '武汉体育学院', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '成都体育学院', '成年女子组', 14, 0, 0, 14, 14);
INSERT INTO `mt_venue` VALUES (200, '天津体育学院武术系', '成年男子组', 19, 0, 0, 0, 19);
INSERT INTO `mt_venue` VALUES (200, '西安体育学院', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '沈阳体育学院', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '广州体育学院武术系', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '南京体育学院', '成年男子组', 16, 0, 0, 0, 16);
INSERT INTO `mt_venue` VALUES (200, '嵩山少林武术职业学院', '青少年女子组', 5, 0, 0, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '河北省武术运动管理中心', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '山东省武术院', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '江苏省武术运动协会', '成年男子组', 15, 0, 0, 0, 15);
INSERT INTO `mt_venue` VALUES (200, '浙江大学武术队', '成年女子组', 16, 0, 0, 16, 16);
INSERT INTO `mt_venue` VALUES (200, '清华大学武术协会', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '北京大学武术队', '成年女子组', 15, 0, 0, 15, 15);
INSERT INTO `mt_venue` VALUES (200, '复旦大学武术社', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '首都师范大学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '北京市什刹海体育运动学校', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '上海市第二体育运动学校', '成年男子组', 14, 0, 0, 0, 14);
INSERT INTO `mt_venue` VALUES (200, '深圳市体育运动学校', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '广东省武术协会', '成年男子组', 14, 0, 0, 0, 14);
INSERT INTO `mt_venue` VALUES (200, '福建省武术队', '成年女子组', 14, 0, 0, 14, 14);
INSERT INTO `mt_venue` VALUES (200, '陈家沟太极拳学校', '成年男子组', 16, 0, 0, 0, 16);
INSERT INTO `mt_venue` VALUES (200, '杨氏太极拳传承中心', '成年女子组', 16, 0, 0, 16, 16);
INSERT INTO `mt_venue` VALUES (200, '武当山武术学校', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '峨眉山武术学校', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '青城山武术院', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '石室中学', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '成都七中', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '武侯实验中学', '成年女子组', 14, 0, 0, 14, 14);
INSERT INTO `mt_venue` VALUES (200, '树德中学', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '成都外国语学校', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '北京市第四中学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '上海中学', '成年女子组', 19, 0, 0, 19, 19);
INSERT INTO `mt_venue` VALUES (200, '杭州学军中学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '南京外国语学校', '成年女子组', 16, 0, 0, 16, 16);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学附属中学', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '中国人民大学附属中学', '成年女子组', 15, 0, 0, 15, 15);
INSERT INTO `mt_venue` VALUES (200, '西北工业大学附属中学', '成年男子组', 16, 0, 0, 0, 16);
INSERT INTO `mt_venue` VALUES (200, '东北师范大学附属中学', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '重庆巴蜀中学', '成年男子组', 16, 0, 0, 0, 16);
INSERT INTO `mt_venue` VALUES (200, '湖南师范大学附属中学', '成年女子组', 16, 0, 0, 16, 16);
INSERT INTO `mt_venue` VALUES (200, '天津南开中学', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '郑州外国语学校', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '西安交通大学附属中学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '山东省实验中学', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '厦门双十中学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '北京体育大学武术学院', '成年女子组', 13, 0, 0, 13, 13);
INSERT INTO `mt_venue` VALUES (200, '上海体育学院武术系', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '西安体育学院', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '广州体育学院武术系', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '嵩山少林武术职业学院', '成年女子组', 15, 0, 0, 15, 15);
INSERT INTO `mt_venue` VALUES (200, '河北省武术运动管理中心', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '浙江大学武术队', '青少年女子组', 4, 0, 0, 4, 4);
INSERT INTO `mt_venue` VALUES (200, '复旦大学武术社', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '北京市什刹海体育运动学校', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '上海市第二体育运动学校', '青少年男子组', 6, 0, 0, 0, 6);
INSERT INTO `mt_venue` VALUES (200, '深圳市体育运动学校', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '北京市第四中学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '杭州学军中学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '南京外国语学校', '青少年女子组', 4, 0, 0, 4, 4);
INSERT INTO `mt_venue` VALUES (200, '中国人民大学附属中学', '青少年女子组', 5, 0, 0, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '南京体育学院', '青少年男子组', 4, 0, 0, 0, 4);
INSERT INTO `mt_venue` VALUES (200, '广东省武术协会', '青少年男子组', 6, 0, 0, 0, 6);
INSERT INTO `mt_venue` VALUES (200, '青城山武术院', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '树德中学', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '西北工业大学附属中学', '青少年男子组', 4, 0, 0, 0, 4);
INSERT INTO `mt_venue` VALUES (200, '东北师范大学附属中学', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '成都体育学院', '青少年女子组', 6, 0, 0, 6, 6);
INSERT INTO `mt_venue` VALUES (200, '山东省武术院', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '江苏省武术运动协会', '青少年男子组', 5, 0, 0, 0, 5);
INSERT INTO `mt_venue` VALUES (200, '北京大学武术队', '青少年女子组', 5, 0, 0, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '福建省武术队', '青少年女子组', 6, 0, 0, 6, 6);
INSERT INTO `mt_venue` VALUES (200, '陈家沟太极拳学校', '青少年男子组', 4, 0, 0, 0, 4);
INSERT INTO `mt_venue` VALUES (200, '武当山武术学校', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学附属中学', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '重庆巴蜀中学', '青少年男子组', 4, 0, 0, 0, 4);
INSERT INTO `mt_venue` VALUES (200, '西安交通大学附属中学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '厦门双十中学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '石室中学', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '首都师范大学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '成都七中', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '郑州外国语学校', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '武汉体育学院', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '天津南开中学', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '山东省实验中学', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '河南登封少林寺武术学校', '青少年女子组', 5, 0, 0, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '沈阳体育学院', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '成都外国语学校', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '峨眉山武术学校', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '武侯实验中学', '青少年女子组', 6, 0, 0, 6, 6);
INSERT INTO `mt_venue` VALUES (200, '杨氏太极拳传承中心', '青少年女子组', 4, 0, 0, 4, 4);
INSERT INTO `mt_venue` VALUES (200, '湖南师范大学附属中学', '青少年女子组', 4, 0, 0, 4, 4);
INSERT INTO `mt_venue` VALUES (200, '天津体育学院武术系', '青少年男子组', 1, 0, 0, 0, 1);
INSERT INTO `mt_venue` VALUES (200, '清华大学武术协会', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '上海中学', '青少年女子组', 1, 0, 0, 1, 1);
INSERT INTO `mt_venue` VALUES (200, '武当山', NULL, 1, 0, 0, 0, 1);
=======
>>>>>>> 284ebd2e734d6c86ad376bfb482c7775301ae292
-- ----------------------------
-- View structure for v_martial_project_time_stats
@@ -8928,5 +9085,24 @@ CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_martial_project_time_s
-- ----------------------------
-- Records of mt_venue
-- ----------------------------
<<<<<<< HEAD
INSERT INTO `mt_venue` VALUES (0, '太极拳集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (0, '长拳集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (0, '剑术集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (0, '刀术集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (0, '棍术集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (200, '成年男子太极拳', NULL, 1, 1, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '成年男子太极拳', '成年男子组', 49, 149, 5, 245);
INSERT INTO `mt_venue` VALUES (200, '成年女子太极拳', '成年女子组', 49, 203, 5, 245);
INSERT INTO `mt_venue` VALUES (200, '成年男子长拳', '成年男子组', 50, 129, 5, 250);
INSERT INTO `mt_venue` VALUES (200, '成年女子长拳', '成年女子组', 50, 205, 5, 250);
INSERT INTO `mt_venue` VALUES (200, '成年男子刀术', '成年男子组', 48, 143, 5, 240);
INSERT INTO `mt_venue` VALUES (200, '青少年男子长拳', '青少年男子组', 40, 79, 4, 160);
INSERT INTO `mt_venue` VALUES (200, '青少年女子长拳', '青少年女子组', 44, 92, 4, 176);
INSERT INTO `mt_venue` VALUES (200, '青少年太极拳', NULL, 0, 1, 4, 0);
INSERT INTO `mt_venue` VALUES (200, '集体拳术表演', NULL, 0, 1, 8, 0);
INSERT INTO `mt_venue` VALUES (200, '集体器械表演', NULL, 0, 1, 8, 0);
=======
>>>>>>> 284ebd2e734d6c86ad376bfb482c7775301ae292
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -8865,193 +8865,5 @@ CREATE TABLE `mt_venue` (
DROP VIEW IF EXISTS `v_martial_amount_stats`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_martial_amount_stats` AS select `o`.`competition_id` AS `competition_id`,`a`.`organization` AS `school_unit`,count(distinct `a`.`project_id`) AS `project_count`,sum(`p`.`price`) AS `total_amount` from ((`martial_registration_order` `o` join `martial_athlete` `a` on(((`o`.`id` = `a`.`order_id`) and (`a`.`is_deleted` = 0)))) left join `martial_project` `p` on(((`a`.`project_id` = `p`.`id`) and (`p`.`is_deleted` = 0)))) where ((`o`.`is_deleted` = 0) and (`o`.`status` = 1)) group by `o`.`competition_id`,`a`.`organization`;
-- ----------------------------
-- Records of mt_venue
-- ----------------------------
INSERT INTO `mt_venue` VALUES (200, '上海中学', 3, 3690.00);
INSERT INTO `mt_venue` VALUES (200, '上海体育学院武术系', 4, 3870.00);
INSERT INTO `mt_venue` VALUES (200, '上海市第二体育运动学校', 3, 3840.00);
INSERT INTO `mt_venue` VALUES (200, '东北师范大学附属中学', 3, 3740.00);
INSERT INTO `mt_venue` VALUES (200, '中国人民大学附属中学', 3, 3610.00);
INSERT INTO `mt_venue` VALUES (200, '北京体育大学武术学院', 3, 3610.00);
INSERT INTO `mt_venue` VALUES (200, '北京大学武术队', 3, 3570.00);
INSERT INTO `mt_venue` VALUES (200, '北京市什刹海体育运动学校', 3, 3730.00);
INSERT INTO `mt_venue` VALUES (200, '北京市第四中学', 4, 3750.00);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学', 3, 3760.00);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学附属中学', 4, 3880.00);
INSERT INTO `mt_venue` VALUES (200, '南京体育学院', 4, 3820.00);
INSERT INTO `mt_venue` VALUES (200, '南京外国语学校', 3, 3620.00);
INSERT INTO `mt_venue` VALUES (200, '厦门双十中学', 4, 3770.00);
INSERT INTO `mt_venue` VALUES (200, '复旦大学武术社', 4, 3830.00);
INSERT INTO `mt_venue` VALUES (200, '天津体育学院武术系', 4, 3930.00);
INSERT INTO `mt_venue` VALUES (200, '天津南开中学', 4, 3980.00);
INSERT INTO `mt_venue` VALUES (200, '山东省实验中学', 3, 3720.00);
INSERT INTO `mt_venue` VALUES (200, '山东省武术院', 3, 3670.00);
INSERT INTO `mt_venue` VALUES (200, '峨眉山武术学校', 3, 3740.00);
INSERT INTO `mt_venue` VALUES (200, '嵩山少林武术职业学院', 3, 3610.00);
INSERT INTO `mt_venue` VALUES (200, '广东省武术协会', 4, 3720.00);
INSERT INTO `mt_venue` VALUES (200, '广州体育学院武术系', 3, 3770.00);
INSERT INTO `mt_venue` VALUES (200, '成都七中', 4, 3870.00);
INSERT INTO `mt_venue` VALUES (200, '成都体育学院', 3, 3600.00);
INSERT INTO `mt_venue` VALUES (200, '成都外国语学校', 3, 3720.00);
INSERT INTO `mt_venue` VALUES (200, '杨氏太极拳传承中心', 3, 3720.00);
INSERT INTO `mt_venue` VALUES (200, '杭州学军中学', 4, 3810.00);
INSERT INTO `mt_venue` VALUES (200, '树德中学', 4, 3900.00);
INSERT INTO `mt_venue` VALUES (200, '武侯实验中学', 3, 3520.00);
INSERT INTO `mt_venue` VALUES (200, '武当山武术学校', 4, 3750.00);
INSERT INTO `mt_venue` VALUES (200, '武汉体育学院', 4, 3970.00);
INSERT INTO `mt_venue` VALUES (200, '江苏省武术运动协会', 4, 3750.00);
INSERT INTO `mt_venue` VALUES (200, '沈阳体育学院', 4, 4040.00);
INSERT INTO `mt_venue` VALUES (200, '河北省武术运动管理中心', 4, 3860.00);
INSERT INTO `mt_venue` VALUES (200, '河南登封少林寺武术学校', 3, 3470.00);
INSERT INTO `mt_venue` VALUES (200, '浙江大学武术队', 3, 3620.00);
INSERT INTO `mt_venue` VALUES (200, '深圳市体育运动学校', 3, 3690.00);
INSERT INTO `mt_venue` VALUES (200, '清华大学武术协会', 4, 3920.00);
INSERT INTO `mt_venue` VALUES (200, '湖南师范大学附属中学', 3, 3660.00);
INSERT INTO `mt_venue` VALUES (200, '石室中学', 3, 3650.00);
INSERT INTO `mt_venue` VALUES (200, '福建省武术队', 3, 3500.00);
INSERT INTO `mt_venue` VALUES (200, '西北工业大学附属中学', 4, 3820.00);
INSERT INTO `mt_venue` VALUES (200, '西安交通大学附属中学', 4, 3830.00);
INSERT INTO `mt_venue` VALUES (200, '西安体育学院', 3, 3700.00);
INSERT INTO `mt_venue` VALUES (200, '郑州外国语学校', 3, 3610.00);
INSERT INTO `mt_venue` VALUES (200, '重庆巴蜀中学', 4, 3680.00);
INSERT INTO `mt_venue` VALUES (200, '陈家沟太极拳学校', 4, 3840.00);
INSERT INTO `mt_venue` VALUES (200, '青城山武术院', 4, 3850.00);
INSERT INTO `mt_venue` VALUES (200, '首都师范大学', 4, 4050.00);
-- ----------------------------
-- View structure for v_martial_participant_stats
-- ----------------------------
DROP VIEW IF EXISTS `v_martial_participant_stats`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_martial_participant_stats` AS select `a`.`competition_id` AS `competition_id`,`a`.`organization` AS `school_unit`,`a`.`category` AS `category`,count((case when (`p`.`type` = 1) then 1 end)) AS `individual_count`,count((case when (`p`.`type` = 2) then 1 end)) AS `dual_count`,count((case when (`p`.`type` = 3) then 1 end)) AS `team_count`,count((case when (`a`.`gender` = 2) then 1 end)) AS `female_count`,count(0) AS `total_count` from (`martial_athlete` `a` left join `martial_project` `p` on((`a`.`project_id` = `p`.`id`))) where (`a`.`is_deleted` = 0) group by `a`.`competition_id`,`a`.`organization`,`a`.`category`;
-- ----------------------------
-- Records of mt_venue
-- ----------------------------
INSERT INTO `mt_venue` VALUES (200, '北京体育大学武术学院', '青少年女子组', 7, 0, 0, 7, 7);
INSERT INTO `mt_venue` VALUES (200, '上海体育学院武术系', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '河南登封少林寺武术学校', '成年女子组', 15, 0, 0, 15, 15);
INSERT INTO `mt_venue` VALUES (200, '武汉体育学院', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '成都体育学院', '成年女子组', 14, 0, 0, 14, 14);
INSERT INTO `mt_venue` VALUES (200, '天津体育学院武术系', '成年男子组', 19, 0, 0, 0, 19);
INSERT INTO `mt_venue` VALUES (200, '西安体育学院', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '沈阳体育学院', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '广州体育学院武术系', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '南京体育学院', '成年男子组', 16, 0, 0, 0, 16);
INSERT INTO `mt_venue` VALUES (200, '嵩山少林武术职业学院', '青少年女子组', 5, 0, 0, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '河北省武术运动管理中心', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '山东省武术院', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '江苏省武术运动协会', '成年男子组', 15, 0, 0, 0, 15);
INSERT INTO `mt_venue` VALUES (200, '浙江大学武术队', '成年女子组', 16, 0, 0, 16, 16);
INSERT INTO `mt_venue` VALUES (200, '清华大学武术协会', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '北京大学武术队', '成年女子组', 15, 0, 0, 15, 15);
INSERT INTO `mt_venue` VALUES (200, '复旦大学武术社', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '首都师范大学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '北京市什刹海体育运动学校', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '上海市第二体育运动学校', '成年男子组', 14, 0, 0, 0, 14);
INSERT INTO `mt_venue` VALUES (200, '深圳市体育运动学校', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '广东省武术协会', '成年男子组', 14, 0, 0, 0, 14);
INSERT INTO `mt_venue` VALUES (200, '福建省武术队', '成年女子组', 14, 0, 0, 14, 14);
INSERT INTO `mt_venue` VALUES (200, '陈家沟太极拳学校', '成年男子组', 16, 0, 0, 0, 16);
INSERT INTO `mt_venue` VALUES (200, '杨氏太极拳传承中心', '成年女子组', 16, 0, 0, 16, 16);
INSERT INTO `mt_venue` VALUES (200, '武当山武术学校', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '峨眉山武术学校', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '青城山武术院', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '石室中学', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '成都七中', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '武侯实验中学', '成年女子组', 14, 0, 0, 14, 14);
INSERT INTO `mt_venue` VALUES (200, '树德中学', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '成都外国语学校', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '北京市第四中学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '上海中学', '成年女子组', 19, 0, 0, 19, 19);
INSERT INTO `mt_venue` VALUES (200, '杭州学军中学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '南京外国语学校', '成年女子组', 16, 0, 0, 16, 16);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学附属中学', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '中国人民大学附属中学', '成年女子组', 15, 0, 0, 15, 15);
INSERT INTO `mt_venue` VALUES (200, '西北工业大学附属中学', '成年男子组', 16, 0, 0, 0, 16);
INSERT INTO `mt_venue` VALUES (200, '东北师范大学附属中学', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '重庆巴蜀中学', '成年男子组', 16, 0, 0, 0, 16);
INSERT INTO `mt_venue` VALUES (200, '湖南师范大学附属中学', '成年女子组', 16, 0, 0, 16, 16);
INSERT INTO `mt_venue` VALUES (200, '天津南开中学', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '郑州外国语学校', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '西安交通大学附属中学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '山东省实验中学', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '厦门双十中学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '北京体育大学武术学院', '成年女子组', 13, 0, 0, 13, 13);
INSERT INTO `mt_venue` VALUES (200, '上海体育学院武术系', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '西安体育学院', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '广州体育学院武术系', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '嵩山少林武术职业学院', '成年女子组', 15, 0, 0, 15, 15);
INSERT INTO `mt_venue` VALUES (200, '河北省武术运动管理中心', '成年男子组', 18, 0, 0, 0, 18);
INSERT INTO `mt_venue` VALUES (200, '浙江大学武术队', '青少年女子组', 4, 0, 0, 4, 4);
INSERT INTO `mt_venue` VALUES (200, '复旦大学武术社', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学', '成年女子组', 18, 0, 0, 18, 18);
INSERT INTO `mt_venue` VALUES (200, '北京市什刹海体育运动学校', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '上海市第二体育运动学校', '青少年男子组', 6, 0, 0, 0, 6);
INSERT INTO `mt_venue` VALUES (200, '深圳市体育运动学校', '成年女子组', 17, 0, 0, 17, 17);
INSERT INTO `mt_venue` VALUES (200, '北京市第四中学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '杭州学军中学', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '南京外国语学校', '青少年女子组', 4, 0, 0, 4, 4);
INSERT INTO `mt_venue` VALUES (200, '中国人民大学附属中学', '青少年女子组', 5, 0, 0, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '南京体育学院', '青少年男子组', 4, 0, 0, 0, 4);
INSERT INTO `mt_venue` VALUES (200, '广东省武术协会', '青少年男子组', 6, 0, 0, 0, 6);
INSERT INTO `mt_venue` VALUES (200, '青城山武术院', '成年男子组', 17, 0, 0, 0, 17);
INSERT INTO `mt_venue` VALUES (200, '树德中学', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '西北工业大学附属中学', '青少年男子组', 4, 0, 0, 0, 4);
INSERT INTO `mt_venue` VALUES (200, '东北师范大学附属中学', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '成都体育学院', '青少年女子组', 6, 0, 0, 6, 6);
INSERT INTO `mt_venue` VALUES (200, '山东省武术院', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '江苏省武术运动协会', '青少年男子组', 5, 0, 0, 0, 5);
INSERT INTO `mt_venue` VALUES (200, '北京大学武术队', '青少年女子组', 5, 0, 0, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '福建省武术队', '青少年女子组', 6, 0, 0, 6, 6);
INSERT INTO `mt_venue` VALUES (200, '陈家沟太极拳学校', '青少年男子组', 4, 0, 0, 0, 4);
INSERT INTO `mt_venue` VALUES (200, '武当山武术学校', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '华南师范大学附属中学', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '重庆巴蜀中学', '青少年男子组', 4, 0, 0, 0, 4);
INSERT INTO `mt_venue` VALUES (200, '西安交通大学附属中学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '厦门双十中学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '石室中学', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '首都师范大学', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '成都七中', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '郑州外国语学校', '青少年女子组', 3, 0, 0, 3, 3);
INSERT INTO `mt_venue` VALUES (200, '武汉体育学院', '青少年男子组', 3, 0, 0, 0, 3);
INSERT INTO `mt_venue` VALUES (200, '天津南开中学', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '山东省实验中学', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '河南登封少林寺武术学校', '青少年女子组', 5, 0, 0, 5, 5);
INSERT INTO `mt_venue` VALUES (200, '沈阳体育学院', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '成都外国语学校', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '峨眉山武术学校', '青少年女子组', 2, 0, 0, 2, 2);
INSERT INTO `mt_venue` VALUES (200, '武侯实验中学', '青少年女子组', 6, 0, 0, 6, 6);
INSERT INTO `mt_venue` VALUES (200, '杨氏太极拳传承中心', '青少年女子组', 4, 0, 0, 4, 4);
INSERT INTO `mt_venue` VALUES (200, '湖南师范大学附属中学', '青少年女子组', 4, 0, 0, 4, 4);
INSERT INTO `mt_venue` VALUES (200, '天津体育学院武术系', '青少年男子组', 1, 0, 0, 0, 1);
INSERT INTO `mt_venue` VALUES (200, '清华大学武术协会', '青少年男子组', 2, 0, 0, 0, 2);
INSERT INTO `mt_venue` VALUES (200, '上海中学', '青少年女子组', 1, 0, 0, 1, 1);
-- ----------------------------
-- View structure for v_martial_project_time_stats
-- ----------------------------
DROP VIEW IF EXISTS `v_martial_project_time_stats`;
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `v_martial_project_time_stats` AS select `p`.`competition_id` AS `competition_id`,`p`.`project_name` AS `project_name`,`a`.`category` AS `participant_category`,count(distinct `a`.`team_name`) AS `team_count`,count(0) AS `participant_count`,`p`.`estimated_duration` AS `estimated_duration`,(count(distinct `a`.`team_name`) * `p`.`estimated_duration`) AS `total_estimated_duration` from (`martial_project` `p` left join `martial_athlete` `a` on(((`p`.`id` = `a`.`project_id`) and (`a`.`is_deleted` = 0)))) where (`p`.`is_deleted` = 0) group by `p`.`competition_id`,`p`.`id`,`p`.`project_name`,`a`.`category`;
-- ----------------------------
-- Records of mt_venue
-- ----------------------------
INSERT INTO `mt_venue` VALUES (0, '太极拳集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (0, '长拳集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (0, '剑术集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (0, '刀术集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (0, '棍术集体', NULL, 0, 1, 5, 0);
INSERT INTO `mt_venue` VALUES (200, '成年男子太极拳', '成年男子组', 49, 149, 5, 245);
INSERT INTO `mt_venue` VALUES (200, '成年女子太极拳', '成年女子组', 49, 203, 5, 245);
INSERT INTO `mt_venue` VALUES (200, '成年男子长拳', '成年男子组', 50, 129, 5, 250);
INSERT INTO `mt_venue` VALUES (200, '成年女子长拳', '成年女子组', 50, 205, 5, 250);
INSERT INTO `mt_venue` VALUES (200, '成年男子刀术', '成年男子组', 48, 143, 5, 240);
INSERT INTO `mt_venue` VALUES (200, '青少年男子长拳', '青少年男子组', 40, 79, 4, 160);
INSERT INTO `mt_venue` VALUES (200, '青少年女子长拳', '青少年女子组', 44, 92, 4, 176);
INSERT INTO `mt_venue` VALUES (200, '青少年太极拳', NULL, 0, 1, 4, 0);
INSERT INTO `mt_venue` VALUES (200, '集体拳术表演', NULL, 0, 1, 8, 0);
INSERT INTO `mt_venue` VALUES (200, '集体器械表演', NULL, 0, 1, 8, 0);
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -0,0 +1,127 @@
package org.springblade.modules.martial.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.martial.pojo.entity.MartialCompetitionAttachment;
import org.springblade.modules.martial.service.IMartialCompetitionAttachmentService;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 赛事附件 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/competition/attachment")
@Tag(name = "赛事附件管理", description = "赛事附件管理接口")
public class MartialCompetitionAttachmentController extends BladeController {
private final IMartialCompetitionAttachmentService attachmentService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialCompetitionAttachment> detail(@RequestParam Long id) {
MartialCompetitionAttachment detail = attachmentService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialCompetitionAttachment>> list(MartialCompetitionAttachment attachment, Query query) {
IPage<MartialCompetitionAttachment> pages = attachmentService.page(Condition.getPage(query), Condition.getQueryWrapper(attachment));
return R.data(pages);
}
/**
* 根据赛事ID和类型获取附件列表
*/
@GetMapping("/getByType")
@Operation(summary = "根据赛事ID和类型获取附件列表", description = "传入赛事ID和附件类型")
public R<List<MartialCompetitionAttachment>> getByType(
@RequestParam Long competitionId,
@RequestParam String attachmentType) {
List<MartialCompetitionAttachment> list = attachmentService.getByCompetitionIdAndType(competitionId, attachmentType);
return R.data(list);
}
/**
* 根据赛事ID获取所有附件
*/
@GetMapping("/getByCompetition")
@Operation(summary = "根据赛事ID获取所有附件", description = "传入赛事ID")
public R<List<MartialCompetitionAttachment>> getByCompetition(@RequestParam Long competitionId) {
List<MartialCompetitionAttachment> list = attachmentService.getByCompetitionId(competitionId);
return R.data(list);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialCompetitionAttachment attachment) {
// 设置默认状态为启用
if (attachment.getStatus() == null) {
attachment.setStatus(1);
}
// 设置默认排序
if (attachment.getOrderNum() == null) {
attachment.setOrderNum(0);
}
return R.status(attachmentService.saveOrUpdate(attachment));
}
/**
* 批量保存附件
*/
@PostMapping("/batchSubmit")
@Operation(summary = "批量保存附件", description = "传入附件列表")
public R batchSubmit(@RequestBody List<MartialCompetitionAttachment> attachments) {
for (MartialCompetitionAttachment attachment : attachments) {
if (attachment.getStatus() == null) {
attachment.setStatus(1);
}
if (attachment.getOrderNum() == null) {
attachment.setOrderNum(0);
}
}
return R.status(attachmentService.saveOrUpdateBatch(attachments));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(attachmentService.removeByIds(Func.toLongList(ids)));
}
/**
* 删除赛事的指定类型附件
*/
@PostMapping("/removeByType")
@Operation(summary = "删除赛事的指定类型附件", description = "传入赛事ID和附件类型")
public R removeByType(
@RequestParam Long competitionId,
@RequestParam String attachmentType) {
return R.status(attachmentService.removeByCompetitionIdAndType(competitionId, attachmentType));
}
}

View File

@@ -1,6 +1,9 @@
package org.springblade.modules.martial.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
@@ -9,10 +12,15 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.martial.pojo.entity.MartialAthlete;
import org.springblade.modules.martial.pojo.entity.MartialCompetition;
import org.springblade.modules.martial.service.IMartialAthleteService;
import org.springblade.modules.martial.service.IMartialCompetitionService;
import org.springblade.modules.system.pojo.entity.User;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 赛事信息 控制器
*
@@ -25,6 +33,7 @@ import org.springframework.web.bind.annotation.*;
public class MartialCompetitionController extends BladeController {
private final IMartialCompetitionService competitionService;
private final IMartialAthleteService martialAthleteService;
/**
* 详情
@@ -43,6 +52,14 @@ public class MartialCompetitionController extends BladeController {
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialCompetition>> list(MartialCompetition competition, Query query) {
IPage<MartialCompetition> pages = competitionService.page(Condition.getPage(query), Condition.getQueryWrapper(competition));
List<MartialCompetition> pagelist = pages.getRecords();
for (MartialCompetition martialCompetition : pagelist) {
Long cnt = martialAthleteService.count(Wrappers.<MartialAthlete>query().lambda()
.eq(MartialAthlete::getCompetitionId, martialCompetition.getId())
.eq(MartialAthlete::getIsDeleted, 0)
);
martialCompetition.setTotalParticipants(cnt.intValue());
}
return R.data(pages);
}

View File

@@ -0,0 +1,29 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.pojo.entity.MartialCompetitionAttachment;
/**
* 赛事附件 Mapper 接口
*
* @author BladeX
*/
public interface MartialCompetitionAttachmentMapper extends BaseMapper<MartialCompetitionAttachment> {
}

View File

@@ -0,0 +1,89 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
/**
* 赛事附件实体类(通用)
* 支持多种附件类型:赛事发布、赛事规程、活动日程、成绩、奖牌榜、图片直播
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_competition_attachment")
@Schema(description = "赛事附件")
public class MartialCompetitionAttachment extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 附件类型
* info-赛事发布, rules-赛事规程, schedule-活动日程,
* results-成绩, medals-奖牌榜, photos-图片直播
*/
@Schema(description = "附件类型info-赛事发布, rules-赛事规程, schedule-活动日程, results-成绩, medals-奖牌榜, photos-图片直播")
private String attachmentType;
/**
* 文件名称
*/
@Schema(description = "文件名称")
private String fileName;
/**
* 文件URL
*/
@Schema(description = "文件URL")
private String fileUrl;
/**
* 文件大小(字节)
*/
@Schema(description = "文件大小(字节)")
private Long fileSize;
/**
* 文件类型(扩展名)
*/
@Schema(description = "文件类型pdf/doc/docx/xls/xlsx/jpg/png等")
private String fileType;
/**
* 排序序号
*/
@Schema(description = "排序序号")
private Integer orderNum;
/**
* 状态1-启用 0-禁用)
*/
@Schema(description = "状态1-启用 0-禁用)")
private Integer status;
}

View File

@@ -0,0 +1,41 @@
package org.springblade.modules.martial.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.martial.pojo.entity.MartialCompetitionAttachment;
import java.util.List;
/**
* 赛事附件 服务类
*
* @author BladeX
*/
public interface IMartialCompetitionAttachmentService extends IService<MartialCompetitionAttachment> {
/**
* 根据赛事ID和附件类型获取附件列表
*
* @param competitionId 赛事ID
* @param attachmentType 附件类型
* @return 附件列表
*/
List<MartialCompetitionAttachment> getByCompetitionIdAndType(Long competitionId, String attachmentType);
/**
* 根据赛事ID获取所有附件
*
* @param competitionId 赛事ID
* @return 附件列表
*/
List<MartialCompetitionAttachment> getByCompetitionId(Long competitionId);
/**
* 删除赛事的指定类型附件
*
* @param competitionId 赛事ID
* @param attachmentType 附件类型
* @return 是否成功
*/
boolean removeByCompetitionIdAndType(Long competitionId, String attachmentType);
}

View File

@@ -0,0 +1,48 @@
package org.springblade.modules.martial.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.martial.mapper.MartialCompetitionAttachmentMapper;
import org.springblade.modules.martial.pojo.entity.MartialCompetitionAttachment;
import org.springblade.modules.martial.service.IMartialCompetitionAttachmentService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 赛事附件 服务实现类
*
* @author BladeX
*/
@Service
public class MartialCompetitionAttachmentServiceImpl extends ServiceImpl<MartialCompetitionAttachmentMapper, MartialCompetitionAttachment> implements IMartialCompetitionAttachmentService {
@Override
public List<MartialCompetitionAttachment> getByCompetitionIdAndType(Long competitionId, String attachmentType) {
LambdaQueryWrapper<MartialCompetitionAttachment> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MartialCompetitionAttachment::getCompetitionId, competitionId)
.eq(MartialCompetitionAttachment::getAttachmentType, attachmentType)
.eq(MartialCompetitionAttachment::getStatus, 1)
.orderByAsc(MartialCompetitionAttachment::getOrderNum);
return this.list(wrapper);
}
@Override
public List<MartialCompetitionAttachment> getByCompetitionId(Long competitionId) {
LambdaQueryWrapper<MartialCompetitionAttachment> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MartialCompetitionAttachment::getCompetitionId, competitionId)
.eq(MartialCompetitionAttachment::getStatus, 1)
.orderByAsc(MartialCompetitionAttachment::getAttachmentType)
.orderByAsc(MartialCompetitionAttachment::getOrderNum);
return this.list(wrapper);
}
@Override
public boolean removeByCompetitionIdAndType(Long competitionId, String attachmentType) {
LambdaQueryWrapper<MartialCompetitionAttachment> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MartialCompetitionAttachment::getCompetitionId, competitionId)
.eq(MartialCompetitionAttachment::getAttachmentType, attachmentType);
return this.remove(wrapper);
}
}