Beispiel #1
0
        public void ProcessRequest(HttpContext context)
        {
            int    page          = !string.IsNullOrEmpty(context.Request["page"]) ? int.Parse(context.Request["page"]) : 1;
            int    rows          = !string.IsNullOrEmpty(context.Request["rows"]) ? int.Parse(context.Request["rows"]) : 10;
            string status        = context.Request["order_status"];//订单状态 中文字符串
            string orderFromTime = context.Request["order_from_time"];
            string orderToTime   = context.Request["order_to_time"];
            string orderType     = context.Request["order_type"];      //订单类型 0 普通订单 1礼品订单
            string giftOrderType = context.Request["gift_order_type"]; //礼品订单类型 0收到的礼品订单 1 发出的礼品订单
            string type          = context.Request["type"];            //订单大类型 空普通订单 MeetingRoom会议室预订 BookingTutor导师预约

            int totalCount = 0;
            var orderList  = bllMall.GetOrderList(rows, page, "", out totalCount, status, CurrentUserInfo.UserID, orderFromTime, orderToTime,
                                                  orderType, giftOrderType, null, null, null, null, null, type);
            List <dynamic> list = new List <dynamic>();

            foreach (var orderInfo in orderList)
            {
                var orderDetailList      = bllMall.GetOrderDetailsList(orderInfo.OrderID);
                var orderMainDetailList  = orderDetailList.Where(p => p.ArticleCategoryType == orderInfo.ArticleCategoryType).ToList();
                var orderAddedDetailList = orderDetailList.Where(p => p.ArticleCategoryType != orderInfo.ArticleCategoryType).ToList();
                var mainProduct          = bllMall.GetByKey <WXMallProductInfo>("PID", orderMainDetailList[0].PID, true);
                list.Add(new
                {
                    order_id      = orderInfo.OrderID,
                    order_time    = orderInfo.InsertDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    product_name  = orderMainDetailList[0].ProductName,
                    price         = orderMainDetailList[0].OrderPrice,
                    unit          = orderMainDetailList[0].Unit,
                    img           = mainProduct.RecommendImg,
                    show_imgs     = mainProduct.ShowImage,
                    total_amount  = orderInfo.TotalAmount,
                    order_status  = orderInfo.Status,
                    is_pay        = orderInfo.PaymentStatus,
                    pay_type      = orderInfo.PaymentType == 2 ? "WEIXIN" : "ALIPAY",
                    order_details = from p in orderMainDetailList
                                    select new
                    {
                        start_date = p.StartDate.ToString("yyyy-MM-dd HH:mm:ss"),
                        end_date   = p.EndDate.ToString("yyyy-MM-dd HH:mm:ss")
                    },
                    added_details = from p in orderAddedDetailList
                                    select new
                    {
                        product_name = p.ProductName,
                        price        = p.OrderPrice,
                        count        = p.TotalCount,
                        unit         = p.Unit
                    }
                });
            }
            apiResp.result = new
            {
                totalcount = totalCount,
                list       = list
            };
            apiResp.status = true;
            apiResp.code   = (int)APIErrCode.IsSuccess;
            bllMall.ContextResponse(context, apiResp);
        }
Beispiel #2
0
        public void ProcessRequest(HttpContext context)
        {
            string order_id = context.Request["order_id"];//订单状态 中文字符串
            WXMallOrderInfo orderInfo = bllMall.GetByKey<WXMallOrderInfo>("OrderID", order_id, true);
            var orderDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID);
            var orderMainDetailList = orderDetailList.Where(p => p.ArticleCategoryType == orderInfo.ArticleCategoryType).ToList();
            var orderAddedDetailList = orderDetailList.Where(p => p.ArticleCategoryType != orderInfo.ArticleCategoryType).ToList();
            var mainProduct = bllMall.GetByKey<WXMallProductInfo>("PID", orderMainDetailList[0].PID, true);
            apiResp.result = new
            {
                order_id = orderInfo.OrderID,
                order_time = orderInfo.InsertDate.ToString("yyyy-MM-dd HH:mm:ss"),
                product_name = orderMainDetailList[0].ProductName,
                price = orderMainDetailList[0].OrderPrice,
                unit = orderMainDetailList[0].Unit,
                img = mainProduct.RecommendImg,
                show_imgs = mainProduct.ShowImage,
                total_amount = orderInfo.TotalAmount,
                order_status = orderInfo.Status,
                is_pay = orderInfo.PaymentStatus,
                pay_type = orderInfo.PaymentType == 2 ? "WEIXIN" : "ALIPAY",
                use_score=orderInfo.UseScore,
                use_amount=orderInfo.UseAmount,
                order_details = from p in orderMainDetailList
                                select new
                                {
                                    start_date = p.StartDate.ToString("yyyy-MM-dd HH:mm:ss"),
                                    end_date = p.EndDate.ToString("yyyy-MM-dd HH:mm:ss")
                                },
                added_details = from p in orderAddedDetailList
                                select new
                                {
                                    product_name = p.ProductName,
                                    price = p.OrderPrice,
                                    count = p.TotalCount,
                                    unit = p.Unit
                                }

            };
            apiResp.status = true;
            apiResp.code = (int)APIErrCode.IsSuccess;
            bllMall.ContextResponse(context, apiResp);
        }
