package jnpf.message.mapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import jnpf.base.mapper.SuperMapper;
|
import jnpf.message.entity.ImReplyEntity;
|
import jnpf.message.model.ImReplyListModel;
|
import jnpf.util.UserProvider;
|
|
import java.util.List;
|
|
/**
|
* 聊天会话
|
*
|
* @author JNPF开发平台组
|
* @version V3.1.0
|
* @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
|
* @date 2021-05-28
|
*/
|
public interface ImReplyMapper extends SuperMapper<ImReplyEntity> {
|
|
/**
|
* 聊天会话列表
|
*
|
* @return
|
*/
|
List<ImReplyListModel> getImReplyList();
|
|
default List<ImReplyEntity> getList() {
|
QueryWrapper<ImReplyEntity> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().eq(ImReplyEntity::getUserId, UserProvider.getUser().getUserId()).or()
|
.eq(ImReplyEntity::getReceiveUserId, UserProvider.getUser().getUserId())
|
.orderByDesc(ImReplyEntity::getUserId);
|
return this.selectList(queryWrapper);
|
}
|
|
default boolean savaImReply(ImReplyEntity entity) {
|
QueryWrapper<ImReplyEntity> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().eq(ImReplyEntity::getUserId, entity.getUserId()).eq(ImReplyEntity::getReceiveUserId, entity.getReceiveUserId());
|
//判断数据是否存在
|
ImReplyEntity imReplyEntity = this.selectOne(queryWrapper);
|
if (imReplyEntity != null) {
|
entity.setId(imReplyEntity.getId());
|
this.updateById(entity);
|
return true;
|
}
|
this.insert(entity);
|
return true;
|
|
}
|
|
default boolean relocation(String sendUserId, String receiveUserId) {
|
QueryWrapper<ImReplyEntity> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().and(t -> {
|
t.eq(ImReplyEntity::getUserId, receiveUserId)
|
.eq(ImReplyEntity::getReceiveUserId, sendUserId).or();
|
t.eq(ImReplyEntity::getReceiveUserId, receiveUserId)
|
.eq(ImReplyEntity::getUserId, sendUserId);
|
});
|
List<ImReplyEntity> list = this.selectList(queryWrapper);
|
for (ImReplyEntity entity : list) {
|
if (entity.getDeleteUserId() != null) {
|
if (!entity.getDeleteUserId().equals(sendUserId)) {
|
entity.setDeleteMark(1);
|
this.updateById(entity);
|
}
|
}
|
entity.setDeleteUserId(sendUserId);
|
this.updateById(entity);
|
}
|
QueryWrapper<ImReplyEntity> wrapper = new QueryWrapper<>();
|
wrapper.lambda().eq(ImReplyEntity::getDeleteMark, 1);
|
this.delete(wrapper);
|
return false;
|
}
|
|
}
|