diff --git a/src/main/java/com/xdap/self_development/controller/PermissionController.java b/src/main/java/com/xdap/self_development/controller/PermissionController.java index cf51e5d..146cb93 100644 --- a/src/main/java/com/xdap/self_development/controller/PermissionController.java +++ b/src/main/java/com/xdap/self_development/controller/PermissionController.java @@ -83,4 +83,13 @@ public class PermissionController { permissionService.deleteRole(roleId); return Response.ok().setMessage("删除角色成功"); } + + // 根据用户查询权限 + @GetMapping("/selectPermByUserId") + public Response selectPermByUserId( + @NotBlank String userId + ) { + List permissions = permissionService.selectPermissionByUser(userId); + return Response.ok().data(permissions); + } } diff --git a/src/main/java/com/xdap/self_development/service/PermissionService.java b/src/main/java/com/xdap/self_development/service/PermissionService.java index 99bcf28..a1841cf 100644 --- a/src/main/java/com/xdap/self_development/service/PermissionService.java +++ b/src/main/java/com/xdap/self_development/service/PermissionService.java @@ -21,4 +21,6 @@ public interface PermissionService { void updateRole(@Valid UpdateRoleForm form); void deleteRole(@NotBlank String roleId); + + List selectPermissionByUser(String userId); } diff --git a/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java index 2a64890..a6c4fb9 100644 --- a/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java @@ -282,7 +282,7 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ modelPojo.setId(UUID.randomUUID().toString()); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(modelPojo); - saveDataParamDetail(modelPojo, parameters, xdapUsersPojo); + saveDataParamDetail(modelPojo, parameters,versionNumber, xdapUsersPojo); return 0; } @@ -307,12 +307,12 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ .rowid("id", entryEngineModelPojo.getId()) .doUpdate(EngineParamDetailPojo.class); //绑定参数准备重新走分发 - saveDataParamDetail(entryEngineModelPojo, parameters, null); + saveDataParamDetail(entryEngineModelPojo, parameters, newVersionNum,null); } } //为每个机型绑定参数 - public void saveDataParamDetail(DataEntryEngineModelPojo modelPojo, List parameters, XdapUsers xdapUsersPojo) { + public void saveDataParamDetail(DataEntryEngineModelPojo modelPojo, List parameters,Integer newVersionNum, XdapUsers xdapUsersPojo) { /** * 遍历机型 * 查找参数 将每个机型都把参数,和参数所属的填写部门关联上 @@ -328,7 +328,7 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ engineParamDetailPojo.setParameterType(parameter.getParameterType()); engineParamDetailPojo.setParameterName(parameter.getParameterName()); engineParamDetailPojo.setDepartment(parameter.getDepartment()); - engineParamDetailPojo.setMajorVersion(versionNumber); + engineParamDetailPojo.setMajorVersion(newVersionNum); engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); engineParamDetailPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getId() : null); engineParamDetailPojo.setLastUpdatedBy(""); diff --git a/src/main/java/com/xdap/self_development/service/impl/PermissionServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/PermissionServiceImpl.java index 2acb189..1b9dd2c 100644 --- a/src/main/java/com/xdap/self_development/service/impl/PermissionServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/PermissionServiceImpl.java @@ -12,11 +12,14 @@ import com.xdap.self_development.pojo.RoleAndPermissions; import com.xdap.self_development.pojo.UserAndRoles; import com.xdap.self_development.pojo.view.UserRoleAndPermissionView; import com.xdap.self_development.service.PermissionService; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -140,4 +143,31 @@ public class PermissionServiceImpl implements PermissionService { // 删除角色 bd.getBusinessDatabase().eq("id", roleId).doDelete(Role.class); } + + @Override + public List selectPermissionByUser(String userId) { + if (StringUtils.isEmpty(userId)) { + throw new RuntimeException("请传入用户"); + } + //查询用户所拥有的角色 + List userAndRoleIds = bd.getBusinessDatabase() + .eq("user_id", userId) + .doQuery(UserAndRoles.class); + if (ObjectUtils.isNotEmpty(userAndRoleIds)) { + List roleIds = userAndRoleIds.stream().map(x -> x.getRoleId()).collect(Collectors.toList()); + //查询角色权限 + List roleAndPermissions = bd.getBusinessDatabase() + .in("role_id", roleIds) + .doQuery(RoleAndPermissions.class); + if (ObjectUtils.isEmpty(roleAndPermissions)) { + throw new RuntimeException("该角色没有分配权限"); + } + List permissionIds = roleAndPermissions.stream().map(x -> x.getPermissionId()).collect(Collectors.toList()); + //组装返回 + return bd.getBusinessDatabase() + .in("id", permissionIds) + .doQuery(Permission.class); + } + return Collections.emptyList(); + } }