子数据管理删除数据关联总数据、角色数据查询改为数据权限设置、导出数据规范化
This commit is contained in:
parent
97b3a311c4
commit
02c0c7b9fe
|
@ -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<T, S extends IService<T>> {
|
|||
protected S service;
|
||||
@Resource
|
||||
private JeecgBaseConfig jeecgBaseConfig;
|
||||
@Autowired
|
||||
private SysRoleService sysRoleService;
|
||||
@Resource
|
||||
NameResolverService nameResolverService;
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
|
@ -57,16 +58,6 @@ public class JeecgController<T, S extends IService<T>> {
|
|||
// Step.1 组装查询条件
|
||||
QueryWrapper<T> 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<String> selectionList = Arrays.asList(selections.split(","));
|
||||
queryWrapper.in("id",selectionList);
|
||||
}
|
||||
// Step.2 获取导出数据
|
||||
List<T> exportList = service.list(queryWrapper);
|
||||
exportList.forEach(item -> {
|
||||
|
@ -98,6 +89,106 @@ public class JeecgController<T, S extends IService<T>> {
|
|||
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<T, S extends IService<T>> {
|
|||
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
|
||||
return mv;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据每页sheet数量导出多sheet
|
||||
*
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
package org.jeecg.common.system.base.service;
|
||||
|
||||
public interface NameResolverService {
|
||||
String getDormitoryName(String dormitoryId);
|
||||
String getGroupName(String groupId);
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
package org.jeecg.common.system.base.service;
|
||||
|
||||
public interface SysRoleService {
|
||||
/**
|
||||
* 根据用户ID获取角色编码集合
|
||||
*/
|
||||
String getRoleCodesByUserId(String userId);
|
||||
}
|
|
@ -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 ? "已报到" : "未报到";
|
||||
}
|
||||
}
|
|
@ -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<SysRoleMapper, SysRole> implements SysRoleService {
|
||||
@Autowired
|
||||
private SysUserRoleMapper sysUserRoleMapper;
|
||||
@Autowired
|
||||
private SysRoleMapper sysRoleMapper;
|
||||
@Override
|
||||
public String getRoleCodesByUserId(String userId) {
|
||||
|
||||
LambdaQueryWrapper<SysUserRole> queryUserRole = new LambdaQueryWrapper<>();
|
||||
queryUserRole.eq(SysUserRole::getUserId, userId);
|
||||
SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole);
|
||||
String roleId = sysUserRole.getRoleId();
|
||||
//获取对应角色数据
|
||||
LambdaQueryWrapper<SysRole> queryRole = new LambdaQueryWrapper<>();
|
||||
queryRole.eq(SysRole::getId, roleId);
|
||||
SysRole sysRole = sysRoleMapper.selectOne(queryRole);
|
||||
String roleCode = sysRole.getRoleCode();
|
||||
return roleCode;
|
||||
}
|
||||
}
|
|
@ -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<CeesDormitoryIn
|
|||
//@AutoLog(value = "宿舍信息表-分页列表查询")
|
||||
@ApiOperation(value="宿舍信息表-分页列表查询", notes="宿舍信息表-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
@PermissionData(pageComponent = "cees/dormitory/CeesDormitoryInfoList")
|
||||
public Result<IPage<CeesDormitoryInfo>> queryPageList(CeesDormitoryInfo ceesDormitoryInfo,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
|
|
|
@ -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<CeesGroup, ICeesGroupSe
|
|||
//@AutoLog(value = "分组表-分页列表查询")
|
||||
@ApiOperation(value = "分组表-分页列表查询", notes = "分组表-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
@PermissionData(pageComponent = "cees/group/CeesGroupList")
|
||||
public Result<IPage<CeesGroup>> queryPageList(CeesGroup ceesGroup,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
|
|
|
@ -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<CeesLocalTeacher
|
|||
//@AutoLog(value = "本校教师表-分页列表查询")
|
||||
@ApiOperation(value="本校教师表-分页列表查询", notes="本校教师表-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
@PermissionData(pageComponent = "cees/localTeacher/CeesLocalTeacherList")
|
||||
public Result<IPage<CeesLocalTeacher>> 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<SysUserRole> queryUserRole = new LambdaQueryWrapper<>();
|
||||
queryUserRole.eq(SysUserRole::getUserId, userId);
|
||||
SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole);
|
||||
String roleId = sysUserRole.getRoleId();
|
||||
//获取对应角色数据
|
||||
LambdaQueryWrapper<SysRole> queryRole = new LambdaQueryWrapper<>();
|
||||
queryRole.eq(SysRole::getId, roleId);
|
||||
SysRole sysRole = sysRoleMapper.selectOne(queryRole);
|
||||
String roleCode = sysRole.getRoleCode();
|
||||
QueryWrapper<CeesLocalTeacher> queryWrapper = QueryGenerator.initQueryWrapper(ceesLocalTeacher, req.getParameterMap());
|
||||
|
||||
//待规范条件
|
||||
if(roleCode.length() == 1) {
|
||||
queryWrapper.eq("major_id", roleCode);
|
||||
|
||||
}
|
||||
|
||||
Page<CeesLocalTeacher> page = new Page<CeesLocalTeacher>(pageNo, pageSize);
|
||||
IPage<CeesLocalTeacher> pageList = ceesLocalTeacherService.page(page, queryWrapper);
|
||||
pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId())));
|
||||
|
@ -163,9 +144,17 @@ public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher
|
|||
CeesLocalTeacher teacher = ceesLocalTeacherMapper.selectOne(teacherQuery);
|
||||
|
||||
if (teacher != null && teacher.getUserId() != null) {
|
||||
ceesUserService.removeById(teacher.getUserId());
|
||||
}
|
||||
String userResult = ceesUserService.removeByUserId(teacher.getUserId());
|
||||
if ("true".equals(userResult)) {
|
||||
ceesLocalTeacherService.removeById(id);
|
||||
return Result.OK("数据删除成功!");
|
||||
} else if ("null".equals(userResult)) {
|
||||
ceesLocalTeacherService.removeById(id);
|
||||
return Result.OK("数据删除成功!");
|
||||
} else {
|
||||
return Result.error("数据删除失败!");
|
||||
}
|
||||
}
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
|
@ -196,10 +185,14 @@ public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher
|
|||
.collect(Collectors.toList());
|
||||
|
||||
if (!userIds.isEmpty()) {
|
||||
ceesUserService.removeByIds(userIds);
|
||||
}
|
||||
boolean result = ceesUserService.removeBatchByUserIds(userIds);
|
||||
if (result) {
|
||||
// 2. 批量删除 ceesLocalTeacher
|
||||
ceesLocalTeacherService.removeByIds(idList);
|
||||
}else {
|
||||
return Result.error("数据删除失败");
|
||||
}
|
||||
}
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
|
@ -227,6 +220,7 @@ public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher
|
|||
* @param ceesLocalTeacher
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
@PermissionData(pageComponent = "cees/localTeacher/CeesLocalTeacherList")
|
||||
public ModelAndView exportXls(HttpServletRequest request, CeesLocalTeacher ceesLocalTeacher) {
|
||||
return super.exportXls(request, ceesLocalTeacher, CeesLocalTeacher.class, "本校教师表");
|
||||
}
|
||||
|
|
|
@ -11,6 +11,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.common.system.query.QueryGenerator;
|
||||
import org.jeecg.modules.entity.CeesDormitoryInfo;
|
||||
|
@ -70,6 +71,7 @@ public class CeesUserController extends JeecgController<CeesUser, ICeesUserServi
|
|||
//@AutoLog(value = "CEES用户表-分页列表查询")
|
||||
@ApiOperation(value = "CEES用户表-分页列表查询", notes = "CEES用户表-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
@PermissionData(pageComponent = "cees/user/CeesUserList")
|
||||
public Result<IPage<CeesUser>> queryPageList(CeesUser ceesUser, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
|
||||
QueryWrapper<CeesUser> queryWrapper = QueryGenerator.initQueryWrapper(ceesUser, req.getParameterMap());
|
||||
Page<CeesUser> page = new Page<>(pageNo, pageSize);
|
||||
|
|
|
@ -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<CeesWaiTeacher, IC
|
|||
//@AutoLog(value = "外校老师管理-分页列表查询")
|
||||
@ApiOperation(value="外校老师管理-分页列表查询", notes="外校老师管理-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
@PermissionData(pageComponent = "cees/waiTeacher/CeesWaiTeacherList")
|
||||
public Result<IPage<CeesWaiTeacher>> 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<CeesWaiTeacher, IC
|
|||
* @param ceesWaiTeacher
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
@PermissionData(pageComponent = "cees/waiTeacher/CeesWaiTeacherList")
|
||||
public ModelAndView exportXls(HttpServletRequest request, CeesWaiTeacher ceesWaiTeacher) {
|
||||
return super.exportXls(request, ceesWaiTeacher, CeesWaiTeacher.class, "外校老师管理");
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
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;
|
||||
|
@ -69,32 +70,12 @@ public class StudentController extends JeecgController<Student, IStudentService>
|
|||
//@AutoLog(value = "研究生表-分页列表查询")
|
||||
@ApiOperation(value="研究生表-分页列表查询", notes="研究生表-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
@PermissionData(pageComponent = "cees/student/StudentList")
|
||||
public Result<IPage<Student>> 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<SysUserRole> queryUserRole = new LambdaQueryWrapper<>();
|
||||
queryUserRole.eq(SysUserRole::getUserId, userId);
|
||||
SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole);
|
||||
String roleId = sysUserRole.getRoleId();
|
||||
//获取对应角色数据
|
||||
LambdaQueryWrapper<SysRole> queryRole = new LambdaQueryWrapper<>();
|
||||
queryRole.eq(SysRole::getId, roleId);
|
||||
SysRole sysRole = sysRoleMapper.selectOne(queryRole);
|
||||
String roleCode = sysRole.getRoleCode();
|
||||
|
||||
QueryWrapper<Student> queryWrapper = QueryGenerator.initQueryWrapper(student, req.getParameterMap());
|
||||
//待规范条件
|
||||
if(roleCode.length() == 1) {
|
||||
queryWrapper.eq("major_id", roleCode);
|
||||
|
||||
}
|
||||
|
||||
Page<Student> page = new Page<Student>(pageNo, pageSize);
|
||||
IPage<Student> pageList = studentService.page(page, queryWrapper);
|
||||
pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId())));
|
||||
|
@ -147,7 +128,16 @@ public class StudentController extends JeecgController<Student, IStudentService>
|
|||
|
||||
// 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<Student, IStudentService>
|
|||
.collect(Collectors.toList());
|
||||
|
||||
if (!userIds.isEmpty()) {
|
||||
ceesUserService.removeByIds(userIds);
|
||||
}
|
||||
boolean result = ceesUserService.removeBatchByUserIds(userIds);
|
||||
if (result) {
|
||||
// 2. 批量删除学生记录
|
||||
studentService.removeByIds(studentIds);
|
||||
} else {
|
||||
return Result.error("数据删除失败");
|
||||
}
|
||||
}
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
/**
|
||||
|
@ -219,6 +213,7 @@ public class StudentController extends JeecgController<Student, IStudentService>
|
|||
* @param student
|
||||
*/
|
||||
@RequestMapping(value = "/exportXls")
|
||||
@PermissionData(pageComponent = "cees/student/StudentList")
|
||||
public ModelAndView exportXls(HttpServletRequest request, Student student) {
|
||||
return super.exportXls(request, student, Student.class, "研究生表");
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 = "使用次数")
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 = "使用次数")
|
||||
|
|
|
@ -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<CeesUser> {
|
|||
Result<?> getH5Time();
|
||||
|
||||
Result<?> checkUserByEmployeeCode(CeesAdminInfo ceesAdminInfo);
|
||||
|
||||
String removeByUserId(String userId);
|
||||
|
||||
boolean removeBatchByUserIds(List<String> userIds);
|
||||
}
|
||||
|
|
|
@ -83,26 +83,7 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl<CeesDormitoryInfoM
|
|||
|
||||
@Override
|
||||
public IPage<CeesDormitoryInfo> queryPageList(CeesDormitoryInfo ceesDormitoryInfo, Integer pageNo, Integer pageSize, HttpServletRequest req) {
|
||||
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = user.getId();
|
||||
|
||||
// 查询当前用户的角色
|
||||
LambdaQueryWrapper<SysUserRole> queryUserRole = new LambdaQueryWrapper<>();
|
||||
queryUserRole.eq(SysUserRole::getUserId, userId);
|
||||
SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole);
|
||||
String roleId = sysUserRole.getRoleId();
|
||||
|
||||
// 获取对应角色数据
|
||||
LambdaQueryWrapper<SysRole> queryRole = new LambdaQueryWrapper<>();
|
||||
queryRole.eq(SysRole::getId, roleId);
|
||||
SysRole sysRole = sysRoleMapper.selectOne(queryRole);
|
||||
String roleCode = sysRole.getRoleCode();
|
||||
|
||||
QueryWrapper<CeesDormitoryInfo> queryWrapper = QueryGenerator.initQueryWrapper(ceesDormitoryInfo, req.getParameterMap());
|
||||
if (roleCode.length() == 1) {
|
||||
queryWrapper.eq("major_id", roleCode);
|
||||
}
|
||||
|
||||
Page<CeesDormitoryInfo> page = new Page<>(pageNo, pageSize);
|
||||
IPage<CeesDormitoryInfo> pageList = page(page, queryWrapper);
|
||||
// 设置学科描述
|
||||
|
@ -110,7 +91,7 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl<CeesDormitoryInfoM
|
|||
e.setMajorIdDescription(MajorEnum.describe(e.getMajorId())); // 设置学科描述
|
||||
// 根据宿舍ID查询住宿人员名称
|
||||
List<String> residentNames = getResidentNamesByDormitoryId(e.getId());
|
||||
e.setDormitorydata(String.join(",", residentNames)); // 将人员名称列表转为逗号分隔的字符串
|
||||
e.setRowUser(String.join(",", residentNames)); // 将人员名称列表转为逗号分隔的字符串
|
||||
return e;
|
||||
});
|
||||
return pageList;
|
||||
|
|
|
@ -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<CeesGroupMapper, CeesGroup
|
|||
@Resource
|
||||
private CeesGroupMapper ceesGroupMapper;
|
||||
@Resource
|
||||
SysRoleMapper sysRoleMapper;
|
||||
CeesWaiTeacherMapper ceesWaiTeacherMapper;
|
||||
@Resource
|
||||
SysUserRoleMapper sysUserRoleMapper;
|
||||
CeesLocalTeacherMapper ceesLocalTeacherMapper;
|
||||
@Resource
|
||||
StudentMapper studentMapper;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -64,28 +72,45 @@ public class CeesGroupServiceImpl extends ServiceImpl<CeesGroupMapper, CeesGroup
|
|||
|
||||
@Override
|
||||
public IPage<CeesGroup> queryPageList(CeesGroup ceesGroup, Integer pageNo, Integer pageSize, HttpServletRequest req) {
|
||||
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = user.getId();
|
||||
|
||||
// 查询当前用户的角色
|
||||
LambdaQueryWrapper<SysUserRole> queryUserRole = new LambdaQueryWrapper<>();
|
||||
queryUserRole.eq(SysUserRole::getUserId, userId);
|
||||
SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole);
|
||||
String roleId = sysUserRole.getRoleId();
|
||||
|
||||
// 获取对应角色数据
|
||||
LambdaQueryWrapper<SysRole> queryRole = new LambdaQueryWrapper<>();
|
||||
queryRole.eq(SysRole::getId, roleId);
|
||||
SysRole sysRole = sysRoleMapper.selectOne(queryRole);
|
||||
String roleCode = sysRole.getRoleCode();
|
||||
|
||||
QueryWrapper<CeesGroup> queryWrapper = QueryGenerator.initQueryWrapper(ceesGroup, req.getParameterMap());
|
||||
if (roleCode.length() == 1) {
|
||||
queryWrapper.eq("major_id", roleCode);
|
||||
}
|
||||
|
||||
Page<CeesGroup> page = new Page<>(pageNo, pageSize);
|
||||
IPage<CeesGroup> pageList = page(page, queryWrapper);
|
||||
pageList.convert(e -> {
|
||||
// 根据宿舍ID查询住宿人员名称
|
||||
List<String> residentNames = getResidentNamesByGroupId(e.getId());
|
||||
e.setRowUser(String.join(",", residentNames)); // 将人员名称列表转为逗号分隔的字符串
|
||||
return e;
|
||||
});
|
||||
return pageList;
|
||||
}
|
||||
|
||||
private List<String> getResidentNamesByGroupId(String groupId) {
|
||||
//外校老师
|
||||
LambdaQueryWrapper<CeesWaiTeacher> queryWaiTeacher = new LambdaQueryWrapper<>();
|
||||
queryWaiTeacher.eq(CeesWaiTeacher::getGroupId, groupId)
|
||||
.select(CeesWaiTeacher::getUserName); // 只查询用户名字段
|
||||
List<CeesWaiTeacher> residentsWaiTeacher = ceesWaiTeacherMapper.selectList(queryWaiTeacher);
|
||||
//本校老师
|
||||
LambdaQueryWrapper<CeesLocalTeacher> queryLocalTeacher = new LambdaQueryWrapper<>();
|
||||
queryLocalTeacher.eq(CeesLocalTeacher::getGroupId, groupId)
|
||||
.select(CeesLocalTeacher::getUserName); // 只查询用户名字段
|
||||
List<CeesLocalTeacher> residentsLocalTeacher = ceesLocalTeacherMapper.selectList(queryLocalTeacher);
|
||||
//研究生
|
||||
LambdaQueryWrapper<Student> queryStudent = new LambdaQueryWrapper<>();
|
||||
queryStudent.eq(Student::getGroupId, groupId)
|
||||
.select(Student::getUserName); // 只查询用户名字段
|
||||
List<Student> residentsStudent = studentMapper.selectList(queryStudent);
|
||||
// 合并三个来源的用户名并去重
|
||||
List<String> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<CeesUserMapper, CeesUser> i
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String removeByUserId(String userId) {
|
||||
LambdaQueryWrapper<CeesUser> 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<String> userIds) {
|
||||
LambdaQueryWrapper<CeesUser> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(CeesUser::getUserId, userIds);
|
||||
return this.remove(wrapper);
|
||||
}
|
||||
|
||||
|
||||
// 获取生成规则---用户前端获取rule
|
||||
public Result<?> getGenerativeRules() {
|
||||
|
|
|
@ -115,26 +115,7 @@ public class CeesWaiTeacherServiceImpl extends ServiceImpl<CeesWaiTeacherMapper,
|
|||
@Override
|
||||
public IPage<CeesWaiTeacher> queryPageList(CeesWaiTeacher ceesWaiTeacher, Integer pageNo, Integer pageSize, HttpServletRequest req) {
|
||||
|
||||
//用于对应角色查询数据
|
||||
LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
// 当前用户id
|
||||
String userId=user.getId();
|
||||
//查询当前用户的角色
|
||||
LambdaQueryWrapper<SysUserRole> queryUserRole = new LambdaQueryWrapper<>();
|
||||
queryUserRole.eq(SysUserRole::getUserId, userId);
|
||||
SysUserRole sysUserRole = sysUserRoleMapper.selectOne(queryUserRole);
|
||||
String roleId = sysUserRole.getRoleId();
|
||||
//获取对应角色数据
|
||||
LambdaQueryWrapper<SysRole> queryRole = new LambdaQueryWrapper<>();
|
||||
queryRole.eq(SysRole::getId, roleId);
|
||||
SysRole sysRole = sysRoleMapper.selectOne(queryRole);
|
||||
String roleCode = sysRole.getRoleCode();
|
||||
QueryWrapper<CeesWaiTeacher> queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap());
|
||||
//待规范条件
|
||||
if(roleCode.length() == 1) {
|
||||
queryWrapper.eq("major_id", roleCode);
|
||||
|
||||
}
|
||||
|
||||
Page<CeesWaiTeacher> page = new Page<>(pageNo, pageSize);
|
||||
IPage<CeesWaiTeacher> pageList = page(page, queryWrapper);
|
||||
|
|
|
@ -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() : "";
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue