示例#1
0
        public ActionResult DeleteConfirmed(int id)
        {
            UserOrderInfo userOrderInfo = db.UserOrderInfoSet.Find(id);

            db.UserOrderInfoSet.Remove(userOrderInfo);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#2
0
        public ActionResult Index()
        {
            Order order = null;
            int   sum   = 0;

            ViewData["uoi"] = null;
            String uname = (String)Session["uname"];


            //判断当前用户是否为管理员

            List <string> names = GetStaffs();

            ifAdmin             = names.Contains(uname);
            ViewData["ifAdmin"] = ifAdmin;
            Session["ifAdmin"]  = ifAdmin;

            //判断今日商家是否发布预定
            int dateSum = (from od in db.OrderSet where od.OrderDate >= Tooday && od.OrderDate < Enday select od).Count();

            if (dateSum != 0)
            {
                //获取到今日最新的菜单
                order          = GetNewestOrder();
                order.Describe = order.Describe.Replace("\n", "<br />");
                List <UserOrderInfo> listUoi = (from usi in db.UserOrderInfoSet where usi.OrderId == order.Id && usi.State == "已预订" select usi).ToList();
                foreach (UserOrderInfo uoi in listUoi)
                {
                    sum += uoi.PeopleNumber;
                }
            }
            else
            {
                return(RedirectToAction("NoRelease"));
            }
            //判断用户今日是否预定

            IQueryable <UserOrderInfo> uois = db.UserOrderInfoSet.Where(o => o.UName == uname && o.Order.OrderDate >= Tooday && o.Order.OrderDate < Enday);
            int count = uois.Count();

            if (count > 0)
            {
                sum = 0;
                UserOrderInfo        uoi  = uois.FirstOrDefault();
                List <UserOrderInfo> list = (from usi in db.UserOrderInfoSet where usi.OrderId == uoi.OrderId && usi.State == "已预订" select usi).ToList();
                foreach (UserOrderInfo uoiy in list)
                {
                    sum += uoiy.PeopleNumber;
                }
                ViewData["uoi"] = uoi;
            }
            ViewData["sum"] = sum;



            return(View(order));
        }
示例#3
0
        public ActionResult Cancel(int uid)
        {
            UserOrderInfo uoii = db.UserOrderInfoSet.Find(uid);

            uoii.State           = "已取消";
            uoii.CancelDateTime  = DateTime.Now;
            db.Entry(uoii).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#4
0
 public ActionResult Edit([Bind(Include = "Id,UName,OrderId")] UserOrderInfo userOrderInfo)
 {
     if (ModelState.IsValid)
     {
         db.Entry(userOrderInfo).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.OrderId = new SelectList(db.OrderSet, "Id", "Describe", userOrderInfo.OrderId);
     return(View(userOrderInfo));
 }
示例#5
0
        public ActionResult UpdatePeopleNumber(int Id, int pNumber)
        {
            UserOrderInfo uoii = db.UserOrderInfoSet.Find(Id);

            uoii.PeopleNumber   = pNumber;
            uoii.UpdateDateTime = DateTime.Now;

            db.Entry(uoii).State = EntityState.Modified;
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
        private async Task Update(CancellationToken ct)
        {
            var t = RefreshTimeSpan;

            try
            {
                while (!ct.IsCancellationRequested)
                {
                    var addlist    = new List <UserOrderInfo>();
                    var deletelist = new List <UserOrderInfo>();
                    var s          = _stockAgent.User_order();
                    lock (this)
                    {
                        s.ForEach(x =>
                        {
                            var ss = UserOrderInfoList.FirstOrDefault(y => y.OrderId == x.OrderId);
                            if (ss != null)
                            {
                                ss.Update(x);
                            }
                            else
                            {
                                var si = new UserOrderInfo
                                {
                                    StockInfo = _stockInfoViewModel.StockInfoList.First(y => y.StockId == x.StockId)
                                };
                                si.Create(x);
                                addlist.Add(si);
                            }
                        });
                        UserOrderInfoList.ForEach(x =>
                        {
                            var ss = s.FirstOrDefault(y => y.OrderId == x.OrderId);
                            if (ss == null)
                            {
                                deletelist.Add(x);
                            }
                        });
                        addlist.ForEach(x => UserOrderInfoList.Add(x));
                        deletelist.ForEach(x => UserOrderInfoList.Remove(x));
                        UserOrderInfoList = UserOrderInfoList.OrderBy(x => x.OrderId).ToList();
                    }
                    await Task.Delay(t, ct);
                }
            }
            catch (Exception e)
            {
                if (!ct.IsCancellationRequested)
                {
                    await _dialogService.ShowError(e, "错误", "确定", null);
                }
            }
        }
示例#7
0
        /// <summary>
        /// 个人中心
        /// </summary>
        /// <returns></returns>
        public ActionResult Center()
        {
            var           user   = UserSvc.GetById((long)UserHelper.GetUserId(HttpContext));
            var           ids    = OrderUserSvc.GetById(user.Id).LastOrDefault();
            var           orders = OrderSvc.GetById(ids);
            UserOrderInfo info   = new UserOrderInfo();

            info.user        = user;
            info.orders      = orders;
            ViewBag.phonenum = user.PhoneNum;
            ViewBag.userid   = UserHelper.GetUserId(HttpContext);
            ViewBag.IsGuide  = new UserService().IsGuide((long)Session["LoginUserId"]);
            return(View(info));
        }
示例#8
0
        // GET: UserOrderInfoes/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UserOrderInfo userOrderInfo = db.UserOrderInfoSet.Find(id);

            if (userOrderInfo == null)
            {
                return(HttpNotFound());
            }
            return(View(userOrderInfo));
        }
示例#9
0
        public ActionResult Update(int uid, int xinNumber)
        {
            UserOrderInfo uoii = db.UserOrderInfoSet.Find(uid);

            uoii.State         = "已预订";
            uoii.PeopleNumber  = xinNumber;
            uoii.OrderDateTime = DateTime.Now;

            db.Entry(uoii).State = EntityState.Modified;
            db.SaveChanges();


            return(RedirectToAction("Index"));
        }
示例#10
0
        // GET: UserOrderInfoes/Edit/5
        private ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UserOrderInfo userOrderInfo = db.UserOrderInfoSet.Find(id);

            if (userOrderInfo == null)
            {
                return(HttpNotFound());
            }
            ViewBag.OrderId = new SelectList(db.OrderSet, "Id", "Describe", userOrderInfo.OrderId);
            return(View(userOrderInfo));
        }
示例#11
0
        public async Task <BaseResult <UserOrderInfo> > GetOrderById(string id)
        {
            UserOrderInfo query = (from o in await orderRepository.GetAllAsync(c => c.order_id == id)
                                   join u in await userRepository.GetAllAsync() on o.user_id equals u.user_id
                                   select new UserOrderInfo()
            {
                order_id = o.order_id,
                order_number = o.order_number,
                order_total = o.order_total,
                order_privilege = o.order_privilege,
                order_actualpay = o.order_actualpay,
                order_paystatus = o.order_paystatus,
                order_goods = o.order_goods,
                order_payway = o.order_payway,
                order_delete = o.order_delete,
                createtime = o.createtime,
                disable = o.disable,
                user_email = u.user_email,
                order_memo = o.order_memo,
                disabledesc = o.disabledesc,
            }).FirstOrDefault();
            var orderdetailinfo = from o in await orderDetailRepository.GetAllAsync(c => c.order_id == id)
                                  join s in await shopRepository.GetAllAsync() on o.shop_id equals s.shop_id
                                  join k in await shopSkuRepository.GetAllAsync() on o.shopsku_id equals k.shopsku_id
                                  select new OrderDetailInfo()
            {
                orderdetail_id        = o.orderdetail_id,
                shop_id               = s.shop_id,
                shopsku_id            = k.shopsku_id,
                shop_currentprice     = o.shop_currentprice,
                shop_count            = o.shop_count,
                shop_name             = s.shop_name,
                shop_number           = s.shop_number,
                shop_code             = k.shop_code,
                shopsku_originalprice = k.shopsku_originalprice,
                shop_defaultimg       = s.shop_defaultimg
            };

            query.orderdetailinfo = orderdetailinfo;

            return(new BaseResult <UserOrderInfo>(200, query));
        }
示例#12
0
        public ActionResult Create(int Id, String uname, int pNumber)
        {
            IQueryable <UserOrderInfo> uois = db.UserOrderInfoSet.Where(o => o.UName == uname && o.OrderId == Id);

            if (uois.Count() > 0)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                UserOrderInfo uoi = new UserOrderInfo();
                uoi.UName         = uname;
                uoi.OrderId       = Id;
                uoi.PeopleNumber  = pNumber;
                uoi.OrderDateTime = DateTime.Now;
                uoi.State         = "已预订";

                db.UserOrderInfoSet.Add(uoi);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
        }
示例#13
0
        public async Task Execute12306cnAsync(Execute12306cnInfo execute12306cnInfo)
        {
            _execute12306cnInfo = execute12306cnInfo;

            _userOrderInfo = GetUserOrderInfo(execute12306cnInfo.UserName);
            var otnLeftTicketQueryInfo = new OtnLeftTicketQueryInfo
            {
                PurposeCode = _userOrderInfo.PurposeCode,
                Date        = _userOrderInfo.RideDate,
                FromStation = _userOrderInfo.FromStationCode,
                ToStation   = _userOrderInfo.ToStationCode
            };

            otnLeftTicketQueryInfo.Referer = string.Format(UrlsIn12306cn._otnLeftTicketInitUrl,
                                                           _userOrderInfo.TourFlag,
                                                           string.Format("{0},{1}", _userOrderInfo.FromStationName, _userOrderInfo.FromStationCode),
                                                           string.Format("{0},{1}", _userOrderInfo.ToStationName, _userOrderInfo.ToStationCode),
                                                           _userOrderInfo.RideDate, "N,N,Y");

            var otnLeftTicketQueryResult = await OtnLeftTicketQueryAsync(otnLeftTicketQueryInfo);

            if (otnLeftTicketQueryResult == null)
            {
                return;
            }
            var tickets = ParseToTickets(otnLeftTicketQueryResult.data);

            if (tickets == null || !tickets.Any())
            {
                return;
            }

            var ticketInfo = tickets.FirstOrDefault(m => !string.IsNullOrEmpty(m.TrainNo) && m.TrainNo.ToUpper().StartsWith(_userOrderInfo.TrainType.ToString().ToUpper()));

            Console.WriteLine("Execute12306cnAsync,ticketInfo:{0}  /r/n", JsonConvert.SerializeObject(ticketInfo));
            Console.WriteLine("----------------------------------------------------------------");

            if (ticketInfo == null)
            {
                return;
            }

            var submitOrderRequestInfo = new SubmitOrderRequestInfo
            {
                SecretStr     = ticketInfo.SecretStr,
                TrainDate     = _userOrderInfo.RideDate,
                BackTrainDate = _userOrderInfo.BackRideDate,
                FromStation   = _userOrderInfo.FromStationName,
                ToStation     = _userOrderInfo.ToStationName,
                TourFlag      = _userOrderInfo.TourFlag,
                PurposeCode   = _userOrderInfo.PurposeCode,
                Referer       = otnLeftTicketQueryInfo.Referer
            };

            var submitOrderRequestResult = await SubmitOrderRequestAsync(submitOrderRequestInfo);

            if (submitOrderRequestResult == null)
            {
                return;
            }

            var confirmPassengerInitDcResult = await OtnConfirmPassengerInitDcAsync(otnLeftTicketQueryInfo.Referer);

            if (confirmPassengerInitDcResult == null)
            {
                return;
            }

            var confirmPassengerDTOsResult = await ConfirmPassengerDTOsAsync(confirmPassengerInitDcResult.GlobalRepeatSubmitToken);

            if (confirmPassengerDTOsResult == null)
            {
                return;
            }
            var passengerInfo = confirmPassengerDTOsResult.data.normal_passengers.FirstOrDefault();

            if (passengerInfo == null)
            {
                Console.WriteLine("ConfirmPassengerDTOsAsync,passengerInfo is null");
                return;
            }
            var confirmPassengerCheckOrderInfo = new ConfirmPassengerCheckOrderInfo
            {
                RepeatSubmitToken  = confirmPassengerInitDcResult.GlobalRepeatSubmitToken,
                JsonAtt            = string.Empty,
                BedLevelOrderNum   = "000000000000000000000000000000",
                CancelFlag         = 2,
                OldPassengerStr    = Enum12306Datas.OldPassengerStrFormat(passengerInfo),
                PassengerTicketStr = Enum12306Datas.PassengerTicketStrFormat(_userOrderInfo, passengerInfo),
                TourFlag           = _userOrderInfo.TourFlag,
                WhatsSelect        = 1,
                Referer            = UrlsIn12306cn._otnConfirmPassengerInitDcUrl
            };
            var confirmPassengerCheckOrderResult = await ConfirmPassengerCheckOrderAsync(confirmPassengerCheckOrderInfo);

            if (!confirmPassengerCheckOrderResult.data.submitStatus)
            {
                return;
            }

            var confirmPassengerQueueCountInfo = new ConfirmPassengerQueueCountInfo
            {
                TrainDate           = DateTime.Parse(_userOrderInfo.RideDate).ToCst(),
                TrainNo             = ticketInfo.TrainCode,
                RepeatSubmitToken   = confirmPassengerInitDcResult.GlobalRepeatSubmitToken,
                FromStationTelecode = ticketInfo.FromStationTelecode,
                ToStationTelecode   = ticketInfo.ToStationTelecode,
                LeftTicket          = confirmPassengerInitDcResult.TicketInfoForPassengerInfo.leftTicketStr,
                PurposeCode         = confirmPassengerInitDcResult.TicketInfoForPassengerInfo.purpose_codes,
                SeatType            = _userOrderInfo.SeatType.ToString(),
                TrainLocation       = confirmPassengerInitDcResult.TicketInfoForPassengerInfo.train_location,
                StationTrainCode    = ticketInfo.TrainNo,
                Referer             = UrlsIn12306cn._otnConfirmPassengerInitDcUrl
            };
            var confirmPassengerQueueCountResult = await ConfirmPassengerQueueCountAsync(confirmPassengerQueueCountInfo);

            var confirmSingleForQueueInfo = new ConfirmSingleForQueueInfo
                                                (confirmPassengerCheckOrderInfo.Referer,
                                                confirmPassengerInitDcResult.GlobalRepeatSubmitToken,
                                                confirmPassengerCheckOrderInfo.JsonAtt, null, null,
                                                confirmPassengerInitDcResult.TicketInfoForPassengerInfo.key_check_isChange,
                                                confirmPassengerInitDcResult.TicketInfoForPassengerInfo.leftTicketStr,
                                                confirmPassengerCheckOrderInfo.OldPassengerStr,
                                                confirmPassengerCheckOrderInfo.PassengerTicketStr,
                                                _userOrderInfo.PurposeCode, null, null, null, ticketInfo.TrainLocation,
                                                confirmPassengerCheckOrderInfo.WhatsSelect.ToString()
                                                );
            var confirmSingleForQueueResult = await ConfirmSingleForQueueAsync(confirmSingleForQueueInfo);
        }
示例#14
0
        public ActionResult UpdateNumber(int uid)
        {
            UserOrderInfo uoii = db.UserOrderInfoSet.Find(uid);

            return(View(uoii));
        }
示例#15
0
        public async Task <BaseResult <bool> > Pay(string order_id, int payway, SendMailConfig sendMailConfig)
        {
            if (string.IsNullOrEmpty(order_id))
            {
                return(new BaseResult <bool>(808));
            }
            //第一步:查询订单信息,如果订单有问题,则不允许用户修改支付状态
            UserOrderInfo query = (from o in await orderRepository.GetAllAsync(c => c.order_id == order_id)
                                   join u in await userRepository.GetAllAsync() on o.user_id equals u.user_id
                                   select new UserOrderInfo()
            {
                order_id = o.order_id,
                order_number = o.order_number,
                order_goods = o.order_goods,
                order_delete = o.order_delete,
                disable = o.disable,
                user_email = u.user_email,
            }).FirstOrDefault();

            //已支付,已禁用,已删除 不允许操作
            if (query.order_paystatus == 2)
            {
                return(new BaseResult <bool>(5002));
            }
            if (query.disable == 1)
            {
                return(new BaseResult <bool>(5000));
            }
            if (query.order_delete != 1)
            {
                return(new BaseResult <bool>(5001));
            }

            var orderdetail = await orderDetailRepository.GetAllAsync(c => c.order_id == order_id);

            query.orderdetail = orderdetail;

            //首先查询信息并且发送邮件,如果邮件发送成功同步修改订单信息,否则不修改订单信息

            //根据订单详情查询对应的商品信息(商品名称,商品编码 商品code 商品下载地址 对应下载码),然后拼接发送的信息发送邮件
            IList <ShopDetailInfo> shopDetailList = (from s in await shopRepository.GetAllAsync(s => (from o in orderdetail select o.shop_id).Contains(s.shop_id))
                                                     join k in await shopSkuRepository.GetAllAsync(k => (from o in orderdetail select o.shopsku_id).Contains(k.shopsku_id)) on s.shop_id equals k.shop_id
                                                     select new ShopDetailInfo()
            {
                shopEntity = s,
                shopSkuEntity = k
            }).ToList();
            StringBuilder sbHtmlEmail = new StringBuilder();

            for (int i = 0; i < shopDetailList.Count; i++)
            {
                sbHtmlEmail.AppendFormat(@"<tr>
                    <td style='padding - left:10px; padding - right:10px; padding - top:5px; padding - bottom:5px; '>{0}</td>
                    <td style='padding - left:10px; padding - right:10px; padding - top:5px; padding - bottom:5px; '>{1}</td>
                    <td style='padding - left:10px; padding - right:10px; padding - top:5px; padding - bottom:5px; '>
                        <a href='{2}'>{2}</a></td><td style='padding - left:10px; padding - right:10px; padding - top:5px; padding - bottom:5px; '>{3}</td></tr>",
                                         shopDetailList[i].shopEntity.shop_name, shopDetailList[i].shopSkuEntity.shop_code, shopDetailList[i].shopSkuEntity.shopsku_url, shopDetailList[i].shopSkuEntity.shopsku_code);
            }
            var isEmailTrue = await EmailUtil.SendEmailAsync(query.user_email, string.Format(EmailKeyUtil.send_order_title, query.user_email),
                                                             string.Format(EmailKeyUtil.send_order_content, query.user_email, sbHtmlEmail.ToString()), sendMailConfig, "h");

            if (isEmailTrue)
            {
                OrderEntity order = new OrderEntity()
                {
                    order_id        = order_id,
                    order_paystatus = 2,
                    order_payway    = payway,
                    order_goods     = 2
                };
                var isTrue = await orderRepository.UpdateAsync(order, true, true, o => o.order_paystatus, o => o.order_payway, o => o.order_goods);

                if (isTrue)
                {
                    return(new BaseResult <bool>(200));
                }
            }
            return(new BaseResult <bool>(201));
        }