feat(resource): 关注消息
parent
5a5ab268dd
commit
afc35ca586
|
@ -2,6 +2,7 @@ package com.mcwl.web.controller.system;
|
|||
|
||||
import com.mcwl.common.core.domain.R;
|
||||
import com.mcwl.resource.domain.vo.AdviceVo;
|
||||
import com.mcwl.resource.domain.vo.AttentionAdviceVo;
|
||||
import com.mcwl.resource.domain.vo.CommentAdviceVo;
|
||||
import com.mcwl.resource.domain.vo.LikeAdviceVo;
|
||||
import com.mcwl.resource.service.ISysAdviceService;
|
||||
|
@ -87,4 +88,13 @@ public class SysAdviceController {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取关注通知
|
||||
*/
|
||||
@GetMapping("getAttentionMsg")
|
||||
public R<List<AttentionAdviceVo>> getAttentionMsg() {
|
||||
List<AttentionAdviceVo> attentionAdviceVoList = sysAdviceService.getAttentionMsg();
|
||||
return R.ok(attentionAdviceVoList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
package com.mcwl.resource.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@ApiModel(description = "关注消息")
|
||||
public class AttentionAdviceVo {
|
||||
|
||||
/**
|
||||
* 通知id
|
||||
*/
|
||||
@ApiModelProperty(value = "通知id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关注我的用户头像
|
||||
*/
|
||||
@ApiModelProperty(value = "关注我的用户头像")
|
||||
private String userAvatar;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
@ApiModelProperty(value = "内容")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 是否已读 0否 1是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否已读 0否 1是")
|
||||
private Integer isRead;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
}
|
|
@ -3,6 +3,7 @@ package com.mcwl.resource.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mcwl.resource.domain.SysAdvice;
|
||||
import com.mcwl.resource.domain.vo.AdviceVo;
|
||||
import com.mcwl.resource.domain.vo.AttentionAdviceVo;
|
||||
import com.mcwl.resource.domain.vo.CommentAdviceVo;
|
||||
import com.mcwl.resource.domain.vo.LikeAdviceVo;
|
||||
|
||||
|
@ -26,4 +27,6 @@ public interface ISysAdviceService extends IService<SysAdvice> {
|
|||
List<CommentAdviceVo> getCommentMsg(Integer productType);
|
||||
|
||||
List<LikeAdviceVo> getLikeMsg(Integer productType);
|
||||
|
||||
List<AttentionAdviceVo> getAttentionMsg();
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import com.mcwl.resource.domain.ModelProduct;
|
|||
import com.mcwl.resource.domain.SysAdvice;
|
||||
import com.mcwl.resource.domain.WorkFlow;
|
||||
import com.mcwl.resource.domain.vo.AdviceVo;
|
||||
import com.mcwl.resource.domain.vo.AttentionAdviceVo;
|
||||
import com.mcwl.resource.domain.vo.CommentAdviceVo;
|
||||
import com.mcwl.resource.domain.vo.LikeAdviceVo;
|
||||
import com.mcwl.resource.mapper.SysAdviceMapper;
|
||||
|
@ -22,10 +23,7 @@ import com.mcwl.system.service.ISysUserService;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
|
@ -100,12 +98,24 @@ public class SysAdviceServiceImpl extends ServiceImpl<SysAdviceMapper, SysAdvice
|
|||
.eq(SysAdvice::getReceiverId, SecurityUtils.getUserId())
|
||||
.eq(productType != 3, SysAdvice::getProductType, productType));
|
||||
|
||||
|
||||
List<Long> commentUserIdList = new ArrayList<>();
|
||||
for (SysAdvice sysAdvice : sysAdviceList) {
|
||||
commentUserIdList.add(sysAdvice.getSenderId());
|
||||
}
|
||||
List<SysUser> sysUsers = sysUserService.selectUserByIds(commentUserIdList);
|
||||
|
||||
Map<Long, SysUser> commentUserMap = new HashMap<>();
|
||||
for (SysUser sysUser : sysUsers) {
|
||||
commentUserMap.put(sysUser.getUserId(), sysUser);
|
||||
}
|
||||
|
||||
List<CommentAdviceVo> commentAdviceVoList = new ArrayList<>();
|
||||
for (SysAdvice sysAdvice : sysAdviceList) {
|
||||
CommentAdviceVo commentAdviceVo = BeanUtil.copyProperties(sysAdvice, CommentAdviceVo.class);
|
||||
|
||||
Long senderId = sysAdvice.getSenderId();
|
||||
SysUser senderUser = sysUserService.selectUserById(senderId);
|
||||
SysUser senderUser = commentUserMap.get(senderId);
|
||||
commentAdviceVo.setUserAvatar(senderUser.getAvatar());
|
||||
if (productType == 0) {
|
||||
ModelProduct modelProduct = modelProductMap.get(sysAdvice.getProductId());
|
||||
|
@ -146,13 +156,24 @@ public class SysAdviceServiceImpl extends ServiceImpl<SysAdviceMapper, SysAdvice
|
|||
.eq(productType != 4, SysAdvice::getProductType, productType));
|
||||
}
|
||||
|
||||
List<Long> likeUserIdList = new ArrayList<>();
|
||||
for (SysAdvice sysAdvice : sysAdviceList) {
|
||||
likeUserIdList.add(sysAdvice.getSenderId());
|
||||
}
|
||||
List<SysUser> sysUsers = sysUserService.selectUserByIds(likeUserIdList);
|
||||
|
||||
Map<Long, SysUser> likeUserMap = new HashMap<>();
|
||||
for (SysUser sysUser : sysUsers) {
|
||||
likeUserMap.put(sysUser.getUserId(), sysUser);
|
||||
}
|
||||
|
||||
|
||||
List<LikeAdviceVo> likeAdviceVoList = new ArrayList<>();
|
||||
for (SysAdvice sysAdvice : sysAdviceList) {
|
||||
LikeAdviceVo likeAdviceVo = BeanUtil.copyProperties(sysAdvice, LikeAdviceVo.class);
|
||||
|
||||
Long senderId = sysAdvice.getSenderId();
|
||||
SysUser senderUser = sysUserService.selectUserById(senderId);
|
||||
SysUser senderUser = likeUserMap.get(senderId);
|
||||
likeAdviceVo.setUserAvatar(senderUser.getAvatar());
|
||||
if (productType == 0) {
|
||||
ModelProduct modelProduct = modelProductMap.get(sysAdvice.getProductId());
|
||||
|
@ -177,6 +198,40 @@ public class SysAdviceServiceImpl extends ServiceImpl<SysAdviceMapper, SysAdvice
|
|||
return likeAdviceVoList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AttentionAdviceVo> getAttentionMsg() {
|
||||
List<SysAdvice> sysAdviceList = baseMapper.selectList(new LambdaQueryWrapper<SysAdvice>()
|
||||
.eq(SysAdvice::getType, AdviceEnum.FANS_REMIND)
|
||||
.eq(SysAdvice::getReceiverId, SecurityUtils.getUserId()));
|
||||
|
||||
List<AttentionAdviceVo> attentionAdviceVoList = new ArrayList<>();
|
||||
List<Long> atentUserIdList = new ArrayList<>();
|
||||
|
||||
// 通知表中获取所有关注我的用户id
|
||||
for (SysAdvice sysAdvice : sysAdviceList) {
|
||||
atentUserIdList.add(sysAdvice.getSenderId());
|
||||
}
|
||||
|
||||
// 构建map, key为用户id,value为用户信息
|
||||
Map<Long, SysUser> attentionUserMap = new HashMap<>();
|
||||
|
||||
// 批量查询用户信息, 并构建映射关系
|
||||
List<SysUser> atentUserList = sysUserService.listByIds(atentUserIdList);
|
||||
for (SysUser sysUser : atentUserList) {
|
||||
attentionUserMap.put(sysUser.getUserId(), sysUser);
|
||||
}
|
||||
|
||||
for (SysAdvice sysAdvice : sysAdviceList) {
|
||||
AttentionAdviceVo attentionAdviceVo = BeanUtil.copyProperties(sysAdvice, AttentionAdviceVo.class);
|
||||
Long senderId = sysAdvice.getSenderId();
|
||||
SysUser attentionUser = attentionUserMap.get(senderId);
|
||||
attentionAdviceVo.setUserAvatar(attentionUser.getAvatar());
|
||||
attentionAdviceVoList.add(attentionAdviceVo);
|
||||
}
|
||||
|
||||
return attentionAdviceVoList;
|
||||
}
|
||||
|
||||
public void postConstruct() {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
|
||||
|
|
|
@ -2,10 +2,11 @@ package com.mcwl.resource.service.impl;
|
|||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.mcwl.common.core.domain.AjaxResult;
|
||||
import com.mcwl.common.core.domain.R;
|
||||
import com.mcwl.common.core.domain.entity.SysUser;
|
||||
import com.mcwl.common.utils.SecurityUtils;
|
||||
import com.mcwl.common.utils.StringUtils;
|
||||
import com.mcwl.resource.domain.SysAdvice;
|
||||
import com.mcwl.resource.domain.SysUserAttention;
|
||||
import com.mcwl.resource.domain.SysUserInfo;
|
||||
import com.mcwl.resource.domain.vo.PageVo;
|
||||
|
@ -14,6 +15,7 @@ import com.mcwl.resource.mapper.ModelImageMapper;
|
|||
import com.mcwl.resource.mapper.ModelMapper;
|
||||
import com.mcwl.resource.mapper.SysUserAttentionMapper;
|
||||
import com.mcwl.resource.service.SysUserAttentionService;
|
||||
import com.mcwl.system.domain.enums.AdviceEnum;
|
||||
import com.mcwl.system.mapper.SysUserMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -53,7 +55,7 @@ public class SysUserAttentionServiceImpl implements SysUserAttentionService {
|
|||
|
||||
//查看是否已关注
|
||||
Boolean aBoolean = selectAttention(userId);
|
||||
if (aBoolean == true) {
|
||||
if (aBoolean) {
|
||||
//取关
|
||||
sysUserAttentionMapper.deleteByUserId(SecurityUtils.getUserId(), userId);
|
||||
return R.ok(false);
|
||||
|
@ -66,6 +68,18 @@ public class SysUserAttentionServiceImpl implements SysUserAttentionService {
|
|||
.createTime(new Date())
|
||||
.build();
|
||||
sysUserAttentionMapper.insert(sysUserAttention);
|
||||
|
||||
|
||||
// 添加通知
|
||||
String content = StringUtils.format("{}关注了您,快去看看吧!", SecurityUtils.getUsername());
|
||||
SysAdvice sysAdvice = new SysAdvice();
|
||||
sysAdvice.setSenderId(SecurityUtils.getUserId());
|
||||
sysAdvice.setReceiverId(userId);
|
||||
sysAdvice.setContent(content);
|
||||
sysAdvice.setIsRead(0);
|
||||
sysAdvice.setType(AdviceEnum.FANS_REMIND);
|
||||
|
||||
|
||||
return R.ok(true);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue