From 02c0c7b9fe958cba9fd0dd5c6df8f02ff09f24f8 Mon Sep 17 00:00:00 2001 From: Qi <3194726156@qq.com> Date: Tue, 3 Jun 2025 23:06:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=90=E6=95=B0=E6=8D=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=95=B0=E6=8D=AE=E5=85=B3=E8=81=94=E6=80=BB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E3=80=81=E8=A7=92=E8=89=B2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=94=B9=E4=B8=BA=E6=95=B0=E6=8D=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=AE=BE=E7=BD=AE=E3=80=81=E5=AF=BC=E5=87=BA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=A7=84=E8=8C=83=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/controller/JeecgController.java | 118 ++++++++++++++++-- .../base/service/NameResolverService.java | 6 + .../system/base/service/SysRoleService.java | 8 -- .../common/system/util/StatusMappingUtil.java | 27 ++++ .../service/impl/CoreSysRoleServiceImpl.java | 35 ------ .../CeesDormitoryInfoController.java | 2 + .../contoller/CeesGroupController.java | 2 + .../contoller/CeesLocalTeacherController.java | 48 ++++--- .../modules/contoller/CeesUserController.java | 2 + .../contoller/CeesWaiTeacherController.java | 3 + .../modules/contoller/StudentController.java | 45 +++---- .../modules/entity/CeesDormitoryInfo.java | 2 +- .../org/jeecg/modules/entity/CeesGroup.java | 4 + .../modules/entity/CeesLocalTeacher.java | 6 +- .../jeecg/modules/entity/CeesWaiTeacher.java | 29 ++++- .../org/jeecg/modules/entity/Student.java | 6 +- .../modules/service/ICeesUserService.java | 6 + .../impl/CeesDormitoryInfoServiceImpl.java | 21 +--- .../service/impl/CeesGroupServiceImpl.java | 71 +++++++---- .../service/impl/CeesUserServiceImpl.java | 24 +++- .../impl/CeesWaiTeacherServiceImpl.java | 19 --- .../service/impl/NameResolverImpl.java | 35 ++++++ 22 files changed, 339 insertions(+), 180 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/NameResolverService.java delete mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/SysRoleService.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/StatusMappingUtil.java delete mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/CoreSysRoleServiceImpl.java create mode 100644 jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/NameResolverImpl.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/controller/JeecgController.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/controller/JeecgController.java index 896da92d..9992db56 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/controller/JeecgController.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/controller/JeecgController.java @@ -8,9 +8,10 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.PropertyUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.base.service.SysRoleService; +import org.jeecg.common.system.base.service.NameResolverService; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.util.JasyptUtil; +import org.jeecg.common.system.util.StatusMappingUtil; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.config.JeecgBaseConfig; @@ -45,8 +46,8 @@ public class JeecgController> { protected S service; @Resource private JeecgBaseConfig jeecgBaseConfig; - @Autowired - private SysRoleService sysRoleService; + @Resource + NameResolverService nameResolverService; /** * 导出excel @@ -57,16 +58,6 @@ public class JeecgController> { // Step.1 组装查询条件 QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap()); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String roleCode = sysRoleService.getRoleCodesByUserId(sysUser.getId()); - // 过滤选中数据 - String selections = request.getParameter("selections"); - if(roleCode.length() == 1) { - queryWrapper.eq("major_id", roleCode); - } - if (oConvertUtils.isNotEmpty(selections)) { - List selectionList = Arrays.asList(selections.split(",")); - queryWrapper.in("id",selectionList); - } // Step.2 获取导出数据 List exportList = service.list(queryWrapper); exportList.forEach(item -> { @@ -98,6 +89,106 @@ public class JeecgController> { String decryptedIdentityId = JasyptUtil.decrypt(encryptedIdentityId, "bigdata"); // 替换为你的密码 identityIdField.set(item,decryptedIdentityId); // 将解密后的值存储到 decryptedField } + + // --- 性别映射 --- + Field sexField = null; + Field sexDescField = null; + try { + sexField = item.getClass().getDeclaredField( "sex"); + sexDescField = item.getClass().getDeclaredField("sexDescription"); + } catch (NoSuchFieldException e) { + // 字段不存在 + } + if (sexField != null && sexDescField != null) { + sexField.setAccessible(true); // 确保可以访问私有字段 + sexDescField.setAccessible(true); // 确保可以访问私有字段 + Integer sex = (Integer) sexField.get(item); + sexDescField.set(item, StatusMappingUtil.mapSex(sex)); + } + // --- 车辆状态映射 --- + Field carStatusField = null; + Field carStatusDescField = null; + try { + carStatusField = item.getClass().getDeclaredField( "carStatus"); + carStatusDescField = item.getClass().getDeclaredField("carStatusDescription"); + } catch (NoSuchFieldException e) { + // 字段不存在 + } + if (carStatusField != null && carStatusDescField != null) { + carStatusField.setAccessible(true); // 确保可以访问私有字段 + carStatusDescField.setAccessible(true); // 确保可以访问私有字段 + Integer carStatus = (Integer) sexField.get(item); + carStatusDescField.set(item, StatusMappingUtil.mapCarStatus(carStatus)); + } + // --- 住宿状态映射 --- + + Field dormStatusField = null; + Field dormStatusDescField = null; + try { + dormStatusField = item.getClass().getDeclaredField( "dormitoryStatus"); + dormStatusDescField = item.getClass().getDeclaredField("dormitoryStatusDescription"); + } catch (NoSuchFieldException e) { + // 字段不存在 + } + if (dormStatusField != null && dormStatusDescField != null) { + dormStatusField.setAccessible(true); // 确保可以访问私有字段 + dormStatusDescField.setAccessible(true); // 确保可以访问私有字段 + Integer dormitoryStatus = (Integer) sexField.get(item); + dormStatusDescField.set(item, StatusMappingUtil.mapDormitoryStatus(dormitoryStatus)); + } + // --- 住宿状态映射 --- + + Field statusField = null; + Field statusDescField = null; + try { + statusField = item.getClass().getDeclaredField( "status"); + statusDescField = item.getClass().getDeclaredField("statusDescription"); + } catch (NoSuchFieldException e) { + // 字段不存在 + } + if (statusField != null && statusDescField != null) { + statusField.setAccessible(true); // 确保可以访问私有字段 + statusDescField.setAccessible(true); // 确保可以访问私有字段 + Integer status = (Integer) statusField.get(item); + statusDescField.set(item, StatusMappingUtil.mapStatus(status)); + } + + // --- 宿舍名称映射 --- + Field dormitoryIdField = null; + Field dormitoryNameField = null; + try { + dormitoryIdField = item.getClass().getDeclaredField("dormitoryId"); + dormitoryNameField = item.getClass().getDeclaredField("dormitoryName"); + } catch (NoSuchFieldException e) { + // 字段不存在 + } + if (dormitoryIdField != null && dormitoryNameField != null) { + dormitoryIdField.setAccessible(true); + dormitoryNameField.setAccessible(true); + String dormitoryId = (String) dormitoryIdField.get(item); + //你需要实现这个方法:根据 dormitoryId 查 dormitoryName + String dormitoryName = nameResolverService.getDormitoryName(dormitoryId); + dormitoryNameField.set(item, dormitoryName); + } + + // --- 组名称映射 --- + Field groupIdField = null; + Field groupNameField = null; + try { + groupIdField = item.getClass().getDeclaredField("groupId"); + groupNameField = item.getClass().getDeclaredField("groupName"); + } catch (NoSuchFieldException e) { + // 字段不存在 + } + if (groupIdField != null && groupNameField != null) { + groupIdField.setAccessible(true); + groupNameField.setAccessible(true); + String groupId = (String) groupIdField.get(item); + //你需要实现这个方法:根据 groupId 查 groupName + String groupName = nameResolverService.getGroupName(groupId); + groupNameField.set(item, groupName); + } + } catch (IllegalAccessException e) { throw new RuntimeException(e); } @@ -115,6 +206,7 @@ public class JeecgController> { mv.addObject(NormalExcelConstants.DATA_LIST, exportList); return mv; } + /** * 根据每页sheet数量导出多sheet * diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/NameResolverService.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/NameResolverService.java new file mode 100644 index 00000000..bfa87e7a --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/NameResolverService.java @@ -0,0 +1,6 @@ +package org.jeecg.common.system.base.service; + +public interface NameResolverService { + String getDormitoryName(String dormitoryId); + String getGroupName(String groupId); +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/SysRoleService.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/SysRoleService.java deleted file mode 100644 index c0ee1b91..00000000 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/service/SysRoleService.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.jeecg.common.system.base.service; - -public interface SysRoleService { - /** - * 根据用户ID获取角色编码集合 - */ - String getRoleCodesByUserId(String userId); -} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/StatusMappingUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/StatusMappingUtil.java new file mode 100644 index 00000000..b3a8780e --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/StatusMappingUtil.java @@ -0,0 +1,27 @@ +package org.jeecg.common.system.util; + +public class StatusMappingUtil { + + // 性别映射 + public static String mapSex(Integer sex) { + if (sex == null) return "未知"; + return sex == 0 ? "男" : "女"; + } + + // 车辆状态映射 + public static String mapCarStatus(Integer carStatus) { + if (carStatus == null) return "未知"; + return carStatus == 1 ? "是" : "否"; + } + + // 住宿状态映射 + public static String mapDormitoryStatus(Integer dormitoryStatus) { + if (dormitoryStatus == null) return "未知"; + return dormitoryStatus == 1 ? "是" : "否"; + } + // 住宿状态映射 + public static String mapStatus(Integer status) { + if (status == null) return ""; + return status == 0 ? "已报到" : "未报到"; + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/CoreSysRoleServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/CoreSysRoleServiceImpl.java deleted file mode 100644 index 8540ce67..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/CoreSysRoleServiceImpl.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.jeecg.modules.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.extern.slf4j.Slf4j; -import org.jeecg.common.system.base.service.SysRoleService; -import org.jeecg.modules.system.entity.SysRole; -import org.jeecg.modules.system.entity.SysUserRole; -import org.jeecg.modules.system.mapper.SysRoleMapper; -import org.jeecg.modules.system.mapper.SysUserRoleMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -@Slf4j -@Service -public class CoreSysRoleServiceImpl extends ServiceImpl implements SysRoleService { - @Autowired - private SysUserRoleMapper sysUserRoleMapper; - @Autowired - private SysRoleMapper sysRoleMapper; - @Override - public String getRoleCodesByUserId(String userId) { - - LambdaQueryWrapper queryUserRole = new LambdaQueryWrapper<>(); - queryUserRole.eq(SysUserRole::getUserId, userId); - SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole); - String roleId = sysUserRole.getRoleId(); - //获取对应角色数据 - LambdaQueryWrapper queryRole = new LambdaQueryWrapper<>(); - queryRole.eq(SysRole::getId, roleId); - SysRole sysRole = sysRoleMapper.selectOne(queryRole); - String roleCode = sysRole.getRoleCode(); - return roleCode; - } -} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesDormitoryInfoController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesDormitoryInfoController.java index 2b95e2a0..81c02098 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesDormitoryInfoController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesDormitoryInfoController.java @@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j; import net.sf.json.JSON; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.aspect.annotation.PermissionData; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.entity.CeesDormitoryInfo; @@ -57,6 +58,7 @@ public class CeesDormitoryInfoController extends JeecgController> queryPageList(CeesDormitoryInfo ceesDormitoryInfo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesGroupController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesGroupController.java index ab3c4013..519ac5d4 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesGroupController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesGroupController.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.aspect.annotation.PermissionData; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.entity.CeesGroup; @@ -48,6 +49,7 @@ public class CeesGroupController extends JeecgController> queryPageList(CeesGroup ceesGroup, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java index 0c8d20a1..f9027f58 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java @@ -12,10 +12,12 @@ import net.sf.json.JSONObject; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.aspect.annotation.PermissionData; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.entity.CeesLocalTeacher; +import org.jeecg.modules.entity.CeesUser; import org.jeecg.modules.entity.CeesWaiTeacher; import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.mapper.CeesLocalTeacherMapper; @@ -75,33 +77,12 @@ public class CeesLocalTeacherController extends JeecgController> queryPageList(CeesLocalTeacher ceesLocalTeacher, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { - - //用于对应角色查询数据 - LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 当前用户id - String userId=user.getId(); - //查询当前用户的角色 - LambdaQueryWrapper queryUserRole = new LambdaQueryWrapper<>(); - queryUserRole.eq(SysUserRole::getUserId, userId); - SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole); - String roleId = sysUserRole.getRoleId(); - //获取对应角色数据 - LambdaQueryWrapper queryRole = new LambdaQueryWrapper<>(); - queryRole.eq(SysRole::getId, roleId); - SysRole sysRole = sysRoleMapper.selectOne(queryRole); - String roleCode = sysRole.getRoleCode(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesLocalTeacher, req.getParameterMap()); - - //待规范条件 - if(roleCode.length() == 1) { - queryWrapper.eq("major_id", roleCode); - - } - Page page = new Page(pageNo, pageSize); IPage pageList = ceesLocalTeacherService.page(page, queryWrapper); pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId()))); @@ -163,9 +144,17 @@ public class CeesLocalTeacherController extends JeecgController> queryPageList(CeesUser ceesUser, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesUser, req.getParameterMap()); Page page = new Page<>(pageNo, pageSize); diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java index 521dd716..14ba6c14 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java @@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.aspect.annotation.PermissionData; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.entity.CeesDormitoryInfo; import org.jeecg.modules.entity.CeesUser; @@ -104,6 +105,7 @@ public class CeesWaiTeacherController extends JeecgController> queryPageList(CeesWaiTeacher ceesWaiTeacher, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @@ -271,6 +273,7 @@ public class CeesWaiTeacherController extends JeecgController //@AutoLog(value = "研究生表-分页列表查询") @ApiOperation(value="研究生表-分页列表查询", notes="研究生表-分页列表查询") @GetMapping(value = "/list") + @PermissionData(pageComponent = "cees/student/StudentList") public Result> queryPageList(Student student, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { - //用于对应角色查询数据 - LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 当前用户id - String userId=user.getId(); - //查询当前用户的角色 - LambdaQueryWrapper queryUserRole = new LambdaQueryWrapper<>(); - queryUserRole.eq(SysUserRole::getUserId, userId); - SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole); - String roleId = sysUserRole.getRoleId(); - //获取对应角色数据 - LambdaQueryWrapper queryRole = new LambdaQueryWrapper<>(); - queryRole.eq(SysRole::getId, roleId); - SysRole sysRole = sysRoleMapper.selectOne(queryRole); - String roleCode = sysRole.getRoleCode(); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(student, req.getParameterMap()); - //待规范条件 - if(roleCode.length() == 1) { - queryWrapper.eq("major_id", roleCode); - - } - Page page = new Page(pageNo, pageSize); IPage pageList = studentService.page(page, queryWrapper); pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId()))); @@ -147,7 +128,16 @@ public class StudentController extends JeecgController // 3. 如果找到关联用户,删除用户记录 if (student != null && student.getUserId() != null) { - ceesUserService.removeById(student.getUserId()); + String userResult = ceesUserService.removeByUserId(student.getUserId()); + if ("true".equals(userResult)) { + studentService.removeById(id); + return Result.OK("数据删除成功!"); + } else if ("null".equals(userResult)) { + studentService.removeById(id); + return Result.OK("数据删除成功!"); + } else { + return Result.error("数据删除失败!"); + } } // 1. 删除学生记录 studentService.removeById(id); @@ -178,10 +168,14 @@ public class StudentController extends JeecgController .collect(Collectors.toList()); if (!userIds.isEmpty()) { - ceesUserService.removeByIds(userIds); + boolean result = ceesUserService.removeBatchByUserIds(userIds); + if (result) { + // 2. 批量删除学生记录 + studentService.removeByIds(studentIds); + } else { + return Result.error("数据删除失败"); + } } - // 2. 批量删除学生记录 - studentService.removeByIds(studentIds); return Result.OK("批量删除成功!"); } /** @@ -219,6 +213,7 @@ public class StudentController extends JeecgController * @param student */ @RequestMapping(value = "/exportXls") + @PermissionData(pageComponent = "cees/student/StudentList") public ModelAndView exportXls(HttpServletRequest request, Student student) { return super.exportXls(request, student, Student.class, "研究生表"); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesDormitoryInfo.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesDormitoryInfo.java index a701040c..24180b4e 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesDormitoryInfo.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesDormitoryInfo.java @@ -81,5 +81,5 @@ public class CeesDormitoryInfo implements Serializable { private String majorIdDescription; @Excel(name = "住宿人员", width = 15) @TableField(exist = false) - private String dormitorydata; + private String rowUser; } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesGroup.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesGroup.java index 047576db..42c240f5 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesGroup.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesGroup.java @@ -1,6 +1,7 @@ package org.jeecg.modules.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -64,4 +65,7 @@ public class CeesGroup implements Serializable { @Excel(name = "评卷地点", width = 15) @ApiModelProperty(value = "评卷地点") private String markingLocation; + @Excel(name = "住宿人员", width = 15) + @TableField(exist = false) + private String rowUser; } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesLocalTeacher.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesLocalTeacher.java index 630c93f0..3d42322e 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesLocalTeacher.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesLocalTeacher.java @@ -91,9 +91,13 @@ public class CeesLocalTeacher implements Serializable { @ApiModelProperty(value = "手机号") private String phone; /**组id*/ - @Excel(name = "组id", width = 15) +// @Excel(name = "组id", width = 15) @ApiModelProperty(value = "组id") private String groupId; + @Excel(name = "所属组名", width = 15) + @ApiModelProperty(value = "组id") + @TableField(exist = false) + private String groupName; /**使用次数*/ @Excel(name = "使用次数", width = 15) @ApiModelProperty(value = "使用次数") diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java index 96965a18..c4925d5b 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java @@ -119,28 +119,38 @@ public class CeesWaiTeacher implements Serializable { @ApiModelProperty(value = "车牌号") private String carNumber; /**性别*/ - @Excel(name = "性别", width = 15) +// @Excel(name = "性别", width = 15,type = 10) @ApiModelProperty(value = "性别 0男/1女") private Integer sex; + @Excel(name = "性别", width = 15) + @ApiModelProperty(value = "性别 0男/1女") + @TableField(exist = false) + private String sexDescription; /**年龄*/ @Excel(name = "年龄", width = 15) @ApiModelProperty(value = "年龄") private Integer age; /**车辆是否入校*/ - @Excel(name = "车辆是否入校", width = 15) +// @Excel(name = "车辆是否入校", width = 15,type = 10) @ApiModelProperty(value = "车辆是否入校") private Integer carStatus; + @Excel(name = "车辆是否入校", width = 15) + @TableField(exist = false) + private String carStatusDescription; /**宿舍信息*/ - @Excel(name = "宿舍信息", width = 15) @ApiModelProperty(value = "宿舍信息") private String dormitoryId; + @Excel(name = "宿舍信息", width = 15) @ApiModelProperty(value = "宿舍信息") @TableField(exist = false) private String dormitoryName; /**是否住宿*/ - @Excel(name = "是否住宿", width = 15) +// @Excel(name = "是否住宿", width = 15, type = 10) @ApiModelProperty(value = "是否住宿") private Integer dormitoryStatus; + @Excel(name = "是否住宿", width = 15) + @TableField(exist = false) + private String dormitoryStatusDescription; /**开户所在地*/ @Excel(name = "开户所在地", width = 15) @ApiModelProperty(value = "开户所在地") @@ -150,15 +160,22 @@ public class CeesWaiTeacher implements Serializable { @ApiModelProperty(value = "开户行") private String bankName; /**组id*/ - @Excel(name = "组id", width = 15) +// @Excel(name = "组id", width = 15) @ApiModelProperty(value = "组id") private String groupId; + @Excel(name = "所属组名", width = 15) + @ApiModelProperty(value = "组id") + @TableField(exist = false) + private String groupName; /**使用次数*/ @Excel(name = "使用次数", width = 15) @ApiModelProperty(value = "使用次数") private Integer numberuse; /**状态:0已报道 1未报到*/ - @Excel(name = "状态:0已报道 1未报到", width = 15) @ApiModelProperty(value = "状态:0已报道 1未报到") private Integer status; + @Excel(name = "状态:0已报道 1未报到", width = 15) + @ApiModelProperty(value = "状态:0已报道 1未报到") + @TableField(exist = false) + private String statusDescription; } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Student.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Student.java index ee2f4075..f7996376 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Student.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Student.java @@ -95,9 +95,13 @@ public class Student implements Serializable { @ApiModelProperty(value = "是否第一次阅卷") private Integer checked; /**组id*/ - @Excel(name = "组id", width = 15) +// @Excel(name = "组id", width = 15) @ApiModelProperty(value = "组id") private String groupId; + @Excel(name = "所属组名", width = 15) + @ApiModelProperty(value = "组id") + @TableField(exist = false) + private String groupName; /**使用次数*/ @Excel(name = "使用次数", width = 15) @ApiModelProperty(value = "使用次数") diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesUserService.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesUserService.java index 3677c149..e4b4d09a 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesUserService.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesUserService.java @@ -6,6 +6,8 @@ import org.jeecg.modules.entity.CeesAdminInfo; import org.jeecg.modules.entity.CeesUser; import org.jeecg.modules.entity.dto.CreateAccountDto; +import java.util.List; + /** * @Description: CEES用户表 * @Author: jeecg-boot @@ -33,4 +35,8 @@ public interface ICeesUserService extends IService { Result getH5Time(); Result checkUserByEmployeeCode(CeesAdminInfo ceesAdminInfo); + + String removeByUserId(String userId); + + boolean removeBatchByUserIds(List userIds); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java index 11f54677..e3607691 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java @@ -83,26 +83,7 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl queryPageList(CeesDormitoryInfo ceesDormitoryInfo, Integer pageNo, Integer pageSize, HttpServletRequest req) { - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String userId = user.getId(); - - // 查询当前用户的角色 - LambdaQueryWrapper queryUserRole = new LambdaQueryWrapper<>(); - queryUserRole.eq(SysUserRole::getUserId, userId); - SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole); - String roleId = sysUserRole.getRoleId(); - - // 获取对应角色数据 - LambdaQueryWrapper queryRole = new LambdaQueryWrapper<>(); - queryRole.eq(SysRole::getId, roleId); - SysRole sysRole = sysRoleMapper.selectOne(queryRole); - String roleCode = sysRole.getRoleCode(); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesDormitoryInfo, req.getParameterMap()); - if (roleCode.length() == 1) { - queryWrapper.eq("major_id", roleCode); - } - Page page = new Page<>(pageNo, pageSize); IPage pageList = page(page, queryWrapper); // 设置学科描述 @@ -110,7 +91,7 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl residentNames = getResidentNamesByDormitoryId(e.getId()); - e.setDormitorydata(String.join(",", residentNames)); // 将人员名称列表转为逗号分隔的字符串 + e.setRowUser(String.join(",", residentNames)); // 将人员名称列表转为逗号分隔的字符串 return e; }); return pageList; diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesGroupServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesGroupServiceImpl.java index 857265f7..a3cf74ff 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesGroupServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesGroupServiceImpl.java @@ -8,12 +8,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; -import org.jeecg.modules.entity.CeesDormitoryInfo; -import org.jeecg.modules.entity.CeesGroup; +import org.jeecg.modules.entity.*; import org.jeecg.modules.entity.dto.UpdateGroupUserDto; import org.jeecg.modules.entity.vo.CeesUserGroupVo; import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.mapper.CeesGroupMapper; +import org.jeecg.modules.mapper.CeesLocalTeacherMapper; +import org.jeecg.modules.mapper.CeesWaiTeacherMapper; +import org.jeecg.modules.mapper.StudentMapper; import org.jeecg.modules.service.ICeesGroupService; import org.jeecg.modules.system.entity.SysRole; import org.jeecg.modules.system.entity.SysUserRole; @@ -24,6 +26,10 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @Description: 分组表 @@ -37,9 +43,11 @@ public class CeesGroupServiceImpl extends ServiceImpl queryPageList(CeesGroup ceesGroup, Integer pageNo, Integer pageSize, HttpServletRequest req) { - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String userId = user.getId(); - - // 查询当前用户的角色 - LambdaQueryWrapper queryUserRole = new LambdaQueryWrapper<>(); - queryUserRole.eq(SysUserRole::getUserId, userId); - SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole); - String roleId = sysUserRole.getRoleId(); - - // 获取对应角色数据 - LambdaQueryWrapper queryRole = new LambdaQueryWrapper<>(); - queryRole.eq(SysRole::getId, roleId); - SysRole sysRole = sysRoleMapper.selectOne(queryRole); - String roleCode = sysRole.getRoleCode(); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesGroup, req.getParameterMap()); - if (roleCode.length() == 1) { - queryWrapper.eq("major_id", roleCode); - } - Page page = new Page<>(pageNo, pageSize); IPage pageList = page(page, queryWrapper); + pageList.convert(e -> { + // 根据宿舍ID查询住宿人员名称 + List residentNames = getResidentNamesByGroupId(e.getId()); + e.setRowUser(String.join(",", residentNames)); // 将人员名称列表转为逗号分隔的字符串 + return e; + }); return pageList; } + + private List getResidentNamesByGroupId(String groupId) { + //外校老师 + LambdaQueryWrapper queryWaiTeacher = new LambdaQueryWrapper<>(); + queryWaiTeacher.eq(CeesWaiTeacher::getGroupId, groupId) + .select(CeesWaiTeacher::getUserName); // 只查询用户名字段 + List residentsWaiTeacher = ceesWaiTeacherMapper.selectList(queryWaiTeacher); + //本校老师 + LambdaQueryWrapper queryLocalTeacher = new LambdaQueryWrapper<>(); + queryLocalTeacher.eq(CeesLocalTeacher::getGroupId, groupId) + .select(CeesLocalTeacher::getUserName); // 只查询用户名字段 + List residentsLocalTeacher = ceesLocalTeacherMapper.selectList(queryLocalTeacher); + //研究生 + LambdaQueryWrapper queryStudent = new LambdaQueryWrapper<>(); + queryStudent.eq(Student::getGroupId, groupId) + .select(Student::getUserName); // 只查询用户名字段 + List residentsStudent = studentMapper.selectList(queryStudent); + // 合并三个来源的用户名并去重 + List allUserNames = Stream.concat( + residentsWaiTeacher.stream().map(CeesWaiTeacher::getUserName), + Stream.concat( + residentsLocalTeacher.stream().map(CeesLocalTeacher::getUserName), + residentsStudent.stream().map(Student::getUserName) + ) + ) + .filter(Objects::nonNull) // 过滤null值 + .collect(Collectors.toList()); + + return allUserNames; + } } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java index fef7cebe..7d382280 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesUserServiceImpl.java @@ -20,7 +20,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.time.LocalDateTime; import java.util.*; /** @@ -451,6 +450,29 @@ public class CeesUserServiceImpl extends ServiceImpl i } } + @Override + public String removeByUserId(String userId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CeesUser::getUserId, userId); + CeesUser ceesUser = ceesUserMapper.selectOne(queryWrapper); + if(ceesUser == null) { + return "null"; + } + int affectedRows = ceesUserMapper.delete(queryWrapper); + if (affectedRows > 0) { + return "true"; + }else{ + return "false"; + } + } + + @Override + public boolean removeBatchByUserIds(List userIds) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(CeesUser::getUserId, userIds); + return this.remove(wrapper); + } + // 获取生成规则---用户前端获取rule public Result getGenerativeRules() { diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java index 038516fb..6984450b 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesWaiTeacherServiceImpl.java @@ -115,26 +115,7 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl queryPageList(CeesWaiTeacher ceesWaiTeacher, Integer pageNo, Integer pageSize, HttpServletRequest req) { - //用于对应角色查询数据 - LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); - // 当前用户id - String userId=user.getId(); - //查询当前用户的角色 - LambdaQueryWrapper queryUserRole = new LambdaQueryWrapper<>(); - queryUserRole.eq(SysUserRole::getUserId, userId); - SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole); - String roleId = sysUserRole.getRoleId(); - //获取对应角色数据 - LambdaQueryWrapper queryRole = new LambdaQueryWrapper<>(); - queryRole.eq(SysRole::getId, roleId); - SysRole sysRole = sysRoleMapper.selectOne(queryRole); - String roleCode = sysRole.getRoleCode(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap()); - //待规范条件 - if(roleCode.length() == 1) { - queryWrapper.eq("major_id", roleCode); - - } Page page = new Page<>(pageNo, pageSize); IPage pageList = page(page, queryWrapper); diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/NameResolverImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/NameResolverImpl.java new file mode 100644 index 00000000..eff1bc5d --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/NameResolverImpl.java @@ -0,0 +1,35 @@ +package org.jeecg.modules.service.impl; + +import lombok.RequiredArgsConstructor; +import org.jeecg.common.system.base.service.NameResolverService; +import org.jeecg.modules.entity.CeesDormitoryInfo; +import org.jeecg.modules.entity.CeesGroup; +import org.jeecg.modules.service.ICeesDormitoryInfoService; +import org.jeecg.modules.service.ICeesGroupService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class NameResolverImpl implements NameResolverService { + + @Autowired + private ICeesDormitoryInfoService dormitoryService; + + @Autowired + private ICeesGroupService groupService; + + @Override + public String getDormitoryName(String dormitoryId) { + if (dormitoryId == null) return ""; + CeesDormitoryInfo dorm = dormitoryService.getById(dormitoryId); + return dorm != null ? dorm.getDormitory() : ""; + } + + @Override + public String getGroupName(String groupId) { + if (groupId == null) return ""; + CeesGroup group = groupService.getById(groupId); + return group != null ? group.getName() : ""; + } +}