From c007f0ca1785db093d48f4846cda82fe8e955765 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 27 五月 2020 09:59:29 +0800
Subject: [PATCH] merage

---
 src/main/java/com/highdatas/mdm/service/impl/DispenseServiceImpl.java |  127 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 114 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/DispenseServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/DispenseServiceImpl.java
index af7150c..694a810 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/DispenseServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/DispenseServiceImpl.java
@@ -1,14 +1,12 @@
 package com.highdatas.mdm.service.impl;
 
-import com.highdatas.mdm.entity.Maintain;
-import com.highdatas.mdm.entity.MasterAuthor;
-import com.highdatas.mdm.entity.SysDispenseLogs;
-import com.highdatas.mdm.entity.TUser;
+import com.highdatas.mdm.entity.*;
 import com.highdatas.mdm.pojo.CodeMsg;
 import com.highdatas.mdm.pojo.Page;
 import com.highdatas.mdm.pojo.Result;
 import com.highdatas.mdm.service.*;
 import com.highdatas.mdm.util.Constant;
+import com.highdatas.mdm.util.DbUtils;
 import com.highdatas.mdm.util.pool.MqEntity;
 import com.highdatas.mdm.util.pool.MqMessage;
 import com.highdatas.mdm.util.pool.PassiveMqThreadPoolExecutor;
@@ -65,6 +63,13 @@
     private volatile CopyOnWriteArrayList<MqMessage> passiveRequestList;
     private  ThreadPoolExecutor infiniteExecutorService;
 
+    /**
+     *
+     * @description:  鍒濆鍖栫殑鏃跺�欏垱寤轰富鍔紝琚姩涓や釜鎺掗槦闃熷垪
+     * @return: void
+     *
+     */
+
     @PostConstruct
     public void init() {
 
@@ -82,14 +87,33 @@
         this.passiveRequestList = new CopyOnWriteArrayList<>();
         createPassiveListenerThread();
     }
+    /**
+     *
+     * @description:  鑾峰彇鏄惁闇�瑕�
+     * @return: 鏄惁闇�瑕乤es鍔犲瘑
+     *
+     */
     @Override
     public Boolean getAes() {
         return aes;
     }
+    /**
+     *
+     * @description:  鑾峰彇ars鍔犲瘑璇锋眰鐨勮矾寰�
+     * @return:  鍔犲瘑鎺ュ彛璺緞
+     *
+     */
     @Override
     public String getAesUrl() {
         return aesUrl;
     }
+
+    /**
+     *
+     * @description:  鍒涘缓涓诲姩鍒嗗彂闃熷垪
+     * @return: void
+     *
+     */
 
     private void createPassiveListenerThread() {
         new Thread(() -> {
@@ -124,29 +148,63 @@
         }).start();
     }
 
