//添加砍价优惠券 public static bool AddSharBargainCoupon(ShareBargainProductModel request, string Operator) { using (var dbHelper = new SqlDbHelper(ConnectionHelper.GetDecryptConn("Gungnir"))) { var sqlPrams = new SqlParameter[] { new SqlParameter("@pid", request.PID), new SqlParameter("@productName", request.ProductName), new SqlParameter("@OriginalPrice", request.OriginalPrice), new SqlParameter("@FinalPrice", request.FinalPrice), new SqlParameter("@Sequence", request.Sequence), new SqlParameter("@Image1", request.Image1 ?? ""), new SqlParameter("@WXShareTitle", request.WXShareTitle), new SqlParameter("@APPShareId", request.APPShareId), new SqlParameter("@Times", request.Times), new SqlParameter("@BeginDateTime", request.BeginDateTime), new SqlParameter("@EndDateTime", request.EndDateTime), new SqlParameter("@TotalStockCount", request.TotalStockCount), new SqlParameter("@Operator", Operator), new SqlParameter("@PageName", request.PageName), new SqlParameter("@SuccessfulHint", request.SuccessfulHint), new SqlParameter("@ShowBeginTime", request.ShowBeginTime), new SqlParameter("@ProductType", 2), new SqlParameter("@simpleDisplayName", request.SimpleDisplayName), new SqlParameter("@HelpCutPriceTimes", request.HelpCutPriceTimes), new SqlParameter("@CutPricePersonLimit", request.CutPricePersonLimit) }; return(dbHelper.ExecuteNonQuery(ShareBargainSqlText.Sql4AddSharBargainCoupon, CommandType.Text, sqlPrams) > 0); } }
public JsonResult AddSharBargainCoupon(ShareBargainProductModel request) { if (request.EndDateTime < request.BeginDateTime) { return(Json(new { Code = 0, Info = "下架时间必须大于上架时间" })); } if (request.ShowBeginTime >= request.BeginDateTime) { return(Json(new { Code = 0, Info = "开始显示时间必须小于上架时间" })); } var data = ShareBargainManager.CheckCouponPid(request.PID, request.BeginDateTime, request.EndDateTime); if (data.Code == 2) { return(Json(new { Code = 0, Info = "该时间段不能配置该商品" })); } var dat = ShareBargainManager.AddSharBargainCoupon(request, ThreadIdentity.Operator.Name); if (dat) { using (var client = new ShareBargainClient()) { client.RefreshShareBargainCache(); } return(Json(new { Code = 1, Info = "添加成功" })); } return(Json(new { Code = 0, Info = "添加失败,请稍后重试" })); }
public static bool UpdateBargainProductById(ShareBargainProductModel request) { string sql = @" UPDATE Configuration..BargainProduct WITH ( ROWLOCK ) SET BeginDateTime = @begindate , EndDateTime = @enddate , TotalStockCount = @totalstockcount , CurrentStockCount = @currentstockcount , PageName = @pagename , Sequence = @sequence , Image1 = @image , SuccessfulHint = @successfulhint , WXShareTitle = @wxshretitle , APPShareId = @appshareid , ShowBeginTime = @ShowBeginTime , SimpleDisplayName = @simpleDisplayName, ProductDetailImg1 = @ProductDetailImg1, ProductDetailImg2 = @ProductDetailImg2, ProductDetailImg3 = @ProductDetailImg3, ProductDetailImg4 = @ProductDetailImg4, ProductDetailImg5 = @ProductDetailImg5 WHERE PKID = @pkid AND IsDelete = 0;"; using (var dbHelper = new SqlDbHelper(ConnectionHelper.GetDecryptConn("Gungnir"))) { var sqlPrams = new SqlParameter[] { new SqlParameter("@sequence", request.Sequence), new SqlParameter("@image", request.Image1), new SqlParameter("@wxshretitle ", request.WXShareTitle), new SqlParameter("@appshareid", request.APPShareId), new SqlParameter("@begindate", request.BeginDateTime), new SqlParameter("@enddate", request.EndDateTime), new SqlParameter("@ShowBeginTime", request.ShowBeginTime), new SqlParameter("@totalstockcount", request.TotalStockCount), new SqlParameter("@currentstockcount", request.CurrentStockCount), new SqlParameter("@pagename", request.PageName), new SqlParameter("@successfulhint", request.SuccessfulHint), new SqlParameter("@pkid", request.PKID), new SqlParameter("@simpleDisplayName", request.SimpleDisplayName), new SqlParameter("@ProductDetailImg1", request.ProductDetailImg1), new SqlParameter("@ProductDetailImg2", request.ProductDetailImg2), new SqlParameter("@ProductDetailImg3", request.ProductDetailImg3), new SqlParameter("@ProductDetailImg4", request.ProductDetailImg4), new SqlParameter("@ProductDetailImg5", request.ProductDetailImg5) }; return(dbHelper.ExecuteNonQuery(sql, CommandType.Text, sqlPrams) > 0); } }
public bool UpdateBargainCouponById(ShareBargainProductModel request) { if (request.PKID == null) { return(false); } if (request.CurrentStockCount > request.TotalStockCount || request.EndDateTime < request.BeginDateTime || request.ShowBeginTime >= request.BeginDateTime) { return(false); } var dat = ShareBargainManager.UpdateBargainCouponById(request); if (dat) { using (var client = new ShareBargainClient()) { client.RefreshShareBargainCache(); } } return(dat); }
public static bool UpdateBargainCouponById(ShareBargainProductModel request) { using (var dbHelper = new SqlDbHelper(ConnectionHelper.GetDecryptConn("Gungnir"))) { var sqlPrams = new SqlParameter[] { new SqlParameter("@sequence", request.Sequence), new SqlParameter("@image", request.Image1), new SqlParameter("@wxshretitle ", request.WXShareTitle), new SqlParameter("@appshareid", request.APPShareId), new SqlParameter("@begindate", request.BeginDateTime), new SqlParameter("@enddate", request.EndDateTime), new SqlParameter("@ShowBeginTime", request.ShowBeginTime), new SqlParameter("@totalstockcount", request.TotalStockCount), new SqlParameter("@currentstockcount", request.CurrentStockCount), new SqlParameter("@pagename", request.PageName), new SqlParameter("@successfulhint", request.SuccessfulHint), new SqlParameter("@pkid", request.PKID), new SqlParameter("@simpleDisplayName", request.SimpleDisplayName) }; return(dbHelper.ExecuteNonQuery(ShareBargainSqlText.Sql4UpdateBargainCouponById, CommandType.Text, sqlPrams) > 0); } }
//修改砍价优惠券信息 public static bool UpdateBargainCouponById(ShareBargainProductModel request) => DALShareBargain.UpdateBargainCouponById(request);
//添加砍价优惠券信息 public static bool AddSharBargainCoupon(ShareBargainProductModel request, string Operator) => DALShareBargain.AddSharBargainCoupon(request, Operator);
/// <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="request"></param> /// <returns></returns> public ActionResult UpdateBargainCouponById(ShareBargainProductModel request) { if (request.PKID == null) { return(Json(new { Status = false, Msg = "保存失败" })); } if (request.CurrentStockCount > request.TotalStockCount || request.EndDateTime < request.BeginDateTime || request.ShowBeginTime > request.BeginDateTime) { return(Json(new { Status = false, Msg = "上下架时间或显示时间不正确" })); } //验证商品详情页图片:至少有一张 if (string.IsNullOrWhiteSpace(request.ProductDetailImg1) && string.IsNullOrWhiteSpace(request.ProductDetailImg2) && string.IsNullOrWhiteSpace(request.ProductDetailImg3) && string.IsNullOrWhiteSpace(request.ProductDetailImg4) && string.IsNullOrWhiteSpace(request.ProductDetailImg5)) { return(Json(new { Status = false, Msg = "优惠券类型商品至少添加一张商品详情图" })); } try { //保存前获取旧数据 var oldInfo = ShareBargainManager.FetchBargainProductById((int)request.PKID); //检查是否能重新上架 || 未上架 //if ((oldInfo.EndDateTime < DateTime.Now && request.EndDateTime >= DateTime.Now) // || request.BeginDateTime > DateTime.Now) //{ // var checkBackOn = ShareBargainManager.CheckProductBackOn((int)request.PKID); // if (!checkBackOn.Item1) // { // var backOnTime = checkBackOn.Item2 == default(DateTime) ? // oldInfo.EndDateTime.AddHours(48) : (DateTime)checkBackOn.Item2; // string msg = $"存在用户砍价未完成且发起砍价未满48小时,可重新上架时间:{backOnTime}"; // if (request.BeginDateTime > DateTime.Now) // { // msg = $"存在用户砍价未完成且发起砍价未满48小时,无法改为未上架(可提前下架),可修改时间:{backOnTime}"; // } // return Json(new { Status = false, Msg = msg }); // } //} //保存 var saveResult = ShareBargainManager.UpdateBargainCouponById(request); if (saveResult) { //记录操作日志 UpdateBargainProductLog(oldInfo, request); using (var client = new ShareBargainClient()) { var refreshResult = client.RefreshShareBargainCache(); if (!refreshResult.Success) { //缓存刷新失败补偿一次 var repeatRefreshResult = client.RefreshShareBargainCache(); if (!repeatRefreshResult.Success) { Logger.Log(Level.Warning, $"UpdateBargainCouponById,刷新缓存失败,ErrorMessage:{repeatRefreshResult.ErrorMessage}"); return(Json(new { Status = true, Msg = "数据保存成功,但刷新缓存失败,请手动刷新缓存" })); } } } } else { return(Json(new { Status = false, Msg = "保存失败" })); } } catch (Exception ex) { Logger.Log(Level.Error, $"UpdateBargainProductById异常,ex{ex}"); return(Json(new { Status = false, Msg = $"程序异常:{ex.Message},{ex.StackTrace}" })); } return(Json(new { Status = true, Msg = "保存成功" })); }
public JsonResult AddSharBargainCoupon(ShareBargainProductModel request) { request.ProductType = 2; if (request.EndDateTime < request.BeginDateTime) { return(Json(new { Code = 0, Info = "下架时间必须大于上架时间" })); } if (request.ShowBeginTime > request.BeginDateTime) { return(Json(new { Code = 0, Info = "开始显示时间必须小于等于上架时间" })); } if (request.BigCutBeforeCount != null && request.BigCutPriceRate != null) { if ((request.BigCutBeforeCount == null && request.BigCutPriceRate != null) || (request.BigCutBeforeCount != null && request.BigCutPriceRate == null)) { return(Json(new { Code = 0, Info = "请填写完整的金额分布人数和百分比" })); } if (request.BigCutBeforeCount <= 0 || request.BigCutPriceRate <= 0 || request.BigCutPriceRate >= 100) { return(Json(new { Code = 0, Info = "请填写正确的金额分布人数和百分比" })); } if (request.Times <= request.BigCutBeforeCount) { return(Json(new { Code = 0, Info = "金额分布人数应小于砍价次数" })); } } //验证商品详情页图片:至少有一张 if (string.IsNullOrWhiteSpace(request.ProductDetailImg1) && string.IsNullOrWhiteSpace(request.ProductDetailImg2) && string.IsNullOrWhiteSpace(request.ProductDetailImg3) && string.IsNullOrWhiteSpace(request.ProductDetailImg4) && string.IsNullOrWhiteSpace(request.ProductDetailImg5)) { return(Json(new { Code = 0, Info = "优惠券类型商品至少添加一张商品详情图" })); } try { var data = ShareBargainManager.CheckCouponPid(request.PID, request.BeginDateTime, request.EndDateTime); if (data.Code == 2) { return(Json(new { Code = 0, Info = "该时间段不能配置该优惠券" })); } var addResultPKID = ShareBargainManager.AddSharBargainCoupon(request, ThreadIdentity.Operator.Name); if (addResultPKID > 0) { AddSharBargainLog(addResultPKID); using (var client = new ShareBargainClient()) { var refreshResult = client.RefreshShareBargainCache(); if (!refreshResult.Success) { //缓存刷新失败补偿一次 var repeatRefreshResult = client.RefreshShareBargainCache(); if (!repeatRefreshResult.Success) { Logger.Log(Level.Warning, $"AddSharBargainCoupon,刷新缓存失败,ErrorMessage:{repeatRefreshResult.ErrorMessage}"); return(Json(new { Code = 1, Info = "添加成功,但刷新缓存失败,请手动刷新缓存" })); } } } return(Json(new { Code = 1, Info = "添加成功" })); } } catch (Exception ex) { Logger.Log(Level.Error, $"AddSharBargainCoupon异常,ex{ex}"); } return(Json(new { Code = 0, Info = "添加失败,请稍后重试" })); }
public static int AddSharBargainProduct(ShareBargainProductModel request, string Operator) => DALShareBargain.AddSharBargainProduct(request, Operator);
//添加砍价商品/优惠券 public static int AddSharBargainProduct(ShareBargainProductModel request, string Operator) { string sql = @"INSERT INTO Configuration..BargainProduct ([PID] ,[productName] ,[OriginalPrice] ,[FinalPrice] ,[Sequence] ,[Image1] ,[WXShareTitle] ,[APPShareId] ,[Times] ,[BeginDateTime] ,[EndDateTime] ,[TotalStockCount] ,[CurrentStockCount] ,[Operator] ,[CreateDateTime] ,[PageName] ,[SuccessfulHint] ,[ShowBeginTime] ,[ProductType] ,[SimpleDisplayName] ,[HelpCutPriceTimes] ,[CutPricePersonLimit] ,BigCutBeforeCount ,BigCutPriceRate ,ProductDetailImg1 ,ProductDetailImg2 ,ProductDetailImg3 ,ProductDetailImg4 ,ProductDetailImg5 ,[IsDelete]) VALUES (@PID ,@ProductName ,@OriginalPrice ,@FinalPrice ,@Sequence ,@Image1 ,@WXShareTitle ,@APPShareId ,@Times ,@BeginDateTime ,@EndDateTime ,@TotalStockCount ,@TotalStockCount ,@Operator ,GETDATE() ,@PageName ,@SuccessfulHint ,@ShowBeginTime ,@ProductType ,@SimpleDisplayName ,@HelpCutPriceTimes ,@CutPricePersonLimit ,@BigCutBeforeCount ,@BigCutPriceRate ,@ProductDetailImg1 ,@ProductDetailImg2 ,@ProductDetailImg3 ,@ProductDetailImg4 ,@ProductDetailImg5 ,0); SELECT SCOPE_IDENTITY()"; var result = 0; try { using (var dbHelper = new SqlDbHelper(ConnectionHelper.GetDecryptConn("Gungnir"))) { var sqlPrams = new SqlParameter[] { new SqlParameter("@PID", request.PID), new SqlParameter("@ProductName", request.ProductName), new SqlParameter("@OriginalPrice", request.OriginalPrice), new SqlParameter("@FinalPrice", request.FinalPrice), new SqlParameter("@Sequence", request.Sequence), new SqlParameter("@Image1", request.Image1 ?? ""), new SqlParameter("@WXShareTitle", request.WXShareTitle), new SqlParameter("@APPShareId", request.APPShareId), new SqlParameter("@Times", request.Times), new SqlParameter("@BeginDateTime", request.BeginDateTime), new SqlParameter("@EndDateTime", request.EndDateTime), new SqlParameter("@TotalStockCount", request.TotalStockCount), new SqlParameter("@Operator", Operator), new SqlParameter("@PageName", request.PageName), new SqlParameter("@SuccessfulHint", request.SuccessfulHint), new SqlParameter("@ShowBeginTime", request.ShowBeginTime), new SqlParameter("@ProductType", request.ProductType), new SqlParameter("@SimpleDisplayName", request.SimpleDisplayName), new SqlParameter("@HelpCutPriceTimes", request.HelpCutPriceTimes), new SqlParameter("@CutPricePersonLimit", request.CutPricePersonLimit), new SqlParameter("@BigCutBeforeCount", request.BigCutBeforeCount), new SqlParameter("@BigCutPriceRate", request.BigCutPriceRate), new SqlParameter("@ProductDetailImg1", request.ProductDetailImg1), new SqlParameter("@ProductDetailImg2", request.ProductDetailImg2), new SqlParameter("@ProductDetailImg3", request.ProductDetailImg3), new SqlParameter("@ProductDetailImg4", request.ProductDetailImg4), new SqlParameter("@ProductDetailImg5", request.ProductDetailImg5), }; int.TryParse(dbHelper.ExecuteScalar(sql, CommandType.Text, sqlPrams).ToString(), out result); } } catch (Exception ex) { throw; } return(result); }