From 83117633ed965e612c90e29d01610bbbd5ed6c42 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 26 May 2021 17:57:46 +0800 Subject: [PATCH] 20210526 聊天 --- src/main/java/com/xcong/excoin/modules/otc/dto/MsgListDto.java | 17 + src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java | 23 ++ src/main/java/com/xcong/excoin/modules/otc/dao/OtcMsgHistoryDao.java | 14 + src/main/java/com/xcong/excoin/modules/otc/dto/SendMsgDto.java | 22 ++ src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java | 29 +++ src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java | 27 +++ src/main/java/com/xcong/excoin/modules/otc/controller/OtcMsgController.java | 72 ++++++++ src/main/java/com/xcong/excoin/modules/otc/service/OtcMsgService.java | 20 ++ src/main/java/com/xcong/excoin/modules/otc/dao/OtcMsgUserListDao.java | 17 + src/main/resources/mapper/otc/OtcMsgHistoryDao.xml | 24 ++ src/main/java/com/xcong/excoin/modules/otc/dto/ChatBoxDto.java | 19 ++ src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java | 149 ++++++++++++++++ src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgUserListEntity.java | 30 +++ src/main/resources/mapper/otc/OtcMsgUserListDao.xml | 34 +++ 14 files changed, 497 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/otc/controller/OtcMsgController.java b/src/main/java/com/xcong/excoin/modules/otc/controller/OtcMsgController.java new file mode 100644 index 0000000..cd3339f --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/controller/OtcMsgController.java @@ -0,0 +1,72 @@ +package com.xcong.excoin.modules.otc.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xcong.excoin.common.response.Result; +import com.xcong.excoin.modules.otc.dto.ChatBoxDto; +import com.xcong.excoin.modules.otc.dto.MsgListDto; +import com.xcong.excoin.modules.otc.dto.OrderListDto; +import com.xcong.excoin.modules.otc.dto.SendMsgDto; +import com.xcong.excoin.modules.otc.service.OtcMsgService; +import com.xcong.excoin.modules.otc.vo.ChatBoxVo; +import com.xcong.excoin.modules.otc.vo.MsgListVo; +import com.xcong.excoin.modules.otc.vo.OrderListVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@Validated +@RestController +@RequestMapping(value = "/api/otcMsg") +@RequiredArgsConstructor +@Api(value = "OtcMsgController", tags = "otc用户消息接口类") +public class OtcMsgController { + + private final OtcMsgService otcMsgService; + + /** + * 获取对话列表 + */ + @ApiOperation(value = "获取对话列表") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = MsgListVo.class) + }) + @PostMapping(value = "/getMsgList") + public Result getMsgList(@RequestBody MsgListDto msgListDto) { + IPage<MsgListVo> page = otcMsgService.getMsgList(msgListDto); + return Result.ok(page.getRecords()); + } + + /** + * 进入聊天框,获取聊天记录 + */ + @ApiOperation(value = "进入聊天框,获取聊天记录") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ChatBoxVo.class) + }) + @PostMapping(value = "/getChatBox") + public Result getChatBox(@RequestBody ChatBoxDto chatBoxDto) { + return otcMsgService.getChatBox(chatBoxDto); + } + + /** + * 发送消息 + */ + @ApiOperation(value = "发送消息") + @PostMapping(value = "/sendMsg") + public Result sendMsg(@RequestBody SendMsgDto sendMsgDto) { + return otcMsgService.sendMsg(sendMsgDto); + } + + + + +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcMsgHistoryDao.java b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcMsgHistoryDao.java new file mode 100644 index 0000000..436da99 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcMsgHistoryDao.java @@ -0,0 +1,14 @@ +package com.xcong.excoin.modules.otc.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xcong.excoin.modules.otc.entity.OtcMsgHistoryEntity; +import com.xcong.excoin.modules.otc.vo.ChatBoxVo; +import org.apache.ibatis.annotations.Param; + +public interface OtcMsgHistoryDao extends BaseMapper<OtcMsgHistoryEntity> { + + IPage<ChatBoxVo> getChatBoxMsgList(Page<ChatBoxVo> page, @Param("record")OtcMsgHistoryEntity otcMsgHistoryEntity); + +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcMsgUserListDao.java b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcMsgUserListDao.java new file mode 100644 index 0000000..f902b60 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcMsgUserListDao.java @@ -0,0 +1,17 @@ +package com.xcong.excoin.modules.otc.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xcong.excoin.modules.otc.entity.OtcMsgUserListEntity; +import com.xcong.excoin.modules.otc.vo.MsgListVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface OtcMsgUserListDao extends BaseMapper<OtcMsgUserListEntity> { + + IPage<MsgListVo> getMsgList(@Param("record")OtcMsgUserListEntity otcMsgUserListEntity, Page<MsgListVo> page); + + List<OtcMsgUserListEntity> selectListByMemberIdAndTargetId(@Param("memberId")Long memberId, @Param("targetId")long targetId); +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/dto/ChatBoxDto.java b/src/main/java/com/xcong/excoin/modules/otc/dto/ChatBoxDto.java new file mode 100644 index 0000000..fc895cb --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/dto/ChatBoxDto.java @@ -0,0 +1,19 @@ +package com.xcong.excoin.modules.otc.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "ChatBoxDto", description = "参数接收类") +public class ChatBoxDto { + + @ApiModelProperty(value = "条数", example = "10") + private Integer pageSize; + + @ApiModelProperty(value = "页码", example = "1") + private Integer pageNum; + + @ApiModelProperty(value = "ID", example = "1") + private long id; +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/dto/MsgListDto.java b/src/main/java/com/xcong/excoin/modules/otc/dto/MsgListDto.java new file mode 100644 index 0000000..e49dda6 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/dto/MsgListDto.java @@ -0,0 +1,17 @@ +package com.xcong.excoin.modules.otc.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "MsgListDto", description = "参数接收类") +public class MsgListDto { + + @ApiModelProperty(value = "条数", example = "10") + private Integer pageSize; + + @ApiModelProperty(value = "页码", example = "1") + private Integer pageNum; + +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/dto/SendMsgDto.java b/src/main/java/com/xcong/excoin/modules/otc/dto/SendMsgDto.java new file mode 100644 index 0000000..586e9a7 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/dto/SendMsgDto.java @@ -0,0 +1,22 @@ +package com.xcong.excoin.modules.otc.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "SendMsgDto", description = "参数接收类") +public class SendMsgDto { + + @ApiModelProperty(value = "目标用户ID") + private long targetId; + + //消息 + @ApiModelProperty(value = "消息") + private String msg; + + //消息类型 1-文本2-图片 + @ApiModelProperty(value = "消息类型 1-文本2-图片") + private Integer msgType; + +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java new file mode 100644 index 0000000..736fa8e --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java @@ -0,0 +1,23 @@ +package com.xcong.excoin.modules.otc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.xcong.excoin.common.system.base.BaseEntity; +import lombok.Data; + +//历史消息 +@Data +@TableName("otc_msg_history") +public class OtcMsgHistoryEntity extends BaseEntity { + + //用户ID + private long memberId; + + //对方用户ID + private long targetId; + + //消息 + private String msg; + + //消息类型 1-文本2-图片 + private Integer msgType; +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgUserListEntity.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgUserListEntity.java new file mode 100644 index 0000000..681b496 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgUserListEntity.java @@ -0,0 +1,30 @@ +package com.xcong.excoin.modules.otc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.xcong.excoin.common.system.base.BaseEntity; +import lombok.Data; + +import java.util.Date; + +//用户消息列表 +@Data +@TableName("otc_msg_user_list") +public class OtcMsgUserListEntity extends BaseEntity { + + + + //用户ID + private long memberId; + + //对方用户ID + private long targetId; + + //是否已读 1:未读 2:已读 + private Integer isRead; + public static final Integer ISREAD_ONE = 1; + public static final Integer ISREAD_TWO = 2; + + //最后聊天时间 + private Date lastMsgTime; + +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/OtcMsgService.java b/src/main/java/com/xcong/excoin/modules/otc/service/OtcMsgService.java new file mode 100644 index 0000000..6d45ccf --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/service/OtcMsgService.java @@ -0,0 +1,20 @@ +package com.xcong.excoin.modules.otc.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.xcong.excoin.common.response.Result; +import com.xcong.excoin.modules.otc.dto.ChatBoxDto; +import com.xcong.excoin.modules.otc.dto.MsgListDto; +import com.xcong.excoin.modules.otc.dto.SendMsgDto; +import com.xcong.excoin.modules.otc.entity.OtcMsgUserListEntity; +import com.xcong.excoin.modules.otc.vo.ChatBoxVo; +import com.xcong.excoin.modules.otc.vo.MsgListVo; + +public interface OtcMsgService extends IService<OtcMsgUserListEntity> { + + IPage<MsgListVo> getMsgList(MsgListDto msgListDto); + + Result getChatBox(ChatBoxDto chatBoxDto); + + Result sendMsg(SendMsgDto sendMsgDto); +} 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 new file mode 100644 index 0000000..3b8212a --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java @@ -0,0 +1,149 @@ +package com.xcong.excoin.modules.otc.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xcong.excoin.common.LoginUserUtils; +import com.xcong.excoin.common.response.Result; +import com.xcong.excoin.modules.member.dao.MemberDao; +import com.xcong.excoin.modules.member.dao.MemberSettingDao; +import com.xcong.excoin.modules.member.entity.MemberEntity; +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.MsgListDto; +import com.xcong.excoin.modules.otc.dto.SendMsgDto; +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.MsgListVo; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@RequiredArgsConstructor +public class OtcMsgServiceImpl extends ServiceImpl<OtcMsgUserListDao, OtcMsgUserListEntity> implements OtcMsgService { + + private final OtcMsgUserListDao otcMsgUserListDao; + private final OtcMsgHistoryDao otcMsgHistoryDao; + + private final MemberSettingDao memberSettingDao; + private final MemberDao memberDao; + + + @Override + public IPage<MsgListVo> getMsgList(MsgListDto msgListDto) { + MemberEntity member = LoginUserUtils.getAppLoginUser(); + Long memberId = member.getId(); +// Long memberId = 444L; + Page<MsgListVo> page = new Page<>(msgListDto.getPageNum(), msgListDto.getPageSize()); + + OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity(); + otcMsgUserListEntity.setMemberId(memberId); + return otcMsgUserListDao.getMsgList(otcMsgUserListEntity, page); + } + + @Override + @Transactional + public Result getChatBox(ChatBoxDto chatBoxDto) { + MemberEntity member = LoginUserUtils.getAppLoginUser(); + //对话是否存在 + long id = chatBoxDto.getId(); + if(ObjectUtil.isEmpty(id)){ + return Result.fail("请下拉刷新"); + } + OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListDao.selectById(id); + if(ObjectUtil.isEmpty(otcMsgUserListEntity)){ + return Result.fail("请下拉刷新"); + } + //更新为已读 + otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_TWO); + otcMsgUserListDao.updateById(otcMsgUserListEntity); + + long memberId = otcMsgUserListEntity.getMemberId(); + long targetId = otcMsgUserListEntity.getTargetId(); + Page<ChatBoxVo> page = new Page<>(chatBoxDto.getPageNum(), chatBoxDto.getPageSize()); + OtcMsgHistoryEntity otcMsgHistoryEntity = new OtcMsgHistoryEntity(); + otcMsgHistoryEntity.setMemberId(memberId); + otcMsgHistoryEntity.setTargetId(targetId); + IPage<ChatBoxVo> chatBoxVos= otcMsgHistoryDao.getChatBoxMsgList(page,otcMsgHistoryEntity); + return Result.ok(chatBoxVos); + } + + @Override + @Transactional + public Result sendMsg(SendMsgDto sendMsgDto) { + MemberEntity member = LoginUserUtils.getAppLoginUser(); + Long memberId = member.getId(); +// Long memberId = 445L; + long targetId = sendMsgDto.getTargetId(); + if(ObjectUtil.isEmpty(targetId)){ + return Result.fail("对话用户不存在"); + } + MemberEntity memberEntity = memberDao.selectById(targetId); + if(ObjectUtil.isEmpty(memberEntity)){ + return Result.fail("对话用户不存在"); + } + String msg = sendMsgDto.getMsg(); + if(StrUtil.isEmpty(msg)){ + return Result.fail("请输入发送消息"); + } + Integer msgType = sendMsgDto.getMsgType(); + 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)){ + OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity(); + otcMsgUserListEntity.setMemberId(memberId); + otcMsgUserListEntity.setTargetId(targetId); + 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.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); + + //增加一个提醒的 + MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(targetId); + memberSettingEntity.setMessageReminder(1); + memberSettingDao.updateById(memberSettingEntity); + return Result.ok("发送成功"); + } + + +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java b/src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java new file mode 100644 index 0000000..01e2acf --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java @@ -0,0 +1,29 @@ +package com.xcong.excoin.modules.otc.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel(value = "ChatBoxVo", description = "返回参数类") +public class ChatBoxVo { + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty(value = "时间") + private Date createTime; + + @ApiModelProperty(value = "对方用户ID") + private long targetId; + + //消息 + @ApiModelProperty(value = "消息") + private String msg; + + //消息类型 1-文本2-图片 + @ApiModelProperty(value = "消息类型 1-文本2-图片") + private Integer msgType; + +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java b/src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java new file mode 100644 index 0000000..74ea1ac --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java @@ -0,0 +1,27 @@ +package com.xcong.excoin.modules.otc.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel(value = "MsgListVo", description = "返回参数类") +public class MsgListVo { + + //用户ID + @ApiModelProperty(value = "用户ID") + private long id; + + //是否已读 1:未读 2:已读 + @ApiModelProperty(value = "是否已读 1:未读 2:已读") + private Integer isRead; + + //最后聊天时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty(value = "最后聊天时间") + private Date lastMsgTime; + +} diff --git a/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml b/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml new file mode 100644 index 0000000..b36f8fd --- /dev/null +++ b/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.xcong.excoin.modules.otc.dao.OtcMsgHistoryDao"> + + + <select id="getChatBoxMsgList" resultType="com.xcong.excoin.modules.otc.vo.ChatBoxVo"> + select + a.create_time createTime, + a.msg msg, + a.target_id targetId, + 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}) + or + (a.member_id = ${record.targetId} and a.target_id = ${record.memberId}) + </if> + </where> + order by a.create_time desc + </select> + + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/otc/OtcMsgUserListDao.xml b/src/main/resources/mapper/otc/OtcMsgUserListDao.xml new file mode 100644 index 0000000..88c3f56 --- /dev/null +++ b/src/main/resources/mapper/otc/OtcMsgUserListDao.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.xcong.excoin.modules.otc.dao.OtcMsgUserListDao"> + + <select id="getMsgList" resultType="com.xcong.excoin.modules.otc.vo.MsgListVo"> + select + a.id id, + a.is_read isRead, + a.last_msg_time lastMsgTime + from otc_msg_user_list a + <where> + <if test="record!=null"> + a.member_id = #{record.memberId} + or + a.target_id = #{record.memberId} + </if> + </where> + order by a.create_time desc + </select> + + <select id="selectListByMemberIdAndTargetId" resultType="com.xcong.excoin.modules.otc.entity.OtcMsgUserListEntity"> + select + * + 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}) + </where> + order by a.create_time desc + </select> + + +</mapper> \ No newline at end of file -- Gitblit v1.9.1