public ActionResult ProductUserOrders(string id)
        {
            string key           = HotelCloud.Common.HCRequest.GetString("key");
            string hotelweixinId = key.Split('@')[0];
            string userweixinId  = key.Split('@')[1];

            string sign = ValidateUserSign(hotelweixinId, userweixinId);

            if (string.IsNullOrEmpty(sign))
            {
                return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "用户参数不合法", key = key }));
            }
            ViewData["key"] = key + "@" + sign;


            int count    = 0;
            int page     = 1;
            int pageSize = int.MaxValue;

            DataTable db_order    = SaleProducts_Orders.GetSaleProducts_Orders(userweixinId, out count, page, pageSize, "", "");
            var       list_orders = DataTableToEntity.GetEntities <Models.Home.SaleProducts_Orders>(db_order).ToList();

            ViewData["Orders"] = list_orders;

            return(View());
        }
        public ActionResult ProductUserOrderDetail(string orderNo)
        {
            string key           = HotelCloud.Common.HCRequest.GetString("key");
            string hotelweixinId = key.Split('@')[0];
            string userweixinId  = key.Split('@')[1];
            string sign          = string.Empty;


            //当没有签名字符启用查询验证
            if (key.Split('@').Length <= 2)
            {
                sign = ValidateUserSign(hotelweixinId, userweixinId);
                if (string.IsNullOrEmpty(sign))
                {
                    return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "用户参数不合法", key = key }));
                }
                ViewData["key"] = key + "@" + sign;
                return(RedirectToAction("ProductUserOrderDetail", "Product", new { orderNo = orderNo, key = ViewData["key"] }));
            }

            sign = key.Split('@')[2];
            if (!IsValidateUser(hotelweixinId, userweixinId, sign))
            {
                return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "签名不合法", key = key }));
            }
            ViewData["key"] = key;



            DataTable db_order = SaleProducts_Orders.GetSaleProducts_Orders(orderNo, userweixinId);
            var       order    = DataTableToEntity.GetEntity <Models.Home.SaleProducts_Orders>(db_order);

            ViewData["order"] = order;



            return(View());
        }
        public ActionResult HotelHexiaoMa()
        {
            string   orderNo = HotelCloud.Common.HCRequest.GetString("OrderNo").TrimEnd();
            string   yuName  = HotelCloud.Common.HCRequest.GetString("yuName").TrimEnd();
            DateTime yuDate  = Convert.ToDateTime(HotelCloud.Common.HCRequest.GetString("yuDate"));


            int    status = -1;
            string errmsg = string.Empty;


            string key           = HotelCloud.Common.HCRequest.GetString("key");
            string hotelweixinId = key.Split('@')[0];
            string userweixinId  = key.Split('@')[1];
            string sign          = key.Split('@')[2];

            if (!IsValidateUser(hotelweixinId, userweixinId, sign))
            {
                errmsg = "签名不合法";
                return(Json(new
                {
                    Status = status,
                    Mess = errmsg
                }, JsonRequestBehavior.AllowGet));
            }
            ViewData["key"] = key;



            DataTable db_order = SaleProducts_Orders.GetSaleProducts_Orders(orderNo, userweixinId);
            var       order    = DataTableToEntity.GetEntity <Models.Home.SaleProducts_Orders>(db_order);

            if (order.Id > 0 && order.ProductType == 0 && order.Ispay && (order.HexiaoStatus == (int)ProductSaleOrderTuanStatus.未预约 || order.HexiaoStatus == (int)ProductSaleOrderTuanStatus.预约失败))
            {
                int row = HotelCloud.SqlServer.SQLHelper.Run_SQL(@" update SaleProducts_Orders set HexiaoStatus=1,CheckInTime=@CheckInTime,CheckOutTime=@CheckOutTime,UserName=@UserName  where Id=@Id", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                    { "CheckInTime", new HotelCloud.SqlServer.DBParam {
                          ParamValue = yuDate.ToString()
                      } },
                    { "CheckOutTime", new HotelCloud.SqlServer.DBParam {
                          ParamValue = yuDate.ToString()
                      } },
                    { "UserName", new HotelCloud.SqlServer.DBParam {
                          ParamValue = yuName
                      } },
                    { "Id", new HotelCloud.SqlServer.DBParam {
                          ParamValue = order.Id.ToString()
                      } }
                });
                if (row > 0)
                {
                    string log = string.Format("用户申请预约");
                    row = HotelCloud.SqlServer.SQLHelper.Run_SQL(@"insert into dbo.wkn_operatingrecord(weixinid,orderno,operator,operationdate,description) values(@weixinid,@orderno,@operator,@operationdate,@description) ", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                        { "orderno", new HotelCloud.SqlServer.DBParam {
                              ParamValue = order.OrderNo
                          } },
                        { "weixinid", new HotelCloud.SqlServer.DBParam {
                              ParamValue = order.HotelWeiXinId
                          } },
                        { "operator", new HotelCloud.SqlServer.DBParam {
                              ParamValue = "用户"
                          } },
                        { "operationdate", new HotelCloud.SqlServer.DBParam {
                              ParamValue = DateTime.Now.ToString()
                          } },
                        { "description", new HotelCloud.SqlServer.DBParam {
                              ParamValue = log
                          } }
                    });

                    status = 0;
                    errmsg = "预约成功";
                }


                else
                {
                    errmsg = "预约失败";
                }
            }

            else
            {
                errmsg = "找不到预约产品!";
            }

            return(Json(new
            {
                Status = status,
                Mess = errmsg
            }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ProductUserHexiao(string orderNo)
        {
            string key           = HotelCloud.Common.HCRequest.GetString("key");
            string hotelweixinId = key.Split('@')[0];
            string userweixinId  = key.Split('@')[1];
            string sign          = key.Split('@')[2];

            if (!IsValidateUser(hotelweixinId, userweixinId, sign))
            {
                return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "签名不合法", key = key }));
            }
            ViewData["key"] = key;

            DataTable db_order = SaleProducts_Orders.GetSaleProducts_Orders(orderNo, userweixinId);
            var       order    = DataTableToEntity.GetEntity <Models.Home.SaleProducts_Orders>(db_order);


            if (order.Id > 0)
            {
                if (order.ProductType == 0)
                {
                    //未使用或失败
                    if (order.HexiaoStatus == 0 || order.HexiaoStatus == 3)
                    {
                        ViewData["order"] = order;
                    }

                    else
                    {
                        return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "已经预约过产品!", key = HotelCloud.Common.HCRequest.GetString("key") }));
                    }
                }


                else
                {
                    return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "非团购产品无需预约!", key = HotelCloud.Common.HCRequest.GetString("key") }));
                }



                DataTable db_time = HotelCloud.SqlServer.SQLHelper.Get_DataTable(@" select EffectiveBeginTime, EffectiveEndTime from SaleProducts  with(nolock)  where Id=@Id", HotelCloud.SqlServer.SQLHelper.GetCon(), new Dictionary <string, HotelCloud.SqlServer.DBParam> {
                    { "Id", new HotelCloud.SqlServer.DBParam {
                          ParamValue = order.ProductId.ToString()
                      } }
                });

                if (db_time.Rows.Count > 0)
                {
                    ViewData["effectiveBeginTime"] = Convert.ToDateTime(db_time.Rows[0]["effectiveBeginTime"]).ToString("yyyy-MM-dd");

                    if (DateTime.Now.Date > Convert.ToDateTime(ViewData["effectiveBeginTime"]))
                    {
                        ViewData["effectiveBeginTime"] = DateTime.Now.ToString("yyyy-MM-dd");
                    }


                    ViewData["effectiveEndTime"] = Convert.ToDateTime(db_time.Rows[0]["effectiveEndTime"]).ToString("yyyy-MM-dd");
                }
            }

            else
            {
                return(RedirectToAction("ProductErrMsg", "Product", new { id = RouteData.Values["id"], errmsg = "找不到预约产品!", key = HotelCloud.Common.HCRequest.GetString("key") }));
            }

            return(View());
        }