Пример #1
0
        protected void open_again_Click(object sender, EventArgs e)
        {
            var position  = string.Empty;
            var proidList = context.Query <Cell>().Where(o => o.part == 0 && o.mac.Equals(cabinet.mac)).Select(o => o.product_id.HasValue ? o.product_id.Value : 0).ToList();

            LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "needOpenAgain:" + JsonConvert.SerializeObject(proidList));
            if (proidList.Count == 0)
            {
                proidList = new List <int> {
                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                };
            }
            for (int i = 0; i < proidList.Count; i++)
            {
                if (proidList[i] == 0)
                {
                    position += i + ",";
                }
            }
            if (!string.IsNullOrEmpty(position))
            {
                position = position.TrimEnd(',');
                var rbh = new RemoteBoxHelper();
                rbh.OpenRemoteBox(cabinet.mac, string.Empty, position, 0x02);
            }
        }
Пример #2
0
        private void OpenBox(List <string> list)
        {
            var rbh          = new RemoteBoxHelper();
            var postion_list = list.Aggregate <string>((x, y) => x + "," + y).ToString();

            try
            {
                rbh.OpenRemoteBox(cabinet.mac, string.Empty, postion_list);
                context.Insert(new CabinetCheckLog
                {
                    createtime = DateTime.Now,
                    issuccess  = true,
                    mac        = cabinet.mac,
                    message    = postion_list + ":执行开箱操作",
                    openid     = OpenId,
                    phone      = userInfo.phone,
                    username   = userInfo.username
                });
            }
            catch (Exception)
            {
                MessageBox.Show(this, "system_alert", "执行开箱失败");
                return;
            }
        }
Пример #3
0
        private static void OpenBox()
        {
            var rbh       = new RemoteBoxHelper();
            var context   = new MySqlContext(new MySqlConnectionFactory(connString));
            var orderInfo = context.Query <OrderInfo>()
                            .FirstOrDefault(o => o.paid == true && o.delivered == false && o.date.AddMinutes(30) > DateTime.Now);

            if (orderInfo != null)
            {
                rbh.OpenRemoteBox(orderInfo.cabinet_mac.ObjToStr(), orderInfo.code.ObjToStr(), orderInfo.pos.ObjToStr());
            }
            //rbh.OpenRemoteBox("861853033030503", "00000010", "1");
        }
Пример #4
0
        protected void OpenSingleBox(int position)
        {
            var rbh = new RemoteBoxHelper();

            try
            {
                rbh.OpenRemoteBox(cabinet.mac, string.Empty, position.ObjToStr());
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, "system_alert", "开箱异常");
                return;
            }
        }
Пример #5
0
        protected void makeSure_ServerClick(object sender, EventArgs e)
        {
            var rbh = new RemoteBoxHelper();

            var postion_list = "0,1,2,3,4,5,6,7,8,9,10,11";
            var boxmac       = Request.QueryString["boxmac"].ObjToStr();

            try
            {
                rbh.OpenRemoteBox(boxmac, string.Empty, postion_list);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, "system_alert", "开箱异常");
                return;
            }
        }
Пример #6
0
        protected void OpenBox()
        {
            var proidList = context.Query <Cell>()
                            .LeftJoin <Product>((a, b) => a.product_id == b.id)
                            .Where((a, b) => a.part == 0 && a.mac.Equals(cabinet.mac) && !a.product_id.HasValue && b.price1 <= 100)
                            .Select((a, b) => a.pos)
                            .ToList();

            if (proidList.Count == 0)
            {
                proidList = new List <int> {
                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                };
            }
            if (proidList.Count > 0)
            {
                var requestUrl = string.Format(Constant.YunApi + "test/back/startWater?mac={0}", cabinet.mac);
                LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "backNoRequestUrl:" + requestUrl);
                var response = JsonConvert.DeserializeObject <BackNoResponse>(Utils.HttpGet(requestUrl));
                LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "backNoResponse:" + JsonConvert.SerializeObject(response));
                if (!response.operationStatus.Equals("SUCCESS"))
                {
                    MessageBox.Show(this, "system_alert", "补货单生成失败");
                    return;
                }
                if (response.operationMessage.Count == 0)
                {
                    MessageBox.Show(this, "system_alert", "暂无促销品补货任务");
                    return;
                }
                ViewState["BackNo"] = response.operationMessage;

                var rbh = new RemoteBoxHelper();
                rbh.OpenRemoteBox(cabinet.mac, string.Empty, "0", 0x02);
            }
            else
            {
                MessageBox.Show(this, "system_alert", "暂无促销品补货任务");
                return;
            }
        }
