diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CompetitionTeamVsTeamController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CompetitionTeamVsTeamController.java index 3d98e36d..bd0c7f4c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CompetitionTeamVsTeamController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CompetitionTeamVsTeamController.java @@ -5,15 +5,11 @@ import java.io.IOException; import javax.servlet.http.HttpServletResponse; import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo; +import com.ruoyi.system.domain.vo.CompetitionUnifiedRecordVo; +import io.seata.core.model.Result; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.RequiresPermissions; @@ -104,4 +100,10 @@ public class CompetitionTeamVsTeamController extends BaseController { return toAjax(competitionTeamVsTeamService.deleteCompetitionTeamVsTeamByIds(ids)); } + @Log(title = "赛会中-球队VS球队比赛结果数据", businessType = BusinessType.OTHER) + @ApiOperation("根据ID获取当前比赛赛程的所有统分结果") + @GetMapping("/competitionUnifiedRecord/{id}") + public AjaxResult getCompetitionUnifiedRecordById(@PathVariable("id") Long id) { + return AjaxResult.success(competitionTeamVsTeamService.getCompetitionUnifiedRecordById(id)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java index 60374b23..5cc3591e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java @@ -17,4 +17,6 @@ public class CompetitionTeamVsTeamVo extends CompetitionTeamVsTeam { @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "比赛时间", width = 30, dateFormat = "yyyy-MM-dd") private Date competitionDate; + private String weekDayName; + private String theTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionUnifiedRecordVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionUnifiedRecordVo.java new file mode 100644 index 00000000..c89d78a8 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionUnifiedRecordVo.java @@ -0,0 +1,32 @@ +package com.ruoyi.system.domain.vo; +import com.ruoyi.system.domain.CompetitionMembersScore; +import com.ruoyi.system.domain.CompetitionResult; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.List; + +@ApiModel(value = "比赛-赛程-统分Vo") +@Setter +@Getter +public class CompetitionUnifiedRecordVo implements Serializable { + + @ApiModelProperty(value = "对阵数据", required = false) + private CompetitionTeamVsTeamVo teamVsTeamVo; + + @ApiModelProperty(value = "对阵节数统分数据", required = false) + private List competitionResultList; + + @ApiModelProperty(value = "赛程队员数据", required = false) + private List competitionMembersScoreList; + + @ApiModelProperty(value = "客队队员数据", required = false) + private List mainMembersScoreList; + + @ApiModelProperty(value = "客队队员数据", required = false) + private List gustMembersScoreList; + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionMembersScoreMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionMembersScoreMapper.java index fb58add6..67796fa0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionMembersScoreMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionMembersScoreMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.system.mapper; import java.util.List; import com.ruoyi.system.domain.CompetitionMembersScore; +import org.apache.ibatis.annotations.Param; /** * 赛会中-赛程-人员得分Mapper接口 @@ -58,4 +59,6 @@ public interface CompetitionMembersScoreMapper * @return 结果 */ public int deleteCompetitionMembersScoreByIds(Long[] ids); + + public List findMembersScoreByCompetitionVsId(@Param("competitionId") Long competitionId,@Param("competitionVsId") Long competitionVsId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionResultMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionResultMapper.java index 6260b404..cb57769a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionResultMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionResultMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.system.mapper; import java.util.List; import com.ruoyi.system.domain.CompetitionResult; +import org.apache.ibatis.annotations.Param; /** * 赛会中-赛程结果记录Mapper接口 @@ -58,4 +59,6 @@ public interface CompetitionResultMapper * @return 结果 */ public int deleteCompetitionResultByIds(Long[] ids); + + public List findByCompetitionVsId(@Param("competitionId") Long competitionId,@Param("competitionVsId") Long competitionVsId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionTeamVsTeamMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionTeamVsTeamMapper.java index 0f637465..03b3b2aa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionTeamVsTeamMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CompetitionTeamVsTeamMapper.java @@ -66,4 +66,6 @@ public interface CompetitionTeamVsTeamMapper * @return 结果 */ public int updateCompetitionTeamVsTeamByCondition(CompetitionTeamVsTeam teamVsTeam); + + public CompetitionTeamVsTeamVo getCompetitionById(Long id); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionTeamVsTeamService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionTeamVsTeamService.java index 35476369..733b3622 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionTeamVsTeamService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICompetitionTeamVsTeamService.java @@ -3,6 +3,7 @@ package com.ruoyi.system.service; import java.util.List; import com.ruoyi.system.domain.CompetitionTeamVsTeam; import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo; +import com.ruoyi.system.domain.vo.CompetitionUnifiedRecordVo; /** * 赛会中-球队VS球队关系Service接口 @@ -59,4 +60,6 @@ public interface ICompetitionTeamVsTeamService * @return 结果 */ public int deleteCompetitionTeamVsTeamById(Long id); + + public CompetitionUnifiedRecordVo getCompetitionUnifiedRecordById(Long id); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionTeamVsTeamServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionTeamVsTeamServiceImpl.java index 204818d3..54d7b0ed 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionTeamVsTeamServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionTeamVsTeamServiceImpl.java @@ -1,13 +1,25 @@ package com.ruoyi.system.service.impl; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.system.domain.CompetitionMembersScore; +import com.ruoyi.system.domain.CompetitionResult; import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo; +import com.ruoyi.system.domain.vo.CompetitionUnifiedRecordVo; +import com.ruoyi.system.mapper.CompetitionMembersScoreMapper; +import com.ruoyi.system.mapper.CompetitionResultMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.mapper.CompetitionTeamVsTeamMapper; import com.ruoyi.system.domain.CompetitionTeamVsTeam; import com.ruoyi.system.service.ICompetitionTeamVsTeamService; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; /** * 赛会中-球队VS球队关系Service业务层处理 @@ -21,6 +33,11 @@ public class CompetitionTeamVsTeamServiceImpl implements ICompetitionTeamVsTeamS @Autowired private CompetitionTeamVsTeamMapper competitionTeamVsTeamMapper; + @Resource + private CompetitionResultMapper competitionResultMapper; + @Resource + private CompetitionMembersScoreMapper competitionMembersScoreMapper; + /** * 查询赛会中-球队VS球队关系 * @@ -92,4 +109,52 @@ public class CompetitionTeamVsTeamServiceImpl implements ICompetitionTeamVsTeamS { return competitionTeamVsTeamMapper.deleteCompetitionTeamVsTeamById(id); } + + @Override + public CompetitionUnifiedRecordVo getCompetitionUnifiedRecordById(Long id) { + CompetitionUnifiedRecordVo unifiedRecordVo = new CompetitionUnifiedRecordVo(); + CompetitionTeamVsTeamVo competitionTeamVsTeamVo = competitionTeamVsTeamMapper.getCompetitionById(id); + if(StringUtils.isEmpty(competitionTeamVsTeamVo)){ + throw new ServiceException("赛程不存在"); + } + unifiedRecordVo.setTeamVsTeamVo(competitionTeamVsTeamVo); + + //查询队伍数据 + List competitionResultList = competitionResultMapper.findByCompetitionVsId(competitionTeamVsTeamVo.getCompetitionId(),competitionTeamVsTeamVo.getId()); + unifiedRecordVo.setCompetitionResultList(competitionResultList); + + //查询赛程中个人成绩 + List membersScoreList = competitionMembersScoreMapper.findMembersScoreByCompetitionVsId(competitionTeamVsTeamVo.getCompetitionId(),competitionTeamVsTeamVo.getId()); + + List competitionMembersScoreList = new ArrayList<>(); + //组装队伍球员数据并排序 + //组装队伍球员数据并排序 + if(competitionResultList!=null&&competitionResultList.size()>0){ + //组装主队数据 + List mainMembersScoreList = membersScoreList.stream().filter(CompetitionMembersScore -> CompetitionMembersScore.getTeamId()==competitionResultList.get(0).getTeamId()).collect(Collectors.toList()); + //过滤首发球员 + List firstList = mainMembersScoreList.stream().filter(a -> a.getIsFirstLaunch() == 1).collect(Collectors.toList()); + firstList.sort((o1, o2) -> o2.getTotalScore().compareTo(o1.getTotalScore())); + //不是首发球员 + List noFirstList = mainMembersScoreList.stream().filter(a -> a.getIsFirstLaunch() == 0).collect(Collectors.toList()); + noFirstList.sort((o1, o2) -> o2.getTotalScore().compareTo(o1.getTotalScore())); + mainMembersScoreList = firstList; + mainMembersScoreList.addAll(noFirstList); + competitionMembersScoreList.addAll(mainMembersScoreList); + + //组装客队数据 + List gustMembersScoreList = membersScoreList.stream().filter(CompetitionMembersScore -> CompetitionMembersScore.getTeamId()==competitionResultList.get(1).getTeamId()).collect(Collectors.toList()); + //过滤首发球员 + List gustFirstList = gustMembersScoreList.stream().filter(a -> a.getIsFirstLaunch() == 1).collect(Collectors.toList()); + gustFirstList.sort((o1, o2) -> o2.getTotalScore().compareTo(o1.getTotalScore())); + //不是首发球员 + List gustNoFirstList = gustMembersScoreList.stream().filter(a -> a.getIsFirstLaunch() == 0).collect(Collectors.toList()); + gustNoFirstList.sort((o1, o2) -> o2.getTotalScore().compareTo(o1.getTotalScore())); + gustMembersScoreList = gustFirstList; + gustMembersScoreList.addAll(gustNoFirstList); + competitionMembersScoreList.addAll(gustMembersScoreList); + unifiedRecordVo.setCompetitionMembersScoreList(competitionMembersScoreList); + } + return unifiedRecordVo; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionMembersScoreMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionMembersScoreMapper.xml index ed13fef2..6725b75d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionMembersScoreMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionMembersScoreMapper.xml @@ -73,7 +73,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into competition_members_score diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionResultMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionResultMapper.xml index 4d0f7564..7ce8fc3c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionResultMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionResultMapper.xml @@ -59,7 +59,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + + insert into competition_result diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionTeamVsTeamMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionTeamVsTeamMapper.xml index f7fcb041..a92cca75 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionTeamVsTeamMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CompetitionTeamVsTeamMapper.xml @@ -66,6 +66,66 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + insert into competition_team_vs_team diff --git a/ruoyi-ui/src/api/system/competitionTeamVsTeam.js b/ruoyi-ui/src/api/system/competitionTeamVsTeam.js index e6a38a2b..4864c0ee 100644 --- a/ruoyi-ui/src/api/system/competitionTeamVsTeam.js +++ b/ruoyi-ui/src/api/system/competitionTeamVsTeam.js @@ -25,6 +25,12 @@ export function addCompetitionTeamVsTeam(data) { data: data }) } +export function getCompetitionUnifiedRecord(id) { + return request({ + url: '/system/competitionTeamVsTeam/competitionUnifiedRecord/' + id, + method: 'get' + }) +} // 修改赛会中-球队VS球队关系 export function updateCompetitionTeamVsTeam(data) { diff --git a/ruoyi-ui/src/views/system/competitionSet/index.vue b/ruoyi-ui/src/views/system/competitionSet/index.vue index df3db8ba..9493cbea 100644 --- a/ruoyi-ui/src/views/system/competitionSet/index.vue +++ b/ruoyi-ui/src/views/system/competitionSet/index.vue @@ -420,6 +420,20 @@ 取 消 + + + + +
{{ competitionUnifiedRecord.teamVsTeamVo.competitionTime }}
+
+ +
{{competitionUnifiedRecord.teamVsTeamVo.mainTeamName}}
+
{{competitionUnifiedRecord.teamVsTeamVo.mainTeamScore}} : + {{competitionUnifiedRecord.teamVsTeamVo.guestTeamScore}} +
+
{{competitionUnifiedRecord.teamVsTeamVo.guestTeamName}}
+
+
@@ -428,7 +442,7 @@ import { listCompetition, getCompetition, delCompetition, addCompetition, update import { listCompetitionOfTeam, batchEditById, intoTeamGroup, removeTeamGroup, updateCompetitionOfTeam } from "@/api/system/competitionOfTeam"; import { listCompetitionMembers, getCompetitionMembers, delCompetitionMembers, addCompetitionMembers, updateCompetitionMembers } from "@/api/system/competitionMembers"; import { listCompetitionTeamGroup, arrangeTeamGroupSchedule, delCompetitionTeamGroup, addCompetitionTeamGroup, updateCompetitionTeamGroup } from "@/api/system/competitionTeamGroup"; -import { listCompetitionTeamVsTeam, getCompetitionTeamVsTeam, delCompetitionTeamVsTeam, addCompetitionTeamVsTeam, updateCompetitionTeamVsTeam } from "@/api/system/competitionTeamVsTeam"; +import { listCompetitionTeamVsTeam, getCompetitionUnifiedRecord, delCompetitionTeamVsTeam, addCompetitionTeamVsTeam, updateCompetitionTeamVsTeam } from "@/api/system/competitionTeamVsTeam"; import { listWxBuilding, getWxBuilding, delWxBuilding, addWxBuilding, updateWxBuilding } from "@/api/system/WxBuilding"; export default { @@ -484,6 +498,17 @@ export default { vsOpen:false, buildingList: [], buildLoading:false, + vsRecordTitle:"", + vsRecordOpen:false, + competitionUnifiedRecord:{ + teamVsTeamVo:{ + competitionTime:null, + mainTeamName:null, + guestTeamName: null, + mainTeamScore:null, + guestTeamScore:null + }, + } }; }, created() { @@ -797,6 +822,14 @@ export default { this.vsOpen=true; this.vsTitle = "编辑赛程" }, + handleTeamVsTeamRecord(row){ + this.vsRecordOpen=true; + this.vsRecordTitle = "比赛数据记录"; + //获取比赛数据 + getCompetitionUnifiedRecord(row.id).then(response=>{ + this.competitionUnifiedRecord = response.data + }) + }, handleTeamVsTeamDel(row){ const ids = row.id || this.ids; this.$modal.confirm('是否确认删除赛会中的赛程数据?').then(function() { @@ -883,4 +916,27 @@ export default { .box-card { width: 275px; } +.el-row { + margin-bottom: 20px; +} +.el-col { + border-radius: 4px; +} +.bg-purple-dark { + background: #99a9bf; +} +.bg-purple { + background: #d3dce6; +} +.bg-purple-light { + background: #e5e9f2; +} +.grid-content { + border-radius: 4px; + min-height: 36px; +} +.row-bg { + padding: 10px 0; + background-color: #f9fafc; +}