Debugg load

This commit is contained in:
2025-09-11 14:37:55 +08:00
parent 36bd470611
commit 141299fcaa
3 changed files with 48 additions and 8 deletions

View File

@@ -29,6 +29,8 @@ import com.ruoyi.project.domain.BizProject;
import com.ruoyi.project.service.IBizProjectService;
import com.ruoyi.common.utils.StringUtils;
import java.net.URLEncoder;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.common.core.domain.entity.SysUser;
/**
* 文档Controller
@@ -49,6 +51,9 @@ public class BizDocController extends BaseController
@Autowired
private IBizModuleService bizModuleService;
@Autowired
private ISysUserService sysUserService;
/**
* 查询文档列表
*/
@@ -159,15 +164,50 @@ public class BizDocController extends BaseController
Long currentUserId = getUserId();
if ("0".equals(kindType)) {
// 项目文档:只有项目管理员可上传
// 项目文档:项目管理员 或 项目参与者(该项目下任一模块的接取人/被指派人)可上传
BizProject project = bizProjectService.selectBizProjectByProjectId(projectId);
if (!project.getOwnerId().equals(currentUserId)) {
boolean isOwner = project != null && project.getOwnerId() != null && project.getOwnerId().equals(currentUserId);
boolean isParticipant = false;
if (!isOwner) {
// 参与者判断:当前用户是否在该项目下拥有被指派的模块
com.ruoyi.models.domain.BizModule query = new com.ruoyi.models.domain.BizModule();
query.setProjectId(projectId);
java.util.List<com.ruoyi.models.domain.BizModule> modules = bizModuleService.selectBizModuleList(query);
if (modules != null) {
for (com.ruoyi.models.domain.BizModule m : modules) {
if (m.getAssignee() != null && (m.getAssignee().equals(String.valueOf(currentUserId)) || m.getAssignee().equals(getUsername()))) {
isParticipant = true; break;
}
}
}
}
if (!isOwner && !isParticipant) {
return AjaxResult.error("无权上传项目文档");
}
} else if ("1".equals(kindType)) {
// 模块文档:只有被指派该模块的用户可以上传
// 模块文档:只有接取人可以上传兼容历史assignee 可能保存为用户ID/用户名/昵称)
BizModule module = bizModuleService.selectBizModuleByModuleId(moduleId);
if (!String.valueOf(currentUserId).equals(module.getAssignee())) {
if (module == null) {
return AjaxResult.error("模块不存在");
}
String assignee = module.getAssignee();
boolean allowed = false;
// 1) 与当前用户ID字符串相等历史ID保存
if (String.valueOf(currentUserId).equals(assignee)) {
allowed = true;
} else {
try {
SysUser u = sysUserService.selectUserById(currentUserId);
if (u != null) {
if (StringUtils.isNotEmpty(u.getUserName()) && u.getUserName().equals(assignee)) {
allowed = true;
} else if (StringUtils.isNotEmpty(u.getNickName()) && u.getNickName().equals(assignee)) {
allowed = true;
}
}
} catch (Exception ignored) {}
}
if (!allowed) {
return AjaxResult.error("无权上传此模块文档");
}
}

View File

@@ -6,7 +6,7 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://127.0.0.1:n3306/managersystem?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://127.0.0.1:3306/managersystem?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: Wxit11335577
# 从库数据源

View File

@@ -100,7 +100,7 @@
<el-form label-width="90px" size="small" style="margin-bottom: 10px;">
<el-form-item label="文档类型">
<el-radio-group v-model="upload.meta.kindType" @change="handleKindTypeChange">
<el-radio :label="0">项目文档</el-radio>
<el-radio :label="0" :disabled="isNormalUser">项目文档</el-radio>
<el-radio :label="1">模块文档</el-radio>
</el-radio-group>
</el-form-item>
@@ -135,9 +135,9 @@
<div class="el-upload__tip" slot="tip">
<div>
<strong>文档类型</strong>{{ upload.meta.kindType === 1 ? '模块文档' : '项目文档' }}<br>
<strong>所属项目</strong>{{ (projectOptions.find(p=>p.projectId===upload.meta.projectId)||{}).projectName || '-' }}<br>
<strong>所属项目</strong>{{ (projectOptions.find(p=>String(p.projectId)===String(upload.meta.projectId))||{}).projectName || '-' }}<br>
<template v-if="upload.meta.kindType === 1">
<strong>所属模块</strong>{{ (moduleOptions.find(m=>m.moduleId===upload.meta.moduleId)||{}).moduleName || '-' }}
<strong>所属模块</strong>{{ (moduleOptions.find(m=>String(m.moduleId)===String(upload.meta.moduleId))||{}).moduleName || '-' }}
</template>
</div>
<br>