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 | 140 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 127 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 8b397a7..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; @@ -51,6 +49,12 @@ @Value("${pool.coresize}") private String coreSizeStr; + + @Value("${pool.aes}") + private Boolean aes; + @Value("${pool.aesurl}") + private String aesUrl; + private int coreSize; private Integer queueSize = 5; private ExecutorService priorityExecutorService; @@ -58,6 +62,13 @@ private volatile LinkedBlockingQueue infiniteQueue; private volatile CopyOnWriteArrayList<MqMessage> passiveRequestList; private ThreadPoolExecutor infiniteExecutorService; + + /** + * + * @description: 鍒濆鍖栫殑鏃跺�欏垱寤轰富鍔紝琚姩涓や釜鎺掗槦闃熷垪 + * @return: void + * + */ @PostConstruct public void init() { @@ -76,7 +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(() -> { @@ -111,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); @@ -142,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())); @@ -161,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(); @@ -187,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 { @@ -196,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())); @@ -208,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