fix 分标委会议参会人水平权限

This commit is contained in:
lijiarao
2021-10-27 18:49:25 +08:00
parent e239b4d3cc
commit b8b1d30dae
4 changed files with 77 additions and 10 deletions
@@ -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<PayMeeti
@Resource
private IPayMeetingSituationService payMeetingSituationService;
@Resource
private AuthenticationUtils authenticationUtils;
@Resource
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
@Resource
private IPayMeetingService meetingService;
@Resource
private RolePermissionService rolePermissionService;
private final Integer MEETING_TYPE = MeetingCommon.COMMITTEE_MEETING_INT;
/**
* 分页列表查询
*/
@@ -72,20 +81,29 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
String meetingId = payMeetingSituation.getMeetingId();
if (StringUtils.isBlank(meetingId)) {
throw new JeroBootException("会议id不能为空");
}
QueryWrapper<PayMeetingSituation> 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<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
List<PayMeetingSituation> 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<PayMeeti
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> 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<PayMeeti
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> 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<PayMeeti
@ApiOperation(value = "参会人员信息-通过id删除", notes = "参会人员信息-通过id删除")
@GetMapping(value = "/delete")
public Result<?> 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<PayMeeti
@ApiOperation(value = "参会人员信息-批量删除", notes = "参会人员信息-批量删除")
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
this.payMeetingSituationService.deleteByIds(Arrays.asList(ids.split(",")));
List<String> 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<PayMeeti
@ApiOperation(value = "参会人员信息-通过id查询", notes = "参会人员信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> 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<PayMeeti
@RequiresPermissions("committeeMeetingSituation:export")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeetingSituation payMeetingSituation) {
String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
if (!Objects.equals(payMeeting.getMeetingType(),MEETING_TYPE)){
throw new JeroBootException("数据权限不足");
}
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
List<PayMeetingSituation> pageList = payMeetingSituationService.list(queryWrapper);
// 过滤选中数据
@@ -277,6 +312,10 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "设置对接人", notes = "设置对接人")
@PostMapping(value = "/addDock")
public Result<?> addDock(@RequestBody AddDockVO addDockVO) {
List<String> 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<PayMeeti
@ApiOperation(value = "审核付款凭证")
@PostMapping(value = "/check")
public Result<?> 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<PayMeeti
@ApiOperation(value = "审核报名信息")
@PostMapping(value = "/checkRegister")
public Result<?> 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<PayMeeti
payMeetingSituationService.mergePayBill(mergePayBillVO);
return Result.OK("合并开票成功!");
}
}
@@ -155,6 +155,7 @@
<select id="pageListContract" resultMap="PayMeetingSituationResultMap">
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}
</select>
@@ -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<PayMeetingSituatio
void editTerminal(PayMeetingSituationVO payMeetingSituationVO);
IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper);
void checkCan(String situationId, Integer meetingCommon);
}
@@ -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<PayMeetingSituat
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
@Resource
private IPayIncomeContractService payIncomeContractService;
@Resource
private RolePermissionService rolePermissionService;
private static final String[] CAN_MODIFY_LIST = new String[]{"arrivalTime", "departureTime", "checkInHotel"};
@@ -121,6 +124,12 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/
@Override
public void add(PayMeetingSituation payMeetingSituation) {
String meetingId1 = payMeetingSituation.getMeetingId();
PayMeeting payMeeting1 = meetingService.getById(meetingId1);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!Objects.equals(payMeeting1.getDirectorId(),loginUser.getId())) {
throw new JeroBootException("只有会议负责人可以新增参会人");
}
payMeetingSituation.setStatus(MeetingSubitemCommon.STATUS_3);
//payMeetingSituation.setNeedInvoice(PayProjectCommon.NO);
payMeetingSituation.setAmountReceivable(new BigDecimal("0"));
@@ -131,7 +140,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
// 收入合同创建项目发送消息到项目负责人
if (Objects.equals(ProjectCommon.FLAG, payMeetingSituation.getFlag())) {
PayMeeting payMeeting = meetingService.getById(payMeetingSituation.getMeetingId());
PayMeeting payMeeting = meetingService.getById(meetingId1);
contractCreateProjectSendMessageService.ContractCreateProjectSendMessageService(payMeeting.getMeetingName() + "" + payMeetingSituation1.getCompanyContactName(), payMeetingSituation1.getId(), payMeeting.getDirectorId());
}
String meetingId = payMeetingSituation1.getMeetingId();
@@ -1125,11 +1134,17 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
}
String username = user.getUsername();
List<String> 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<PayMeetingSituat
return date.after(begin) && date.before(end);
}
@Override
public void checkCan(String situationId, Integer meetingCommon){
PayMeetingSituation payMeetingSituation = getById(situationId);
String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
if (!Objects.equals(payMeeting.getMeetingType(),meetingCommon)) {
throw new JeroBootException("数据权限不足");
}
}
}