fix bug 41705,41704 资料网元项目水平越权
This commit is contained in:
+7
@@ -209,6 +209,7 @@ public class PayMemberProjectController extends JeroController<PayMemberProject,
|
||||
@ApiOperation(value = "会员项目表-编辑", notes = "会员项目表-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<?> 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<PayMemberProject,
|
||||
@ApiOperation(value = "会员项目表-通过id删除", notes = "会员项目表-通过id删除")
|
||||
@GetMapping(value = "/delete")
|
||||
public Result<?> 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<PayMemberProject,
|
||||
@ApiOperation(value = "会员项目表-批量删除", notes = "会员项目表-批量删除")
|
||||
@GetMapping(value = "/deleteBatch")
|
||||
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
|
||||
List<String> 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<PayMemberProject,
|
||||
@ApiOperation(value = "会员项目表-通过id查询", notes = "会员项目表-通过id查询")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<?> queryById(@RequestParam(name = "id") String id) {
|
||||
memberProjectService.check(id,"memberProject:search");
|
||||
PayMemberProject payMemberProject = memberProjectService.queryById(id);
|
||||
if (payMemberProject == null) {
|
||||
return Result.error("未找到对应数据");
|
||||
|
||||
+40
-3
@@ -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<PayMemberP
|
||||
@Resource
|
||||
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||
@Resource
|
||||
private IPayMemberProjectService memberProjectService;
|
||||
@Resource
|
||||
private IPayContactsManagementService contactsManagementService;
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Resource
|
||||
private RolePermissionService rolePermissionService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
@@ -67,8 +74,12 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<PayMemberProjectSubitem> 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<PayMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
|
||||
IPage<PayMemberProjectSubitem> pageList = memberProjectSubitemService.page(page, queryWrapper);
|
||||
IPage<PayMemberProjectSubitem> pageList = memberProjectSubitemService.getPage(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
@@ -123,6 +134,7 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
|
||||
@ApiOperation(value = "会员项目成员表-添加", notes = "会员项目成员表-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> 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<PayMemberP
|
||||
@ApiOperation(value = "会员项目成员表-编辑", notes = "会员项目成员表-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<?> 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<PayMemberP
|
||||
@ApiOperation(value = "会员项目成员表-通过id删除", notes = "会员项目成员表-通过id删除")
|
||||
@GetMapping(value = "/delete")
|
||||
public Result<?> 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<PayMemberP
|
||||
@ApiOperation(value = "会员项目成员表-批量删除", notes = "会员项目成员表-批量删除")
|
||||
@GetMapping(value = "/deleteBatch")
|
||||
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
|
||||
this.memberProjectSubitemService.deleteByIds(Arrays.asList(ids.split(",")));
|
||||
List<String> 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<PayMemberP
|
||||
@ApiOperation(value = "会员项目成员表-通过id查询", notes = "会员项目成员表-通过id查询")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<?> 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<PayMemberP
|
||||
@AutoLog(value = "会员项目成员表-导出数据")
|
||||
@RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, PayMemberProjectSubitem payMemberProjectSubitem) {
|
||||
return super.exportXls(request, payMemberProjectSubitem, PayMemberProjectSubitem.class, "会员项目成员表");
|
||||
QueryWrapper<PayMemberProjectSubitem> 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<PayMemberProjectSubitem> page = new Page<>(-1, -1);
|
||||
IPage<PayMemberProjectSubitem> getPage = memberProjectSubitemService.getPage(page, queryWrapper);
|
||||
List<PayMemberProjectSubitem> pageList = getPage.getRecords();
|
||||
// 过滤选中数据
|
||||
String selections = request.getParameter("selections");
|
||||
if (oConvertUtils.isNotEmpty(selections)) {
|
||||
List<String> 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<PayMemberP
|
||||
if (StringUtils.isBlank(projectId)) {
|
||||
throw new JeroBootException("项目id为空");
|
||||
}
|
||||
memberProjectService.check(projectId,"safeguardMember:import");
|
||||
List<Object> excelData = super.getExcelData(request, PayMemberProjectSubitemExcel.class);
|
||||
if (excelData.isEmpty()) {
|
||||
throw new JeroBootException("导入数据为空,请填写数据之后重新导入!");
|
||||
|
||||
+2
@@ -17,4 +17,6 @@ import org.apache.ibatis.annotations.Param;
|
||||
public interface PayMemberProjectSubitemMapper extends BaseMapper<PayMemberProjectSubitem> {
|
||||
|
||||
IPage<PayMemberProjectSubitem> queryPageListCompany(Page<PayMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
|
||||
IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
}
|
||||
|
||||
+5
@@ -39,4 +39,9 @@
|
||||
left join pay_member_project pmp on pmps.project_id = pmp.id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPage" resultMap="MemberProjectSubitemResultMap">
|
||||
select pmps.* from pay_member_project_subitem pmps left join pay_member_project pmp on pmps.project_id = pmp.id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
+2
@@ -83,4 +83,6 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
||||
* @Exception
|
||||
*/
|
||||
IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page, String companyId, String projectName, String projectType, Integer pack, String packYear);
|
||||
|
||||
void check(String projectId, String permission);
|
||||
}
|
||||
|
||||
+4
@@ -69,4 +69,8 @@ public interface IPayMemberProjectSubitemService extends IService<PayMemberProje
|
||||
List<PayMemberProjectSubitem> queryList();
|
||||
|
||||
IPage<PayMemberProjectSubitem> queryPageListCompany(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
|
||||
IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
|
||||
void check(String subitemId, String permission);
|
||||
}
|
||||
|
||||
+16
@@ -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<PayMemberProject
|
||||
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||
@Autowired
|
||||
private IPayIncomeContractService payIncomeContractService;
|
||||
@Resource
|
||||
private RolePermissionService rolePermissionService;
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -153,4 +159,14 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
|
||||
public IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> 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("权限不足");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+24
@@ -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<PayMember
|
||||
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
|
||||
@Resource
|
||||
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||
@Resource
|
||||
private RolePermissionService rolePermissionService;
|
||||
@Resource
|
||||
private PayMemberProjectMapper payMemberProjectMapper;
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@@ -446,4 +454,20 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
public IPage<PayMemberProjectSubitem> queryPageListCompany(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
||||
return baseMapper.queryPageListCompany(page,queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> 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("权限不足");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user