public ActionResult ModifyMeetMoneyShow(string meetMoneyID) { PromoteMeetMoneyModel promoteMeetMoneyModel; try { this.promoteMeetMoneyService = new PromoteMeetMoneyService(); var promoteMeetMoney = this.promoteMeetMoneyService.QueryByID(int.Parse(meetMoneyID)); promoteMeetMoneyModel = DataTransfer.Transfer<PromoteMeetMoneyModel>( promoteMeetMoney, typeof(Promote_MeetMoney)); if (promoteMeetMoney != null) { this.promoteMeetMoneyScopeService = new PromoteMeetMoneyScopeService(); var meetMoneyScope = this.promoteMeetMoneyScopeService.QueryByMeetMoneyID(int.Parse(meetMoneyID)); this.promoteMeetMoneyRuleService = new PromoteMeetMoneyRuleService(); var list = this.promoteMeetMoneyRuleService.QueryByMeetMoneyID(promoteMeetMoney.ID); var promoteMeetMoneyList = new List<PromoteMeetMoneyRuleModel>(); foreach (var moneyRule in list) { promoteMeetMoneyList.Add( DataTransfer.Transfer<PromoteMeetMoneyRuleModel>(moneyRule, typeof(Promote_MeetMoney_Rule))); } promoteMeetMoneyModel.MeetMoneyScope = DataTransfer.Transfer<PromoteMeetMoneyScopeModel>( meetMoneyScope, typeof(Promote_MeetMoney_Scope)); promoteMeetMoneyModel.PromoteMeetMoneyRuleModelsList = promoteMeetMoneyList; } } catch (Exception exception) { throw new Exception(exception.Message, exception); } return this.Json(promoteMeetMoneyModel); }
/// <summary> /// 验证相同商品是否参与其他促销. /// </summary> /// <param name="scope"> /// 促销商品 0、1字符串. /// </param> /// <param name="type"> /// 类型:(0:添加新的促销活动,1:满额优惠,2:满件优惠). /// </param> /// <param name="typeID"> /// The type ID. /// </param> /// <returns> /// 已参加活动的商品. /// </returns> private string VerifyPromote(string scope, int type, int typeID) { // 是否已参加促销活动 #region 方案一:分组验证 /* StringBuilder sb = new StringBuilder(); var nowscope = new ArrayList(); for (var i = 0; i * 50 < scope.Length; i++) { nowscope.Add(scope.Substring(i * 50, (i + 1) * 50)); } // 查询现有促销的商品 this.promoteMeetMoneyScopeService = new PromoteMeetMoneyScopeService(); var list = this.promoteMeetMoneyScopeService.QueryAll(); foreach (var promoteMeetMoneyScope in list) { var group = new ArrayList(); for (var i = 0; i * 50 < promoteMeetMoneyScope.Scope.Length; i++) { group.Add(promoteMeetMoneyScope.Scope.Substring(i * 50, (i + 1) * 50)); } var count = group.Count < nowscope.Count ? group.Count : nowscope.Count; // 取值小的 for (int i = 0; i < count; i++) { var j = Convert.ToUInt64(group[i].ToString(), 2) & Convert.ToUInt64(nowscope[i].ToString(), 2); if (j > 0) { } } } */ #endregion #region 方案二:Product添加字段活动结束时间 标识字段 /* // 获取所选商品编号 var sb = new StringBuilder(); for (int i = 0; i < scope.Length; i++) { if (scope.Substring(i, 1) == "1") { sb.Append(i + 1 + ","); } } var productStr = sb.ToString(0, sb.Length - 1); // 在所选商品中查找已参加促销活动的商品 this.productService = new ProductService(); var list = this.productService.QueryPromoteProducts(productStr); if (list == null) { return string.Empty; } var productstr = new StringBuilder(); foreach (var product in list) { productstr.Append(product.Name + ","); } */ #endregion #region 方案三 var productItems = new ArrayList(); // 已参加活动的商品 var sb = new StringBuilder(); // 选择的商品已参加活动 // 查询现有满额促销的商品 this.promoteMeetMoneyScopeService = new PromoteMeetMoneyScopeService(); var meetMoneyList = this.promoteMeetMoneyScopeService.QueryAll(); // 修改时需去除本身的促销商品 if (type == 1) { meetMoneyList.Remove(meetMoneyList.Find(m => m.MeetMoneyID == typeID)); } foreach (var meetMoneyScope in meetMoneyList) { var products = meetMoneyScope.Scope.ToCharArray(); for (var i = 0; i < products.Length; i++) { if (products[i] == '1') { productItems.Add(i); } } } // 查询现有满件促销的商品 this.promoteMeetAmountScopeService = new PromoteMeetAmountScopeService(); var meetAmountList = this.promoteMeetAmountScopeService.QueryAll(); // 修改时需去除本身的促销商品 if (type == 2) { meetAmountList.Remove(meetAmountList.Find(m => m.MeetAmountID == typeID)); } foreach (var meetAmountScope in meetAmountList) { var products = meetAmountScope.Scope.ToCharArray(); for (var i = 0; i < products.Length; i++) { if (products[i] == '1') { productItems.Add(i); } } } var newProducts = scope.ToCharArray(); if (newProducts.Length > 0) { for (var i = 0; i < newProducts.Length; i++) { if (newProducts[i] == '1' && productItems.Contains(i)) { sb.Append(i + ","); } } } #endregion return sb.ToString(); }
/// <summary> /// 满额优惠详细页 /// </summary> /// <param name="id">满额优惠编号</param> /// <returns>The <see cref="PartialViewResult"/></returns> public JsonResult MeetMoneyDetail(int id) { try { this.promoteMeetMoneyService = new PromoteMeetMoneyService(); this.promoteMeetMoneyRuleService = new PromoteMeetMoneyRuleService(); this.promoteMeetMoneyScopeService = new PromoteMeetMoneyScopeService(); var promoteMeetMoney = this.promoteMeetMoneyService.QueryByID(id); var promoteMeetMoneyModel = DataTransfer.Transfer<PromoteMeetMoneyModel>( promoteMeetMoney, typeof(Promote_MeetMoney)); var list = this.promoteMeetMoneyRuleService.QueryByMeetMoneyID(promoteMeetMoney.ID); var listmodel = new List<PromoteMeetMoneyRuleModel>(); foreach (var promoteMeetMoneyRule in list) { listmodel.Add( DataTransfer.Transfer<PromoteMeetMoneyRuleModel>( promoteMeetMoneyRule, typeof(Promote_MeetMoney_Rule))); } var promoteMeetMoneyScope = this.promoteMeetMoneyScopeService.QueryByMeetMoneyID(promoteMeetMoney.ID); var promoteMeetMoneyScopeModel = DataTransfer.Transfer<PromoteMeetMoneyScopeModel>( promoteMeetMoneyScope, typeof(Promote_MeetMoney_Scope)); promoteMeetMoneyModel.MeetMoneyScope = promoteMeetMoneyScopeModel; promoteMeetMoneyModel.PromoteMeetMoneyRuleModelsList = listmodel; return this.Json(promoteMeetMoneyModel); } catch (Exception exception) { throw new Exception(exception.Message, exception); } }