/// <summary>
        /// 搜索门店订单
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public List <DTO.FullOrder> PostSearchShopBranchOrder(OrderQuery query)
        {
            if (query.PageNo < 1)
            {
                query.PageNo = 1;
            }
            if (query.PageSize < 1)
            {
                query.PageSize = 10;
            }

            CheckUserLogin();

            query.ShopBranchId = CurrentShopBranch.Id;

            var status = new[] {
                OrderInfo.OrderOperateStatus.WaitPay,
                OrderInfo.OrderOperateStatus.WaitDelivery,
                OrderInfo.OrderOperateStatus.WaitReceiving,
                OrderInfo.OrderOperateStatus.WaitSelfPickUp,
                OrderInfo.OrderOperateStatus.Finish,
                OrderInfo.OrderOperateStatus.Close
            };

            if (query.Status == null || !status.Contains(query.Status.Value))//门店只能查询这几种状态的订单
            {
                query.Status = OrderInfo.OrderOperateStatus.WaitSelfPickUp;
            }

            var data = OrderApplication.GetFullOrders(query);

            return(data.Models);
        }
Ejemplo n.º 2
0
        public JsonResult List(OrderQuery query, int page, int rows)
        {
            query.PageNo              = page;
            query.PageSize            = rows;
            query.Operator            = Operator.Admin;
            query.PaymentTypeGateways = PaymentApplication.GetPaymentIdByDesc(query.PaymentTypeGateway);
            var fullOrders = OrderApplication.GetFullOrders(query);
            var models     = fullOrders.Models.ToList();

            var shops       = ShopApplication.GetShops(fullOrders.Models.Select(p => p.ShopId).ToList());
            var shopBranchs = ShopBranchApplication.GetShopBranchs(models.Where(p => p.DeliveryType == CommonModel.DeliveryType.SelfTake && p.ShopBranchId != 0).Select(p => p.ShopBranchId).ToList());

            IEnumerable <OrderModel> orderModels = models.Select(item =>
            {
                var shop = shops.FirstOrDefault(sp => sp.Id == item.ShopId);

                return(new OrderModel()
                {
                    OrderId = item.Id,
                    OrderStatus = item.OrderStatus.ToDescription(),
                    OrderState = (int)item.OrderStatus,
                    OrderDate = item.OrderDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    ShopId = item.ShopId,
                    ShopName = item.ShopBranchId > 0 ? item.ShopBranchName : item.ShopName,
                    ShopBranchName = item.DeliveryType == CommonModel.DeliveryType.SelfTake && item.ShopBranchId > 0 && shopBranchs.FirstOrDefault(sb => sb.Id == item.ShopBranchId) != null ? shopBranchs.FirstOrDefault(sb => sb.Id == item.ShopBranchId).ShopBranchName : "",
                    UserId = item.UserId,
                    UserName = item.UserName,
                    TotalPrice = item.OrderTotalAmount,
                    PaymentTypeName = item.PaymentTypeName,
                    PlatForm = (int)item.Platform,
                    IconSrc = GetIconSrc(item.Platform),
                    PlatformText = item.Platform.ToDescription(),
                    PaymentTypeGateway = item.PaymentTypeGateway,
                    PayDate = item.PayDate,
                    PaymentTypeStr = item.PaymentTypeDesc,
                    PaymentType = item.PaymentType,
                    OrderType = item.OrderType,
                    GatewayOrderId = item.GatewayOrderId,
                    Payee = shop.ContactsName,
                    CellPhone = item.CellPhone,
                    RegionFullName = item.RegionFullName,
                    Address = item.Address,
                    SellerRemark = item.SellerRemark,
                    UserRemark = item.UserRemark,
                    OrderItems = item.OrderItems,
                    SellerRemarkFlag = item.SellerRemarkFlag,
                    IsVirtual = item.OrderType == OrderInfo.OrderTypes.Virtual
                });
            });

            DataGridModel <OrderModel> dataGrid = new DataGridModel <OrderModel>()
            {
                rows  = orderModels,
                total = fullOrders.Total
            };

            return(Json(dataGrid));
        }
