Exemplo n.º 1
0
 /// <summary>
 /// 插进推送订单返回值
 /// </summary>
 /// <param name="entity"></param>
 /// <returns>2015-09-02 王耀发 创建</returns>
 public override int InsertSendOrderReturn(SendOrderReturn entity)
 {
     entity.SysNo = Context.Insert("SendOrderReturn", entity)
                    .AutoMap(o => o.SysNo)
                    .ExecuteReturnLastId <int>("SysNo");
     return(entity.SysNo);
 }
Exemplo n.º 2
0
        public override Result <string> SendOrder(int orderSysNo)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = 0,
                Message    = ""
            };

            lock (lockHelper)//防止多人同时操作造成产品重复添加
            {
                var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo);
                if (order == null)
                {
                    result.Message = "该订单不存在";
                }
                else
                {
                    try
                    {
                        order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                        order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);

                        // 收货人 区 市 省
                        BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                        BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                        BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);

                        Dictionary <string, string> postData = new Dictionary <string, string>();

                        //下单商品 sku及购买数量,sku和购买数量用逗号隔开,多件商品时用分号隔开(如: test001,1;test002,1)
                        //B0230115,2;B0230131,3
                        var skuinfo = "";
                        foreach (var item in order.OrderItemList)
                        {
                            ScProduct scProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(item.ProductSysNo, (int)Code);
                            skuinfo += string.Format("{0},{1};", scProduct.SKU, item.Quantity);
                        }
                        skuinfo = skuinfo.TrimEnd(';');

                        postData.Add("skuinfo", skuinfo);
                        postData.Add("consi_name", order.ReceiveAddress.Name);               //收货人姓名
                        postData.Add("consi_phone", order.ReceiveAddress.MobilePhoneNumber); //收货人手机号码
                        postData.Add("consi_card", order.ReceiveAddress.IDCardNo);           //收货人身份证
                        postData.Add("consi_provinc", receiverProvince.AreaName);            //收货人所在省
                        postData.Add("consi_city", receiverCity.AreaName);                   //收货人所在城市
                        postData.Add("consi_county", receiverDistrict.NameAcronym);          //收货人所在县
                        postData.Add("consi_address", order.ReceiveAddress.StreetAddress);   //收货人所在地址
                        postData.Add("consi_freight", order.FreightAmount.ToString());       //运费
                        postData.Add("consi_price", order.OrderAmount.ToString());           //订单金额
                        //(非必填)torder 第三方订单号
                        //(非必填)paytype 支付方式(1:快付通,2:快钱,3:支付宝,4:微信,5:易极付,6:招商银行)
                        //(非必填)pay_tradeno 支付流水号
                        postData.Add("remark", "平台推单");//订单备注信息

                        string responsestr = Post(Config.GatewayUrl + "?c=vendor&a=addOrder", postData);
                        result.Data = responsestr;
                        var back = JObject.Parse(responsestr);
                        result = GetResult(result, back);
                        if (result.Status)
                        {
                            //返回结果保存到SendOrderReturn表中 2016-4-26 王耀发 创建
                            SendOrderReturn m = new SendOrderReturn();
                            m.soOrderSysNo = orderSysNo;
                            m.Code         = "1";
                            m.Msg          = responsestr;
                            m.OrderNo      = back["data"]["order_number"].ToString();
                            Hyt.BLL.Order.SoOrderBo.Instance.InsertSendOrderReturn(m, AdminAuthenticationBo.Instance.Current.Base);
                            //更新订单的商检推送状态
                            Hyt.BLL.Order.SoOrderBo.UpdateOrderSendStatus(orderSysNo, (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单推送状态.已推送);
                        }
                    }
                    catch (Exception ex)
                    {
                        result.Status     = false;
                        result.StatusCode = -2;
                        result.Message    = ex.Message;
                    }
                }
                return(result);
            }
        }
