/// <summary> /// 获取渠道下级订单 /// </summary> /// <returns></returns> private string QueryMyOrderChannel(HttpContext context) { int pageIndex = int.Parse(context.Request["PageIndex"]); //第几页 int pageSize = int.Parse(context.Request["PageSize"]); //每页记录数 int status = int.Parse(context.Request["Status"]); //分销订单状态 string level = context.Request["level"]; //1 直接销售 string autoId = context.Request["autoId"]; string channelUserId = bllDis.GetChannelUserId(currUserInfo); if (!string.IsNullOrEmpty(autoId) && (currUserInfo.UserID == bllUser.WebsiteOwner || currUserInfo.UserType == 1) && (autoId != "0")) { status = -1; pageSize = 20; channelUserId = bllUser.GetUserInfoByAutoID(int.Parse(autoId)).UserID; } var channelUserInfo = bllUser.GetUserInfo(channelUserId); List <WXMallOrderInfo> sourceData = new List <WXMallOrderInfo>(); if (string.IsNullOrEmpty(level)) { sourceData = bllDis.GetChannelAllOrder(channelUserId, bllUser.WebsiteOwner); } else if (level == "1") { sourceData = bllDis.GetChannelAllFirstLevelOrder(channelUserId, bllUser.WebsiteOwner); } if (status != -1) { sourceData = sourceData.Where(p => p.DistributionStatus == status).ToList(); } WebsiteInfo websiteInfo = bllDis.GetWebsiteInfoModelFromDataBase(); List <OrderModel> orderList = new List <OrderModel>(); var data = sourceData.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); foreach (WXMallOrderInfo item in data) { OrderModel order = new OrderModel(); #region 分销提成比例 #region 已分佣 提成比例及金额根据提成记录 if (item.DistributionStatus == 3)//已打佣金,分佣金额根据记录表去查 { ProjectCommission projectCommission = bllDis.Get <ProjectCommission>(string.Format(" ProjectId='{0}' And UserId='{1}' And WebsiteOwner='{2}' ", item.OrderID, channelUserInfo.UserID, bllDis.WebsiteOwner)); if (projectCommission != null) { order.DistributionAmount = projectCommission.Amount; order.DistributionRate = projectCommission.Rate.ToString(); order.TotalAmount = item.TotalAmount - item.Transport_Fee; if (order.TotalAmount * (decimal.Parse(order.DistributionRate) / 100) != order.DistributionAmount) { order.DistributionRate = (Math.Round((order.DistributionAmount / order.TotalAmount), 3) * 100).ToString(); } } else { order.DistributionAmount = 0; order.DistributionRate = "0"; } } #endregion #region 还未分佣,根据预估分佣表 else { if (websiteInfo.IsDisabledCommission == 0) { //decimal rate = (decimal)bllDis.GetDistributionRateChannel(channelUserInfo); //order.DistributionAmount = (rate / 100) * (item.TotalAmount - item.Transport_Fee); //order.DistributionRate = rate.ToString(); //order.DistributionAmount = Math.Round(order.DistributionAmount, 2); //if (order.DistributionAmount < 0) //{ // order.DistributionAmount = 0; //} ProjectCommissionEstimate esti = bllDis.Get <ProjectCommissionEstimate>(string.Format("ProjectId={0} And ProjectType='DistributionOnLineChannel' And UserId='{1}' ", item.OrderID, channelUserInfo.UserID)); if (esti != null) { order.DistributionAmount = esti.Amount; order.DistributionRate = esti.Rate.ToString(); } else { order.DistributionRate = "0"; } } else { order.DistributionAmount = 0; order.DistributionRate = "0"; } } #endregion #endregion order.DistributionStatus = item.DistributionStatus; if (item.IsRefund == 1) { order.DistributionStatus = -1; } order.InsertDate = item.InsertDate.ToString("yyyy-MM-dd"); order.OrderID = item.OrderID; order.ProductCount = item.ProductCount; order.TotalAmount = item.TotalAmount - item.Transport_Fee; order.ProductList = new List <WXMallProductInfo>(); //order.WXNickName = bllUser.GetUserInfo(item.OrderUserID).WXNickname; UserInfo orderUserInfo = bllUser.GetUserInfo(item.OrderUserID); if (orderUserInfo != null) { order.TrueName = orderUserInfo.TrueName; order.Phone = orderUserInfo.Phone; order.AutoID = orderUserInfo.AutoID; order.WXNickName = orderUserInfo.WXNickname; } foreach (var orderdetail in bllMall.GetOrderDetailsList(item.OrderID)) { var productInfo = bllMall.GetProduct(orderdetail.PID); if (productInfo != null) { productInfo.PDescription = null; productInfo.CategoryId = null; productInfo.IP = 0; productInfo.UserID = null; productInfo.WebsiteOwner = null; productInfo.Price = (decimal)orderdetail.OrderPrice; productInfo.Stock = orderdetail.TotalCount; order.ProductList.Add(productInfo); } } order.OrderType = item.OrderType; if (!string.IsNullOrEmpty(order.Remark)) { order.Remark = item.OrderMemo.Replace("购买选项:", "<br/>购买选项:<br/>").Replace("金额:", "<br/>金额:"); } orderList.Add(order); } return(Common.JSONHelper.ObjectToJson(orderList)); }
/// <summary> /// 获取我的下级订单 /// </summary> /// <returns></returns> private string QueryMyOrder(HttpContext context) { try { int pageIndex = int.Parse(context.Request["PageIndex"]); //第几页 int pageSize = int.Parse(context.Request["PageSize"]); //每页记录数 int level = int.Parse(context.Request["Level"]); //显示几级 int status = int.Parse(context.Request["Status"]); //分销订单状态 List <WXMallOrderInfo> sourceData = new List <WXMallOrderInfo>(); switch (status) { case 0: sourceData = bllDis.GetOrderList(currUserInfo.UserID, level, BLLJIMP.BLLDistribution.DistributionStatus.NotPay); break; case 1: sourceData = bllDis.GetOrderList(currUserInfo.UserID, level, BLLJIMP.BLLDistribution.DistributionStatus.Paied); break; case 2: sourceData = bllDis.GetOrderList(currUserInfo.UserID, level, BLLJIMP.BLLDistribution.DistributionStatus.Received); break; case 3: sourceData = bllDis.GetOrderList(currUserInfo.UserID, level, BLLJIMP.BLLDistribution.DistributionStatus.Verified); break; case 4: sourceData = bllDis.GetOrderList(currUserInfo.UserID, level, BLLJIMP.BLLDistribution.DistributionStatus.Withdraw); break; default: break; } if (level == 0) { sourceData = sourceData.Where(p => p.OrderUserID == currUserInfo.UserID).ToList(); } else { sourceData = sourceData.Where(p => p.OrderUserID != currUserInfo.UserID).ToList(); } WebsiteInfo websiteInfo = bllDis.GetWebsiteInfoModelFromDataBase(); List <OrderModel> orderList = new List <OrderModel>(); sourceData = sourceData.OrderByDescending(p => p.InsertDate).ToList(); var data = sourceData.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); foreach (WXMallOrderInfo item in data) { OrderModel order = new OrderModel(); #region 分销提成比例 #region 已分佣 提成比例及金额根据提成记录 if (item.DistributionStatus == 3)//已打佣金,分佣金额根据记录表去查 { ProjectCommission projectCommission = bllDis.Get <ProjectCommission>(string.Format(" ProjectId='{0}' And UserId='{1}' And WebsiteOwner='{2}' And ProjectType='DistributionOnLine'", item.OrderID, currUserInfo.UserID, bllDis.WebsiteOwner)); if (projectCommission != null) { order.DistributionAmount = projectCommission.Amount; order.DistributionRate = projectCommission.Rate.ToString(); order.TotalAmount = item.TotalAmount - item.Transport_Fee; if (order.TotalAmount * (decimal.Parse(order.DistributionRate) / 100) != order.DistributionAmount) { order.DistributionRate = (Math.Round((order.DistributionAmount / order.TotalAmount), 3) * 100).ToString(); } } else { order.DistributionAmount = 0; order.DistributionRate = "0"; } } #endregion #region 还未分佣,根据预估分佣表 else { if (websiteInfo.IsDisabledCommission == 0)//分佣 { // UserLevelConfig userLevel = bllDis.GetUserLevel(currUserInfo); //bool isFirst = bllDis.IsFirstOrder(item); switch (level) { case 0: //decimal rate = (decimal)bllDis.GetDistributionRate(currUserInfo, 0, isFirst);//直销提成比例 //order.DistributionAmount = bllDis.GetUserCommission(item, currUserInfo, 0); //order.DistributionRate = rate.ToString(); ProjectCommissionEstimate esti = bllDis.Get <ProjectCommissionEstimate>(string.Format("ProjectId={0} And ProjectType='DistributionOnLine' And UserId='{1}' ", item.OrderID, currUserInfo.UserID)); if (esti != null) { order.DistributionAmount = esti.Amount; order.DistributionRate = esti.Rate.ToString(); } else { order.DistributionRate = "0"; } break; case 1: // var upUserLevel1 = bllDis.GetUpUser(item.OrderUserID, 1); //var orderUser = bllUser.GetUserInfo(item.OrderUserID); // decimal rateLevel1 = (decimal)bllDis.GetDistributionRate(currUserInfo, 1, isFirst); //order.DistributionAmount = bllDis.GetUserCommission(item, currUserInfo, 1); // order.DistributionRate = rateLevel1.ToString(); ProjectCommissionEstimate estiUpLevel = bllDis.Get <ProjectCommissionEstimate>(string.Format("ProjectId={0} And ProjectType='DistributionOnLine' And UserId='{1}' ", item.OrderID, currUserInfo.UserID)); if (estiUpLevel != null) { order.DistributionAmount = estiUpLevel.Amount; order.DistributionRate = estiUpLevel.Rate.ToString(); } else { order.DistributionRate = "0"; } break; //case 2: // order.DistributionAmount = (decimal.Parse(userLevel.DistributionRateLevel2) / 100) * (item.TotalAmount - item.Transport_Fee); // order.DistributionRate = userLevel.DistributionRateLevel2; // break; //case 3: // order.DistributionAmount = (decimal.Parse(userLevel.DistributionRateLevel3) / 100) * item.TotalAmount; // order.DistributionRate = userLevel.DistributionRateLevel3; // break; default: break; } //order.DistributionAmount = Math.Round(order.DistributionAmount, 2); } else//不分佣 { order.DistributionAmount = 0; order.DistributionRate = "0"; } } #endregion #endregion order.DistributionStatus = item.DistributionStatus; if (item.IsRefund == 1) { order.DistributionStatus = -1; } order.InsertDate = item.InsertDate.ToString("yyyy-MM-dd"); order.OrderID = item.OrderID; order.ProductCount = item.ProductCount; order.TotalAmount = item.TotalAmount - item.Transport_Fee; order.ProductList = new List <WXMallProductInfo>(); //order.WXNickName = bllUser.GetUserInfo(item.OrderUserID).WXNickname; UserInfo orderUserInfo = bllUser.GetUserInfo(item.OrderUserID); if (orderUserInfo != null) { order.TrueName = orderUserInfo.TrueName; order.Phone = orderUserInfo.Phone; order.AutoID = orderUserInfo.AutoID; order.WXNickName = orderUserInfo.WXNickname; } foreach (var orderdetail in bllMall.GetOrderDetailsList(item.OrderID)) { var productInfo = bllMall.GetProduct(orderdetail.PID); if (productInfo != null) { productInfo.PDescription = null; productInfo.CategoryId = null; productInfo.IP = 0; productInfo.UserID = null; productInfo.WebsiteOwner = null; productInfo.Price = (decimal)orderdetail.OrderPrice; productInfo.Stock = orderdetail.TotalCount; order.ProductList.Add(productInfo); } } order.OrderType = item.OrderType; if (!string.IsNullOrEmpty(order.Remark)) { order.Remark = item.OrderMemo.Replace("购买选项:", "<br/>购买选项:<br/>").Replace("金额:", "<br/>金额:"); } orderList.Add(order); } return(Common.JSONHelper.ObjectToJson(orderList)); } catch (Exception ex) { return(ex.ToString()); } }