Ejemplo n.º 3
0
        public ActionResult Index(string orderDate, string keywords, int pageNo = 1, int pageSize = 10)
        {
            DateTime?startDate = null;
            DateTime?endDate   = null;

            if (!string.IsNullOrEmpty(orderDate) && orderDate.ToLower() != "all")
            {
                switch (orderDate.ToLower())
                {
                case "threemonth":
                    startDate = DateTime.Now.AddMonths(-3);
                    break;

                case "halfyear":
                    startDate = DateTime.Now.AddMonths(-6);
                    break;

                case "year":
                    startDate = DateTime.Now.AddYears(-1);
                    break;

                case "yearago":
                    endDate = DateTime.Now.AddYears(-1);
                    break;
                }
            }

            var queryModel = new OrderQuery()
            {
                StartDate      = startDate,
                EndDate        = endDate,
                Status         = OrderInfo.OrderOperateStatus.Finish,
                UserId         = CurrentUser.Id,
                SearchKeyWords = keywords,
                PageSize       = pageSize,
                PageNo         = pageNo
            };

            queryModel.MoreStatus = new List <OrderInfo.OrderOperateStatus>();
            queryModel.MoreStatus.Add(OrderInfo.OrderOperateStatus.WaitReceiving);

            var        orders = OrderApplication.GetFullOrders(queryModel);
            PagingInfo info   = new PagingInfo
            {
                CurrentPage  = pageNo,
                ItemsPerPage = pageSize,
                TotalItems   = orders.Total
            };

            ViewBag.UserId             = CurrentUser.Id;
            ViewBag.pageInfo           = info;
            ViewBag.SalesRefundTimeout = SiteSettingApplication.SiteSettings.SalesReturnTimeout;
            ViewBag.Keyword            = string.IsNullOrWhiteSpace(SiteSettings.SearchKeyword) ? SiteSettings.Keyword : SiteSettings.SearchKeyword;
            ViewBag.Keywords           = SiteSettings.HotKeyWords;
            return(View(orders.Models));
        }
