## 秒杀订单撤单处理(346、347);
This commit is contained in:
parent
0b7a8a074b
commit
4daf10eea2
|
@ -1525,6 +1525,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
if (!iAcPickService.cancelPickOrder(saOrderExt.getOrderCode(), pkApprove)) {
|
||||
throw new RuntimeException("撤销订单退还提货失败");
|
||||
}
|
||||
} else if (EOrderType.MALL_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||
// 秒杀订单,处理限购
|
||||
this.handleMallOrderCancel(saOrderExt);
|
||||
}
|
||||
|
||||
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()
|
||||
|
@ -2226,6 +2229,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
if (!iAcPickService.cancelPickOrder(saOrderExt.getOrderCode(), pkApprove)) {
|
||||
throw new RuntimeException("撤单失败");
|
||||
}
|
||||
} else if (EOrderType.MALL_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||
// 秒杀订单,处理限购
|
||||
this.handleMallOrderCancel(saOrderExt);
|
||||
}
|
||||
|
||||
if (!iMemberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, cuMember, null, businessCommissionDTO).getData()) {
|
||||
|
@ -2397,4 +2403,33 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 秒杀订单回退限购
|
||||
*
|
||||
* @param saOrderExt
|
||||
*/
|
||||
private void handleMallOrderCancel(SaOrderExt saOrderExt) {
|
||||
List<BdWaresMemberLimit> limitList = new ArrayList<>();
|
||||
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsExtList()) {
|
||||
if (EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) {
|
||||
// 会员限购列表
|
||||
for (ELimitType limitType : ELimitType.getLiveLimitType()) {
|
||||
limitList.add(BdWaresMemberLimit.builder()
|
||||
.pkMember(saOrderExt.getPkMember())
|
||||
.pkWares(saOrderItems.getPkWares())
|
||||
.limitType(limitType.getValue())
|
||||
.quantity(saOrderItems.getWaresQuantity() * -1)
|
||||
.limitDate(ELimitType.TOTAL.getValue() == limitType.getValue() ? ELimitType.TOTAL.getFormat() : DateUtils.parseDateToFormat(limitType.getFormat(), saOrderExt.getPayTime()))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(limitList)) {
|
||||
// 更新会员限购数据
|
||||
iBdWaresMemberLimitService.updateWaresMemberLimitBatch(limitList);
|
||||
// 更新商品限购库存
|
||||
iBdWaresExtendService.batchUpdateInventoryUse(limitList);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -90,7 +90,8 @@
|
|||
merge into bd_wares_extend bwe
|
||||
using (
|
||||
<foreach collection="limitList" item="items" separator=" union ">
|
||||
select #{items.pkWares} pk_wares,
|
||||
select
|
||||
#{items.pkWares} pk_wares,
|
||||
#{items.quantity} quantity
|
||||
from dual
|
||||
</foreach>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<update id="updateWaresMemberLimitBatch">
|
||||
merge into BD_WARES_MEMBER_LIMIT bwml
|
||||
using (
|
||||
<foreach collection="limitList" item="items" separator=" union all">
|
||||
<foreach collection="limitList" item="items" separator=" union ">
|
||||
select #{items.pkMember} pk_member,
|
||||
#{items.pkWares} pk_wares,
|
||||
#{items.limitType} limit_type,
|
||||
|
@ -17,7 +17,9 @@
|
|||
) tmp
|
||||
on (bwml.PK_MEMBER = tmp.pk_member and bwml.PK_WARES = tmp.pk_wares and bwml.limit_date = tmp.limit_date and bwml.del_flag = 0)
|
||||
when matched then
|
||||
update set bwml.quantity = bwml.quantity + tmp.quantity
|
||||
update set
|
||||
bwml.quantity = bwml.quantity + tmp.quantity,
|
||||
bwml.modified_time = sysdate
|
||||
WHEN NOT MATCHED THEN
|
||||
insert (
|
||||
pk_id,
|
||||
|
|
Loading…
Reference in New Issue