コード例 #1
0
        public ActionResult ModifyPreOrder(long?orderId, string express, int?deleteTag)
        {
            var result = new Result <PreSaleOrder>();

            if (orderId.HasValue)
            {
                //var preSaleOrder = new PreSaleOrder() {OrderId = orderId.Value,  Status = 2};
                var preSaleOrder = PreSaleOrderService.GetPreSaleOrder(orderId.Value);
                preSaleOrder.Status = 2;
                if (deleteTag.HasValue)
                {
                    preSaleOrder.DeleteTag = deleteTag.Value;
                }
                if (!string.IsNullOrEmpty(express))
                {
                    preSaleOrder.ExpressDelivery = express;
                }
                var flag = PreSaleOrderService.ModifyPreOrder(preSaleOrder);
                if (flag)
                {
                    SMSService.SendSMSPreOrderSendProduct(preSaleOrder.Phone, preSaleOrder.OrderId.ToString());
                }
                result.Data   = PreSaleOrderService.GetPreSaleOrder(orderId.Value);
                result.Status = new Status()
                {
                    Code = flag?"1":"0", Message = flag?"成功": "失败"
                };
            }
            return(Content(JsonHelper.ToJson(result), "application/javascript"));
        }
コード例 #2
0
        /// <summary>
        /// 预售订单列表
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public ActionResult GetPreSaleOrderlist(DateTime?startTime, DateTime?endTime, long?orderId, string mobile, int?status, int pageIndex = 1, int pageSize = 30)
        {
            var predicate = PredicateBuilder.True <PreSaleOrder>();

            predicate = predicate.And(p => p.DeleteTag == 0 && p.Status != 0);
            if (startTime.HasValue && endTime.HasValue)
            {
                predicate = predicate.And(p => p.CreateTime >= startTime.Value && p.CreateTime <= endTime.Value);
            }
            if (orderId.HasValue)
            {
                predicate = predicate.And(p => p.OrderId == orderId.Value);
            }
            if (!string.IsNullOrEmpty(mobile))
            {
                predicate = predicate.And(p => p.Phone == mobile);
            }
            if (status.HasValue)
            {
                predicate = predicate.And(p => p.Status == status.Value);
            }

            var data = PreSaleOrderService.GetPreSaleOrderCollection(predicate, p => p.OrderId, "desc", pageIndex, pageSize);

            return(Content(JsonHelper.ToJson(new
            {
                items = data,
                TotalCount = data.TotalCount,
                PageIndex = data.PageIndex,
                PageSize = data.PageSize,
                PageCount = data.PageCount
            }), "application/javascript"));
        }
コード例 #3
0
        /// <summary>
        /// 预售订单列表
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public ActionResult PreSaleOrderList(int pageIndex = 1, int pageSize = 10)
        {
            //前台订单列表只显示支付成功的订单
            var result = PreSaleOrderService.GetPreSaleOrderList(p => p.UserId == this.UserInfo.UserId && (p.Status == 1 || p.Status == 2), pageIndex, pageSize);

            return(View(result));
        }
