public async Task <IActionResult> Post([FromBody] OrderUpdateStatusModel model) { if (model is null) { return(BadRequest()); } var result = await _services.UpdateOrderStatus(model); return(result > 0 ? (IActionResult)Ok(result) : (IActionResult)BadRequest()); }
public async Task <int> UpdateOrderStatus(OrderUpdateStatusModel model) { foreach (var p in model.OrderIds) { var order = this.GetDBSet <Order.DAL.Order>().FirstOrDefault(x => x.Id.Equals(p)); if (order != null) { order.OrderCurrentStatus = (int)model.OrderStatus; _context.Entry(order).State = EntityState.Modified; await this.UnitOfWork.SaveChangesAsync(); } } return(1); }
public ApiResultModel UpdateOrderStatus(OrderUpdateStatusModel model) { ApiResultModel resultModel = new ApiResultModel(); try { //获取当前商家用户 IShopUserBLL shopUserBll = BLLFactory <IShopUserBLL> .GetBLL("ShopUserBLL"); var user = shopUserBll.GetEntity(u => u.Id == model.UserId && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT); if (user == null) { resultModel.Msg = APIMessage.NO_USER; return(resultModel); } //如果验证Token不通过或已过期 if (DateTime.Now > user.TokenInvalidTime || model.Token != user.Token) { resultModel.Msg = APIMessage.TOKEN_INVALID; return(resultModel); } //更新最近登录时间和Token失效时间 user.LatelyLoginTime = DateTime.Now; user.TokenInvalidTime = DateTime.Now.AddDays(Convert.ToInt32(PropertyUtils.GetConfigParamValue("TokenInvalid"))); shopUserBll.Update(user); //获取指定订单 IOrderBLL orderBll = BLLFactory <IOrderBLL> .GetBLL("OrderBLL"); var order = orderBll.GetEntity(o => o.Id == model.OrderId && o.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && o.IsStoreHided == ConstantParam.DEL_FLAG_DEFAULT); if (order != null) { string alert = ""; //如果已退单 if (model.OrderStatus == ConstantParam.OrderStatus_EXIT) { order.Reason = model.Reason; //如果订单状态为待收货 if (order.OrderStatus == ConstantParam.OrderStatus_RECEIPT) { //如果订单支付方式为微信在线支付 if (order.PayWay == 1) { //微信退款 //获取商家账户信息 var wxAccount = order.Shop.ShopAccounts.Where(a => a.AccountType == ConstantParam.PROPERTY_ACCOUNT_WeChat).FirstOrDefault(); if (wxAccount == null) { resultModel.Msg = "该订单所属商家未设置账户信息"; return(resultModel); } //获取商家账户信息 string WeixinAppId = wxAccount.Number; string WeixinMchId = wxAccount.MerchantNo; string WeixinPayKey = wxAccount.AccountKey; //申请退款 string result = ApplyRefund(order, WeixinAppId, WeixinMchId, WeixinPayKey); //如果请求失败 if (result == null) { resultModel.Msg = APIMessage.WEIXIN_REFUND_FAIL; return(resultModel); } //解析返回数据 XmlDocument doc = new XmlDocument(); doc.LoadXml(result); //如果返回成功 string return_code = doc.GetElementsByTagName("return_code")[0].InnerText; if (return_code == "SUCCESS") { string result_code = doc.GetElementsByTagName("result_code")[0].InnerText; if (result_code == "SUCCESS") { order.OrderStatus = model.OrderStatus; order.RecedeType = 2; resultModel.result = "订单退款申请成功"; } else { resultModel.Msg = APIMessage.WEIXIN_REFUND_FAIL; return(resultModel); } } else { resultModel.Msg = APIMessage.WEIXIN_REFUND_FAIL; return(resultModel); } } //支付宝支付退款 else if (order.PayWay == 2) { } else { order.OrderStatus = model.OrderStatus; order.RecedeType = 0; } } else if (order.OrderStatus == ConstantParam.OrderStatus_CONFIRM) { order.OrderStatus = model.OrderStatus; order.RecedeType = 0; } order.RecedeTime = DateTime.Now; alert = "您在" + order.Shop.ShopName + "提交的订单已被商家退单"; //如果订单修改成功 if (orderBll.CancelOrder(order)) { //推送给订单所属用户 IUserPushBLL userPushBLL = BLLFactory <IUserPushBLL> .GetBLL("UserPushBLL"); var userPush = userPushBLL.GetEntity(p => p.UserId == order.AppUserId); if (userPush != null) { string registrationId = userPush.RegistrationId; //通知信息 PropertyUtils.SendPush("订单最新状态", alert, ConstantParam.MOBILE_TYPE_OWNER, registrationId); } } } else { if (model.OrderStatus == ConstantParam.OrderStatus_RECEIPT) { alert = "您在" + order.Shop.ShopName + "提交的订单商家已接单,请您耐心等待收货"; order.OrderStatus = model.OrderStatus; } else if (model.OrderStatus == ConstantParam.OrderStatus_FINISH) { alert = "您在" + order.Shop.ShopName + "提交的订单交易已完成"; order.OrderStatus = ConstantParam.OrderStatus_FINISH; order.CompleteTime = DateTime.Now; } //如果订单修改成功 if (orderBll.Update(order)) { //推送给订单所属用户 IUserPushBLL userPushBLL = BLLFactory <IUserPushBLL> .GetBLL("UserPushBLL"); var userPush = userPushBLL.GetEntity(p => p.UserId == order.AppUserId); if (userPush != null) { string registrationId = userPush.RegistrationId; //通知信息 PropertyUtils.SendPush("订单最新状态", alert, ConstantParam.MOBILE_TYPE_OWNER, registrationId); } } } } else { resultModel.Msg = APIMessage.ORDER_NOEXIST; } } catch { resultModel.Msg = APIMessage.REQUEST_EXCEPTION; } return(resultModel); }