public APIResult PreThirdAddOrder() { ThirdServer thirdServer = new ThirdServer(shopDb, thirdConfig); var model = shopDb.ShopOrders.FirstOrDefault(r => r.Id == 2651); var shopordertakeout = shopDb.ShopOrderTakeouts.FirstOrDefault(r => r.ShopOrderId == model.Id && !r.IsDel); var tradeno = DateTime.Now.Ticks + CommonUtil.CreateNoncestr(5); //处理达达配送 var thirddshopaddmodel = new BLL.Servers.ThirdShopAddOrderModel() { ShopId = 11, origin_id = tradeno, // //shop_no = "11047059",//测试 shop_no = "9896-126130", cargo_type = -1, cargo_price = 0.01, city_code = "0769", is_prepay = 0, origin_mark = "HCHH", origin_mark_no = tradeno, receiver_lng = 113.76031219944932, receiver_lat = 23.012808108215836, receiver_phone = "13266274421", receiver_address = "第一国际百安中心A1006", receiver_name = "t", callback = "callback", }; var result = thirdServer.PreThirdAddOrder(thirddshopaddmodel); return(Success(result)); }
public async Task <APIResult> ThirdFormalCancel() { ThirdServer thirdServer = new ThirdServer(_db, thirdConfig); var result = await thirdServer.ThirdFormalCancel(); return(Success(result)); }
public async Task <APIResult> ThirdOrderQuery([FromBody] COrderInfoQueryModel model) { ThirdServer thirdServer = new ThirdServer(_db, thirdConfig); var thirdorder = await thirdServer.ThirdOrderQuery(model); return(Success(thirdServer)); }
public APIResult TestOfx() { var OpenOfx = BaiduMapUtil.GetBdToGd(113.76031219944932, 23.012808108215836); var thirddshopaddmodel = new ThirdShopAddOrderModel() { ShopId = 11, origin_id = DateTime.Now.Ticks + CommonUtil.CreateNoncestr(5),// //shop_no = "11047059",//测试 shop_no = "9896-126130", cargo_type = -1, cargo_price = 10, city_code = "0769", is_prepay = 0, origin_mark = "HCHH", origin_mark_no = DateTime.Now.Ticks + CommonUtil.CreateNoncestr(5), receiver_lng = 113.7538969583704, receiver_lat = 23.00648851131533, receiver_phone = "15812808736", receiver_address = "百安中心", receiver_name = "万", callback = thirdConfig.CallBackUrl, }; var result = DbExtention.ThirdAmountFinish(shopDb, thirdConfig, new BLL.Third.CThirdShopRechargeQueryModel() { ShopId = 11, category = 1 }).Result; var preresult = new ThirdServer(shopDb, thirdConfig).PreThirdAddOrder(thirddshopaddmodel); return(Success()); }
public async Task <APIResult> CTestThird([FromBody] ThirdOrderAPIModels model) { var order = new ShopOrder() { AddTime = DateTime.Now, MemberId = 0, ShopId = model.ShopId, Remark = "达达配送", AddUser = $"member", AddIp = GetIp(), Flag = Guid.NewGuid().ToString(), IsTakeOut = true, Status = ShopOrderStatus.待支付, OrderNumber = model.OrderId //TakeDistributionType = args.TakeDistributionType }; db.Add(order); //处理达达配送 ThirdServer thirdServer = new ThirdServer(db, thirdConfig); var shoptakeoutinfo = db.ShopTakeOutInfo.FirstOrDefault(r => r.ShopId == model.ShopId && !r.IsDel); if (shoptakeoutinfo.TakeDistributionType == TakeDistributionType.达达配送) { var merchant = db.Merchant.FirstOrDefault(r => r.ShopId == model.ShopId); if (merchant == null) { throw new Exception("商户未在达达开户"); } var thirdshop = db.ThirdShop.FirstOrDefault(r => r.ShopId == model.ShopId); if (thirdshop == null) { throw new Exception("商户门店不存在"); } model.thirdShopAddOrderModel.origin_id = model.OrderId; var result = await thirdServer.ThirdAddOrder(model.thirdShopAddOrderModel, null); if (result.errorCode == 0 || result.status == "success") { db.ThirdMoneyReport.Add(new Data.ThirdMoneyReport() { OrderNumber = model.OrderId, Amount = result.result.fee, AddTime = DateTime.Now, ProduceType = Data.ProduceType.发起订单 }); } db.SaveChanges(); return(Success(result)); } return(Error("error")); }
/// <summary> /// 处理达达预发单信息发起订单 /// </summary> /// <param name="db"></param> /// <param name="thirdConfig"></param> /// <param name="model"></param> /// <param name="_logger"></param> public static void ThirdAfterOrder(ShopDbContext db, ThirdConfig thirdConfig, ShopOrder model, ILogger _logger) { try { var queryfee = db.ThirdApiData.FirstOrDefault(r => r.OrderId == model.OrderNumber && r.JsonData == "QueryFee"); if (queryfee != null) { var queryfeedata = JsonConvert.DeserializeObject <CallbackAfterOrder>(queryfee.ResultData); ThirdServer thirdServer = new ThirdServer(db, thirdConfig); var result = thirdServer.CallbackAfter(new AddAfterQuery() { deliveryNo = queryfeedata.result.deliveryNo , Fee = queryfeedata.result.fee, OrderNumber = model.OrderNumber, ShopId = model.ShopId }); if (result.errorCode == 0 || result.status == "success") { _logger.LogInformation($"===========回调达达发单成功 更改订单状态为待接单============="); model.Status = ShopOrderStatus.待接单; } else { _logger.LogInformation($"===========回调达达发单失败 原因{result.msg}============="); } } else { _logger.LogInformation($"===========回调达达发单失败 未找到订单预发单信息============="); } } catch (Exception ex) { _logger.LogInformation($"=========== ThirdAfterOrder Exception {ex.Message}============="); } }
public async Task <APIResult> GetOrderInfo([FromBody] GetOrderInfoArgsModel args) { if (!args.shopOrderId.HasValue) { throw new Exception("shopOrderId不能为空"); } ShopOrder shopOrder = db.Query <ShopOrder>() .Where(m => m.Id == args.shopOrderId.Value) .Include(m => m.ShopOrderOtherFee) .Include(m => m.ShopOrderSelfHelp) .Include(m => m.ShopOrderMoneyOffRule) .Include(m => m.ShopPart) .FirstOrDefault(); if (shopOrder == null) { throw new Exception("订单记录不存在"); } ShopOrderServer shopOrderServer = new ShopOrderServer(shopOrder); GetOrderInfoResultModel rtn = new GetOrderInfoResultModel() { Code = shopOrder.OrderNumber, CreateTime = shopOrder.AddTime.ToString("yyyy-MM-dd HH:mm:ss"), PayTime = shopOrder.PayTime?.ToString("yyyy-MM-dd HH:mm:ss"), PayMent = shopOrder.Payment / 100m, PayStatus = shopOrderServer.GetPayStatus(), OrderStatus = shopOrder.Status.ToString(), Remark = shopOrder.Remark ?? "", IsTakeOut = shopOrder.IsTakeOut, PayWay = shopOrder.PayWay }; if (shopOrder.ShopOrderMoneyOffRule != null) { rtn.MoneyOffRule = new MoneyOffRule() { Discount = shopOrder.ShopOrderMoneyOffRule.Discount / 100m, FullAmount = shopOrder.ShopOrderMoneyOffRule.FullAmount / 100m }; } if (shopOrder.ShopOrderOtherFee != null) { rtn.OtherFee = new OtherFee() { BoxFee = shopOrder.ShopOrderOtherFee.BoxFee / 100m, DeliveryFee = shopOrder.ShopOrderOtherFee.DeliveryFee / 100m }; } if (shopOrder.ShopOrderSelfHelp != null) { rtn.SelfHelp = new SelfHelpInfo() { SelfHelpCode = shopOrder.ShopOrderSelfHelp.Number, TakeWay = shopOrder.ShopOrderSelfHelp.IsTakeOut ? "外带" : "堂食" }; } if (shopOrder.ShopPart != null) { rtn.ShopPartName = shopOrder.ShopPart.Title; } if (shopOrder.IsTakeOut) { var takeOut = db.Query <ShopOrderTakeout>() .Where(m => m.ShopOrderId == shopOrder.Id) .FirstOrDefault(); if (takeOut != null) { rtn.TakeOutInfo = new TakeOutInfo() { DiningWay = takeOut.TakeWay.ToString(), PickTile = takeOut.TakeWay == TakeWay.自提 ? "预计自提时间" : "期望配送时间", PickUpTime = takeOut.PickupTime.ToString("yyyy-MM-dd HH:mm:ss"), Address = takeOut.Address, Person = takeOut.Name, Phone = takeOut.Phone }; } } var orderItems = db.Query <ShopOrderItem>() .Where(m => !m.IsDel && m.ShopOrderId == args.shopOrderId.Value) .Select(m => new CommodityInfo() { Cover = m.CommodityStock.Sku.Commodity.Cover, Count = m.Count, VipPrice = (m.CommodityStock.Sku.Commodity.CategoryId != 0 && m.CommodityStock.Sku.Commodity.UseMemberPrice), PrimePrice = m.PrimePrice * m.Count / 100m, Name = $"{m.CommodityName}({m.SkuSummary})", SalePrice = m.SalePrice * m.Count / 100m }).ToList(); rtn.Items = orderItems; if (shopOrder.takeDistributionType == TakeDistributionType.达达配送) { ThirdServer thirdServer = new ThirdServer(db, thirdConfig); var thirdqueryresult = await thirdServer.ThirdOrderQuery(new BLL.Third.COrderInfoQueryModel() { ShopId = shopOrder.ShopId, order_id = shopOrder.OrderNumber }); rtn.cThirdInfoQuery = thirdqueryresult; } return(Success(rtn)); }
public static async Task <CThirdRechargeQueryResult> ThirdAmountFinish(ShopDbContext db, ThirdConfig thirdConfig, CThirdShopRechargeQueryModel model) { ThirdServer thirdServer = new ThirdServer(db, thirdConfig); return(await thirdServer.ThirdShopRechargeQuery(model)); }
/// <summary> /// 达达配送 /// </summary> /// <param name="db"></param> /// <param name="shopOrderid"></param> /// <param name="_logger"></param> public static async Task <ThirdAddOrderResult> ThirdOrderFinish(ShopDbContext db, ThirdConfig toptions, ShopOrder model, ILogger _logger, ExSource exSource) { var result = new ThirdAddOrderResult(); try { _logger.LogInformation("===========开始OrderFinish============="); if (model == null) { _logger.LogInformation($"============订单不存在============"); } var shoptakeoutinfo = db.ShopTakeOutInfo.FirstOrDefault(r => r.ShopId == model.ShopId && !r.IsDel); if (shoptakeoutinfo != null && shoptakeoutinfo.TakeDistributionType == TakeDistributionType.达达配送 && model.IsTakeOut) { _logger.LogInformation($"===========开始处理达达配送业务============="); _logger.LogInformation($"===========订单信息:{JsonConvert.SerializeObject(model)}============="); double fee = 0; model.Status = exSource == ExSource.发起支付 ? ShopOrderStatus.待支付 : ShopOrderStatus.待接单; ThirdServer thirdServer = new ThirdServer(db, toptions); var merchant = db.Merchant.FirstOrDefault(r => r.ShopId == model.ShopId); if (merchant == null) { _logger.LogInformation($"============商户ID{model.ShopId}未在达达开户============"); } var thirdshop = db.ThirdShop.FirstOrDefault(r => r.ShopId == model.ShopId && r.Status == Data.ThirdShop.ShopStatus.门店激活); if (thirdshop == null) { _logger.LogInformation($"============商户ID{model.ShopId}商户门店不存在============"); } var shopordertakeout = db.ShopOrderTakeouts.FirstOrDefault(r => r.ShopOrderId == model.Id && !r.IsDel); if (shoptakeoutinfo == null) { _logger.LogInformation($"============商户ID{model.ShopId}订单外卖信息不存在============"); } //处理达达配送 var thirddshopaddmodel = new ThirdShopAddOrderModel() { ShopId = model.ShopId, origin_id = model.OrderNumber,//DateTime.Now.Ticks + CommonUtil.CreateNoncestr(5),// //shop_no = "11047059",//测试 shop_no = thirdshop.OriginShopId, cargo_type = -1, cargo_price = model.Amount, city_code = "0769", is_prepay = 0, origin_mark = "HCHH", origin_mark_no = model.OrderNumber, receiver_lng = shopordertakeout.Longitude.Value, receiver_lat = shopordertakeout.Latitude.Value, receiver_phone = shopordertakeout.Phone, receiver_address = shopordertakeout.Address, receiver_name = shopordertakeout.Name, callback = toptions.CallBackUrl, }; _logger.LogInformation($"============商户ID{model.ShopId}达达配送信息:{JsonConvert.SerializeObject(thirddshopaddmodel)}============"); result = await thirdServer.ThirdAddOrder(thirddshopaddmodel, model); _logger.LogInformation($"============商户ID{model.ShopId}达达发单返回信息:{JsonConvert.SerializeObject(result)}============"); if (result.errorCode != 0 || result.status != "success") { _logger.LogInformation($"============商户ID{model.ShopId}达达发单失败。原因:{result.msg}============"); return(result); } // db.SaveChanges(); } } catch (Exception ex) { _logger.LogInformation($"===========OrderFinish出现异常=============="); _logger.LogInformation($"============{ex.Message} {ex.StackTrace}============"); } return(result); }
private APIResult CheckThird(ShopOrder shopOrder, int ShopId) { try { if (shopOrder.ShopPartId.HasValue || shopOrder.ShopOrderSelfHelpId.HasValue) { return(Success()); } var shopordertakeoutinfo = shopDb.ShopOrderTakeouts.FirstOrDefault(r => r.ShopOrderId == shopOrder.Id && !r.IsDel); if (shopordertakeoutinfo.TakeWay != TakeWay.送货上门) { return(Success()); } var shoptakeoutinfo = shopDb.ShopTakeOutInfo.FirstOrDefault(r => r.ShopId == ShopId && !r.IsDel); if (shoptakeoutinfo.TakeDistributionType == TakeDistributionType.商家配送) { return(Success()); } var thirdshop = shopDb.ThirdShop.FirstOrDefault(r => r.ShopId == ShopId); if (thirdshop == null || thirdshop.Status != Data.ThirdShop.ShopStatus.门店激活) { return(Error("配送门店状态不正常")); } var converResult = BaiduMapUtil.GetBdToGd(shopordertakeoutinfo.Longitude.Value, shopordertakeoutinfo.Latitude.Value); var thirddshopaddmodel = new ThirdShopAddOrderModel() { ShopId = shopOrder.ShopId, origin_id = shopOrder.OrderNumber, //DateTime.Now.Ticks + CommonUtil.CreateNoncestr(5),// //shop_no = "11047059",//测试 shop_no = thirdshop.OriginShopId, cargo_type = -1, cargo_price = shopOrder.Amount, city_code = "0769", is_prepay = 0, origin_mark = "HCHH", origin_mark_no = shopOrder.OrderNumber, receiver_lng = converResult.x, receiver_lat = converResult.y, receiver_phone = shopordertakeoutinfo.Phone, receiver_address = shopordertakeoutinfo.Address, receiver_name = shopordertakeoutinfo.Name, callback = thirdConfig.CallBackUrl, }; var result = DbExtention.ThirdAmountFinish(shopDb, thirdConfig, new BLL.Third.CThirdShopRechargeQueryModel() { ShopId = shopOrder.ShopId, category = 1 }).Result; var preresult = new ThirdServer(shopDb, thirdConfig).PreThirdAddOrder(thirddshopaddmodel); if (result.result.deliverBalance < preresult.result.fee) { return(Error("商家配送帐号余额不足")); } } catch (Exception ex) { throw new Exception($"出现错误:{ex.Message}{ex.StackTrace}"); } return(Success()); }