Exemplo n.º 3
0
        public override Result <string> SendOrder(int orderSysNo)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = 0,
                Message    = ""
            };

            var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo);

            if (order == null)
            {
                result.Message = "该订单不存在";
            }
            else
            {
                try
                {
                    order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                    order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);

                    // 收货人 区 市 省
                    BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                    BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                    BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                    var    provice          = receiverProvince.AreaName.Replace("省", "").Replace("市", "");

                    var postData = new Dictionary <string, string>();
                    postData.Add("appKey", Config.Account);
                    postData.Add("orderNo", order.SysNo.ToString());                                                                                             //网店订单编号[必填]
                    postData.Add("userName", order.CustomerSysNo.ToString());                                                                                    //买家ID[可填]
                    postData.Add("uName", order.ReceiveAddress.Name);                                                                                            //收件人姓名[必填]
                    postData.Add("province", provice);                                                                                                           //省份[必填]
                    postData.Add("city", receiverCity.AreaName);                                                                                                 //城市[必填]
                    postData.Add("district", receiverDistrict.AreaName);                                                                                         //区域[必填]
                    postData.Add("address", provice + " " + receiverCity.AreaName + " " + receiverDistrict.AreaName + " " + order.ReceiveAddress.StreetAddress); //地址[必填]
                    postData.Add("postcode", "123456");                                                                                                          //邮编[必填]
                    postData.Add("mobiTel", order.ReceiveAddress.MobilePhoneNumber);                                                                             //手机号码[可填][注:手机号码和电话号码至少填一项]
                    //postData.Add("phone", order.ReceiveAddress.PhoneNumber);//电话号码[可填][注:手机号码和电话号码至少填一项]
                    postData.Add("cRemark", order.ReceiveAddress.IDCardNo);                                                                                      //身份信息
                    //postData.Add("oRemark", order.InternalRemarks);//卖家备注[可填]
                    postData.Add("oSumPrice", order.OrderAmount.ToString());                                                                                     //实付订单总金额[必填]
                    //postData.Add("expFee", order.FreightAmount.ToString());//实付订单运费[可填][默认为0]
                    postData.Add("expCod", "0");                                                                                                                 //是否货到付款[必填][1:货到付款]
                    //postData.Add("codFee", "0");//货到付款手续费[可填][默认为0]
                    //postData.Add("expCodFee", "0");//货到付款代收运费[可填][默认为0]
                    //postData.Add("payTime", "2015-04-20 09:44:44");//订单支付日期
                    //postData.Add("paymententerprise", "");//订单支付企业
                    //postData.Add("paymentno", "");//订单支付流水号

                    List <Api_OrderProInfo> postOrderItemList = new List <Api_OrderProInfo>();
                    foreach (var item in order.OrderItemList)
                    {
                        var scProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(item.ProductSysNo, (int)Code);
                        if (scProduct != null)
                        {
                            var scObj = JObject.Parse(scProduct.Receipt);
                            var model = new Api_OrderProInfo()
                            {
                                proNo    = scObj["ProNo"].ToString(),
                                proSku   = scProduct.SKU,
                                proTitle = scProduct.ProductName,
                                proCount = item.Quantity.ToString(),
                                proPrice = item.SalesUnitPrice.ToString()
                            };
                            postOrderItemList.Add(model);
                        }
                    }
                    postData.Add("OrderPro", JsonConvert.SerializeObject(postOrderItemList));

                    var responseStr = Post("IOpenAPI.AddOrder", postData);
                    var back        = JObject.Parse(responseStr);
                    result = GetResult(back);
                    if (result.Status)
                    {
                        try
                        {
                            using (var tran = new System.Transactions.TransactionScope())
                            {
                                SendOrderReturn m = new SendOrderReturn();
                                m.OverseaCarrier    = "";
                                m.OverseaTrackingNo = "";
                                m.soOrderSysNo      = orderSysNo;
                                m.Code    = "1";
                                m.Msg     = JsonConvert.SerializeObject(back);
                                m.OrderNo = back["Result"].ToString();
                                Hyt.BLL.Order.SoOrderBo.Instance.InsertSendOrderReturn(m, Hyt.BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base);
                                //更新订单推送状态
                                Hyt.BLL.Order.SoOrderBo.UpdateOrderSendStatus(orderSysNo, (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单推送状态.已推送);
                                result.Message = "推送成功";
                                tran.Complete();
                            }
                        }
                        catch (Exception ex)
                        {
                            result.Status  = false;
                            result.Message = ex.Message;
                            BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.后台, this.Code + "订单推送:" + ex.Message, ex);
                        }
                    }
                }
                catch (Exception ex)
                {
                    result.Message = ex.Message;
                    BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.后台, this.Code + "订单推送:" + ex.Message, ex);
                }
            }
            return(result);
        }
Exemplo n.º 4
0
 /// <summary>
 /// 插进推送订单返回值
 /// </summary>
 /// <param name="entity"></param>
 /// <returns>2015-09-02 王耀发 创建</returns>
 public abstract int InsertSendOrderReturn(SendOrderReturn entity);