using System; using System.Threading.Tasks; using Dapper; using Hncore.Infrastructure.Common; using Hncore.Infrastructure.Serializer; using MySql.Data.MySqlClient; using Newtonsoft.Json; namespace Hncore.Infrastructure.OperationLog { public class OperationLog { /// /// 物业id /// [JsonProperty("owner_id")] public int OwnerId { get; set; } /// /// 创建时间 /// [JsonProperty("createtime")] public DateTime CreateTime { get; set; } = DateTime.Now; /// /// 更新时间 /// [JsonProperty("updatetime")] public DateTime UpdateTime { get; set; } = DateTime.Now; /// /// 删除标记 /// [JsonProperty("deletetag")] public int DeleteTag { get; set; } = 0; /// /// 创建人id /// [JsonProperty("creatorid")] public int CreatorId { get; set; } /// /// 更新人id /// [JsonProperty("updatorid")] public int UpdatorId { get; set; } /// /// 操作目标id /// [JsonProperty("targetid")] public int TargetId { get; set; } /// /// 操作人名 /// [JsonProperty("operator")] public string Operator { get; set; } /// /// 操作说明 /// [JsonProperty("opdesc")] public string OpDesc { get; set; } /// /// 操作前 /// [JsonProperty("beforeop")] public string BeforeOp { get; set; } /// /// 操作后 /// [JsonProperty("afterop")] public string AfterOp { get; set; } /// /// 操作对象所在小区编码 /// [JsonProperty("projectcode")] public int ProjectCode { get; set; } /// /// 小区名称 /// [JsonProperty("estatename")] public string EstateName { get; set; } /// /// 操作权限编码 /// [JsonProperty("permissioncode")] public string PermissionCode { get; set; } /// /// 操作权限标签 /// [JsonProperty("permissionlabel")] public string PermissionLabel { get; set; } /// /// 操作菜单编码 /// [JsonProperty("optype")] public int OpType { get; set; } /// /// 操作菜单名称 /// [JsonProperty("optypename")] public string OpTypeName { get; set; } public void Write() { try { OperationLogStorage.WriteLog(this); } catch (Exception e) { LogHelper.Error("写操作日志失败", e); } } public void WriteAsync() { Task.Run(()=> Write()); } } internal class OperationLogStorage { private static string _devConn = "Server=rm-bp12e1533udh1827azo.mysql.rds.aliyuncs.com;Database=etor_property_test;User=etor_test;Password=etor_test!QAZ2wsx;Convert Zero Datetime=True;"; private static string _proConn = "Server=rm-bp1z48e1qz15k7q9qo.mysql.rds.aliyuncs.com;Database=etor_property_pro;User=sadmin;Password=!QAZ2wsx;Convert Zero Datetime=True;"; private static string _insertSql = @"INSERT INTO etor_property_operationlog ( owner_id, createtime, updatetime, deletetag, creatorid, updatorid, targetid, operator, opdesc, beforeop, afterop, projectcode, estatename, permissioncode, permissionlabel, optype, optypename ) VALUES (@OwnerId,@CreateTime,@UpdateTime,@DeleteTag,@CreatorId,@UpdatorId,@TargetId,@Operator,@OpDesc,@BeforeOp,@AfterOp,@ProjectCode,@EstateName,@PermissionCode,@PermissionLabel,@OpType,@OpTypeName);"; public static void WriteLog(OperationLog log) { string connString = EnvironmentVariableHelper.IsAspNetCoreProduction ? _proConn : _devConn; using (var conn = new MySqlConnection(connString)) { conn.Execute(_insertSql, log); } } } }