/// <summary> /// get default value /// </summary> public object GetDefaultValue(ActivityEditInput activityEdit, Activity activity) { if (activityEdit.ProductId <= 0) { return(null); } var isDefault = true; var result = new MemberDiscountActivity(); if (!string.IsNullOrWhiteSpace(activity.Value)) { isDefault = false; result = JsonConvert.DeserializeObject <MemberDiscountActivity>(activity.Value); } //grade price var productSkus = Resolve <IProductSkuService>().GetGradePrice(activityEdit.ProductId).ToList(); if (isDefault) { result.DiscountList = productSkus.Select(g => GetDefaultSku(g)).ToList(); return(result); } //update data var discountList = new List <MemberDiscountActivityItem>(); productSkus.ForEach(item => { var tempDiscount = result.DiscountList.Find(p => p.ProductSkuId == item.Id); if (tempDiscount == null) { discountList.Add(GetDefaultSku(item)); } else { //productSku tempDiscount.GradeItems.ForEach(grade => { var tempGrade = item.GradePriceList.Find(g => g.Id == grade.Id); if (tempGrade != null) { if (grade.Name != tempGrade.Name) { grade.Name = tempGrade.Name; } } else { tempDiscount.GradeItems.Remove(grade); } }); discountList.Add(tempDiscount); } }); result.DiscountList = discountList.OrderBy(p => p.ProductSkuId).ToList(); return(result); }
public ApiResult <ActivityEditOutput> GetView([FromQuery] ActivityEditInput input) { if (!this.IsFormValid()) { return(ApiResult.Failure <ActivityEditOutput>(this.FormInvalidReason())); } var model = Resolve <IActivityApiService>().GetView(input); return(ApiResult.Success(model)); }
/// <summary> /// Sets the default. /// 设置默认值 /// </summary> public object GetDefaultValue(ActivityEditInput activityEdit, Activity activity) { var groupBuyActivity = new GroupBuyActivity(); if (activityEdit.ProductId > 0) { var product = Resolve <IProductService>().GetSingle(r => r.Id == activityEdit.ProductId); if (product != null) { var productSkus = Resolve <IProductSkuService>().GetList(r => r.ProductId == product.Id); // 新增活动 if (activity.Id <= 0) { activity.Name = "拼团" + product.Name; productSkus.Foreach(r => { var buySkuProduct = AutoMapping.SetValue <GroupBuySkuProduct>(r); groupBuyActivity.SkuProducts.Add(buySkuProduct); }); } else { var groupBuyData = activity.Value.ToObject <GroupBuyActivity>(); groupBuyActivity = AutoMapping.SetValue(groupBuyData, groupBuyActivity); groupBuyActivity.SkuProducts = new List <GroupBuySkuProduct>(); // 编辑活动,sku使用 productSkus.Foreach(r => { var buySkuProduct = AutoMapping.SetValue <GroupBuySkuProduct>(r); var dataSku = groupBuyData.SkuProducts.FirstOrDefault(e => e.Id == r.Id); if (dataSku != null) { buySkuProduct.FenRunPrice = dataSku.FenRunPrice; buySkuProduct.Price = dataSku.Price; buySkuProduct.GroupBuyDisplayPrice = dataSku.GroupBuyDisplayPrice; groupBuyActivity.SkuProducts.Add(buySkuProduct); } }); } } } // groupBuyActivity.SkuJson = groupBuyActivity.SkuProducts.ToJson(); return(groupBuyActivity); }
public object GetDefaultValue(ActivityEditInput activityEdit, Activity Activity) { return(null); }
/// <summary> /// get view for activity /// </summary> /// <param name="activityInput"></param> /// <returns></returns> public ActivityEditOutput GetView(ActivityEditInput activityInput) { //check var type = activityInput.Key.GetTypeByFullName(); if (type == null) { throw new ValidException($"类型{activityInput.Key}不存在,请确定Url是否正确"); } var instance = Activator.CreateInstance(type); if (!(instance is IActivity)) { throw new ValidException("该类型不属于活动实体"); } var activityEntityInstance = instance as IActivity; //check product if (activityInput.ProductId <= 0) { throw new ValidException("商品不存在"); } var product = Resolve <IProductService>().GetSingle(activityInput.ProductId); if (product == null) { throw new ValidException("商品不存在"); } //check activity var model = Resolve <IActivityService>() .GetSingle(e => e.ProductId == activityInput.ProductId && e.Key == type.FullName); if (activityInput.Id > 0) { model = Resolve <IActivityService>().GetSingle(e => e.Id == activityInput.Id); } //builder var view = AutoMapping.SetValue <ActivityEditOutput>(activityInput); if (model != null) { view.Activity = model; view = AutoMapping.SetValue(model, view); //user range view.UserRange = model.LimitGradeId.IsGuidNullOrEmpty() ? UserRange.AllUser : UserRange.ByUserGrade; //time range view.DateTimeRange = $"{model.StartTime.ToTimeString()} / {model.EndTime.ToTimeString()}"; //support sigle product var attribute = Resolve <IActivityAdminService>().GetActivityModuleAttribute(type.FullName); if (attribute != null && attribute.IsSupportSigleProduct) { activityInput.ProductId = model.ActivityExtension.ProductIds.FirstOrDefault(); view.ProductId = activityInput.ProductId; } } else { view.Activity = new Activity { Key = type.FullName, Status = ActivityStatus.Processing, ProductId = activityInput.ProductId }; view.UserRange = UserRange.AllUser; view.DateTimeRange = $"{DateTime.Now.AddDays(1).Date.ToTimeString()} / {DateTime.Now.AddDays(7).Date.ToTimeString()}"; } //get default value view.ActivityRules = activityEntityInstance.GetDefaultValue(activityInput, view.Activity); if (view.ActivityRules == null && !view.Activity.Value.IsNullOrEmpty()) { view.ActivityRules = JsonConvert.DeserializeObject(view.Activity.Value, type); } //get form try { view.AutoForm = activityEntityInstance.GetAutoForm(view.ActivityRules); } catch (Exception) { } if (view.AutoForm == null) { view.AutoForm = view.ActivityRules == null ? AutoFormMapping.Convert(type.FullName) : AutoFormMapping.Convert(view.ActivityRules); } return(view); }