diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteDeptService.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteDeptService.java new file mode 100644 index 00000000..60083232 --- /dev/null +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteDeptService.java @@ -0,0 +1,32 @@ +package com.yanzhu.system.api; + +import com.yanzhu.common.core.constant.SecurityConstants; +import com.yanzhu.common.core.constant.ServiceNameConstants; +import com.yanzhu.common.core.domain.R; +import com.yanzhu.system.api.domain.SysDept; +import com.yanzhu.system.api.factory.RemoteUserFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestHeader; + +/** + * 部门服务 + * + * @author ruoyi + */ +@FeignClient(contextId = "remoteDeptService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) +public interface RemoteDeptService +{ + + /** + * 通过部门主键查询部门信息 + * + * @param deptId 部门主键 + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/dept/info/{deptId}") + public R getDeptInfo(@PathVariable("deptId") Long deptId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + +} diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteProService.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteProService.java new file mode 100644 index 00000000..d68d3785 --- /dev/null +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteProService.java @@ -0,0 +1,41 @@ +package com.yanzhu.system.api; + +import com.yanzhu.common.core.constant.SecurityConstants; +import com.yanzhu.common.core.constant.ServiceNameConstants; +import com.yanzhu.common.core.domain.R; +import com.yanzhu.system.api.factory.RemoteFileFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestHeader; + +import java.util.List; +import java.util.Map; + +/** + * 项目服务 + * + * @author JiangYuQi + */ +@FeignClient(contextId = "remoteProService", value = ServiceNameConstants.MANAGE_SERVICE, fallbackFactory = RemoteFileFallbackFactory.class) +public interface RemoteProService +{ + /** + * 项目详情 + * + * @param id 项目主键 + * @return 结果 + */ + @GetMapping(value = "/proProjectInfo/info/{id}") + public R> info(@PathVariable("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 获取当前用户入场项目信息 + * + * @param userId 用户主键 + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/proProjectInfoUsers/projects/{userId}") + public R>> getProjects(@PathVariable("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteUserService.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteUserService.java index 7e73114b..03e0dfd3 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteUserService.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteUserService.java @@ -34,6 +34,17 @@ public interface RemoteUserService @GetMapping("/user/info/{username}") public R getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 通过用户名查询用户信息 + * + * @param username 用户名 + * @param deptId 公司主键 + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/user/infoAndDept/{username}/{deptId}") + public R getUserInfo(@PathVariable("username") String username,@PathVariable("deptId") Long deptId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** * 通过用户主键查询用户信息 * @@ -54,14 +65,4 @@ public interface RemoteUserService @PostMapping("/user/register") public R registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); - /** - * 获取当前用户入场项目信息 - * - * @param userId 用户主键 - * @param source 请求来源 - * @return 结果 - */ - @GetMapping("/user/projects/{userId}") - public R>> getProjects(@PathVariable("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); - } diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/domain/SysRole.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/domain/SysRole.java index 2ce3968a..d47aa41e 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/domain/SysRole.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/domain/SysRole.java @@ -1,6 +1,7 @@ package com.yanzhu.system.api.domain; import java.util.List; +import java.util.Objects; import java.util.Set; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -24,6 +25,12 @@ public class SysRole extends BaseEntity @Excel(name = "角色序号", cellType = ColumnType.NUMERIC) private Long roleId; + /** 公司ID */ + private Long comId; + + /** 项目ID */ + private Long projectId; + /** 角色名称 */ @Excel(name = "角色名称") private String roleName; @@ -95,11 +102,22 @@ public class SysRole extends BaseEntity return isAdmin(this.roleId); } + public static boolean isAdmin(Long roleId) { return roleId != null && 1L == roleId; } + public static boolean isGsAdmin(String roleKey) + { + return Objects.equals(roleKey,"gsAdmin"); + } + + public static boolean isGsAdmin(List roleKeys) + { + return roleKeys.contains("gsAdmin"); + } + @NotBlank(message = "角色名称不能为空") @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") public String getRoleName() @@ -241,10 +259,28 @@ public class SysRole extends BaseEntity this.roleDeptList = roleDeptList; } + public Long getComId() { + return comId; + } + + public void setComId(Long comId) { + this.comId = comId; + } + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("roleId", getRoleId()) + .append("comId", getComId()) + .append("projectId", getProjectId()) .append("roleName", getRoleName()) .append("roleKey", getRoleKey()) .append("roleSort", getRoleSort()) diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteDeptFallbackFactory.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteDeptFallbackFactory.java new file mode 100644 index 00000000..54828f4b --- /dev/null +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteDeptFallbackFactory.java @@ -0,0 +1,30 @@ +package com.yanzhu.system.api.factory; + +import com.yanzhu.common.core.domain.R; +import com.yanzhu.system.api.RemoteDeptService; +import com.yanzhu.system.api.domain.SysDept; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 部门服务降级处理 + * + * @author JiangYuQi + */ +@Component +public class RemoteDeptFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteDeptFallbackFactory.class); + + @Override + public RemoteDeptService create(Throwable throwable) { + log.error("部门服务调用失败:{}", throwable.getMessage()); + return new RemoteDeptService() { + @Override + public R getDeptInfo(Long deptId, String source) { + return R.fail("获取部门失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteFlowFallbackFactory.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteFlowFallbackFactory.java index 6d039065..bd6b4928 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteFlowFallbackFactory.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteFlowFallbackFactory.java @@ -10,9 +10,9 @@ import org.springframework.stereotype.Component; import java.util.Map; /** - * 用户服务降级处理 + * 管理服务降级处理 * - * @author ruoyi + * @author JiangYuQi */ @Component public class RemoteFlowFallbackFactory implements FallbackFactory diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteProFallbackFactory.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteProFallbackFactory.java new file mode 100644 index 00000000..b1a7a03a --- /dev/null +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteProFallbackFactory.java @@ -0,0 +1,42 @@ +package com.yanzhu.system.api.factory; + +import com.yanzhu.common.core.domain.R; +import com.yanzhu.system.api.RemoteProService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 文件服务降级处理 + * + * @author JiangYuQi + */ +@Component +public class RemoteProFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteProFallbackFactory.class); + + @Override + public RemoteProService create(Throwable throwable) + { + log.error("项目服务调用失败:{}", throwable.getMessage()); + return new RemoteProService() + { + @Override + public R> info(Long id, String source) + { + return R.fail("查询项目失败:" + throwable.getMessage()); + } + + @Override + public R>> getProjects(Long userId, String source) + { + return R.fail("获取用户项目信息失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteRoleFallbackFactory.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteRoleFallbackFactory.java index 74728838..8de26021 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteRoleFallbackFactory.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteRoleFallbackFactory.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Component; /** * 角色服务降级处理 * - * @author ruoyi + * @author JiangYuQi */ @Component public class RemoteRoleFallbackFactory implements FallbackFactory { diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteUserFallbackFactory.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteUserFallbackFactory.java index 698b4453..fed11dcd 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteUserFallbackFactory.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteUserFallbackFactory.java @@ -15,7 +15,7 @@ import java.util.Map; /** * 用户服务降级处理 * - * @author ruoyi + * @author JiangYuQi */ @Component public class RemoteUserFallbackFactory implements FallbackFactory @@ -34,6 +34,12 @@ public class RemoteUserFallbackFactory implements FallbackFactory getUserInfo(String username, Long deptId, String source) + { + return R.fail("获取用户失败:" + throwable.getMessage()); + } + @Override public R getSysUserInfo(Long userId, String source) { @@ -45,12 +51,6 @@ public class RemoteUserFallbackFactory implements FallbackFactory>> getProjects(Long userId, String source) - { - return R.fail("获取用户项目信息失败:" + throwable.getMessage()); - } }; } } diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/model/LoginUser.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/model/LoginUser.java index 2cb7f227..91e52f7c 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/model/LoginUser.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/model/LoginUser.java @@ -64,7 +64,12 @@ public class LoginUser implements Serializable private Long projectId; /** - * 项目单位信息 + * 项目信息 + */ + private String projectName; + + /** + * 项目公司信息 */ private Long projectDeptId; @@ -174,6 +179,14 @@ public class LoginUser implements Serializable this.projectDeptId = projectDeptId; } + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + /** * 无参构造方法 */ diff --git a/yanzhu-api/yanzhu-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yanzhu-api/yanzhu-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 64362674..fc040c59 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/yanzhu-api/yanzhu-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -2,4 +2,6 @@ com.yanzhu.system.api.factory.RemoteUserFallbackFactory com.yanzhu.system.api.factory.RemoteLogFallbackFactory com.yanzhu.system.api.factory.RemoteFileFallbackFactory com.yanzhu.system.api.factory.RemoteFlowFallbackFactory -com.yanzhu.system.api.factory.RemoteRoleFallbackFactory \ No newline at end of file +com.yanzhu.system.api.factory.RemoteRoleFallbackFactory +com.yanzhu.system.api.factory.RemoteProFallbackFactory +com.yanzhu.system.api.factory.RemoteDeptFallbackFactory \ No newline at end of file diff --git a/yanzhu-auth/src/main/java/com/yanzhu/auth/controller/TokenController.java b/yanzhu-auth/src/main/java/com/yanzhu/auth/controller/TokenController.java index 768b975b..3d674b98 100644 --- a/yanzhu-auth/src/main/java/com/yanzhu/auth/controller/TokenController.java +++ b/yanzhu-auth/src/main/java/com/yanzhu/auth/controller/TokenController.java @@ -1,21 +1,26 @@ package com.yanzhu.auth.controller; -import javax.servlet.http.HttpServletRequest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; import com.yanzhu.auth.form.LoginBody; import com.yanzhu.auth.form.RegisterBody; import com.yanzhu.auth.service.SysLoginService; +import com.yanzhu.common.core.constant.SecurityConstants; import com.yanzhu.common.core.domain.R; +import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.core.utils.JwtUtils; import com.yanzhu.common.core.utils.StringUtils; import com.yanzhu.common.security.auth.AuthUtil; import com.yanzhu.common.security.service.TokenService; import com.yanzhu.common.security.utils.SecurityUtils; +import com.yanzhu.system.api.RemoteProService; +import com.yanzhu.system.api.RemoteUserService; +import com.yanzhu.system.api.domain.SysUser; import com.yanzhu.system.api.model.LoginUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; +import java.util.Objects; /** * token 控制 @@ -31,6 +36,12 @@ public class TokenController @Autowired private SysLoginService sysLoginService; + @Autowired + private RemoteProService remoteProService; + + @Autowired + private RemoteUserService remoteUserService; + @PostMapping("login") public R login(@RequestBody LoginBody form) { @@ -40,6 +51,53 @@ public class TokenController return R.ok(tokenService.createToken(userInfo)); } + /** + * 切换项目登录 + * @param proId 切换项目登录 + * @return + */ + @GetMapping("/switchProject/{proId}") + public R switchProject(@PathVariable("proId") Long proId,HttpServletRequest request) + { + if(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.isGSAdmin()){ + LoginUser loginUser = tokenService.getLoginUser(request); + if (StringUtils.isNotNull(loginUser)) + { + R> dataResult = remoteProService.info(proId,SecurityConstants.INNER); + Map proData = dataResult.getData(); + SysUser user = loginUser.getSysUser(); + user.setActiveComId(Convert.toLong(proData.get("comId"))); + user.setActiveProjectId(Convert.toLong(proData.get("id"))); + user.setActiveProjectName(Convert.toStr(proData.get("projectName"))); + loginUser.setProjectId(Convert.toLong(proData.get("id"))); + loginUser.setProjectName(Convert.toStr(proData.get("projectName"))); + loginUser.setProjectDeptId(Convert.toLong(proData.get("comId"))); + // 刷新令牌有效期 + tokenService.refreshToken(loginUser); + return R.ok(); + } + }else{ + // 查询用户信息 + R userResult = remoteUserService.getUserInfo(SecurityUtils.getUsername(), proId, SecurityConstants.INNER); + LoginUser userInfo = userResult.getData(); + SysUser user = userResult.getData().getSysUser(); + // 补充用户项目信息 + if(Objects.nonNull(user.getActiveComId())){ + userInfo.setProjectDeptId(user.getActiveComId()); + } + if(Objects.nonNull(user.getActiveProjectId())){ + userInfo.setProjectId(user.getActiveProjectId()); + } + if(Objects.nonNull(user.getActiveProjectName())){ + userInfo.setProjectName(user.getActiveProjectName()); + } + // 刷新令牌有效期 + tokenService.refreshToken(userInfo); + return R.ok(); + } + return R.fail(); + } + @DeleteMapping("logout") public R logout(HttpServletRequest request) { diff --git a/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java b/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java index 59905811..0ff7c9c6 100644 --- a/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java +++ b/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java @@ -20,6 +20,7 @@ import com.yanzhu.system.api.model.LoginUser; import java.util.List; import java.util.Map; +import java.util.Objects; /** * 登录校验方法 @@ -102,12 +103,15 @@ public class SysLoginService passwordService.validate(user, password); recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); - // 用户项目信息 - R>> projectResult = remoteUserService.getProjects(userInfo.getSysUser().getUserId(), SecurityConstants.INNER); - if(StringUtils.isNotNull(projectResult) && StringUtils.isNotEmpty(projectResult.getData())){ - List> list = projectResult.getData(); - userInfo.setProjectId(Convert.toLong(list.get(0).get("project_id"))); - userInfo.setProjectDeptId(Convert.toLong(list.get(0).get("dept_id"))); + // 补充用户项目信息 + if(Objects.nonNull(user.getActiveComId())){ + userInfo.setProjectDeptId(user.getActiveComId()); + } + if(Objects.nonNull(user.getActiveProjectId())){ + userInfo.setProjectId(user.getActiveProjectId()); + } + if(Objects.nonNull(user.getActiveProjectName())){ + userInfo.setProjectName(user.getActiveProjectName()); } return userInfo; } diff --git a/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/web/domain/BaseEntity.java b/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/web/domain/BaseEntity.java index 857c2fa8..81aac5d2 100644 --- a/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/web/domain/BaseEntity.java +++ b/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/web/domain/BaseEntity.java @@ -41,14 +41,17 @@ public class BaseEntity implements Serializable /** 选中页签 */ private String activeTags; - /** 选中页签 */ - private String activeComId; + /** 选中公司 */ + private Long activeComId; + + /** 选中项目 */ + private Long activeProjectId; + + /** 选中项目 */ + private String activeProjectName; /** 选中页签 */ - private String activeProjectId; - - /** 所属单位 */ - private Long activeDeptId; + private Long currentUserId; /** 请求参数 */ @JsonInclude(JsonInclude.Include.NON_EMPTY) @@ -136,27 +139,35 @@ public class BaseEntity implements Serializable this.activeTags = activeTags; } - public String getActiveComId() { + public Long getActiveComId() { return activeComId; } - public void setActiveComId(String activeComId) { + public void setActiveComId(Long activeComId) { this.activeComId = activeComId; } - public String getActiveProjectId() { + public Long getActiveProjectId() { return activeProjectId; } - public void setActiveProjectId(String activeProjectId) { + public void setActiveProjectId(Long activeProjectId) { this.activeProjectId = activeProjectId; } - public Long getActiveDeptId() { - return activeDeptId; + public Long getCurrentUserId() { + return currentUserId; } - public void setActiveDeptId(Long activeDeptId) { - this.activeDeptId = activeDeptId; + public void setCurrentUserId(Long currentUserId) { + this.currentUserId = currentUserId; + } + + public String getActiveProjectName() { + return activeProjectName; + } + + public void setActiveProjectName(String activeProjectName) { + this.activeProjectName = activeProjectName; } } diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProDept.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProDept.java new file mode 100644 index 00000000..e98b8600 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProDept.java @@ -0,0 +1,140 @@ +package com.yanzhu.manage.domain; + +import com.yanzhu.common.core.web.domain.BaseEntity; + +public class ProDept extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 部门ID */ + private Long deptId; + + /** 公司编号 */ + private Long comId; + + /** 父部门ID */ + private Long parentId; + + /** 祖级列表 */ + private String ancestors; + + /** 部门名称 */ + private String deptName; + + /** 部门简称 */ + private String deptShortName; + + /** 部门简称 */ + private String deptCode; + + /** 部门详情 */ + private String deptType; + + /** 部门详情 */ + private String deptInfos; + + /** 显示顺序 */ + private Integer orderNum; + + /** 负责人 */ + private String leader; + + /** 联系电话 */ + private String phone; + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public Long getComId() { + return comId; + } + + public void setComId(Long comId) { + this.comId = comId; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getAncestors() { + return ancestors; + } + + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptShortName() { + return deptShortName; + } + + public void setDeptShortName(String deptShortName) { + this.deptShortName = deptShortName; + } + + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + + public String getDeptType() { + return deptType; + } + + public void setDeptType(String deptType) { + this.deptType = deptType; + } + + public String getDeptInfos() { + return deptInfos; + } + + public void setDeptInfos(String deptInfos) { + this.deptInfos = deptInfos; + } + + public Integer getOrderNum() { + return orderNum; + } + + public void setOrderNum(Integer orderNum) { + this.orderNum = orderNum; + } + + public String getLeader() { + return leader; + } + + public void setLeader(String leader) { + this.leader = leader; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfo.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfo.java index f0a5994e..211b0086 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfo.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfo.java @@ -21,16 +21,12 @@ public class ProProjectInfo extends BaseEntity private Long id; /** 所属单位 */ - @Excel(name = "所属单位") - private Long deptId; + @Excel(name = "公司主键") + private Long comId; /** 单位名称 */ - @Excel(name = "单位名称") - private String deptName; - - /** 部门主键 */ - @Excel(name = "部门主键") - private Long visDeptId; + @Excel(name = "公司名称") + private String comName; /** 显示部门 */ @Excel(name = "显示部门") @@ -168,25 +164,24 @@ public class ProProjectInfo extends BaseEntity { return id; } - public void setDeptId(Long deptId) - { - this.deptId = deptId; + + public Long getComId() { + return comId; } - public Long getDeptId() - { - return deptId; - } - public void setVisDeptId(Long visDeptId) - { - this.visDeptId = visDeptId; + public void setComId(Long comId) { + this.comId = comId; } - public Long getVisDeptId() - { - return visDeptId; + public String getComName() { + return comName; } - public void setDisDeptId(Long disDeptId) + + public void setComName(String comName) { + this.comName = comName; + } + + public void setDisDeptId(Long disDeptId) { this.disDeptId = disDeptId; } @@ -458,14 +453,6 @@ public class ProProjectInfo extends BaseEntity return isDel; } - public String getDeptName() { - return deptName; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - public String getProjectLevel() { return projectLevel; } @@ -494,8 +481,7 @@ public class ProProjectInfo extends BaseEntity public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) - .append("deptId", getDeptId()) - .append("visDeptId", getVisDeptId()) + .append("comId", getComId()) .append("disDeptId", getDisDeptId()) .append("projectName", getProjectName()) .append("projectCode", getProjectCode()) diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfoUsers.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfoUsers.java index 23f1aa51..de2b445e 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfoUsers.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProProjectInfoUsers.java @@ -18,13 +18,13 @@ public class ProProjectInfoUsers extends BaseEntity /** 主键 */ private Long id; - /** 单位主键 */ - @Excel(name = "单位主键") - private Long deptId; + /** 公司主键 */ + @Excel(name = "公司主键") + private Long comId; - /** 单位名称 */ - @Excel(name = "单位名称") - private String deptName; + /** 公司名称 */ + @Excel(name = "公司名称") + private String comName; /** 项目主键 */ @Excel(name = "项目主键") @@ -54,6 +54,10 @@ public class ProProjectInfoUsers extends BaseEntity @Excel(name = "进场状态") private String useStatus; + /** 项目排序 */ + @Excel(name = "项目排序") + private Long sortBy; + /** 删除标识 */ @Excel(name = "删除标识") private Long isDel; @@ -67,16 +71,16 @@ public class ProProjectInfoUsers extends BaseEntity { return id; } - public void setDeptId(Long deptId) - { - this.deptId = deptId; + + public Long getComId() { + return comId; } - public Long getDeptId() - { - return deptId; + public void setComId(Long comId) { + this.comId = comId; } - public void setProjectId(Long projectId) + + public void setProjectId(Long projectId) { this.projectId = projectId; } @@ -140,12 +144,12 @@ public class ProProjectInfoUsers extends BaseEntity return isDel; } - public String getDeptName() { - return deptName; + public String getComName() { + return comName; } - public void setDeptName(String deptName) { - this.deptName = deptName; + public void setComName(String comName) { + this.comName = comName; } public String getProjectName() { @@ -156,11 +160,19 @@ public class ProProjectInfoUsers extends BaseEntity this.projectName = projectName; } + public Long getSortBy() { + return sortBy; + } + + public void setSortBy(Long sortBy) { + this.sortBy = sortBy; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) - .append("deptId", getDeptId()) + .append("comId", getComId()) .append("projectId", getProjectId()) .append("userId", getUserId()) .append("userName", getUserName()) diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoDeptsMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoDeptsMapper.java index 5f9b787b..864510e2 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoDeptsMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoDeptsMapper.java @@ -15,14 +15,14 @@ public interface ProProjectInfoDeptsMapper * 查询参建单位 * * @param id 参建单位主键 - * @return 参建单位 + * @return 建设单位 */ public ProProjectInfoDepts selectProProjectInfoDeptsById(Long id); /** * 查询参建单位列表 * - * @param proProjectInfoDepts 参建单位 + * @param proProjectInfoDepts 建设单位 * @return 参建单位集合 */ public List selectProProjectInfoDeptsList(ProProjectInfoDepts proProjectInfoDepts); @@ -30,7 +30,7 @@ public interface ProProjectInfoDeptsMapper /** * 新增参建单位 * - * @param proProjectInfoDepts 参建单位 + * @param proProjectInfoDepts 建设单位 * @return 结果 */ public int insertProProjectInfoDepts(ProProjectInfoDepts proProjectInfoDepts); @@ -38,7 +38,7 @@ public interface ProProjectInfoDeptsMapper /** * 修改参建单位 * - * @param proProjectInfoDepts 参建单位 + * @param proProjectInfoDepts 建设单位 * @return 结果 */ public int updateProProjectInfoDepts(ProProjectInfoDepts proProjectInfoDepts); diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoMapper.java index a9deff0a..0ab18e12 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoMapper.java @@ -1,6 +1,8 @@ package com.yanzhu.manage.mapper; import java.util.List; + +import com.yanzhu.manage.domain.ProDept; import com.yanzhu.manage.domain.ProProjectInfo; /** @@ -58,4 +60,11 @@ public interface ProProjectInfoMapper * @return 结果 */ public int deleteProProjectInfoByIds(Long[] ids); + + /** + * 在单位层级新增项目 + * @param proDept + * @return + */ + public int insertDept(ProDept proDept); } diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoUsersMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoUsersMapper.java index 138dfbab..cb30254f 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoUsersMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProProjectInfoUsersMapper.java @@ -1,6 +1,8 @@ package com.yanzhu.manage.mapper; import java.util.List; +import java.util.Map; + import com.yanzhu.manage.domain.ProProjectInfoUsers; /** @@ -58,4 +60,20 @@ public interface ProProjectInfoUsersMapper * @return 结果 */ public int deleteProProjectInfoUsersByIds(Long[] ids); + + /** + * 批量取消项目人员的默认项目 + * + * @param userId 用户主键 + * @return 结果 + */ + public int cancelDefaultSortByUserId(Long userId); + + /** + * 根据用户编号查询入场项目信息 + * + * @param userId 用户ID + * @return 结果 + */ + public List> selectProjectsByUserId(Long userId); } diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoDeptsMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoDeptsMapper.xml index 575a0085..bfe3eb62 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoDeptsMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoDeptsMapper.xml @@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - and pi.dept_id = #{deptId} - and pi.vis_dept_id = #{visDeptId} + left join pro_project_info_users pu on pu.project_id = pi.id + + and pi.com_id = #{comId} and pi.dis_dept_id = #{disDeptId} - and sd.dept_id = #{activeDeptId} - and pi.project_name like concat('%', #{projectName}, '%') - and pi.project_code = #{projectCode} - and pi.simple_name like concat('%', #{simpleName}, '%') - and pi.project_type = #{projectType} - and pi.project_level = #{projectLevel} - and pi.project_person = #{projectPerson} - and pi.project_person_phone = #{projectPersonPhone} - and pi.project_status = #{projectStatus} + and pi.com_id = #{activeComId} + and pu.user_id = #{currentUserId} and pu.use_status='1' and pu.is_del=0 + and pi.project_name like concat('%', #{projectName}, '%') + and pi.project_code = #{projectCode} + and pi.simple_name like concat('%', #{simpleName}, '%') + and pi.project_type = #{projectType} + and pi.project_level = #{projectLevel} + and pi.project_person = #{projectPerson} + and pi.project_person_phone = #{projectPersonPhone} + and pi.project_status = #{projectStatus} and pi.is_del = #{isDel} - order by pi.project_sort, pi.id desc + order by pi.project_sort, pi.id desc + order by pu.sort_by, pi.id desc - + - + insert into pro_project_info - dept_id, - vis_dept_id, + id, + com_id, dis_dept_id, project_name, project_code, @@ -153,8 +157,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" remark, - #{deptId}, - #{visDeptId}, + #{id}, + #{comId}, #{disDeptId}, #{projectName}, #{projectCode}, @@ -197,8 +201,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update pro_project_info - dept_id = #{deptId}, - vis_dept_id = #{visDeptId}, + com_id = #{comId}, dis_dept_id = #{disDeptId}, project_name = #{projectName}, project_code = #{projectCode}, @@ -250,4 +253,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + insert into sys_dept( + parent_id, + ancestors, + dept_name, + dept_short_name, + dept_code, + dept_type, + dept_infos, + order_num, + leader, + phone, + email, + status, + create_by, + create_time + )values( + #{parentId}, + #{ancestors}, + #{deptName}, + #{deptShortName}, + #{deptCode}, + #{deptType}, + #{deptInfos}, + #{orderNum}, + #{leader}, + #{phone}, + #{email}, + #{status}, + #{createBy}, + sysdate() + ) + + \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSettingMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSettingMapper.xml index 04ca98a3..5927b884 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSettingMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSettingMapper.xml @@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - and sd.dept_id = #{activeDeptId} - and pu.dept_id = #{deptId} + and sd.dept_id = #{activeComId} + and pu.com_id = #{comId} and pu.project_id = #{projectId} and pi.project_name like concat('%', #{projectName}, '%') and pu.user_id = #{userId} @@ -53,13 +54,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into pro_project_info_users - dept_id, + com_id, project_id, user_id, user_name, user_code, user_phone, use_status, + sort_by, is_del, create_by, create_time, @@ -68,13 +70,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" remark, - #{deptId}, + #{comId}, #{projectId}, #{userId}, #{userName}, #{userCode}, #{userPhone}, #{useStatus}, + #{sortBy}, #{isDel}, #{createBy}, #{createTime}, @@ -87,13 +90,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update pro_project_info_users - dept_id = #{deptId}, + com_id = #{comId}, project_id = #{projectId}, user_id = #{userId}, user_name = #{userName}, user_code = #{userCode}, user_phone = #{userPhone}, use_status = #{useStatus}, + sort_by = #{sortBy}, is_del = #{isDel}, create_by = #{createBy}, create_time = #{createTime}, @@ -104,14 +108,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - - delete from pro_project_info_users where id = #{id} - + + update pro_project_info_users set is_del=1 where id = #{id} + - - delete from pro_project_info_users where id in + + update pro_project_info_users set is_del=1 where id in #{id} - + + + + update pro_project_info_users set sort_by=100 where user_id = #{userId} + + + + + \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-security/src/main/java/com/yanzhu/common/security/utils/SecurityUtils.java b/yanzhu-common/yanzhu-common-security/src/main/java/com/yanzhu/common/security/utils/SecurityUtils.java index ba3490f9..813ad771 100644 --- a/yanzhu-common/yanzhu-common-security/src/main/java/com/yanzhu/common/security/utils/SecurityUtils.java +++ b/yanzhu-common/yanzhu-common-security/src/main/java/com/yanzhu/common/security/utils/SecurityUtils.java @@ -10,6 +10,8 @@ import com.yanzhu.common.core.utils.ServletUtils; import com.yanzhu.common.core.utils.StringUtils; import com.yanzhu.system.api.model.LoginUser; +import java.util.Set; + /** * 权限获取工具类 * @@ -101,6 +103,16 @@ public class SecurityUtils return getLoginUser().getRoles().contains("gsAdmin"); } + /** + * 是否为公司管理员 + * + * @return 结果 + */ + public static boolean isGSAdmin(Set roles) + { + return roles.contains("gsAdmin"); + } + /** * 生成BCryptPasswordEncoder密码 * diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java index 99eb2261..557d128f 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java @@ -1,11 +1,14 @@ package com.yanzhu.manage.controller; +import com.yanzhu.common.core.domain.R; +import com.yanzhu.common.core.utils.bean.BeanUtils; import com.yanzhu.common.core.utils.poi.ExcelUtil; import com.yanzhu.common.core.web.controller.BaseController; import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.core.web.page.TableDataInfo; import com.yanzhu.common.log.annotation.Log; import com.yanzhu.common.log.enums.BusinessType; +import com.yanzhu.common.security.annotation.InnerAuth; import com.yanzhu.common.security.annotation.RequiresPermissions; import com.yanzhu.manage.domain.ProProjectInfo; import com.yanzhu.manage.service.IProProjectInfoService; @@ -14,6 +17,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; /** * 项目信息Controller @@ -63,6 +67,22 @@ public class ProProjectInfoController extends BaseController return success(proProjectInfoService.selectProProjectInfoById(id)); } + /** + * 获取项目信息详细信息 + */ + @InnerAuth + @GetMapping("/info/{id}") + public R> info(@PathVariable("id") Long id) + { + ProProjectInfo info = proProjectInfoService.selectProProjectInfoById(id); + try { + Map data = BeanUtils.beanToMap(info); + return R.ok(data); + }catch (Exception e){ + return R.fail("项目信息异常!!!"); + } + } + /** * 新增项目信息 */ @@ -95,4 +115,15 @@ public class ProProjectInfoController extends BaseController { return toAjax(proProjectInfoService.deleteProProjectInfoByIds(ids)); } + + /** + * 获取我的项目列表 + */ + @GetMapping("/findMyProjectList") + public TableDataInfo findMyProjectList(ProProjectInfo proProjectInfo) + { + startPage(); + List list = proProjectInfoService.selectProProjectInfoList(proProjectInfo); + return getDataTable(list); + } } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoDeptsController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoDeptsController.java index bd87ff98..688bdbbf 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoDeptsController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoDeptsController.java @@ -44,7 +44,7 @@ public class ProProjectInfoDeptsController extends BaseController * 导出参建单位列表 */ @RequiresPermissions("manage:proProjectInfoDepts:export") - @Log(title = "参建单位", businessType = BusinessType.EXPORT) + @Log(title = "建设单位", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ProProjectInfoDepts proProjectInfoDepts) { @@ -67,7 +67,7 @@ public class ProProjectInfoDeptsController extends BaseController * 新增参建单位 */ @RequiresPermissions("manage:proProjectInfoDepts:add") - @Log(title = "参建单位", businessType = BusinessType.INSERT) + @Log(title = "建设单位", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ProProjectInfoDepts proProjectInfoDepts) { @@ -78,7 +78,7 @@ public class ProProjectInfoDeptsController extends BaseController * 修改参建单位 */ @RequiresPermissions("manage:proProjectInfoDepts:edit") - @Log(title = "参建单位", businessType = BusinessType.UPDATE) + @Log(title = "建设单位", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ProProjectInfoDepts proProjectInfoDepts) { @@ -89,7 +89,7 @@ public class ProProjectInfoDeptsController extends BaseController * 删除参建单位 */ @RequiresPermissions("manage:proProjectInfoDepts:remove") - @Log(title = "参建单位", businessType = BusinessType.DELETE) + @Log(title = "建设单位", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoUsersController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoUsersController.java index 860f5263..2997a53e 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoUsersController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoUsersController.java @@ -1,11 +1,13 @@ package com.yanzhu.manage.controller; +import com.yanzhu.common.core.domain.R; import com.yanzhu.common.core.utils.poi.ExcelUtil; import com.yanzhu.common.core.web.controller.BaseController; import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.core.web.page.TableDataInfo; import com.yanzhu.common.log.annotation.Log; import com.yanzhu.common.log.enums.BusinessType; +import com.yanzhu.common.security.annotation.InnerAuth; import com.yanzhu.common.security.annotation.RequiresPermissions; import com.yanzhu.manage.domain.ProProjectInfoUsers; import com.yanzhu.manage.service.IProProjectInfoUsersService; @@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; /** * 项目人员Controller @@ -95,4 +98,24 @@ public class ProProjectInfoUsersController extends BaseController { return toAjax(proProjectInfoUsersService.deleteProProjectInfoUsersByIds(ids)); } + + /** + * 修改为默认项目 + */ + @GetMapping("/changeDefaultProject/{id}") + public AjaxResult changeDefaultProject(@PathVariable("id") Long id) + { + return toAjax(proProjectInfoUsersService.editDefaultProjectById(id)); + } + + /** + * 获取当前用户入场项目信息 + */ + @InnerAuth + @GetMapping("/projects/{userId}") + public R>> getProjects(@PathVariable("userId") Long userId) + { + List> list = proProjectInfoUsersService.selectProjectsByUserId(userId); + return R.ok(list); + } } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoDeptsService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoDeptsService.java index c6da127f..0a981412 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoDeptsService.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoDeptsService.java @@ -15,14 +15,14 @@ public interface IProProjectInfoDeptsService * 查询参建单位 * * @param id 参建单位主键 - * @return 参建单位 + * @return 建设单位 */ public ProProjectInfoDepts selectProProjectInfoDeptsById(Long id); /** * 查询参建单位列表 * - * @param proProjectInfoDepts 参建单位 + * @param proProjectInfoDepts 建设单位 * @return 参建单位集合 */ public List selectProProjectInfoDeptsList(ProProjectInfoDepts proProjectInfoDepts); @@ -30,7 +30,7 @@ public interface IProProjectInfoDeptsService /** * 新增参建单位 * - * @param proProjectInfoDepts 参建单位 + * @param proProjectInfoDepts 建设单位 * @return 结果 */ public int insertProProjectInfoDepts(ProProjectInfoDepts proProjectInfoDepts); @@ -38,7 +38,7 @@ public interface IProProjectInfoDeptsService /** * 修改参建单位 * - * @param proProjectInfoDepts 参建单位 + * @param proProjectInfoDepts 建设单位 * @return 结果 */ public int updateProProjectInfoDepts(ProProjectInfoDepts proProjectInfoDepts); diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoUsersService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoUsersService.java index 7e706e57..4a1cfe73 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoUsersService.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoUsersService.java @@ -1,6 +1,8 @@ package com.yanzhu.manage.service; import java.util.List; +import java.util.Map; + import com.yanzhu.manage.domain.ProProjectInfoUsers; /** @@ -58,4 +60,20 @@ public interface IProProjectInfoUsersService * @return 结果 */ public int deleteProProjectInfoUsersById(Long id); + + /** + * 修改项目人员的默认项目 + * + * @param id 项目人员主键 + * @return 结果 + */ + public int editDefaultProjectById(Long id); + + /** + * 根据用户编号查询入场项目信息 + * + * @param userId 用户ID + * @return 结果 + */ + public List> selectProjectsByUserId(Long userId); } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoDeptsServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoDeptsServiceImpl.java index eded5ffd..d00bd576 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoDeptsServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoDeptsServiceImpl.java @@ -25,7 +25,7 @@ public class ProProjectInfoDeptsServiceImpl implements IProProjectInfoDeptsServi * 查询参建单位 * * @param id 参建单位主键 - * @return 参建单位 + * @return 建设单位 */ @Override public ProProjectInfoDepts selectProProjectInfoDeptsById(Long id) @@ -36,8 +36,8 @@ public class ProProjectInfoDeptsServiceImpl implements IProProjectInfoDeptsServi /** * 查询参建单位列表 * - * @param proProjectInfoDepts 参建单位 - * @return 参建单位 + * @param proProjectInfoDepts 建设单位 + * @return 建设单位 */ @Override public List selectProProjectInfoDeptsList(ProProjectInfoDepts proProjectInfoDepts) @@ -48,7 +48,7 @@ public class ProProjectInfoDeptsServiceImpl implements IProProjectInfoDeptsServi /** * 新增参建单位 * - * @param proProjectInfoDepts 参建单位 + * @param proProjectInfoDepts 建设单位 * @return 结果 */ @Override @@ -61,7 +61,7 @@ public class ProProjectInfoDeptsServiceImpl implements IProProjectInfoDeptsServi /** * 修改参建单位 * - * @param proProjectInfoDepts 参建单位 + * @param proProjectInfoDepts 建设单位 * @return 结果 */ @Override diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java index c86a8182..90a1c032 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java @@ -1,11 +1,21 @@ package com.yanzhu.manage.service.impl; import java.util.List; + +import com.yanzhu.common.core.constant.SecurityConstants; +import com.yanzhu.common.core.domain.R; +import com.yanzhu.common.core.exception.ServiceException; import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.security.utils.SecurityUtils; +import com.yanzhu.manage.domain.ProDept; import com.yanzhu.manage.domain.ProProjectInfoDepts; import com.yanzhu.manage.domain.ProProjectInfoSetting; import com.yanzhu.manage.mapper.ProProjectInfoDeptsMapper; import com.yanzhu.manage.mapper.ProProjectInfoSettingMapper; +import com.yanzhu.system.api.RemoteDeptService; +import com.yanzhu.system.api.RemoteUserService; +import com.yanzhu.system.api.domain.SysDept; +import com.yanzhu.system.api.domain.SysUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.yanzhu.manage.mapper.ProProjectInfoMapper; @@ -21,12 +31,18 @@ import com.yanzhu.manage.service.IProProjectInfoService; @Service public class ProProjectInfoServiceImpl implements IProProjectInfoService { - @Autowired - private ProProjectInfoMapper proProjectInfoMapper; @Autowired private ProProjectInfoDeptsMapper deptsMapper; + @Autowired private ProProjectInfoSettingMapper settingMapper; + + @Autowired + private ProProjectInfoMapper proProjectInfoMapper; + + @Autowired + private RemoteDeptService remoteDeptService; + /** * 查询项目信息 * @@ -48,6 +64,13 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService @Override public List selectProProjectInfoList(ProProjectInfo proProjectInfo) { + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + if(!SecurityUtils.isAdmin(sysUser.getUserId())){ + proProjectInfo.setActiveComId(sysUser.getComId()); + if(!SecurityUtils.isGSAdmin()){ + proProjectInfo.setCurrentUserId(sysUser.getUserId()); + } + } return proProjectInfoMapper.selectProProjectInfoList(proProjectInfo); } @@ -60,8 +83,27 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService @Override public int insertProProjectInfo(ProProjectInfo proProjectInfo) { - proProjectInfo.setCreateTime(DateUtils.getNowDate()); - return proProjectInfoMapper.insertProProjectInfo(proProjectInfo); + R deptResult = remoteDeptService.getDeptInfo(proProjectInfo.getDisDeptId(), SecurityConstants.INNER); + SysDept sysDept = deptResult.getData(); + ProDept proDept = new ProDept(); + proDept.setParentId(proProjectInfo.getDisDeptId()); + proDept.setAncestors(sysDept.getAncestors()+","+proProjectInfo.getDisDeptId()); + proDept.setDeptName(proProjectInfo.getProjectName()); + proDept.setDeptShortName(proProjectInfo.getSimpleName()); + proDept.setDeptType("4"); + proDept.setOrderNum(100); + proDept.setLeader(proProjectInfo.getProjectPerson()); + proDept.setPhone(proProjectInfo.getProjectPersonPhone()); + proDept.setCreateBy(SecurityUtils.getUsername()); + int res = proProjectInfoMapper.insertDept(proDept); + if(res>0){ + proProjectInfo.setId(proDept.getDeptId()); + proProjectInfo.setComId(sysDept.getComId()); + proProjectInfo.setCreateTime(DateUtils.getNowDate()); + return proProjectInfoMapper.insertProProjectInfo(proProjectInfo); + }else{ + throw new ServiceException("项目信息保存失败!!!"); + } } /** @@ -74,7 +116,7 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService public int updateProProjectInfo(ProProjectInfo proProjectInfo) { proProjectInfo.setUpdateTime(DateUtils.getNowDate()); - List depts= proProjectInfo.getProjectDeptsList(); + List depts = proProjectInfo.getProjectDeptsList(); if(depts!=null){ depts.forEach(dept->{ dept.setProjectId(proProjectInfo.getId()); @@ -85,7 +127,7 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService } }); } - ProProjectInfoSetting setting= proProjectInfo.getSetting(); + ProProjectInfoSetting setting = proProjectInfo.getSetting(); if(setting!=null){ setting.setProjectId(proProjectInfo.getId()); if(setting.getId()!=null){ diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoUsersServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoUsersServiceImpl.java index 4adce925..a02d387f 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoUsersServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoUsersServiceImpl.java @@ -1,13 +1,16 @@ package com.yanzhu.manage.service.impl; import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.security.utils.SecurityUtils; import com.yanzhu.manage.domain.ProProjectInfoUsers; import com.yanzhu.manage.mapper.ProProjectInfoUsersMapper; import com.yanzhu.manage.service.IProProjectInfoUsersService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** * 项目人员Service业务层处理 @@ -94,4 +97,34 @@ public class ProProjectInfoUsersServiceImpl implements IProProjectInfoUsersServi { return proProjectInfoUsersMapper.deleteProProjectInfoUsersById(id); } + + /** + * 修改项目人员的默认项目 + * + * @param id 项目人员主键 + * @return 结果 + */ + @Override + @Transactional + public int editDefaultProjectById(Long id){ + int res = proProjectInfoUsersMapper.cancelDefaultSortByUserId(SecurityUtils.getUserId()); + if(res>0){ + ProProjectInfoUsers entity = new ProProjectInfoUsers(); + entity.setId(id); + entity.setSortBy(0L); + proProjectInfoUsersMapper.updateProProjectInfoUsers(entity); + } + return res; + } + + /** + * 根据用户编号查询入场项目信息 + * + * @param userId 用户ID + * @return 结果 + */ + @Override + public List> selectProjectsByUserId(Long userId){ + return proProjectInfoUsersMapper.selectProjectsByUserId(userId); + } } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysDeptController.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysDeptController.java index 85503c06..9c272588 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysDeptController.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysDeptController.java @@ -1,35 +1,29 @@ package com.yanzhu.system.controller; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import com.yanzhu.common.core.constant.CacheConstants; import com.yanzhu.common.core.constant.Constants; -import com.yanzhu.common.core.enums.IsDelEnums; -import com.yanzhu.common.redis.service.RedisService; -import com.yanzhu.system.domain.vo.TreeSelect; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.yanzhu.common.core.constant.UserConstants; +import com.yanzhu.common.core.domain.R; +import com.yanzhu.common.core.enums.IsDelEnums; import com.yanzhu.common.core.utils.StringUtils; import com.yanzhu.common.core.web.controller.BaseController; import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.log.annotation.Log; import com.yanzhu.common.log.enums.BusinessType; +import com.yanzhu.common.redis.service.RedisService; +import com.yanzhu.common.security.annotation.InnerAuth; import com.yanzhu.common.security.annotation.RequiresPermissions; import com.yanzhu.common.security.utils.SecurityUtils; import com.yanzhu.system.api.domain.SysDept; +import com.yanzhu.system.domain.vo.TreeSelect; import com.yanzhu.system.service.ISysDeptService; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; /** * 部门信息 @@ -80,6 +74,17 @@ public class SysDeptController extends BaseController return success(deptService.selectDeptById(deptId)); } + /** + * 根据部门编号获取详细信息 + */ + @InnerAuth + @GetMapping("/info/{deptId}") + public R getSysDeptInfo(@PathVariable("deptId") Long deptId) + { + SysDept sysDept = deptService.selectDeptById(deptId); + return R.ok(sysDept); + } + /** * 新增部门 */ @@ -161,6 +166,7 @@ public class SysDeptController extends BaseController redisService.setCacheObject(key,depts, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); return success(depts); } + @RequiresPermissions("system:dept:list") @GetMapping("/deptTree") public AjaxResult userDeptTree(){ diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysRoleController.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysRoleController.java index 5e6d664d..1ffb54a0 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysRoleController.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysRoleController.java @@ -278,7 +278,7 @@ public class SysRoleController extends BaseController @GetMapping("/deptRole/{roleId}") public AjaxResult list(@PathVariable("roleId") Long deptId) { - List list = roleService.findDeptRoleList(deptId); + List list = roleService.findDeptRoleListByDeptId(deptId); return success(list); } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysUserController.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysUserController.java index 4a963927..a0324a00 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysUserController.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysUserController.java @@ -9,6 +9,7 @@ import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import com.yanzhu.common.core.constant.Constants; +import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.system.domain.vo.TreeSelect; import io.swagger.annotations.ApiOperation; @@ -129,6 +130,57 @@ public class SysUserController extends BaseController { return R.fail("用户名或密码错误"); } + if (StringUtils.isEmpty(sysUser.getRoles())) + { + return R.fail("用户未查询到分配角色,请联系管理员!!!"); + } + // 重写登录方法 + if(!sysUser.isAdmin() && sysUser.getRoles().size()>1){ + List gsAdmins = sysUser.getRoles().stream().filter(role -> role.getRoleId()==2L).collect(Collectors.toList()); + if(StringUtils.isNotEmpty(gsAdmins)){ + // 默认以公司管理员登录 + sysUser = userService.selectUserByUserName(username,sysUser.getComId()); + sysUser.setActiveComId(sysUser.getComId()); + }else{ + // 查询用户绑定项目列表 + List> list = userService.selectProjectsByUserId(sysUser.getUserId()); + if (StringUtils.isEmpty(list)) + { + return R.fail("用户角色配置异常,请联系管理员!!!"); + } + // 以项目人员身份登录 + sysUser = userService.selectUserByUserName(username, Convert.toLong(list.get(0).get("project_id"))); + sysUser.setActiveComId(sysUser.getComId()); + sysUser.setActiveProjectId(Convert.toLong(list.get(0).get("project_id"))); + sysUser.setActiveProjectName(Convert.toStr(list.get(0).get("project_name"))); + } + } + // 角色集合 + Set roles = permissionService.getRolePermission(sysUser); + // 权限集合 + Set permissions = permissionService.getMenuPermission(sysUser); + LoginUser sysUserVo = new LoginUser(); + sysUserVo.setSysUser(sysUser); + sysUserVo.setRoles(roles); + sysUserVo.setPermissions(permissions); + return R.ok(sysUserVo); + } + + /** + * 获取当前用户信息 + */ + @InnerAuth + @GetMapping("/infoAndDept/{username}/{deptId}") + public R infoAndDept(@PathVariable("username") String username,@PathVariable("deptId") Long deptId) + { + // 以项目人员身份登录 + SysUser sysUser = userService.selectUserByUserName(username, deptId); + List> list = userService.selectProjectsByUserId(sysUser.getUserId()); + + sysUser.setActiveComId(sysUser.getComId()); + sysUser.setActiveProjectId(Convert.toLong(list.get(0).get("project_id"))); + sysUser.setActiveProjectName(Convert.toStr(list.get(0).get("project_name"))); + // 角色集合 Set roles = permissionService.getRolePermission(sysUser); // 权限集合 @@ -159,17 +211,6 @@ public class SysUserController extends BaseController return R.ok(userService.registerUser(sysUser)); } - /** - * 获取当前用户入场项目信息 - */ - @InnerAuth - @GetMapping("/projects/{userId}") - public R>> getProjects(@PathVariable("userId") Long userId) - { - List> list = userService.selectProjectsByUserId(userId); - return R.ok(list); - } - /** * 获取用户信息 */ @@ -189,7 +230,20 @@ public class SysUserController extends BaseController @GetMapping("getInfo") public AjaxResult getInfo() { - SysUser user = userService.selectUserById(SecurityUtils.getUserId()); + SysUser cache = SecurityUtils.getLoginUser().getSysUser(); + SysUser user; + if(SecurityUtils.isAdmin(cache.getUserId())){ + user = userService.selectUserById(cache.getUserId()); + }else{ + if(SecurityUtils.isGSAdmin()){ + user = userService.selectUserByIdAndDept(cache.getUserId(),cache.getComId()); + }else{ + user = userService.selectUserByIdAndDept(cache.getUserId(),cache.getActiveProjectId()); + } + } + user.setActiveComId(cache.getComId()); + user.setActiveProjectId(cache.getActiveProjectId()); + user.setActiveProjectName(cache.getActiveProjectName()); // 角色集合 Set roles = permissionService.getRolePermission(user); // 权限集合 @@ -215,7 +269,13 @@ public class SysUserController extends BaseController ajax.put("posts", postService.selectPostAll()); if (StringUtils.isNotNull(userId)) { - SysUser sysUser = userService.selectUserById(userId); + SysUser sysUser; + if(SysUser.isAdmin(userId)){ + sysUser = userService.selectUserById(userId); + }else{ + SysUser user = userService.selectUserByUserId(userId); + sysUser = userService.selectUserByIdAndDept(userId,user.getDeptId()); + } ajax.put(AjaxResult.DATA_TAG, sysUser); ajax.put("postIds", postService.selectPostListByUserId(userId)); ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); @@ -327,9 +387,9 @@ public class SysUserController extends BaseController { AjaxResult ajax = AjaxResult.success(); SysUser user = userService.selectUserById(userId); - List roles = roleService.findDeptRoleList(user.getDeptId()); + List roles = roleService.findDeptRoleListByComId(user.getComId()); ajax.put("user", user); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin() && !r.isGsAdmin(r.getRoleKey())).collect(Collectors.toList())); return ajax; } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/domain/SysUserRole.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/domain/SysUserRole.java index add16627..cb6683bd 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/domain/SysUserRole.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/domain/SysUserRole.java @@ -16,8 +16,10 @@ public class SysUserRole /** 角色ID */ private Long roleId; - /** 角色ID */ - private Long projectId; + /** 单位ID */ + private Long deptId; + + private Long[] roleIds; public Long getUserId() { @@ -39,12 +41,20 @@ public class SysUserRole this.roleId = roleId; } - public Long getProjectId() { - return projectId; + public Long getDeptId() { + return deptId; } - public void setProjectId(Long projectId) { - this.projectId = projectId; + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public Long[] getRoleIds() { + return roleIds; + } + + public void setRoleIds(Long[] roleIds) { + this.roleIds = roleIds; } @Override @@ -52,7 +62,6 @@ public class SysUserRole return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("userId", getUserId()) .append("roleId", getRoleId()) - .append("projectId", getProjectId()) .toString(); } } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysDeptMapper.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysDeptMapper.java index fc2a45c7..36a92d4f 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysDeptMapper.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysDeptMapper.java @@ -24,6 +24,7 @@ public interface SysDeptMapper * 根据deptId查询此ID及下面的子项,用于构建树 */ public List selectDeptListForComp(SysDept dept); + /** * 根据角色ID查询部门树信息 * diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysMenuMapper.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysMenuMapper.java index c8fdf97d..981a64a5 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysMenuMapper.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysMenuMapper.java @@ -51,6 +51,15 @@ public interface SysMenuMapper */ public List selectMenuPermsByUserId(Long userId); + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 权限列表 + */ + public List selectMenuPermsByUserIdAndDept(@Param("userId")Long userId,@Param("deptId") Long deptId); + /** * 根据用户ID查询菜单 * diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysRoleDeptMapper.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysRoleDeptMapper.java index 09faae70..c93c86dd 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysRoleDeptMapper.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysRoleDeptMapper.java @@ -41,4 +41,12 @@ public interface SysRoleDeptMapper * @return 结果 */ public int batchRoleDept(List roleDeptList); + + /** + * 删除增角色部门信息 + * + * @param sysRoleDept 角色部门信息 + * @return 结果 + */ + public int delRoleDept(SysRoleDept sysRoleDept); } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysRoleMapper.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysRoleMapper.java index c03caf6b..3178416b 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysRoleMapper.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysRoleMapper.java @@ -2,6 +2,7 @@ package com.yanzhu.system.mapper; import java.util.List; import com.yanzhu.system.api.domain.SysRole; +import org.apache.ibatis.annotations.Param; /** * 角色表 数据层 @@ -26,6 +27,15 @@ public interface SysRoleMapper */ public List selectRolePermissionByUserId(Long userId); + /** + * 根据用户ID查询角色 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 角色列表 + */ + public List selectRolePermissionByUserIdAndDept(@Param("userId") Long userId, @Param("deptId") Long deptId); + /** * 查询所有角色 * @@ -111,5 +121,13 @@ public interface SysRoleMapper * @param deptId 部门ID * @return 角色列表 */ - public List findDeptRoleList(Long deptId); + public List findDeptRoleListByDeptId(Long deptId); + + /** + * 根据公司ID查询角色列表 + * + * @param comId 公司ID + * @return 角色列表 + */ + public List findDeptRoleListByComId(Long comId); } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysUserMapper.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysUserMapper.java index debb8e45..2607d076 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysUserMapper.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysUserMapper.java @@ -45,6 +45,15 @@ public interface SysUserMapper */ public SysUser selectUserByUserName(String userName); + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @param deptId 单位主键 + * @return 用户对象信息 + */ + public SysUser selectUserByUserNameAndDept(@Param("userName") String userName, @Param("deptId") Long deptId); + /** * 通过用户ID查询用户 * @@ -53,6 +62,15 @@ public interface SysUserMapper */ public SysUser selectUserById(Long userId); + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 用户对象信息 + */ + public SysUser selectUserByIdAndDept(@Param("userId") Long userId, @Param("deptId") Long deptId); + /** * 通过用户ID查询用户 * diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysUserRoleMapper.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysUserRoleMapper.java index 94bf296a..6d65a88f 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysUserRoleMapper.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/mapper/SysUserRoleMapper.java @@ -14,12 +14,20 @@ public interface SysUserRoleMapper { /** * 通过用户ID删除用户和角色关联 - * + * * @param userId 用户ID * @return 结果 */ public int deleteUserRoleByUserId(Long userId); + /** + * 通过用户ID删除用户和角色关联 + * + * @param userRole 用户角色信息 + * @return 结果 + */ + public int deleteUserRoleByUserRole(SysUserRole userRole); + /** * 批量删除用户和角色关联 * @@ -60,4 +68,5 @@ public interface SysUserRoleMapper * @return 结果 */ public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); + } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysMenuService.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysMenuService.java index c87c0ea7..1da0c47b 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysMenuService.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysMenuService.java @@ -38,6 +38,15 @@ public interface ISysMenuService */ public Set selectMenuPermsByUserId(Long userId); + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 权限列表 + */ + public Set selectMenuPermsByUserIdAndDept(Long userId,Long deptId); + /** * 根据角色ID查询权限 * diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysPermissionService.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysPermissionService.java index 69b92747..a26146dd 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysPermissionService.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysPermissionService.java @@ -14,7 +14,7 @@ public interface ISysPermissionService /** * 获取角色数据权限 * - * @param userId 用户Id + * @param user 用户信息 * @return 角色权限信息 */ public Set getRolePermission(SysUser user); @@ -22,7 +22,7 @@ public interface ISysPermissionService /** * 获取菜单数据权限 * - * @param userId 用户Id + * @param user 用户信息 * @return 菜单权限信息 */ public Set getMenuPermission(SysUser user); diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysRoleService.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysRoleService.java index 79b1a6fe..3ffe6848 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysRoleService.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysRoleService.java @@ -36,6 +36,15 @@ public interface ISysRoleService */ public Set selectRolePermissionByUserId(Long userId); + /** + * 根据用户ID查询角色权限 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 权限列表 + */ + public Set selectRolePermissionByUserIdAndDept(Long userId, Long deptId); + /** * 查询所有角色 * @@ -177,5 +186,14 @@ public interface ISysRoleService * @param deptId 部门ID * @return 角色列表 */ - public List findDeptRoleList(Long deptId); + public List findDeptRoleListByDeptId(Long deptId); + + /** + * 根据公司ID查询角色列表 + * + * @param comId 公司ID + * @return 角色列表 + */ + public List findDeptRoleListByComId(Long comId); + } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserService.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserService.java index 692e2e3a..27ec64bf 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserService.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserService.java @@ -1,10 +1,10 @@ package com.yanzhu.system.service; +import com.yanzhu.system.api.domain.SysUser; + import java.util.List; import java.util.Map; -import com.yanzhu.system.api.domain.SysUser; - /** * 用户 业务层 * @@ -44,6 +44,15 @@ public interface ISysUserService */ public SysUser selectUserByUserName(String userName); + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @param deptId 单位主键 + * @return 用户对象信息 + */ + public SysUser selectUserByUserName(String userName,Long deptId); + /** * 通过用户ID查询用户 * @@ -52,6 +61,15 @@ public interface ISysUserService */ public SysUser selectUserById(Long userId); + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 用户对象信息 + */ + public SysUser selectUserByIdAndDept(Long userId, Long deptId); + /** * 通过用户ID查询用户 * diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysMenuServiceImpl.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysMenuServiceImpl.java index 0f4d0445..45dc5806 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysMenuServiceImpl.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysMenuServiceImpl.java @@ -101,6 +101,27 @@ public class SysMenuServiceImpl implements ISysMenuService return permsSet; } + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 权限列表 + */ + @Override + public Set selectMenuPermsByUserIdAndDept(Long userId,Long deptId){ + List perms = menuMapper.selectMenuPermsByUserIdAndDept(userId,deptId); + Set permsSet = new HashSet<>(); + for (String perm : perms) + { + if (StringUtils.isNotEmpty(perm)) + { + permsSet.addAll(Arrays.asList(perm.trim().split(","))); + } + } + return permsSet; + } + /** * 根据角色ID查询权限 * diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysPermissionServiceImpl.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysPermissionServiceImpl.java index 5a7cc5b7..9f74ac86 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysPermissionServiceImpl.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysPermissionServiceImpl.java @@ -2,7 +2,14 @@ package com.yanzhu.system.service.impl; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; + +import com.yanzhu.common.core.constant.SecurityConstants; +import com.yanzhu.common.core.domain.R; +import com.yanzhu.common.security.utils.SecurityUtils; +import com.yanzhu.system.api.RemoteProService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.yanzhu.system.api.domain.SysRole; @@ -25,10 +32,13 @@ public class SysPermissionServiceImpl implements ISysPermissionService @Autowired private ISysMenuService menuService; + @Autowired + private RemoteProService remoteProService; + /** * 获取角色数据权限 * - * @param userId 用户Id + * @param user 用户信息 * @return 角色权限信息 */ @Override @@ -42,7 +52,11 @@ public class SysPermissionServiceImpl implements ISysPermissionService } else { - roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId())); + if(SysRole.isGsAdmin(getRoleKeys(user.getRoles()))){ + roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId())); + }else{ + roles.addAll(roleService.selectRolePermissionByUserIdAndDept(user.getUserId(),user.getActiveProjectId())); + } } return roles; } @@ -50,7 +64,7 @@ public class SysPermissionServiceImpl implements ISysPermissionService /** * 获取菜单数据权限 * - * @param userId 用户Id + * @param user 用户信息 * @return 菜单权限信息 */ @Override @@ -70,16 +84,35 @@ public class SysPermissionServiceImpl implements ISysPermissionService // 多角色设置permissions属性,以便数据权限匹配权限 for (SysRole role : roles) { - Set rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); + Set rolePerms; + if(SysRole.isGsAdmin(getRoleKeys(user.getRoles()))){ + rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); + }else{ + rolePerms = menuService.selectMenuPermsByUserIdAndDept(role.getRoleId(),user.getActiveProjectId()); + } role.setPermissions(rolePerms); perms.addAll(rolePerms); } } else { - perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + if(SysRole.isGsAdmin(getRoleKeys(user.getRoles()))){ + perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + }else{ + perms.addAll(menuService.selectMenuPermsByUserIdAndDept(user.getUserId(), user.getActiveProjectId())); + } } } return perms; } + + /** + * 读取roleKey + * @param roles + * @return + */ + private List getRoleKeys(List roles){ + return roles.stream().map(SysRole::getRoleKey) + .collect(Collectors.toList()); + } } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysRoleServiceImpl.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysRoleServiceImpl.java index ee6adddc..81bc87e5 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysRoleServiceImpl.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysRoleServiceImpl.java @@ -1,10 +1,6 @@ package com.yanzhu.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import com.yanzhu.common.datascope.annotation.DataScope; import com.yanzhu.system.api.domain.SysRoleDept; @@ -105,6 +101,26 @@ public class SysRoleServiceImpl implements ISysRoleService return permsSet; } + /** + * 根据用户ID查询角色权限 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 权限列表 + */ + public Set selectRolePermissionByUserIdAndDept(Long userId, Long deptId){ + List perms = roleMapper.selectRolePermissionByUserIdAndDept(userId,deptId); + Set permsSet = new HashSet<>(); + for (SysRole perm : perms) + { + if (StringUtils.isNotNull(perm)) + { + permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); + } + } + return permsSet; + } + /** * 查询所有角色 * @@ -233,6 +249,9 @@ public class SysRoleServiceImpl implements ISysRoleService public int insertRole(SysRole role) { // 新增角色信息 + if(Objects.nonNull(role.getDeptId()) && StringUtils.isEmpty(role.getRoleKey())){ + role.setRoleKey(role.getDeptId()+"_"+System.currentTimeMillis()); + } roleMapper.insertRole(role); int res = insertRoleMenu(role); // 角色和部门信息 @@ -289,7 +308,7 @@ public class SysRoleServiceImpl implements ISysRoleService // 修改角色信息 roleMapper.updateRole(role); // 删除角色与部门关联 - roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); + // roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); // 新增角色和部门信息(数据权限) return insertRoleDeptList(role); } @@ -331,6 +350,7 @@ public class SysRoleServiceImpl implements ISysRoleService SysRoleDept rd = new SysRoleDept(); rd.setRoleId(role.getRoleId()); rd.setDeptId(role.getDeptId()); + roleDeptMapper.delRoleDept(rd); list.add(rd); if (list.size() > 0) { @@ -354,6 +374,7 @@ public class SysRoleServiceImpl implements ISysRoleService SysRoleDept rd = new SysRoleDept(); rd.setRoleId(role.getRoleId()); rd.setDeptId(deptId); + roleDeptMapper.delRoleDept(rd); list.add(rd); } if (list.size() > 0) @@ -461,7 +482,18 @@ public class SysRoleServiceImpl implements ISysRoleService * @return 角色列表 */ @Override - public List findDeptRoleList(Long deptId){ - return roleMapper.findDeptRoleList(deptId); + public List findDeptRoleListByDeptId(Long deptId){ + return roleMapper.findDeptRoleListByDeptId(deptId); + } + + /** + * 根据公司ID查询角色列表 + * + * @param comId 公司ID + * @return 角色列表 + */ + @Override + public List findDeptRoleListByComId(Long comId){ + return roleMapper.findDeptRoleListByComId(comId); } } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java index 1eb2021d..64bd72db 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java @@ -3,15 +3,15 @@ package com.yanzhu.system.service.impl; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import javax.validation.Validator; +import com.yanzhu.system.api.domain.SysDept; import com.yanzhu.system.domain.SysPost; import com.yanzhu.system.domain.SysUserPost; import com.yanzhu.system.domain.SysUserRole; -import com.yanzhu.system.mapper.SysRoleMapper; -import com.yanzhu.system.mapper.SysUserMapper; -import com.yanzhu.system.mapper.SysUserPostMapper; +import com.yanzhu.system.mapper.*; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import org.slf4j.Logger; @@ -29,8 +29,6 @@ import com.yanzhu.common.datascope.annotation.DataScope; import com.yanzhu.common.security.utils.SecurityUtils; import com.yanzhu.system.api.domain.SysRole; import com.yanzhu.system.api.domain.SysUser; -import com.yanzhu.system.mapper.SysPostMapper; -import com.yanzhu.system.mapper.SysUserRoleMapper; import com.yanzhu.system.service.ISysConfigService; import com.yanzhu.system.service.ISysUserService; @@ -44,6 +42,9 @@ public class SysUserServiceImpl implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); + @Autowired + private SysDeptMapper deptMapper; + @Autowired private SysUserMapper userMapper; @@ -116,6 +117,18 @@ public class SysUserServiceImpl implements ISysUserService return userMapper.selectUserByUserName(userName); } + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @param deptId 单位主键 + * @return 用户对象信息 + */ + @Override + public SysUser selectUserByUserName(String userName,Long deptId){ + return userMapper.selectUserByUserNameAndDept(userName,deptId); + } + /** * 通过用户ID查询用户 * @@ -128,6 +141,18 @@ public class SysUserServiceImpl implements ISysUserService return userMapper.selectUserById(userId); } + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @param deptId 单位ID + * @return 用户对象信息 + */ + @Override + public SysUser selectUserByIdAndDept(Long userId, Long deptId){ + return userMapper.selectUserByIdAndDept(userId,deptId); + } + /** * 通过用户ID查询用户 * @@ -273,6 +298,11 @@ public class SysUserServiceImpl implements ISysUserService { // 新增用户信息 user.setUserName(userNameAndCout(user.getNickName())); + SysDept dept = deptMapper.selectDeptById(user.getDeptId()); + if(Objects.isNull(dept)){ + throw new ServiceException("所属单位选择异常,必须选择子公司及下属单位"); + } + user.setComId(dept.getComId()); int rows = userMapper.insertUser(user); // 新增用户岗位关联 insertUserPost(user); @@ -305,7 +335,11 @@ public class SysUserServiceImpl implements ISysUserService { Long userId = user.getUserId(); // 删除用户与角色关联 - userRoleMapper.deleteUserRoleByUserId(userId); + SysUserRole userRole = new SysUserRole(); + userRole.setUserId(userId); + SysUser entity = userMapper.selectUserById(userId); + userRole.setDeptId(entity.getDeptId()); + userRoleMapper.deleteUserRoleByUserRole(userRole); // 新增用户与角色管理 insertUserRole(user); // 删除用户与岗位关联 @@ -314,6 +348,11 @@ public class SysUserServiceImpl implements ISysUserService insertUserPost(user); //这里不允许修改密码 user.setPassword(null); + SysDept dept = deptMapper.selectDeptById(user.getDeptId()); + if(Objects.isNull(dept)){ + throw new ServiceException("所属单位选择异常,必须选择子公司及下属单位"); + } + user.setComId(dept.getComId()); return userMapper.updateUser(user); } @@ -359,7 +398,10 @@ public class SysUserServiceImpl implements ISysUserService @Transactional(rollbackFor = Exception.class) public void insertUserAuth(Long userId, Long[] roleIds) { - userRoleMapper.deleteUserRoleByUserId(userId); + SysUserRole userRole = new SysUserRole(); + userRole.setUserId(userId); + userRole.setRoleIds(roleIds); + userRoleMapper.deleteUserRoleByUserRole(userRole); insertUserRole(userId, roleIds); } diff --git a/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysDeptMapper.xml b/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysDeptMapper.xml index 16d20708..40b184a5 100644 --- a/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -56,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.dataScope} order by d.parent_id, d.order_num + + - + diff --git a/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysMenuMapper.xml b/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysMenuMapper.xml index 536ddaf9..47a229a3 100644 --- a/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -110,7 +110,17 @@ left join sys_role r on r.role_id = ur.role_id where m.status = '0' and r.status = '0' and ur.user_id = #{userId} - + + + @@ -49,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND r.role_id = #{roleId} - AND rdd.dept_id = #{deptId} + AND rd.dept_id = #{deptId} AND r.role_name like concat('%', #{roleName}, '%') @@ -71,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by r.role_sort - select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly, r.status, r.del_flag, r.create_time, r.remark from sys_role r @@ -79,14 +85,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where r.del_flag = '0' and rd.dept_id = ${deptId} order by r.role_sort - + + + - + + + diff --git a/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysUserMapper.xml b/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysUserMapper.xml index c3052591..f9699775 100644 --- a/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -152,12 +152,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where u.user_name = #{userName} and u.del_flag = '0' - + + + + + @@ -276,7 +288,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" \ No newline at end of file diff --git a/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysUserRoleMapper.xml index 16b0a2aa..687fcebf 100644 --- a/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysUserRoleMapper.xml +++ b/yanzhu-modules/yanzhu-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -12,6 +12,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from sys_user_role where user_id=#{userId} + + + delete from sys_user_role ur where ur.user_id=#{userId} + and ur.role_id in (select rd.role_id from sys_role_dept rd where rd.dept_id = #{deptId}) + and ur.role_id in + + #{item} + + +