Ejemplo n.º 4
0
        public JsonResult List(OrderQuery query, int page, int rows)
        {
            query.PageNo   = page;
            query.PageSize = rows;

            //var orders = OrderApplication.GetOrders(query);
            var fullOrders = OrderApplication.GetFullOrders(query);
            var models     = fullOrders.Models.ToList();

            var shops       = Application.ShopApplication.GetShops(fullOrders.Models.Select(p => p.ShopId).ToArray());
            var shopBranchs = Application.ShopBranchApplication.GetShopBranchs(models.Where(p => p.DeliveryType == CommonModel.Enum.DeliveryType.SelfTake && p.ShopBranchId.HasValue && p.ShopBranchId.Value != 0).Select(p => p.ShopBranchId.Value));

            IEnumerable <OrderModel> orderModels = models.Select(item =>
            {
                var shop     = shops.FirstOrDefault(sp => sp.Id == item.ShopId);
                var Newmodel = GetNewmodel(item.Id);
                return(new OrderModel()
                {
                    OrderId = item.Id,
                    OrderStatus = item.OrderStatus.ToDescription(),
                    OrderState = (int)item.OrderStatus,
                    OrderDate = item.OrderDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    ShopId = item.ShopId,
                    ShopName = item.ShopName,
                    ShopBranchName = item.DeliveryType == CommonModel.Enum.DeliveryType.SelfTake && item.ShopBranchId.HasValue && item.ShopBranchId.Value != 0 ? shopBranchs.FirstOrDefault(sb => sb.Id == item.ShopBranchId.Value).ShopBranchName : "",
                    UserId = item.UserId,
                    UserName = item.UserName,
                    ShipTo = item.ShipTo,
                    TotalPrice = item.OrderTotalAmount,
                    PaymentTypeName = item.PaymentTypeName,
                    PlatForm = (int)item.Platform,
                    IconSrc = GetIconSrc(item.Platform),
                    PlatformText = item.Platform.ToDescription(),
                    PaymentTypeGateway = item.PaymentTypeGateway,
                    PayDate = item.PayDate,
                    PaymentTypeStr = item.PaymentType.ToDescription(),
                    PaymentType = item.PaymentType,
                    OrderType = item.OrderType,
                    GatewayOrderId = item.GatewayOrderId,
                    Payee = shop.ContactsName,
                    CellPhone = item.CellPhone,
                    RegionFullName = item.RegionFullName,
                    Address = item.Address,
                    SellerRemark = item.SellerRemark,
                    UserRemark = item.UserRemark,
                    OrderItems = item.OrderItems,
                    SellerRemarkFlag = item.SellerRemarkFlag,
                    YYDate = Newmodel[0].ReceiveDate.ToString("yyyy-MM-dd"),
                    ReceiveDate = Newmodel[0].ReceiveDate,
                    ReceiveStartTime = Newmodel[0].ReceiveStartTime,
                    ReceiveEndTime = Newmodel[0].ReceiveEndTime,
                    doctorName = Newmodel[0].doctorName,
                    SellerAddress = item.SellerAddress,
                });
            });

            //开始结束时间
            if (query.StartDate.HasValue)
            {
                DateTime sdt = query.StartDate.Value;
                orderModels = orderModels.Where(d => d.ReceiveDate >= sdt);
            }
            if (query.EndDate.HasValue)
            {
                DateTime edt = query.EndDate.Value.AddDays(1);
                orderModels = orderModels.Where(d => d.ReceiveDate < edt);
            }
            DataGridModel <OrderModel> dataGrid = new DataGridModel <OrderModel>()
            {
                rows  = orderModels,
                total = fullOrders.Total
            };

            return(Json(dataGrid));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 查询订单
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public string GetOrder(HttpContext context)
        {
            string  bizcontent  = context.Request["bizcontent"];
            JObject jo          = (JObject)JsonConvert.DeserializeObject(bizcontent);
            string  OrderStatus = GetJObjectValue <string>(jo, "OrderStatus");
            string  PlatOrderNo = GetJObjectValue <string>(jo, "PlatOrderNo");
            string  StartTime   = GetJObjectValue <string>(jo, "StartTime");;
            string  EndTime     = GetJObjectValue <string>(jo, "EndTime");
            string  TimeType    = GetJObjectValue <string>(jo, "TimeType"); //未使用,所有都是按订单创建时间搜索
            int     PageIndex   = GetJObjectValue <int>(jo, "PageIndex");
            int     PageSize    = GetJObjectValue <int>(jo, "PageSize");

            if (PageIndex <= 0)
            {
                PageIndex = 1;
            }
            if (PageSize <= 0)
            {
                PageSize = 10;
            }
            OrderQuery query = new OrderQuery {
                ShopId = CurShopId
            };

            switch (OrderStatus)
            {
            case "JH_01":
                query.Status = Entities.OrderInfo.OrderOperateStatus.WaitPay;
                break;

            case "JH_02":
                query.Status = Entities.OrderInfo.OrderOperateStatus.WaitDelivery;
                if (query.MoreStatus == null)
                {
                    query.MoreStatus = new List <OrderInfo.OrderOperateStatus>()
                    {
                    };
                }
                query.MoreStatus.Add(OrderInfo.OrderOperateStatus.WaitSelfPickUp);
                break;

            case "JH_03":
                query.Status = Entities.OrderInfo.OrderOperateStatus.WaitReceiving;
                break;

            case "JH_04":
                query.Status = Entities.OrderInfo.OrderOperateStatus.Finish;
                break;

            case "JH_05":
                query.Status = Entities.OrderInfo.OrderOperateStatus.Close;
                break;

            case "JH_99":
                query.Status = null;      //所有
                break;
            }
            if (!string.IsNullOrEmpty(PlatOrderNo) && PlatOrderNo != "")
            {
                query.OrderId = PlatOrderNo;
            }
            else
            {
                //检测参数
                if (string.IsNullOrWhiteSpace(StartTime) ||
                    string.IsNullOrWhiteSpace(EndTime) ||
                    string.IsNullOrWhiteSpace(OrderStatus)
                    )
                {
                    throw new HimallApiException("参数错误,有必填参数未给值");
                }
                query.StartDate = DateTime.Parse(StartTime);
                query.EndDate   = DateTime.Parse(EndTime);
            }
            query.PageNo   = PageIndex;
            query.PageSize = PageSize;
            var  orders        = OrderApplication.GetFullOrders(query);
            bool ishasnextpage = false;

            if (orders.Total > 0)
            {
                ishasnextpage = orders.Models.Count == PageSize;
            }
            StringBuilder sb = new StringBuilder();

            sb.Append("{");
            sb.Append("\"code\":" + "\"" + "10000" + "\"");
            sb.Append(",\"message\":" + "\"" + "SUCCESS" + "\"");
            sb.Append(",\"numtotalorder\":" + "\"" + orders.Total + "\"");
            sb.Append(",\"ishasnextpage\":" + "\"" + (ishasnextpage ? "1" : "0") + "\"");
            sb.Append(",\"orders\":");
            sb.Append("[");
            int curordernum = 0;

            foreach (var order in orders.Models)
            {
                if (curordernum > 0)
                {
                    sb.Append(",");
                }
                sb.Append("{");
                sb.Append("\"PlatOrderNo\":" + "\"" + order.OrderId + "\"");
                string tradeStatus     = "";
                string tradeStatusName = "";
                string itemStatus      = "";
                switch (order.OrderStatus)
                {
                case Entities.OrderInfo.OrderOperateStatus.WaitPay:
                    tradeStatus     = "JH_01";
                    tradeStatusName = "等待买家付款";
                    itemStatus      = "JH_01";
                    break;

                case Entities.OrderInfo.OrderOperateStatus.WaitDelivery:
                    tradeStatus     = "JH_02";
                    tradeStatusName = "等待卖家发货";
                    itemStatus      = "JH_02";
                    break;

                case Entities.OrderInfo.OrderOperateStatus.WaitReceiving:
                    tradeStatus     = "JH_03";
                    tradeStatusName = "等待买家确认收货";
                    itemStatus      = "JH_03";
                    break;

                case Entities.OrderInfo.OrderOperateStatus.Close:
                    tradeStatus     = "JH_05";
                    tradeStatusName = "交易关闭";
                    itemStatus      = "JH_05";
                    break;

                case Entities.OrderInfo.OrderOperateStatus.Finish:
                    tradeStatus     = "JH_04";
                    tradeStatusName = "交易完成";
                    itemStatus      = "JH_04";
                    break;

                case Entities.OrderInfo.OrderOperateStatus.WaitSelfPickUp:
                    tradeStatus     = "JH_02";
                    tradeStatusName = "等待卖家发货";
                    itemStatus      = "JH_02";
                    break;

                default:
                    tradeStatus     = "JH_99";
                    tradeStatusName = "其他";
                    itemStatus      = "JH_99";
                    break;
                }
                sb.Append(",\"tradeStatus\":" + "\"" + tradeStatus + "\"");
                sb.Append(",\"tradeStatusdescription\":" + "\"" + tradeStatusName + "\"");
                sb.Append(",\"tradetime\":" + "\"" + order.OrderDate.ToString("yyyy-MM-dd HH:mm:ss") + "\"");
                sb.Append(",\"payorderno\":" + "\"" + "" + "\"");
                sb.Append(",\"country\":" + "\"" + "CN" + "\"");
                string[] ShippingRegion = order.RegionFullName.Split(' ');
                string   province       = "";
                if (ShippingRegion.Length > 0)
                {
                    province = ShippingRegion[0];
                }
                string city = "";
                if (ShippingRegion.Length > 1)
                {
                    city = ShippingRegion[1];
                }
                string area = "";
                if (ShippingRegion.Length > 2)
                {
                    area = ShippingRegion[2];
                }
                string town = "";
                if (ShippingRegion.Length > 3)
                {
                    town = ShippingRegion[3];
                }

                sb.Append(",\"province\":" + "\"" + province + "\"");
                sb.Append(",\"city\":" + "\"" + city + "\"");
                sb.Append(",\"area\":" + "\"" + area + "\"");
                sb.Append(",\"town\":" + "\"" + town + "\"");
                sb.Append(",\"address\":" + "\"" + order.Address + "\"");
                sb.Append(",\"zip\":" + "\"\"");
                sb.Append(",\"phone\":" + "\"\"");
                sb.Append(",\"mobile\":" + "\"" + order.CellPhone + "\"");
                sb.Append(",\"email\":" + "\"\"");
                sb.Append(",\"customerremark\":" + "\"" + order.OrderRemarks + "\"");
                sb.Append(",\"sellerremark\":" + "\"" + order.SellerRemark + "\"");
                sb.Append(",\"postfee\":" + "\"" + order.Freight.ToString("F2") + "\"");
                sb.Append(",\"goodsfee\":" + "\"" + order.ProductTotalAmount.ToString("F2") + "\"");
                sb.Append(",\"totalmoney\":" + "\"" + order.OrderTotalAmount.ToString("F2") + "\"");
                sb.Append(",\"favourablemoney\":" + "\"" + (order.DiscountAmount + order.FullDiscount + order.IntegralDiscount).ToString("F2") + "\"");
                sb.Append(",\"commissionvalue\":" + "\"" + "" + "\"");
                sb.Append(",\"taxamount\":" + "\"0\"");
                sb.Append(",\"tariffamount\":" + "\"" + "" + "\"");
                sb.Append(",\"addedvalueamount\":" + "\"" + order.Tax + "\"");
                sb.Append(",\"consumptiondutyamount\":" + "\"" + "" + "\"");
                sb.Append(",\"sendstyle\":" + "\"" + order.DeliveryType.ToDescription() + "\"");
                sb.Append(",\"paytime\":" + "\"" + GetDateTimeString(order.PayDate, "yyyy-MM-dd HH:mm:ss") + "\"");
                sb.Append(",\"invoicetitle\":" + "\"" + order.InvoiceTitle + "\"");
                sb.Append(",\"taxpayerident\":" + "\"" + order.InvoiceCode + "\"");
                sb.Append(",\"codservicefee\":" + "\"" + "" + "\"");
                sb.Append(",\"receivername\":" + "\"" + order.ShipTo + "\"");
                sb.Append(",\"nick\":" + "\"" + order.UserName + "\"");
                sb.Append(",\"whsecode\":" + "\"" + "" + "\"");
                sb.Append(",\"IsHwgFlag\":" + "\"" + "0" + "\"");
                sb.Append(",\"ShouldPayType\":" + "\"" + GetShouldPayType(order.PaymentType) + "\"");
                sb.Append(",\"StoreName\":" + "\"" + order.ShopBranchName + "\"");
                sb.Append(",\"StoreId\":" + "\"" + order.ShopBranchId + "\"");
                sb.Append(",\"VerifyCode\":" + "\"" + order.PickupCode + "\"");
                //订单项
                sb.Append(",\"goodinfos\":");
                sb.Append("[");
                int curitemnum = 0;
                foreach (var item in order.OrderItems)
                {
                    var sku = ProductManagerApplication.GetSKU(item.SkuId);
                    if (curitemnum > 0)
                    {
                        sb.Append(",");
                    }
                    var skuproid = item.SkuId;
                    if (!string.IsNullOrWhiteSpace(sku.Sku))
                    {
                        skuproid = sku.Sku;
                    }
                    if (skuproid.IndexOf("_0_0_0") > -1 || string.IsNullOrWhiteSpace(skuproid))
                    {
                        var _pro = ProductManagerApplication.GetProduct(item.ProductId);
                        skuproid = _pro.ProductCode;
                    }
                    sb.Append("{");
                    sb.Append("\"ProductId\":" + "\"" + item.SkuId + "\"");
                    sb.Append(",\"suborderno\":" + "\"" + "" + "\"");
                    sb.Append(",\"tradegoodsno\":" + "\"" + skuproid + "\"");
                    sb.Append(",\"tradegoodsname\":" + "\"" + item.ProductName + "\"");
                    sb.Append(",\"tradegoodsspec\":" + "\"" + item.SKU + "\"");
                    sb.Append(",\"goodscount\":" + "\"" + item.Quantity + "\"");
                    sb.Append(",\"price\":" + "\"" + item.Price.ToString("F2") + "\"");
                    sb.Append(",\"discountmoney\":" + "\"" + (item.FullDiscount + item.CouponDiscount + item.DiscountAmount).ToString("F2") + "\"");
                    sb.Append(",\"taxamount\":" + "\"0\"");
                    sb.Append(",\"addedvalueamount\":" + "\"0\"");
                    sb.Append(",\"consumptiondutyamount\":" + "\"0\"");
                    string refundStatus = "JH_07";
                    switch (item.RefundStats)
                    {
                    case 1:
                        refundStatus = "JH_01";
                        break;

                    case 2:
                        refundStatus = "JH_02";
                        break;

                    case 3:
                        refundStatus = "JH_03";
                        break;

                    case 4:
                        refundStatus = "JH_04";
                        break;

                    case 5:
                    case 6:
                        refundStatus = "JH_99";
                        break;

                    case 7:
                        refundStatus = "JH_07";
                        break;
                    }
                    sb.Append(",\"refundStatus\":" + "\"" + refundStatus + "\"");
                    sb.Append(",\"status\":" + "\"" + itemStatus + "\"");
                    sb.Append(",\"remark\":" + "\"" + "" + "\"");
                    sb.Append("}");
                    curitemnum++;
                }
                sb.Append("]");
                //优惠
                sb.Append(",\"coupondetails\":");
                sb.Append("[");
                curitemnum = 0;
                foreach (var item in order.OrderItems)
                {
                    if (item.FullDiscount > 0)
                    {
                        if (curitemnum > 0)
                        {
                            sb.Append(",");
                        }
                        sb.Append(AddCouponDetail(item.SkuId, "JH_OffFreeCoupon", "满减", item.FullDiscount.ToString("F2")));
                        curitemnum++;
                    }
                    if (item.CouponDiscount > 0)
                    {
                        if (curitemnum > 0)
                        {
                            sb.Append(",");
                        }
                        sb.Append(AddCouponDetail(item.SkuId, "JH_Coupon", "优惠券", item.CouponDiscount.ToString("F2")));
                        curitemnum++;
                    }
                    if (item.EnabledRefundIntegral > 0)
                    {
                        if (curitemnum > 0)
                        {
                            sb.Append(",");
                        }
                        sb.Append(AddCouponDetail(item.SkuId, "JH_Point", "积分抵扣", item.EnabledRefundIntegral.Value.ToString("F2")));
                        curitemnum++;
                    }
                    if (item.DiscountAmount > 0)
                    {
                        if (curitemnum > 0)
                        {
                            sb.Append(",");
                        }
                        sb.Append(AddCouponDetail(item.SkuId, "JH_PeopleCoupon", "人工优惠", item.EnabledRefundIntegral.Value.ToString("F2")));
                        curitemnum++;
                    }
                }
                sb.Append("]");

                sb.Append("}");
                curordernum++;
            }
            sb.Append("]");
            sb.Append("}");

            return(sb.ToString());
        }