コード例 #4
0
        public ActionResult GetExportOrderList(DateTime?startTime, DateTime?endTime, long?orderId, string mobile, int?status)
        {
            IWorkbook workbook = new XSSFWorkbook();
            ISheet    sheet    = workbook.CreateSheet("预售订单列表");

            var predicate = PredicateBuilder.True <PreSaleOrder>();

            predicate = predicate.And(p => p.DeleteTag == 0 && p.Status != 0);
            if (startTime.HasValue && endTime.HasValue)
            {
                predicate = predicate.And(p => p.CreateTime >= startTime.Value && p.CreateTime <= endTime.Value);
            }
            if (orderId.HasValue)
            {
                predicate = predicate.And(p => p.OrderId == orderId.Value);
            }
            if (!string.IsNullOrEmpty(mobile))
            {
                predicate = predicate.And(p => p.Phone == mobile);
            }
            if (status.HasValue)
            {
                predicate = predicate.And(p => p.Status == status.Value);
            }

            var preSaleOrders = PreSaleOrderService.GetPreSaleOrderCollection(predicate, p => p.OrderId, "desc", 1, int.MaxValue);
            var columnLength  = 10;
            var rowLength     = preSaleOrders.Count;

            //头部
            IRow headRow = sheet.CreateRow(0);

            headRow.CreateCell(0).SetCellValue("预售订单编号");
            headRow.CreateCell(1).SetCellValue("手机号");
            headRow.CreateCell(2).SetCellValue("产品名称");
            headRow.CreateCell(3).SetCellValue("购买数量");
            headRow.CreateCell(4).SetCellValue("总价");
            headRow.CreateCell(5).SetCellValue("收货地址");
            headRow.CreateCell(6).SetCellValue("运单单号");
            headRow.CreateCell(7).SetCellValue("订单状态");
            headRow.CreateCell(8).SetCellValue("收货人");
            headRow.CreateCell(9).SetCellValue("下单时间");
            IRow  row;
            ICell cell;

            for (int i = 0; i < rowLength; i++)
            {
                var order = preSaleOrders[i];
                row = sheet.CreateRow(i + 1);
                for (int j = 0; j < columnLength; j++)
                {
                    cell = row.CreateCell(j);
                    string cellValue = string.Empty;
                    switch (j)
                    {
                    case 0:
                        cellValue = order.OrderId.ToString();
                        sheet.SetColumnWidth(j, 256 * 20);
                        break;

                    case 1:
                        cellValue = order.Phone;
                        sheet.SetColumnWidth(j, 256 * 15);
                        break;

                    case 2:
                        cellValue = order.PreSaleProduct.Name;
                        sheet.SetColumnWidth(j, 256 * 10);
                        break;

                    case 3:
                        cellValue = order.Count.ToString();
                        sheet.SetColumnWidth(j, 256 * 20);
                        break;

                    case 4:
                        cellValue = order.TotalMoney.ToString();
                        sheet.SetColumnWidth(j, 256 * 15);
                        break;

                    case 5:
                        cellValue = order.Area.FullName + order.Address;
                        sheet.SetColumnWidth(j, 256 * 20);
                        break;

                    case 6:
                        cellValue = order.ExpressDelivery;
                        break;

                    case 7:
                        cellValue = order.StatusDesc;
                        break;

                    case 8:
                        cellValue = order.Receiver;
                        break;

                    case 9:
                        cellValue = order.CreateTime.ToString();
                        break;
                    }

                    cell.SetCellValue(cellValue);
                }
            }
            var          fileName = string.Format("预售订单-{0}.xlsx", DateTime.Now.ToString("yyyyMMddhhmmss"));
            MemoryStream stream   = new MemoryStream();

            workbook.Write(stream);
            return(File(stream.ToArray(), "application/vnd.ms-excel", fileName));
        }