+    /**
+     *
+     * @description:  鍒涘缓涓嬮〉鍒嗗彂鐨勬暟鎹寘淇℃伅
+     * @param  mqEntity 褰撳墠鍒嗗彂鐨別ntity鏁版嵁
+     * @return: void
+     *
+     */
     private MqMessage createNextSubMq(MqEntity mqEntity) {
         String type = mqEntity.getType();
         AtomicInteger pageNoAI = mqEntity.getPageNo();
+        String logId = mqEntity.getLogId();
+        SysDispenseLogs logs = dispenseLogsService.selectById(logId);
+
         if(pageNoAI == null) {
+            String userId = mqEntity.getUserId();
+            TUser user = DbUtils.getUserById(userId);
+            if (user == null && logs != null) {
+                logs.setErrorInfo(CodeMsg.USER_NOT_MATHED.getMsg()).updateById();
+            } else if (logs != null) {
+                logs.setUserName(user.getUserName());
+                logs.updateById();
+            }
             if (type.equalsIgnoreCase(Constant.Master)) {
                 String dataId = mqEntity.getDataId();
                 String tableNameByMenu = menuMappingService.getTableNameByMenu(dataId);
-                String userId = mqEntity.getUserId();
-                TUser user = new TUser().setUserId(userId);
                 Maintain maintain = maintainService.selectById(mqEntity.getMaintainId());
                 MasterAuthor masterAuthor = new MasterAuthor().setTableName(tableNameByMenu);
                 masterAuthor.setIncrement(mqEntity.getIncrement());
                 Page initPageInfo = masterAuthorService.getInitPageInfo(masterAuthor, maintain, user, mqEntity.getIncrement());
                 AtomicInteger pagesAI = new AtomicInteger(initPageInfo.getPages());
                 mqEntity.setPages(pagesAI);
+                mqEntity.setTotalSize(new AtomicInteger(Long.valueOf(initPageInfo.getRecordCount()).intValue()));
                 AtomicInteger pageSizeAI = new AtomicInteger(initPageInfo.getPageSize());
                 mqEntity.setPageSize(pageSizeAI);
+                if (logs != null) {
+                    SysMenu menuByTableName = menuMappingService.getMenuByTableName(maintain.getTableName());
+                    if (menuByTableName != null) {
+                        logs.setName(menuByTableName.getName());
+                    }
+                    logs.setVersion(maintain.getVersion());
+                    logs.updateById();
+                }
+
             } else {
                 Page initPageInfo = viewService.getInitPageInfo(mqEntity.getDataId());
                 AtomicInteger pagesAI = new AtomicInteger(initPageInfo.getPages());
                 mqEntity.setPages(pagesAI);
                 AtomicInteger pageSizeAI = new AtomicInteger(initPageInfo.getPageSize());
                 mqEntity.setPageSize(pageSizeAI);
+                mqEntity.setTotalSize(new AtomicInteger(Long.valueOf(initPageInfo.getRecordCount()).intValue()));
+                if (logs != null) {
+                    SysView sysView = viewService.selectById(mqEntity.getDataId());
+                    if (sysView != null) {
+                        logs.setName(sysView.getName());
+                        logs.updateById();
+                    }
+                }
             }
             pageNoAI = new AtomicInteger();
             mqEntity.setPageNo(pageNoAI);
@@ -155,15 +213,36 @@
         MqMessage mqMessage = new MqMessage(mqEntity);
         return mqMessage;
     }
-
+    /**
+     *
+     * @description:  娣诲姞鍒颁富鍔ㄥ垎鍙戦槦鍒�
+     * @param  message 鏁版嵁鍖呬俊鎭�
+     * @return: 鏄惁娣诲姞鎴愬姛
+     *
+     */
     @Override
     public boolean pushActiveMq(MqMessage message) {
+        return pushActiveMq(message, null);
+    }
+    @Override
+    public boolean pushActiveMq(MqMessage message, String touchType) {
         MqEntity mqEntity = message.getMqEntity();
         SysDispenseLogs preUnSuccessByMqEntity = dispenseLogsService.getPreUnSuccessByMqEntity(mqEntity);
         if (preUnSuccessByMqEntity == null) {
             SysDispenseLogs logByMqEntity = dispenseLogsService.createLogByMqEntity(mqEntity);
-            logByMqEntity.setTouchType("sys").updateById();
+            if (StringUtils.isEmpty(touchType)) {
+                logByMqEntity.setTouchType(touchType);
+            } else {
+                logByMqEntity.setTouchType("sys");
+            }
+
+
+            logByMqEntity.updateById();
+
+            mqEntity.setLogId(logByMqEntity.getId());
+
         } else {
+            mqEntity.setLogId(preUnSuccessByMqEntity.getId());
             mqEntity.setMsgKey(preUnSuccessByMqEntity.getKeyId());
             mqEntity.setPageNo(new AtomicInteger(preUnSuccessByMqEntity.getPageNo()));
             mqEntity.setPageSize(new AtomicInteger(preUnSuccessByMqEntity.getPageSize()));
@@ -174,12 +253,21 @@
 
         return true;
     }
-
+    /**
+     *
+     * @description:  娣诲姞鍒拌鍔ㄥ垎鍙戦槦鍒�
+     * @param  message 鏁版嵁鍖呬俊鎭�
+     * @param  touchType 瑙﹀彂绫诲瀷
+     * @param  logs 鏃ュ織瀵硅薄
+     * @return: 鏄惁娣诲姞鎴愬姛
+     *
+     */
     @Override
-    public Result pushPassiveMq(MqMessage message, String touchType) {
+    public Result pushPassiveMq(MqMessage message, String touchType, SysDispenseLogs logs) {
         try{
             MqMessage preMsg = null;
             if (queueSize.equals(priorityQueue.size())) {
+                logs.setResult(CodeMsg.ADDQUEUE_OVER.getMsg()).updateById();
                 return Result.error(CodeMsg.ADDQUEUE_OVER);
             }
             MqEntity mqEntity = message.getMqEntity();
@@ -200,6 +288,7 @@
             if (preMsg != null) {
                 int cnt = preMsg.getCnt();
                 preMsg.setCnt(cnt + 1);
+                logs.setResult(CodeMsg.REPEAT_ERROR.getMsg()).updateById();
                 return Result.error(CodeMsg.REPEAT_ERROR);
 
             }else {
@@ -209,8 +298,7 @@
             priorityExecutorService.execute(message);
             SysDispenseLogs preUnSuccessByMqEntity = dispenseLogsService.getPreUnSuccessByMqEntity(mqEntity);
             if (preUnSuccessByMqEntity == null) {
-                SysDispenseLogs logByMqEntity = dispenseLogsService.createLogByMqEntity(mqEntity);
-                logByMqEntity.setTouchType(touchType).updateById();
+               logs.setResult(CodeMsg.ADDQUEUE_SUCCESS.getMsg()).updateById();
             } else {
                 mqEntity.setMsgKey(preUnSuccessByMqEntity.getKeyId());
                 mqEntity.setPageNo(new AtomicInteger(preUnSuccessByMqEntity.getPageNo()));
@@ -221,16 +309,29 @@
             return Result.success(CodeMsg.ADDQUEUE_SUCCESS);
         }catch (Exception e) {
             log.error(e.getMessage());
+            logs.setErrorInfo(e.getMessage());
             return Result.success(CodeMsg.ADDQUEUE_FAIL);
         }
     }
+
+    /**
+     *
+     * @description:  鑾峰彇涓诲姩鍒嗗彂闃熷垪涓殑鎺掗槦鏁�
+     * @return: 涓诲姩鍒嗗彂鎺掗槦鏁�
+     *
+     */
 
 
     @Override
     public Integer passiveQueueSize() {
         return priorityQueue.size();
     }
-
+    /**
+     *
+     * @description:  鑾峰彇琚姩鍒嗗彂闃熷垪涓殑鎺掗槦鏁�
+     * @return: 琚姩鍒嗗彂鎺掗槦鏁�
+     *
+     */
     @Override
     public Integer avtiveQueueSize() {
         return infiniteQueue.size();

--
Gitblit v1.8.0