From 616d76059d929650113f8a4ec750d86c4647b064 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 02 12월 2021 14:39:20 +0900
Subject: [PATCH] Home>사용자>DropDown>OWL 프로필>정보 수정 실시간 기능 추가 완료

---
 src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java |  118 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 89 insertions(+), 29 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
index fc67609..b6b4725 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
@@ -63,13 +63,22 @@
     @Override
     @Transactional
     public void addIssueHistory(Issue issue, IssueHistoryType issueHistoryType, String issueChangeDescription) {
+        User user = this.webAppUtil.getLoginUserObject();
+        addIssueHistory(issue, user, issueHistoryType, issueChangeDescription);
+    }
+
+    //  �씠�젰 �깮�꽦
+    @Override
+    @Transactional
+    public void addIssueHistory(Issue issue, User user, IssueHistoryType issueHistoryType, String issueChangeDescription) {
         IssueHistory issueHistory = new IssueHistory();
         issueHistory.setIssue(issue);
         issueHistory.setProject(issue.getProject());
         issueHistory.setIssueHistoryType(issueHistoryType);
         StringBuilder description = new StringBuilder();
         //  �씠�젰 �젙蹂대�� 留뚮뱾�뼱 �궦�떎.
-        this.makeDescription(description, issueHistoryType, issueChangeDescription);
+
+        this.makeDescription(user, description, issueHistoryType, issueChangeDescription);
         issueHistory.setDescription(description.toString());
 
         this.issueHistoryRepository.saveAndFlush(issueHistory);
@@ -81,6 +90,13 @@
     //  �씠�젰 �젙蹂대�� 留뚮뱾�뼱 �궦�떎.
     @Override
     public void makeDescription(StringBuilder description, IssueHistoryType issueHistoryType, String issueChangeDescription) {
+        User user = this.webAppUtil.getLoginUserObject();
+        makeDescription(user, description, issueHistoryType, issueChangeDescription);
+    }
+
+    //  �씠�젰 �젙蹂대�� 留뚮뱾�뼱 �궦�떎.
+    @Override
+    public void makeDescription(User user, StringBuilder description, IssueHistoryType issueHistoryType, String issueChangeDescription) {
         description.append("<div class=\"activity-text\">");
 
         //  �깮�꽦, �닔�젙, �궘�젣�뿉 ���빐 湲곕줉�쓣 �궓湲대떎.
@@ -90,9 +106,9 @@
                 description.append("<span class='activity-timestamp'>");
                 description.append(DateUtil.convertDateToStr(new Date()));
                 description.append(" (");
-                description.append(this.webAppUtil.getLoginUser().getName());
+                description.append(user.getName());
                 description.append(" - ");
-                description.append(CommonUtil.decryptAES128(this.webAppUtil.getLoginUser().getAccount()));
+                description.append(CommonUtil.decryptAES128(user.getAccount()));
                 description.append(")");
                 description.append("</span></h6>");
                 break;
@@ -103,10 +119,10 @@
                 description.append(DateUtil.convertDateToStr(new Date()));
                 description.append(" (");
 
-                if (this.webAppUtil.getLoginUser() != null) {
-                    description.append(this.webAppUtil.getLoginUser().getName());
+                if (user != null) {
+                    description.append(user.getName());
                     description.append(" - ");
-                    description.append(CommonUtil.decryptAES128(this.webAppUtil.getLoginUser().getAccount()));
+                    description.append(CommonUtil.decryptAES128(user.getAccount()));
                 }
                 else {
                     description.append("OWL-ITS-SYSTEM");
@@ -124,11 +140,33 @@
                 description.append("<span class=\"activity-timestamp\">");
                 description.append(DateUtil.convertDateToStr(new Date()));
                 description.append(" (");
-                description.append(this.webAppUtil.getLoginUser().getName());
+                description.append(user.getName());
                 description.append(" - ");
-                description.append(CommonUtil.decryptAES128(this.webAppUtil.getLoginUser().getAccount()));
+                description.append(CommonUtil.decryptAES128(user.getAccount()));
                 description.append(")");
                 description.append("</span></h6>");
+                break;
+
+            case SEND:
+                description.append("<h6 class=\"creat\"><span class=\"dot\"></span><span translate=\"common.sendMailIssue\">�씠�뒋 硫붿씪 �쟾�넚</span>");
+                description.append("<span class=\"activity-timestamp\">");
+                description.append(DateUtil.convertDateToStr(new Date()));
+                description.append(" (");
+
+                if (user != null) {
+                    description.append(user.getName());
+                    description.append(" - ");
+                    description.append(CommonUtil.decryptAES128(user.getAccount()));
+                }
+                else {
+                    description.append("OWL-ITS-SYSTEM");
+                    description.append(" - ");
+                    description.append(this.systemEmail);
+                }
+
+                description.append(")");
+                description.append("</span></h6>");
+                description.append(issueChangeDescription);
                 break;
         }
 
@@ -480,32 +518,46 @@
         }
     }
 
+    // �씠�뒋 硫붿씪 �쟾�넚 �젙蹂대�� 湲곕줉�븳�떎.
+    @Override
+    public void detectSendIssueMail(IssueHistoryType type, IssueForm issueForm, StringBuilder description) {
+        if (type == IssueHistoryType.SEND) {
+            description.append("<span translate=\"issue.sendIssueMailHistory\">�씠�뒋 硫붿씪 �쟾�넚�쓣 �셿猷뚰뻽�뒿�땲�떎. </span>");
+            if(issueForm.getSendEmails() != null && issueForm.getSendEmails().size() > 0){
+                for (String sendEmail : issueForm.getSendEmails()){
+                    description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + CommonUtil.decryptAES128(sendEmail) + "</span>");
+                }
+            }
+        }
+    }
+
     // �뾽泥� �젙蹂� 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
     @Override
     public void detectIssueCompany(IssueHistoryType type, Map<String, Object> param, IssueCompany issueCompany, StringBuilder description) {
-        Long id = MapUtil.getLong(param, "id");
+        Long id = MapUtil.getLong(param, "companyId");
+        Long companyFieldId = issueCompany.getCompanyField().getId();
 
         if (type == IssueHistoryType.ADD) { //異붽� �븷 寃쎌슦
             description.append("<span translate=\"issue.issueCompanyAddHistory\">�뾽泥� �젙蹂닿� 異붽��릺�뿀�뒿�땲�떎. </span>");
             description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + issueCompany.getCompanyField().getName() + "</span>");
         } else if (type == IssueHistoryType.MODIFY) { //�닔�젙 �븷 寃쎌슦
-            if (id != null && !issueCompany.getId().equals(id)) {
+            if (id != null && !companyFieldId.equals(id)) {
                 description.append("<span translate=\"issue.issueCompanyModifyHistory\">�뾽泥� �젙蹂닿� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
-                description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + issueCompany.getCompanyField().getName() + "</span>");
+                description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("name") + "</span>");
             }
-            if (param.get("manager") != null && (issueCompany.getManager() == null || !issueCompany.getManager().equals(param.get("manager")))) {
+            if (companyFieldId.equals(id) && param.get("manager") != null && (issueCompany.getManager() == null || !issueCompany.getManager().equals(param.get("manager")))) {
                 description.append("<span translate=\"issue.issueCompanyModifyManagerHistory\">&nbsp;>&nbsp;�뾽泥� �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("manager") + "</span>");
             }
-            if (param.get("tel") != null && (issueCompany.getTel() == null || !issueCompany.getTel().equals(param.get("tel")))) {
+            if (companyFieldId.equals(id) && param.get("tel") != null && (issueCompany.getTel() == null || !issueCompany.getTel().equals(param.get("tel")))) {
                 description.append("<span translate=\"issue.issueCompanyModifyTelHistory\">&nbsp;>&nbsp;�뾽泥� �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("tel") + "</span>");
             }
-            if (param.get("email") != null && (issueCompany.getEmail() == null || !issueCompany.getEmail().equals(param.get("email")))) {
+            if (companyFieldId.equals(id) && param.get("email") != null && (issueCompany.getEmail() == null || !issueCompany.getEmail().equals(param.get("email")))) {
                 description.append("<span translate=\"issue.issueCompanyModifyEmailHistory\">&nbsp;>&nbsp;�뾽泥� �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("email") + "</span>");
             }
-            if (param.get("memo") != null && (issueCompany.getMemo() == null || !issueCompany.getMemo().equals(param.get("memo")))) {
+            if (companyFieldId.equals(id) && param.get("memo") != null && (issueCompany.getMemo() == null || !issueCompany.getMemo().equals(param.get("memo")))) {
                 description.append("<span translate=\"issue.issueCompanyModifyMemoHistory\">&nbsp;>&nbsp;�뾽泥� �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("memo") + "</span>");
             }
@@ -518,29 +570,30 @@
     // ISP �젙蹂� 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
     @Override
     public void detectIssueIsp(IssueHistoryType type, Map<String, Object> param, IssueIsp issueIsp, StringBuilder description) {
-        Long id = MapUtil.getLong(param, "id");
+        Long id = MapUtil.getLong(param, "companyId");
+        Long ispFieldId = issueIsp.getIspField().getId();
 
         if (type == IssueHistoryType.ADD) {
             description.append("<span translate=\"issue.issueIspAddHistory\">ISP �젙蹂닿� 異붽��릺�뿀�뒿�땲�떎. </span>");
             description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + issueIsp.getIspField().getName() + "</span>");
         } else if (type == IssueHistoryType.MODIFY) {
-            if (id != null && !issueIsp.getId().equals(id)) { //�닔�젙 �븷 寃쎌슦
+            if (id != null && !ispFieldId.equals(id)) { //�닔�젙 �븷 寃쎌슦
                 description.append("<span translate=\"issue.issueIspModifyHistory\">ISP �젙蹂닿� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
-                description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + issueIsp.getIspField().getName() + "</span>");
+                description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("name") + "</span>");
             }
-            if (param.get("manager") != null && (issueIsp.getManager() == null || !issueIsp.getManager().equals(param.get("manager")))) {
+            if (ispFieldId.equals(id) && param.get("manager") != null && (issueIsp.getManager() == null || !issueIsp.getManager().equals(param.get("manager")))) {
                 description.append("<span translate=\"issue.issueIspModifyManagerHistory\">ISP �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("manager") + "</span>");
             }
-            if (param.get("tel") != null && (issueIsp.getTel() == null || !issueIsp.getTel().equals(param.get("tel")))) {
+            if (ispFieldId.equals(id) && param.get("tel") != null && (issueIsp.getTel() == null || !issueIsp.getTel().equals(param.get("tel")))) {
                 description.append("<span translate=\"issue.issueIspModifyTelHistory\">ISP �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("tel") + "</span>");
             }
-            if (param.get("email") != null && (issueIsp.getEmail() == null || !issueIsp.getEmail().equals(param.get("email")))) {
+            if (ispFieldId.equals(id) && param.get("email") != null && (issueIsp.getEmail() == null || !issueIsp.getEmail().equals(param.get("email")))) {
                 description.append("<span translate=\"issue.issueIspModifyEmailHistory\">ISP �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("email") + "</span>");
             }
-            if (param.get("memo") != null && (issueIsp.getMemo() == null || !issueIsp.getMemo().equals(param.get("memo")))) {
+            if (ispFieldId.equals(id) && param.get("memo") != null && (issueIsp.getMemo() == null || !issueIsp.getMemo().equals(param.get("memo")))) {
                 description.append("<span translate=\"issue.issueIspModifyMemoHistory\">ISP �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("memo") + "</span>");
             }
@@ -553,29 +606,30 @@
     // �샇�뒪�똿 �젙蹂� 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
     @Override
     public void detectIssueHosting(IssueHistoryType type, Map<String, Object> param, IssueHosting issueHosting, StringBuilder description) {
-        Long id = MapUtil.getLong(param, "id");
+        Long id = MapUtil.getLong(param, "companyId");
+        Long hostingFieldId = issueHosting.getHostingField().getId();
 
         if (type == IssueHistoryType.ADD) {
             description.append("<span translate=\"issue.issueHostingAddHistory\">�샇�뒪�똿 �젙蹂닿� 異붽��릺�뿀�뒿�땲�떎. </span>");
             description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + issueHosting.getHostingField().getName() + "</span>");
         }else if(type == IssueHistoryType.MODIFY){
-            if(id != null && !issueHosting.getId().equals(id)){ //�닔�젙 �븷 寃쎌슦
+            if(id != null && !hostingFieldId.equals(id)){ //�닔�젙 �븷 寃쎌슦
                 description.append("<span translate=\"issue.issueHostingModifyHistory\">�샇�뒪�똿 �젙蹂닿� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
-                description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + issueHosting.getHostingField().getName() + "</span>");
+                description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("name") + "</span>");
             }
-            if(param.get("manager") != null && (issueHosting.getManager() == null || !issueHosting.getManager().equals(param.get("manager")))){
+            if(hostingFieldId.equals(id) && param.get("manager") != null && (issueHosting.getManager() == null || !issueHosting.getManager().equals(param.get("manager")))){
                 description.append("<span translate=\"issue.issueHostingModifyManagerHistory\">�샇�뒪�똿 �젙蹂댁쓽 �떞�떦�옄媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("manager") + "</span>");
             }
-            if(param.get("tel") != null && (issueHosting.getTel() == null || !issueHosting.getTel().equals(param.get("tel")))){
+            if(hostingFieldId.equals(id) && param.get("tel") != null && (issueHosting.getTel() == null || !issueHosting.getTel().equals(param.get("tel")))){
                 description.append("<span translate=\"issue.issueHostingModifyTelHistory\">�샇�뒪�똿 �젙蹂댁쓽 �쟾�솕踰덊샇媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("tel") + "</span>");
             }
-            if(param.get("email") != null && (issueHosting.getEmail() == null || !issueHosting.getEmail().equals(param.get("email")))){
+            if(hostingFieldId.equals(id) && param.get("email") != null && (issueHosting.getEmail() == null || !issueHosting.getEmail().equals(param.get("email")))){
                 description.append("<span translate=\"issue.issueHostingModifyEmailHistory\">�샇�뒪�똿 �젙蹂댁쓽 �씠硫붿씪�씠 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("email") + "</span>");
             }
-            if(param.get("memo") != null && (issueHosting.getMemo() == null || !issueHosting.getMemo().equals(param.get("memo")))){
+            if(hostingFieldId.equals(id) && param.get("memo") != null && (issueHosting.getMemo() == null || !issueHosting.getMemo().equals(param.get("memo")))){
                 description.append("<span translate=\"issue.issueHostingModifyMemoHistory\">�샇�뒪�똿 �젙蹂댁쓽 鍮꾧퀬媛� 蹂�寃쎈릺�뿀�뒿�땲�떎. </span>");
                 description.append("<span class=\"text-primary bold\">&nbsp;>&nbsp;" + param.get("memo") + "</span>");
             }
@@ -923,6 +977,12 @@
         if (StringUtils.isEmpty(value)) {
             switch(customFieldType) {
                 case INPUT:
+                case NUMBER:
+                case DATETIME:
+                case IP_ADDRESS:
+                case EMAIL:
+                case SITE:
+                case TEL:
                     result = "<span translate=\"common.noValueEntered\">�엯�젰�븳 媛믪씠 �뾾�뒿�땲�떎.</span>";
                     break;
                 case SINGLE_SELECT:

--
Gitblit v1.8.0