Beispiel #3
0
        public void ProcessRequest(HttpContext context)
        {
            Add.ProductModel productRequestModel = new Add.ProductModel();//订单模型
            try
            {
                productRequestModel = bllMall.ConvertRequestToModel <Add.ProductModel>(productRequestModel);
            }
            catch (Exception ex)
            {
                apiResp.msg  = "提交格式错误";
                apiResp.code = (int)APIErrCode.OperateFail;
                bllMall.ContextResponse(context, apiResp);
                return;
            }
            //数据检查
            if (string.IsNullOrEmpty(productRequestModel.product_title))
            {
                apiResp.msg  = "商品名称必填";
                apiResp.code = (int)APIErrCode.OperateFail;
                bllMall.ContextResponse(context, apiResp);
                return;
            }
            //if (productRequestModel.price == 0)
            //{
            //    apiResp.msg = "商品价格必填";
            //    apiResp.code = (int)APIErrCode.OperateFail;
            //    bllMall.ContextResponse(context, apiResp);
            //    return;
            //}
            //if (string.IsNullOrWhiteSpace(productRequestModel.show_imgs) && !productRequestModel.article_category_type.Contains("Added"))
            //{
            //    apiResp.msg = "请上传商品图片";
            //    apiResp.code = (int)APIErrCode.OperateFail;
            //    bllMall.ContextResponse(context, apiResp);
            //    return;
            //}
            WXMallProductInfo productInfo = bllMall.GetByKey <WXMallProductInfo>("PID", productRequestModel.product_id, true);

            if (productInfo == null)
            {
                apiResp.msg  = "数据未找到";
                apiResp.code = (int)APIErrCode.IsNotFound;
                bllMall.ContextResponse(context, apiResp);
                return;
            }
            productInfo.PName        = productRequestModel.product_title;
            productInfo.PDescription = productRequestModel.product_desc;
            productInfo.Price        = productRequestModel.price;
            productInfo.CategoryId   = productRequestModel.category_id;
            productInfo.IsOnSale     = productRequestModel.is_onsale.ToString();
            productInfo.Stock        = productRequestModel.totalcount;//(容纳人数)
            productInfo.Sort         = productRequestModel.sort;
            //productInfo.UserID = currentUserInfo.UserID;
            productInfo.PreviousPrice     = productRequestModel.price;
            productInfo.Summary           = productRequestModel.product_summary;
            productInfo.LastUpdate        = DateTime.Now;
            productInfo.RelationProductId = productRequestModel.relation_product_id;
            productInfo.AccessLevel       = productRequestModel.access_Level;
            productInfo.Unit = productRequestModel.unit;
            if (!string.IsNullOrWhiteSpace(productRequestModel.show_imgs))
            {
                productInfo.ShowImage = productRequestModel.show_imgs;
                List <string> imgs = productRequestModel.show_imgs.Split(',').Where(p => !string.IsNullOrWhiteSpace(p)).ToList();
                productInfo.RecommendImg = imgs[0];
                int max = imgs.Count > 5 ? 5 : imgs.Count;
                for (int i = 0; i < max; i++)
                {
                    if (i == 0)
                    {
                        productInfo.ShowImage1 = imgs[0];
                    }
                    else if (i == 1)
                    {
                        productInfo.ShowImage2 = imgs[1];
                    }
                    else if (i == 2)
                    {
                        productInfo.ShowImage3 = imgs[2];
                    }
                    else if (i == 3)
                    {
                        productInfo.ShowImage4 = imgs[3];
                    }
                    else if (i == 4)
                    {
                        productInfo.ShowImage5 = imgs[4];
                    }
                }
            }

            string dSkuIds = "";
            //默认第一条sku
            ProductSku productSku = bllMall.GetProductSku(productRequestModel.product_id);

            if (productSku == null)
            {
                //增加系统默认sku
                productSku                     = new ProductSku();//
                productSku.InsertDate          = DateTime.Now;
                productSku.Stock               = 1;
                productSku.WebSiteOwner        = bllMall.WebsiteOwner;
                productSku.ArticleCategoryType = productInfo.ArticleCategoryType;
            }
            List <ProductSku> addSkuList    = new List <ProductSku>();
            List <ProductSku> updateSkuList = new List <ProductSku>();

            if (productRequestModel.time_set_method == 0)
            {
                productSku.Price = productInfo.Price;
                updateSkuList.Add(productSku);

                List <ProductSku> dSkuList = bllMall.GetColList <ProductSku>(int.MaxValue, 1, string.Format("ProductId={0} AND SkuId!={1} ", productInfo.PID, productSku.SkuId), "SkuId");
                if (dSkuList.Count > 0)
                {
                    dSkuIds = ZentCloud.Common.MyStringHelper.ListToStr(dSkuList.Select(p => p.SkuId).ToList(), "", ",");
                }
            }
            else if (productRequestModel.time_set_method == 1 || productRequestModel.time_set_method == 2)
            {
                List <Add.timeModel> skuModelList = JSONHelper.JsonToModel <List <Add.timeModel> >(productRequestModel.time_data);
                string pSkuIds = ZentCloud.Common.MyStringHelper.ListToStr(skuModelList.Select(p => p.sku_id).ToList(), "", ",");
                if (string.IsNullOrWhiteSpace(pSkuIds))
                {
                    pSkuIds = "0";
                }
                List <ProductSku> dSkuList = bllMall.GetColList <ProductSku>(int.MaxValue, 1, string.Format("ProductId={0} AND SkuId Not In ({1}) ", productInfo.PID, pSkuIds), "SkuId");
                if (dSkuList.Count > 0)
                {
                    dSkuIds = ZentCloud.Common.MyStringHelper.ListToStr(dSkuList.Select(p => p.SkuId).ToList(), "", ",");
                }
                foreach (Add.timeModel item in skuModelList)
                {
                    ProductSku nSku = (ProductSku)productSku.Clone();
                    if (item.sku_id != 0)
                    {
                        nSku = bllMall.GetByKey <ProductSku>("SkuId", item.sku_id.ToString());
                    }
                    nSku.PropValueIdEx1 = item.ex1;
                    nSku.PropValueIdEx2 = item.ex2;
                    nSku.PropValueIdEx3 = item.ex3;
                    nSku.Price          = item.price;
                    if (item.sku_id != 0)
                    {
                        updateSkuList.Add(nSku);
                    }
                    else
                    {
                        addSkuList.Add(nSku);
                    }
                }
            }

            BLLTransaction tran   = new BLLTransaction();
            bool           result = bllMall.Update(productInfo, tran);

            if (!result)
            {
                tran.Rollback();
                apiResp.msg  = "更新失败";
                apiResp.code = (int)APIErrCode.OperateFail;
                bllMall.ContextResponse(context, apiResp);
                return;
            }
            if (!string.IsNullOrWhiteSpace(dSkuIds))
            {
                result = bllMall.DeleteMultByKey <ProductSku>("SkuId", dSkuIds, tran) >= 0;
                if (!result)
                {
                    tran.Rollback();
                    apiResp.msg  = "删除旧时间段失败";
                    apiResp.code = (int)APIErrCode.OperateFail;
                    bllMall.ContextResponse(context, apiResp);
                    return;
                }
            }
            foreach (ProductSku item in updateSkuList)
            {
                result = bllMall.Update(item, tran);
                if (!result)
                {
                    tran.Rollback();
                    apiResp.msg  = "修改Sku失败";
                    apiResp.code = (int)APIErrCode.OperateFail;
                    bllMall.ContextResponse(context, apiResp);
                    return;
                }
            }
            int productId = int.Parse(productInfo.PID);

            foreach (ProductSku item in addSkuList)
            {
                item.ProductId = productId;
                item.SkuId     = int.Parse(bllMall.GetGUID(BLLJIMP.TransacType.AddProductSku));
                result         = bllMall.Add(item, tran);
                if (!result)
                {
                    tran.Rollback();
                    apiResp.msg  = "新增Sku失败";
                    apiResp.code = (int)APIErrCode.OperateFail;
                    bllMall.ContextResponse(context, apiResp);
                    return;
                }
            }
            tran.Commit();
            apiResp.status = true;
            apiResp.msg    = "更新完成";
            apiResp.code   = (int)APIErrCode.IsSuccess;
            bllMall.ContextResponse(context, apiResp);
        }
