fix bug 41839 标协会员项目-会议维护--会议负责人应该只能看自己的

This commit is contained in:
lijiarao
2021-11-02 10:27:00 +08:00
parent b83070ce3b
commit 98ea94ddb9
6 changed files with 59 additions and 4 deletions
@@ -1,5 +1,6 @@
package com.jero.meeting.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
@@ -46,6 +47,8 @@ import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.PublishReminderVO;
import com.jero.meeting.vo.UploadFileVO;
import com.jero.meeting.vo.excel.*;
import com.jero.member.entity.TbMemberProject;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.project.entity.PayWorkingGroup;
@@ -113,6 +116,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
private Environment env;
@Resource
private RolePermissionService rolePermissionService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
/**
* 新增会议
@@ -200,6 +205,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
@Override
public void addStandards(PayMeeting payMeeting) {
TbMemberProject memberProject = getTbMemberProject();
payMeeting.setStandardsId(memberProject.getId());
saveOrUpdate(payMeeting);
List<PayMeetingHotelContacts> hotelContactsList = payMeeting.getHotelContactsList();
//如果酒店联系人列表不为空,就新增
@@ -316,6 +323,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
for (PayMeetingHotelContacts hotelContacts : hotelContactsList) {
ValidUtil.validate(hotelContacts, StandardMeeting.class);
}
TbMemberProject memberProject = getTbMemberProject();
payMeeting.setSituationId(memberProject.getId());
break;
case MeetingCommon.INTERNATIONAL_MEETING:
ValidUtil.validate(payMeetingVO, InternationalMeeting.class);
@@ -359,6 +368,25 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
return payMeeting;
}
@NotNull
private TbMemberProject getTbMemberProject() {
LambdaQueryWrapper<TbMemberProject> wrapper1 = new LambdaQueryWrapper<>();
int year = DateUtil.year(new Date());
String projectName = year + "年标协会员";
wrapper1.eq(TbMemberProject::getProjectName, projectName);
TbMemberProject memberProject = tbMemberProjectService.getOne(wrapper1);
if (memberProject == null) {
memberProject = new TbMemberProject();
memberProject.setProjectName(projectName);
memberProject.setYear(String.valueOf(year));
memberProject.setDirectorId("e9ca23d68d884d4ebb19d07889727dae");
memberProject.setDirectorName("BXGLZ");
tbMemberProjectService.save(memberProject);
}
return memberProject;
}
/**
* 通过id删除
*/
@@ -566,7 +594,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)){
permission = "workGroupMeeting:search";
}else if (meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)){
permission = "standardMeeting:search";
permission = "standardsMeeting:search";
}else if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
permission = "internalMeeting:search";
}else if (meetingType.equals(MeetingCommon.OTHER_MEETING_INT)){
@@ -576,7 +604,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
}
}
if (StringUtils.isNotBlank(permission)) {
if (!Objects.equals(permission,"standardMeeting:search") && !rolePermissionService.getRolePermission(permission)) {
if (!rolePermissionService.getRolePermission(permission)) {
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)) {
queryWrapper.and(
a -> a.eq("pwg.principal_id_a", sysUser.getId())
@@ -49,7 +49,7 @@ public class TbMemberProjectController extends JeroController<TbMemberProject, I
HttpServletRequest req) {
QueryWrapper<TbMemberProject> queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProject, req.getParameterMap());
Page<TbMemberProject> page = new Page<>(pageNo, pageSize);
IPage<TbMemberProject> pageList = tbMemberProjectService.page(page, queryWrapper);
IPage<TbMemberProject> pageList = tbMemberProjectService.queryPageList(page, queryWrapper);
return Result.OK(pageList);
}
@@ -2,7 +2,9 @@ package com.jero.member.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.project.entity.PayWorkGroupSubletStatistics;
import com.jero.statistics.entity.AllProjectStatistics;
@@ -14,9 +16,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 标协会员项目表
* @Author: jero-boot
* @Date: 2021-09-01
* @Date: 2021-09-01
* @Version: V1.0
*/
public interface TbMemberProjectMapper extends BaseMapper<TbMemberProject> {
IPage<TbMemberProject> queryPageList(Page<TbMemberProject> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProject> queryWrapper);
}
@@ -9,4 +9,10 @@
<result column="update_time" property="updateTime" />
<result column="project_name" property="projectName" />
</resultMap>
<select id="queryPageList" resultMap="TbMemberProjectResultMap">
select tmp.* from tb_member_project tmp
left join pay_meeting pm on tmp.id = pm.standards_id
${ew.customSqlSegment}
</select>
</mapper>
@@ -1,5 +1,6 @@
package com.jero.member.service;
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.member.entity.TbMemberProject;
@@ -65,4 +66,5 @@ public interface ITbMemberProjectService extends IService<TbMemberProject> {
*/
List<TbMemberProject> queryList();
IPage<TbMemberProject> queryPageList(Page<TbMemberProject> page, QueryWrapper<TbMemberProject> queryWrapper);
}
@@ -1,7 +1,10 @@
package com.jero.member.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.RolePermissionService;
import com.jero.common.system.vo.LoginUser;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
@@ -14,12 +17,14 @@ import com.jero.member.mapper.TbMemberProjectMapper;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.jero.project.entity.PayWorkGroupSubletStatistics;
import com.jero.statistics.entity.AllProjectStatistics;
import com.jero.statistics.entity.AllProjectStatisticsSearch;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -42,6 +47,8 @@ public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMappe
@Autowired
private IPayIncomeContractService payIncomeContractService;
@Resource
private RolePermissionService rolePermissionService;
/**
* 保存
*/
@@ -102,4 +109,13 @@ public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMappe
return list();
}
@Override
public IPage<TbMemberProject> queryPageList(Page<TbMemberProject> page, QueryWrapper<TbMemberProject> queryWrapper) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("stardsMember:search")) {
queryWrapper.eq("pm.director_id",sysUser.getId());
}
return baseMapper.queryPageList(page,queryWrapper);
}
}