From 5d15287b2a06f978485ac6af71e33e1a82b43a65 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 15 四月 2020 16:29:55 +0800
Subject: [PATCH] fix  上传后生成版本连接池用完不释放问题

---
 src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java
index 87fb86e..525dcf4 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java
@@ -1,16 +1,16 @@
 package com.highdatas.mdm.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.highdatas.mdm.entity.Flows;
 import com.highdatas.mdm.entity.MaintainField;
-import com.highdatas.mdm.entity.TUserRole;
 import com.highdatas.mdm.mapper.FlowsMapper;
 import com.highdatas.mdm.mapper.SysFieldMapper;
 import com.highdatas.mdm.pojo.ActivitiBusinessType;
 import com.highdatas.mdm.pojo.ActivitiStatus;
 import com.highdatas.mdm.pojo.NextTaskUserInfo;
 import com.highdatas.mdm.service.*;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.highdatas.mdm.service.act.IdentityService;
 import com.highdatas.mdm.service.act.TaskService;
 import com.highdatas.mdm.util.DbUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -41,6 +41,8 @@
     IMasterModifiedService masterModifiedService;
     @Autowired
     IMaintainService maintainService;
+    @Autowired
+    IdentityService identityService;
 
     @Override
     public MaintainField createNowVerion(String tableName, String maintainId, String userId) {
@@ -76,16 +78,21 @@
         if (nestTaskAssignee == null){
             return false;
         }
-        String taskAssigneeUserId = nestTaskAssignee.getUserId();
-        if (!StringUtils.isEmpty(taskAssigneeUserId)){
-            return taskAssigneeUserId.equalsIgnoreCase(userId);
+        List<String> userIdList = nestTaskAssignee.getUserIdList();
+        if (userIdList.contains(userId)) {
+            return true;
         }
-        String roleId = nestTaskAssignee.getRoleId();
-        if (StringUtils.isEmpty(roleId)) {
+
+        List<String> roleIdList = nestTaskAssignee.getRoleIdList();
+        if (roleIdList == null || roleIdList.isEmpty()) {
             return false;
         }
-        List<TUserRole> userRoles = userRoleService.selectList(new EntityWrapper<TUserRole>().eq("role_id", roleId));
-        long count = userRoles.stream().map(tUserRole -> tUserRole.getUserId()).filter(s -> s.equalsIgnoreCase(userId)).count();
+
+        List<String> roleByUser = identityService.getRoleByUser(userId);
+        if (roleByUser == null || roleByUser.isEmpty()) {
+            return false;
+        }
+        long count = roleByUser.stream().filter(roleId -> roleIdList.contains(roleId)).count();
         if (count == 0) {
             return false;
         }else {

--
Gitblit v1.8.0