Beispiel #4
0
        public void ProcessRequest(HttpContext context)
        {
            string            productId   = context.Request["product_id"];
            WXMallProductInfo productInfo = bllMall.GetByKey <WXMallProductInfo>("PID", productId, true);

            if (productInfo == null)
            {
                apiResp.msg  = "数据未找到";
                apiResp.code = (int)APIErrCode.IsNotFound;
                bllMall.ContextResponse(context, apiResp);
                return;
            }

            List <WXMallProductInfo> relList = new List <WXMallProductInfo>();

            if (!string.IsNullOrWhiteSpace(productInfo.RelationProductId))
            {
                string pIDStrings = "'" + productInfo.RelationProductId.Replace(",", "','") + "'";
                relList = bllMall.GetColMultListByKey <WXMallProductInfo>(int.MaxValue, 1, "PID", pIDStrings, "PID,PName,Price,Unit", true);
            }
            if (relList.Count == 0)
            {
                productInfo.RelationProductId = "";
            }
            else
            {
                relList = relList.Distinct().ToList();
                productInfo.RelationProductId = ZentCloud.Common.MyStringHelper.ListToStr(relList.Select(p => p.PID).ToList(), "", ",");
            }
            List <ProductSku> skuList = bllMall.GetColList <ProductSku>(int.MaxValue, 1, string.Format("ProductId={0}", productInfo.PID), "SkuId,ProductId,PropValueIdEx1,PropValueIdEx2,PropValueIdEx3,Price");

            apiResp.result = new
            {
                product_id        = productInfo.PID,
                product_title     = productInfo.PName,
                category_id       = productInfo.CategoryId,
                product_summary   = productInfo.Summary,
                product_desc      = productInfo.PDescription,
                price             = productInfo.Price,
                unit              = productInfo.Unit,
                is_onsale         = productInfo.IsOnSale,
                totalcount        = productInfo.Stock,
                sort              = productInfo.Sort,
                access_Level      = productInfo.AccessLevel,
                show_imgs         = productInfo.ShowImage,
                relation_products = from p in relList
                                    select new
                {
                    product_id = p.PID,
                    title      = p.PName,
                    price      = p.Price,
                    unit       = p.Unit
                },
                sku_list = from p in skuList
                           select new
                {
                    id    = p.SkuId,
                    price = p.Price,
                    start = p.PropValueIdEx1,
                    end   = p.PropValueIdEx2,
                    week  = p.PropValueIdEx3
                }
            };
            apiResp.status = true;
            apiResp.msg    = "查询完成";
            apiResp.code   = (int)APIErrCode.IsSuccess;
            bllMall.ContextResponse(context, apiResp);
        }
