diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/RolePermissionService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/RolePermissionService.java new file mode 100644 index 00000000..f1aa949d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/RolePermissionService.java @@ -0,0 +1,6 @@ +package com.jero.modules.laws.club.service; + +public interface RolePermissionService { + + boolean getRolePermission(String permission); +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java index 68071d69..8f9b8680 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java @@ -3,12 +3,13 @@ package com.jero.modules.laws.club.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.DictModel; -import com.jero.common.system.vo.LoginUser; import com.jero.modules.laws.club.entity.LawsClubJoinTeam; import com.jero.modules.laws.club.mapper.LawsClubJoinTeamMapper; import com.jero.modules.laws.club.service.ILawsClubJoinTeamService; +import com.jero.modules.laws.club.service.RolePermissionService; import com.jero.modules.laws.club.utils.ExcelUtil; import com.jero.modules.laws.club.vo.excel.LawsClubJoinTeamExcel; import com.jero.modules.system.entity.SysDepart; @@ -20,7 +21,6 @@ import com.jero.modules.tag.entity.LawsTag; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; -import org.apache.shiro.SecurityUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; import org.springframework.beans.BeanUtils; @@ -35,7 +35,6 @@ import java.io.IOException; import java.io.OutputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; @@ -58,10 +57,17 @@ public class LawsClubJoinTeamServiceImpl extends ServiceImpl importExcel(HttpServletRequest request) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - System.out.println(loginUser); + // 先验证权限, 只有有社团管理新增或修改的其中之一即可 + boolean result = validatingPermission(); + if (!result) { + throw new JeroBootException(ResultCommon.NO_PERMISSION); + } MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); List lawsClubJoinTeamList = new ArrayList<>(); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java index f6e51489..4f9f839f 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java @@ -3,6 +3,7 @@ package com.jero.modules.laws.club.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.DictModel; @@ -10,6 +11,7 @@ import com.jero.common.util.MessageUtils; import com.jero.modules.laws.club.entity.LawsClubMeeting; import com.jero.modules.laws.club.mapper.LawsClubMeetingMapper; import com.jero.modules.laws.club.service.ILawsClubMeetingService; +import com.jero.modules.laws.club.service.RolePermissionService; import com.jero.modules.laws.club.utils.ExcelUtil; import com.jero.modules.laws.club.vo.excel.LawsClubMeetingExcel; import com.jero.modules.laws.club.vo.excel.LawsClubMeetingMemberExcel; @@ -73,11 +75,18 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl importExcel(HttpServletRequest request) { + // 先验证权限, 只有有社团管理新增或修改的其中之一即可 + boolean result = validatingPermission(); + if (!result) { + throw new JeroBootException(ResultCommon.NO_PERMISSION); + } MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); List lawsClubMeetingList = new ArrayList<>(); @@ -203,7 +226,16 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl fileList = FileUnZip.readExcelFile(zipEntryName); +// List fileList = FileUnZip.readExcelFile(zipEntryName); + File zipFile = new File(zipEntryName); + List fileList = new ArrayList<>(); + if (zipFile.isDirectory()) { + File[] files = zipFile.listFiles(); + for (File fi : files) { + // 对文件进行过滤,只读取Excel文件 + fileList.add(fi); + } + } if (fileList.size() < 1) { FileUnZip.deleteDir(saveDirectory); if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){ diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java index f72610ad..821b5b9c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java @@ -3,18 +3,19 @@ package com.jero.modules.laws.club.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.DictModel; import com.jero.modules.laws.club.entity.LawsClubResearchInformation; import com.jero.modules.laws.club.mapper.LawsClubResearchInformationMapper; import com.jero.modules.laws.club.service.ILawsClubResearchInformationService; +import com.jero.modules.laws.club.service.RolePermissionService; import com.jero.modules.laws.club.utils.ExcelUtil; import com.jero.modules.laws.club.vo.excel.LawsClubResearchInformationExcel; import com.jero.modules.system.entity.SysDepart; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysDepartService; import com.jero.modules.system.service.ISysDictService; -import com.jero.modules.system.service.ISysRolePermissionService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.tag.entity.LawsTag; import lombok.SneakyThrows; @@ -58,10 +59,17 @@ public class LawsClubResearchInformationServiceImpl extends ServiceImpl importExcel(HttpServletRequest request) { + // 先验证权限, 只有有社团管理新增或修改的其中之一即可 + boolean result = validatingPermission(); + if (!result) { + throw new JeroBootException(ResultCommon.NO_PERMISSION); + } MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); List lawsClubResearchInformationList = new ArrayList<>(); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/RolePermissionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/RolePermissionServiceImpl.java new file mode 100644 index 00000000..85af61c6 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/RolePermissionServiceImpl.java @@ -0,0 +1,64 @@ +package com.jero.modules.laws.club.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.laws.club.service.RolePermissionService; +import com.jero.modules.system.entity.SysPermission; +import com.jero.modules.system.entity.SysRole; +import com.jero.modules.system.entity.SysRolePermission; +import com.jero.modules.system.service.ISysPermissionService; +import com.jero.modules.system.service.ISysRolePermissionService; +import com.jero.modules.system.service.ISysRoleService; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class RolePermissionServiceImpl implements RolePermissionService { + + @Resource + private ISysPermissionService sysPermissionService; + @Resource + private ISysRolePermissionService sysRolePermissionService; + @Resource + private ISysRoleService sysRoleService; + + public boolean getRolePermission(String permission) { + if(StringUtils.isEmpty(permission)){ + throw new JeroBootException("菜单权限编码不能为空!"); + } + LambdaQueryWrapper querySysPermission = new LambdaQueryWrapper<>(); + querySysPermission.eq(SysPermission::getPerms,permission); + List listSysPermission = sysPermissionService.list(querySysPermission); + if(CollectionUtils.isEmpty(listSysPermission)){ + throw new JeroBootException("菜单权限编码不存在!"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List list = new ArrayList<>(Arrays.asList(sysUser.getRoleIds().split(","))); + if(!CollectionUtils.isEmpty(list)){ + LambdaQueryWrapper querySysRole = new LambdaQueryWrapper<>(); + querySysRole.in(SysRole::getRoleCode,list); + List listSysRole = sysRoleService.list(querySysRole); + if(CollectionUtils.isEmpty(listSysRole)){ + return false; + } + List listRoleId = listSysRole.stream().map(SysRole::getId).collect(Collectors.toList()); + LambdaQueryWrapper querySysRolePermission = new LambdaQueryWrapper<>(); + querySysRolePermission.in(SysRolePermission::getRoleId,listRoleId); + querySysRolePermission.eq(SysRolePermission::getPermissionId,listSysPermission.get(0).getId()); + List listSysRolePermission = sysRolePermissionService.list(querySysRolePermission); + if(!CollectionUtils.isEmpty(listSysRolePermission)){ + return true; + } + } + return false; + } +}