123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- using BZFAStandardLib;
- using Newtonsoft.Json;
- using System;
- namespace MainForm.ClassFile.XiaomiAPI
- {
- /// <summary>
- /// 小米 MqttClient类 - API拓展方法
- /// 操作记录⽇志
- /// 供应商软件每次启动/关闭/重新加载项⽬时,以操作记录⽇志完成上报相应事件
- /// </summary>
- public partial class XiaomiMqttClient_Extend : XiaomiMqttClient
- {
- /// <summary>
- /// 操作记录⽇志- 事件Id
- /// </summary>
- private static string OperateLogId { get; set; } = "operate_log/operate_log";
- /// <summary>
- /// 操作记录⽇志 - 事件方法
- /// </summary>
- /// <param name="msg">事件数据;Json</param>
- /// <param name="dataId">自定义事件Id;如:guid</param>
- /// <returns></returns>
- 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);
- }
- /// <summary>
- /// 操作记录⽇志 - 参数
- /// </summary>
- public class OperateLogRequest
- {
- /// <summary>
- /// 操作记录⽇志标识符
- /// string[1,128] operate_log/operate_log
- /// </summary>
- public string id { get; set; } = "operate_log/operate_log";
- /// <summary>
- /// 软件版本号
- /// 供应商软件版本号,如:V1.2.4
- /// </summary>
- public string software_version { get; set; } = string.Empty;
- /// <summary>
- /// 操作时间
- /// 供应商软件开启/关闭/重新加载项⽬时间,精确到毫秒。如:2022-06-01 14:27:57.283
- /// </summary>
- public string operate_time { get; set; } = string.Empty;
- /// <summary>
- /// 操作动作
- /// 对应软件开启/关闭/重新加载项⽬,枚举值如下:
- /// startup
- /// shutdown
- /// reload
- /// </summary>
- public string operate_action { get; set; } = string.Empty;
- /// <summary>
- /// 动作参数
- /// 选填,附带额外的信息
- /// </summary>
- public string action_param { get; set; } = string.Empty;
- /// <summary>
- /// 操作模块
- /// 选填
- /// </summary>
- public string operate_module { get; set; } = string.Empty;
- /// <summary>
- /// 操作⻚⾯
- /// 选填
- /// </summary>
- public string operate_page { get; set; } = string.Empty;
- /// <summary>
- /// 当前进程
- /// 进程ID
- /// </summary>
- public string current_process { get; set; } = string.Empty;
- /// <summary>
- /// 操作描述
- /// 如:供应商软件开启/关闭/重新加载项⽬
- /// </summary>
- public string operate_desc { get; set; } = string.Empty;
- /// <summary>
- /// 操作结果
- /// </summary>
- public string operate_result { get; set; } = "success";
- /// <summary>
- /// 操作账号名
- /// 填当前操作⽤⼾,如⽆则填default
- /// </summary>
- public string operator_name { get; set; } = "default";
- }
- }
- }
|