Пример #7
0
        public override void ProcessNotify()
        {
            try
            {
                WxPayData notifyData = GetNotifyData();
                //检查支付结果中transaction_id是否存在
                if (!notifyData.IsSet("transaction_id"))
                {
                    //若transaction_id不存在,则立即返回结果给微信支付后台
                    WxPayData res = new WxPayData();
                    res.SetValue("return_code", "FAIL");
                    res.SetValue("return_msg", "支付结果中微信订单号不存在");
                    page.Response.Write(res.ToXml());
                    page.Response.End();
                }
                string transaction_id = notifyData.GetValue("transaction_id").ToString();
                //查询订单,判断订单真实性
                if (!QueryOrder(transaction_id))
                {
                    //若订单查询失败,则立即返回结果给微信支付后台
                    WxPayData res = new WxPayData();
                    res.SetValue("return_code", "FAIL");
                    res.SetValue("return_msg", "订单查询失败");
                    page.Response.Write(res.ToXml());
                    page.Response.End();
                }
                //查询订单成功
                else
                {
                    var    context      = basePage.context;
                    string out_trade_no = notifyData.GetValue("out_trade_no").ToString();
                    out_trade_no = out_trade_no.Split('_')[0].ToString();
                    var orderInfo = context.Query <OrderInfo>().FirstOrDefault(o => o.code.Equals(out_trade_no));
                    if (orderInfo == null)
                    {
                        WxPayData res = new WxPayData();
                        res.SetValue("return_code", "FAIL");
                        res.SetValue("return_msg", "订单失效");
                        page.Response.Write(res.ToXml());
                        page.Response.End();
                    }

                    if (orderInfo.price1 == notifyData.GetValue("total_fee").ObjToInt(0))
                    {
                        try
                        {
                            var requestUrl = string.Format("{2}test/pay?orderId={0}&payId={1}", out_trade_no, transaction_id, Constant.YunApi);
                            var response   = JsonConvert.DeserializeObject <OrderResponse>(Utils.HttpGet(requestUrl));
                            if (response.operationStatus.Equals("SUCCESS"))
                            {
                                var rbh = new RemoteBoxHelper();
                                //执行开箱成功
                                rbh.OpenRemoteBox(orderInfo.cabinet_mac, out_trade_no, orderInfo.pos.ObjToStr());
                            }
                            ;
                            WxPayData res = new WxPayData();
                            res.SetValue("return_code", "SUCCESS");
                            res.SetValue("return_msg", "订单成功");
                            page.Response.Write(res.ToXml());
                            page.Response.End();
                        }
                        catch (Exception e)
                        {
                            WxPayData res = new WxPayData();
                            res.SetValue("return_code", "FAIL");
                            res.SetValue("return_msg", "订单异常");
                            page.Response.Write(res.ToXml());
                            page.Response.End();
                        }
                    }
                    else
                    {
                        WxPayData res = new WxPayData();
                        res.SetValue("return_code", "FAIL");
                        res.SetValue("return_msg", "订单金额不对");
                        page.Response.Write(res.ToXml());
                        page.Response.End();
                    }
                }
            }
            catch (Exception ex)
            {
                WxPayData res = new WxPayData();
                res.SetValue("return_code", "FAIL");
                res.SetValue("return_msg", "回调异常");
                page.Response.Write(res.ToXml());
                page.Response.End();
            }
        }
