
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.cms.popup.web;
import com.takensoft.cms.popup.service.PopupService;
import com.takensoft.cms.popup.vo.PopupVO;
import com.takensoft.common.exception.CustomInsertFailException;
import com.takensoft.common.file.service.FileService;
import com.takensoft.common.message.MessageCode;
import com.takensoft.common.util.ResponseData;
import com.takensoft.common.util.ResponseUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.dao.DataAccessException;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
import java.util.*;
/**
* @author 박정하
* @since 2024.05.13
* @modification
* since | author | description
* 2024.05.13 | 박정하 | 최초 등록
* 2025.03.13 | 방선주 | 코드 리펙토링
*
* 팝업 관련 Controller
*/
@RestController
@RequiredArgsConstructor
@RequestMapping(value = "/admin/popup")
public class PopupController {
private final PopupService popupService;
private final FileService fileService;
private final ResponseUtil resUtil;
/**
* @param popupVO - 팝업 정보
* @param multipartFileList - 업로드할 파일 목록
* @return ResponseEntity - 팝업 등록 결과를 포함하는 응답
*
* 팝업 등록
*/
@PostMapping("/insertProc.file")
public ResponseEntity<?> insertProc(@RequestPart PopupVO popupVO, List<MultipartFile> multipartFileList){
HashMap<String, Object> result = popupService.popupInsert(popupVO, multipartFileList);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param params - pagination HashMap
* @return ResponseEntity - 팝업 목록을 포함하는 응답
*
* 팝업 목록 조회
*/
@PostMapping("/listProc.json")
public ResponseEntity<?> listProc(@RequestBody HashMap<String, String> params){
HashMap<String, Object> result = popupService.popupList(params);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param popupVO - 팝업 정보
* @return ResponseEntity - 팝업 상세 정보를 포함하는 응답
*
* 팝업 상세 조회
*/
@PostMapping("/detailProc.json")
public ResponseEntity<?> detailProc(@RequestBody PopupVO popupVO) {
HashMap<String, Object> result = popupService.popupDetail(popupVO);
PopupVO popup = (PopupVO) result.get("popupVO");
List<HashMap<String, Object>> fileList = new ArrayList<>();
if (popup.getFileMngId() != null) {
try {
fileList = fileService.fileSelectList(popup.getFileMngId());
} catch (DataAccessException dae) {
throw dae;
} catch (Exception e) {
throw e;
}
}
result.put("fileList", fileList);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param popupVO - 팝업 정보
* @param multipartFileList - 업로드할 파일 목록
* @return ResponseEntity - 팝업 수정 결과를 포함하는 응답
*
* 팝업 수정
*/
@PostMapping("/updateProc.file")
public ResponseEntity<?> updateProc(@RequestPart PopupVO popupVO, @RequestParam(required = false) List<MultipartFile> multipartFileList) {
int result = popupService.popupUpdate(popupVO, multipartFileList);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param popupVO - 팝업 정보
* @return ResponseEntity - 팝업 삭제 결과를 포함하는 응답
*
* 팝업 수정
*/
@PostMapping("/deleteProc.json")
public ResponseEntity<?> deleteProc(@RequestBody PopupVO popupVO) {
int result = popupService.popupDelete(popupVO);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param popupVO - 팝업 정보
* @return ResponseEntity - 팝업창 띄울 정보를 포함하는 응답
*
* 팝업 목록 조회 (팝업창 띄우는 용도)
*/
@PostMapping("/listByPageProc.json")
public ResponseEntity<?> listByPageProc(@RequestBody PopupVO popupVO) {
List<PopupVO> result = popupService.popupListByPage(popupVO.getPageType());
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
}