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