mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 18:43:26 +08:00
【修复】修复多商品合并下单,其中一商品库存不足,导致整个下单失败的问题。
【修复】修复下单更改库存失败,订单状态依然待支付的问题。
This commit is contained in:
@@ -835,7 +835,7 @@ namespace CoreCms.Net.Repository
|
||||
//更新记录。
|
||||
bl = DbClient.Updateable<CoreCmsProducts>()
|
||||
.SetColumns(it => it.freezeStock == it.freezeStock + num)
|
||||
.Where(p => p.id == productModel.id && insertNum >= num).ExecuteCommandHasChange();
|
||||
.Where(p => p.id == productModel.id && insertNum >= num && p.freezeStock < p.stock).ExecuteCommandHasChange();
|
||||
break;
|
||||
case "send": //发货
|
||||
bl = DbClient.Updateable<CoreCmsProducts>()
|
||||
|
||||
@@ -283,42 +283,6 @@ namespace CoreCms.Net.Services
|
||||
order.createTime = DateTime.Now;
|
||||
order.scene = scene;
|
||||
|
||||
|
||||
//不同的订单类型会有不同的操作
|
||||
switch (orderType)
|
||||
{
|
||||
case (int)GlobalEnumVars.OrderType.Common:
|
||||
//标准模式不需要修改订单数据和商品数据
|
||||
break;
|
||||
case (int)GlobalEnumVars.OrderType.PinTuan:
|
||||
//拼团模式去校验拼团是否存在,并添加拼团记录
|
||||
var pinTuanRes = await _pinTuanRecordServices.OrderAdd(order, orderItems, teamId);
|
||||
if (pinTuanRes.status == false)
|
||||
{
|
||||
return pinTuanRes;
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.OrderType.Group:
|
||||
var groupRes = await _promotionRecordServices.OrderAdd(order, orderItems, objectId, orderType);
|
||||
if (groupRes.status == false)
|
||||
{
|
||||
return groupRes;
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.OrderType.Seckill:
|
||||
var seckillRes = await _promotionRecordServices.OrderAdd(order, orderItems, objectId, orderType);
|
||||
if (seckillRes.status == false)
|
||||
{
|
||||
return seckillRes;
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.OrderType.Bargain:
|
||||
//砍价模式
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
//开始事务处理
|
||||
await _dal.InsertAsync(order);
|
||||
|
||||
@@ -337,22 +301,38 @@ namespace CoreCms.Net.Services
|
||||
{
|
||||
jm.msg = "更改库存";
|
||||
//更改库存
|
||||
foreach (var item in orderItems)
|
||||
var avaliableOrderItems = orderItems.Where(item =>
|
||||
{
|
||||
var res = _goodsServices.ChangeStock(item.productId, GlobalEnumVars.OrderChangeStockType.order.ToString(), item.nums);
|
||||
if (res.status == false)
|
||||
{
|
||||
jm.msg += $"{item.name}库存不足";
|
||||
}
|
||||
return res.status;
|
||||
}).ToList();
|
||||
|
||||
jm.msg = "更新库存数据失败";
|
||||
if (avaliableOrderItems.Count == 0)
|
||||
{
|
||||
await _orderItemServices.InsertCommandAsync(orderItems);
|
||||
|
||||
await _dal.UpdateAsync(n => new CoreCmsOrder()
|
||||
{
|
||||
status = (int)GlobalEnumVars.OrderStatus.Cancel,
|
||||
updateTime = DateTime.Now
|
||||
},
|
||||
m => m.orderId == order.orderId);
|
||||
|
||||
//清除购物车信息
|
||||
await _cartServices.DeleteAsync(p => ids.Contains(p.id) && p.userId == userId && p.type == orderType);
|
||||
jm.msg = "下单失败,库存不足";
|
||||
return jm;
|
||||
}
|
||||
}
|
||||
jm.msg = "订单明细更新" + orderItems.Count;
|
||||
var outItems = await _orderItemServices.InsertCommandAsync(orderItems);
|
||||
|
||||
jm.msg = "订单明细更新" + avaliableOrderItems.Count;
|
||||
var outItems = await _orderItemServices.InsertCommandAsync(avaliableOrderItems);
|
||||
var outItemsBool = outItems > 0;
|
||||
if (outItemsBool == false)
|
||||
{
|
||||
|
||||
jm.msg = "订单明细更新失败";
|
||||
jm.data = outItems;
|
||||
return jm;
|
||||
@@ -378,6 +358,41 @@ namespace CoreCms.Net.Services
|
||||
return pointLogRes;
|
||||
}
|
||||
}
|
||||
|
||||
//不同的订单类型会有不同的操作
|
||||
switch (orderType)
|
||||
{
|
||||
case (int)GlobalEnumVars.OrderType.Common:
|
||||
//标准模式不需要修改订单数据和商品数据
|
||||
break;
|
||||
case (int)GlobalEnumVars.OrderType.PinTuan:
|
||||
//拼团模式去校验拼团是否存在,并添加拼团记录
|
||||
var pinTuanRes = await _pinTuanRecordServices.OrderAdd(order, avaliableOrderItems, teamId);
|
||||
if (pinTuanRes.status == false)
|
||||
{
|
||||
return pinTuanRes;
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.OrderType.Group:
|
||||
var groupRes = await _promotionRecordServices.OrderAdd(order, avaliableOrderItems, objectId, orderType);
|
||||
if (groupRes.status == false)
|
||||
{
|
||||
return groupRes;
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.OrderType.Seckill:
|
||||
var seckillRes = await _promotionRecordServices.OrderAdd(order, avaliableOrderItems, objectId, orderType);
|
||||
if (seckillRes.status == false)
|
||||
{
|
||||
return seckillRes;
|
||||
}
|
||||
break;
|
||||
case (int)GlobalEnumVars.OrderType.Bargain:
|
||||
//砍价模式
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//清除购物车信息
|
||||
@@ -583,7 +598,7 @@ namespace CoreCms.Net.Services
|
||||
order.shipName = userShipInfo.name;
|
||||
order.shipMobile = userShipInfo.mobile;
|
||||
|
||||
var ship = await _shipServices.GetShip(userShipInfo.areaId);
|
||||
var ship =await _shipServices.GetShip(userShipInfo.areaId);
|
||||
if (ship != null)
|
||||
{
|
||||
order.logisticsId = ship.id;
|
||||
|
||||
Reference in New Issue
Block a user