From 4fa9591629721797386fc11836e3a9deb69cd58c Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期三, 24 九月 2025 17:00:37 +0800 Subject: [PATCH] 修改评分逻辑,支持多个评委 --- backend/src/main/java/com/rongyichuang/player/service/PlayerApplicationService.java | 30 +++++++++++++++++++++++------- 1 files changed, 23 insertions(+), 7 deletions(-) diff --git a/backend/src/main/java/com/rongyichuang/player/service/PlayerApplicationService.java b/backend/src/main/java/com/rongyichuang/player/service/PlayerApplicationService.java index 62583da..2a34eb1 100644 --- a/backend/src/main/java/com/rongyichuang/player/service/PlayerApplicationService.java +++ b/backend/src/main/java/com/rongyichuang/player/service/PlayerApplicationService.java @@ -15,20 +15,33 @@ private EntityManager em; /** - * 璇诲彇鎶ュ悕鐢宠锛屾寜鎶ュ悕鏃堕棿鍊掑簭 - * 娉ㄦ剰锛氬疄闄呭簱琛ㄤ负 t_avtivity_player锛堟嫾鍐欎互搴撲负鍑嗭級 + * 鏌ヨ娲诲姩鎶ュ悕淇℃伅 */ @SuppressWarnings("unchecked") - public List<ActivityPlayerApplicationResponse> listApplications(String name, Integer page, Integer size) { + public List<ActivityPlayerApplicationResponse> listApplications(String name, Long activityId, Integer page, Integer size) { String baseSql = "SELECT ap.id, p.name AS player_name, a.name AS activity_name, p.phone AS phone, ap.create_time AS apply_time, p.audit_state AS state " + - "FROM t_avtivity_player ap " + + "FROM t_activity_player ap " + "JOIN t_player p ON p.id = ap.player_id " + "JOIN t_activity a ON a.id = ap.activity_id "; - String where = ""; + + StringBuilder whereClause = new StringBuilder(); + boolean hasCondition = false; + if (name != null && !name.isEmpty()) { - where = "WHERE p.name LIKE CONCAT('%', :name, '%') "; + whereClause.append("p.name LIKE CONCAT('%', :name, '%')"); + hasCondition = true; } + + if (activityId != null) { + if (hasCondition) { + whereClause.append(" AND "); + } + whereClause.append("ap.activity_id = :activityId"); + hasCondition = true; + } + + String where = hasCondition ? "WHERE " + whereClause.toString() + " " : ""; String order = "ORDER BY ap.create_time DESC "; String limit = ""; if (page != null && size != null && page > 0 && size > 0) { @@ -37,9 +50,12 @@ } var q = em.createNativeQuery(baseSql + where + order + limit); - if (!where.isEmpty()) { + if (name != null && !name.isEmpty()) { q.setParameter("name", name); } + if (activityId != null) { + q.setParameter("activityId", activityId); + } List<Object[]> rows = q.getResultList(); List<ActivityPlayerApplicationResponse> list = new ArrayList<>(); for (Object[] r : rows) { -- Gitblit v1.8.0