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