From 0d30c93d000413c6eb34f489ef17688ad4175201 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 29 Apr 2024 18:18:21 +0800 Subject: [PATCH] 55测试环境 --- src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java | 155 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 99 insertions(+), 56 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java index ed01fec..67a62fa 100644 --- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,20 +16,20 @@ import com.xcong.excoin.modules.member.entity.MemberSettingEntity; import com.xcong.excoin.modules.otc.dao.OtcMsgHistoryDao; import com.xcong.excoin.modules.otc.dao.OtcMsgUserListDao; -import com.xcong.excoin.modules.otc.dto.ChatBoxDto; -import com.xcong.excoin.modules.otc.dto.ConnectDto; -import com.xcong.excoin.modules.otc.dto.MsgListDto; -import com.xcong.excoin.modules.otc.dto.SendMsgDto; +import com.xcong.excoin.modules.otc.dao.OtcOrderDao; +import com.xcong.excoin.modules.otc.dto.*; import com.xcong.excoin.modules.otc.entity.OtcMsgHistoryEntity; import com.xcong.excoin.modules.otc.entity.OtcMsgUserListEntity; import com.xcong.excoin.modules.otc.service.OtcMsgService; import com.xcong.excoin.modules.otc.vo.ChatBoxVo; +import com.xcong.excoin.modules.otc.vo.ChatOrderVo; import com.xcong.excoin.modules.otc.vo.MsgListVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; @Service @@ -37,6 +38,7 @@ private final OtcMsgUserListDao otcMsgUserListDao; private final OtcMsgHistoryDao otcMsgHistoryDao; + private final OtcOrderDao otcOrderDao; private final MemberSettingDao memberSettingDao; private final MemberDao memberDao; @@ -46,23 +48,45 @@ public IPage<MsgListVo> getMsgList(MsgListDto msgListDto) { MemberEntity member = LoginUserUtils.getAppLoginUser(); Long memberId = member.getId(); -// Long memberId = 445L; +// Long memberId = 444L; +// MemberEntity member = memberDao.selectById(memberId); + Page<MsgListVo> page = new Page<>(msgListDto.getPageNum(), msgListDto.getPageSize()); OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity(); otcMsgUserListEntity.setMemberId(memberId); + otcMsgUserListEntity.setNickname(msgListDto.getNickname()); IPage<MsgListVo> msgList = otcMsgUserListDao.getMsgList(otcMsgUserListEntity, page); List<MsgListVo> records = msgList.getRecords(); + //更新最外层的消息提醒 + boolean flag = true; if(CollUtil.isNotEmpty(records)){ for(MsgListVo msgListVo : records){ long targetId = msgListVo.getTargetId(); - if(memberId == targetId){ - MemberEntity memberEntity = memberDao.selectById(msgListVo.getMemberId()); - msgListVo.setNickname(memberEntity.getName()); - }else{ - MemberEntity memberEntity = memberDao.selectById(targetId); - msgListVo.setNickname(memberEntity.getName()); +// MemberEntity memberEntity = memberDao.selectById(targetId); +// msgListVo.setNickname(memberEntity.getName()); + + ChatOrderVo chatOrderVo = new ChatOrderVo(); + List<ChatOrderVo> chatOrderVos = otcOrderDao.selectOneByMemberIdAndTargetId(memberId,targetId); + if(CollUtil.isNotEmpty(chatOrderVos)){ + for(ChatOrderVo chatOrderVodone : chatOrderVos){ + Long memberIdDone = chatOrderVodone.getMemberId(); + if(memberId.equals(memberIdDone) || memberId == memberIdDone){ + chatOrderVo = chatOrderVodone; + } + } } + msgListVo.setChatOrderVo(chatOrderVo); + + Integer isRead = msgListVo.getIsRead(); + if(OtcMsgUserListEntity.ISREAD_ONE == isRead){ + flag = false; + } + } + if(flag){ + MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(member.getId()); + memberSettingEntity.setMessageReminder(0); + memberSettingDao.updateById(memberSettingEntity); } } return msgList; @@ -93,17 +117,6 @@ otcMsgHistoryEntity.setMemberId(memberId); otcMsgHistoryEntity.setTargetId(targetId); IPage<ChatBoxVo> chatBoxVos= otcMsgHistoryDao.getChatBoxMsgList(page,otcMsgHistoryEntity); - List<ChatBoxVo> records = chatBoxVos.getRecords(); - if(CollUtil.isNotEmpty(records)){ - for(ChatBoxVo chatBoxVo : records){ - long memberIds = chatBoxVo.getMemberId(); - if(memberIds == member.getId()){ - chatBoxVo.setIsSelf(1); - }else{ - chatBoxVo.setIsSelf(2); - } - } - } return Result.ok(chatBoxVos); } @@ -112,7 +125,7 @@ public Result sendMsg(SendMsgDto sendMsgDto) { MemberEntity member = LoginUserUtils.getAppLoginUser(); Long memberId = member.getId(); -// Long memberId = 445L; +// Long memberId = 449L; long targetId = sendMsgDto.getTargetId(); if(ObjectUtil.isEmpty(targetId)){ return Result.fail("对话用户不存在"); @@ -129,41 +142,58 @@ if(ObjectUtil.isEmpty(msgType)){ return Result.fail("请输入发送消息"); } - /** - * 是否有记录 - * 有就更新,没有就新增 - * 在消息列表中增加一条记录 - * 在历史记录中增加一条记录 - * 增加一个提醒的 - */ -// QueryWrapper<OtcMsgHistoryEntity> objectQueryWrapper = new QueryWrapper<>(); -// objectQueryWrapper.eq("member_id",memberId); -// objectQueryWrapper.eq("target_id",targetId); -// OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListDao.selectById(objectQueryWrapper); - List<OtcMsgUserListEntity> otcMsgUserListEntitys = otcMsgUserListDao.selectListByMemberIdAndTargetId(memberId,targetId); - if(CollUtil.isEmpty(otcMsgUserListEntitys)){ + //发送方 + List<OtcMsgUserListEntity> otcMsgUserListEntityFrom = otcMsgUserListDao.selectListByMemberIdAndTargetId(memberId,targetId); + if(CollUtil.isEmpty(otcMsgUserListEntityFrom)){ OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity(); otcMsgUserListEntity.setMemberId(memberId); otcMsgUserListEntity.setTargetId(targetId); + otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_TWO); + otcMsgUserListEntity.setLastMsgTime(DateUtil.date()); + otcMsgUserListDao.insert(otcMsgUserListEntity); + }else{ + OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListEntityFrom.get(0); + otcMsgUserListEntity.setMemberId(memberId); + otcMsgUserListEntity.setTargetId(targetId); + otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_TWO); + otcMsgUserListEntity.setLastMsgTime(DateUtil.date()); + otcMsgUserListDao.updateById(otcMsgUserListEntity); + } + //历史消息中增加新纪录 + OtcMsgHistoryEntity otcMsgHistoryEntityFrom = new OtcMsgHistoryEntity(); + otcMsgHistoryEntityFrom.setMemberId(memberId); + otcMsgHistoryEntityFrom.setFromMemberId(memberId); + otcMsgHistoryEntityFrom.setTargetId(targetId); + otcMsgHistoryEntityFrom.setMsg(msg); + otcMsgHistoryEntityFrom.setMsgType(msgType); + otcMsgHistoryEntityFrom.setIsSelf(OtcMsgHistoryEntity.ISSELF_ONE); + otcMsgHistoryDao.insert(otcMsgHistoryEntityFrom); + //接受方 + List<OtcMsgUserListEntity> otcMsgUserListEntityTo = otcMsgUserListDao.selectListByMemberIdAndTargetId(targetId,memberId); + if(CollUtil.isEmpty(otcMsgUserListEntityTo)){ + OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity(); + otcMsgUserListEntity.setMemberId(targetId); + otcMsgUserListEntity.setTargetId(memberId); otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_ONE); otcMsgUserListEntity.setLastMsgTime(DateUtil.date()); otcMsgUserListDao.insert(otcMsgUserListEntity); }else{ - OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListEntitys.get(0); - otcMsgUserListEntity.setMemberId(memberId); - otcMsgUserListEntity.setTargetId(targetId); + OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListEntityTo.get(0); + otcMsgUserListEntity.setMemberId(targetId); + otcMsgUserListEntity.setTargetId(memberId); otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_ONE); otcMsgUserListEntity.setLastMsgTime(DateUtil.date()); otcMsgUserListDao.updateById(otcMsgUserListEntity); } - //历史消息中增加新纪录 - OtcMsgHistoryEntity otcMsgHistoryEntity = new OtcMsgHistoryEntity(); - otcMsgHistoryEntity.setMemberId(memberId); - otcMsgHistoryEntity.setTargetId(targetId); - otcMsgHistoryEntity.setMsg(msg); - otcMsgHistoryEntity.setMsgType(msgType); - otcMsgHistoryDao.insert(otcMsgHistoryEntity); + OtcMsgHistoryEntity otcMsgHistoryEntityTo = new OtcMsgHistoryEntity(); + otcMsgHistoryEntityTo.setMemberId(targetId); + otcMsgHistoryEntityTo.setFromMemberId(memberId); + otcMsgHistoryEntityTo.setTargetId(targetId); + otcMsgHistoryEntityTo.setMsg(msg); + otcMsgHistoryEntityTo.setMsgType(msgType); + otcMsgHistoryEntityTo.setIsSelf(OtcMsgHistoryEntity.ISSELF_TWO); + otcMsgHistoryDao.insert(otcMsgHistoryEntityTo); //增加一个提醒的 MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(targetId); @@ -190,19 +220,32 @@ otcMsgHistoryEntity.setMemberId(memberId); otcMsgHistoryEntity.setTargetId(targetId); chatBoxVos = otcMsgHistoryDao.getChatBoxMsgList(page,otcMsgHistoryEntity); - List<ChatBoxVo> records = chatBoxVos.getRecords(); - if(CollUtil.isNotEmpty(records)){ - for(ChatBoxVo chatBoxVo : records){ - long memberIds = chatBoxVo.getMemberId(); - if(memberIds == memberId){ - chatBoxVo.setIsSelf(1); - }else{ - chatBoxVo.setIsSelf(2); - } + } + return Result.ok(chatBoxVos); + } + + @Override + public Result getChatOrder(ChatOrderDto chatOrderDto) { + + MemberEntity member = LoginUserUtils.getAppLoginUser(); + Long memberId = member.getId(); +// Long memberId = 443L; + + long targetId = chatOrderDto.getTargetId(); + if(ObjectUtil.isEmpty(targetId)){ + return Result.fail("请返回重试"); + } + ArrayList<ChatOrderVo> chatOrderVoList = new ArrayList<>(); + List<ChatOrderVo> chatOrderVos = otcOrderDao.selectByMemberIdAndTargetId(memberId,targetId); + if(CollUtil.isNotEmpty(chatOrderVos)){ + for(ChatOrderVo chatOrderVo : chatOrderVos){ + Long memberIdDone = chatOrderVo.getMemberId(); + if(memberId.equals(memberIdDone) || memberId == memberIdDone){ + chatOrderVoList.add(chatOrderVo); } } } - return Result.ok(chatBoxVos); + return Result.ok(chatOrderVoList); } -- Gitblit v1.9.1