From 459cc348bb7cfc02c745d96b25126bab88078714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=A3=E4=BA=9B=E8=8A=B1=E5=84=BF?= <1156921458@qq.com> Date: Wed, 30 Apr 2025 14:49:17 +0800 Subject: [PATCH] .. --- .../controller/ActScoreEnterController.java | 41 ++-- .../platform/activity/scoreEnter/index.html | 19 +- .../src/pages/activity/scan-sign/index.vue | 185 ++++++++++-------- .../src/pages/activity/team-form/index.vue | 71 ++++--- frontend/src/pages/activity/team/index.vue | 21 +- frontend/src/static/img/empty.png | Bin 0 -> 6443 bytes 6 files changed, 173 insertions(+), 164 deletions(-) create mode 100644 frontend/src/static/img/empty.png diff --git a/backend/src/main/java/com/budwk/app/module/activity/controller/ActScoreEnterController.java b/backend/src/main/java/com/budwk/app/module/activity/controller/ActScoreEnterController.java index 57e9d9b..52724f7 100644 --- a/backend/src/main/java/com/budwk/app/module/activity/controller/ActScoreEnterController.java +++ b/backend/src/main/java/com/budwk/app/module/activity/controller/ActScoreEnterController.java @@ -25,7 +25,10 @@ import org.nutz.mvc.annotation.Ok; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.IntStream; /** * @author zhf @@ -49,28 +52,6 @@ public class ActScoreEnterController { public void index() { } - @At() - @SaCheckPermission("activity.scoreEnter") - public Result getActivityOptions(Integer year) { - return Result.success(activityService.dao().query(Activity.class, Cnd.NEW().andEX("YEAR(startTime)", "=", year))); - } - - @At() - @SaCheckPermission("activity.scoreEnter") - public Result pageData(ActScoreEnterPageForm pageForm) { - Sql sql = Sqls.create(""" - SELECT - t1.* - FROM - `activity_item` t1 - WHERE t1.activityId=@id - ORDER BY t1.sort asc - """).setParam("id", pageForm.getActivityId()); - - return Result.success(activityService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql)); - } - - @At("/list-activity") @SaCheckPermission("activity.scoreEnter") @ApiOperation(value = "获取活动列表", nickname = "/list-activity", httpMethod = "GET") @@ -91,7 +72,6 @@ public class ActScoreEnterController { public Result listGroup(Long activityId) { List groupList = activityService.dao().query(ActGroup.class, Cnd.where(ActGroup::getActivityId, "=", activityId)); return Result.success(groupList); - } /** @@ -110,7 +90,7 @@ public class ActScoreEnterController { @At("/list-item-score/?") @SaCheckPermission("activity.scoreEnter") - @ApiOperation(value = "获取项目列表", nickname = "/list-item-score", httpMethod = "GET") + @ApiOperation(value = "获取队伍项目成绩", nickname = "/list-item-score", httpMethod = "GET") public Result listItemScore(Long activityId) { List scoreList = dao.query(ActItemGroupScore.class, Cnd.where(ActItemGroupScore::getActivityId, "=", activityId)); return Result.success(scoreList); @@ -119,7 +99,7 @@ public class ActScoreEnterController { @At("/save-score") @SaCheckPermission("activity.scoreEnter") @Aop(TransAop.READ_COMMITTED) - @ApiOperation(value = "保存成绩", nickname = "/list-activity", httpMethod = "POST") + @ApiOperation(value = "保存成绩", nickname = "/save-score", httpMethod = "POST") public Result saveScore(ActItemScoreVo actItemScoreVo) { List itemList = dao.query(ActivityItem.class, Cnd.where(ActivityItem::getActivityId, "=", actItemScoreVo.getActivityId())); // dao.clear(ActItemGroupScore.class, Cnd.where(ActItemGroupScore::getActivityId, "=", actItemScoreVo.getActivityId())); @@ -144,8 +124,17 @@ public class ActScoreEnterController { activityItemScores.add(score); }); }); - dao.update(activityItemScores); + + // 更新队伍得分及排名 + List groups = dao.query(ActGroup.class, Cnd.where(ActGroup::getActivityId, "=", actItemScoreVo.getActivityId())); + for (ActGroup group : groups) { + List groupScores = activityItemScores.stream().filter(item -> item.getGroupId().equals(group.getId())).collect(Collectors.toList()); + groupScores.stream().map(v -> v.getScore()).reduce(BigDecimal::add).ifPresent(group::setTotalScore); + } + groups.sort(Comparator.comparing(ActGroup::getTotalScore).reversed()); + IntStream.range(0, groups.size()).forEach(i -> groups.get(i).setTotalRank(i + 1)); + dao.update(groups, "totalScore|totalRank"); return Result.success(); } diff --git a/backend/src/main/resources/views/platform/activity/scoreEnter/index.html b/backend/src/main/resources/views/platform/activity/scoreEnter/index.html index 979b394..35fe63a 100644 --- a/backend/src/main/resources/views/platform/activity/scoreEnter/index.html +++ b/backend/src/main/resources/views/platform/activity/scoreEnter/index.html @@ -182,20 +182,19 @@ layout("/layouts/platform_1.html"){ cellClick(row, column) { }, // 保存成绩 - saveScore() { + async saveScore() { const formData = { activityId: this.pageForm.activityId, data: JSON.stringify(this.tableData) } - $.post("/platform/activity/scoreEnter/save-score", formData).then(async res => { - if (res.code === 0) { - await this.listItemScore() - this.buildTableData() - this.$message.success("保存成功") - } else { - this.$message.error(res.msg) - } - }) + const {code,data,msg} = await $.post("/platform/activity/scoreEnter/save-score", formData) + if (code === 0) { + await this.listItemScore() + this.buildTableData() + this.$message.success("保存成功") + }else{ + this.$message.error(msg) + } console.log(this.tableData) } }, diff --git a/frontend/src/pages/activity/scan-sign/index.vue b/frontend/src/pages/activity/scan-sign/index.vue index 60ce9ac..38413fc 100644 --- a/frontend/src/pages/activity/scan-sign/index.vue +++ b/frontend/src/pages/activity/scan-sign/index.vue @@ -1,96 +1,108 @@