Commit 839e36b7 authored by shiyu's avatar shiyu

查询是否关注

parent e29ab850
......@@ -31,6 +31,7 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
.addPathPatterns("/**")
.excludePathPatterns("/*.html", "/**/*.html", "/**/*.css", "/**/*.js"
, "/wx/user/loginByWx", "/wx/user/loginByMobile", "/wx/user/loginRegCaptcha", "/wx/user/updateRegCaptcha", "/wx/user/login", "/wx/user/fillCode"
,"/wx/follow/**" ,"/wx/message/**"
);
}
}
......@@ -9,6 +9,8 @@ import java.util.List;
@Data
public class MessageRequestDto implements Entity {
private Integer messageRecordId;
/**
* 发送者id
*/
......
......@@ -9,6 +9,8 @@ import java.util.Map;
@Data
public class MessageVo implements Entity {
private Integer messageRecordId;
/**
* 发送者id
*/
......
package com.wwdz.ch.wx.impl;
import com.wwdz.ch.core.consts.MessageEnum;
import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.CacheUtil;
import com.wwdz.ch.db.dao.FollowFansRecordDao;
import com.wwdz.ch.db.domain.FollowFansRecord;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.wx.entity.request.MessageRequestDto;
import com.wwdz.ch.wx.entity.vo.FollowFansRecordVo;
import com.wwdz.ch.wx.service.FollowFansRecordService;
import com.wwdz.ch.wx.service.MessageService;
import com.xxdxxs.utils.EntityMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.*;
import java.util.stream.Collectors;
......@@ -26,10 +31,14 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
@Autowired
FollowFansRecordDao followFansRecordDao;
@Autowired
MessageService messageService;
@Autowired
CacheUtil cacheUtil;
@Override
@Transactional(rollbackFor = Exception.class)
public Result follow(FollowFansRecordRequestDto dto) {
try {
if (dto.getFollowerId() == null || dto.getFansId() == null) {
......@@ -44,9 +53,18 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
int id = followFansRecordDao.add(followFansRecord);
Map<String, Object> map = new HashMap<>();
map.put("recordId", id);
//发送关注的消息
MessageRequestDto messageRequestDto = new MessageRequestDto();
messageRequestDto.setSenderId(dto.getFansId());
messageRequestDto.setReceiverId(dto.getFollowerId());
messageRequestDto.setType(MessageEnum.TypeEnum.FOLLOW.getCode());
messageRequestDto.setContent("关注了您");
messageService.add(messageRequestDto);
return Result.success(map);
} catch (Exception e) {
logger.error("{} 关注 {} error {}", dto.getFansId(), dto.getFollowerId(), e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return Result.failed();
}
......@@ -101,11 +119,8 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
//查询粉丝
FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto();
followFansRecordRequestDto.setFollowerId(dto.getSearchTargetId());
Result fansResult = findFansList(followFansRecordRequestDto);
if (!fansResult.getSuccess()) {
return Result.failed();
}
List<FollowFansRecord> fansRecordList = (List<FollowFansRecord>) fansResult.getData();
List<FollowFansRecord> fansRecordList = followFansRecordDao.findList(followFansRecordRequestDto);
List<Long> fansIdList = fansRecordList.stream().map(FollowFansRecord::getFansId).collect(Collectors.toList());
followFansRecordList.forEach(f -> {
......@@ -139,13 +154,9 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
//查询关注的人
FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto();
followFansRecordRequestDto.setFansId(dto.getSearchTargetId());
Result followResult = findFollowList(followFansRecordRequestDto);
if (!followResult.getSuccess()) {
return Result.failed();
}
List<FollowFansRecord> followRecordList = (List<FollowFansRecord>) followResult.getData();
List<Long> followerIdList = followRecordList.stream().map(FollowFansRecord::getFansId).collect(Collectors.toList());
List<FollowFansRecord> followRecordList = followFansRecordDao.findList(followFansRecordRequestDto);
List<Long> followerIdList = followRecordList.stream().map(FollowFansRecord::getFansId).collect(Collectors.toList());
followFansRecordList.forEach(f -> {
FollowFansRecordVo followFansRecordVo = new FollowFansRecordVo();
EntityMapper.copyAttribute(f, followFansRecordVo);
......@@ -163,4 +174,23 @@ public class FollowFansRecordServiceImpl implements FollowFansRecordService {
}
return Result.failed();
}
@Override
public Result findFollowRelation(FollowFansRecordRequestDto dto) {
try {
FollowFansRecord followFansRecord = followFansRecordDao.findOne(dto);
Map<String, Object> map = new HashMap<>();
if (followFansRecord == null) {
map.put("isFollowed", false);
} else {
map.put("isFollowed", true);
map.put("id", followFansRecord.getId());
}
return Result.success(map);
} catch (Exception e) {
logger.error("查询是否关注error {}", e);
}
return Result.failed();
}
}
......@@ -101,6 +101,7 @@ public class MessageServiceImpl implements MessageService {
messageRecordRequestDto.setType(messageRequestDto.getType());
List<MessageRecord> list = messageRecordDao.findList(messageRecordRequestDto);
PageInfo<MessageRecord> pageInfo = new PageInfo<>(list);
//消息id
List<Integer> idList = list.stream().map(MessageRecord::getMessageId).collect(Collectors.toList());
//查询消息内容
List<MessageContent> messageContentList = messageContentDao.findListByIds(idList);
......@@ -108,6 +109,7 @@ public class MessageServiceImpl implements MessageService {
List<MessageVo> messageVos = new ArrayList<>();
list.forEach(m -> {
MessageVo messageVo = new MessageVo();
messageVo.setMessageRecordId(m.getId());
messageVo.setMessageId(m.getMessageId());
messageVo.setSenderId(messageContentMap.get(m.getMessageId()).getSenderId());
messageVo.setSenderName(cacheUtil.getAppletUserNameById(messageContentMap.get(m.getMessageId()).getSenderId()));
......@@ -144,8 +146,8 @@ public class MessageServiceImpl implements MessageService {
messageVos.add(messageVo);
});
//把未读消息修改为已读
List<Integer> unreadList = list.stream().filter(m->m.getState().intValue() == MessageEnum.StateEnum.UNREAD.getCode()).map(MessageRecord::getMessageId).collect(Collectors.toList());
//把未读消息修改为已读,用的是消息记录的id
List<Integer> unreadList = list.stream().filter(m->m.getState().intValue() == MessageEnum.StateEnum.UNREAD.getCode()).map(MessageRecord::getId).collect(Collectors.toList());
unreadList.forEach(i -> {
MessageRecord record = new MessageRecord();
record.setId(i);
......@@ -170,13 +172,16 @@ public class MessageServiceImpl implements MessageService {
messageRecordRequestDto.setState(MessageEnum.StateEnum.UNREAD.getCode());
List<MessageRecord> list = messageRecordDao.findList(messageRecordRequestDto);
Map<Integer, Long> typeNumMap = list.stream().collect(Collectors.groupingBy(MessageRecord::getType, Collectors.counting()));
Map<Object, Object> map = new HashMap<>();
List<Map<String, Object>> mapList = new ArrayList<>();
for (Map.Entry<Integer, Long> entry : typeNumMap.entrySet()) {
Map<String, Object> map = new HashMap<>();
int type = entry.getKey();
long num = entry.getValue();
map.put(type, num);
map.put("type", type);
map.put("num", num);
mapList.add(map);
}
return Result.success(map);
return Result.success(mapList);
} catch (Exception e) {
logger.error("统计未读消息 error : {}", e);
}
......@@ -207,11 +212,11 @@ public class MessageServiceImpl implements MessageService {
@Override
public Result delete(MessageRequestDto messageRequestDto) {
try {
if (messageRequestDto.getMessageId() == null) {
if (messageRequestDto.getMessageRecordId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
MessageRecord record = new MessageRecord();
record.setId(messageRequestDto.getMessageId());
record.setId(messageRequestDto.getMessageRecordId());
record.setState(MessageEnum.StateEnum.DELETED.getCode());
record.setUpdateTime(new Date());
messageRecordDao.update(record);
......@@ -229,7 +234,7 @@ public class MessageServiceImpl implements MessageService {
return Result.failed(ResultCode.PARAM_ERROR);
}
MessageRecord record = new MessageRecord();
record.setId(messageRequestDto.getMessageId());
record.setId(messageRequestDto.getMessageRecordId());
record.setState(MessageEnum.StateEnum.READED.getCode());
record.setUpdateTime(new Date());
messageRecordDao.update(record);
......
......@@ -42,4 +42,12 @@ public interface FollowFansRecordService {
* @return
*/
Result findFansList(FollowFansRecordRequestDto dto);
/**
* 查询是否关注
* @param dto
* @return
*/
Result findFollowRelation(FollowFansRecordRequestDto dto);
}
......@@ -42,17 +42,28 @@ public class MessageController {
if (dto.getReceiverId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return messageService.countUnreadNum(dto);
return messageService.countUnreadNumGroupByType(dto);
}
@ApiOperation(value = "根据消息类型统计未读消息数量")
@ApiOperation(value = "查询消息列表")
@PostMapping("/findList")
public Result findList(@RequestBody MessageRequestDto dto) {
logger.info("根据消息类型统计未读消息数量,请求参数:{}", JSON.toJSONString(dto));
logger.info("查询消息列表,请求参数:{}", JSON.toJSONString(dto));
if (dto.getReceiverId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return messageService.findList(dto);
}
@ApiOperation(value = "删除消息")
@PostMapping("/delete")
public Result delete(@RequestBody MessageRequestDto dto) {
logger.info("删除消息,请求参数:{}", JSON.toJSONString(dto));
if (dto.getMessageRecordId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return messageService.delete(dto);
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment