コード例 #1
0
        public CustomJsonResult Details(string operater, string clientUserId, string orderId)
        {
            CustomJsonResult result = new CustomJsonResult();

            var ret = new RetOrderDetails();

            var order = CurrentDb.Order.Where(m => m.Id == orderId).FirstOrDefault();


            ret.Status = order.Status;


            ret.Tag.Name = new FsText(order.StoreName, "");
            ret.Tag.Desc = new FsField("状态", "", GetOrderStatus(order.Status), "");

            var fsBlockByField = new FsBlockByField();

            fsBlockByField.Tag.Name = new FsText("订单信息", "");

            fsBlockByField.Data.Add(new FsField("订单编号", "", order.Sn, ""));
            fsBlockByField.Data.Add(new FsField("创建时间", "", order.SubmitTime.ToUnifiedFormatDateTime(), ""));
            if (order.PayTime != null)
            {
                fsBlockByField.Data.Add(new FsField("付款时间", "", order.PayTime.ToUnifiedFormatDateTime(), ""));
            }
            if (order.CompletedTime != null)
            {
                fsBlockByField.Data.Add(new FsField("完成时间", "", order.CompletedTime.ToUnifiedFormatDateTime(), ""));
            }

            if (order.CancledTime != null)
            {
                fsBlockByField.Data.Add(new FsField("取消时间", "", order.CancledTime.ToUnifiedFormatDateTime(), ""));
                fsBlockByField.Data.Add(new FsField("取消原因", "", order.CancelReason, ""));
            }

            ret.FieldBlocks.Add(fsBlockByField);


            var orderDetails = CurrentDb.OrderDetails.Where(c => c.OrderId == order.Id).ToList();


            foreach (var orderDetail in orderDetails)
            {
                var block = new FsBlock();

                block.Tag.Name = new FsText(orderDetail.SellChannelRefName, "");


                var orderDetailsChilds = CurrentDb.OrderDetailsChild.Where(m => m.OrderDetailsId == orderDetail.Id).ToList();

                foreach (var orderDetailsChild in orderDetailsChilds)
                {
                    var data = new FsTemplateData();

                    data.Type = "SkuTmp";

                    var sku = new FsTemplateData.TmplOrderSku();

                    sku.Id           = orderDetailsChild.Id;
                    sku.Name         = orderDetailsChild.PrdProductSkuName;
                    sku.MainImgUrl   = orderDetailsChild.PrdProductSkuMainImgUrl;
                    sku.Quantity     = orderDetailsChild.Quantity.ToString();
                    sku.ChargeAmount = orderDetailsChild.ChargeAmount.ToF2Price();


                    data.Value = sku;

                    block.Data.Add(data);
                }


                ret.Blocks.Add(block);
            }



            return(new CustomJsonResult(ResultType.Success, ResultCode.Success, "", ret));
        }
コード例 #2
0
        public CustomJsonResult List(string operater, string clientUserId, RupOrderList rup)
        {
            var result = new CustomJsonResult();

            var query = (from o in CurrentDb.Order
                         where o.ClientUserId == clientUserId
                         select new { o.Id, o.Sn, o.StoreId, o.PickCode, o.StoreName, o.Status, o.SubmitTime, o.CompletedTime, o.ChargeAmount, o.CancledTime }
                         );


            if (rup.Status != E_OrderStatus.Unknow)
            {
                query = query.Where(m => m.Status == rup.Status);
            }

            int pageSize = 10;

            query = query.OrderByDescending(r => r.SubmitTime).Skip(pageSize * (rup.PageIndex)).Take(pageSize);

            var list = query.ToList();

            List <OrderModel> models = new List <OrderModel>();

            foreach (var item in list)
            {
                var model = new OrderModel();

                model.Id       = item.Id;
                model.Sn       = item.Sn;
                model.Tag.Name = new FsText(item.StoreName, "");


                //model.StatusName = item.Status.GetCnName();
                model.ChargeAmount = item.ChargeAmount.ToF2Price();


                var orderDetails = CurrentDb.OrderDetails.Where(c => c.OrderId == item.Id).ToList();

                foreach (var orderDetail in orderDetails)
                {
                    var block = new FsBlock();

                    block.Tag.Name = new FsText(orderDetail.SellChannelRefName, "");


                    if (item.Status == E_OrderStatus.Payed)
                    {
                        if (orderDetail.SellChannelRefType == E_StoreSellChannelRefType.Machine)
                        {
                            block.Tag.Desc = new FsField("取货码", "", item.PickCode, "#f18d00");
                        }
                    }

                    var orderDetailsChilds = CurrentDb.OrderDetailsChild.Where(m => m.OrderDetailsId == orderDetail.Id).ToList();

                    foreach (var orderDetailsChild in orderDetailsChilds)
                    {
                        var field = new FsTemplateData();

                        field.Type = "SkuTmp";

                        var sku = new FsTemplateData.TmplOrderSku();

                        sku.Id           = orderDetailsChild.Id;
                        sku.Name         = orderDetailsChild.PrdProductSkuName;
                        sku.MainImgUrl   = orderDetailsChild.PrdProductSkuMainImgUrl;
                        sku.Quantity     = orderDetailsChild.Quantity.ToString();
                        sku.ChargeAmount = orderDetailsChild.ChargeAmount.ToF2Price();


                        field.Value = sku;

                        block.Data.Add(field);
                    }


                    model.Blocks.Add(block);
                }

                switch (item.Status)
                {
                case E_OrderStatus.WaitPay:
                    model.Buttons.Add(new FsButton()
                    {
                        Name = new FsText()
                        {
                            Content = "取消订单", Color = "red"
                        }, OpType = "FUN", OpVal = "cancleOrder"
                    });
                    model.Buttons.Add(new FsButton()
                    {
                        Name = new FsText()
                        {
                            Content = "继续支付", Color = "green"
                        }, OpType = "URL", OpVal = OperateService.GetOrderDetailsUrl(rup.Caller, item.Id)
                    });
                    break;

                case E_OrderStatus.Payed:
                    model.Buttons.Add(new FsButton()
                    {
                        Name = new FsText()
                        {
                            Content = "查看详情", Color = "green"
                        }, OpType = "URL", OpVal = OperateService.GetOrderDetailsUrl(rup.Caller, item.Id)
                    });
                    break;

                case E_OrderStatus.Completed:
                    model.Buttons.Add(new FsButton()
                    {
                        Name = new FsText()
                        {
                            Content = "查看详情", Color = "green"
                        }, OpType = "URL", OpVal = OperateService.GetOrderDetailsUrl(rup.Caller, item.Id)
                    });
                    break;

                case E_OrderStatus.Cancled:
                    model.Buttons.Add(new FsButton()
                    {
                        Name = new FsText()
                        {
                            Content = "查看详情", Color = "green"
                        }, OpType = "URL", OpVal = OperateService.GetOrderDetailsUrl(rup.Caller, item.Id)
                    });
                    break;
                }

                models.Add(model);
            }


            result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "操作成功", models);

            return(result);
        }