Example #1
0
        /// <summary>
        /// 拼团活动详情
        /// </summary>
        /// <returns></returns>
        public ActionResult GroupBuyDetail()
        {
            int          id     = RequestHelper.GetForm <int>("id");
            GroupBuyInfo entity = GroupBuyBLL.Read(id);

            if (entity.Id <= 0)
            {
                return(Json(new { ok = false, msg = "拼团商品不存在" }));
            }
            var product = ProductBLL.Read(entity.ProductId);

            if (product.Id <= 0)
            {
                return(Json(new { ok = false, msg = "拼团商品不存在" }));
            }
            if (product.OpenGroup != 1)
            {
                return(Json(new { ok = false, msg = "此商品暂不支持拼团" }));
            }
            //拼团状态
            entity.VirtualStatus = (entity.EndTime <DateTime.Now && entity.Quantity> entity.SignCount) ? -1 : (entity.StartTime <= DateTime.Now && entity.EndTime >= DateTime.Now && entity.Quantity > entity.SignCount) ? 0 : (entity.StartTime <= DateTime.Now && entity.EndTime >= DateTime.Now && entity.Quantity <= entity.SignCount) ? 1 : -1;
            //除团长以外其他参与者
            List <GroupSignInfo> signList = GroupSignBLL.ReadListByGroupId(id).Where(k => k.UserId != entity.Leader).ToList();

            #region 推荐商品
            int userGrade = UserGradeBLL.ReadByMoney(0).Id;
            int uid       = RequestHelper.GetForm <int>("uid");
            var user      = UserBLL.ReadUserMore(uid);
            if (user != null && user.Id > 0)
            {
                userGrade = UserGradeBLL.ReadByMoney(user.MoneyUsed).Id;
            }
            int hotCount     = 0;
            var prorecommend = ProductBLL.SearchList(1, 4, new ProductSearchInfo {
                IsSale = (int)BoolType.True, IsTop = (int)BoolType.True, IsDelete = (int)BoolType.False, NotInProductId = product.Id.ToString()
            }, ref hotCount);
            var prorelist = new List <ProductVirtualModel>();
            foreach (var item in prorecommend)
            {
                var vp = new ProductVirtualModel()
                {
                    id         = item.Id,
                    name       = item.Name,
                    img        = ShopCommon.ShowImage(item.Photo.Replace("Original", "150-150")),
                    imgbig     = ShopCommon.ShowImage(item.Photo.Replace("Original", "350-350")),
                    imgorg     = ShopCommon.ShowImage(item.Photo),
                    price      = ProductBLL.GetCurrentPrice(item.SalePrice, userGrade),
                    click      = item.ViewCount,
                    like       = item.LikeNum,
                    totalstore = item.StandardType == (int)ProductStandardType.Single ? ProductTypeStandardRecordBLL.GetSumStorageByProduct(item.Id) : item.TotalStorageCount,
                    //ordercount = item.OrderCount
                    //是否启用不限库存,分别计算销量
                    ordercount = item.UnlimitedStorage == 1 ? OrderBLL.GetProductOrderCountDaily(item.Id, item.StandardType, DateTime.Now) : item.OrderCount
                };
                prorelist.Add(vp);
            }
            #endregion
            return(Json(new { ok = true, entity = entity, product = product, signlist = signList, topproductlist = prorelist }));
        }
