From a8fdd225033a102a42787c2bcfba7b8e9b55d5e1 Mon Sep 17 00:00:00 2001 From: wuyibo <771227828@qq.com> Date: Sat, 12 Nov 2022 11:27:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=9B=E4=BC=9A=E8=B5=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/web/controller/BaseController.java | 18 +++- .../CompetitionTeamVsTeamController.java | 8 +- .../system/domain/CompetitionTeamVsTeam.java | 4 +- .../domain/vo/CompetitionTeamVsTeamVo.java | 20 ++++ .../mapper/CompetitionTeamVsTeamMapper.java | 5 +- .../ICompetitionTeamVsTeamService.java | 5 +- .../CompetitionTeamVsTeamServiceImpl.java | 6 +- .../system/CompetitionTeamVsTeamMapper.xml | 15 +-- .../src/views/system/competitionSet/index.vue | 91 ++++++++++++++++++- 9 files changed, 150 insertions(+), 22 deletions(-) create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java index 609238e8..6396b180 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java @@ -3,6 +3,12 @@ package com.ruoyi.common.core.web.controller; import java.beans.PropertyEditorSupport; import java.util.Date; import java.util.List; + +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.sql.SqlUtil; +import com.ruoyi.common.core.web.page.PageDomain; +import com.ruoyi.common.core.web.page.TableSupport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.WebDataBinder; @@ -45,7 +51,17 @@ public class BaseController */ protected void startPage() { - PageUtils.startPage(); + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) + { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + PageHelper.startPage(pageNum, pageSize, orderBy); + }else { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + PageHelper.orderBy(orderBy); + } } /** 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 1c2d0214..3d98e36d 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 @@ -3,6 +3,8 @@ package com.ruoyi.system.controller; import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -43,7 +45,7 @@ public class CompetitionTeamVsTeamController extends BaseController public TableDataInfo list(CompetitionTeamVsTeam competitionTeamVsTeam) { startPage(); - List list = competitionTeamVsTeamService.selectCompetitionTeamVsTeamList(competitionTeamVsTeam); + List list = competitionTeamVsTeamService.selectCompetitionTeamVsTeamList(competitionTeamVsTeam); return getDataTable(list); } @@ -55,8 +57,8 @@ public class CompetitionTeamVsTeamController extends BaseController @PostMapping("/export") public void export(HttpServletResponse response, CompetitionTeamVsTeam competitionTeamVsTeam) { - List list = competitionTeamVsTeamService.selectCompetitionTeamVsTeamList(competitionTeamVsTeam); - ExcelUtil util = new ExcelUtil(CompetitionTeamVsTeam.class); + List list = competitionTeamVsTeamService.selectCompetitionTeamVsTeamList(competitionTeamVsTeam); + ExcelUtil util = new ExcelUtil(CompetitionTeamVsTeamVo.class); util.exportExcel(response, list, "赛会中-球队VS球队关系数据"); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/CompetitionTeamVsTeam.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/CompetitionTeamVsTeam.java index 9b37e0e9..1c3fd013 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/CompetitionTeamVsTeam.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/CompetitionTeamVsTeam.java @@ -41,8 +41,8 @@ public class CompetitionTeamVsTeam extends BaseEntity private String guestTeamName; /** 比赛时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "比赛时间", width = 30, dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "比赛时间", width = 60, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date competitionTime; /** 球场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 new file mode 100644 index 00000000..60374b23 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/CompetitionTeamVsTeamVo.java @@ -0,0 +1,20 @@ +package com.ruoyi.system.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.system.domain.CompetitionTeamVsTeam; +import lombok.Data; + +import java.util.Date; + +/** + * @author 吴一博 + * @date 2022年11月11日 17:02 + * @Description + */ +@Data +public class CompetitionTeamVsTeamVo extends CompetitionTeamVsTeam { + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "比赛时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date competitionDate; +} 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 f3bf95ff..fd347b06 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 @@ -2,6 +2,7 @@ package com.ruoyi.system.mapper; import java.util.List; import com.ruoyi.system.domain.CompetitionTeamVsTeam; +import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo; /** * 赛会中-球队VS球队关系Mapper接口 @@ -17,7 +18,7 @@ public interface CompetitionTeamVsTeamMapper * @param id 赛会中-球队VS球队关系主键 * @return 赛会中-球队VS球队关系 */ - public CompetitionTeamVsTeam selectCompetitionTeamVsTeamById(Long id); + public CompetitionTeamVsTeamVo selectCompetitionTeamVsTeamById(Long id); /** * 查询赛会中-球队VS球队关系列表 @@ -25,7 +26,7 @@ public interface CompetitionTeamVsTeamMapper * @param competitionTeamVsTeam 赛会中-球队VS球队关系 * @return 赛会中-球队VS球队关系集合 */ - public List selectCompetitionTeamVsTeamList(CompetitionTeamVsTeam competitionTeamVsTeam); + public List selectCompetitionTeamVsTeamList(CompetitionTeamVsTeam competitionTeamVsTeam); /** * 新增赛会中-球队VS球队关系 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 73381199..35476369 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 @@ -2,6 +2,7 @@ package com.ruoyi.system.service; import java.util.List; import com.ruoyi.system.domain.CompetitionTeamVsTeam; +import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo; /** * 赛会中-球队VS球队关系Service接口 @@ -17,7 +18,7 @@ public interface ICompetitionTeamVsTeamService * @param id 赛会中-球队VS球队关系主键 * @return 赛会中-球队VS球队关系 */ - public CompetitionTeamVsTeam selectCompetitionTeamVsTeamById(Long id); + public CompetitionTeamVsTeamVo selectCompetitionTeamVsTeamById(Long id); /** * 查询赛会中-球队VS球队关系列表 @@ -25,7 +26,7 @@ public interface ICompetitionTeamVsTeamService * @param competitionTeamVsTeam 赛会中-球队VS球队关系 * @return 赛会中-球队VS球队关系集合 */ - public List selectCompetitionTeamVsTeamList(CompetitionTeamVsTeam competitionTeamVsTeam); + public List selectCompetitionTeamVsTeamList(CompetitionTeamVsTeam competitionTeamVsTeam); /** * 新增赛会中-球队VS球队关系 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 6a029550..204818d3 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,6 +1,8 @@ package com.ruoyi.system.service.impl; import java.util.List; + +import com.ruoyi.system.domain.vo.CompetitionTeamVsTeamVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.mapper.CompetitionTeamVsTeamMapper; @@ -26,7 +28,7 @@ public class CompetitionTeamVsTeamServiceImpl implements ICompetitionTeamVsTeamS * @return 赛会中-球队VS球队关系 */ @Override - public CompetitionTeamVsTeam selectCompetitionTeamVsTeamById(Long id) + public CompetitionTeamVsTeamVo selectCompetitionTeamVsTeamById(Long id) { return competitionTeamVsTeamMapper.selectCompetitionTeamVsTeamById(id); } @@ -38,7 +40,7 @@ public class CompetitionTeamVsTeamServiceImpl implements ICompetitionTeamVsTeamS * @return 赛会中-球队VS球队关系 */ @Override - public List selectCompetitionTeamVsTeamList(CompetitionTeamVsTeam competitionTeamVsTeam) + public List selectCompetitionTeamVsTeamList(CompetitionTeamVsTeam competitionTeamVsTeam) { return competitionTeamVsTeamMapper.selectCompetitionTeamVsTeamList(competitionTeamVsTeam); } 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 33cbcc3a..8a845e4d 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 @@ -30,12 +30,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, competition_id, main_team_id, main_team_name, guest_team_id, guest_team_name, competition_time, building_id, building_name, competition_address, competition_group, status, created_time, last_updated_time, created_by, modified_by, is_deleted, remark, main_team_score, guest_team_score, vs_type, batch_number from competition_team_vs_team + select id, competition_id, main_team_id, main_team_name, guest_team_id, guest_team_name, competition_time, DATE_FORMAT(competition_time,'%Y-%m-%d') as competitionDate, building_id, building_name, competition_address, competition_group, status, created_time, last_updated_time, created_by, modified_by, is_deleted, remark, main_team_score, guest_team_score, vs_type, batch_number from competition_team_vs_team - - + and competition_id = #{competitionId} and main_team_id = #{mainTeamId} and main_team_name like concat('%', #{mainTeamName}, '%') @@ -58,12 +61,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and batch_number = #{batchNumber} - - where id = #{id} - + insert into competition_team_vs_team diff --git a/ruoyi-ui/src/views/system/competitionSet/index.vue b/ruoyi-ui/src/views/system/competitionSet/index.vue index 9e052fb7..2b3063a2 100644 --- a/ruoyi-ui/src/views/system/competitionSet/index.vue +++ b/ruoyi-ui/src/views/system/competitionSet/index.vue @@ -53,7 +53,9 @@ 球队审核 - + @@ -107,9 +109,10 @@ + 球队分组 - + @@ -164,7 +167,48 @@ - 赛程设置 赛程设置 + 赛程设置 + + + 手动设置赛程 + + + 系统智能设置小组循环赛赛程 + + + + + + + + + + + + + + + 赛会推广 赛会推广 @@ -269,6 +313,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, getCompetitionTeamGroup, delCompetitionTeamGroup, addCompetitionTeamGroup, updateCompetitionTeamGroup } from "@/api/system/competitionTeamGroup"; +import { listCompetitionTeamVsTeam, getCompetitionTeamVsTeam, delCompetitionTeamVsTeam, addCompetitionTeamVsTeam, updateCompetitionTeamVsTeam } from "@/api/system/competitionTeamVsTeam"; export default { name: "CompetitionSet", dicts: ['competition_status'], @@ -289,6 +334,7 @@ export default { //已经分组的球队数据 alreadyGroupTeamList: [], selectTeamList:[], + competitionTeamVsTeamList:[], // 弹出层标题 title: "", // 是否显示弹出层 @@ -465,6 +511,41 @@ export default { // 表单重置 reset() { + }, + objectSpanMethod({ row, column, rowIndex, columnIndex },data) { + if (columnIndex === 0) { + if(column.property==='competitionDate') { + var spanArr = this.getSpanArr(data, column.property) + const _row = spanArr[rowIndex] + const _col = _row > 0 ? 1 : 0 + return { + rowspan: _row, + colspan: _col + } + } + } + }, + // 处理合并行的数据 + getSpanArr: function(data, spanKey) { + var that = this + var spanArr = [] + var pos = '' + for (var i = 0; i < data.length; i++) { + if (i === 0) { + spanArr.push(1) + pos = 0 + } else { + // 判断当前元素与上一个元素是否相同 + if (data[i][spanKey] === data[i - 1][spanKey]) { + spanArr[pos] += 1 + spanArr.push(0) + } else { + spanArr.push(1) + pos = i + } + } + } + return spanArr }, handleCurrentChange(val) { this.currentGroupRow = val; @@ -496,7 +577,9 @@ export default { this.competitionTeamGroupList.push({"competitionGroup":"未分","id":null}) }); }else if(tab.name=='competitionVsSet'){ - + listCompetitionTeamVsTeam({"orderByColumn":"competition_time","pageNum": 1, "pageSize": 1000,"competitionId":this.competitionObj.id}).then(response => { + this.competitionTeamVsTeamList = response.rows; + }); }else if(tab.name=='competitionSpread'){ }