Beispiel #5
0
        public void ProcessRequest(HttpContext context)
        {
            string ids          = context.Request["ids"];
            string order_status = context.Request["order_status"];
            bool   actionStatus = false;

            if (order_status == "预约成功")
            {
                List <string> successIds  = new List <string>();
                List <string> failIds     = new List <string>();
                List <string> orderIds    = ids.Split(',').ToList();
                string        hasOrderIDs = "";
                int           maxCount    = 1;
                foreach (string orderId in orderIds)
                {
                    //已有订单详情
                    WXMallOrderInfo tOrder = bllMall.GetByKey <WXMallOrderInfo>("OrderID", orderId);
                    List <WXMallOrderDetailsInfo> tDetailList  = bllMall.GetOrderDetailsList(orderId, null, tOrder.ArticleCategoryType, null, null);
                    List <WXMallOrderDetailsInfo> oDetailList  = bllMall.GetOrderDetailsList(null, tDetailList[0].PID, tOrder.ArticleCategoryType, tDetailList.Min(p => p.StartDate), tDetailList.Max(p => p.EndDate));
                    WXMallProductInfo             tProductInfo = bllMall.GetByKey <WXMallProductInfo>("PID", tDetailList[0].PID);
                    maxCount = tProductInfo.Stock;

                    List <string> hasOrderID_List = new List <string>();
                    foreach (var item in tDetailList)
                    {
                        List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList();
                        if (hasOrderDetailList.Count > 0)
                        {
                            hasOrderID_List.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct());
                        }
                    }
                    hasOrderID_List = hasOrderID_List.Where(p => !p.Contains(orderId)).ToList();
                    if (hasOrderID_List.Count > 0)
                    {
                        hasOrderID_List = hasOrderID_List.Distinct().ToList();
                        hasOrderIDs     = MyStringHelper.ListToStr(hasOrderID_List, "'", ",");
                        int tempCount = 0;
                        List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null,
                                                                               null, null, null, null, null, null, null, tOrder.ArticleCategoryType, hasOrderIDs);
                        if (tempCount >= maxCount)
                        {
                            failIds.Add(orderId);
                            continue;
                        }

                        if (string.IsNullOrWhiteSpace(hasOrderIDs))
                        {
                            hasOrderIDs = "'0'";
                        }
                        if (bllMall.Update(new WXMallOrderInfo(),
                                           string.Format("PaymentStatus={0},PayTime=GetDate(),Status='{1}'", 1, "预约成功"),
                                           string.Format("OrderID={0} AND WebsiteOwner='{4}' and (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{3}' and WebsiteOwner='{4}' and  OrderID IN({1}))<{2}",
                                                         tOrder.OrderID, hasOrderIDs, maxCount, "预约成功", bllMall.WebsiteOwner)
                                           ) > 0)
                        {
                            hasOrderIDs = string.Format("{0},'{1}'", hasOrderIDs, tOrder.OrderID);
                            successIds.Add(orderId);
                            #region 修改其他预约订单为预约失败
                            bllMall.Update(new WXMallOrderInfo(),
                                           string.Format("Status='{0}'", "预约失败"),
                                           string.Format("OrderID In ({0}) AND Status Not In ({1}) and WebsiteOwner='{4}' AND (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{5}' and OrderID IN({2}) and WebsiteOwner='{4}' )>={3}",
                                                         hasOrderIDs, "'预约失败','预约成功','已取消'", hasOrderIDs, maxCount, bllMall.WebsiteOwner, "预约成功"));
                            #endregion
                        }
                        else
                        {
                            failIds.Add(orderId);
                        }
                    }
                    else
                    {
                        tOrder.Status = order_status;
                        if (bllMall.Update(tOrder))
                        {
                            successIds.Add(orderId);
                        }
                        else
                        {
                            failIds.Add(orderId);
                        }
                    }
                }
                if (orderIds.Count == 0)
                {
                    apiResp.msg = "修改完成";
                }
                else
                {
                    if (failIds.Count == 0)
                    {
                        apiResp.msg = "全部修改成功";
                    }
                    else if (successIds.Count == 0)
                    {
                        apiResp.msg = "全部订单所选时间已有预约成功的订单";
                    }
                    else
                    {
                        apiResp.msg = "订单[" + MyStringHelper.ListToStr(successIds, "", ",") + "]修改成功,订单[" + MyStringHelper.ListToStr(failIds, "", ",") + "]所选时间已有预约成功的订单";
                    }
                }
                apiResp.status = true;
                apiResp.code   = (int)APIErrCode.IsSuccess;
                bllMall.ContextResponse(context, apiResp);
            }
            else
            {
                List <string> orderIds = ids.Split(',').ToList();
                ids = MyStringHelper.ListToStr(orderIds, "'", ",");
                if (bllMall.UpdateMultByKey <WXMallOrderInfo>("OrderID", ids, "Status", order_status, null, true) > 0)
                {
                    apiResp.status = true;
                    apiResp.msg    = "修改完成";
                    apiResp.code   = (int)APIErrCode.IsSuccess;
                }
                else
                {
                    apiResp.msg  = "修改失败";
                    apiResp.code = (int)APIErrCode.OperateFail;
                }
            }
            bllMall.ContextResponse(context, apiResp);
        }