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())