This commit is contained in:
@@ -15,7 +15,7 @@ public class DashboardController {
|
||||
|
||||
private final DashboardService dashboardService;
|
||||
|
||||
// ═══ 대시보드 CRUD ═══
|
||||
// ═══ 대시보드 CRUD (MENU_INFO 단일 본체) ═══
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity<ApiResponse<Map<String, Object>>> getDashboardList(
|
||||
@@ -33,11 +33,11 @@ public class DashboardController {
|
||||
return ResponseEntity.ok(ApiResponse.success(dashboardService.getDashboardList(params)));
|
||||
}
|
||||
|
||||
@GetMapping("/{dashboardId}")
|
||||
@GetMapping("/{objid}")
|
||||
public ResponseEntity<ApiResponse<Map<String, Object>>> getDashboardInfo(
|
||||
@PathVariable String dashboardId) {
|
||||
@PathVariable String objid) {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("dashboard_id", dashboardId);
|
||||
params.put("objid", objid);
|
||||
Map<String, Object> result = dashboardService.getDashboardInfo(params);
|
||||
if (result == null) {
|
||||
return ResponseEntity.ok(ApiResponse.error("대시보드를 찾을 수 없습니다"));
|
||||
@@ -55,23 +55,23 @@ public class DashboardController {
|
||||
return ResponseEntity.ok(ApiResponse.success(dashboardService.insertDashboard(body)));
|
||||
}
|
||||
|
||||
@PutMapping("/{dashboardId}")
|
||||
@PutMapping("/{objid}")
|
||||
public ResponseEntity<ApiResponse<Void>> updateDashboard(
|
||||
@PathVariable String dashboardId,
|
||||
@PathVariable String objid,
|
||||
@RequestAttribute("user_id") String userId,
|
||||
@RequestBody Map<String, Object> body) {
|
||||
body.put("dashboard_id", dashboardId);
|
||||
body.put("objid", objid);
|
||||
body.put("user_id", userId);
|
||||
dashboardService.updateDashboard(body);
|
||||
return ResponseEntity.ok(ApiResponse.success(null, "수정 완료"));
|
||||
}
|
||||
|
||||
@DeleteMapping("/{dashboardId}")
|
||||
@DeleteMapping("/{objid}")
|
||||
public ResponseEntity<ApiResponse<Void>> deleteDashboard(
|
||||
@PathVariable String dashboardId,
|
||||
@PathVariable String objid,
|
||||
@RequestAttribute("user_id") String userId) {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("dashboard_id", dashboardId);
|
||||
params.put("objid", objid);
|
||||
params.put("user_id", userId);
|
||||
dashboardService.deleteDashboard(params);
|
||||
return ResponseEntity.ok(ApiResponse.success(null, "삭제 완료"));
|
||||
@@ -79,36 +79,36 @@ public class DashboardController {
|
||||
|
||||
// ═══ 카드 CRUD ═══
|
||||
|
||||
@GetMapping("/{dashboardId}/cards")
|
||||
@GetMapping("/{objid}/cards")
|
||||
public ResponseEntity<ApiResponse<List<Map<String, Object>>>> getDashboardCards(
|
||||
@PathVariable String dashboardId) {
|
||||
@PathVariable String objid) {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("dashboard_id", dashboardId);
|
||||
params.put("menu_objid", objid);
|
||||
return ResponseEntity.ok(ApiResponse.success(dashboardService.getDashboardCardList(params)));
|
||||
}
|
||||
|
||||
@PostMapping("/{dashboardId}/cards")
|
||||
@PostMapping("/{objid}/cards")
|
||||
public ResponseEntity<ApiResponse<Map<String, Object>>> insertDashboardCard(
|
||||
@PathVariable String dashboardId,
|
||||
@PathVariable String objid,
|
||||
@RequestBody Map<String, Object> body) {
|
||||
body.put("dashboard_id", dashboardId);
|
||||
body.put("menu_objid", objid);
|
||||
return ResponseEntity.ok(ApiResponse.success(dashboardService.insertDashboardCard(body)));
|
||||
}
|
||||
|
||||
@PutMapping("/{dashboardId}/cards/{cardId}")
|
||||
@PutMapping("/{objid}/cards/{cardId}")
|
||||
public ResponseEntity<ApiResponse<Void>> updateDashboardCard(
|
||||
@PathVariable String dashboardId,
|
||||
@PathVariable String objid,
|
||||
@PathVariable String cardId,
|
||||
@RequestBody Map<String, Object> body) {
|
||||
body.put("dashboard_id", dashboardId);
|
||||
body.put("menu_objid", objid);
|
||||
body.put("card_id", cardId);
|
||||
dashboardService.updateDashboardCard(body);
|
||||
return ResponseEntity.ok(ApiResponse.success(null));
|
||||
}
|
||||
|
||||
@DeleteMapping("/{dashboardId}/cards/{cardId}")
|
||||
@DeleteMapping("/{objid}/cards/{cardId}")
|
||||
public ResponseEntity<ApiResponse<Void>> deleteDashboardCard(
|
||||
@PathVariable String dashboardId,
|
||||
@PathVariable String objid,
|
||||
@PathVariable String cardId) {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("card_id", cardId);
|
||||
@@ -116,23 +116,11 @@ public class DashboardController {
|
||||
return ResponseEntity.ok(ApiResponse.success(null));
|
||||
}
|
||||
|
||||
@PutMapping("/{dashboardId}/cards/batch")
|
||||
@PutMapping("/{objid}/cards/batch")
|
||||
public ResponseEntity<ApiResponse<Void>> updateCardPositions(
|
||||
@PathVariable String dashboardId,
|
||||
@PathVariable String objid,
|
||||
@RequestBody Map<String, Object> body) {
|
||||
dashboardService.updateCardPositions(body);
|
||||
return ResponseEntity.ok(ApiResponse.success(null, "일괄 업데이트 완료"));
|
||||
}
|
||||
|
||||
// ═══ 사이드바 메뉴 ═══
|
||||
|
||||
@GetMapping("/sidebar/menu")
|
||||
public ResponseEntity<ApiResponse<List<Map<String, Object>>>> getSidebarMenu(
|
||||
@RequestAttribute("company_code") String companyCode,
|
||||
@RequestAttribute("user_id") String userId) {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("company_code", companyCode);
|
||||
params.put("user_id", userId);
|
||||
return ResponseEntity.ok(ApiResponse.success(dashboardService.getSidebarMenu(params)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public class DashboardService extends BaseService {
|
||||
|
||||
private static final String NS = "dashboard.";
|
||||
|
||||
// ═══ 대시보드 CRUD ═══
|
||||
// ═══ 대시보드 CRUD (MENU_INFO 단일 본체) ═══
|
||||
|
||||
public Map<String, Object> getDashboardList(Map<String, Object> params) {
|
||||
commonService.applyPagination(params);
|
||||
@@ -32,17 +32,32 @@ public class DashboardService extends BaseService {
|
||||
|
||||
@Transactional
|
||||
public Map<String, Object> insertDashboard(Map<String, Object> params) {
|
||||
String dashboardId = "dash_" + UUID.randomUUID().toString().replace("-", "").substring(0, 12);
|
||||
params.put("dashboard_id", dashboardId);
|
||||
if (params.get("icon") == null) {
|
||||
params.put("icon", "\uD83D\uDCCB");
|
||||
}
|
||||
if (params.get("display_order") == null) {
|
||||
params.put("display_order", 0);
|
||||
String objid = String.valueOf(System.currentTimeMillis());
|
||||
params.put("objid", objid);
|
||||
params.put("writer", params.get("user_id"));
|
||||
|
||||
// 개인 대시보드 여부: is_personal=true 이면 USER_ID 채움, 아니면 NULL (회사 공용)
|
||||
Object isPersonal = params.get("is_personal");
|
||||
boolean personal = isPersonal != null
|
||||
&& (Boolean.TRUE.equals(isPersonal) || "true".equalsIgnoreCase(String.valueOf(isPersonal)));
|
||||
if (!personal) {
|
||||
params.put("user_id", null);
|
||||
}
|
||||
|
||||
// 회사별 자동 시퀀스 = URL. COMPANY_CODE 내 /숫자 형 URL 중 최대값 + 1
|
||||
Integer nextSeq = sqlSession.selectOne(NS + "getNextMenuSeq", params);
|
||||
if (nextSeq == null) nextSeq = 1;
|
||||
String menuUrl = "/" + nextSeq;
|
||||
params.put("seq", String.valueOf(nextSeq));
|
||||
params.put("menu_url", menuUrl);
|
||||
|
||||
sqlSession.insert(NS + "insertDashboard", params);
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("dashboard_id", dashboardId);
|
||||
result.put("objid", objid);
|
||||
result.put("dashboard_id", objid); // 프론트 하위호환
|
||||
result.put("menu_url", menuUrl);
|
||||
result.put("seq", nextSeq);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -97,10 +112,4 @@ public class DashboardService extends BaseService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ═══ 사이드바 메뉴 ═══
|
||||
|
||||
public List<Map<String, Object>> getSidebarMenu(Map<String, Object> params) {
|
||||
return sqlSession.selectList(NS + "getSidebarMenu", params);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user