diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java index 55e71079..8372d9d5 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java @@ -224,7 +224,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { msgEventInfoList.addAll(temp); } } - + msgEventInfoList = msgEventInfoList.stream().sorted(Comparator.comparing(MsgEventInfo::getSendTime,Comparator.reverseOrder())).collect(Collectors.toList()); @@ -548,9 +548,18 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { @Override public boolean lookEvent(List ids) { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.in(PqsEventdetail::getEventdetailIndex, ids).set(PqsEventdetail::getLookFlag, DataStateEnum.ENABLE.getCode()); - pqsEventdetailService.update(updateWrapper); + if(ids.size()>1000){ + List> eventIds = CollUtil.split(ids,1000); + for(List needIds : eventIds){ + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(PqsEventdetail::getEventdetailIndex, needIds).set(PqsEventdetail::getLookFlag, DataStateEnum.ENABLE.getCode()); + pqsEventdetailService.update(updateWrapper); + } + }else { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(PqsEventdetail::getEventdetailIndex, ids).set(PqsEventdetail::getLookFlag, DataStateEnum.ENABLE.getCode()); + pqsEventdetailService.update(updateWrapper); + } return true; } @@ -691,6 +700,12 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { @Override @Transactional(rollbackFor = Exception.class) public boolean msgHandle(MessageEventFeedbackParam messageEventFeedbackParam) { + + PqsEventdetail pqsEventdetail = pqsEventdetailService.lambdaQuery().eq(PqsEventdetail::getEventdetailIndex,messageEventFeedbackParam.getEventIndex()).one(); + if(Objects.isNull(pqsEventdetail.getLookFlag())|| pqsEventdetail.getLookFlag() == 0){ + throw new BusinessException(CommonResponseEnum.FAIL,"当前事件暂未处理,请先处理!"); + } + MessageEventFeedback messageEventFeedback = messageEventFeedbackService.lambdaQuery().eq(MessageEventFeedback::getEventIndex, messageEventFeedbackParam.getEventIndex()).one(); if (Objects.nonNull(messageEventFeedback)) { throw new BusinessException(CommonResponseEnum.FAIL,"请勿重复处理!"); @@ -700,7 +715,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { po.setId(IdUtil.simpleUUID()); messageEventFeedbackService.save(po); pqsEventdetailService.lambdaUpdate().set(PqsEventdetail::getNoticeFlag,DataStateEnum.ENABLE.getCode()).eq(PqsEventdetail::getEventdetailIndex,messageEventFeedbackParam.getEventIndex()).update(); - msgEventInfoService.lambdaUpdate().set(MsgEventInfo::getIsHandle,DataStateEnum.ENABLE.getCode()).eq(MsgEventInfo::getEventIndex,messageEventFeedbackParam.getEventIndex()); + msgEventInfoService.lambdaUpdate().set(MsgEventInfo::getIsHandle,DataStateEnum.ENABLE.getCode()).eq(MsgEventInfo::getEventIndex,messageEventFeedbackParam.getEventIndex()).update(); return true; }