Commit 6e425d56 by wangqi

成果管理权限

parent b6e381d9
......@@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.system.domain.SysRole;
import com.ruoyi.project.ys.utils.roleUtil;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -44,11 +45,12 @@ public class YsqqXmxxController extends BaseController
@GetMapping("/list")
public TableDataInfo list(YsqqXmxx ysqqXmxx)
{
// 系统管理员:看所有。
// 创建人能看到
// 项目成员能看到
// 系统管理员:管理者
// 创建人:管理者
// 项目成员:管理者 ,协作者,查看者
boolean is_admin = false;
String user_id = SecurityUtils.getUserId()+"";
// 拿到角色如果是管理员 不限制。不是管理员只能看到自己创建的,或者自己是成员的
List<SysRole> rolelist = SecurityUtils.getLoginUser().getUser().getRoles();
if(StringUtils.isNotEmpty(rolelist)){
......@@ -62,14 +64,24 @@ public class YsqqXmxxController extends BaseController
if(is_admin){
ysqqXmxx.setCreatedBy(null);
}else{
ysqqXmxx.setCreatedBy(SecurityUtils.getUserId()+"");
ysqqXmxx.setCreatedBy(user_id);
}
startPage();
List<YsqqXmxx> list = ysqqXmxxService.selectYsqqXmxxList(ysqqXmxx);
if(is_admin){
}else{
// 管理者 、协作者、查看者
for(YsqqXmxx xmxx:list){
if(is_admin){
xmxx.setXmjs("管理者");
continue;
}
if(user_id.equals(xmxx.getCreatedBy())){
xmxx.setXmjs("管理者");
continue;
}
String xmjss = xmxx.getXmjss();
String cyids = xmxx.getCyids();
String xmjs = roleUtil.getXmjsByCyid(cyids,xmjss,user_id);
xmxx.setXmjs(xmjs);
}
return getDataTable(list);
}
......@@ -227,21 +239,46 @@ public class YsqqXmxxController extends BaseController
// 系统管理员:看所有。
// 创建人能看到
// 项目成员能看到
ysqqXmxx.setCreatedBy(SecurityUtils.getUserId()+"");
// 拿到角色如果是管理员 不限制。不是管理员只能看到自己的帮扶组
boolean is_admin = false;
String user_id = SecurityUtils.getUserId()+"";
// 拿到角色如果是管理员 不限制。不是管理员只能看到自己创建的,或者自己是成员的
List<SysRole> rolelist = SecurityUtils.getLoginUser().getUser().getRoles();
if(StringUtils.isNotEmpty(rolelist)){
for (SysRole role :rolelist){
Long roleid = role.getRoleId();
if(roleid==1||roleid==3){
ysqqXmxx.setCreatedBy(null);
is_admin = true;
}
}
}
if(is_admin){
ysqqXmxx.setCreatedBy(null);
}else{
ysqqXmxx.setCreatedBy(user_id);
}
startPage();
//ysqqXmxx.setExt1("待验收、已验收(待归档)、已归档'");
List<YsqqXmxx> list = ysqqXmxxService.yscgList(ysqqXmxx);
// 管理者 、协作者、查看者
for(YsqqXmxx xmxx:list){
if(is_admin){
xmxx.setXmjs("管理者");
continue;
}
if(user_id.equals(xmxx.getCreatedBy())){
xmxx.setXmjs("管理者");
continue;
}
String xmjss = xmxx.getXmjss();
String cyids = xmxx.getCyids();
String xmjs = roleUtil.getXmjsByCyid(cyids,xmjss,user_id);
xmxx.setXmjs(xmjs);
}
return getDataTable(list);
}
}
......@@ -162,10 +162,14 @@ public class YsqqXmxxServiceImpl implements IYsqqXmxxService
xmxx.setXmmc(item1.getXmmc());
xmxx.setXmzt(item1.getXmzt());
xmxx.setQk(item1.getQk());
xmxx.setCyids(item1.getCyids());
xmxx.setXmjss(item1.getXmjss());
xmxx.setCreatedBy(item1.getCreatedBy());
xmxx.setPxh(PXH);
xmxx.setZllxid(item2.getId());
xmxx.setZllxmc(item2.getLxmc());
jctzList.add(xmxx);
}
}
......
package com.ruoyi.project.ys.utils;
/**
* Created by wangjian on 2023/9/4.
*/
public class roleUtil {
/**
* 根据目标cyid(String类型)获取对应的xmjs值
* @param cyids 逗号分隔的cyid字符串(可能为null)
* @param xmjss 逗号分隔的xmjs字符串
* @param targetCyid 目标cyid(String类型)
* @return 对应的xmjs值,或提示信息
*/
public static String getXmjsByCyid(String cyids, String xmjss, String targetCyid) {
// 处理null和空字符串情况
if (cyids == null || cyids.trim().isEmpty()) {
return "查看者";
}
if (xmjss == null || xmjss.trim().isEmpty()) {
return "查看者";
}
if (targetCyid == null || targetCyid.trim().isEmpty()) {
return "查看者";
}
// 去除目标cyid的前后空格
String trimmedTarget = targetCyid.trim();
// 拆分字符串为数组
String[] cyidArray = cyids.split(",");
String[] xmjsArray = xmjss.split(",");
// 校验数组长度是否一致
if (cyidArray.length != xmjsArray.length) {
return "查看者";
}
// 查找目标cyid对应的xmjs(字符串直接比较)
for (int i = 0; i < cyidArray.length; i++) {
// 去除当前cyid的前后空格后再比较
if (cyidArray[i].trim().equals(trimmedTarget)) {
return xmjsArray[i].trim();
}
}
// 未找到对应记录
return "查看者";
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment