using BZFAStandardLib;
using Newtonsoft.Json;
using System;
namespace MainForm.ClassFile.XiaomiAPI
{
///
/// 小米 MqttClient类 - API拓展方法
/// 操作记录⽇志
/// 供应商软件每次启动/关闭/重新加载项⽬时,以操作记录⽇志完成上报相应事件
///
public partial class XiaomiMqttClient_Extend : XiaomiMqttClient
{
///
/// 操作记录⽇志- 事件Id
///
private static string OperateLogId { get; set; } = "operate_log/operate_log";
///
/// 操作记录⽇志 - 事件方法
///
/// 事件数据;Json
/// 自定义事件Id;如:guid
///
public static (int,string) Write_OperateLog(OperateLogRequest request, string dataId = "")
{
int result =0;
string resultStr = "";
string msg = JsonConvert.SerializeObject(request);
byte[] bytes = ToUTF8(msg);
// 发送
if (string.IsNullOrEmpty(dataId))
result = Write(OperateLogId, bytes);
else
result = WriteWithDataId(OperateLogId, bytes, dataId);
var try1 = Enum.TryParse(result.ToString(), out XiaomiMqttResponse_ErrCode errCode);
if (try1)
resultStr = errCode.ToString();
else
resultStr = XiaomiMqttResponse_ErrCode.ERR_UNKOWN.ToString();
string logPath = GlobalContext.MqttOperateLogDir + "OperationRecord" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
FileOperate.NewTxtFile(logPath, DateTime.Now+"===>MQTT【操作记录】提交:" + msg + "\r\n==>提交结果:" + resultStr + "");
return (result, resultStr);
}
///
/// 操作记录⽇志 - 参数
///
public class OperateLogRequest
{
///
/// 操作记录⽇志标识符
/// string[1,128] operate_log/operate_log
///
public string id { get; set; } = "operate_log/operate_log";
///
/// 软件版本号
/// 供应商软件版本号,如:V1.2.4
///
public string software_version { get; set; } = string.Empty;
///
/// 操作时间
/// 供应商软件开启/关闭/重新加载项⽬时间,精确到毫秒。如:2022-06-01 14:27:57.283
///
public string operate_time { get; set; } = string.Empty;
///
/// 操作动作
/// 对应软件开启/关闭/重新加载项⽬,枚举值如下:
/// startup
/// shutdown
/// reload
///
public string operate_action { get; set; } = string.Empty;
///
/// 动作参数
/// 选填,附带额外的信息
///
public string action_param { get; set; } = string.Empty;
///
/// 操作模块
/// 选填
///
public string operate_module { get; set; } = string.Empty;
///
/// 操作⻚⾯
/// 选填
///
public string operate_page { get; set; } = string.Empty;
///
/// 当前进程
/// 进程ID
///
public string current_process { get; set; } = string.Empty;
///
/// 操作描述
/// 如:供应商软件开启/关闭/重新加载项⽬
///
public string operate_desc { get; set; } = string.Empty;
///
/// 操作结果
///
public string operate_result { get; set; } = "success";
///
/// 操作账号名
/// 填当前操作⽤⼾,如⽆则填default
///
public string operator_name { get; set; } = "default";
}
}
}