TmMessageServiceImpl.java 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.fdkankan.fusion.service.impl;
  2. import java.util.Date;
  3. import java.util.HashMap;
  4. import java.util.Set;
  5. import java.util.stream.Collectors;
  6. import cn.dev33.satoken.stp.StpUtil;
  7. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  8. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9. import com.fdkankan.fusion.common.PageInfo;
  10. import com.fdkankan.fusion.common.ResultCode;
  11. import com.fdkankan.fusion.common.enums.IdPreEnum;
  12. import com.fdkankan.fusion.common.util.IdUtils;
  13. import com.fdkankan.fusion.entity.TmMessage;
  14. import com.fdkankan.fusion.entity.TmProject;
  15. import com.fdkankan.fusion.entity.TmUser;
  16. import com.fdkankan.fusion.exception.BusinessException;
  17. import com.fdkankan.fusion.mapper.ITmMessageMapper;
  18. import com.fdkankan.fusion.request.MessageReqDto;
  19. import com.fdkankan.fusion.service.ITmMessageService;
  20. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  21. import com.fdkankan.fusion.service.ITmProjectService;
  22. import com.fdkankan.fusion.service.ITmUserService;
  23. import org.apache.commons.lang3.StringUtils;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Service;
  26. /**
  27. * <p>
  28. * 留言信息表 服务实现类
  29. * </p>
  30. *
  31. * @author
  32. * @since 2023-07-28
  33. */
  34. @Service
  35. public class TmMessageServiceImpl extends ServiceImpl<ITmMessageMapper, TmMessage> implements ITmMessageService {
  36. @Autowired
  37. ITmProjectService tmProjectService;
  38. @Autowired
  39. ITmUserService tmUserService;
  40. @Override
  41. public void addNew(MessageReqDto body) {
  42. if(StringUtils.isBlank(body.getProjectId()) || StringUtils.isBlank(body.getContent())){
  43. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  44. }
  45. TmProject tmProject = tmProjectService.getById(body.getProjectId());
  46. if(null == tmProject){
  47. throw new BusinessException(ResultCode.PROJECT_NOT_EXITS);
  48. }
  49. TmMessage tmMessage = new TmMessage();
  50. tmMessage.setId(IdUtils.genId(IdPreEnum.MESSAGE_PRE.getPre()));
  51. tmMessage.setContent(body.getContent());
  52. tmMessage.setProjectId(body.getProjectId());
  53. tmMessage.setUserId((String) StpUtil.getLoginId());
  54. tmMessage.setCreatorId((String) StpUtil.getLoginId());
  55. this.save(tmMessage);
  56. }
  57. @Override
  58. public Object pageList(MessageReqDto messageReqDto) {
  59. if( StringUtils.isBlank(messageReqDto.getProjectId())){
  60. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  61. }
  62. LambdaQueryWrapper<TmMessage> wrapper = new LambdaQueryWrapper<>();
  63. wrapper.eq(TmMessage::getProjectId,messageReqDto.getProjectId());
  64. wrapper.orderByDesc(TmMessage::getCreateTime);
  65. Page<TmMessage> page = this.page(new Page<>(messageReqDto.getPageNum(), messageReqDto.getPageSize()), wrapper);
  66. Set<String> createorIds = page.getRecords().stream().map(TmMessage::getCreatorId).collect(Collectors.toSet());
  67. HashMap<String, TmUser> map = new HashMap<>();
  68. if(createorIds.size() >0){
  69. map = tmUserService.getByIds(createorIds);
  70. }
  71. for (TmMessage record : page.getRecords()) {
  72. TmUser tmUser = map.get(record.getCreatorId());
  73. if(tmUser != null){
  74. record.setUserName(tmUser.getNickName());
  75. }
  76. }
  77. return PageInfo.PageInfo(page);
  78. }
  79. }