diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java index 9a4e4083..3fd89d39 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java @@ -8,8 +8,10 @@ import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.DictPoint; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.RolePermissionService; import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.LoginUser; import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; @@ -19,7 +21,9 @@ import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; import com.jero.meeting.common.MeetingCommon; +import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeetingSituation; +import com.jero.meeting.service.IPayMeetingService; import com.jero.meeting.service.IPayMeetingSituationService; import com.jero.meeting.vo.*; import com.jero.meeting.vo.excel.*; @@ -28,6 +32,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; @@ -56,11 +61,15 @@ public class CommitteeMeetingSituationController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap()); String particularYear = req.getParameter("particularYear"); - if (StringUtils.isNotBlank(particularYear)){ - queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear); + if (StringUtils.isNotBlank(particularYear)) { + queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )", particularYear); } + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission("committeeMeetingSituation:search")) { + queryWrapper.eq("pm.director_id", loginUser.getId()); + } + queryWrapper.eq("pm.meeting_type",MEETING_TYPE); Page page = new Page<>(pageNo, pageSize); IPage pageList = payMeetingSituationService.pageListContract(page, queryWrapper); List situationList = pageList.getRecords(); for (PayMeetingSituation meetingSituation : situationList) { Integer payMode = meetingSituation.getPayMode(); //汇款并且缴费凭证为空 - if (Objects.equals(payMode,1) && StringUtils.isBlank(meetingSituation.getPaymentRecord())){ + if (Objects.equals(payMode, 1) && StringUtils.isBlank(meetingSituation.getPaymentRecord())) { meetingSituation.setIdentification(PayProjectCommon.YES); - }else { + } else { meetingSituation.setIdentification(PayProjectCommon.NO); } } @@ -100,6 +118,11 @@ public class CommitteeMeetingSituationController extends JeroController add(@RequestBody PayMeetingSituation payMeetingSituation) { + String meetingId = payMeetingSituation.getMeetingId(); + PayMeeting payMeeting = meetingService.getById(meetingId); + if (!Objects.equals(payMeeting.getMeetingType(),MEETING_TYPE)){ + throw new JeroBootException("数据权限不足"); + } payMeetingSituationService.add(payMeetingSituation); return Result.OK("添加成功!"); } @@ -124,6 +147,7 @@ public class CommitteeMeetingSituationController extends JeroController edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) { + payMeetingSituationService.checkCan(payMeetingSituationVO.getId(),MEETING_TYPE); payMeetingSituationService.editById(payMeetingSituationVO); return Result.OK("编辑成功!"); } @@ -136,6 +160,7 @@ public class CommitteeMeetingSituationController extends JeroController delete(@RequestParam(name = "id") String id) { + payMeetingSituationService.checkCan(id,MEETING_TYPE); payMeetingSituationService.deleteById(id); return Result.OK("删除成功!"); } @@ -148,7 +173,11 @@ public class CommitteeMeetingSituationController extends JeroController deleteBatch(@RequestParam(name = "ids") String ids) { - this.payMeetingSituationService.deleteByIds(Arrays.asList(ids.split(","))); + List stringList = Arrays.asList(ids.split(",")); + for (String id : stringList) { + payMeetingSituationService.checkCan(id,MEETING_TYPE); + } + this.payMeetingSituationService.deleteByIds(stringList); return Result.OK("批量删除成功!"); } @@ -160,6 +189,7 @@ public class CommitteeMeetingSituationController extends JeroController queryById(@RequestParam(name = "id") String id) { + payMeetingSituationService.checkCan(id,MEETING_TYPE); PayMeetingSituation payMeetingSituation = payMeetingSituationService.queryById(id); if (payMeetingSituation == null) { return Result.error("未找到对应数据"); @@ -188,6 +218,11 @@ public class CommitteeMeetingSituationController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap()); List pageList = payMeetingSituationService.list(queryWrapper); // 过滤选中数据 @@ -277,6 +312,10 @@ public class CommitteeMeetingSituationController extends JeroController addDock(@RequestBody AddDockVO addDockVO) { + List meetingSituationIds = addDockVO.getMeetingSituationIds(); + for (String id : meetingSituationIds) { + payMeetingSituationService.checkCan(id,MEETING_TYPE); + } payMeetingSituationService.addDock(addDockVO); return Result.OK("设置对接人成功!"); } @@ -289,6 +328,7 @@ public class CommitteeMeetingSituationController extends JeroController check(@RequestBody CheckVO checkVO) { + payMeetingSituationService.checkCan(checkVO.getId(),MEETING_TYPE); payMeetingSituationService.check(checkVO); return Result.OK("审核成功!"); } @@ -301,6 +341,7 @@ public class CommitteeMeetingSituationController extends JeroController checkRegister(@RequestBody CheckVO checkVO) { + payMeetingSituationService.checkCan(checkVO.getId(),MEETING_TYPE); payMeetingSituationService.checkRegister(checkVO); return Result.OK("审核成功!"); } @@ -316,6 +357,4 @@ public class CommitteeMeetingSituationController extends JeroController select distinct pms.* from pay_meeting_situation pms + left join pay_meeting pm on pms.meeting_id = pm.id left JOIN pay_payment_record ppr ON ppr.project_id = pms.id ${ew.customSqlSegment} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java index 423fadb8..5d437106 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java @@ -4,6 +4,7 @@ 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.api.vo.Result; +import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.entity.PayMeetingSituation; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.meeting.vo.*; @@ -77,4 +78,6 @@ public interface IPayMeetingSituationService extends IService pageListContract(Page page, QueryWrapper queryWrapper); + + void checkCan(String situationId, Integer meetingCommon); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index a1a6bf28..410a11ad 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -15,6 +15,7 @@ import com.jero.common.dto.SendMessageDTO; import com.jero.common.enums.CompanyMessageEnums; import com.jero.common.enums.ManagementMessageEnums; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.RolePermissionService; import com.jero.common.service.SendMessageService; import com.jero.common.service.ContractCreateProjectSendMessageService; import com.jero.common.system.api.ISysBaseAPI; @@ -113,6 +114,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl meetingSituationIds = addDockVO.getMeetingSituationIds(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String sysUserId = sysUser.getId(); for (String meetingSituationId : meetingSituationIds) { PayMeetingSituation payMeetingSituation = getById(meetingSituationId); String meetingId = payMeetingSituation.getMeetingId(); PayMeeting payMeeting = meetingService.getById(meetingId); Integer meetingType = payMeeting.getMeetingType(); + //只有会议负责人可以设置对接人 + if (!payMeeting.getDirectorId().equals(sysUserId)) { + throw new JeroBootException("只有会议负责人可以设置对接人"); + } //只有国际研讨会议可以设置对接人 if (!meetingType.equals(Integer.parseInt(MeetingCommon.INTERNATIONAL_MEETING))) { throw new JeroBootException("只有国际研讨会议可以设置对接人"); @@ -1161,4 +1176,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl