lrj
2025-09-29 29fc6f5b1981775be5d2f0f9f8e61fec2f550252
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 " +
            "SELECT ap.id, p.name AS player_name, a.name AS activity_name, p.phone AS phone, ap.create_time AS apply_time, p.state AS state " +
            "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,8 +50,11 @@
        }
        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<>();
@@ -49,8 +65,8 @@
            dto.setActivityName(r[2] != null ? r[2].toString() : "");
            dto.setPhone(r[3] != null ? r[3].toString() : "");
            dto.setApplyTime(r[4] != null ? r[4].toString() : "");
            // 映射状态:使用 t_player.audit_state(0=未审核,1=进行中,2=已驳回,3=结束)
            dto.setState(r[5] != null ? Integer.valueOf(r[5].toString()) : 0);
            // 映射状态:使用 t_player.state(1=有效,0=无效)
            dto.setState(r[5] != null ? Integer.valueOf(r[5].toString()) : 1);
            list.add(dto);
        }
        return list;