Пример #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                Log.WriteLog("notify_url", "支付宝回调", "-----");
                string connString = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
                var    context    = new MySqlContext(new MySqlConnectionFactory(connString));
                //Log.WriteLog("not11ify_url", "page_load", "");
                SortedDictionary <string, string> sPara = GetRequestPost();
                bool verifyResult = false;
                //Log.WriteLog("notify_url", "page_load", "");
                if (sPara.Count > 0)//判断是否有带返回参数
                {
                    Log.WriteLog("notify_url", "验证成功", sPara.ObjToStr());
                    Common.AiLiPay.Notify aliNotify = new Common.AiLiPay.Notify();
                    //Log.WriteLog("notify_url", "验证成功", "1");
                    try
                    {
                        Log.WriteLog("notify_url", "验证成功", "1_try");
                        verifyResult = aliNotify.Verify(sPara, DTRequest.GetString("notify_id"), DTRequest.GetString("sign"));
                    }
                    catch (Exception ex)
                    {
                        Log.WriteLog("", "", ex.ToString());
                        Response.Write("fail");
                        return;
                        //Log.WriteLog("notify_url", "验证成功", "1_catch");
                    }
                    //Log.WriteLog("notify_url", "验证成功", "2");
                    if (verifyResult)//验证成功
                    {
                        //Log.WriteLog("notify_url", "验证成功", "2_if");
                        //Log.WriteLog("zfb_________________________________________________________________________________", "验证成功", "");
                        string trade_no = DTRequest.GetString("trade_no").Trim();
                        Log.WriteLog("验证成功2_if", "trade_no", trade_no.ObjToStr());     //支付宝交易号
                        string out_trade_no = DTRequest.GetString("out_trade_no").Trim();
                        Log.WriteLog("验证成功2_if", "order_no", out_trade_no.ObjToStr()); //获取订单号
                        string total_fee = DTRequest.GetString("total_amount");

                        Log.WriteLog("验证成功2_if", "total_fee", total_fee.ObjToStr()); //获取总金额
                        string trade_status = DTRequest.GetString("trade_status");   //交易状态

                        var orderInfo = context.Query <OrderInfo>().FirstOrDefault(o => o.code.Equals(out_trade_no) && o.paid == false);
                        //如果改订单已经支付或者不存在,则不继续往下走
                        if (orderInfo == null)
                        {
                            Response.Write("fail");
                            return;
                        }

                        if (Config.Type == "1") //即时到帐接口处理方法
                        {
                            if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                            {
                                var requestUrl = string.Format("{2}test/pay?orderId={0}&payId={1}&payType={3}", out_trade_no, trade_no, Constant.YunApi, 1);
                                Log.WriteLog("支付接口回调", "requestUrl", requestUrl);                          //获取总金额
                                var response = JsonConvert.DeserializeObject <OrderResponse>(Utils.HttpGet(requestUrl));
                                Log.WriteLog("支付接口回调", "response", JsonConvert.SerializeObject(response)); //获取总金额
                                if (response.operationStatus.Equals("SUCCESS"))
                                {
                                    var rbh = new RemoteBoxHelper();
                                    Response.Write("success");
                                    //执行开箱成功
                                    rbh.OpenRemoteBox(orderInfo.cabinet_mac, out_trade_no, orderInfo.pos.ObjToStr());
                                    Log.WriteLog("支付接口回调", "成功", "成功");
                                    return;
                                }
                                else
                                {
                                    Response.Write("fail");
                                    return;
                                }
                                ;
                            }
                            else
                            {
                                Response.Write("fail");
                                return;
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                Response.Write("fail");
                return;
            }
        }
Пример #9
0
        private void PageInit()
        {
            if (userInfo == null)
            {
                MessageBox.Show(this, "system_alert", "用户不存在");
                return;
            }
            if (cabinet == null)
            {
                MessageBox.Show(this, "system_alert", "房间不存在");
                return;
            }

            #region 绑定房间商品
            var proidList = BindGoods(this, box_rp, cabinet);
            //var proidList = context.Query<Cell>().Where(o => o.part == 0 && o.mac.Equals(cabinet.mac)).Select(o => o.product_id.HasValue ? o.product_id.Value : 0).ToList();
            //LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "proidList:" + JsonConvert.SerializeObject(proidList));
            //if (proidList.Count == 0)
            //{
            //    proidList = new List<int> { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            //}
            //var layout = context.Query<CabinetLayout>().FirstOrDefault(o => o.hotel_id == cabinet.hotel);
            //if (layout == null)
            //{
            //    MessageBox.Show(this, "system_alert", "酒店未设置默认商品");
            //    return;
            //}
            //var layoutProList = layout.products.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            //LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "layoutProList:" + JsonConvert.SerializeObject(layoutProList));
            //if (proidList.Count() != layoutProList.Count())
            //{
            //    MessageBox.Show(this, "system_alert", "房间设置商品不全");
            //    return;
            //}
            //List<ProductQuery> list = new List<ProductQuery>();
            //List<Product> productList = context.Query<Product>().Where(o => o.state == 1).ToList();

            //for (int i = 0; i < proidList.Count(); i++)
            //{
            //    var proid = proidList[i].ObjToInt(0);
            //    var sell_out = false;
            //    //如果实际商品是0,则用默认商品补全
            //    if (proid == 0)
            //    {
            //        proid = layoutProList[i].ObjToInt(0);
            //        sell_out = true;
            //    }
            //    var pro = productList.FirstOrDefault(o => o.id == proid);
            //    if (pro == null)
            //    {
            //        continue;
            //    }
            //    var proQuery = TinyMapper.Map<ProductQuery>(pro);
            //    proQuery.sell_out = sell_out;
            //    list.Add(proQuery);
            //}
            //LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "bindList:" + JsonConvert.SerializeObject(list));
            //box_rp.DataSource = list;
            //box_rp.DataBind();
            #endregion

            #region 打开需要补货的格子
            try
            {
                var requestUrl = string.Format(Constant.YunApi + "test/back/start?mac={0}&username={1}", cabinet.mac, userInfo.username);
                LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "backNoRequestUrl:" + requestUrl);
                var response = JsonConvert.DeserializeObject <BackNoResponse>(Utils.HttpGet(requestUrl));
                LogHelper.WriteLogs(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "backNoResponse:" + JsonConvert.SerializeObject(response));
                if (!response.operationStatus.Equals("SUCCESS"))
                {
                    MessageBox.Show(this, "system_alert", "补货单生成失败");
                    return;
                }
                ViewState["BackNo"] = response.operationMessage;
                var position = string.Empty;
                for (int i = 0; i < proidList.Count; i++)
                {
                    if (proidList[i] == 0)
                    {
                        position += i + ",";
                    }
                }
                if (!string.IsNullOrEmpty(position))
                {
                    position = position.TrimEnd(',');
                    var rbh = new RemoteBoxHelper();
                    rbh.OpenRemoteBox(cabinet.mac, string.Empty, position, 0x02);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, "system_alert", "数据异常:" + ex.Message + ";内部异常:" + ex.InnerException.Message);
                return;
            }
            #endregion
        }