From f627a03d83ed035959ba81601f47c606b3e1b8d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Fri, 23 Sep 2022 16:34:16 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=AC=EB=AC=B8=EB=B3=B4=EA=B3=A0=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=EC=A4=91.=20=20-=20=EB=B3=B4=EA=B3=A0?= =?UTF-8?q?=EC=9D=BC,=20=EB=B9=84=EA=B3=A0=20=EC=BB=AC=EB=9F=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80.=20=20-=20=ED=95=B4=EC=8B=9C=ED=83=9C?= =?UTF-8?q?=EA=B7=B8=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../faisp/fpiMgt/affair/AffairController.java | 2 ++ .../fpiMgt/affair/mapper/AffairMapper.java | 2 ++ .../fpiMgt/affair/model/AffairBoard.java | 8 ++++++ .../repository/HashTagLinkRepository.java | 1 + .../affair/repository/HashTagRepository.java | 3 +++ .../fpiMgt/affair/service/AffairService.java | 27 ++++++++++++++++--- .../resources/mybatisMapper/AffairMapper.xml | 9 +++++++ .../igActivities/fpiMgt/affair/affairMgt.js | 6 ++++- .../fpiMgt/affair/affairEditModal.html | 19 ++++++++++++- .../fpiMgt/affair/affairViewModal.html | 20 ++++++++++++-- 10 files changed, 90 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java index 63ca45f8..36523343 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; @@ -159,6 +160,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 affairBoard.setWrtUserSeq(loginUser.getUserSeq()); affairBoard.setWrtUserNm(loginUser.getUserNm()); affairBoard.setWrtDt(LocalDateTime.now()); + affairBoard.setReportDt(LocalDate.now()); } mav.addObject("affair", affairBoard); return mav; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java index 3ffe92aa..b104f259 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java @@ -11,4 +11,6 @@ public interface AffairMapper { List selectAffairBoardList(AffairBoard affair); Integer selectAffairBoardCnt(AffairBoard affair); + + String selectHashTags(Integer affairKey); } diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java index 1fa46bcf..f28ba8e3 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java @@ -10,6 +10,7 @@ import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.multipart.MultipartFile; import javax.persistence.*; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @@ -50,8 +51,15 @@ public class AffairBoard extends BaseModel { private LocalDateTime wrtDt; @Column(name = "wrt_user_seq") private Integer wrtUserSeq; + @Column(name = "etc") + private String etc; + @Column(name = "report_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate reportDt; + @Transient + private String hashTags; @Transient private Integer fileCnt; @Transient diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java index 1cbdaaf6..5c0b3080 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java @@ -5,4 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface HashTagLinkRepository extends JpaRepository { + void deleteByAffairKey(Integer affairKey); } diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java index 4ae757bf..bdc53154 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java @@ -3,7 +3,10 @@ package com.dbnt.faisp.fpiMgt.affair.repository; import com.dbnt.faisp.fpiMgt.affair.model.HashTag; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.Optional; + public interface HashTagRepository extends JpaRepository { + Optional findByTagNm(String tagNm); } diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java index 88fb9f80..61c9ebaa 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java @@ -3,9 +3,7 @@ package com.dbnt.faisp.fpiMgt.affair.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.fpiMgt.affair.mapper.AffairMapper; -import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; -import com.dbnt.faisp.fpiMgt.affair.model.AffairFile; -import com.dbnt.faisp.fpiMgt.affair.model.AffairRating; +import com.dbnt.faisp.fpiMgt.affair.model.*; import com.dbnt.faisp.fpiMgt.affair.repository.*; import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; @@ -38,6 +36,7 @@ public class AffairService extends BaseService { // 견문보고 public AffairBoard selectAffairBoard(Integer affairKey){ AffairBoard affair = affairBoardRepository.findById(affairKey).orElse(null); if(affair != null){ + affair.setHashTags(affairMapper.selectHashTags(affairKey)); affair.setFileList(affairFileRepository.findByAffairKey(affairKey)); affair.setRateList(affairRatingRepository.findByAffairKey(affairKey)); } @@ -46,6 +45,10 @@ public class AffairService extends BaseService { // 견문보고 @Transactional public Integer saveAffairBoard(AffairBoard affair, List deleteFileSeq){ Integer affairKey = affairBoardRepository.save(affair).getAffairKey(); + String[] hashTagAry = affair.getHashTags().split(" "); + if(hashTagAry.length>0){ + saveHashTagLink(affairKey, hashTagAry); + } if(deleteFileSeq != null && deleteFileSeq.size()>0){ deleteAffairFile(affairKey, deleteFileSeq); } @@ -55,6 +58,24 @@ public class AffairService extends BaseService { // 견문보고 return affairKey; } + private void saveHashTagLink(Integer affairKey, String[] hashTagAry){ + hashTagLinkRepository.deleteByAffairKey(affairKey); + for(String tagNm : hashTagAry){ + HashTag savedTag = hashTagRepository.findByTagNm(tagNm).orElse(null); + Integer tagKey; + if(savedTag==null){ + HashTag tag = new HashTag(); + tag.setTagNm(tagNm); + tagKey = hashTagRepository.save(tag).getTagKey(); + }else{ + tagKey = savedTag.getTagKey(); + } + HashTagLink hashTagLink = new HashTagLink(); + hashTagLink.setAffairKey(affairKey); + hashTagLink.setTagKey(tagKey); + hashTagLinkRepository.save(hashTagLink); + } + } private void deleteAffairFile(Integer affairKey, List deleteFileSeq) { List affairFileList = affairFileRepository.findByAffairKey(affairKey); for(AffairFile file: affairFileList){ diff --git a/src/main/resources/mybatisMapper/AffairMapper.xml b/src/main/resources/mybatisMapper/AffairMapper.xml index 9ae6bb60..171b4123 100644 --- a/src/main/resources/mybatisMapper/AffairMapper.xml +++ b/src/main/resources/mybatisMapper/AffairMapper.xml @@ -62,4 +62,13 @@ from affair_board a + \ No newline at end of file diff --git a/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js b/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js index 78c5a7b1..5c376554 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js @@ -60,9 +60,13 @@ function getAffairEditModal(affairKey){ success: function(html){ $("#affairEditModalContent").empty().append(html) $("#affairEditModal").modal('show'); + $("#reportDt").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); $("#content").summernote({ lang:'ko-KR', - height: 390, + height: 300, disableDragAndDrop: true, toolbar: [ ['style', ['style']], diff --git a/src/main/resources/templates/igActivities/fpiMgt/affair/affairEditModal.html b/src/main/resources/templates/igActivities/fpiMgt/affair/affairEditModal.html index f721e31d..f88baca6 100644 --- a/src/main/resources/templates/igActivities/fpiMgt/affair/affairEditModal.html +++ b/src/main/resources/templates/igActivities/fpiMgt/affair/affairEditModal.html @@ -22,6 +22,10 @@
+ +
+ +
@@ -67,10 +71,23 @@
+
+ +
+ +
+
- + +
+
+
+ +
+
diff --git a/src/main/resources/templates/igActivities/fpiMgt/affair/affairViewModal.html b/src/main/resources/templates/igActivities/fpiMgt/affair/affairViewModal.html index cf8af529..e4bf9667 100644 --- a/src/main/resources/templates/igActivities/fpiMgt/affair/affairViewModal.html +++ b/src/main/resources/templates/igActivities/fpiMgt/affair/affairViewModal.html @@ -19,6 +19,10 @@
+ +
+ +
@@ -63,19 +67,31 @@
-
+
-
+ +
+ +
+
+
+
+
+ +
+ +
+