Newer
Older
br-data-forwarding / src / main / java / com / casic / common / general / IMEIFrame.java
package com.casic.common.general;

import com.alibaba.fastjson.JSONObject;
import com.casic.common.CasicFrame;
import lombok.Data;

import java.time.LocalDateTime;
import java.time.ZoneId;

@Data
public class IMEIFrame extends CasicFrame {

    final String MESSAGE_TYPE_IDENTIFY = "05";
    final String MESSAGE_TYPE_STRING = "StartupRequest";
    final String MESSAGE_TYPE_DESCRIPTION = "开机上报消息";

    String imei;
    String iccid;

    @Override
    public String getDevTypeName() {
        return "Methane";
    }

    @Override
    public String toString() {
        return "{" +
                MESSAGE_TYPE_DESCRIPTION + ":" + MESSAGE_TYPE_STRING + ";" +
                "设备编号:" + getDeviceCode() + ";" +
                "上报时间:" + getUptime() + ";" +
                "IMEI:" + imei + ";" +
                "ICCID:" + iccid +
                "}";
    }

    @Override
    public JSONObject toJSON() {
        JSONObject obj = new JSONObject();

        obj.put("mType", MESSAGE_TYPE_STRING);
        obj.put("devType", getDevTypeName());
        obj.put("devCode", getDeviceCode());

        JSONObject body = new JSONObject();
        body.put("bType", getDevTypeName() + "Data");
        body.put("imei", imei);
        body.put("iccid", iccid);

        obj.put("mBody", body);
        obj.put("ts", LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
        return obj;
    }

    @Override
    public void parseMessageBody() {
        imei = getMessageBody().getString("IMEI");
        iccid = getMessageBody().getString("ICCID");
    }
}