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

 

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);
        }

    }

}

 

原文地址:https://www.cnblogs.com/anni-qianqian/p/6022350.html