Exemple #1
0
        /// <summary>
        /// 下单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static UUBaseResult AddOrder(UUOrder model)
        {
            model.nonce_str = Guid.NewGuid().ToString().Replace("-", "");
            model.timestamp = GetTimestamp();
            Dictionary <string, string> mydic = GetDictionary(model);

            model.sign = CreateMd5Sign(mydic, _appsecret);
            mydic.Add("sign", model.sign);
            string       url        = _host + _addOrderApiUrl;
            string       resultJson = HttpPost(url, mydic);
            UUBaseResult result     = JsonConvert.DeserializeObject <UUBaseResult>(resultJson);

            return(result);
            //{"ordercode":"U23108001807251739989279322","origin_id":"20180725173348","return_code":"ok","return_msg":"订单发布成功","appid":"d2fe3af49ce544c4b5c0731aa5ab28df","nonce_str":"29d8c95be2fe4b73bb648211b94fee0b","sign":"EDDF8CDC25DB95E3CF98CFCA13EA6F5A"}
        }
        /// <summary>
        /// UU订单状态改变回调接口
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public ActionResult UUnotis(string data)
        {
            LogHelper.WriteInfo(this.GetType(), $"UU配送:订单回调{data}");
            if (string.IsNullOrEmpty(data))
            {
                LogHelper.WriteInfo(this.GetType(), "UU配送:参数出错(回调)");
                return(Content("fail"));
            }

            UUOrderCallBackResult returnModel = JsonConvert.DeserializeObject <UUOrderCallBackResult>(data);

            if (returnModel == null)
            {
                LogHelper.WriteInfo(this.GetType(), "UU配送:参数转化失败(回调)");
                return(Content("fail"));
            }

            UUOrder order = UUOrderBLL.SingleModel.GetModelByOrderCode(returnModel.order_code);

            if (order == null)
            {
                LogHelper.WriteInfo(this.GetType(), $"UU配送:找不到订单【{returnModel.order_code}】(回调)");
                return(Content("fail"));
            }
            //如果状态一样,说明已发送过一次
            if (order.State == Convert.ToInt32(returnModel.state))
            {
                return(Content("success"));
            }

            order.State = Convert.ToInt32(returnModel.state);
            if (!string.IsNullOrEmpty(returnModel.driver_name))
            {
                order.driver_name   = returnModel.driver_name;
                order.driver_mobile = returnModel.driver_mobile;
                order.driver_jobnum = returnModel.driver_jobnum;
            }

            bool isSuccess = false;

            try
            {
                lock (_uuLock)
                {
                    switch (order.TemplateType)
                    {
                    case (int)TmpType.小程序餐饮模板:
                        isSuccess = UUOrderBLL.SingleModel.UUToFoodReturn(order);
                        break;

                    case (int)TmpType.智慧餐厅:
                        isSuccess = UUOrderBLL.SingleModel.UUToMutilFoodReturn(order);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteInfo(this.GetType(), "UU配送:回调异常" + JsonConvert.SerializeObject(returnModel) + ex.Message);
            }

            return(Content("success"));
        }