From 33f65f4162ff3f922358757ed81ec0ae35f40b94 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 29 Oct 2021 14:46:06 +0800 Subject: [PATCH] =?UTF-8?q?fix=20bug=2041705,41704=20=E8=B5=84=E6=96=99?= =?UTF-8?q?=E7=BD=91=E5=85=83=E9=A1=B9=E7=9B=AE=E6=B0=B4=E5=B9=B3=E8=B6=8A?= =?UTF-8?q?=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayMemberProjectController.java | 7 +++ .../PayMemberProjectSubitemController.java | 43 +++++++++++++++++-- .../mapper/PayMemberProjectSubitemMapper.java | 2 + .../xml/PayMemberProjectSubitemMapper.xml | 5 +++ .../service/IPayMemberProjectService.java | 2 + .../IPayMemberProjectSubitemService.java | 4 ++ .../impl/PayPayMemberProjectServiceImpl.java | 16 +++++++ ...PayPayMemberProjectSubitemServiceImpl.java | 24 +++++++++++ 8 files changed, 100 insertions(+), 3 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectController.java index 4af63b3b..ca18a8db 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectController.java @@ -209,6 +209,7 @@ public class PayMemberProjectController extends JeroController edit(@Validated @RequestBody PayMemberProject payMemberProject) { + memberProjectService.check(payMemberProject.getId(),"memberProject:edit"); memberProjectService.editById(payMemberProject); return Result.OK("编辑成功!"); } @@ -221,6 +222,7 @@ public class PayMemberProjectController extends JeroController delete(@RequestParam(name = "id") String id) { + memberProjectService.check(id,"memberProject:delete"); memberProjectService.deleteById(id); return Result.OK("删除成功!"); } @@ -233,6 +235,10 @@ public class PayMemberProjectController extends JeroController deleteBatch(@RequestParam(name = "ids") String ids) { + List idList = Arrays.asList(ids.split(",")); + for (String id : idList) { + memberProjectService.check(id,"memberProject:batchDel"); + } this.memberProjectService.deleteByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } @@ -244,6 +250,7 @@ public class PayMemberProjectController extends JeroController queryById(@RequestParam(name = "id") String id) { + memberProjectService.check(id,"memberProject:search"); PayMemberProject payMemberProject = memberProjectService.queryById(id); if (payMemberProject == null) { return Result.error("未找到对应数据"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java index 2a9e9d16..aabaaef5 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java @@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletResponse; import cn.hutool.core.util.NumberUtil; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.RolePermissionService; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.DictModel; @@ -19,7 +20,9 @@ import com.jero.common.util.oConvertUtils; import com.jero.company.entity.PayCompanyManagement; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayContactsManagementService; +import com.jero.member.entity.PayMemberProject; import com.jero.member.entity.PayMemberProjectSubitem; +import com.jero.member.service.IPayMemberProjectService; import com.jero.member.service.IPayMemberProjectSubitemService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -52,9 +55,13 @@ public class PayMemberProjectSubitemController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(payMemberProjectSubitem, req.getParameterMap()); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission("safeguardMember:search")) { + queryWrapper.eq("pmp.director_id",sysUser.getId()); + } Page page = new Page<>(pageNo, pageSize); - IPage pageList = memberProjectSubitemService.page(page, queryWrapper); + IPage pageList = memberProjectSubitemService.getPage(page, queryWrapper); return Result.OK(pageList); } @@ -123,6 +134,7 @@ public class PayMemberProjectSubitemController extends JeroController add(@RequestBody PayMemberProjectSubitem payMemberProjectSubitem) { + memberProjectService.check(payMemberProjectSubitem.getProjectId(),"safeguardMember:add"); ValidUtil.validate(payMemberProjectSubitem); memberProjectSubitemService.add(payMemberProjectSubitem); return Result.OK("添加成功!"); @@ -136,6 +148,7 @@ public class PayMemberProjectSubitemController extends JeroController edit(@RequestBody PayMemberProjectSubitem payMemberProjectSubitem) { + memberProjectSubitemService.check(payMemberProjectSubitem.getId(),"safeguardMember:edit"); ValidUtil.validate(payMemberProjectSubitem); memberProjectSubitemService.editById(payMemberProjectSubitem); return Result.OK("编辑成功!"); @@ -149,6 +162,7 @@ public class PayMemberProjectSubitemController extends JeroController delete(@RequestParam(name = "id") String id) { + memberProjectSubitemService.check(id,"safeguardMember:delete"); memberProjectSubitemService.deleteById(id); return Result.OK("删除成功!"); } @@ -161,7 +175,11 @@ public class PayMemberProjectSubitemController extends JeroController deleteBatch(@RequestParam(name = "ids") String ids) { - this.memberProjectSubitemService.deleteByIds(Arrays.asList(ids.split(","))); + List idList = Arrays.asList(ids.split(",")); + for (String id : idList) { + memberProjectSubitemService.check(id,"safeguardMember:batchDel"); + } + this.memberProjectSubitemService.deleteByIds(idList); return Result.OK("批量删除成功!"); } @@ -172,6 +190,7 @@ public class PayMemberProjectSubitemController extends JeroController queryById(@RequestParam(name = "id") String id) { + memberProjectSubitemService.check(id,"safeguardMember:search"); PayMemberProjectSubitem payMemberProjectSubitem = memberProjectSubitemService.queryById(id); if (payMemberProjectSubitem == null) { return Result.error("未找到对应数据"); @@ -186,7 +205,24 @@ public class PayMemberProjectSubitemController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(payMemberProjectSubitem, request.getParameterMap()); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission("safeguardMember:export")) { + queryWrapper.eq("pmp.director_id",sysUser.getId()); + } + Page page = new Page<>(-1, -1); + IPage getPage = memberProjectSubitemService.getPage(page, queryWrapper); + List pageList = getPage.getRecords(); + // 过滤选中数据 + String selections = request.getParameter("selections"); + if (oConvertUtils.isNotEmpty(selections)) { + List selectionList = Arrays.asList(selections.split(",")); + pageList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList()); + } + if (pageList.isEmpty()) { + throw new JeroBootException("没有数据"); + } + return super.exportListXls(pageList, PayMemberProjectSubitem.class, "会员项目成员表"); } /** @@ -211,6 +247,7 @@ public class PayMemberProjectSubitemController extends JeroController excelData = super.getExcelData(request, PayMemberProjectSubitemExcel.class); if (excelData.isEmpty()) { throw new JeroBootException("导入数据为空,请填写数据之后重新导入!"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java index a24092ad..e1db65e8 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java @@ -17,4 +17,6 @@ import org.apache.ibatis.annotations.Param; public interface PayMemberProjectSubitemMapper extends BaseMapper { IPage queryPageListCompany(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + IPage getPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml index 40fbac66..a175efac 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml @@ -39,4 +39,9 @@ left join pay_member_project pmp on pmps.project_id = pmp.id ${ew.customSqlSegment} + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java index ccdd2b24..3a2091f9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java @@ -83,4 +83,6 @@ public interface IPayMemberProjectService extends IService { * @Exception */ IPage queryListByCompany(Page page, String companyId, String projectName, String projectType, Integer pack, String packYear); + + void check(String projectId, String permission); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java index af90036b..06e34c8d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java @@ -69,4 +69,8 @@ public interface IPayMemberProjectSubitemService extends IService queryList(); IPage queryPageListCompany(Page page, QueryWrapper queryWrapper); + + IPage getPage(Page page, QueryWrapper queryWrapper); + + void check(String subitemId, String permission); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java index 1281c286..30fbb184 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.RolePermissionService; +import com.jero.common.system.vo.LoginUser; import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.contract.service.IPayIncomeContractService; import com.jero.member.entity.PayMemberProject; @@ -15,9 +17,11 @@ import com.jero.member.service.IPayMemberProjectSubitemService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.mapper.SysUserMapper; import org.apache.commons.collections.CollectionUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; @@ -43,6 +47,8 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl queryListByCompany(Page page, String companyId, String projectName, String projectType, Integer pack, String packYear) { return payMemberProjectMapper.queryListByCompany(page,companyId, projectName,projectType, pack, packYear); } + @Override + public void check(String projectId,String permission){ + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission(permission)) { + PayMemberProject payMemberProject = payMemberProjectMapper.selectById(projectId); + if (!Objects.equals(payMemberProject.getDirectorId(),sysUser.getId())){ + throw new JeroBootException("权限不足"); + } + } + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java index 1c831d2b..0948ebe4 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java @@ -9,12 +9,15 @@ import com.jero.common.common.ProjectCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.service.ContractCreateProjectSendMessageService; import com.jero.common.service.ProjectDetailService; +import com.jero.common.service.RolePermissionService; +import com.jero.common.system.vo.LoginUser; import com.jero.common.util.ValidUtil; import com.jero.common.vo.ProjectStatusVO; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayContactsManagementService; import com.jero.contract.entity.PayIncomeContract; import com.jero.contract.service.IPayIncomeContractService; +import com.jero.member.mapper.PayMemberProjectMapper; import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.project.common.PayProjectCommon; @@ -30,6 +33,7 @@ import com.jero.member.service.IPayMemberProjectSubitemService; import com.jero.valid.group.ChargeNotice; import com.jero.valid.group.Contract; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -69,6 +73,10 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl queryPageListCompany(Page page, QueryWrapper queryWrapper) { return baseMapper.queryPageListCompany(page,queryWrapper); } + + @Override + public IPage getPage(Page page, QueryWrapper queryWrapper) { + return baseMapper.getPage(page, queryWrapper); + } + @Override + public void check(String subitemId,String permission){ + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission(permission)) { + PayMemberProjectSubitem payMemberProjectSubitem = baseMapper.selectById(subitemId); + PayMemberProject payMemberProject = payMemberProjectMapper.selectById(payMemberProjectSubitem.getProjectId()); + if (!Objects.equals(payMemberProject.getDirectorId(),sysUser.getId())){ + throw new JeroBootException("权限不足"); + } + } + } }