/// <summary> /// 记录操作日志 /// </summary> /// <param name="operationLogModel"></param> /// <param name="funNameString"></param> private void SetOperationLog(SalePromotionActivityLogModel operationLogModel, string funNameString) { try { using (var logClient = new SalePromotionActivityLogClient()) { var logResult = logClient.InsertAcitivityLogAndDetail(operationLogModel); if (!(logResult.Success && logResult.Result)) { Logger.Log(Level.Warning, $"{funNameString}操作日志记录失败ErrorMessage:{logResult.ErrorMessage}"); } } } catch (Exception ex) { Logger.Log(Level.Error, $"{funNameString},操作日志记录异常,ex{ex}"); } }
/// <summary> /// 删除操作日志记录 /// </summary> /// <param name="PKID"></param> /// <returns></returns> private void DeleteLog(int PKID) { try { var operationLogModel = new SalePromotionActivityLogModel() { ReferId = "ShareBarginProduct_" + PKID.ToString(), ReferType = "ShareBargin", OperationLogType = "ShareBargin_Delete", CreateDateTime = DateTime.Now.ToString(), CreateUserName = this.User.Identity.Name, //日志详情 LogDetailList = new List <SalePromotionActivityLogDetail>() }; SetOperationLog(operationLogModel, "DeleteBargainProductById"); } catch (Exception ex) { Logger.Log(Level.Warning, $"DeleteBargainProductById操作日志记录异常{ex}"); } }
public void InsertLogAndDetail() { var operationLogModel = new SalePromotionActivityLogModel() { ReferId = "日志来源id(活动id)", ReferType = "日志来源类型(打折活动)", OperationLogType = "操作类型(新增活动)", CreateDateTime = DateTime.Now.ToString(), CreateUserName = "******", //日志详情 LogDetailList = new List <SalePromotionActivityLogDetail>() { new SalePromotionActivityLogDetail() { OperationLogType = "新增商品", Property = "pid", NewValue = "商品的关键信息", }, new SalePromotionActivityLogDetail() { OperationLogType = "修改活动", Property = "活动描述", OldValue = "旧的活动描述", NewValue = "新的活动描述", }, new SalePromotionActivityLogDetail() { OperationLogType = "删除商品", Property = "pid", OldValue = "商品的关键信息", }, } }; using (var client = new SalePromotionActivityLogClient()) { var result = client.InsertAcitivityLogAndDetail(operationLogModel).Result; Assert.IsTrue(result); } }
/// <summary> /// 删除大翻牌活动操作日志 /// </summary> /// <param name="pkid"></param> private void DeleteFormLog(int?pkid) { try { var operationLogType = "BigBrandReward_Delete"; var operationLogModel = new SalePromotionActivityLogModel() { ReferId = "BigBrandReward_" + pkid, ReferType = "BigBrandReward", OperationLogType = operationLogType, CreateDateTime = DateTime.Now.ToString(), CreateUserName = this.User.Identity.Name, LogDetailList = new List <SalePromotionActivityLogDetail>() }; SetOperationLog(operationLogModel, "DeleteFormLog"); } catch (Exception ex) { Logger.Log(Level.Warning, ex, $"DeleteFormLog异常,ex:{ex}"); } }
public async Task <OperationResult <bool> > InsertAcitivityLogAndDetailAsync(SalePromotionActivityLogModel model) { return(await SalePromotionActivityLogManager.InsertAcitivityLogAndDetailAsync(model)); }
public static async Task <OperationResult <bool> > InsertAcitivityLogAndDetailAsync(SalePromotionActivityLogModel model) { return(await OperationResult.FromResultAsync(DalSalePromotionActivityLog.InsertAcitivityLogAndDetailAsync(model))); }
/// <summary> /// 保存大翻牌配置操作日志 /// </summary> /// <param name="oldInfo"></param> /// <param name="newInfo"></param> /// <param name="oldWheel"></param> /// <param name="newWheel"></param> private void SubmitFormLog(BigBrandRewardListEntity oldInfo, BigBrandRewardListEntity newInfo, IEnumerable <BigBrandWheelEntity> oldWheel, IEnumerable <BigBrandWheelEntity> newWheel) { try { var isAdd = oldInfo?.PKID > 0 ? false : true; var operationLogType = isAdd ? "BigBrandReward_Insert" : "BigBrandReward_Update"; var operationLogModel = new SalePromotionActivityLogModel() { ReferId = "BigBrandReward_" + newInfo.PKID, ReferType = "BigBrandReward", OperationLogType = operationLogType, CreateDateTime = DateTime.Now.ToString(), CreateUserName = this.User.Identity.Name, LogDetailList = new List <SalePromotionActivityLogDetail>() }; if (newInfo.Title != oldInfo?.Title) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "名称", NewValue = newInfo.Title, OldValue = isAdd ? "" : oldInfo?.Title }); } if (newInfo.BigBrandType != oldInfo?.BigBrandType) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "抽奖类型", NewValue = newInfo.BigBrandType == 1 ? "普通抽奖" : (newInfo.BigBrandType == 2 ? "积分抽奖" : "定人群抽奖"), OldValue = isAdd ? "" : oldInfo?.BigBrandType == 1 ? "普通抽奖" : (oldInfo?.BigBrandType == 2 ? "积分抽奖" : "定人群抽奖") }); } if (newInfo.PreTimes != oldInfo?.PreTimes) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "抽奖次数", NewValue = newInfo.PreTimes.ToString(), OldValue = isAdd ? "" : oldInfo?.PreTimes.ToString() }); } if (newInfo.CompletedTimes != oldInfo?.CompletedTimes) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "抽奖次数(分享后)", NewValue = newInfo.CompletedTimes.ToString(), OldValue = isAdd ? "" : oldInfo?.CompletedTimes.ToString() }); } if (newInfo.Period != oldInfo?.Period || newInfo.PeriodType != oldInfo?.PeriodType) { var newType = newInfo.PeriodType == 1 ? "小时" : (newInfo.PeriodType == 2 ? "天" : "月"); var oldType = isAdd ? "" : oldInfo?.PeriodType == 1 ? "小时" : (oldInfo?.PeriodType == 2 ? "天" : "月"); operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "抽奖周期", NewValue = newInfo.Period + newType, OldValue = isAdd ? "" : oldInfo?.Period + oldType }); } if (newInfo.StartDateTime != oldInfo?.StartDateTime) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "开始时间", NewValue = newInfo.StartDateTime.ToString(), OldValue = isAdd ? "" : oldInfo?.StartDateTime.ToString() }); } if (newInfo.NeedIntegral != oldInfo?.NeedIntegral) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "单次抽奖消耗积分", NewValue = newInfo.NeedIntegral.ToString(), OldValue = isAdd ? "" : oldInfo?.NeedIntegral.ToString() }); } if (newInfo.AfterLoginType != oldInfo?.AfterLoginType) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "抽奖验证类型", NewValue = newInfo.AfterLoginType == 1 ? "微信授权" : "", OldValue = isAdd ? "" : oldInfo?.AfterLoginType == 1 ? "微信授权" : "" }); } if (newInfo.AfterLoginValue != oldInfo?.AfterLoginValue) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "必须关注公众号", NewValue = GetWXName(newInfo.AfterLoginValue), OldValue = GetWXName(oldInfo?.AfterLoginValue) }); } if (newWheel?.Count() > 0 || oldWheel?.Count() > 0) { var logModel = new SalePromotionActivityLogDetail() { Property = "对应奖池", NewValue = GetWheelListLogStr(newWheel), OldValue = isAdd ? "" : GetWheelListLogStr(oldWheel) }; if (!(!string.IsNullOrWhiteSpace(logModel.OldValue) && logModel.OldValue == logModel.NewValue)) { operationLogModel.LogDetailList.Add(logModel); } } SetOperationLog(operationLogModel, "SubmitFormLog"); } catch (Exception ex) { Logger.Log(Level.Warning, ex, $"SubmitFormLog异常,ex:{ex}"); } }
/// <summary> /// 修改砍价配置操作日志 /// </summary> /// <param name="oldModel"></param> /// <param name="newModel"></param> private void UpdateBargainProductLog(ShareBargainProductModel oldModel, ShareBargainProductModel newModel) { try { var operationLogModel = new SalePromotionActivityLogModel() { ReferId = "ShareBarginProduct_" + newModel.PKID.ToString(), ReferType = "ShareBargin", OperationLogType = "ShareBargin_UpdateShareBargin", CreateDateTime = DateTime.Now.ToString(), CreateUserName = this.User.Identity.Name, //日志详情 LogDetailList = new List <SalePromotionActivityLogDetail>() }; if (oldModel.BeginDateTime != newModel.BeginDateTime) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "上架时间", OldValue = oldModel.BeginDateTime.ToString(), NewValue = newModel.BeginDateTime.ToString(), }); } if (oldModel.EndDateTime != newModel.EndDateTime) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "下架时间", OldValue = oldModel.EndDateTime.ToString(), NewValue = newModel.EndDateTime.ToString(), }); } if (oldModel.ShowBeginTime != newModel.ShowBeginTime) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品开始显示时间", OldValue = oldModel.ShowBeginTime.ToString(), NewValue = newModel.ShowBeginTime.ToString(), }); } if (oldModel.SimpleDisplayName != newModel.SimpleDisplayName) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品简称", OldValue = oldModel.SimpleDisplayName, NewValue = newModel.SimpleDisplayName }); } if (oldModel.OriginalPrice != newModel.OriginalPrice) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品售价", OldValue = oldModel.OriginalPrice.ToString("0.00"), NewValue = newModel.OriginalPrice.ToString("0.00") }); } if (oldModel.FinalPrice != newModel.FinalPrice) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品活动价", OldValue = oldModel.FinalPrice.ToString("0.00"), NewValue = newModel.FinalPrice.ToString("0.00") }); } if (oldModel.TotalStockCount != newModel.TotalStockCount) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品库存上限", OldValue = oldModel.TotalStockCount.ToString(), NewValue = newModel.TotalStockCount.ToString() }); } if (oldModel.Sequence != newModel.Sequence) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品显示顺序", OldValue = oldModel.Sequence.ToString(), NewValue = newModel.Sequence.ToString() }); } if (oldModel.Image1 != newModel.Image1 && (!string.IsNullOrWhiteSpace(oldModel.Image1) || !string.IsNullOrWhiteSpace(newModel.Image1))) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品宣传图片", OldValue = oldModel.Image1, NewValue = newModel.Image1 }); } if (oldModel.WXShareTitle != newModel.WXShareTitle) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "小程序分享标题", OldValue = oldModel.WXShareTitle, NewValue = newModel.WXShareTitle }); } if (oldModel.APPShareId != newModel.APPShareId) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "APP分享ID", OldValue = oldModel.APPShareId, NewValue = newModel.APPShareId }); } if (oldModel.ProductDetailImg1 != newModel.ProductDetailImg1) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品详情图片1", OldValue = oldModel.ProductDetailImg1, NewValue = newModel.ProductDetailImg1 }); } if (oldModel.ProductDetailImg2 != newModel.ProductDetailImg2) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品详情图片2", OldValue = oldModel.ProductDetailImg2, NewValue = newModel.ProductDetailImg2 }); } if (oldModel.ProductDetailImg3 != newModel.ProductDetailImg3) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品详情图片3", OldValue = oldModel.ProductDetailImg3, NewValue = newModel.ProductDetailImg3 }); } if (oldModel.ProductDetailImg4 != newModel.ProductDetailImg4) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品详情图片4", OldValue = oldModel.ProductDetailImg4, NewValue = newModel.ProductDetailImg4 }); } if (oldModel.ProductDetailImg5 != newModel.ProductDetailImg5) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "商品详情图片5", OldValue = oldModel.ProductDetailImg5, NewValue = newModel.ProductDetailImg5 }); } SetOperationLog(operationLogModel, "UpdateBargainProductById"); } catch (Exception ex) { Logger.Log(Level.Warning, $"UpdateBargainProductById操作日志异常:{ex}"); } }
/// <summary> /// 修改全局配置记录操作日志 /// </summary> /// <param name="oldModel"></param> /// <param name="newModel"></param> private void UpdateGlobalConfiguctLog(BargainGlobalConfigModel oldModel, BargainGlobalConfigModel newModel) { try { oldModel = oldModel == null ? new BargainGlobalConfigModel() : oldModel; var operationLogModel = new SalePromotionActivityLogModel() { ReferId = "ShareBargin_GlobalConfig", ReferType = "ShareBargin", OperationLogType = "ShareBargin_UpdateGlobalConfig", CreateDateTime = DateTime.Now.ToString(), CreateUserName = this.User.Identity.Name, LogDetailList = new List <SalePromotionActivityLogDetail>() }; if (oldModel.QAData != newModel.QAData) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "问答组", OldValue = GetQALogString(oldModel.BargainRule), NewValue = GetQALogString(newModel.BargainRule) }); } if (oldModel.RulesCount != newModel.RulesCount) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "活动规则数量", OldValue = oldModel.RulesCount.ToString(), NewValue = newModel.RulesCount.ToString() }); } if (oldModel.SliceShowText != newModel.SliceShowText) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "砍价成功轮播文案", OldValue = oldModel.SliceShowText, NewValue = newModel.SliceShowText, }); } if (oldModel.WXAPPListShareText != newModel.WXAPPListShareText) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "小程序列表分享文案", OldValue = oldModel.WXAPPListShareText, NewValue = newModel.WXAPPListShareText, }); } if (oldModel.WXAPPListShareImg != newModel.WXAPPListShareImg) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "小程序列表分享图片", OldValue = oldModel.WXAPPListShareImg, NewValue = newModel.WXAPPListShareImg, }); } if (oldModel.APPListShareTag != newModel.APPListShareTag) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "APP列表页分享标签", OldValue = oldModel.APPListShareTag, NewValue = newModel.APPListShareTag, }); } if (oldModel.WXAPPDetailShareText != newModel.WXAPPDetailShareText) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "小程序详情分享文案", OldValue = oldModel.WXAPPDetailShareText, NewValue = newModel.WXAPPDetailShareText }); } if (oldModel.AppDetailShareTag != newModel.AppDetailShareTag) { operationLogModel.LogDetailList.Add(new SalePromotionActivityLogDetail() { Property = "APP详情分享标签", OldValue = oldModel.AppDetailShareTag, NewValue = newModel.AppDetailShareTag }); } SetOperationLog(operationLogModel, "UpdateGlobalConfiguctLog"); } catch (Exception ex) { Logger.Log(Level.Warning, $"UpdateGlobalConfiguctLog操作日志异常:{ex}"); } }
/// <summary> /// 插入操作日志 包含日志详情 /// </summary> /// <param name="model"></param> /// <returns></returns> public static async Task <bool> InsertAcitivityLogAndDetailAsync(SalePromotionActivityLogModel model) { bool result = true; int PKID; string SqlInsertLog = @"Insert into [Activity].[dbo].[SalePromotionActivityLog]( [ReferId],[ReferType],OperationLogType, [CreateDateTime],[CreateUserName]) values(@ReferId,@ReferType,@OperationLogType,getdate(),@CreateUserName); SELECT SCOPE_IDENTITY();"; using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Gungnir"].ConnectionString)) { conn.Open(); using (var tran = conn.BeginTransaction()) { using (var cmd = new SqlCommand("", conn, tran)) { try { //插入日志 cmd.CommandText = SqlInsertLog; cmd.Parameters.Add(new SqlParameter("@ReferId", model.ReferId ?? "")); cmd.Parameters.Add(new SqlParameter("@ReferType", model.ReferType ?? "")); cmd.Parameters.Add(new SqlParameter("@OperationLogType", model.OperationLogType ?? "")); cmd.Parameters.Add(new SqlParameter("@CreateUserName", model.CreateUserName ?? "")); //获取自增主键 int.TryParse((await cmd.ExecuteScalarAsync()).ToString(), out PKID); cmd.Parameters.Clear(); //插入日志详情 if (PKID > 0 && model?.LogDetailList?.Count > 0) { var logTmp = model.LogDetailList.Select(item => new { FPKID = PKID, OperationLogType = item.OperationLogType, Property = item.Property, OldValue = item.OldValue, NewValue = item.NewValue }); DataTable productDT = ToDataTable(logTmp); cmd.CommandText = @"CREATE TABLE #logTmp([FPKID] [int] NOT NULL, [OperationLogType] [nvarchar](100) NULL, [Property] [nvarchar](100) NULL, [OldValue] [nvarchar](1000) NULL, [NewValue] [nvarchar](1000) NULL);" ; await cmd.ExecuteNonQueryAsync(); using (SqlBulkCopy bulkcopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.KeepIdentity, tran)) { bulkcopy.BulkCopyTimeout = 660; bulkcopy.DestinationTableName = "#logTmp"; bulkcopy.WriteToServer(productDT); bulkcopy.Close(); } string sqlInsert = @"insert into [Activity].[dbo].[SalePromotionActivityLogDetail]( [FPKID],[OperationLogType],[Property],[OldValue],[NewValue]) select [FPKID],[OperationLogType],[Property],[OldValue],[NewValue] from #logTmp"; cmd.CommandText = sqlInsert; await cmd.ExecuteNonQueryAsync(); } if (result) { tran.Commit(); } else { tran.Rollback(); } } catch (Exception e) { result = false; tran.Rollback(); throw; } } } } return(result); }