From 2a8c262b9b25f2b71d57a9131cb004e62ca6940e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <13281114856@qq.com>
Date: Wed, 9 Nov 2022 10:54:47 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=AB=99=E7=82=B9=E8=BF=94?=
 =?UTF-8?q?=E5=9B=9E=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../module/matter/service/MatterService.java  |  3 +-
 .../service/impl/MatterServiceImpl.java       | 42 ++++++++++++++++---
 .../module/matter/web/MatterController.java   | 18 ++++----
 portal-manager/src/main/bin/deploy.sh         | 41 +++++++++++++++++-
 4 files changed, 88 insertions(+), 16 deletions(-)

diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java
index 36bd947f..85723fed 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/MatterService.java
@@ -1,4 +1,5 @@
 package com.mortals.xhx.module.matter.service;
+import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.service.ICRUDCacheService;
 import com.mortals.framework.service.ICRUDService;
@@ -22,7 +23,7 @@ public interface MatterService extends ICRUDCacheService<MatterEntity,Long> {
      * @param siteId
      * @param context
      */
-    void addMatterToSite(String matterIds, Long siteId, Context context);
+    Rest<String> addMatterToSite(String matterIds, Long siteId, Context context);
 
 
     /**
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
index 5ecef13d..7f4e7957 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
@@ -7,6 +7,7 @@ import cn.hutool.setting.Setting;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.mortals.framework.common.Rest;
 import com.mortals.framework.exception.AppException;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.model.PageInfo;
@@ -111,18 +112,45 @@ public class MatterServiceImpl extends AbstractCRUDCacheServiceImpl<MatterDao, M
     }
 
     @Override
-    public void addMatterToSite(String matterIds, Long siteId, Context context) {
+    public Rest<String> addMatterToSite(String matterIds, Long siteId, Context context) {
         if (ObjectUtils.isEmpty(siteId)) {
             throw new AppException("璇烽€夋嫨瀵瑰簲绔欑偣");
         }
         List<Long> matterIdList = Arrays.asList(matterIds.split(",")).stream().map(Long::parseLong).collect(Collectors.toList());
         MatterQuery matterQuery = new MatterQuery();
         matterQuery.setIdList(matterIdList);
-        this.find(matterQuery).stream()
-                .peek(item -> updateOrSave(item, siteId, context)).count();
+
+        List<MatterEntity> matterEntities = this.find(matterQuery);
+
+        int success = 0;
+        int fail = 0;
+
+        for (MatterEntity matterEntity : matterEntities) {
+            Boolean bool = updateOrSave(matterEntity, siteId, context);
+            if (bool) {
+                success++;
+            } else {
+                fail++;
+            }
+        }
+        String msg = "褰撳墠鍔犲叆浜嬮」宸插瓨鍦紒";
+        if (matterIdList.size() == 1) {
+            if (success > 0) {
+                msg = "鍔犲叆浜嬮」鎴愬姛锛�";
+            }
+        } else if (matterIdList.size() > 1) {
+            if (success > 0 && fail == 0) {
+                msg = String.format("鍔犲叆浜嬮」鎴愬姛%d鏉�!", success);
+            } else if (success > 0 && fail > 0) {
+                msg = String.format("鍔犲叆浜嬮」鎴愬姛%d鏉★紝閲嶅鍔犲叆浜嬮」%d鏉★紒", success, fail);
+            } else if (success == 0 && fail > 0) {
+                msg = String.format("閲嶅鍔犲叆浜嬮」%d鏉★紒", fail);
+            }
+        }
+        return Rest.ok(msg);
     }
 
-    private void updateOrSave(MatterEntity item, Long siteId, Context context) {
+    private Boolean updateOrSave(MatterEntity item, Long siteId, Context context) {
         SiteMatterEntity siteMatterEntity = siteMatterService.selectOne(new SiteMatterQuery().siteId(siteId).matterId(item.getId()));
         if (ObjectUtils.isEmpty(siteMatterEntity)) {
             siteMatterEntity = new SiteMatterEntity();
@@ -134,7 +162,9 @@ public class MatterServiceImpl extends AbstractCRUDCacheServiceImpl<MatterDao, M
             siteMatterEntity.setCreateUserId(context == null ? 1L : context.getUser() == null ? 1L : context.getUser().getId());
             siteMatterEntity.setCreateTime(new Date());
             siteMatterService.save(siteMatterEntity, context);
+            return true;
         }
+        return false;
     }
 
 
@@ -675,7 +705,7 @@ public class MatterServiceImpl extends AbstractCRUDCacheServiceImpl<MatterDao, M
         }
 
         if (ObjectUtils.isEmpty(jsonArray)) {
-           // log.info("涓粙鏈嶅姟 is null");
+            // log.info("涓粙鏈嶅姟 is null");
             return;
         }
         List<MatterIntermediaryEntity> intermediaryEntityArrayList = new ArrayList<>();
@@ -791,7 +821,7 @@ public class MatterServiceImpl extends AbstractCRUDCacheServiceImpl<MatterDao, M
         }
 
         if (ObjectUtils.isEmpty(jsonArray)) {
-          //  log.info("鐢宠鏉愭枡 is null");
+            //  log.info("鐢宠鏉愭枡 is null");
             return;
         }
         if (!ObjectUtils.isEmpty(jsonArray)) {
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java
index e0cc3f50..8825699b 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/web/MatterController.java
@@ -2,6 +2,7 @@ package com.mortals.xhx.module.matter.web;
 
 import cn.hutool.setting.Setting;
 import com.alibaba.fastjson.JSONObject;
+import com.mortals.framework.common.Rest;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.util.DataUtil;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
@@ -79,18 +80,18 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
 
         Setting baseInfoSetting = interceptorConfig.getBaseInfoSetting();
         Map<String, String> baseInfoMap = new HashMap<>();
-        baseInfoSetting.entrySet().stream().forEach(item->{
-            if(!ObjectUtils.isEmpty(item.getValue())){
-                baseInfoMap.put(  item.getValue(),  item.getKey());
+        baseInfoSetting.entrySet().stream().forEach(item -> {
+            if (!ObjectUtils.isEmpty(item.getValue())) {
+                baseInfoMap.put(item.getValue(), item.getKey());
             }
         });
         this.addDict(model, "baseInfo", baseInfoMap);
 
         Setting sqclInfoSetting = interceptorConfig.getSqclInfoSetting();
         Map<String, String> sqclInfoMap = new HashMap<>();
-        sqclInfoSetting.entrySet().stream().forEach(item->{
-            if(!ObjectUtils.isEmpty(item.getValue())){
-                sqclInfoMap.put(  item.getValue(),  item.getKey());
+        sqclInfoSetting.entrySet().stream().forEach(item -> {
+            if (!ObjectUtils.isEmpty(item.getValue())) {
+                sqclInfoMap.put(item.getValue(), item.getKey());
             }
         });
         this.addDict(model, "sqclInfo", sqclInfoMap);
@@ -107,10 +108,11 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
         JSONObject jsonObject = new JSONObject();
         Map<String, Object> model = new HashMap<String, Object>();
         String matterIds = (String) map.get("matterIds");
-        Long siteId = DataUtil.converStr2Long(map.get("siteId").toString(),0L) ;
+        Long siteId = DataUtil.converStr2Long(map.get("siteId").toString(), 0L);
 
         try {
-            this.service.addMatterToSite(matterIds, siteId, getContext());
+            Rest<String> rest = this.service.addMatterToSite(matterIds, siteId, getContext());
+            jsonObject.put(KEY_RESULT_MSG, rest.getData());
             jsonObject.put(KEY_RESULT_DATA, model);
             jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
         } catch (Exception e) {
diff --git a/portal-manager/src/main/bin/deploy.sh b/portal-manager/src/main/bin/deploy.sh
index 8518ef23..9520c4f1 100644
--- a/portal-manager/src/main/bin/deploy.sh
+++ b/portal-manager/src/main/bin/deploy.sh
@@ -18,6 +18,11 @@ GATEWAY_PORT="@profiles.server.gatewayport@"
 
 SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log"
 
+MYSQL_HOST="127.0.0.1"
+MYSQL_PORT="3306"
+MYSQL_USER="root"
+MYSQL_PASSWORD="xhx@2022"
+
 SERVICE_PATH="/usr/lib/systemd/system"
 JAVA_HOME="/usr/local/java/jdk1.8"
 
@@ -139,7 +144,7 @@ start_service_and_nginx() {
   systemctl enable ${PROJECT_NAME}
   systemctl daemon-reload
   systemctl stop ${PROJECT_NAME} && systemctl start ${PROJECT_NAME}
-  project_status=$(systemctl status "${PROJECT_NAME}"|grep Active |awk '{print $2}')
+  project_status=$(systemctl status "${PROJECT_NAME}" | grep Active | awk '{print $2}')
   nginx -t
   nginx -s reload
   jcpid=$(ps -ef | grep -v "grep" | grep "${PROJECT_NAME} " | awk '{print $2}')
@@ -164,7 +169,13 @@ project_ui_deploy() {
   clear_ui_deploy ${PROJECT_UI_EXECPATH}
   tar -zvxf ./${PROJECT_UI_FILENAME} -C ${PUBLISH_PATH}
   writelog "${PROJECT_NAME}_ui_deploy_finish"
+}
 
+init_db() {
+  writelog "${PROJECT_NAME}_db_init"
+  mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${EXECPATH}/db/db.sql
+  mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${EXECPATH}/db/menu.sql
+  writelog "${PROJECT_NAME}_db_init"
 }
 
 #涓诲嚱鏁�
@@ -176,4 +187,32 @@ main() {
   exit ${RETVAL}
 }
 
+init_params(){
+   #鑾峰彇鍙傛暟
+    while getopts h:P:u:p opt; do
+      case $opt in
+      h)
+        #echo "-mysql-host ---- $OPTARG"
+        MYSQL_HOST=$OPTARG
+        ;;
+      P)
+        #echo "-mysql-port ---- $OPTARG"
+        MYSQL_PORT=$OPTARG
+        ;;
+      u)
+        #echo "-mysql-user ---- $OPTARG"
+        MYSQL_USER=$OPTARG
+        ;;
+      p)
+        #echo "-mysql-password ---- $OPTARG"
+        MYSQL_PASSWORD=$OPTARG
+        ;;
+      ?)
+        echo "$opt is an invalid option"
+        ;;
+      esac
+    done
+}
+
+
 main $1
-- 
2.24.3