## 秒杀订单撤单处理(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)) {
|
if (!iAcPickService.cancelPickOrder(saOrderExt.getOrderCode(), pkApprove)) {
|
||||||
throw new RuntimeException("撤销订单退还提货失败");
|
throw new RuntimeException("撤销订单退还提货失败");
|
||||||
}
|
}
|
||||||
|
} else if (EOrderType.MALL_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||||
|
// 秒杀订单,处理限购
|
||||||
|
this.handleMallOrderCancel(saOrderExt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()
|
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)) {
|
if (!iAcPickService.cancelPickOrder(saOrderExt.getOrderCode(), pkApprove)) {
|
||||||
throw new RuntimeException("撤单失败");
|
throw new RuntimeException("撤单失败");
|
||||||
}
|
}
|
||||||
|
} else if (EOrderType.MALL_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||||
|
// 秒杀订单,处理限购
|
||||||
|
this.handleMallOrderCancel(saOrderExt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!iMemberServiceApi.normalRevokeOrder(pkApprove, saOrderExt, cuMember, null, businessCommissionDTO).getData()) {
|
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
|
merge into bd_wares_extend bwe
|
||||||
using (
|
using (
|
||||||
<foreach collection="limitList" item="items" separator=" union ">
|
<foreach collection="limitList" item="items" separator=" union ">
|
||||||
select #{items.pkWares} pk_wares,
|
select
|
||||||
|
#{items.pkWares} pk_wares,
|
||||||
#{items.quantity} quantity
|
#{items.quantity} quantity
|
||||||
from dual
|
from dual
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<update id="updateWaresMemberLimitBatch">
|
<update id="updateWaresMemberLimitBatch">
|
||||||
merge into BD_WARES_MEMBER_LIMIT bwml
|
merge into BD_WARES_MEMBER_LIMIT bwml
|
||||||
using (
|
using (
|
||||||
<foreach collection="limitList" item="items" separator=" union all">
|
<foreach collection="limitList" item="items" separator=" union ">
|
||||||
select #{items.pkMember} pk_member,
|
select #{items.pkMember} pk_member,
|
||||||
#{items.pkWares} pk_wares,
|
#{items.pkWares} pk_wares,
|
||||||
#{items.limitType} limit_type,
|
#{items.limitType} limit_type,
|
||||||
|
@ -17,7 +17,9 @@
|
||||||
) tmp
|
) 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)
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (
|
insert (
|
||||||
pk_id,
|
pk_id,
|
||||||
|
|
Loading…
Reference in New Issue