package com.fdkankan.fusion.service.impl; import java.util.Date; import java.util.HashMap; import java.util.Set; import java.util.stream.Collectors; import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.fusion.common.PageInfo; import com.fdkankan.fusion.common.ResultCode; import com.fdkankan.fusion.common.enums.IdPreEnum; import com.fdkankan.fusion.common.util.IdUtils; import com.fdkankan.fusion.entity.TmMessage; import com.fdkankan.fusion.entity.TmProject; import com.fdkankan.fusion.entity.TmUser; import com.fdkankan.fusion.exception.BusinessException; import com.fdkankan.fusion.mapper.ITmMessageMapper; import com.fdkankan.fusion.request.MessageReqDto; import com.fdkankan.fusion.service.ITmMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.fusion.service.ITmProjectService; import com.fdkankan.fusion.service.ITmUserService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** *

* 留言信息表 服务实现类 *

* * @author * @since 2023-07-28 */ @Service public class TmMessageServiceImpl extends ServiceImpl implements ITmMessageService { @Autowired ITmProjectService tmProjectService; @Autowired ITmUserService tmUserService; @Override public void addNew(MessageReqDto body) { if(StringUtils.isBlank(body.getProjectId()) || StringUtils.isBlank(body.getContent())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } TmProject tmProject = tmProjectService.getById(body.getProjectId()); if(null == tmProject){ throw new BusinessException(ResultCode.PROJECT_NOT_EXITS); } TmMessage tmMessage = new TmMessage(); tmMessage.setId(IdUtils.genId(IdPreEnum.MESSAGE_PRE.getPre())); tmMessage.setContent(body.getContent()); tmMessage.setProjectId(body.getProjectId()); tmMessage.setUserId((String) StpUtil.getLoginId()); tmMessage.setCreatorId((String) StpUtil.getLoginId()); this.save(tmMessage); } @Override public Object pageList(MessageReqDto messageReqDto) { if( StringUtils.isBlank(messageReqDto.getProjectId())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TmMessage::getProjectId,messageReqDto.getProjectId()); wrapper.orderByDesc(TmMessage::getCreateTime); Page page = this.page(new Page<>(messageReqDto.getPageNum(), messageReqDto.getPageSize()), wrapper); Set createorIds = page.getRecords().stream().map(TmMessage::getCreatorId).collect(Collectors.toSet()); HashMap map = new HashMap<>(); if(createorIds.size() >0){ map = tmUserService.getByIds(createorIds); } for (TmMessage record : page.getRecords()) { TmUser tmUser = map.get(record.getCreatorId()); if(tmUser != null){ record.setUserName(tmUser.getNickName()); } } return PageInfo.PageInfo(page); } }