Example #2
0
        private void Approve(int approveStatus)
        {
            int    orderRefundId     = RequestHelper.GetQueryString <int>("Id");
            var    submitOrderRefund = OrderRefundBLL.Read(orderRefundId);
            string remark            = Remark.Text.Trim();

            switch (submitOrderRefund.Status)
            {
            case (int)OrderRefundStatus.Submit:
                CheckAdminPower("OrderRefundApprove", PowerCheckType.Single);
                //如果是团购单,且拼团正在进行中,暂不能申请退款
                var order = OrderBLL.Read(submitOrderRefund.OrderId);
                if (order.IsActivity == (int)OrderKind.GroupBuy && order.FavorableActivityId > 0)
                {
                    var groupBuy = GroupBuyBLL.Read(order.FavorableActivityId);
                    if (groupBuy.StartTime <= DateTime.Now && groupBuy.EndTime >= DateTime.Now && groupBuy.Quantity > groupBuy.SignCount)
                    {
                        ScriptHelper.Alert("拼团正在进行,暂不能退款", RequestHelper.RawUrl);
                    }
                }
                if (approveStatus == (int)BoolType.True)
                {
                    submitOrderRefund.Status = (int)OrderRefundStatus.Approve;
                    submitOrderRefund.Remark = "系统审核通过,等待处理退款: " + remark;
                }
                else
                {
                    submitOrderRefund.Status = (int)OrderRefundStatus.Reject;
                    submitOrderRefund.Remark = "系统审核不通过: " + remark;
                }
                break;

            case (int)OrderRefundStatus.Returning:
                ScriptHelper.Alert("正在处理退款,请不要重复退款", RequestHelper.RawUrl);
                break;

            case (int)OrderRefundStatus.HasReturn:
                ScriptHelper.Alert("退款已完成,请不要重复退款", RequestHelper.RawUrl);
                break;

            case (int)OrderRefundStatus.Reject:
                ScriptHelper.Alert("退款已被拒绝,请不要重复退款", RequestHelper.RawUrl);
                break;

            default:
                ScriptHelper.Alert("无效的操作", RequestHelper.RawUrl);
                break;
            }

            OrderRefundBLL.Update(submitOrderRefund);

            //退款操作记录
            AddOrderRefundAction(submitOrderRefund, approveStatus);

            AdminLogBLL.Add(ShopLanguage.ReadLanguage("UpdateRecord"), ShopLanguage.ReadLanguage("OrderRefund"), submitOrderRefund.Id);
            ScriptHelper.Alert("操作成功", RequestHelper.RawUrl);
        }
Example #3
0
        protected override void PageLoad()
        {
            base.PageLoad();
            topNav = 2;
            int groupId = RequestHelper.GetQueryString <int>("GroupId");

            group    = GroupBuyBLL.Read(groupId);
            dataList = GroupSignBLL.SearchListByGroupId(groupId, 1, group.Quantity, ref Count);
            dataList.ForEach(k => k.UserName = System.Web.HttpUtility.UrlDecode(k.UserName, System.Text.Encoding.UTF8));
            Title = "参团记录[" + group.ProductName + "]";
        }
Example #4
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         CheckAdminPower("ReadGroupSign", PowerCheckType.Single);
         int groupId = RequestHelper.GetQueryString <int>("GroupId");
         group = GroupBuyBLL.Read(groupId);
         var dataList = GroupSignBLL.SearchListByGroupId(groupId, 1, group.Quantity, ref Count);
         dataList.ForEach(k => k.UserName = HttpUtility.UrlDecode(k.UserName, System.Text.Encoding.UTF8));
         BindControl(dataList, RecordList);
     }
 }
        /// <summary>
        /// 审核按钮点击方法
        /// </summary>
        protected void CheckButton_Click(object sender, EventArgs e)
        {
            OrderInfo order = ButtoStart();

            #region  拼团单,未拼满或者拼团失败不能通过审核
            if (order.IsActivity == (int)OrderKind.GroupBuy)
            {
                var groupBuy = GroupBuyBLL.Read(order.FavorableActivityId);
                if (!(groupBuy.StartTime <= DateTime.Now && groupBuy.EndTime >= DateTime.Now && groupBuy.SignCount >= groupBuy.Quantity))
                {
                    ScriptHelper.Alert("拼团未成功,暂不能通过审核");
                }
            }
            #endregion
            int startOrderStatus = order.OrderStatus;

            //确认付款,收款时间
            order.PayDate = RequestHelper.DateNow;

            order.ShippingNumber = ShippingNumber.Text;
            order.ShippingDate   = Convert.ToDateTime(ShippingDate.Text);
            //更新商品库存数量
            ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Plus);

            //自提:现场审核提货,完成
            if (order.SelfPick == 1)
            {
                order.OrderStatus = (int)OrderStatus.ReceiveShipping;
                #region 提货码状态置为1(无效)
                PickUpCodeBLL.UsePickCodeByOrder(order.Id);
                #endregion
                #region 完成订单给分销商返佣
                //订单实际支付金额
                decimal paid_money = OrderBLL.ReadNoPayMoney(order);
                //购买人
                var user = UserBLL.Read(order.UserId);
                //购买者有推荐人 且 实际支付金额大于0才进行返佣
                if (user.Recommend_UserId > 0 && paid_money > 0)
                {
                    RebateBLL.RebateToDistributor(user, paid_money, order.Id);
                }
                #endregion
            }
            else
            {//配送:进入配货状态
                order.OrderStatus = (int)OrderStatus.Shipping;
            }
            ButtonEnd(order, Note.Text, OrderOperate.Check, startOrderStatus);
        }