diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/controller/PopUpApiController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/controller/PopUpApiController.java new file mode 100644 index 0000000..1c5fc36 --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/controller/PopUpApiController.java @@ -0,0 +1,71 @@ +package com.dbnt.kcscbackend.admin.contents.popUp.controller; + + +import com.dbnt.kcscbackend.admin.committee.schedules.model.CreateScheduleVO; +import com.dbnt.kcscbackend.admin.committee.schedules.model.UpdateScheduleVO; +import com.dbnt.kcscbackend.admin.committee.schedules.service.EgovIndvdlSchdulManageService; +import com.dbnt.kcscbackend.admin.contents.popUp.service.PopUpApiService; +import com.dbnt.kcscbackend.auth.entity.LoginVO; +import com.dbnt.kcscbackend.config.common.ResponseCode; +import com.dbnt.kcscbackend.config.common.ResultVO; +import io.swagger.annotations.Api; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + + +@Api("PopUpApiController") +@RestController +@Tag(name="PopUpApiController",description = "팝업 관리") +public class PopUpApiController { + + @Resource(name = "popUpApiService") + private PopUpApiService popUpApiService; + + @Operation( + summary = "'팝업 관리' 페이지에서 목록 불러오는 API", + description = "관리자 단에서 '컨텐츠 관리' > '팝업 관리' 페이지에서 목록 불러오는 API", + tags = {"SchedulesApiController"} + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "조회 성공"), + @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") + }) + @GetMapping(value = "/contents/api/popup-manage/list") + public ResultVO contentsApiPopUpManageList( + @AuthenticationPrincipal LoginVO user, + HttpServletRequest request) throws Exception { + + ResultVO resultVO = new ResultVO(); + + try { + resultVO = popUpApiService.contentsApiPopUpManageList(resultVO, request, user); + } catch (Exception e) { + resultVO.setResultCode(ResponseCode.FAILED.getCode()); + resultVO.setResultMessage(e.getMessage()); + } + + + System.out.println( + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " OUT:" + + "\n--------------------------------------------------------------\n" + + "resultVO.toString():" + "\n" + + resultVO.toString() + "\n" + + "\n--------------------------------------------------------------\n" + ); + + return resultVO; + } + + + + +} \ No newline at end of file diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/entity/TnPopupMngWithoutPopupContents.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/entity/TnPopupMngWithoutPopupContents.java new file mode 100644 index 0000000..e90975d --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/entity/TnPopupMngWithoutPopupContents.java @@ -0,0 +1,53 @@ +package com.dbnt.kcscbackend.admin.contents.popUp.entity; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity(name = "tn_popup_mng") +@NoArgsConstructor +public class TnPopupMngWithoutPopupContents { + + @Id + @Column(name = "popup_seq") + private Long popupSeq; + + @Column(name = "popup_title") + private String popupTitle; + + @Column(name = "popup_start_date") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime popupStartDate; + + @Column(name = "popup_end_date") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime popupEndDate; + + @Column(name = "file_grp_id") + private String fileGrpId; + + @Column(name = "frst_crt_id") + private String frstCrtId; + + @Column(name = "frst_crt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime frstCrtDt; + + @Column(name = "last_chg_id") + private String lastChgId; + + @Column(name = "last_chg_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime lastChgDt; + + @Column(name = "use_yn") + private String useYn; + +} \ No newline at end of file diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/model/TnPopupMngWithoutPopupContents.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/model/TnPopupMngWithoutPopupContents.java new file mode 100644 index 0000000..261e173 --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/model/TnPopupMngWithoutPopupContents.java @@ -0,0 +1,22 @@ +package com.dbnt.kcscbackend.admin.contents.popUp.model; + +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.Column; +import javax.persistence.Id; +import java.time.LocalDateTime; + +public interface TnPopupMngWithoutPopupContents { + + Long getPopupSeq(); + String getPopupTitle(); + LocalDateTime getPopupStartDate(); + LocalDateTime getPopupEndDate(); + String getFileGrpId(); + String getFrstCrtId(); + LocalDateTime getFrstCrtDt(); + String getLastChgId(); + LocalDateTime getLastChgDt(); + String getUseYn(); + +} diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/repository/TnPopupMngRepositoryWithoutPopupContents.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/repository/TnPopupMngRepositoryWithoutPopupContents.java new file mode 100644 index 0000000..b89a8f7 --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/repository/TnPopupMngRepositoryWithoutPopupContents.java @@ -0,0 +1,12 @@ +package com.dbnt.kcscbackend.admin.contents.popUp.repository; + +import com.dbnt.kcscbackend.admin.contents.popUp.entity.TnPopupMngWithoutPopupContents; +import com.dbnt.kcscbackend.commonCode.entity.TnPopupMng; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface TnPopupMngRepositoryWithoutPopupContents extends JpaRepository { + +} diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/service/PopUpApiService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/service/PopUpApiService.java new file mode 100644 index 0000000..4542b40 --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/service/PopUpApiService.java @@ -0,0 +1,10 @@ +package com.dbnt.kcscbackend.admin.contents.popUp.service; + +import com.dbnt.kcscbackend.auth.entity.LoginVO; +import com.dbnt.kcscbackend.config.common.ResultVO; + +import javax.servlet.http.HttpServletRequest; + +public interface PopUpApiService { + public ResultVO contentsApiPopUpManageList(ResultVO resultVO, HttpServletRequest request, LoginVO user) throws Exception; +} \ No newline at end of file diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/service/impl/PopUpApiServiceImpl.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/service/impl/PopUpApiServiceImpl.java new file mode 100644 index 0000000..54cb2b8 --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/contents/popUp/service/impl/PopUpApiServiceImpl.java @@ -0,0 +1,76 @@ +package com.dbnt.kcscbackend.admin.contents.popUp.service.impl; + + +import com.dbnt.kcscbackend.admin.contents.popUp.repository.TnPopupMngRepositoryWithoutPopupContents; +import com.dbnt.kcscbackend.admin.contents.popUp.service.PopUpApiService; +import com.dbnt.kcscbackend.auth.entity.LoginVO; +import com.dbnt.kcscbackend.commonCode.repository.TnPopupMngRepository; +import com.dbnt.kcscbackend.config.common.ResponseCode; +import com.dbnt.kcscbackend.config.common.ResultVO; +import lombok.RequiredArgsConstructor; +import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("popUpApiService") +@RequiredArgsConstructor +public class PopUpApiServiceImpl extends EgovAbstractServiceImpl implements PopUpApiService { + + private final TnPopupMngRepository tnPopupMngRepository; + private final TnPopupMngRepositoryWithoutPopupContents tnPopupMngRepositoryWithoutPopupContents; + + + @Override + public ResultVO contentsApiPopUpManageList(ResultVO resultVO, HttpServletRequest request, LoginVO user) throws Exception { + + System.out.println( + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " IN:" + + "\n--------------------------------------------------------------\n" + + "user.getEmail():" + "\n" + + user.getEmail() + "\n" + + "\n--------------------------------------------------------------\n" + ); + + List> listPopup = tnPopupMngRepositoryWithoutPopupContents.findAll(Sort.by(Sort.Direction.DESC, "popupSeq")) + .stream() + .map(item -> { + Map codeMap = new HashMap<>(); + codeMap.put("seq", item.getPopupSeq()); + codeMap.put("popupTitle", item.getPopupTitle()); + codeMap.put("startDate", item.getPopupStartDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + codeMap.put("endDate", item.getPopupEndDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + codeMap.put("createUserId", item.getFrstCrtId()); + codeMap.put("updateUserId", item.getLastChgId()); + codeMap.put("fileGrpId", item.getFileGrpId()); + codeMap.put("contents", null); + codeMap.put("useYn", item.getUseYn()); + codeMap.put("createDate", item.getFrstCrtDt()); + codeMap.put("updateDate", item.getLastChgDt()); + codeMap.put("base64String", null); + return codeMap; + }) + .collect(Collectors.toList()); + + Map dto = new HashMap(); + dto.put("listPopup", listPopup); + resultVO.setResult(dto); + resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); + resultVO.setResultMessage(ResponseCode.SUCCESS.getMessage()); + + return resultVO; + } + + + + + + +} diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/entity/TnPopupMng.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/entity/TnPopupMng.java new file mode 100644 index 0000000..7f72ca5 --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/entity/TnPopupMng.java @@ -0,0 +1,68 @@ +package com.dbnt.kcscbackend.commonCode.entity; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "tn_popup_mng") +public class TnPopupMng { + + @Id + @Column(name = "popup_seq") + private Long popupSeq; + + @Column(name = "popup_title") + private String popupTitle; + + @Column(name = "popup_start_date") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime popupStartDate; + + @Column(name = "popup_end_date") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime popupEndDate; + + @Column(name = "file_grp_id") + private String fileGrpId; + + @Column(name = "popup_contents") + private String popupContents; + + @Column(name = "frst_crt_id") + private String frstCrtId; + + @Column(name = "frst_crt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime frstCrtDt; + + @Column(name = "last_chg_id") + private String lastChgId; + + @Column(name = "last_chg_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime lastChgDt; + + @Column(name = "use_yn") + private String useYn; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class TnPopupMngId implements Serializable { + private String popupSeq; + } + +} \ No newline at end of file diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnPopupMngRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnPopupMngRepository.java new file mode 100644 index 0000000..35dd79a --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnPopupMngRepository.java @@ -0,0 +1,12 @@ +package com.dbnt.kcscbackend.commonCode.repository; + +import com.dbnt.kcscbackend.commonCode.entity.TnPopupMng; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface TnPopupMngRepository extends JpaRepository { + +}