/// <summary> /// 创建店铺优惠活动 /// </summary> /// <param name="o">店铺优惠活动</param> /// <returns></returns> public int PromotionActivityCreate(Promotion.Activity o) { if (o.Global) { o.ItemScope = string.Empty; } if (o.LimitType == Promotion.LimitType.None) { o.LimitValue = 0; } return(Try(nameof(PromotionActivityCreate), () => { var cmd = SqlBuilder.Insert("Activity") .Column("Type", o.Type) .Column("Name", o.Name) .Column("Title", o.Title) .Column("Global", o.Global) .Column("WarmUp", o.WarmUp) .Column("Infinite", o.Infinite) .Column("Picture", o.Picture ?? string.Empty) .Column("StartedOn", o.StartedOn) .Column("StoppedOn", o.StoppedOn) .Column("Platform", o.Platform) .Column("MediaScope", o.MediaScope ?? string.Empty) .Column("ItemScope", o.ItemScope ?? string.Empty) .Column("LimitType", o.LimitType) .Column("LimitValue", o.LimitValue) .Column("FreightFree", o.FreightFree) .Column("FreightFreeExclude", o.FreightFreeExclude ?? string.Empty) .Column("ExternalUrl", o.ExternalUrl ?? string.Empty) .Column("RuleData", o.RuleData) .Column("SellerId", o.SellerId) .Column("SellerName", o.SellerName) .Column("Status", o.Status) .Column("CreatedOn", o.CreatedOn) .Column("ModifiedBy", o.ModifiedBy) .Column("ModifiedOn", o.ModifiedOn) .ToCommand(true); return PromotionConn.ExecuteScalar <int>(cmd); })); }
/// <summary> /// 更新店铺优惠活动 /// </summary> /// <param name="o">店铺优惠活动</param> /// <returns></returns> public bool PromotionActivityUpdate(Promotion.Activity o) { if (o.LimitType == Promotion.LimitType.None) { o.LimitValue = 0; } return(Try(nameof(PromotionActivityUpdate), () => { var cmd = SqlBuilder.Update("Activity") .Column("Name", o.Name) .Column("Title", o.Title) .Column("Global", o.Global) .Column("WarmUp", o.WarmUp) .Column("Infinite", o.Infinite) .Column("Picture", o.Picture) .Column("StartedOn", o.StartedOn) .Column("StoppedOn", o.StoppedOn) .Column("Platform", o.Platform) .Column("MediaScope", o.MediaScope) .Column("ItemScope", o.ItemScope) .Column("LimitType", o.LimitType) .Column("LimitValue", o.LimitValue) .Column("FreightFree", o.FreightFree) .Column("FreightFreeExclude", o.FreightFreeExclude) .Column("ExternalUrl", o.ExternalUrl) .Column("RuleData", o.RuleData) //.Column("SellerId", o.SellerId) //.Column("SellerName", o.SellerName) .Column("Status", o.Status) //.Column("CreatedOn", o.CreatedOn) .Column("ModifiedBy", o.ModifiedBy) .Column("ModifiedOn", o.ModifiedOn) .Where("Id=@id", new { o.Id }) .ToCommand(); return PromotionConn.Execute(cmd) > 0; })); }
public async Task <IActionResult> Default(int id, bool global, Promotion.Activity model, Promotion.Activity.Rule[] rules) { var now = DateTime.Now; var result = new Result(); if (id < 0) { result.Message = "参数错误"; return(Json(result)); } if (model.Name.IsNullOrEmpty()) { result.Error("请输入活动名称"); return(Json(result)); } if (model.Name.Length > 100) { result.Error("活动名称限制为100个字符内"); return(Json(result)); } if (model.Title.IsNullOrEmpty()) { result.Error("请输入活动标题"); return(Json(result)); } if (model.Title.Length > 100) { result.Error("活动标题限制为100个字符内"); return(Json(result)); } if (model.StartedOn < now.AddHours(-1)) { result.Error("活动开始时间不可小于当前时间"); return(Json(result)); } if (model.StoppedOn < model.StartedOn) { result.Error("活动结束时间不可早于活动开始时间"); return(Json(result)); } if (rules == null || rules.Length < 1) { result.Message = "请设置优惠规则"; return(Json(result)); } rules = rules.Where(x => x.Threshold > 0 && x.Discount > 0).OrderByDescending(x => x.Threshold).ToArray(); if (rules.Length < 1) { result.Message = "请设置优惠规则"; return(Json(result)); } for (var i = 0; i < rules.Length; i++) { var urle = rules[i]; if (i > 0) { var pre = rules[i - 1]; //if (model.Type == 0 && urle.Discount < pre.Discount)//保证当前层级优惠比上一级大 //{ // result.Message = "优惠规则不合法"; // return Json(result); //} //if (urle.SendGift && string.IsNullOrEmpty(urle.GiftData)) //{ // if (string.IsNullOrEmpty(urle.GiftData)) // { // result.Message = "赠品规则不合法"; // return Json(result); // } //} //if (urle.SendCoupon) //{ // if (string.IsNullOrEmpty(urle.CouponData)) // { // result.Message = "优惠券规则不合法"; // return Json(result); // } //} } //如果当前层级包邮 之后的层级都必须包邮 且不包邮地区都一样 //if (urle.) //{ // for (var j = i; j < len; j++) // { // rules[j].FreightFreeSelected = true; // rules[j].FreightFreeExclude = urle.FreightFreeExclude; // } //} } if (id > 0) { var old = DefaultStorage.PromotionActivityGet(id); if (old == null) { result.Message = "数据不存在"; return(Json(result)); } var status = await TryUpdateModelAsync(model); if (status) { old.RuleData = JsonConvert.SerializeObject(rules); result.Status = DefaultStorage.PromotionActivityUpdate(old); if (!result.Status) { result.Message = "更新失败"; } } else { result.Message = "参数有误"; } return(Json(result)); } //检查时间段内是否有其它有效活动 model.Global = global; model.FreightFreeExclude = string.Empty; model.ExternalUrl = string.Empty; model.RuleData = JsonConvert.SerializeObject(rules); model.SellerId = User.Id; model.SellerName = User.Name; model.Status = true; model.CreatedOn = now; model.ModifiedBy = ""; model.ModifiedOn = now; var newId = DefaultStorage.PromotionActivityCreate(model); if (newId > 0) { result.Success(); } return(Json(result)); }