MessageReceiver.java 3.13 KB
package com.naji.xiaotao.message.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

import com.google.gson.Gson;
import com.naji.xiaotao.message.entity.Message;
import com.naji.xiaotao.message.entity.Message_Table;
import com.raizlabs.android.dbflow.sql.language.SQLite;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.List;

import cn.jpush.android.api.JPushInterface;
import me.goldze.mvvmhabit.bus.RxBus;
import me.goldze.mvvmhabit.utils.KLog;

/**
 * 接收处理后台推送的自定义消息
 */
public class MessageReceiver extends BroadcastReceiver{


    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle=intent.getExtras();
        switch (intent.getAction()){
            case JPushInterface.ACTION_MESSAGE_RECEIVED://自定义消息
                String extra=bundle.getString(JPushInterface.EXTRA_EXTRA);
                System.out.println("extras:"+extra);
                Message message=new Gson().fromJson(extra,Message.class);
                String contentType=message.getContent_type();
                switch(contentType){
                    case "1"://通知类消息 顾客触发
                        if(message.getMessage_type().equals("4")){//顾客已下单
                            RxBus.getDefault().post("hasorder");//顾客已下单
                            return;
                        }
                        if(message.getMessage_type().equals("5")){//服务员在小程序端审核菜品
                            SQLite.delete(Message.class).where(Message_Table.table_id.eq(message.getTable_id()),Message_Table.message_type.eq("2")).execute();
                            RxBus.getDefault().post("refresh");//发送给工作台首页一个刷新操作
                            return;
                        }
                        Message message1=SQLite.select().from(Message.class).where(Message_Table.message_type.eq(message.getMessage_type()),Message_Table.table_id.eq(message.getTable_id())).querySingle();
                        if(message1!=null){//本地数据库已有此类消息
                            message1.setMessage_id(message.message_id);
                            message1.setMessage_content(message.getMessage_content());
                            message1.setMessage_handle(message.getMessage_handle());
                            message1.setMessage_status(message.getMessage_status());
                            message1.setMessage_time(message.getMessage_time());
                            message1.update();
                        }else{
                            message.save();//存储到本地数据库
                        }
                        break;
                    case "2"://操作类消息 服务员触发
                        SQLite.delete(Message.class).where(Message_Table.message_id.eq(message.getMessage_id())).execute();
                        break;
                }
                RxBus.getDefault().post("refresh");//发送给工作台首页一个刷新操作
                break;
        }
    }
}