コード例 #5
0
        public ActionResult SubmitPreSaleOrder(PreSaleOrderViewModel preSaleOrderViewModel)
        {
            var jsonResult = new JsonResult();

            if (!string.IsNullOrEmpty(preSaleOrderViewModel.InviteCode))
            {
                preSaleOrderViewModel.InviteCode = preSaleOrderViewModel.InviteCode.Replace(" ", "");
            }
            var preSaleOrder = new PreSaleOrder
            {
                OrderId         = preSaleOrderViewModel.OrderId,//OrderService.GetNewOrderId(),
                UserId          = this.UserInfo.UserId,
                ProductId       = preSaleOrderViewModel.PreSaleProduct.ProductId,
                Price           = preSaleOrderViewModel.PreSaleProduct.Price,
                Count           = preSaleOrderViewModel.Count,
                ProvinceId      = preSaleOrderViewModel.ProvinceId,
                CityId          = preSaleOrderViewModel.CityId,
                Code            = preSaleOrderViewModel.AreaId,
                Address         = preSaleOrderViewModel.Address,
                Status          = 0,
                CreateTime      = DateTime.Now,
                Receiver        = preSaleOrderViewModel.UserName,
                Phone           = preSaleOrderViewModel.Phone,
                TotalMoney      = preSaleOrderViewModel.Count * preSaleOrderViewModel.PreSaleProduct.Price,
                ExpressDelivery = string.Empty,
                InviteCode      = preSaleOrderViewModel.InviteCode
            };



            var result = PreSaleOrderService.SubmitPreSaleOrder(preSaleOrder);

            if (result > 0)
            {
                #region 微信支付所需数据计算
                var timeStamp = TenPayV3Util.GetTimestamp();
                var nonceStr  = TenPayV3Util.GetNoncestr();
                var openId    = this.UserInfo.WxOpenId;
                var pre_id    = WeixinPay.WeixinPayApi.Unifiedorder(preSaleOrderViewModel.PreSaleProduct.Name,
                                                                    preSaleOrder.OrderId, preSaleOrder.Price * preSaleOrder.Count, Request.UserHostAddress, openId);
                if (pre_id == "ERROR" || pre_id == "FAIL")
                {
                    return(Content("ERROR"));
                }
                var package = "prepay_id=" + pre_id;

                var req = new RequestHandler(null);
                req.SetParameter("appId", AppId);
                req.SetParameter("timeStamp", timeStamp);
                req.SetParameter("nonceStr", nonceStr);
                req.SetParameter("package", package);
                req.SetParameter("signType", "MD5");
                var paySign = req.CreateMd5Sign("key", PayKey);


                #endregion

                preSaleOrderViewModel.NonceStr  = nonceStr;
                preSaleOrderViewModel.TimeStamp = timeStamp;
                preSaleOrderViewModel.Package   = package;
                preSaleOrderViewModel.AppId     = AppId;
                preSaleOrderViewModel.PaySign   = paySign;
            }
            else
            {
                preSaleOrderViewModel.OrderId = 0;
            }

            jsonResult.Data = preSaleOrderViewModel;
            return(jsonResult);
        }
コード例 #6
0
        public ContentResult WexinPayNotify()
        {
            ResponseHandler resHandler = new ResponseHandler(null);

            string return_code = resHandler.GetParameter("return_code");
            string return_msg  = resHandler.GetParameter("return_msg");

            resHandler.SetKey(PayKey);
            string res = null;

            //TODO:这里需要验证签名

            ////验证请求是否从微信发过来(安全)
            //logger.Info("IsTenpaySign:" + resHandler.IsTenpaySign());
            if (resHandler.IsTenpaySign())
            {
                try
                {
                    //订单处理
                    if (return_code.ToLower() == "SUCCESS".ToLower())
                    {
                        string out_trade_no = resHandler.GetParameter("out_trade_no");
                        long   orderId      = 0;
                        if (!string.IsNullOrEmpty(out_trade_no))
                        {
                            orderId = Convert.ToInt64(out_trade_no);
                        }
                        logger.Info("orderId:" + orderId + "|out_trade_no=" + out_trade_no);
                        //判断老订单和预售订单
                        var flag = OrderService.CheckOrderExist(orderId);
                        if (flag)
                        {
                            OrderService.UpdateOrderPay(new OrderPayModel()
                            {
                                OrdeId = orderId,
                                //long.Parse(resHandler.GetParameter("out_trade_no")),
                                Status = OrderStatus.Paid.GetHashCode()
                            });
                        }
                        else
                        {
                            PreSaleOrderService.ModifyPreOrder(new PreSaleOrder()
                            {
                                OrderId = orderId, Status = 1
                            });
                            var preOrder = PreSaleOrderService.GetPreSaleOrder(orderId);
                            var mobile   = preOrder.Phone;
                            SMSService.SendSMSPreOrderCreated(mobile, "12月19日");
                        }
                    }

                    res = "SUCCESS";
                }
                catch (Exception e)
                {
                    logger.Error("微信支付回调错误:" + e);
                    res = "FAIL";
                }
                string xml = string.Format(@"<xml><return_code><![CDATA[{0}]]></return_code><return_msg><![CDATA[{1}]]></return_msg></xml>",
                                           res, return_msg);
                return(Content(xml, "text/xml"));
            }
            else
            {
                return(Content(""));
            }
        }