package com.ruoyi.collaborativeApproval.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.collaborativeApproval.dto.NoticeDTO; import com.ruoyi.collaborativeApproval.mapper.NoticeMapper; import com.ruoyi.collaborativeApproval.pojo.Notice; import com.ruoyi.collaborativeApproval.service.NoticeService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service @Slf4j @AllArgsConstructor public class NoticeServiceImpl extends ServiceImpl implements NoticeService { private final NoticeMapper noticeMapper; @Override public IPage listPage(Page page, NoticeDTO noticeDTO) { IPage noticeDTOIPage = noticeMapper.listPage(page, noticeDTO); noticeDTOIPage.getRecords().forEach(item -> { // 根据过期时间判断statusName if (item.getExpirationDate() == null) { item.setStatusName("未知"); }else if(item.getExpirationDate().getTime() < System.currentTimeMillis()){ item.setStatusName("已过期"); } else{ item.setStatusName("正常"); } }); return noticeDTOIPage; } @Override public List selectCount() { List notices = noticeMapper.selectList(Wrappers.lambdaQuery(Notice.class).groupBy(Notice::getType)); List result = new ArrayList<>(); for (Notice notice : notices) { NoticeDTO notice1 = new NoticeDTO(); BeanUtils.copyProperties(notice, notice1); notice1.setCount(noticeMapper.selectCount(new LambdaQueryWrapper().eq(Notice::getType, notice.getType()))); result.add(notice1); } return result; } }