This commit is contained in:
zt
2025-04-16 17:31:18 +08:00
parent 57e0061da9
commit 48d38d1962
52 changed files with 927 additions and 88 deletions

View File

@ -4,6 +4,11 @@ import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.zbf.bo.ZbfMessageQueryBo;
import com.ruoyi.zbf.domain.ZbfMessage;
import com.ruoyi.zbf.domain.dto.ZbfMessageDetailDTO;
import com.ruoyi.zbf.domain.dto.ZbfMessageMyListDTO;
import com.ruoyi.zbf.domain.vo.ZbfMessageCountVO;
import com.ruoyi.zbf.domain.vo.ZbfMessageDetailVO;
import com.ruoyi.zbf.domain.vo.ZbfMessageVO;
import java.util.Collection;
import java.util.List;
@ -68,5 +73,18 @@ public interface IZbfMessageService extends IServicePlus<ZbfMessage> {
*/
void operationBatch(String recipientType,Long recipientId,List<Long> tableIds,String tableName);
/**
* 总包方的未读消息统计
*/
ZbfMessageCountVO countUnread();
/**
* 总包方消息列表
*/
TableDataInfo<ZbfMessageVO> queryMyPageList(ZbfMessageMyListDTO dto);
/**
* 消息详情列表
*/
TableDataInfo<ZbfMessageDetailVO> queryDetailPageList(ZbfMessageDetailDTO dto);
}

View File

@ -8,18 +8,28 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BgtMessageType;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.zbf.bo.ZbfMessageQueryBo;
import com.ruoyi.zbf.domain.ZbfMessage;
import com.ruoyi.zbf.domain.dto.ZbfMessageDetailDTO;
import com.ruoyi.zbf.domain.dto.ZbfMessageMyListDTO;
import com.ruoyi.zbf.domain.vo.ZbfMessageCountVO;
import com.ruoyi.zbf.domain.vo.ZbfMessageDetailVO;
import com.ruoyi.zbf.domain.vo.ZbfMessageVO;
import com.ruoyi.zbf.mapper.ZbfMessageMapper;
import com.ruoyi.zbf.service.IZbfMessageService;
import org.springframework.stereotype.Service;
import java.time.LocalTime;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.OPERATION_ALREADY;
import static com.ruoyi.common.constants.WgzAndBgtMessageConstant.OPERATION_NEED;
/**
* 消息Service业务层处理
@ -124,4 +134,52 @@ public class ZbfMessageServiceImpl extends ServicePlusImpl<ZbfMessageMapper, Zbf
update(wrapper);
}
@Override
public ZbfMessageCountVO countUnread() {
List<ZbfMessage> zbfMessages = baseMapper.selectList(Wrappers.<ZbfMessage>lambdaQuery()
.eq(ZbfMessage::getRecipientId, SecurityUtils.getAppUserId())
.eq(ZbfMessage::getReadStatus, "0"));
Map<String, Long> map = zbfMessages.stream().collect(Collectors.groupingBy(ZbfMessage::getMessageLargeType, Collectors.counting()));
ZbfMessageCountVO zbfMessageCountVO = new ZbfMessageCountVO();
zbfMessageCountVO.setTaskMessageCount(map.getOrDefault(BgtMessageType.TASK.getCode(), 0L).intValue());
zbfMessageCountVO.setSettlementMessageCount(map.getOrDefault(BgtMessageType.SETTLEMENT.getCode(), 0L).intValue());
zbfMessageCountVO.setOtherMessageCount(map.getOrDefault(BgtMessageType.OTHER.getCode(), 0L).intValue());
Integer handle = baseMapper.selectCount(Wrappers.<ZbfMessage>lambdaQuery()
.eq(ZbfMessage::getRecipientId, SecurityUtils.getAppUserId())
.eq(ZbfMessage::getIsOperation, OPERATION_NEED));
zbfMessageCountVO.setHandleMessageCount(handle);
return zbfMessageCountVO;
}
@Override
public TableDataInfo<ZbfMessageVO> queryMyPageList(ZbfMessageMyListDTO dto) {
LambdaQueryWrapper<ZbfMessage> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ZbfMessage::getRecipientId, SecurityUtils.getAppUserId());
wrapper.orderByDesc(ZbfMessage::getCreateTime);
Page<ZbfMessage> result = page(PageUtils.buildPage(), wrapper);
Page<ZbfMessageVO> page = new Page<>();
page.setTotal(result.getTotal());
page.setRecords(BeanUtil.copyToList(result.getRecords(), ZbfMessageVO.class));
return PageUtils.buildDataInfo(page);
}
@Override
public TableDataInfo<ZbfMessageDetailVO> queryDetailPageList(ZbfMessageDetailDTO dto) {
LambdaQueryWrapper<ZbfMessage> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ZbfMessage::getRecipientId, SecurityUtils.getAppUserId());
wrapper.eq(StrUtil.isNotBlank(dto.getMessageLargeType()), ZbfMessage::getMessageLargeType, dto.getMessageLargeType());
wrapper.eq(StrUtil.isNotBlank(dto.getMessageSmallType()), ZbfMessage::getMessageSmallType, dto.getMessageSmallType());
wrapper.eq(dto.getIsHandle(), ZbfMessage::getIsOperation,OPERATION_NEED);
if(dto.getDate() != null) {
wrapper.between(ZbfMessage::getCreateTime, dto.getDate().atStartOfDay(), dto.getDate().atStartOfDay().with(LocalTime.MAX));
}
wrapper.orderByDesc(ZbfMessage::getId);
Page<ZbfMessage> result = page(PageUtils.buildPage(), wrapper);
Page<ZbfMessageDetailVO> page = new Page<>();
page.setTotal(result.getTotal());
page.setRecords(BeanUtil.copyToList(result.getRecords(), ZbfMessageDetailVO.class));
return PageUtils.buildDataInfo(page);
}
}