This commit is contained in:
2025-11-30 12:07:18 +08:00
parent 38472ee832
commit 6aeb522f24
222 changed files with 6678 additions and 9983 deletions

View File

@@ -7,7 +7,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import cn.hutool.core.text.StrFormatter;
import org.springblade.common.constant.Constants;
import org.springframework.util.AntPathMatcher;
@@ -260,7 +259,13 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
{
return template;
}
return StrFormatter.format(template, params);
// 简单实现: 将 {} 替换为参数
String result = template;
for (Object param : params)
{
result = result.replaceFirst("\\{\\}", param != null ? param.toString() : "null");
}
return result;
}
/**

View File

@@ -1,123 +0,0 @@
/*
* 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
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.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.martial.pojo.entity.Athlete;
import org.springblade.modules.martial.service.IAthleteService;
import org.springblade.modules.martial.pojo.vo.AthleteVO;
import org.springframework.web.bind.annotation.*;
/**
* 运动员控制器
*
* @author BladeX
*/
@TenantDS
@RestController
@RequestMapping("/api/martial/athlete")
@AllArgsConstructor
@Tag(name = "运动员管理", description = "运动员管理接口")
public class AthleteController extends BladeController {
private final IAthleteService athleteService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入athlete")
public R<Athlete> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
Athlete detail = athleteService.getById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入athlete")
public R<IPage<Athlete>> list(Athlete athlete, Query query) {
IPage<Athlete> pages = athleteService.page(Condition.getPage(query), Condition.getQueryWrapper(athlete));
return R.data(pages);
}
/**
* 自定义分页查询
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "自定义分页", description = "传入athlete")
public R<IPage<AthleteVO>> page(AthleteVO athlete, Query query) {
IPage<AthleteVO> pages = athleteService.selectAthletePage(Condition.getPage(query), athlete);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入athlete")
public R save(@RequestBody Athlete athlete) {
return R.status(athleteService.save(athlete));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入athlete")
public R update(@RequestBody Athlete athlete) {
return R.status(athleteService.updateById(athlete));
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入athlete")
public R submit(@RequestBody Athlete athlete) {
return R.status(athleteService.saveOrUpdate(athlete));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入主键集合")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(athleteService.deleteLogic(Func.toLongList(ids)));
}
}

View File

@@ -1,123 +0,0 @@
/*
* 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
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.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.martial.pojo.entity.Competition;
import org.springblade.modules.martial.service.ICompetitionService;
import org.springblade.modules.martial.pojo.vo.CompetitionVO;
import org.springframework.web.bind.annotation.*;
/**
* 赛事控制器
*
* @author BladeX
*/
@TenantDS
@RestController
@RequestMapping("/api/martial/competition")
@AllArgsConstructor
@Tag(name = "赛事管理", description = "赛事管理接口")
public class CompetitionController extends BladeController {
private final ICompetitionService competitionService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入competition")
public R<Competition> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
Competition detail = competitionService.getById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入competition")
public R<IPage<Competition>> list(Competition competition, Query query) {
IPage<Competition> pages = competitionService.page(Condition.getPage(query), Condition.getQueryWrapper(competition));
return R.data(pages);
}
/**
* 自定义分页查询
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "自定义分页", description = "传入competition")
public R<IPage<CompetitionVO>> page(CompetitionVO competition, Query query) {
IPage<CompetitionVO> pages = competitionService.selectCompetitionPage(Condition.getPage(query), competition);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入competition")
public R save(@RequestBody Competition competition) {
return R.status(competitionService.save(competition));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入competition")
public R update(@RequestBody Competition competition) {
return R.status(competitionService.updateById(competition));
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入competition")
public R submit(@RequestBody Competition competition) {
return R.status(competitionService.saveOrUpdate(competition));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入主键集合")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(competitionService.deleteLogic(Func.toLongList(ids)));
}
}

View File

@@ -1,113 +0,0 @@
package org.springblade.modules.martial.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
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.modules.martial.pojo.entity.Judge;
import org.springblade.modules.martial.service.IJudgeService;
import org.springblade.modules.martial.pojo.vo.JudgeVO;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 裁判控制器
*
* @author Blade
* @since 2025-01-01
*/
@RestController
@AllArgsConstructor
@RequestMapping("/api/martial/judge")
@Tag(name = "裁判管理", description = "裁判管理接口")
public class JudgeController extends BladeController {
private final IJudgeService judgeService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入judge")
public R<JudgeVO> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
JudgeVO detail = judgeService.getJudgeById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入judge")
public R<IPage<JudgeVO>> list(JudgeVO judge, Query query) {
IPage<JudgeVO> pages = judgeService.selectJudgePage(Condition.getPage(query), judge);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@Operation(summary = "新增", description = "传入judge")
public R save(@Valid @RequestBody Judge judge) {
return R.status(judgeService.save(judge));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@Operation(summary = "修改", description = "传入judge")
public R update(@Valid @RequestBody Judge judge) {
return R.status(judgeService.updateById(judge));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 5)
@Operation(summary = "删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(judgeService.removeByIds(org.springblade.core.tool.utils.Func.toLongList(ids)));
}
/**
* 裁判登录认证
*/
@PostMapping("/login")
@ApiOperationSupport(order = 6)
@Operation(summary = "裁判登录认证", description = "传入赛事编码和邀请码")
public R<JudgeVO> login(@Parameter(description = "赛事编码", required = true) @RequestParam String competitionCode,
@Parameter(description = "邀请码", required = true) @RequestParam String inviteCode) {
JudgeVO judge = judgeService.judgeLogin(competitionCode, inviteCode);
if (judge == null) {
return R.fail("赛事编码或邀请码错误");
}
return R.data(judge);
}
/**
* 根据赛事ID查询裁判列表
*/
@GetMapping("/listByCompetition")
@ApiOperationSupport(order = 7)
@Operation(summary = "根据赛事ID查询裁判列表", description = "传入competitionId")
public R<List<JudgeVO>> listByCompetition(@Parameter(description = "赛事ID", required = true) @RequestParam Long competitionId) {
List<JudgeVO> list = judgeService.getJudgeByCompetitionId(competitionId);
return R.data(list);
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialActivitySchedule;
import org.springblade.modules.martial.service.IMartialActivityScheduleService;
import org.springframework.web.bind.annotation.*;
/**
* 活动日程 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/activitySchedule")
@Tag(name = "活动日程管理", description = "活动日程接口")
public class MartialActivityScheduleController extends BladeController {
private final IMartialActivityScheduleService activityScheduleService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialActivitySchedule> detail(@RequestParam Long id) {
MartialActivitySchedule detail = activityScheduleService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialActivitySchedule>> list(MartialActivitySchedule activitySchedule, Query query) {
IPage<MartialActivitySchedule> pages = activityScheduleService.page(Condition.getPage(query), Condition.getQueryWrapper(activitySchedule));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialActivitySchedule activitySchedule) {
return R.status(activityScheduleService.saveOrUpdate(activitySchedule));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(activityScheduleService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialAthlete;
import org.springblade.modules.martial.service.IMartialAthleteService;
import org.springframework.web.bind.annotation.*;
/**
* 参赛选手 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/athlete")
@Tag(name = "参赛选手管理", description = "参赛选手接口")
public class MartialAthleteController extends BladeController {
private final IMartialAthleteService athleteService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialAthlete> detail(@RequestParam Long id) {
MartialAthlete detail = athleteService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialAthlete>> list(MartialAthlete athlete, Query query) {
IPage<MartialAthlete> pages = athleteService.page(Condition.getPage(query), Condition.getQueryWrapper(athlete));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialAthlete athlete) {
return R.status(athleteService.saveOrUpdate(athlete));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(athleteService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialBanner;
import org.springblade.modules.martial.service.IMartialBannerService;
import org.springframework.web.bind.annotation.*;
/**
* 轮播图 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/banner")
@Tag(name = "轮播图管理", description = "轮播图接口")
public class MartialBannerController extends BladeController {
private final IMartialBannerService bannerService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialBanner> detail(@RequestParam Long id) {
MartialBanner detail = bannerService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialBanner>> list(MartialBanner banner, Query query) {
IPage<MartialBanner> pages = bannerService.page(Condition.getPage(query), Condition.getQueryWrapper(banner));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialBanner banner) {
return R.status(bannerService.saveOrUpdate(banner));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(bannerService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialCompetition;
import org.springblade.modules.martial.service.IMartialCompetitionService;
import org.springframework.web.bind.annotation.*;
/**
* 赛事信息 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/competition")
@Tag(name = "赛事管理", description = "赛事信息管理接口")
public class MartialCompetitionController extends BladeController {
private final IMartialCompetitionService competitionService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialCompetition> detail(@RequestParam Long id) {
MartialCompetition detail = competitionService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialCompetition>> list(MartialCompetition competition, Query query) {
IPage<MartialCompetition> pages = competitionService.page(Condition.getPage(query), Condition.getQueryWrapper(competition));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialCompetition competition) {
return R.status(competitionService.saveOrUpdate(competition));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(competitionService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialDeductionItem;
import org.springblade.modules.martial.service.IMartialDeductionItemService;
import org.springframework.web.bind.annotation.*;
/**
* 扣分项配置 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/deductionItem")
@Tag(name = "扣分项配置管理", description = "扣分项配置接口")
public class MartialDeductionItemController extends BladeController {
private final IMartialDeductionItemService deductionItemService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialDeductionItem> detail(@RequestParam Long id) {
MartialDeductionItem detail = deductionItemService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialDeductionItem>> list(MartialDeductionItem deductionItem, Query query) {
IPage<MartialDeductionItem> pages = deductionItemService.page(Condition.getPage(query), Condition.getQueryWrapper(deductionItem));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialDeductionItem deductionItem) {
return R.status(deductionItemService.saveOrUpdate(deductionItem));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(deductionItemService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialInfoPublish;
import org.springblade.modules.martial.service.IMartialInfoPublishService;
import org.springframework.web.bind.annotation.*;
/**
* 信息发布 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/infoPublish")
@Tag(name = "信息发布管理", description = "信息发布接口")
public class MartialInfoPublishController extends BladeController {
private final IMartialInfoPublishService infoPublishService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialInfoPublish> detail(@RequestParam Long id) {
MartialInfoPublish detail = infoPublishService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialInfoPublish>> list(MartialInfoPublish infoPublish, Query query) {
IPage<MartialInfoPublish> pages = infoPublishService.page(Condition.getPage(query), Condition.getQueryWrapper(infoPublish));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialInfoPublish infoPublish) {
return R.status(infoPublishService.saveOrUpdate(infoPublish));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(infoPublishService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialJudge;
import org.springblade.modules.martial.service.IMartialJudgeService;
import org.springframework.web.bind.annotation.*;
/**
* 裁判信息 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/judge")
@Tag(name = "裁判信息管理", description = "裁判信息接口")
public class MartialJudgeController extends BladeController {
private final IMartialJudgeService judgeService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialJudge> detail(@RequestParam Long id) {
MartialJudge detail = judgeService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialJudge>> list(MartialJudge judge, Query query) {
IPage<MartialJudge> pages = judgeService.page(Condition.getPage(query), Condition.getQueryWrapper(judge));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialJudge judge) {
return R.status(judgeService.saveOrUpdate(judge));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(judgeService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialJudgeInvite;
import org.springblade.modules.martial.service.IMartialJudgeInviteService;
import org.springframework.web.bind.annotation.*;
/**
* 裁判邀请码 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/judgeInvite")
@Tag(name = "裁判邀请码管理", description = "裁判邀请码接口")
public class MartialJudgeInviteController extends BladeController {
private final IMartialJudgeInviteService judgeInviteService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialJudgeInvite> detail(@RequestParam Long id) {
MartialJudgeInvite detail = judgeInviteService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialJudgeInvite>> list(MartialJudgeInvite judgeInvite, Query query) {
IPage<MartialJudgeInvite> pages = judgeInviteService.page(Condition.getPage(query), Condition.getQueryWrapper(judgeInvite));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialJudgeInvite judgeInvite) {
return R.status(judgeInviteService.saveOrUpdate(judgeInvite));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(judgeInviteService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialLiveUpdate;
import org.springblade.modules.martial.service.IMartialLiveUpdateService;
import org.springframework.web.bind.annotation.*;
/**
* 比赛实况 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/liveUpdate")
@Tag(name = "比赛实况管理", description = "比赛实况接口")
public class MartialLiveUpdateController extends BladeController {
private final IMartialLiveUpdateService liveUpdateService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialLiveUpdate> detail(@RequestParam Long id) {
MartialLiveUpdate detail = liveUpdateService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialLiveUpdate>> list(MartialLiveUpdate liveUpdate, Query query) {
IPage<MartialLiveUpdate> pages = liveUpdateService.page(Condition.getPage(query), Condition.getQueryWrapper(liveUpdate));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialLiveUpdate liveUpdate) {
return R.status(liveUpdateService.saveOrUpdate(liveUpdate));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(liveUpdateService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialProject;
import org.springblade.modules.martial.service.IMartialProjectService;
import org.springframework.web.bind.annotation.*;
/**
* 比赛项目 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/project")
@Tag(name = "比赛项目管理", description = "比赛项目接口")
public class MartialProjectController extends BladeController {
private final IMartialProjectService projectService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialProject> detail(@RequestParam Long id) {
MartialProject detail = projectService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialProject>> list(MartialProject project, Query query) {
IPage<MartialProject> pages = projectService.page(Condition.getPage(query), Condition.getQueryWrapper(project));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialProject project) {
return R.status(projectService.saveOrUpdate(project));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(projectService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialRegistrationOrder;
import org.springblade.modules.martial.service.IMartialRegistrationOrderService;
import org.springframework.web.bind.annotation.*;
/**
* 报名订单 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/registrationOrder")
@Tag(name = "报名订单管理", description = "报名订单接口")
public class MartialRegistrationOrderController extends BladeController {
private final IMartialRegistrationOrderService registrationOrderService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialRegistrationOrder> detail(@RequestParam Long id) {
MartialRegistrationOrder detail = registrationOrderService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialRegistrationOrder>> list(MartialRegistrationOrder registrationOrder, Query query) {
IPage<MartialRegistrationOrder> pages = registrationOrderService.page(Condition.getPage(query), Condition.getQueryWrapper(registrationOrder));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialRegistrationOrder registrationOrder) {
return R.status(registrationOrderService.saveOrUpdate(registrationOrder));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(registrationOrderService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialResult;
import org.springblade.modules.martial.service.IMartialResultService;
import org.springframework.web.bind.annotation.*;
/**
* 成绩表 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/result")
@Tag(name = "成绩表管理", description = "成绩表接口")
public class MartialResultController extends BladeController {
private final IMartialResultService resultService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialResult> detail(@RequestParam Long id) {
MartialResult detail = resultService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialResult>> list(MartialResult result, Query query) {
IPage<MartialResult> pages = resultService.page(Condition.getPage(query), Condition.getQueryWrapper(result));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialResult result) {
return R.status(resultService.saveOrUpdate(result));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(resultService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialScheduleAthlete;
import org.springblade.modules.martial.service.IMartialScheduleAthleteService;
import org.springframework.web.bind.annotation.*;
/**
* 选手赛程关联 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/scheduleAthlete")
@Tag(name = "选手赛程关联管理", description = "选手赛程关联接口")
public class MartialScheduleAthleteController extends BladeController {
private final IMartialScheduleAthleteService scheduleAthleteService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialScheduleAthlete> detail(@RequestParam Long id) {
MartialScheduleAthlete detail = scheduleAthleteService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialScheduleAthlete>> list(MartialScheduleAthlete scheduleAthlete, Query query) {
IPage<MartialScheduleAthlete> pages = scheduleAthleteService.page(Condition.getPage(query), Condition.getQueryWrapper(scheduleAthlete));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialScheduleAthlete scheduleAthlete) {
return R.status(scheduleAthleteService.saveOrUpdate(scheduleAthlete));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(scheduleAthleteService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialSchedule;
import org.springblade.modules.martial.service.IMartialScheduleService;
import org.springframework.web.bind.annotation.*;
/**
* 赛程编排 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/schedule")
@Tag(name = "赛程编排管理", description = "赛程编排接口")
public class MartialScheduleController extends BladeController {
private final IMartialScheduleService scheduleService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialSchedule> detail(@RequestParam Long id) {
MartialSchedule detail = scheduleService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialSchedule>> list(MartialSchedule schedule, Query query) {
IPage<MartialSchedule> pages = scheduleService.page(Condition.getPage(query), Condition.getQueryWrapper(schedule));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialSchedule schedule) {
return R.status(scheduleService.saveOrUpdate(schedule));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(scheduleService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialScore;
import org.springblade.modules.martial.service.IMartialScoreService;
import org.springframework.web.bind.annotation.*;
/**
* 评分记录 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/score")
@Tag(name = "评分记录管理", description = "评分记录接口")
public class MartialScoreController extends BladeController {
private final IMartialScoreService scoreService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialScore> detail(@RequestParam Long id) {
MartialScore detail = scoreService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialScore>> list(MartialScore score, Query query) {
IPage<MartialScore> pages = scoreService.page(Condition.getPage(query), Condition.getQueryWrapper(score));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialScore score) {
return R.status(scoreService.saveOrUpdate(score));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(scoreService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -0,0 +1,67 @@
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.entity.MartialVenue;
import org.springblade.modules.martial.service.IMartialVenueService;
import org.springframework.web.bind.annotation.*;
/**
* 场地信息 控制器
*
* @author BladeX
*/
@RestController
@AllArgsConstructor
@RequestMapping("/martial/venue")
@Tag(name = "场地信息管理", description = "场地信息接口")
public class MartialVenueController extends BladeController {
private final IMartialVenueService venueService;
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "传入ID")
public R<MartialVenue> detail(@RequestParam Long id) {
MartialVenue detail = venueService.getById(id);
return R.data(detail);
}
/**
* 分页列表
*/
@GetMapping("/list")
@Operation(summary = "分页列表", description = "分页查询")
public R<IPage<MartialVenue>> list(MartialVenue venue, Query query) {
IPage<MartialVenue> pages = venueService.page(Condition.getPage(query), Condition.getQueryWrapper(venue));
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@Operation(summary = "新增或修改", description = "传入实体")
public R submit(@RequestBody MartialVenue venue) {
return R.status(venueService.saveOrUpdate(venue));
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "删除", description = "传入ID")
public R remove(@RequestParam String ids) {
return R.status(venueService.removeByIds(Func.toLongList(ids)));
}
}

View File

@@ -1,123 +0,0 @@
/*
* 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
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.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.martial.pojo.entity.Project;
import org.springblade.modules.martial.service.IProjectService;
import org.springblade.modules.martial.pojo.vo.ProjectVO;
import org.springframework.web.bind.annotation.*;
/**
* 项目控制器
*
* @author BladeX
*/
@TenantDS
@RestController
@RequestMapping("/api/martial/project")
@AllArgsConstructor
@Tag(name = "项目管理", description = "项目管理接口")
public class ProjectController extends BladeController {
private final IProjectService projectService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入project")
public R<Project> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
Project detail = projectService.getById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入project")
public R<IPage<Project>> list(Project project, Query query) {
IPage<Project> pages = projectService.page(Condition.getPage(query), Condition.getQueryWrapper(project));
return R.data(pages);
}
/**
* 自定义分页查询
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "自定义分页", description = "传入project")
public R<IPage<ProjectVO>> page(ProjectVO project, Query query) {
IPage<ProjectVO> pages = projectService.selectProjectPage(Condition.getPage(query), project);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入project")
public R save(@RequestBody Project project) {
return R.status(projectService.save(project));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入project")
public R update(@RequestBody Project project) {
return R.status(projectService.updateById(project));
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入project")
public R submit(@RequestBody Project project) {
return R.status(projectService.saveOrUpdate(project));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入主键集合")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(projectService.deleteLogic(Func.toLongList(ids)));
}
}

View File

@@ -1,123 +0,0 @@
/*
* 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
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.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.martial.pojo.entity.RegistrationOrder;
import org.springblade.modules.martial.service.IRegistrationOrderService;
import org.springblade.modules.martial.pojo.vo.RegistrationOrderVO;
import org.springframework.web.bind.annotation.*;
/**
* 报名订单控制器
*
* @author BladeX
*/
@TenantDS
@RestController
@RequestMapping("/api/martial/registrationorder")
@AllArgsConstructor
@Tag(name = "报名订单管理", description = "报名订单管理接口")
public class RegistrationOrderController extends BladeController {
private final IRegistrationOrderService registrationOrderService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入registrationOrder")
public R<RegistrationOrder> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
RegistrationOrder detail = registrationOrderService.getById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入registrationOrder")
public R<IPage<RegistrationOrder>> list(RegistrationOrder registrationOrder, Query query) {
IPage<RegistrationOrder> pages = registrationOrderService.page(Condition.getPage(query), Condition.getQueryWrapper(registrationOrder));
return R.data(pages);
}
/**
* 自定义分页查询
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "自定义分页", description = "传入registrationOrder")
public R<IPage<RegistrationOrderVO>> page(RegistrationOrderVO registrationOrder, Query query) {
IPage<RegistrationOrderVO> pages = registrationOrderService.selectRegistrationOrderPage(Condition.getPage(query), registrationOrder);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入registrationOrder")
public R save(@RequestBody RegistrationOrder registrationOrder) {
return R.status(registrationOrderService.save(registrationOrder));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入registrationOrder")
public R update(@RequestBody RegistrationOrder registrationOrder) {
return R.status(registrationOrderService.updateById(registrationOrder));
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入registrationOrder")
public R submit(@RequestBody RegistrationOrder registrationOrder) {
return R.status(registrationOrderService.saveOrUpdate(registrationOrder));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入主键集合")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(registrationOrderService.deleteLogic(Func.toLongList(ids)));
}
}

View File

@@ -1,132 +0,0 @@
package org.springblade.modules.martial.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
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.modules.martial.pojo.entity.Result;
import org.springblade.modules.martial.service.IResultService;
import org.springblade.modules.martial.pojo.vo.ResultVO;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 成绩控制器
*
* @author Blade
* @since 2025-01-01
*/
@RestController
@AllArgsConstructor
@RequestMapping("/api/martial/result")
@Tag(name = "成绩管理", description = "成绩管理接口")
public class ResultController extends BladeController {
private final IResultService resultService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入result")
public R<ResultVO> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
ResultVO detail = resultService.getResultById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入result")
public R<IPage<ResultVO>> list(ResultVO result, Query query) {
IPage<ResultVO> pages = resultService.selectResultPage(Condition.getPage(query), result);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@Operation(summary = "新增", description = "传入result")
public R save(@Valid @RequestBody Result result) {
return R.status(resultService.save(result));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@Operation(summary = "修改", description = "传入result")
public R update(@Valid @RequestBody Result result) {
return R.status(resultService.updateById(result));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 5)
@Operation(summary = "删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(resultService.removeByIds(org.springblade.core.tool.utils.Func.toLongList(ids)));
}
/**
* 计算排名
*/
@PostMapping("/calculateRank")
@ApiOperationSupport(order = 6)
@Operation(summary = "计算排名", description = "传入competitionId和projectId")
public R calculateRank(@Parameter(description = "赛事ID", required = true) @RequestParam Long competitionId,
@Parameter(description = "项目ID", required = true) @RequestParam Long projectId) {
return R.status(resultService.calculateRank(competitionId, projectId));
}
/**
* 根据赛事ID和项目ID查询成绩排名
*/
@GetMapping("/rankList")
@ApiOperationSupport(order = 7)
@Operation(summary = "根据赛事ID和项目ID查询成绩排名", description = "传入competitionId和projectId")
public R<List<ResultVO>> rankList(@Parameter(description = "赛事ID", required = true) @RequestParam Long competitionId,
@Parameter(description = "项目ID", required = true) @RequestParam Long projectId) {
List<ResultVO> list = resultService.getResultRankList(competitionId, projectId);
return R.data(list);
}
/**
* 根据运动员ID查询成绩列表
*/
@GetMapping("/listByAthlete")
@ApiOperationSupport(order = 8)
@Operation(summary = "根据运动员ID查询成绩列表", description = "传入athleteId")
public R<List<ResultVO>> listByAthlete(@Parameter(description = "运动员ID", required = true) @RequestParam Long athleteId) {
List<ResultVO> list = resultService.getResultByAthleteId(athleteId);
return R.data(list);
}
/**
* 根据赛事ID查询成绩列表
*/
@GetMapping("/listByCompetition")
@ApiOperationSupport(order = 9)
@Operation(summary = "根据赛事ID查询成绩列表", description = "传入competitionId")
public R<List<ResultVO>> listByCompetition(@Parameter(description = "赛事ID", required = true) @RequestParam Long competitionId) {
List<ResultVO> list = resultService.getResultByCompetitionId(competitionId);
return R.data(list);
}
}

View File

@@ -1,109 +0,0 @@
package org.springblade.modules.martial.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
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.modules.martial.pojo.entity.Schedule;
import org.springblade.modules.martial.service.IScheduleService;
import org.springblade.modules.martial.pojo.vo.ScheduleVO;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 编排控制器
*
* @author Blade
* @since 2025-01-01
*/
@RestController
@AllArgsConstructor
@RequestMapping("/api/martial/schedule")
@Tag(name = "编排管理", description = "编排管理接口")
public class ScheduleController extends BladeController {
private final IScheduleService scheduleService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入schedule")
public R<ScheduleVO> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
ScheduleVO detail = scheduleService.getScheduleById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入schedule")
public R<IPage<ScheduleVO>> list(ScheduleVO schedule, Query query) {
IPage<ScheduleVO> pages = scheduleService.selectSchedulePage(Condition.getPage(query), schedule);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@Operation(summary = "新增", description = "传入schedule")
public R save(@Valid @RequestBody Schedule schedule) {
return R.status(scheduleService.save(schedule));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@Operation(summary = "修改", description = "传入schedule")
public R update(@Valid @RequestBody Schedule schedule) {
return R.status(scheduleService.updateById(schedule));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 5)
@Operation(summary = "删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(scheduleService.removeByIds(org.springblade.core.tool.utils.Func.toLongList(ids)));
}
/**
* 根据赛事ID查询编排列表
*/
@GetMapping("/listByCompetition")
@ApiOperationSupport(order = 6)
@Operation(summary = "根据赛事ID查询编排列表", description = "传入competitionId")
public R<List<ScheduleVO>> listByCompetition(@Parameter(description = "赛事ID", required = true) @RequestParam Long competitionId) {
List<ScheduleVO> list = scheduleService.getScheduleByCompetitionId(competitionId);
return R.data(list);
}
/**
* 根据场地ID查询编排列表
*/
@GetMapping("/listByVenue")
@ApiOperationSupport(order = 7)
@Operation(summary = "根据场地ID查询编排列表", description = "传入venueId")
public R<List<ScheduleVO>> listByVenue(@Parameter(description = "场地ID", required = true) @RequestParam Long venueId) {
List<ScheduleVO> list = scheduleService.getScheduleByVenueId(venueId);
return R.data(list);
}
}

View File

@@ -1,132 +0,0 @@
package org.springblade.modules.martial.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
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.modules.martial.pojo.dto.ScoreDTO;
import org.springblade.modules.martial.pojo.entity.Score;
import org.springblade.modules.martial.service.IScoreService;
import org.springblade.modules.martial.pojo.vo.ScoreVO;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 评分控制器
*
* @author Blade
* @since 2025-01-01
*/
@RestController
@AllArgsConstructor
@RequestMapping("/api/martial/score")
@Tag(name = "评分管理", description = "评分管理接口")
public class ScoreController extends BladeController {
private final IScoreService scoreService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入score")
public R<ScoreVO> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
ScoreVO detail = scoreService.getScoreById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入score")
public R<IPage<ScoreVO>> list(ScoreVO score, Query query) {
IPage<ScoreVO> pages = scoreService.selectScorePage(Condition.getPage(query), score);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@Operation(summary = "新增", description = "传入score")
public R save(@Valid @RequestBody Score score) {
return R.status(scoreService.save(score));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@Operation(summary = "修改", description = "传入score")
public R update(@Valid @RequestBody Score score) {
return R.status(scoreService.updateById(score));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 5)
@Operation(summary = "删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(scoreService.removeByIds(org.springblade.core.tool.utils.Func.toLongList(ids)));
}
/**
* 批量评分
*/
@PostMapping("/batchSave")
@ApiOperationSupport(order = 6)
@Operation(summary = "批量评分", description = "传入scoreDTO")
public R batchSave(@Valid @RequestBody ScoreDTO scoreDTO) {
return R.status(scoreService.batchSaveScore(scoreDTO.getScoreList()));
}
/**
* 根据编排ID和裁判ID查询评分
*/
@GetMapping("/getByScheduleAndJudge")
@ApiOperationSupport(order = 7)
@Operation(summary = "根据编排ID和裁判ID查询评分", description = "传入scheduleId和judgeId")
public R<ScoreVO> getByScheduleAndJudge(@Parameter(description = "编排ID", required = true) @RequestParam Long scheduleId,
@Parameter(description = "裁判ID", required = true) @RequestParam Long judgeId) {
ScoreVO score = scoreService.getScoreByScheduleAndJudge(scheduleId, judgeId);
return R.data(score);
}
/**
* 根据编排ID查询所有评分
*/
@GetMapping("/listBySchedule")
@ApiOperationSupport(order = 8)
@Operation(summary = "根据编排ID查询所有评分", description = "传入scheduleId")
public R<List<ScoreVO>> listBySchedule(@Parameter(description = "编排ID", required = true) @RequestParam Long scheduleId) {
List<ScoreVO> list = scoreService.getScoreByScheduleId(scheduleId);
return R.data(list);
}
/**
* 根据运动员ID查询评分列表
*/
@GetMapping("/listByAthlete")
@ApiOperationSupport(order = 9)
@Operation(summary = "根据运动员ID查询评分列表", description = "传入athleteId")
public R<List<ScoreVO>> listByAthlete(@Parameter(description = "运动员ID", required = true) @RequestParam Long athleteId) {
List<ScoreVO> list = scoreService.getScoreByAthleteId(athleteId);
return R.data(list);
}
}

View File

@@ -1,98 +0,0 @@
package org.springblade.modules.martial.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
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.modules.martial.pojo.entity.Venue;
import org.springblade.modules.martial.service.IVenueService;
import org.springblade.modules.martial.pojo.vo.VenueVO;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 场地控制器
*
* @author Blade
* @since 2025-01-01
*/
@RestController
@AllArgsConstructor
@RequestMapping("/api/martial/venue")
@Tag(name = "场地管理", description = "场地管理接口")
public class VenueController extends BladeController {
private final IVenueService venueService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入venue")
public R<VenueVO> detail(@Parameter(description = "主键", required = true) @RequestParam Long id) {
VenueVO detail = venueService.getVenueById(id);
return R.data(detail);
}
/**
* 分页查询
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页查询", description = "传入venue")
public R<IPage<VenueVO>> list(VenueVO venue, Query query) {
IPage<VenueVO> pages = venueService.selectVenuePage(Condition.getPage(query), venue);
return R.data(pages);
}
/**
* 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@Operation(summary = "新增", description = "传入venue")
public R save(@Valid @RequestBody Venue venue) {
return R.status(venueService.save(venue));
}
/**
* 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@Operation(summary = "修改", description = "传入venue")
public R update(@Valid @RequestBody Venue venue) {
return R.status(venueService.updateById(venue));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 5)
@Operation(summary = "删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(venueService.removeByIds(org.springblade.core.tool.utils.Func.toLongList(ids)));
}
/**
* 根据赛事ID查询场地列表
*/
@GetMapping("/listByCompetition")
@ApiOperationSupport(order = 6)
@Operation(summary = "根据赛事ID查询场地列表", description = "传入competitionId")
public R<List<VenueVO>> listByCompetition(@Parameter(description = "赛事ID", required = true) @RequestParam Long competitionId) {
List<VenueVO> list = venueService.getVenueByCompetitionId(competitionId);
return R.data(list);
}
}

View File

@@ -14,27 +14,27 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.pojo.entity;
package org.springblade.modules.martial.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;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;
/**
* 项目实体类
* 活动日程实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("mt_project")
public class Project extends TenantEntity {
@TableName("martial_activity_schedule")
@Schema(description = "活动日程")
public class MartialActivitySchedule extends TenantEntity {
private static final long serialVersionUID = 1L;
@@ -45,51 +45,45 @@ public class Project extends TenantEntity {
private Long competitionId;
/**
* 项目名称
* 日程日期
*/
@Schema(description = "项目名称")
private String projectName;
@Schema(description = "日程日期")
private LocalDate scheduleDate;
/**
* 项目类型1-单人项目2-集体项目
* 日程时间
*/
@Schema(description = "项目类型1-单人项目2-集体项目")
private Integer projectType;
@Schema(description = "日程时间")
private LocalTime scheduleTime;
/**
* 项目价格
* 活动项目
*/
@Schema(description = "项目价格")
private BigDecimal price;
@Schema(description = "活动项目")
private String eventName;
/**
* 单个比赛时长分钟
* 地点
*/
@Schema(description = "单个比赛时长(分钟)")
private Integer duration;
@Schema(description = "地点")
private String venue;
/**
* 性别限制0-不限1-2-
* 描述
*/
@Schema(description = "性别限制0-不限1-男2-女")
private Integer gender;
@Schema(description = "描述")
private String description;
/**
* 年龄组别
* 备注
*/
@Schema(description = "年龄组别")
private String ageGroup;
@Schema(description = "备注")
private String remark;
/**
* 队伍人数集体项目
* 排序
*/
@Schema(description = "队伍人数(集体项目)")
private Integer teamSize;
/**
* 报名人数/队伍数
*/
@Schema(description = "报名人数/队伍数")
private Integer registerCount;
@Schema(description = "排序")
private Integer sortOrder;
}

View File

@@ -0,0 +1,191 @@
/*
* 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.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;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 参赛选手实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_athlete")
@Schema(description = "参赛选手")
public class MartialAthlete extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 订单ID
*/
@Schema(description = "订单ID")
private Long orderId;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 项目ID
*/
@Schema(description = "项目ID")
private Long projectId;
/**
* 选手姓名
*/
@Schema(description = "选手姓名")
private String playerName;
/**
* 参赛编号
*/
@Schema(description = "参赛编号")
private String playerNo;
/**
* 性别(1-男,2-女)
*/
@Schema(description = "性别")
private Integer gender;
/**
* 年龄
*/
@Schema(description = "年龄")
private Integer age;
/**
* 身份证号
*/
@Schema(description = "身份证号")
private String idCard;
/**
* 证件类型(1-身份证,2-护照,3-其他)
*/
@Schema(description = "证件类型")
private Integer idCardType;
/**
* 出生日期
*/
@Schema(description = "出生日期")
private LocalDate birthDate;
/**
* 民族
*/
@Schema(description = "民族")
private String nation;
/**
* 联系电话
*/
@Schema(description = "联系电话")
private String contactPhone;
/**
* 所属单位
*/
@Schema(description = "所属单位")
private String organization;
/**
* 单位类别(1-学校,2-协会,3-俱乐部,4-其他)
*/
@Schema(description = "单位类别")
private Integer organizationType;
/**
* 队伍名称
*/
@Schema(description = "队伍名称")
private String teamName;
/**
* 组别
*/
@Schema(description = "组别")
private String category;
/**
* 出场顺序
*/
@Schema(description = "出场顺序")
private Integer orderNum;
/**
* 选手简介
*/
@Schema(description = "选手简介")
private String introduction;
/**
* 附件(JSON数组)
*/
@Schema(description = "附件")
private String attachments;
/**
* 照片URL
*/
@Schema(description = "照片URL")
private String photoUrl;
/**
* 报名状态(0-待确认,1-已确认,2-已取消)
*/
@Schema(description = "报名状态")
private Integer registrationStatus;
/**
* 比赛状态(0-待出场,1-进行中,2-已完成)
*/
@Schema(description = "比赛状态")
private Integer competitionStatus;
/**
* 总分
*/
@Schema(description = "总分")
private BigDecimal totalScore;
/**
* 排名
*/
@Schema(description = "排名")
private Integer ranking;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,88 @@
/*
* 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.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;
import java.time.LocalDateTime;
/**
* 轮播图实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_banner")
@Schema(description = "轮播图")
public class MartialBanner extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 轮播图标题
*/
@Schema(description = "轮播图标题")
private String title;
/**
* 显示位置(1-首页,2-赛事详情,3-其他)
*/
@Schema(description = "显示位置")
private Integer position;
/**
* 轮播图图片URL
*/
@Schema(description = "图片URL")
private String imageUrl;
/**
* 跳转链接
*/
@Schema(description = "跳转链接")
private String linkUrl;
/**
* 排序顺序
*/
@Schema(description = "排序顺序")
private Integer sortOrder;
/**
* 开始显示时间
*/
@Schema(description = "开始显示时间")
private LocalDateTime startTime;
/**
* 结束显示时间
*/
@Schema(description = "结束显示时间")
private LocalDateTime endTime;
/**
* 点击次数
*/
@Schema(description = "点击次数")
private Integer clickCount;
}

View File

@@ -14,28 +14,27 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.pojo.entity;
package org.springblade.modules.martial.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;
import java.math.BigDecimal;
import java.util.Date;
import java.time.LocalDateTime;
/**
* 赛事实体类
* 赛事信息实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("mt_competition")
public class Competition extends TenantEntity {
@TableName("martial_competition")
@Schema(description = "赛事信息")
public class MartialCompetition extends TenantEntity {
private static final long serialVersionUID = 1L;
@@ -43,7 +42,13 @@ public class Competition extends TenantEntity {
* 赛事名称
*/
@Schema(description = "赛事名称")
private String title;
private String competitionName;
/**
* 赛事编码(用于裁判登录)
*/
@Schema(description = "赛事编码")
private String competitionCode;
/**
* 主办单位
@@ -67,72 +72,90 @@ public class Competition extends TenantEntity {
* 报名开始时间
*/
@Schema(description = "报名开始时间")
private Date registerStartTime;
private LocalDateTime registrationStartTime;
/**
* 报名结束时间
*/
@Schema(description = "报名结束时间")
private Date registerEndTime;
private LocalDateTime registrationEndTime;
/**
* 比赛开始时间
*/
@Schema(description = "比赛开始时间")
private Date matchStartTime;
private LocalDateTime competitionStartTime;
/**
* 比赛结束时间
*/
@Schema(description = "比赛结束时间")
private Date matchEndTime;
private LocalDateTime competitionEndTime;
/**
* 场地数量
* 赛事简介
*/
@Schema(description = "场地数量")
private Integer venueCount;
@Schema(description = "赛事简介")
private String introduction;
/**
* 比赛编码
* 宣传图片(JSON数组)
*/
@Schema(description = "比赛编码")
private String matchCode;
@Schema(description = "宣传图片")
private String posterImages;
/**
* 报名分享链接
* 联系人
*/
@Schema(description = "报名分享链接")
private String shareUrl;
@Schema(description = "联系人")
private String contactPerson;
/**
* 信息发布内容
* 联系电话
*/
@Schema(description = "信息发布内容")
private String infoContent;
@Schema(description = "联系电话")
private String contactPhone;
/**
* 赛事规程内容
* 联系邮箱
*/
@Schema(description = "赛事规程内容")
private String rulesContent;
@Schema(description = "联系邮箱")
private String contactEmail;
/**
* 活动日程内容
* 竞赛规则
*/
@Schema(description = "活动日程内容")
private String scheduleContent;
@Schema(description = "竞赛规则")
private String rules;
/**
* 总报名人数
* 参赛要求
*/
@Schema(description = "总报名人数")
private Integer totalRegisterCount;
@Schema(description = "参赛要求")
private String requirements;
/**
* 总金额
* 奖项设置
*/
@Schema(description = "总金额")
@Schema(description = "奖项设置")
private String awards;
/**
* 规程文件(JSON数组)
*/
@Schema(description = "规程文件")
private String regulationFiles;
/**
* 报名总人数
*/
@Schema(description = "报名总人数")
private Integer totalParticipants;
/**
* 报名总金额
*/
@Schema(description = "报名总金额")
private BigDecimal totalAmount;
}

View File

@@ -0,0 +1,82 @@
/*
* 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.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;
import java.math.BigDecimal;
/**
* 扣分项配置实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_deduction_item")
@Schema(description = "扣分项配置")
public class MartialDeductionItem extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 扣分项名称
*/
@Schema(description = "扣分项名称")
private String itemName;
/**
* 扣分项编码
*/
@Schema(description = "扣分项编码")
private String itemCode;
/**
* 扣分值
*/
@Schema(description = "扣分值")
private BigDecimal deductionPoint;
/**
* 分类
*/
@Schema(description = "分类")
private String category;
/**
* 适用项目(JSON数组)
*/
@Schema(description = "适用项目")
private String applicableProjects;
/**
* 描述
*/
@Schema(description = "描述")
private String description;
/**
* 排序
*/
@Schema(description = "排序")
private Integer sortOrder;
}

View File

@@ -0,0 +1,106 @@
/*
* 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.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;
import java.time.LocalDateTime;
/**
* 信息发布实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_info_publish")
@Schema(description = "信息发布")
public class MartialInfoPublish extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID(NULL表示全局)
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 标题
*/
@Schema(description = "标题")
private String title;
/**
* 信息类型(1-通知,2-公告,3-重要)
*/
@Schema(description = "信息类型")
private Integer infoType;
/**
* 内容
*/
@Schema(description = "内容")
private String content;
/**
* 图片(JSON数组)
*/
@Schema(description = "图片")
private String images;
/**
* 附件(JSON)
*/
@Schema(description = "附件")
private String attachments;
/**
* 发布时间
*/
@Schema(description = "发布时间")
private LocalDateTime publishTime;
/**
* 发布人姓名
*/
@Schema(description = "发布人姓名")
private String publisherName;
/**
* 是否已发布(0-未发布,1-已发布)
*/
@Schema(description = "是否已发布")
private Integer isPublished;
/**
* 阅读次数
*/
@Schema(description = "阅读次数")
private Integer viewCount;
/**
* 排序
*/
@Schema(description = "排序")
private Integer sortOrder;
}

View File

@@ -14,51 +14,44 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.pojo.entity;
package org.springblade.modules.martial.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("mt_athlete")
public class Athlete extends TenantEntity {
@TableName("martial_judge")
@Schema(description = "裁判信息")
public class MartialJudge extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 用户ID
* 裁判姓名
*/
@Schema(description = "用户ID")
private Long userId;
/**
* 姓名
*/
@Schema(description = "姓名")
@Schema(description = "裁判姓名")
private String name;
/**
* 性别1-2-
* 性别(1-,2-)
*/
@Schema(description = "性别1-男2-女")
@Schema(description = "性别")
private Integer gender;
/**
* 年龄
* 手机号
*/
@Schema(description = "年龄")
private Integer age;
@Schema(description = "手机号")
private String phone;
/**
* 身份证号
@@ -67,27 +60,33 @@ public class Athlete extends TenantEntity {
private String idCard;
/**
* 单位名称
* 裁判类型(1-裁判长,2-普通裁判)
*/
@Schema(description = "单位名称")
private String unitName;
@Schema(description = "裁判类型")
private Integer refereeType;
/**
* 队伍名
* 等级/
*/
@Schema(description = "队伍名")
private String teamName;
@Schema(description = "等级职")
private String level;
/**
* 证件类型1-身份证
* 擅长项目
*/
@Schema(description = "证件类型1-身份证")
private Integer idType;
@Schema(description = "擅长项目")
private String specialty;
/**
* 选手编号报名成功后生成
* 照片URL
*/
@Schema(description = "选手编号(报名成功后生成)")
private String playerNumber;
@Schema(description = "照片URL")
private String photoUrl;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,118 @@
/*
* 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.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;
import java.time.LocalDateTime;
/**
* 裁判邀请码实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_judge_invite")
@Schema(description = "裁判邀请码")
public class MartialJudgeInvite extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 裁判ID
*/
@Schema(description = "裁判ID")
private Long judgeId;
/**
* 邀请码
*/
@Schema(description = "邀请码")
private String inviteCode;
/**
* 角色(judge-普通裁判,chief_judge-裁判长)
*/
@Schema(description = "角色")
private String role;
/**
* 分配场地ID
*/
@Schema(description = "分配场地ID")
private Long venueId;
/**
* 分配项目(JSON数组)
*/
@Schema(description = "分配项目")
private String projects;
/**
* 过期时间
*/
@Schema(description = "过期时间")
private LocalDateTime expireTime;
/**
* 是否已使用(0-未使用,1-已使用)
*/
@Schema(description = "是否已使用")
private Integer isUsed;
/**
* 使用时间
*/
@Schema(description = "使用时间")
private LocalDateTime useTime;
/**
* 设备信息
*/
@Schema(description = "设备信息")
private String deviceInfo;
/**
* 登录IP
*/
@Schema(description = "登录IP")
private String loginIp;
/**
* 访问令牌
*/
@Schema(description = "访问令牌")
private String accessToken;
/**
* token过期时间
*/
@Schema(description = "token过期时间")
private LocalDateTime tokenExpireTime;
}

View File

@@ -14,37 +14,29 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.pojo.entity;
package org.springblade.modules.martial.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;
import java.math.BigDecimal;
import java.util.Date;
import java.time.LocalDateTime;
/**
* 报名订单实体类
* 比赛实况实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("mt_registration_order")
public class RegistrationOrder extends TenantEntity {
@TableName("martial_live_update")
@Schema(description = "比赛实况")
public class MartialLiveUpdate extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 订单号
*/
@Schema(description = "订单号")
private String orderNo;
/**
* 赛事ID
*/
@@ -52,51 +44,57 @@ public class RegistrationOrder extends TenantEntity {
private Long competitionId;
/**
* 用户ID
* 赛程ID
*/
@Schema(description = "用户ID")
private Long userId;
@Schema(description = "赛程ID")
private Long scheduleId;
/**
* 联系人姓名
* 选手ID
*/
@Schema(description = "联系人姓名")
private String contactName;
@Schema(description = "选手ID")
private Long athleteId;
/**
* 联系人电话
* 实况类型(1-赛况,2-比分,3-精彩瞬间)
*/
@Schema(description = "联系人电话")
private String contactPhone;
@Schema(description = "实况类型")
private Integer updateType;
/**
* 总金额
* 标题
*/
@Schema(description = "总金额")
private BigDecimal totalAmount;
@Schema(description = "标题")
private String title;
/**
* 实付金额
* 内容
*/
@Schema(description = "实付金额")
private BigDecimal payAmount;
@Schema(description = "内容")
private String content;
/**
* 支付时间
* 图片(JSON数组)
*/
@Schema(description = "支付时间")
private Date payTime;
@Schema(description = "图片")
private String images;
/**
* 支付方式1-微信2-支付宝
* 比分信息
*/
@Schema(description = "支付方式1-微信2-支付宝")
private Integer payType;
@Schema(description = "比分信息")
private String scoreInfo;
/**
* 参赛人数
* 发布时间
*/
@Schema(description = "参赛人数")
private Integer participantCount;
@Schema(description = "发布时间")
private LocalDateTime publishTime;
/**
* 排序
*/
@Schema(description = "排序")
private Integer sortOrder;
}

View File

@@ -0,0 +1,132 @@
/*
* 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.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;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 比赛项目实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_project")
@Schema(description = "比赛项目")
public class MartialProject extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 项目名称
*/
@Schema(description = "项目名称")
private String projectName;
/**
* 项目编码
*/
@Schema(description = "项目编码")
private String projectCode;
/**
* 组别(男子组/女子组)
*/
@Schema(description = "组别")
private String category;
/**
* 类型(1-个人,2-双人,3-集体)
*/
@Schema(description = "类型")
private Integer type;
/**
* 最少参赛人数
*/
@Schema(description = "最少参赛人数")
private Integer minParticipants;
/**
* 最多参赛人数
*/
@Schema(description = "最多参赛人数")
private Integer maxParticipants;
/**
* 最小年龄
*/
@Schema(description = "最小年龄")
private Integer minAge;
/**
* 最大年龄
*/
@Schema(description = "最大年龄")
private Integer maxAge;
/**
* 性别限制(0-不限,1-仅男,2-仅女)
*/
@Schema(description = "性别限制")
private Integer genderLimit;
/**
* 预估时长(分钟)
*/
@Schema(description = "预估时长")
private Integer estimatedDuration;
/**
* 报名费用
*/
@Schema(description = "报名费用")
private BigDecimal price;
/**
* 报名截止时间
*/
@Schema(description = "报名截止时间")
private LocalDateTime registrationDeadline;
/**
* 项目描述
*/
@Schema(description = "项目描述")
private String description;
/**
* 排序
*/
@Schema(description = "排序")
private Integer sortOrder;
}

View File

@@ -0,0 +1,161 @@
/*
* 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.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;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 报名订单实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_registration_order")
@Schema(description = "报名订单")
public class MartialRegistrationOrder extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 订单号
*/
@Schema(description = "订单号")
private String orderNo;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 用户ID
*/
@Schema(description = "用户ID")
private Long userId;
/**
* 用户名
*/
@Schema(description = "用户名")
private String userName;
/**
* 联系人
*/
@Schema(description = "联系人")
private String contactPerson;
/**
* 联系电话
*/
@Schema(description = "联系电话")
private String contactPhone;
/**
* 所属单位
*/
@Schema(description = "所属单位")
private String organization;
/**
* 参赛总人数
*/
@Schema(description = "参赛总人数")
private Integer totalParticipants;
/**
* 订单总金额
*/
@Schema(description = "订单总金额")
private BigDecimal totalAmount;
/**
* 已支付金额
*/
@Schema(description = "已支付金额")
private BigDecimal paidAmount;
/**
* 支付方式(1-微信,2-支付宝,3-线下)
*/
@Schema(description = "支付方式")
private Integer paymentMethod;
/**
* 支付时间
*/
@Schema(description = "支付时间")
private LocalDateTime paymentTime;
/**
* 支付交易号
*/
@Schema(description = "支付交易号")
private String transactionNo;
/**
* 退款金额
*/
@Schema(description = "退款金额")
private BigDecimal refundAmount;
/**
* 退款时间
*/
@Schema(description = "退款时间")
private LocalDateTime refundTime;
/**
* 退款原因
*/
@Schema(description = "退款原因")
private String refundReason;
/**
* 发票类型(0-不需要,1-普通,2-增值税)
*/
@Schema(description = "发票类型")
private Integer invoiceType;
/**
* 发票抬头
*/
@Schema(description = "发票抬头")
private String invoiceTitle;
/**
* 税号
*/
@Schema(description = "税号")
private String invoiceTaxNo;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,161 @@
/*
* 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.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;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 成绩表实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_result")
@Schema(description = "成绩表")
public class MartialResult extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 选手ID
*/
@Schema(description = "选手ID")
private Long athleteId;
/**
* 项目ID
*/
@Schema(description = "项目ID")
private Long projectId;
/**
* 场地ID
*/
@Schema(description = "场地ID")
private Long venueId;
/**
* 选手姓名
*/
@Schema(description = "选手姓名")
private String playerName;
/**
* 队伍名称
*/
@Schema(description = "队伍名称")
private String teamName;
/**
* 总分(所有裁判平均分)
*/
@Schema(description = "总分")
private BigDecimal totalScore;
/**
* 最高分(去掉用)
*/
@Schema(description = "最高分")
private BigDecimal maxScore;
/**
* 最低分(去掉用)
*/
@Schema(description = "最低分")
private BigDecimal minScore;
/**
* 有效评分数
*/
@Schema(description = "有效评分数")
private Integer validScoreCount;
/**
* 原始总分
*/
@Schema(description = "原始总分")
private BigDecimal originalScore;
/**
* 调整后总分
*/
@Schema(description = "调整后总分")
private BigDecimal adjustedScore;
/**
* 难度系数
*/
@Schema(description = "难度系数")
private BigDecimal difficultyCoefficient;
/**
* 最终得分(总分*系数)
*/
@Schema(description = "最终得分")
private BigDecimal finalScore;
/**
* 允许调整范围
*/
@Schema(description = "允许调整范围")
private BigDecimal adjustRange;
/**
* 调整说明
*/
@Schema(description = "调整说明")
private String adjustNote;
/**
* 排名
*/
@Schema(description = "排名")
private Integer ranking;
/**
* 奖牌(1-金牌,2-银牌,3-铜牌)
*/
@Schema(description = "奖牌")
private Integer medal;
/**
* 是否最终成绩(0-否,1-是)
*/
@Schema(description = "是否最终成绩")
private Integer isFinal;
/**
* 发布时间
*/
@Schema(description = "发布时间")
private LocalDateTime publishTime;
}

View File

@@ -0,0 +1,131 @@
/*
* 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.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;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 赛程编排实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_schedule")
@Schema(description = "赛程编排")
public class MartialSchedule extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 订单ID
*/
@Schema(description = "订单ID")
private Long orderId;
/**
* 分组标题
*/
@Schema(description = "分组标题")
private String groupTitle;
/**
* 分组编码
*/
@Schema(description = "分组编码")
private String groupCode;
/**
* 分组类型(1-个人,2-双人,3-集体)
*/
@Schema(description = "分组类型")
private Integer groupType;
/**
* 场地ID
*/
@Schema(description = "场地ID")
private Long venueId;
/**
* 项目ID
*/
@Schema(description = "项目ID")
private Long projectId;
/**
* 比赛日期
*/
@Schema(description = "比赛日期")
private LocalDate scheduleDate;
/**
* 时间段
*/
@Schema(description = "时间段")
private String timeSlot;
/**
* 开始时间
*/
@Schema(description = "开始时间")
private LocalDateTime startTime;
/**
* 结束时间
*/
@Schema(description = "结束时间")
private LocalDateTime endTime;
/**
* 参赛队伍数/人数
*/
@Schema(description = "参赛数量")
private Integer participantCount;
/**
* 预估时长(分钟)
*/
@Schema(description = "预估时长")
private Integer estimatedDuration;
/**
* 是否已确认(0-未确认,1-已确认)
*/
@Schema(description = "是否已确认")
private Integer isConfirmed;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -14,33 +14,61 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.pojo.vo;
package org.springblade.modules.martial.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Project;
import org.springblade.core.tenant.mp.TenantEntity;
/**
* 项目视图对象
* 选手赛程关联实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ProjectVO extends Project {
@TableName("martial_schedule_athlete")
@Schema(description = "选手赛程关联")
public class MartialScheduleAthlete extends TenantEntity {
private static final long serialVersionUID = 1L;
@Schema(description = "赛事名称")
private String competitionTitle;
/**
* 赛程ID
*/
@Schema(description = "赛程ID")
private Long scheduleId;
@Schema(description = "项目类型名称")
private String projectTypeName;
/**
* 选手ID
*/
@Schema(description = "选手ID")
private Long athleteId;
@Schema(description = "性别名称")
private String genderName;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 出场顺序
*/
@Schema(description = "出场顺序")
private Integer orderNum;
/**
* 是否已完赛(0-未完赛,1-已完赛)
*/
@Schema(description = "是否已完赛")
private Integer isCompleted;
/**
* 是否已裁判(0-未裁判,1-已裁判)
*/
@Schema(description = "是否已裁判")
private Integer isRefereed;
}

View File

@@ -0,0 +1,131 @@
/*
* 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.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;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 评分记录实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_score")
@Schema(description = "评分记录")
public class MartialScore extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 选手ID
*/
@Schema(description = "选手ID")
private Long athleteId;
/**
* 项目ID
*/
@Schema(description = "项目ID")
private Long projectId;
/**
* 赛程ID
*/
@Schema(description = "赛程ID")
private Long scheduleId;
/**
* 场地ID
*/
@Schema(description = "场地ID")
private Long venueId;
/**
* 裁判ID
*/
@Schema(description = "裁判ID")
private Long judgeId;
/**
* 裁判姓名
*/
@Schema(description = "裁判姓名")
private String judgeName;
/**
* 评分(5.000-10.000)
*/
@Schema(description = "评分")
private BigDecimal score;
/**
* 原始评分(修改前)
*/
@Schema(description = "原始评分")
private BigDecimal originalScore;
/**
* 选中的扣分项ID(JSON数组)
*/
@Schema(description = "扣分项")
private String deductionItems;
/**
* 评分备注
*/
@Schema(description = "评分备注")
private String note;
/**
* 修改原因
*/
@Schema(description = "修改原因")
private String modifyReason;
/**
* 评分时间
*/
@Schema(description = "评分时间")
private LocalDateTime scoreTime;
/**
* 修改时间
*/
@Schema(description = "修改时间")
private LocalDateTime modifyTime;
/**
* 评分IP地址
*/
@Schema(description = "IP地址")
private String ipAddress;
}

View File

@@ -14,33 +14,61 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.pojo.vo;
package org.springblade.modules.martial.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.RegistrationOrder;
import org.springblade.core.tenant.mp.TenantEntity;
/**
* 报名订单视图对象
* 场地信息实体类
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RegistrationOrderVO extends RegistrationOrder {
@TableName("martial_venue")
@Schema(description = "场地信息")
public class MartialVenue extends TenantEntity {
private static final long serialVersionUID = 1L;
@Schema(description = "赛事名称")
private String competitionTitle;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
@Schema(description = "订单状态名称")
private String statusName;
/**
* 场地名称
*/
@Schema(description = "场地名称")
private String venueName;
@Schema(description = "支付方式名称")
private String payTypeName;
/**
* 场地编码
*/
@Schema(description = "场地编码")
private String venueCode;
/**
* 场地位置
*/
@Schema(description = "场地位置")
private String location;
/**
* 容纳人数
*/
@Schema(description = "容纳人数")
private Integer capacity;
/**
* 设施说明
*/
@Schema(description = "设施说明")
private String facilities;
}

View File

@@ -1,42 +0,0 @@
/*
* 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 com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.martial.pojo.entity.Athlete;
import org.springblade.modules.martial.pojo.vo.AthleteVO;
import java.util.List;
/**
* 运动员Mapper接口
*
* @author BladeX
*/
public interface AthleteMapper extends BaseMapper<Athlete> {
/**
* 自定义分页查询
*
* @param page 分页对象
* @param athlete 运动员对象
* @return 运动员视图对象列表
*/
List<AthleteVO> selectAthletePage(IPage page, AthleteVO athlete);
}

View File

@@ -1,87 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.AthleteMapper">
<!-- 通用查询映射结果 -->
<resultMap id="athleteResultMap" type="org.springblade.modules.martial.pojo.entity.Athlete">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="user_id" property="userId"/>
<result column="name" property="name"/>
<result column="gender" property="gender"/>
<result column="age" property="age"/>
<result column="id_card" property="idCard"/>
<result column="unit_name" property="unitName"/>
<result column="team_name" property="teamName"/>
<result column="id_type" property="idType"/>
<result column="player_number" property="playerNumber"/>
</resultMap>
<!-- 通用查询映射结果 -->
<resultMap id="athleteVOResultMap" type="org.springblade.modules.martial.pojo.vo.AthleteVO">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="user_id" property="userId"/>
<result column="name" property="name"/>
<result column="gender" property="gender"/>
<result column="age" property="age"/>
<result column="id_card" property="idCard"/>
<result column="unit_name" property="unitName"/>
<result column="team_name" property="teamName"/>
<result column="id_type" property="idType"/>
<result column="player_number" property="playerNumber"/>
<result column="gender_name" property="genderName"/>
<result column="id_type_name" property="idTypeName"/>
</resultMap>
<select id="selectAthletePage" resultMap="athleteVOResultMap">
SELECT
a.*,
CASE a.gender
WHEN 1 THEN '男'
WHEN 2 THEN '女'
ELSE '未知'
END AS gender_name,
CASE a.id_type
WHEN 1 THEN '身份证'
ELSE '其他'
END AS id_type_name
FROM
mt_athlete a
WHERE
a.is_deleted = 0
<if test="athlete.tenantId != null and athlete.tenantId != ''">
AND a.tenant_id = #{athlete.tenantId}
</if>
<if test="athlete.name != null and athlete.name != ''">
AND a.name LIKE CONCAT('%', #{athlete.name}, '%')
</if>
<if test="athlete.gender != null">
AND a.gender = #{athlete.gender}
</if>
<if test="athlete.idCard != null and athlete.idCard != ''">
AND a.id_card = #{athlete.idCard}
</if>
<if test="athlete.unitName != null and athlete.unitName != ''">
AND a.unit_name LIKE CONCAT('%', #{athlete.unitName}, '%')
</if>
<if test="athlete.playerNumber != null and athlete.playerNumber != ''">
AND a.player_number = #{athlete.playerNumber}
</if>
ORDER BY a.create_time DESC
</select>
</mapper>

View File

@@ -1,42 +0,0 @@
/*
* 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 com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.martial.pojo.entity.Competition;
import org.springblade.modules.martial.pojo.vo.CompetitionVO;
import java.util.List;
/**
* 赛事Mapper接口
*
* @author BladeX
*/
public interface CompetitionMapper extends BaseMapper<Competition> {
/**
* 自定义分页查询
*
* @param page 分页对象
* @param competition 赛事对象
* @return 赛事视图对象列表
*/
List<CompetitionVO> selectCompetitionPage(IPage page, CompetitionVO competition);
}

View File

@@ -1,95 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.CompetitionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="competitionResultMap" type="org.springblade.modules.martial.pojo.entity.Competition">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="title" property="title"/>
<result column="organizer" property="organizer"/>
<result column="location" property="location"/>
<result column="venue" property="venue"/>
<result column="register_start_time" property="registerStartTime"/>
<result column="register_end_time" property="registerEndTime"/>
<result column="match_start_time" property="matchStartTime"/>
<result column="match_end_time" property="matchEndTime"/>
<result column="venue_count" property="venueCount"/>
<result column="match_code" property="matchCode"/>
<result column="share_url" property="shareUrl"/>
<result column="info_content" property="infoContent"/>
<result column="rules_content" property="rulesContent"/>
<result column="schedule_content" property="scheduleContent"/>
<result column="total_register_count" property="totalRegisterCount"/>
<result column="total_amount" property="totalAmount"/>
</resultMap>
<!-- 通用查询映射结果 -->
<resultMap id="competitionVOResultMap" type="org.springblade.modules.martial.pojo.vo.CompetitionVO">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="title" property="title"/>
<result column="organizer" property="organizer"/>
<result column="location" property="location"/>
<result column="venue" property="venue"/>
<result column="register_start_time" property="registerStartTime"/>
<result column="register_end_time" property="registerEndTime"/>
<result column="match_start_time" property="matchStartTime"/>
<result column="match_end_time" property="matchEndTime"/>
<result column="venue_count" property="venueCount"/>
<result column="match_code" property="matchCode"/>
<result column="share_url" property="shareUrl"/>
<result column="info_content" property="infoContent"/>
<result column="rules_content" property="rulesContent"/>
<result column="schedule_content" property="scheduleContent"/>
<result column="total_register_count" property="totalRegisterCount"/>
<result column="total_amount" property="totalAmount"/>
<result column="status_name" property="statusName"/>
<result column="project_count" property="projectCount"/>
</resultMap>
<select id="selectCompetitionPage" resultMap="competitionVOResultMap">
SELECT
c.*,
CASE c.status
WHEN 0 THEN '待开始'
WHEN 1 THEN '报名中'
WHEN 2 THEN '编排中'
WHEN 3 THEN '进行中'
WHEN 4 THEN '已结束'
ELSE '未知'
END AS status_name,
(SELECT COUNT(*) FROM mt_project p WHERE p.competition_id = c.id AND p.is_deleted = 0) AS project_count
FROM
mt_competition c
WHERE
c.is_deleted = 0
<if test="competition.tenantId != null and competition.tenantId != ''">
AND c.tenant_id = #{competition.tenantId}
</if>
<if test="competition.title != null and competition.title != ''">
AND c.title LIKE CONCAT('%', #{competition.title}, '%')
</if>
<if test="competition.status != null">
AND c.status = #{competition.status}
</if>
<if test="competition.location != null and competition.location != ''">
AND c.location LIKE CONCAT('%', #{competition.location}, '%')
</if>
ORDER BY c.create_time DESC
</select>
</mapper>

View File

@@ -1,54 +0,0 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.martial.pojo.entity.Judge;
import org.springblade.modules.martial.pojo.vo.JudgeVO;
import java.util.List;
/**
* 裁判Mapper接口
*
* @author Blade
* @since 2025-01-01
*/
public interface JudgeMapper extends BaseMapper<Judge> {
/**
* 自定义分页
*
* @param page 分页对象
* @param judge 裁判对象
* @return 分页结果
*/
List<JudgeVO> selectJudgePage(IPage page, @Param("judge") JudgeVO judge);
/**
* 查询裁判详情
*
* @param id 裁判ID
* @return 裁判详情
*/
JudgeVO selectJudgeById(@Param("id") Long id);
/**
* 根据赛事编码和邀请码查询裁判
*
* @param competitionCode 赛事编码
* @param inviteCode 邀请码
* @return 裁判信息
*/
JudgeVO selectJudgeByCodeAndInviteCode(@Param("competitionCode") String competitionCode,
@Param("inviteCode") String inviteCode);
/**
* 根据赛事ID查询裁判列表
*
* @param competitionId 赛事ID
* @return 裁判列表
*/
List<JudgeVO> selectJudgeByCompetitionId(@Param("competitionId") Long competitionId);
}

View File

@@ -1,109 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.JudgeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="judgeResultMap" type="org.springblade.modules.martial.pojo.entity.Judge">
<id column="id" property="id"/>
<result column="competition_id" property="competitionId"/>
<result column="judge_name" property="judgeName"/>
<result column="invite_code" property="inviteCode"/>
<result column="role" property="role"/>
<result column="phone" property="phone"/>
<result column="venue_id" property="venueId"/>
<result column="status" property="status"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="is_deleted" property="isDeleted"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="baseColumnList">
id, competition_id, judge_name, invite_code, role, phone, venue_id, status,
create_user, create_dept, create_time, update_user, update_time, is_deleted
</sql>
<!-- JudgeVO结果映射 -->
<resultMap id="judgeVOResultMap" type="org.springblade.modules.martial.pojo.vo.JudgeVO" extends="judgeResultMap">
<result column="title" property="competitionName"/>
<result column="match_code" property="competitionCode"/>
<result column="venue_name" property="venueName"/>
<result column="venue_no" property="venueNo"/>
</resultMap>
<!-- 分页查询 -->
<select id="selectJudgePage" resultMap="judgeVOResultMap">
SELECT
j.*,
c.title,
c.match_code,
v.venue_name,
v.venue_no
FROM mt_judge j
LEFT JOIN mt_competition c ON j.competition_id = c.id
LEFT JOIN mt_venue v ON j.venue_id = v.id
WHERE j.is_deleted = 0
<if test="judge.competitionId != null">
AND j.competition_id = #{judge.competitionId}
</if>
<if test="judge.judgeName != null and judge.judgeName != ''">
AND j.judge_name LIKE CONCAT('%', #{judge.judgeName}, '%')
</if>
<if test="judge.role != null and judge.role != ''">
AND j.role = #{judge.role}
</if>
<if test="judge.venueId != null">
AND j.venue_id = #{judge.venueId}
</if>
<if test="judge.status != null">
AND j.status = #{judge.status}
</if>
ORDER BY j.create_time DESC
</select>
<!-- 查询详情 -->
<select id="selectJudgeById" resultMap="judgeVOResultMap">
SELECT
j.*,
c.title,
c.match_code,
v.venue_name,
v.venue_no
FROM mt_judge j
LEFT JOIN mt_competition c ON j.competition_id = c.id
LEFT JOIN mt_venue v ON j.venue_id = v.id
WHERE j.id = #{id} AND j.is_deleted = 0
</select>
<!-- 根据赛事编码和邀请码查询裁判 -->
<select id="selectJudgeByCodeAndInviteCode" resultMap="judgeVOResultMap">
SELECT
j.*,
c.title,
c.match_code,
v.venue_name,
v.venue_no
FROM mt_judge j
LEFT JOIN mt_competition c ON j.competition_id = c.id
LEFT JOIN mt_venue v ON j.venue_id = v.id
WHERE c.match_code = #{competitionCode}
AND j.invite_code = #{inviteCode}
AND j.is_deleted = 0
</select>
<!-- 根据赛事ID查询裁判列表 -->
<select id="selectJudgeByCompetitionId" resultMap="judgeVOResultMap">
SELECT
j.*,
v.venue_name,
v.venue_no
FROM mt_judge j
LEFT JOIN mt_venue v ON j.venue_id = v.id
WHERE j.competition_id = #{competitionId} AND j.is_deleted = 0
ORDER BY j.role DESC, j.create_time
</select>
</mapper>

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialActivitySchedule;
/**
* ActivitySchedule Mapper 接口
*
* @author BladeX
*/
public interface MartialActivityScheduleMapper extends BaseMapper<MartialActivitySchedule> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialAthlete;
/**
* Athlete Mapper 接口
*
* @author BladeX
*/
public interface MartialAthleteMapper extends BaseMapper<MartialAthlete> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialBanner;
/**
* Banner Mapper 接口
*
* @author BladeX
*/
public interface MartialBannerMapper extends BaseMapper<MartialBanner> {
}

View File

@@ -14,21 +14,16 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.modules.martial.pojo.dto;
package org.springblade.modules.martial.mapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Project;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialCompetition;
/**
* 项目数据传输对象
* 赛事信息 Mapper 接口
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ProjectDTO extends Project {
private static final long serialVersionUID = 1L;
public interface MartialCompetitionMapper extends BaseMapper<MartialCompetition> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialDeductionItem;
/**
* DeductionItem Mapper 接口
*
* @author BladeX
*/
public interface MartialDeductionItemMapper extends BaseMapper<MartialDeductionItem> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialInfoPublish;
/**
* InfoPublish Mapper 接口
*
* @author BladeX
*/
public interface MartialInfoPublishMapper extends BaseMapper<MartialInfoPublish> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialJudgeInvite;
/**
* JudgeInvite Mapper 接口
*
* @author BladeX
*/
public interface MartialJudgeInviteMapper extends BaseMapper<MartialJudgeInvite> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialJudge;
/**
* Judge Mapper 接口
*
* @author BladeX
*/
public interface MartialJudgeMapper extends BaseMapper<MartialJudge> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialLiveUpdate;
/**
* LiveUpdate Mapper 接口
*
* @author BladeX
*/
public interface MartialLiveUpdateMapper extends BaseMapper<MartialLiveUpdate> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialProject;
/**
* Project Mapper 接口
*
* @author BladeX
*/
public interface MartialProjectMapper extends BaseMapper<MartialProject> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialRegistrationOrder;
/**
* RegistrationOrder Mapper 接口
*
* @author BladeX
*/
public interface MartialRegistrationOrderMapper extends BaseMapper<MartialRegistrationOrder> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialResult;
/**
* Result Mapper 接口
*
* @author BladeX
*/
public interface MartialResultMapper extends BaseMapper<MartialResult> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialScheduleAthlete;
/**
* ScheduleAthlete Mapper 接口
*
* @author BladeX
*/
public interface MartialScheduleAthleteMapper extends BaseMapper<MartialScheduleAthlete> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialSchedule;
/**
* Schedule Mapper 接口
*
* @author BladeX
*/
public interface MartialScheduleMapper extends BaseMapper<MartialSchedule> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialScore;
/**
* Score Mapper 接口
*
* @author BladeX
*/
public interface MartialScoreMapper extends BaseMapper<MartialScore> {
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.martial.entity.MartialVenue;
/**
* Venue Mapper 接口
*
* @author BladeX
*/
public interface MartialVenueMapper extends BaseMapper<MartialVenue> {
}

View File

@@ -1,42 +0,0 @@
/*
* 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 com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.martial.pojo.entity.Project;
import org.springblade.modules.martial.pojo.vo.ProjectVO;
import java.util.List;
/**
* 项目Mapper接口
*
* @author BladeX
*/
public interface ProjectMapper extends BaseMapper<Project> {
/**
* 自定义分页查询
*
* @param page 分页对象
* @param project 项目对象
* @return 项目视图对象列表
*/
List<ProjectVO> selectProjectPage(IPage page, ProjectVO project);
}

View File

@@ -1,89 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.ProjectMapper">
<!-- 通用查询映射结果 -->
<resultMap id="projectResultMap" type="org.springblade.modules.martial.pojo.entity.Project">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="competition_id" property="competitionId"/>
<result column="project_name" property="projectName"/>
<result column="project_type" property="projectType"/>
<result column="price" property="price"/>
<result column="duration" property="duration"/>
<result column="gender" property="gender"/>
<result column="age_group" property="ageGroup"/>
<result column="team_size" property="teamSize"/>
<result column="register_count" property="registerCount"/>
</resultMap>
<!-- 通用查询映射结果 -->
<resultMap id="projectVOResultMap" type="org.springblade.modules.martial.pojo.vo.ProjectVO">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="competition_id" property="competitionId"/>
<result column="project_name" property="projectName"/>
<result column="project_type" property="projectType"/>
<result column="price" property="price"/>
<result column="duration" property="duration"/>
<result column="gender" property="gender"/>
<result column="age_group" property="ageGroup"/>
<result column="team_size" property="teamSize"/>
<result column="register_count" property="registerCount"/>
<result column="competition_title" property="competitionTitle"/>
<result column="project_type_name" property="projectTypeName"/>
<result column="gender_name" property="genderName"/>
</resultMap>
<select id="selectProjectPage" resultMap="projectVOResultMap">
SELECT
p.*,
c.title AS competition_title,
CASE p.project_type
WHEN 1 THEN '单人项目'
WHEN 2 THEN '集体项目'
ELSE '未知'
END AS project_type_name,
CASE p.gender
WHEN 0 THEN '不限'
WHEN 1 THEN '男'
WHEN 2 THEN '女'
ELSE '未知'
END AS gender_name
FROM
mt_project p
LEFT JOIN mt_competition c ON p.competition_id = c.id
WHERE
p.is_deleted = 0
<if test="project.tenantId != null and project.tenantId != ''">
AND p.tenant_id = #{project.tenantId}
</if>
<if test="project.competitionId != null">
AND p.competition_id = #{project.competitionId}
</if>
<if test="project.projectName != null and project.projectName != ''">
AND p.project_name LIKE CONCAT('%', #{project.projectName}, '%')
</if>
<if test="project.projectType != null">
AND p.project_type = #{project.projectType}
</if>
<if test="project.gender != null">
AND p.gender = #{project.gender}
</if>
ORDER BY p.create_time DESC
</select>
</mapper>

View File

@@ -1,42 +0,0 @@
/*
* 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 com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.martial.pojo.entity.RegistrationOrder;
import org.springblade.modules.martial.pojo.vo.RegistrationOrderVO;
import java.util.List;
/**
* 报名订单Mapper接口
*
* @author BladeX
*/
public interface RegistrationOrderMapper extends BaseMapper<RegistrationOrder> {
/**
* 自定义分页查询
*
* @param page 分页对象
* @param registrationOrder 报名订单对象
* @return 报名订单视图对象列表
*/
List<RegistrationOrderVO> selectRegistrationOrderPage(IPage page, RegistrationOrderVO registrationOrder);
}

View File

@@ -1,98 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.RegistrationOrderMapper">
<!-- 通用查询映射结果 -->
<resultMap id="registrationOrderResultMap" type="org.springblade.modules.martial.pojo.entity.RegistrationOrder">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="order_no" property="orderNo"/>
<result column="competition_id" property="competitionId"/>
<result column="user_id" property="userId"/>
<result column="contact_name" property="contactName"/>
<result column="contact_phone" property="contactPhone"/>
<result column="total_amount" property="totalAmount"/>
<result column="pay_amount" property="payAmount"/>
<result column="pay_time" property="payTime"/>
<result column="pay_type" property="payType"/>
<result column="participant_count" property="participantCount"/>
</resultMap>
<!-- 通用查询映射结果 -->
<resultMap id="registrationOrderVOResultMap" type="org.springblade.modules.martial.pojo.vo.RegistrationOrderVO">
<result column="id" property="id"/>
<result column="tenant_id" property="tenantId"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="order_no" property="orderNo"/>
<result column="competition_id" property="competitionId"/>
<result column="user_id" property="userId"/>
<result column="contact_name" property="contactName"/>
<result column="contact_phone" property="contactPhone"/>
<result column="total_amount" property="totalAmount"/>
<result column="pay_amount" property="payAmount"/>
<result column="pay_time" property="payTime"/>
<result column="pay_type" property="payType"/>
<result column="participant_count" property="participantCount"/>
<result column="competition_title" property="competitionTitle"/>
<result column="status_name" property="statusName"/>
<result column="pay_type_name" property="payTypeName"/>
</resultMap>
<select id="selectRegistrationOrderPage" resultMap="registrationOrderVOResultMap">
SELECT
ro.*,
c.title AS competition_title,
CASE ro.status
WHEN 0 THEN '待支付'
WHEN 1 THEN '已支付'
WHEN 2 THEN '已取消'
WHEN 3 THEN '已退款'
ELSE '未知'
END AS status_name,
CASE ro.pay_type
WHEN 1 THEN '微信'
WHEN 2 THEN '支付宝'
ELSE '未支付'
END AS pay_type_name
FROM
mt_registration_order ro
LEFT JOIN mt_competition c ON ro.competition_id = c.id
WHERE
ro.is_deleted = 0
<if test="registrationOrder.tenantId != null and registrationOrder.tenantId != ''">
AND ro.tenant_id = #{registrationOrder.tenantId}
</if>
<if test="registrationOrder.orderNo != null and registrationOrder.orderNo != ''">
AND ro.order_no = #{registrationOrder.orderNo}
</if>
<if test="registrationOrder.competitionId != null">
AND ro.competition_id = #{registrationOrder.competitionId}
</if>
<if test="registrationOrder.userId != null">
AND ro.user_id = #{registrationOrder.userId}
</if>
<if test="registrationOrder.status != null">
AND ro.status = #{registrationOrder.status}
</if>
<if test="registrationOrder.contactName != null and registrationOrder.contactName != ''">
AND ro.contact_name LIKE CONCAT('%', #{registrationOrder.contactName}, '%')
</if>
<if test="registrationOrder.contactPhone != null and registrationOrder.contactPhone != ''">
AND ro.contact_phone = #{registrationOrder.contactPhone}
</if>
ORDER BY ro.create_time DESC
</select>
</mapper>

View File

@@ -1,62 +0,0 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.martial.pojo.entity.Result;
import org.springblade.modules.martial.pojo.vo.ResultVO;
import java.util.List;
/**
* 成绩Mapper接口
*
* @author Blade
* @since 2025-01-01
*/
public interface ResultMapper extends BaseMapper<Result> {
/**
* 自定义分页
*
* @param page 分页对象
* @param result 成绩对象
* @return 分页结果
*/
List<ResultVO> selectResultPage(IPage page, @Param("result") ResultVO result);
/**
* 查询成绩详情
*
* @param id 成绩ID
* @return 成绩详情
*/
ResultVO selectResultById(@Param("id") Long id);
/**
* 根据赛事ID和项目ID查询成绩列表按排名排序
*
* @param competitionId 赛事ID
* @param projectId 项目ID
* @return 成绩列表
*/
List<ResultVO> selectResultRankList(@Param("competitionId") Long competitionId,
@Param("projectId") Long projectId);
/**
* 根据运动员ID查询成绩列表
*
* @param athleteId 运动员ID
* @return 成绩列表
*/
List<ResultVO> selectResultByAthleteId(@Param("athleteId") Long athleteId);
/**
* 根据赛事ID查询成绩列表
*
* @param competitionId 赛事ID
* @return 成绩列表
*/
List<ResultVO> selectResultByCompetitionId(@Param("competitionId") Long competitionId);
}

View File

@@ -1,137 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.ResultMapper">
<!-- 通用查询映射结果 -->
<resultMap id="resultResultMap" type="org.springblade.modules.martial.pojo.entity.Result">
<id column="id" property="id"/>
<result column="competition_id" property="competitionId"/>
<result column="schedule_id" property="scheduleId"/>
<result column="registration_project_id" property="registrationProjectId"/>
<result column="athlete_id" property="athleteId"/>
<result column="project_id" property="projectId"/>
<result column="total_score" property="totalScore"/>
<result column="final_score" property="finalScore"/>
<result column="rank" property="rank"/>
<result column="chief_adjust_score" property="chiefAdjustScore"/>
<result column="chief_remark" property="chiefRemark"/>
<result column="status" property="status"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="is_deleted" property="isDeleted"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="baseColumnList">
id, competition_id, schedule_id, registration_project_id, athlete_id, project_id,
total_score, final_score, rank, chief_adjust_score, chief_remark, status,
create_user, create_dept, create_time, update_user, update_time, is_deleted
</sql>
<!-- ResultVO结果映射 -->
<resultMap id="resultVOResultMap" type="org.springblade.modules.martial.pojo.vo.ResultVO" extends="resultResultMap">
<result column="title" property="competitionName"/>
<result column="project_name" property="projectName"/>
<result column="project_type" property="projectType"/>
<result column="name" property="athleteName"/>
<result column="player_number" property="athleteCode"/>
<result column="unit_name" property="athleteOrganization"/>
</resultMap>
<!-- 分页查询 -->
<select id="selectResultPage" resultMap="resultVOResultMap">
SELECT
r.*,
c.title,
p.project_name,
p.project_type,
a.name,
a.player_number,
a.unit_name
FROM mt_result r
LEFT JOIN mt_competition c ON r.competition_id = c.id
LEFT JOIN mt_project p ON r.project_id = p.id
LEFT JOIN mt_athlete a ON r.athlete_id = a.id
WHERE r.is_deleted = 0
<if test="result.competitionId != null">
AND r.competition_id = #{result.competitionId}
</if>
<if test="result.projectId != null">
AND r.project_id = #{result.projectId}
</if>
<if test="result.athleteId != null">
AND r.athlete_id = #{result.athleteId}
</if>
<if test="result.status != null">
AND r.status = #{result.status}
</if>
ORDER BY r.rank ASC, r.final_score DESC
</select>
<!-- 查询详情 -->
<select id="selectResultById" resultMap="resultVOResultMap">
SELECT
r.*,
c.title,
p.project_name,
p.project_type,
a.name,
a.player_number,
a.unit_name
FROM mt_result r
LEFT JOIN mt_competition c ON r.competition_id = c.id
LEFT JOIN mt_project p ON r.project_id = p.id
LEFT JOIN mt_athlete a ON r.athlete_id = a.id
WHERE r.id = #{id} AND r.is_deleted = 0
</select>
<!-- 根据赛事ID和项目ID查询成绩列表按排名排序 -->
<select id="selectResultRankList" resultMap="resultVOResultMap">
SELECT
r.*,
a.name,
a.player_number,
a.unit_name
FROM mt_result r
LEFT JOIN mt_athlete a ON r.athlete_id = a.id
WHERE r.competition_id = #{competitionId}
AND r.project_id = #{projectId}
AND r.is_deleted = 0
AND r.status = 2
ORDER BY r.rank ASC, r.final_score DESC
</select>
<!-- 根据运动员ID查询成绩列表 -->
<select id="selectResultByAthleteId" resultMap="resultVOResultMap">
SELECT
r.*,
c.title,
p.project_name,
p.project_type
FROM mt_result r
LEFT JOIN mt_competition c ON r.competition_id = c.id
LEFT JOIN mt_project p ON r.project_id = p.id
WHERE r.athlete_id = #{athleteId} AND r.is_deleted = 0
ORDER BY r.create_time DESC
</select>
<!-- 根据赛事ID查询成绩列表 -->
<select id="selectResultByCompetitionId" resultMap="resultVOResultMap">
SELECT
r.*,
p.project_name,
p.project_type,
a.name,
a.player_number,
a.unit_name
FROM mt_result r
LEFT JOIN mt_project p ON r.project_id = p.id
LEFT JOIN mt_athlete a ON r.athlete_id = a.id
WHERE r.competition_id = #{competitionId} AND r.is_deleted = 0
ORDER BY p.project_name, r.rank ASC
</select>
</mapper>

View File

@@ -1,52 +0,0 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.martial.pojo.entity.Schedule;
import org.springblade.modules.martial.pojo.vo.ScheduleVO;
import java.util.List;
/**
* 编排Mapper接口
*
* @author Blade
* @since 2025-01-01
*/
public interface ScheduleMapper extends BaseMapper<Schedule> {
/**
* 自定义分页
*
* @param page 分页对象
* @param schedule 编排对象
* @return 分页结果
*/
List<ScheduleVO> selectSchedulePage(IPage page, @Param("schedule") ScheduleVO schedule);
/**
* 查询编排详情
*
* @param id 编排ID
* @return 编排详情
*/
ScheduleVO selectScheduleById(@Param("id") Long id);
/**
* 根据赛事ID查询编排列表
*
* @param competitionId 赛事ID
* @return 编排列表
*/
List<ScheduleVO> selectScheduleByCompetitionId(@Param("competitionId") Long competitionId);
/**
* 根据场地ID查询编排列表
*
* @param venueId 场地ID
* @return 编排列表
*/
List<ScheduleVO> selectScheduleByVenueId(@Param("venueId") Long venueId);
}

View File

@@ -1,148 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.ScheduleMapper">
<!-- 通用查询映射结果 -->
<resultMap id="scheduleResultMap" type="org.springblade.modules.martial.pojo.entity.Schedule">
<id column="id" property="id"/>
<result column="competition_id" property="competitionId"/>
<result column="venue_id" property="venueId"/>
<result column="project_id" property="projectId"/>
<result column="registration_project_id" property="registrationProjectId"/>
<result column="time_slot" property="timeSlot"/>
<result column="estimated_start_time" property="estimatedStartTime"/>
<result column="estimated_end_time" property="estimatedEndTime"/>
<result column="actual_start_time" property="actualStartTime"/>
<result column="actual_end_time" property="actualEndTime"/>
<result column="order_no" property="orderNo"/>
<result column="status" property="status"/>
<result column="schedule_type" property="scheduleType"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="is_deleted" property="isDeleted"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="baseColumnList">
id, competition_id, venue_id, project_id, registration_project_id, time_slot,
estimated_start_time, estimated_end_time, actual_start_time, actual_end_time,
order_no, status, schedule_type,
create_user, create_dept, create_time, update_user, update_time, is_deleted
</sql>
<!-- ScheduleVO结果映射 -->
<resultMap id="scheduleVOResultMap" type="org.springblade.modules.martial.pojo.vo.ScheduleVO" extends="scheduleResultMap">
<result column="title" property="competitionName"/>
<result column="venue_name" property="venueName"/>
<result column="venue_no" property="venueNo"/>
<result column="project_name" property="projectName"/>
<result column="project_type" property="projectType"/>
<result column="name" property="athleteName"/>
<result column="player_number" property="athleteCode"/>
<result column="unit_name" property="athleteOrganization"/>
</resultMap>
<!-- 分页查询 -->
<select id="selectSchedulePage" resultMap="scheduleVOResultMap">
SELECT
s.*,
c.title,
v.venue_name,
v.venue_no,
p.project_name,
p.project_type,
a.name,
a.player_number,
a.unit_name
FROM mt_schedule s
LEFT JOIN mt_competition c ON s.competition_id = c.id
LEFT JOIN mt_venue v ON s.venue_id = v.id
LEFT JOIN mt_project p ON s.project_id = p.id
LEFT JOIN mt_registration_project rp ON s.registration_project_id = rp.id
LEFT JOIN mt_athlete a ON rp.athlete_id = a.id
WHERE s.is_deleted = 0
<if test="schedule.competitionId != null">
AND s.competition_id = #{schedule.competitionId}
</if>
<if test="schedule.venueId != null">
AND s.venue_id = #{schedule.venueId}
</if>
<if test="schedule.projectId != null">
AND s.project_id = #{schedule.projectId}
</if>
<if test="schedule.status != null">
AND s.status = #{schedule.status}
</if>
<if test="schedule.scheduleType != null">
AND s.schedule_type = #{schedule.scheduleType}
</if>
<if test="schedule.timeSlot != null and schedule.timeSlot != ''">
AND s.time_slot = #{schedule.timeSlot}
</if>
ORDER BY s.estimated_start_time, s.order_no
</select>
<!-- 查询详情 -->
<select id="selectScheduleById" resultMap="scheduleVOResultMap">
SELECT
s.*,
c.title,
v.venue_name,
v.venue_no,
p.project_name,
p.project_type,
a.name,
a.player_number,
a.unit_name
FROM mt_schedule s
LEFT JOIN mt_competition c ON s.competition_id = c.id
LEFT JOIN mt_venue v ON s.venue_id = v.id
LEFT JOIN mt_project p ON s.project_id = p.id
LEFT JOIN mt_registration_project rp ON s.registration_project_id = rp.id
LEFT JOIN mt_athlete a ON rp.athlete_id = a.id
WHERE s.id = #{id} AND s.is_deleted = 0
</select>
<!-- 根据赛事ID查询编排列表 -->
<select id="selectScheduleByCompetitionId" resultMap="scheduleVOResultMap">
SELECT
s.*,
v.venue_name,
v.venue_no,
p.project_name,
p.project_type,
a.name,
a.player_number,
a.unit_name
FROM mt_schedule s
LEFT JOIN mt_venue v ON s.venue_id = v.id
LEFT JOIN mt_project p ON s.project_id = p.id
LEFT JOIN mt_registration_project rp ON s.registration_project_id = rp.id
LEFT JOIN mt_athlete a ON rp.athlete_id = a.id
WHERE s.competition_id = #{competitionId} AND s.is_deleted = 0
ORDER BY s.estimated_start_time, s.order_no
</select>
<!-- 根据场地ID查询编排列表 -->
<select id="selectScheduleByVenueId" resultMap="scheduleVOResultMap">
SELECT
s.*,
c.title,
p.project_name,
p.project_type,
a.name,
a.player_number,
a.unit_name
FROM mt_schedule s
LEFT JOIN mt_competition c ON s.competition_id = c.id
LEFT JOIN mt_project p ON s.project_id = p.id
LEFT JOIN mt_registration_project rp ON s.registration_project_id = rp.id
LEFT JOIN mt_athlete a ON rp.athlete_id = a.id
WHERE s.venue_id = #{venueId} AND s.is_deleted = 0
ORDER BY s.estimated_start_time, s.order_no
</select>
</mapper>

View File

@@ -1,62 +0,0 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.martial.pojo.entity.Score;
import org.springblade.modules.martial.pojo.vo.ScoreVO;
import java.util.List;
/**
* 评分Mapper接口
*
* @author Blade
* @since 2025-01-01
*/
public interface ScoreMapper extends BaseMapper<Score> {
/**
* 自定义分页
*
* @param page 分页对象
* @param score 评分对象
* @return 分页结果
*/
List<ScoreVO> selectScorePage(IPage page, @Param("score") ScoreVO score);
/**
* 查询评分详情
*
* @param id 评分ID
* @return 评分详情
*/
ScoreVO selectScoreById(@Param("id") Long id);
/**
* 根据编排ID和裁判ID查询评分
*
* @param scheduleId 编排ID
* @param judgeId 裁判ID
* @return 评分信息
*/
ScoreVO selectScoreByScheduleAndJudge(@Param("scheduleId") Long scheduleId,
@Param("judgeId") Long judgeId);
/**
* 根据编排ID查询所有评分
*
* @param scheduleId 编排ID
* @return 评分列表
*/
List<ScoreVO> selectScoreByScheduleId(@Param("scheduleId") Long scheduleId);
/**
* 根据运动员ID查询评分列表
*
* @param athleteId 运动员ID
* @return 评分列表
*/
List<ScoreVO> selectScoreByAthleteId(@Param("athleteId") Long athleteId);
}

View File

@@ -1,169 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.ScoreMapper">
<!-- 通用查询映射结果 -->
<resultMap id="scoreResultMap" type="org.springblade.modules.martial.pojo.entity.Score">
<id column="id" property="id"/>
<result column="competition_id" property="competitionId"/>
<result column="schedule_id" property="scheduleId"/>
<result column="registration_project_id" property="registrationProjectId"/>
<result column="athlete_id" property="athleteId"/>
<result column="project_id" property="projectId"/>
<result column="venue_id" property="venueId"/>
<result column="judge_id" property="judgeId"/>
<result column="score" property="score"/>
<result column="deduction_items" property="deductionItems"/>
<result column="remark" property="remark"/>
<result column="score_time" property="scoreTime"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="is_deleted" property="isDeleted"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="baseColumnList">
id, competition_id, schedule_id, registration_project_id, athlete_id, project_id,
venue_id, judge_id, score, deduction_items, remark, score_time,
create_user, create_dept, create_time, update_user, update_time, is_deleted
</sql>
<!-- ScoreVO结果映射 -->
<resultMap id="scoreVOResultMap" type="org.springblade.modules.martial.pojo.vo.ScoreVO" extends="scoreResultMap">
<result column="title" property="competitionName"/>
<result column="project_name" property="projectName"/>
<result column="project_type" property="projectType"/>
<result column="name" property="athleteName"/>
<result column="player_number" property="athleteCode"/>
<result column="judge_name" property="judgeName"/>
<result column="judge_role" property="judgeRole"/>
<result column="venue_name" property="venueName"/>
<result column="venue_no" property="venueNo"/>
</resultMap>
<!-- 分页查询 -->
<select id="selectScorePage" resultMap="scoreVOResultMap">
SELECT
s.*,
c.title,
p.project_name,
p.project_type,
a.name,
a.player_number,
j.judge_name,
j.role as judge_role,
v.venue_name,
v.venue_no
FROM mt_score s
LEFT JOIN mt_competition c ON s.competition_id = c.id
LEFT JOIN mt_project p ON s.project_id = p.id
LEFT JOIN mt_athlete a ON s.athlete_id = a.id
LEFT JOIN mt_judge j ON s.judge_id = j.id
LEFT JOIN mt_venue v ON s.venue_id = v.id
WHERE s.is_deleted = 0
<if test="score.competitionId != null">
AND s.competition_id = #{score.competitionId}
</if>
<if test="score.scheduleId != null">
AND s.schedule_id = #{score.scheduleId}
</if>
<if test="score.athleteId != null">
AND s.athlete_id = #{score.athleteId}
</if>
<if test="score.judgeId != null">
AND s.judge_id = #{score.judgeId}
</if>
<if test="score.projectId != null">
AND s.project_id = #{score.projectId}
</if>
<if test="score.venueId != null">
AND s.venue_id = #{score.venueId}
</if>
ORDER BY s.score_time DESC
</select>
<!-- 查询详情 -->
<select id="selectScoreById" resultMap="scoreVOResultMap">
SELECT
s.*,
c.title,
p.project_name,
p.project_type,
a.name,
a.player_number,
j.judge_name,
j.role as judge_role,
v.venue_name,
v.venue_no
FROM mt_score s
LEFT JOIN mt_competition c ON s.competition_id = c.id
LEFT JOIN mt_project p ON s.project_id = p.id
LEFT JOIN mt_athlete a ON s.athlete_id = a.id
LEFT JOIN mt_judge j ON s.judge_id = j.id
LEFT JOIN mt_venue v ON s.venue_id = v.id
WHERE s.id = #{id} AND s.is_deleted = 0
</select>
<!-- 根据编排ID和裁判ID查询评分 -->
<select id="selectScoreByScheduleAndJudge" resultMap="scoreVOResultMap">
SELECT
s.*,
c.title,
p.project_name,
p.project_type,
a.name,
a.player_number,
j.judge_name,
j.role as judge_role,
v.venue_name,
v.venue_no
FROM mt_score s
LEFT JOIN mt_competition c ON s.competition_id = c.id
LEFT JOIN mt_project p ON s.project_id = p.id
LEFT JOIN mt_athlete a ON s.athlete_id = a.id
LEFT JOIN mt_judge j ON s.judge_id = j.id
LEFT JOIN mt_venue v ON s.venue_id = v.id
WHERE s.schedule_id = #{scheduleId}
AND s.judge_id = #{judgeId}
AND s.is_deleted = 0
</select>
<!-- 根据编排ID查询所有评分 -->
<select id="selectScoreByScheduleId" resultMap="scoreVOResultMap">
SELECT
s.*,
a.name,
a.player_number,
j.judge_name,
j.role as judge_role
FROM mt_score s
LEFT JOIN mt_athlete a ON s.athlete_id = a.id
LEFT JOIN mt_judge j ON s.judge_id = j.id
WHERE s.schedule_id = #{scheduleId} AND s.is_deleted = 0
ORDER BY j.role DESC, s.score_time
</select>
<!-- 根据运动员ID查询评分列表 -->
<select id="selectScoreByAthleteId" resultMap="scoreVOResultMap">
SELECT
s.*,
c.title,
p.project_name,
p.project_type,
j.judge_name,
j.role as judge_role,
v.venue_name,
v.venue_no
FROM mt_score s
LEFT JOIN mt_competition c ON s.competition_id = c.id
LEFT JOIN mt_project p ON s.project_id = p.id
LEFT JOIN mt_judge j ON s.judge_id = j.id
LEFT JOIN mt_venue v ON s.venue_id = v.id
WHERE s.athlete_id = #{athleteId} AND s.is_deleted = 0
ORDER BY s.score_time DESC
</select>
</mapper>

View File

@@ -1,44 +0,0 @@
package org.springblade.modules.martial.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.martial.pojo.entity.Venue;
import org.springblade.modules.martial.pojo.vo.VenueVO;
import java.util.List;
/**
* 场地Mapper接口
*
* @author Blade
* @since 2025-01-01
*/
public interface VenueMapper extends BaseMapper<Venue> {
/**
* 自定义分页
*
* @param page 分页对象
* @param venue 场地对象
* @return 分页结果
*/
List<VenueVO> selectVenuePage(IPage page, @Param("venue") VenueVO venue);
/**
* 查询场地详情
*
* @param id 场地ID
* @return 场地详情
*/
VenueVO selectVenueById(@Param("id") Long id);
/**
* 根据赛事ID查询场地列表
*
* @param competitionId 赛事ID
* @return 场地列表
*/
List<VenueVO> selectVenueByCompetitionId(@Param("competitionId") Long competitionId);
}

View File

@@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.martial.mapper.VenueMapper">
<!-- 通用查询映射结果 -->
<resultMap id="venueResultMap" type="org.springblade.modules.martial.pojo.entity.Venue">
<id column="id" property="id"/>
<result column="competition_id" property="competitionId"/>
<result column="venue_name" property="venueName"/>
<result column="venue_no" property="venueNo"/>
<result column="status" property="status"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="is_deleted" property="isDeleted"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="baseColumnList">
id, competition_id, venue_name, venue_no, status,
create_user, create_dept, create_time, update_user, update_time, is_deleted
</sql>
<!-- VenueVO结果映射 -->
<resultMap id="venueVOResultMap" type="org.springblade.modules.martial.pojo.vo.VenueVO" extends="venueResultMap">
<result column="title" property="competitionName"/>
<result column="match_code" property="competitionCode"/>
<result column="judge_count" property="judgeCount"/>
<result column="schedule_count" property="scheduleCount"/>
</resultMap>
<!-- 分页查询 -->
<select id="selectVenuePage" resultMap="venueVOResultMap">
SELECT
v.*,
c.title,
c.match_code,
(SELECT COUNT(*) FROM mt_judge j WHERE j.venue_id = v.id AND j.is_deleted = 0) as judge_count,
(SELECT COUNT(*) FROM mt_schedule s WHERE s.venue_id = v.id AND s.is_deleted = 0) as schedule_count
FROM mt_venue v
LEFT JOIN mt_competition c ON v.competition_id = c.id
WHERE v.is_deleted = 0
<if test="venue.competitionId != null">
AND v.competition_id = #{venue.competitionId}
</if>
<if test="venue.venueName != null and venue.venueName != ''">
AND v.venue_name LIKE CONCAT('%', #{venue.venueName}, '%')
</if>
<if test="venue.venueNo != null and venue.venueNo != ''">
AND v.venue_no LIKE CONCAT('%', #{venue.venueNo}, '%')
</if>
<if test="venue.status != null">
AND v.status = #{venue.status}
</if>
ORDER BY v.venue_no
</select>
<!-- 查询详情 -->
<select id="selectVenueById" resultMap="venueVOResultMap">
SELECT
v.*,
c.title,
c.match_code,
(SELECT COUNT(*) FROM mt_judge j WHERE j.venue_id = v.id AND j.is_deleted = 0) as judge_count,
(SELECT COUNT(*) FROM mt_schedule s WHERE s.venue_id = v.id AND s.is_deleted = 0) as schedule_count
FROM mt_venue v
LEFT JOIN mt_competition c ON v.competition_id = c.id
WHERE v.id = #{id} AND v.is_deleted = 0
</select>
<!-- 根据赛事ID查询场地列表 -->
<select id="selectVenueByCompetitionId" resultMap="venueVOResultMap">
SELECT
v.*,
(SELECT COUNT(*) FROM mt_judge j WHERE j.venue_id = v.id AND j.is_deleted = 0) as judge_count,
(SELECT COUNT(*) FROM mt_schedule s WHERE s.venue_id = v.id AND s.is_deleted = 0) as schedule_count
FROM mt_venue v
WHERE v.competition_id = #{competitionId} AND v.is_deleted = 0
ORDER BY v.venue_no
</select>
</mapper>

View File

@@ -1,34 +0,0 @@
/*
* 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.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Athlete;
/**
* 运动员数据传输对象
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class AthleteDTO extends Athlete {
private static final long serialVersionUID = 1L;
}

View File

@@ -1,34 +0,0 @@
/*
* 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.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Competition;
/**
* 赛事数据传输对象
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CompetitionDTO extends Competition {
private static final long serialVersionUID = 1L;
}

View File

@@ -1,19 +0,0 @@
package org.springblade.modules.martial.pojo.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Judge;
/**
* 裁判数据传输对象
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class JudgeDTO extends Judge {
private static final long serialVersionUID = 1L;
}

View File

@@ -1,34 +0,0 @@
/*
* 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.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.RegistrationOrder;
/**
* 报名订单数据传输对象
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RegistrationOrderDTO extends RegistrationOrder {
private static final long serialVersionUID = 1L;
}

View File

@@ -1,19 +0,0 @@
package org.springblade.modules.martial.pojo.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Result;
/**
* 成绩数据传输对象
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ResultDTO extends Result {
private static final long serialVersionUID = 1L;
}

View File

@@ -1,19 +0,0 @@
package org.springblade.modules.martial.pojo.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Schedule;
/**
* 编排数据传输对象
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ScheduleDTO extends Schedule {
private static final long serialVersionUID = 1L;
}

View File

@@ -1,26 +0,0 @@
package org.springblade.modules.martial.pojo.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Score;
import java.util.List;
/**
* 评分数据传输对象
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ScoreDTO extends Score {
private static final long serialVersionUID = 1L;
/**
* 批量评分列表
*/
private List<Score> scoreList;
}

View File

@@ -1,19 +0,0 @@
package org.springblade.modules.martial.pojo.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Venue;
/**
* 场地数据传输对象
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class VenueDTO extends Venue {
private static final long serialVersionUID = 1L;
}

View File

@@ -1,66 +0,0 @@
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 Blade
* @since 2025-01-01
*/
@Data
@TableName("mt_judge")
@EqualsAndHashCode(callSuper = true)
public class Judge extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 裁判姓名
*/
@Schema(description = "裁判姓名")
private String judgeName;
/**
* 邀请码
*/
@Schema(description = "邀请码")
private String inviteCode;
/**
* 角色pub-普通裁判admin-裁判长
*/
@Schema(description = "角色pub-普通裁判admin-裁判长")
private String role;
/**
* 联系电话
*/
@Schema(description = "联系电话")
private String phone;
/**
* 场地ID
*/
@Schema(description = "场地ID")
private Long venueId;
/**
* 状态0-待确认1-已确认2-已拒绝
*/
@Schema(description = "状态0-待确认1-已确认2-已拒绝")
private Integer status;
}

View File

@@ -1,92 +0,0 @@
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;
import java.math.BigDecimal;
/**
* 成绩实体类
*
* @author Blade
* @since 2025-01-01
*/
@Data
@TableName("mt_result")
@EqualsAndHashCode(callSuper = true)
public class Result extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 编排ID
*/
@Schema(description = "编排ID")
private Long scheduleId;
/**
* 报名项目ID
*/
@Schema(description = "报名项目ID")
private Long registrationProjectId;
/**
* 运动员ID
*/
@Schema(description = "运动员ID")
private Long athleteId;
/**
* 项目ID
*/
@Schema(description = "项目ID")
private Long projectId;
/**
* 总分
*/
@Schema(description = "总分")
private BigDecimal totalScore;
/**
* 最终分数(裁判长可调整)
*/
@Schema(description = "最终分数(裁判长可调整)")
private BigDecimal finalScore;
/**
* 排名
*/
@Schema(description = "排名")
private Integer rank;
/**
* 裁判长调整分数
*/
@Schema(description = "裁判长调整分数")
private BigDecimal chiefAdjustScore;
/**
* 裁判长备注
*/
@Schema(description = "裁判长备注")
private String chiefRemark;
/**
* 状态0-待评分1-评分中2-已完成
*/
@Schema(description = "状态0-待评分1-评分中2-已完成")
private Integer status;
}

View File

@@ -1,98 +0,0 @@
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;
import java.time.LocalDateTime;
/**
* 编排实体类
*
* @author Blade
* @since 2025-01-01
*/
@Data
@TableName("mt_schedule")
@EqualsAndHashCode(callSuper = true)
public class Schedule extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 场地ID
*/
@Schema(description = "场地ID")
private Long venueId;
/**
* 项目ID
*/
@Schema(description = "项目ID")
private Long projectId;
/**
* 报名项目ID
*/
@Schema(description = "报名项目ID")
private Long registrationProjectId;
/**
* 比赛时间段
*/
@Schema(description = "比赛时间段")
private String timeSlot;
/**
* 预计开始时间
*/
@Schema(description = "预计开始时间")
private LocalDateTime estimatedStartTime;
/**
* 预计结束时间
*/
@Schema(description = "预计结束时间")
private LocalDateTime estimatedEndTime;
/**
* 实际开始时间
*/
@Schema(description = "实际开始时间")
private LocalDateTime actualStartTime;
/**
* 实际结束时间
*/
@Schema(description = "实际结束时间")
private LocalDateTime actualEndTime;
/**
* 出场顺序
*/
@Schema(description = "出场顺序")
private Integer orderNo;
/**
* 状态0-预编排1-已确定2-比赛中3-已完赛
*/
@Schema(description = "状态0-预编排1-已确定2-比赛中3-已完赛")
private Integer status;
/**
* 编排类型1-自动编排2-手动调整
*/
@Schema(description = "编排类型1-自动编排2-手动调整")
private Integer scheduleType;
}

View File

@@ -1,93 +0,0 @@
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;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 评分实体类
*
* @author Blade
* @since 2025-01-01
*/
@Data
@TableName("mt_score")
@EqualsAndHashCode(callSuper = true)
public class Score extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 编排ID
*/
@Schema(description = "编排ID")
private Long scheduleId;
/**
* 报名项目ID
*/
@Schema(description = "报名项目ID")
private Long registrationProjectId;
/**
* 运动员ID
*/
@Schema(description = "运动员ID")
private Long athleteId;
/**
* 项目ID
*/
@Schema(description = "项目ID")
private Long projectId;
/**
* 场地ID
*/
@Schema(description = "场地ID")
private Long venueId;
/**
* 裁判ID
*/
@Schema(description = "裁判ID")
private Long judgeId;
/**
* 评分
*/
@Schema(description = "评分")
private BigDecimal score;
/**
* 扣分项JSON
*/
@Schema(description = "扣分项JSON")
private String deductionItems;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 评分时间
*/
@Schema(description = "评分时间")
private LocalDateTime scoreTime;
}

View File

@@ -1,48 +0,0 @@
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 Blade
* @since 2025-01-01
*/
@Data
@TableName("mt_venue")
@EqualsAndHashCode(callSuper = true)
public class Venue extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 赛事ID
*/
@Schema(description = "赛事ID")
private Long competitionId;
/**
* 场地名称
*/
@Schema(description = "场地名称")
private String venueName;
/**
* 场地编号
*/
@Schema(description = "场地编号")
private String venueNo;
/**
* 状态0-未启用1-启用中2-已关闭
*/
@Schema(description = "状态0-未启用1-启用中2-已关闭")
private Integer status;
}

View File

@@ -1,43 +0,0 @@
/*
* 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.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Athlete;
/**
* 运动员视图对象
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class AthleteVO extends Athlete {
private static final long serialVersionUID = 1L;
@Schema(description = "性别名称")
private String genderName;
@Schema(description = "证件类型名称")
private String idTypeName;
}

View File

@@ -1,43 +0,0 @@
/*
* 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.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Competition;
/**
* 赛事视图对象
*
* @author BladeX
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CompetitionVO extends Competition {
private static final long serialVersionUID = 1L;
@Schema(description = "状态名称")
private String statusName;
@Schema(description = "项目数量")
private Integer projectCount;
}

View File

@@ -1,58 +0,0 @@
package org.springblade.modules.martial.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Judge;
/**
* 裁判视图实体类
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class JudgeVO extends Judge {
private static final long serialVersionUID = 1L;
/**
* 赛事名称
*/
@Schema(description = "赛事名称")
private String competitionName;
/**
* 赛事编码
*/
@Schema(description = "赛事编码")
private String competitionCode;
/**
* 场地名称
*/
@Schema(description = "场地名称")
private String venueName;
/**
* 场地编号
*/
@Schema(description = "场地编号")
private String venueNo;
/**
* 状态名称
*/
@Schema(description = "状态名称")
private String statusName;
/**
* 角色名称
*/
@Schema(description = "角色名称")
private String roleName;
}

View File

@@ -1,64 +0,0 @@
package org.springblade.modules.martial.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Result;
/**
* 成绩视图实体类
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ResultVO extends Result {
private static final long serialVersionUID = 1L;
/**
* 赛事名称
*/
@Schema(description = "赛事名称")
private String competitionName;
/**
* 项目名称
*/
@Schema(description = "项目名称")
private String projectName;
/**
* 项目类型1-套路2-散打
*/
@Schema(description = "项目类型1-套路2-散打")
private Integer projectType;
/**
* 运动员姓名
*/
@Schema(description = "运动员姓名")
private String athleteName;
/**
* 运动员编号
*/
@Schema(description = "运动员编号")
private String athleteCode;
/**
* 运动员所属组织
*/
@Schema(description = "运动员所属组织")
private String athleteOrganization;
/**
* 状态名称
*/
@Schema(description = "状态名称")
private String statusName;
}

View File

@@ -1,82 +0,0 @@
package org.springblade.modules.martial.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Schedule;
/**
* 编排视图实体类
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ScheduleVO extends Schedule {
private static final long serialVersionUID = 1L;
/**
* 赛事名称
*/
@Schema(description = "赛事名称")
private String competitionName;
/**
* 场地名称
*/
@Schema(description = "场地名称")
private String venueName;
/**
* 场地编号
*/
@Schema(description = "场地编号")
private String venueNo;
/**
* 项目名称
*/
@Schema(description = "项目名称")
private String projectName;
/**
* 项目类型1-套路2-散打
*/
@Schema(description = "项目类型1-套路2-散打")
private Integer projectType;
/**
* 运动员姓名
*/
@Schema(description = "运动员姓名")
private String athleteName;
/**
* 运动员编号
*/
@Schema(description = "运动员编号")
private String athleteCode;
/**
* 运动员所属组织
*/
@Schema(description = "运动员所属组织")
private String athleteOrganization;
/**
* 状态名称
*/
@Schema(description = "状态名称")
private String statusName;
/**
* 编排类型名称
*/
@Schema(description = "编排类型名称")
private String scheduleTypeName;
}

View File

@@ -1,76 +0,0 @@
package org.springblade.modules.martial.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Score;
/**
* 评分视图实体类
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ScoreVO extends Score {
private static final long serialVersionUID = 1L;
/**
* 赛事名称
*/
@Schema(description = "赛事名称")
private String competitionName;
/**
* 项目名称
*/
@Schema(description = "项目名称")
private String projectName;
/**
* 项目类型1-套路2-散打
*/
@Schema(description = "项目类型1-套路2-散打")
private Integer projectType;
/**
* 运动员姓名
*/
@Schema(description = "运动员姓名")
private String athleteName;
/**
* 运动员编号
*/
@Schema(description = "运动员编号")
private String athleteCode;
/**
* 裁判姓名
*/
@Schema(description = "裁判姓名")
private String judgeName;
/**
* 裁判角色
*/
@Schema(description = "裁判角色")
private String judgeRole;
/**
* 场地名称
*/
@Schema(description = "场地名称")
private String venueName;
/**
* 场地编号
*/
@Schema(description = "场地编号")
private String venueNo;
}

View File

@@ -1,52 +0,0 @@
package org.springblade.modules.martial.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.martial.pojo.entity.Venue;
/**
* 场地视图实体类
*
* @author Blade
* @since 2025-01-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class VenueVO extends Venue {
private static final long serialVersionUID = 1L;
/**
* 赛事名称
*/
@Schema(description = "赛事名称")
private String competitionName;
/**
* 赛事编码
*/
@Schema(description = "赛事编码")
private String competitionCode;
/**
* 状态名称
*/
@Schema(description = "状态名称")
private String statusName;
/**
* 裁判数量
*/
@Schema(description = "裁判数量")
private Integer judgeCount;
/**
* 编排数量
*/
@Schema(description = "编排数量")
private Integer scheduleCount;
}

View File

@@ -1,40 +0,0 @@
/*
* 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.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.martial.pojo.entity.Athlete;
import org.springblade.modules.martial.pojo.vo.AthleteVO;
/**
* 运动员服务类
*
* @author BladeX
*/
public interface IAthleteService extends BaseService<Athlete> {
/**
* 自定义分页查询
*
* @param page 分页对象
* @param athlete 运动员对象
* @return 运动员视图对象分页
*/
IPage<AthleteVO> selectAthletePage(IPage<AthleteVO> page, AthleteVO athlete);
}

View File

@@ -1,40 +0,0 @@
/*
* 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.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.martial.pojo.entity.Competition;
import org.springblade.modules.martial.pojo.vo.CompetitionVO;
/**
* 赛事服务类
*
* @author BladeX
*/
public interface ICompetitionService extends BaseService<Competition> {
/**
* 自定义分页查询
*
* @param page 分页对象
* @param competition 赛事对象
* @return 赛事视图对象分页
*/
IPage<CompetitionVO> selectCompetitionPage(IPage<CompetitionVO> page, CompetitionVO competition);
}

View File

@@ -1,52 +0,0 @@
package org.springblade.modules.martial.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.martial.pojo.entity.Judge;
import org.springblade.modules.martial.pojo.vo.JudgeVO;
import java.util.List;
/**
* 裁判服务类
*
* @author Blade
* @since 2025-01-01
*/
public interface IJudgeService extends IService<Judge> {
/**
* 自定义分页
*
* @param page 分页对象
* @param judge 裁判对象
* @return 分页结果
*/
IPage<JudgeVO> selectJudgePage(IPage<JudgeVO> page, JudgeVO judge);
/**
* 查询裁判详情
*
* @param id 裁判ID
* @return 裁判详情
*/
JudgeVO getJudgeById(Long id);
/**
* 裁判登录认证
*
* @param competitionCode 赛事编码
* @param inviteCode 邀请码
* @return 裁判信息
*/
JudgeVO judgeLogin(String competitionCode, String inviteCode);
/**
* 根据赛事ID查询裁判列表
*
* @param competitionId 赛事ID
* @return 裁判列表
*/
List<JudgeVO> getJudgeByCompetitionId(Long competitionId);
}

View File

@@ -0,0 +1,13 @@
package org.springblade.modules.martial.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.martial.entity.MartialActivitySchedule;
/**
* ActivitySchedule 服务类
*
* @author BladeX
*/
public interface IMartialActivityScheduleService extends IService<MartialActivitySchedule> {
}

Some files were not shown because too many files have changed in this diff Show More