From 74472c9d22dddcb41383794caf0011043b20f817 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期二, 31 三月 2020 13:25:47 +0800
Subject: [PATCH] fix  数据权限

---
 src/main/java/com/highdatas/mdm/service/act/impl/IdentityServiceImpl.java |  122 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 120 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/act/impl/IdentityServiceImpl.java b/src/main/java/com/highdatas/mdm/service/act/impl/IdentityServiceImpl.java
index a91d404..bc7c58c 100644
--- a/src/main/java/com/highdatas/mdm/service/act/impl/IdentityServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/act/impl/IdentityServiceImpl.java
@@ -1,9 +1,14 @@
 package com.highdatas.mdm.service.act.impl;
 
 import com.highdatas.mdm.entity.TUser;
+import com.highdatas.mdm.mapper.TableInfoMapper;
+import com.highdatas.mdm.pojo.CodeMsg;
+import com.highdatas.mdm.pojo.Result;
 import org.activiti.engine.IdentityService;
 import org.activiti.engine.RepositoryService;
 import org.activiti.engine.RuntimeService;
+import org.activiti.engine.identity.Group;
+import org.activiti.engine.identity.User;
 import org.activiti.engine.repository.Model;
 import org.activiti.engine.repository.ProcessDefinition;
 import org.activiti.engine.runtime.ProcessInstance;
@@ -13,6 +18,7 @@
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class IdentityServiceImpl extends BaseServiceImpl implements com.highdatas.mdm.service.act.IdentityService{
@@ -22,7 +28,8 @@
 	RuntimeService runtimeService;
 	@Autowired
 	RepositoryService repositoryService;
-
+	@Autowired
+	TableInfoMapper tableInfoMapper;
 
     @Override
 	public String startProcess(String businessId, String key) {
@@ -64,7 +71,7 @@
 					processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deploymentId).singleResult();
 				}
 			}
-            
+
             processInstance = runtimeService.startProcessInstanceById(processDefinition.getId(), businessId, variables);
 
             String processInstanceId = processInstance.getId();
@@ -82,5 +89,116 @@
     	}
 	}
 
+	@Override
+	public Result addUser(String id) {
+		User preUser = identityService.createUserQuery().userId(id).singleResult();
+		if (preUser != null) {
+			return  Result.error(new CodeMsg(6002, "宸叉湁鐩稿悓id鐨勭敤鎴峰瓨鍦�"));
+		}
+		try {
+			User user = identityService.newUser(id);
+			identityService.saveUser(user);
+			return Result.success(null);
+		}catch (Exception e){
+			e.printStackTrace();
+			return Result.error(new CodeMsg(6002, e.getMessage()));
+		}
+
+	}
+
+	@Override
+	public Result addRole(String id) {
+		Group preGroup = identityService.createGroupQuery().groupId(id).singleResult();
+		if (preGroup != null) {
+			return  Result.error(new CodeMsg(6002, "宸叉湁鐩稿悓id鐨勮鑹插瓨鍦�"));
+		}
+		try {
+			Group group = identityService.newGroup(id);
+			identityService.saveGroup(group);
+			return Result.success(null);
+		}catch (Exception e){
+			e.printStackTrace();
+			return Result.error(new CodeMsg(6002, e.getMessage()));
+		}
+	}
+
+	@Override
+	public Result addUserRole(String roleId, String userId) {
+    	try {
+			User user = identityService.createUserQuery().userId(userId).singleResult();
+			if (user == null) {
+				return Result.error(new CodeMsg(3001, "褰撳墠鐢ㄦ埛涓嶅瓨鍦�,璇峰厛鍒涘缓鐢ㄦ埛"));
+			}
+
+            Map<String, String> memberShip = tableInfoMapper.selectActMemberShip(userId, roleId);
+			if (memberShip != null) {
+                return Result.success(null);
+            }
+            identityService.createMembership(userId,roleId);
+			return Result.success(null);
+		}
+		catch (Exception e) {
+    		e.printStackTrace();
+			return Result.error(new CodeMsg(3002, e.getMessage()));
+		}
+	}
+
+	@Override
+	public Result deleteUser(String id) {
+		try {
+			User user = identityService.createUserQuery().userId(id).singleResult();
+			if (user == null) {
+				return Result.error(new CodeMsg(3001, "褰撳墠鐢ㄦ埛涓嶅瓨鍦�"));
+			}
+			identityService.deleteUser(id);
+			return Result.success(null);
+		}catch (Exception e){
+			e.printStackTrace();
+			return Result.error(new CodeMsg(3002, e.getMessage()));
+		}
+
+	}
+
+	@Override
+	public Result deleteRole(String id) {
+		try {
+			Group group = identityService.createGroupQuery().groupId(id).singleResult();
+			if (group == null) {
+				return Result.error(new CodeMsg(3001, "褰撳墠瑙掕壊涓嶅瓨鍦�"));
+			}
+			identityService.deleteGroup(id);
+			return Result.success(null);
+		}catch (Exception e){
+			e.printStackTrace();
+			return Result.error(new CodeMsg(3002, e.getMessage()));
+		}
+	}
+
+
+	@Override
+	public Result deleteUserRole(String roleId, String userId) {
+		try {
+			User user = identityService.createUserQuery().userId(userId).singleResult();
+			if (user == null) {
+				return Result.error(new CodeMsg(3001, "褰撳墠鐢ㄦ埛涓嶅瓨鍦�,璇峰厛鍒涘缓鐢ㄦ埛"));
+			}
+			Group group = identityService.createGroupQuery().groupId(roleId).singleResult();
+			if (user == null) {
+				return Result.error(new CodeMsg(3001, "褰撳墠瑙掕壊涓嶅瓨鍦�,璇峰厛瑙掕壊鐢ㄦ埛"));
+			}
+
+            Map<String, String> memberShip = tableInfoMapper.selectActMemberShip(userId, roleId);
+            if (memberShip == null) {
+                return Result.success(null);
+            }
+			identityService.deleteMembership(userId,roleId);
+			return Result.success(null);
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+			return Result.error(new CodeMsg(3002, e.getMessage()));
+		}
+	}
+
 
 }

--
Gitblit v1.8.0