package com.pms.service; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * 테이블 관리 서비스 */ @Service public class TableManagementService { @Autowired private SqlSessionTemplate sqlSessionTemplate; /** * 테이블 목록 조회 */ public List> getTableList() { return sqlSessionTemplate.selectList("tableManagement.selectTableList"); } /** * 테이블 컬럼 정보 조회 */ public List> getColumnList(String tableName) { Map paramMap = new HashMap<>(); paramMap.put("tableName", tableName); return sqlSessionTemplate.selectList("tableManagement.selectColumnList", paramMap); // Uses injected template } public void updateColumnSettings(String tableName, String columnName, Map settings) { // 테이블이 table_labels에 없으면 자동 추가 sqlSessionTemplate.insert("tableManagement.insertTableIfNotExists", tableName); Map paramMap = new HashMap<>(); paramMap.put("tableName", tableName); paramMap.put("columnName", columnName); // 실제 DB 컬럼명 (변경 불가) paramMap.put("columnLabel", settings.get("columnLabel")); // 사용자가 입력한 표시명 paramMap.put("webType", settings.get("webType")); paramMap.put("detailSettings", settings.get("detailSettings")); paramMap.put("codeCategory", settings.get("codeCategory")); paramMap.put("codeValue", settings.get("codeValue")); paramMap.put("referenceTable", settings.get("referenceTable")); paramMap.put("referenceColumn", settings.get("referenceColumn")); // 디버깅을 위한 로그 추가 System.out.println("저장할 컬럼 설정:"); System.out.println(" tableName: " + tableName); System.out.println(" columnName: " + columnName); System.out.println(" columnLabel: " + settings.get("columnLabel")); System.out.println(" webType: " + settings.get("webType")); sqlSessionTemplate.update("tableManagement.updateColumnSettings", paramMap); } public void updateAllColumnSettings(String tableName, List> columnSettings) { for (Map columnSetting : columnSettings) { String columnName = (String) columnSetting.get("columnName"); updateColumnSettings(tableName, columnName, columnSetting); } } }