package com.xhly.websocket.utils

import com.xhly.corelib.Const
import com.xhly.corelib.eventbus.UIEvent
import com.xhly.corelib.utils.GsonUtils
import com.xhly.corelib.utils.LogShow
import com.xhly.websocket.bean.WebSocketData

object SocketPushUtils {
    fun dealPushMessage(content: String) {
        try {
            //没用泛型是因为如果带有泛型的类型，可能会遇到解析异常的问题。需要使用TypeToken
            var socketData = GsonUtils.parseJsonWithGson(content, WebSocketData::class.java)
            LogShow("数据$content")
            socketData.code.let { code ->
                when (code) {
                    1001 -> {
                        //连接后回发 body{userid,username,usertype(1管理员，2学生)}
                    }

                    Const.CODE2001 -> {
                        //发送消息 body{userid,username,msg}
                        UIEvent(Const.CODE2001.toString()).post()
                    }

                    Const.CODE2002 -> {
                        //限制使用
                        UIEvent(Const.CODE2002.toString()).post()
                    }

                    Const.CODE2003 -> {
                        //解除限制
                        UIEvent(Const.CODE2003.toString()).post()
                    }

                    Const.CODE2004 -> {
                        //更新策略
                        UIEvent(Const.CODE2004.toString()).post()
                    }

                    Const.CODE2005 -> {
                        //重启设备
                        UIEvent(Const.CODE2005.toString()).post()
                    }

                    Const.CODE2006 -> {
                        //恢复出厂
                        UIEvent(Const.CODE2006.toString()).post()
                    }

                    666 -> {
                        //消息确认回发mid 消息id

                    }

                    999 -> {
                        //错误消息 body msg(错误消息)
                    }

                    else -> {
                        //Log.d("message解析", socketData .message!!)
                    }
                }
            }
        } catch (e: Exception) {
            LogShow("解析问题$e")
        }
    }
}