From 7096873e2c9b96144b2cf745a740c7661e2aee7d Mon Sep 17 00:00:00 2001 From: liweijie Date: Fri, 18 Sep 2026 19:31:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=99=E7=A0=94=E5=AE=A4=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=94=B9=E4=B8=BA=E7=94=A8=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/roomroot/jwgl/mapper/JYSDLBMapper.java | 9 +++++++++ .../jwgl/service/impl/TeachingMaterialServiceImpl.java | 2 +- .../java/com/roomroot/jwgl/utils/JwglRoleHelper.java | 7 ++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/JYSDLBMapper.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/JYSDLBMapper.java index fd83eea8..24ae0097 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/JYSDLBMapper.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/JYSDLBMapper.java @@ -17,4 +17,13 @@ public interface JYSDLBMapper extends BaseMapper { + "WHERE LOWER(TRIM(a.\"账号\")) = LOWER(TRIM(#{username})) " + "OR LOWER(TRIM(a.\"统一账号\")) = LOWER(TRIM(#{username}))") String selectResearchOfficeIdByAccount(@Param("username") String username); + + /** + * 按登录用户所属部门(SYS_USER.DEPT_ID = 教研室表.部门编号)解析教研室。 + * 用于持有教研室角色的系统账号(旧账号体系的教研室登录表未绑定时兜底)。 + */ + @Select("SELECT TRIM(b.\"教研室代号\") FROM \"教研室表\" b " + + "JOIN SYS_USER u ON u.DEPT_ID = b.\"部门编号\" " + + "WHERE LOWER(TRIM(u.USER_NAME)) = LOWER(TRIM(#{username})) AND ROWNUM = 1") + String selectResearchOfficeIdByUserDept(@Param("username") String username); } diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/TeachingMaterialServiceImpl.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/TeachingMaterialServiceImpl.java index 9a125d45..0fe7bdf1 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/TeachingMaterialServiceImpl.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/TeachingMaterialServiceImpl.java @@ -257,7 +257,7 @@ public class TeachingMaterialServiceImpl implements TeachingMaterialService { public void downloadTemplate(HttpServletResponse response) { try { // 从resources/template目录读取模板文件 - ClassPathResource resource = new ClassPathResource("template/教材管理.xls"); + ClassPathResource resource = new ClassPathResource("file/教材管理.xls"); InputStream is = resource.getInputStream(); // 设置响应头 diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/utils/JwglRoleHelper.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/utils/JwglRoleHelper.java index 501d3f1e..7eefcd73 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/utils/JwglRoleHelper.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/utils/JwglRoleHelper.java @@ -103,7 +103,12 @@ public class JwglRoleHelper { if (StringUtils.isEmpty(username) || jysdlbMapper == null) { return null; } - return jysdlbMapper.selectResearchOfficeIdByAccount(username); + String officeId = jysdlbMapper.selectResearchOfficeIdByAccount(username); + // 教研室角色账号按所属部门解析教研室;普通教员不得走此通道 + if (StringUtils.isEmpty(officeId) && hasRoleKey(ROLE_RESEARCH_OFFICE)) { + officeId = jysdlbMapper.selectResearchOfficeIdByUserDept(username); + } + return officeId; } catch (Exception ignored) { return null; }