package com.talentcard.server.service; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.talentcard.server.entity.AdminApprovalOrganization; import com.talentcard.server.mapper.AdminApprovalOrganizationMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class AdminApprovalInfoService { private final AdminApprovalOrganizationMapper organizationMapper; public AdminApprovalInfoService(AdminApprovalOrganizationMapper organizationMapper) { this.organizationMapper = organizationMapper; } @Transactional(readOnly = true) public List> list() { return organizationMapper.selectList(new QueryWrapper() .select("id", "organization_name", "address", "latitude", "longitude", "rights_text", "consultation_phone", "office_hours", "target_talent", "pdf_file", "is_pdf_visible") .eq("deleted", 0) .eq("enabled", 1) .orderByAsc("sort_no", "id")) .stream() .map(this::view) .toList(); } private Map view(AdminApprovalOrganization organization) { Map result = new LinkedHashMap<>(); result.put("id", organization.getId()); result.put("organization_name", text(organization.getOrganizationName())); result.put("address", text(organization.getAddress())); result.put("latitude", organization.getLatitude()); result.put("longitude", organization.getLongitude()); result.put("rights_text", text(organization.getRightsText())); result.put("consultation_phone", text(organization.getConsultationPhone())); result.put("office_hours", text(organization.getOfficeHours())); result.put("target_talent", text(organization.getTargetTalent())); boolean pdfVisible = organization.getIsPdfVisible() != null && organization.getIsPdfVisible() == 1; result.put("is_pdf_visible", pdfVisible ? 1 : 0); if (pdfVisible && organization.getPdfFile() != null && !organization.getPdfFile().isBlank()) { result.put("pdf_file", organization.getPdfFile()); } return result; } private String text(String value) { return value == null ? "" : value.trim(); } }