From 0749cd81c9ad547f444d530f27841561b7ab001c Mon Sep 17 00:00:00 2001 From: wuyibo <771227828@qq.com> Date: Tue, 14 May 2024 11:40:24 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E4=B8=8B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/auth/form/WxLoginBody.java | 3 - .../impl/CompetitionOfTeamServiceImpl.java | 15 +- ruoyi-ui/package.json | 8 +- .../src/views/system/competitionSet/index.vue | 234 ++++++++++++++---- 4 files changed, 199 insertions(+), 61 deletions(-) diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/WxLoginBody.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/WxLoginBody.java index ed65dafe..020793a5 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/WxLoginBody.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/WxLoginBody.java @@ -1,11 +1,8 @@ package com.ruoyi.auth.form; import io.swagger.annotations.ApiModelProperty; -import jdk.nashorn.internal.objects.annotations.Getter; -import jdk.nashorn.internal.objects.annotations.Setter; import javax.validation.constraints.NotBlank; -import java.util.List; /** * @author 吴一博 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionOfTeamServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionOfTeamServiceImpl.java index 40f0f3ec..7ed4fc82 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionOfTeamServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CompetitionOfTeamServiceImpl.java @@ -1,11 +1,15 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.domain.CompetitionOfTeam; +import com.ruoyi.system.domain.CompetitionTeamVsTeam; import com.ruoyi.system.domain.vo.CompetitionOfTeamVo; import com.ruoyi.system.mapper.CompetitionOfTeamMapper; +import com.ruoyi.system.mapper.CompetitionTeamVsTeamMapper; import com.ruoyi.system.service.ICompetitionOfTeamService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,7 +28,8 @@ public class CompetitionOfTeamServiceImpl extends ServiceImpl vsTeamWrapper = new QueryWrapper().lambda(); + vsTeamWrapper.in(CompetitionTeamVsTeam::getGuestTeamId,ids); + vsTeamWrapper.or().in(CompetitionTeamVsTeam::getMainTeamId,ids); + long count = competitionTeamVsTeamMapper.selectCount(vsTeamWrapper); + if(count>0){ + throw new RuntimeException("赛程中排了的球队不允许删除"); + } return competitionOfTeamMapper.deleteCompetitionOfTeamByIds(ids); } diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 5a8c7106..7b7ed268 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -5,12 +5,12 @@ "author": "若依", "license": "MIT", "scripts": { - "dev": "vue-cli-service serve", + "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "dev:prod": "vue-cli-service serve --mode production", "dev:stage": "vue-cli-service serve --mode staging", - "build:dev": "vue-cli-service build --mode development", - "build:prod": "vue-cli-service build", - "build:stage": "vue-cli-service build --mode staging", + "build:dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode development", + "build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", + "build:stage": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode staging", "preview": "node build/index.js --preview", "lint": "eslint --ext .js,.vue src" }, diff --git a/ruoyi-ui/src/views/system/competitionSet/index.vue b/ruoyi-ui/src/views/system/competitionSet/index.vue index ca79ba48..57a66e7c 100644 --- a/ruoyi-ui/src/views/system/competitionSet/index.vue +++ b/ruoyi-ui/src/views/system/competitionSet/index.vue @@ -53,6 +53,11 @@ 球队审核 +
+ + 新增球队 + +
@@ -89,35 +94,17 @@ @@ -250,28 +237,10 @@ @@ -354,6 +323,55 @@
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + import { listCompetition, getCompetition, genCompetitionCommonAqrSpread, addCompetition, updateCompetition } from "@/api/system/competition"; -import { listCompetitionOfTeam, batchEditById, intoTeamGroup, removeTeamGroup, updateCompetitionOfTeam } from "@/api/system/competitionOfTeam"; +import { + listCompetitionOfTeam, + batchEditById, + intoTeamGroup, + removeTeamGroup, + updateCompetitionOfTeam, + addCompetitionOfTeam, + getCompetitionOfTeam +} 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,getCompetitionVsRecordById, delCompetitionTeamVsTeam, addCompetitionTeamVsTeam, updateCompetitionTeamVsTeam } from "@/api/system/competitionTeamVsTeam"; @@ -750,6 +776,7 @@ import { listWxBuilding, getWxBuilding, delWxBuilding, addWxBuilding, updateWxBu import { listCompetitionResult, getCompetitionResult, editDataCompetitionResult, batchUpdateCompetitionResult, updateCompetitionResult } from "@/api/system/competitionResult"; import { listCompetitionMemberScore, getCompetitionMemberScore, delCompetitionMemberScore, addCompetitionMemberScore, updateCompetitionMemberScore } from "@/api/system/competitionMemberScore"; import {getWxApplesAccessToken, genWxApplesAqrCode} from "@/api/system/wxApplesCode"; +import {parseTime} from "@/utils/ruoyi"; export default { name: "CompetitionSet", @@ -894,6 +921,15 @@ export default { totalScore: [ { required: true, message: "总分不能为空", trigger: "blur" } ] + }, + //新增球队变量 + ofTeamOpen:false, + ofTeamTitle:"", + ofTeamForm:{}, + ofTeamFormRules:{ + teamName: [ + { required: true, message: "球队名称不能为空", trigger: "blur" } + ], } }; }, @@ -1069,6 +1105,14 @@ export default { }); }); }, + bindDelOfTeamConfirm(id,tage){ + updateCompetitionOfTeam({"id":id,"status":tage}).then(response => { + this.$modal.msgSuccess("球队审核成功"); + listCompetitionOfTeam({"orderByColumn":"t.id","isAsc":"desc","pageNum": 1, "pageSize": 1000,"competitionId":this.competitionObj.id}).then(response => { + this.competitionOfTeamList = response.rows; + }); + }); + }, handleTeamUser(row){ this.drawer = true listCompetitionMembers({"pageNum": 1, "pageSize": 1000,"competitionId":this.competitionObj.id,"competitionOfTeamId":row.id}).then(response => { @@ -1174,6 +1218,69 @@ export default { this.single = selection.length!==1 this.multiple = !selection.length }, + //新增球队 + addOfTeam(){ + this.ofTeamForm = { }; + this.ofTeamOpen = true; + this.ofTeamTitle = "新增球队"; + }, + ofTeamCancel(){ + this.ofTeamForm = { }; + this.ofTeamOpen = false; + this.ofTeamTitle = ""; + }, + handleEditOfTeam(row){ + const id = row.id; + getCompetitionOfTeam(id).then(response => { + this.ofTeamForm = response.data; + this.ofTeamOpen = true; + this.ofTeamTitle = "编辑球队"; + }); + }, + ofTeamSubmitForm(){ + this.$refs["ofTeamForm"].validate(valid => { + if (valid) { + this.ofTeamForm.competitionId = this.competitionObj.id; + console.info(this.ofTeamForm) + if (this.ofTeamForm.id != null) { + updateCompetitionOfTeam(this.ofTeamForm).then(response => { + this.$modal.msgSuccess("编辑球队成功"); + this.ofTeamOpen = false; + listCompetitionOfTeam({"orderByColumn":"t.id","isAsc":"desc","pageNum": 1, "pageSize": 1000,"competitionId":this.competitionObj.id}).then(response => { + this.competitionOfTeamList = response.rows; + }); + }); + } else { + addCompetitionOfTeam(this.ofTeamForm).then(response => { + this.$modal.msgSuccess("新增球队成功"); + this.ofTeamOpen = false; + listCompetitionOfTeam({"orderByColumn":"t.id","isAsc":"desc","pageNum": 1, "pageSize": 1000,"competitionId":this.competitionObj.id}).then(response => { + this.competitionOfTeamList = response.rows; + }); + }); + } + } + }); + }, + //上传球队logo + handleAvatarSuccess(res, file) { + this.imageUrl = URL.createObjectURL(file.raw); + let imgUrl = res.data[0]; + this.ofTeamForm.teamLogo = "https://mall.lzsport.cn/image/"+imgUrl; + }, + beforeAvatarUpload(file) { + console.info(file.type) + const isJPG = (file.type === 'image/jpeg'||file.type === 'image/png' || file.type === 'image/x-icon'); + const isLt2M = file.size / 1024 / 1024 < 2; + + if (!isJPG) { + this.$message.error('上传头像图片只能是 JPG/PNG/ICO 格式!'); + } + if (!isLt2M) { + this.$message.error('上传头像图片大小不能超过 2MB!'); + } + return isJPG && isLt2M; + }, /** 新增按钮操作 */ handleAdd() { this.reset(); @@ -1267,7 +1374,7 @@ export default { }, handleTeamVsTeamDel(row){ const ids = row.id || this.ids; - this.$modal.confirm('是否确认删除赛会中的赛程数据?').then(function() { + this.$modal.confirm('确认删除['+ parseTime(row.competitionTime, '{y}-{m}-{d} {h}:{i}') +']赛程['+row.mainTeamName+' VS '+row.guestTeamName+']数据?').then(function() { return delCompetitionTeamVsTeam(ids); }).then(() => { listCompetitionTeamVsTeam({"orderByColumn":"competition_time","isAsc":"desc","isDeleted":0,"pageNum": 1, "pageSize": 1000,"competitionId":this.competitionObj.id}).then(response => { @@ -1506,6 +1613,29 @@ export default { };