好友聊天消息列表本地数据库封装

 

复制代码
import com.xuehu365.xuehu.utils.DBHelp;
import com.xuehu365.xuehu.utils.LogHelp;

import org.xutils.ex.DbException;

import java.util.List;

/**
 * Created by Administrator on 2016/10/26.
 */
public class PersonalMessageListData {

    public static MessageChatEntity getById(String relationId) {
        try {
            return DBHelp.getInstance().getDbManager().selector(MessageChatEntity.class).where("relationId", "=", relationId).findFirst();
        } catch (DbException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 获取所有未读消息数量
     */
    public static int getTotalPersonalMsgUnReadCount() {
        int total = 0;
        try {
            List<MessageChatEntity> allPersonalMsg = DBHelp.getInstance().getDbManager().findAll(MessageChatEntity.class);
            if (null != allPersonalMsg && allPersonalMsg.size() > 0) {
                for (MessageChatEntity entity : allPersonalMsg) {
                    total += entity.getMsgCount();
                }
            }
        } catch (DbException e) {
            e.printStackTrace();
        }
        return total;
    }

    /**
     * 删除好友回话
     */
    public static void deletePersonalMessage(String relationId) {
        try {
            DBHelp.getInstance().getDbManager().deleteById(MessageChatEntity.class, relationId);
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

    /**
     * 设置未读消息
     */
    public static void setPersonalMsg(PrivateMessage message) {
        //更新用户消息
        MessageChatEntity entity = getById(message.getConversationId());
        //之前存在
        if (null == entity) {
            entity = new MessageChatEntity();
            entity.setRelationId(message.getConversationId());
        }
        entity.setMsgCount(entity.getMsgCount() + 1);
        entity.setFriendId(message.getUserId());
        entity.setImageUrl(message.getHeadUrl());
        entity.setName(message.getUserName());
        entity.setChatDate(Long.parseLong(message.getTime()));
        entity.setChatContent(message.getMsg());
        entity.setIsFriend(message.getPersonalMsgType());
        entity.setMsgType(message.getMsgType());
        DBHelp.getInstance().saveOrUpdate(entity);
    }

    /**
     * 设置自己的消息
     */
    public static void setSelfPersonMsg(PrivateMessage message, FriendModel model) {
        //更新用户消息
        MessageChatEntity entity = getById(message.getConversationId());
        //之前存在
        if (null == entity) {
            entity = new MessageChatEntity();
            entity.setRelationId(message.getConversationId());
        }
        entity.setMsgCount(0);
        entity.setFriendId(model.getFriendId());
        entity.setImageUrl(model.getHeadUrl());
        entity.setName(model.getFriendName());
        entity.setChatDate(Long.parseLong(message.getTime()));
        entity.setChatContent(message.getMsg());
        entity.setIsFriend(message.getPersonalMsgType());
        entity.setMsgType(message.getMsgType());
        DBHelp.getInstance().saveOrUpdate(entity);
    }

    /**
     * 查出所有好友消息
     */
    public static List<MessageChatEntity> getAllPersonalMessage() {
        try {
            return DBHelp.getInstance().getDbManager().selector(MessageChatEntity.class).orderBy("chatDate", true).findAll();
        } catch (DbException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 设置好友消息已读
     */
    public static void setMessageRead(String relationId) {
        LogHelp.i("friend", "fadfagagr");
        MessageChatEntity entity = getById(relationId);
        if (null != entity) {
            entity.setMsgCount(0);
            DBHelp.getInstance().saveOrUpdate(entity);
        }

    }

}
复制代码

 

posted @   嘉禾世兴  阅读(537)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示