Helius
2021-05-27 229e0ec1a577d604f15ed9659d7c2f0cd7edf8cd
Merge branch 'otc' of http://120.27.238.55:7000/r/exchange into otc
5 files modified
132 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java 105 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java 5 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/otc/OtcMsgHistoryDao.xml 9 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/otc/OtcMsgUserListDao.xml 6 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java
@@ -12,6 +12,8 @@
    //用户ID
    private long memberId;
    //发送方
    private long fromMemberId;
    //对方用户ID
    private long targetId;
@@ -20,4 +22,9 @@
    //消息类型 1-文本2-图片
    private Integer msgType;
    //是不是memberId发的消息 1:是 2:否
    private Integer isSelf;
    public static final Integer ISSELF_ONE = 1;
    public static final Integer ISSELF_TWO = 2;
}
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java
@@ -47,7 +47,7 @@
    public IPage<MsgListVo> getMsgList(MsgListDto msgListDto) {
        MemberEntity member = LoginUserUtils.getAppLoginUser();
        Long memberId = member.getId();
//        Long memberId = 445L;
//        Long memberId = 443L;
        Page<MsgListVo> page = new Page<>(msgListDto.getPageNum(), msgListDto.getPageSize());
        OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity();
@@ -57,13 +57,8 @@
        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());
                }
            }
        }
        return msgList;
@@ -94,17 +89,17 @@
        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);
                }
            }
        }
//        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);
    }
@@ -113,7 +108,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("对话用户不存在");
@@ -141,30 +136,58 @@
//        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);
@@ -191,17 +214,17 @@
            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);
                    }
                }
            }
//            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);
    }
src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java
@@ -15,9 +15,12 @@
    @ApiModelProperty(value = "时间")
    private Date createTime;
    @ApiModelProperty(value = "对方用户ID")
    @ApiModelProperty(value = "接受ID")
    private long targetId;
    @ApiModelProperty(value = "发送ID")
    private long fromMemberId;
    @ApiModelProperty(value = "用户ID")
    private long memberId;
src/main/resources/mapper/otc/OtcMsgHistoryDao.xml
@@ -9,13 +9,18 @@
        a.msg msg,
        a.target_id targetId,
        a.member_id memberId,
        a.from_member_id fromMemberId,
        a.is_self isSelf,
        a.msg_type msgType
        from otc_msg_history a
        <where>
            <if test="record!=null">
                (a.member_id = ${record.memberId} and a.target_id = ${record.targetId})
                a.member_id = ${record.memberId}
                and (
                    (a.from_member_id = ${record.memberId} and a.target_id = ${record.targetId})
                or
                (a.member_id = ${record.targetId} and a.target_id = ${record.memberId})
                    (a.from_member_id = ${record.targetId} and a.target_id = ${record.memberId})
                )
            </if>
        </where>
        order by a.create_time asc
src/main/resources/mapper/otc/OtcMsgUserListDao.xml
@@ -13,8 +13,6 @@
        <where>
            <if test="record!=null">
                    a.member_id = #{record.memberId}
                    or
                    a.target_id = #{record.memberId}
            </if>
        </where>
        order by a.create_time desc
@@ -25,9 +23,7 @@
              *
        from otc_msg_user_list a
        <where>
                    (a.member_id = #{memberId} and a.target_id = #{targetId})
                    or
                    (a.member_id = #{targetId} and a.target_id = #{memberId})
                    a.member_id = #{memberId} and a.target_id = #{targetId}
        </where>
        order by a.create_time desc
    </select>