|
@@ -699,8 +699,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderUserDataVersion(Long orderId){
|
|
public void rollbackOrderUserDataVersion(Long orderId){
|
|
|
|
|
|
|
|
- tradeOrderUserMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
//首先把旧数据删除
|
|
//首先把旧数据删除
|
|
|
|
|
+ tradeOrderUserMapper.delete(TradeOrderUserDO::getOrderId,orderId);
|
|
|
|
|
+
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
|
|
|
|
|
@@ -721,8 +722,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
TradeOrderUserDO a = new TradeOrderUserDO();
|
|
TradeOrderUserDO a = new TradeOrderUserDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
a.setSyncStatus("0");
|
|
a.setSyncStatus("0");
|
|
|
- int updateMain = tradeOrderUserMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ tradeOrderUserMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = tradeOrderUserMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -756,8 +758,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderDetailDataVersion(Long orderId){
|
|
public void rollbackOrderDetailDataVersion(Long orderId){
|
|
|
//首先把旧数据删除
|
|
//首先把旧数据删除
|
|
|
- tradeDetailMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ tradeDetailMapper.delete(TradeDetailDO::getOrderId,orderId);
|
|
|
|
|
+
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
|
|
|
|
|
@@ -778,8 +780,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
TradeDetailDO a = new TradeDetailDO();
|
|
TradeDetailDO a = new TradeDetailDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
a.setSyncStatus("0");
|
|
a.setSyncStatus("0");
|
|
|
- int updateMain = tradeDetailMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ tradeDetailMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = tradeDetailMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -813,8 +816,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderDetailBaseDataVersion(Long orderId){
|
|
public void rollbackOrderDetailBaseDataVersion(Long orderId){
|
|
|
//首先把旧数据删除
|
|
//首先把旧数据删除
|
|
|
- tradeDetailBaseMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ tradeDetailBaseMapper.delete(TradeDetailBaseDO::getOrderId,orderId);
|
|
|
|
|
+
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
|
|
|
|
|
@@ -835,8 +838,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
TradeDetailBaseDO a = new TradeDetailBaseDO();
|
|
TradeDetailBaseDO a = new TradeDetailBaseDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
// a.setSyncStatus("0");
|
|
// a.setSyncStatus("0");
|
|
|
- int updateMain = tradeDetailBaseMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ tradeDetailBaseMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = tradeDetailBaseMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -870,7 +874,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderTotalDataVersion(Long orderId){
|
|
public void rollbackOrderTotalDataVersion(Long orderId){
|
|
|
//首先把旧数据删除
|
|
//首先把旧数据删除
|
|
|
- tradeOrderTotalMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
|
|
+ tradeOrderTotalMapper.delete(TradeOrderTotalDO::getOldOrderId,orderId);
|
|
|
|
|
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
@@ -892,8 +896,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
TradeOrderTotalDO a = new TradeOrderTotalDO();
|
|
TradeOrderTotalDO a = new TradeOrderTotalDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
a.setSyncStatus("0");
|
|
a.setSyncStatus("0");
|
|
|
- int updateMain = tradeOrderTotalMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ tradeOrderTotalMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = tradeOrderTotalMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
// ====================== 3. 查询【再上一版】 ======================
|
|
// ====================== 3. 查询【再上一版】 ======================
|
|
@@ -923,7 +928,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderCountryDataVersion(Long orderId){
|
|
public void rollbackOrderCountryDataVersion(Long orderId){
|
|
|
//首先把旧数据删除
|
|
//首先把旧数据删除
|
|
|
- tradeOrderCountryMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
|
|
+ tradeOrderCountryMapper.delete(TradeOrderCountryDO::getOrderId,orderId);
|
|
|
|
|
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
@@ -945,8 +950,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
TradeOrderCountryDO a = new TradeOrderCountryDO();
|
|
TradeOrderCountryDO a = new TradeOrderCountryDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
a.setSyncStatus("0");
|
|
a.setSyncStatus("0");
|
|
|
- int updateMain = tradeOrderCountryMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ tradeOrderCountryMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = tradeOrderCountryMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -979,8 +985,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderRoomModelDataVersion(Long orderId){
|
|
public void rollbackOrderRoomModelDataVersion(Long orderId){
|
|
|
- //首先把旧数据删除
|
|
|
|
|
- tradeOrderRoomModelMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
|
|
+ //首先把旧数据删除,26-6-8修改:作逻辑删除,然后回滚时手动设置deleted=0去insertOrUpdate
|
|
|
|
|
+ tradeOrderRoomModelMapper.delete(TradeOrderRoomModelDO::getOrderId,orderId);
|
|
|
|
|
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
@@ -1002,8 +1008,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
TradeOrderRoomModelDO a = new TradeOrderRoomModelDO();
|
|
TradeOrderRoomModelDO a = new TradeOrderRoomModelDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
a.setSyncStatus("0");
|
|
a.setSyncStatus("0");
|
|
|
- int updateMain = tradeOrderRoomModelMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ tradeOrderRoomModelMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = tradeOrderRoomModelMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1037,7 +1044,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderVisitorDataVersion(Long orderId){
|
|
public void rollbackOrderVisitorDataVersion(Long orderId){
|
|
|
//首先把旧数据删除
|
|
//首先把旧数据删除
|
|
|
- tradeVisitorMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
|
|
+ tradeVisitorMapper.delete(TradeVisitorDO::getOrderId,orderId);
|
|
|
|
|
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
@@ -1059,8 +1066,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
TradeVisitorDO a = new TradeVisitorDO();
|
|
TradeVisitorDO a = new TradeVisitorDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
a.setSyncStatus("0");
|
|
a.setSyncStatus("0");
|
|
|
- int updateMain = tradeVisitorMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ tradeVisitorMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = tradeVisitorMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1094,7 +1102,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderFloorDataVersion(Long orderId){
|
|
public void rollbackOrderFloorDataVersion(Long orderId){
|
|
|
//首先把旧数据删除
|
|
//首先把旧数据删除
|
|
|
- tradeOrderFloorMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
|
|
+ tradeOrderFloorMapper.delete(TradeOrderFloorDO::getOrderId,orderId);
|
|
|
|
|
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
@@ -1116,8 +1124,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
TradeOrderFloorDO a = new TradeOrderFloorDO();
|
|
TradeOrderFloorDO a = new TradeOrderFloorDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
a.setSyncStatus("0");
|
|
a.setSyncStatus("0");
|
|
|
- int updateMain = tradeOrderFloorMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ tradeOrderFloorMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = tradeOrderFloorMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1151,7 +1160,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void rollbackOrderPolicyDataVersion(Long orderId){
|
|
public void rollbackOrderPolicyDataVersion(Long orderId){
|
|
|
//首先把旧数据删除
|
|
//首先把旧数据删除
|
|
|
- orderPolicyMapper.deleteAllByOrderId(orderId);
|
|
|
|
|
|
|
+ orderPolicyMapper.delete(OrderPolicyDO::getOrderId,orderId);
|
|
|
|
|
|
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
// ====================== 【关键1】加锁查询:锁住当前版本行 ======================
|
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
// FOR UPDATE 行锁 → 并发请求会排队,绝对安全
|
|
@@ -1172,8 +1181,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
// ====================== 2. 主表回退(直接把上版本插进去) ======================
|
|
// ====================== 2. 主表回退(直接把上版本插进去) ======================
|
|
|
OrderPolicyDO a = new OrderPolicyDO();
|
|
OrderPolicyDO a = new OrderPolicyDO();
|
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
BeanUtils.copyProperties(lastVersion, a);
|
|
|
- int updateMain = orderPolicyMapper.insert(a);
|
|
|
|
|
- if (!(updateMain ==1)) {
|
|
|
|
|
|
|
+ orderPolicyMapper.updateDeletedById(dataId,0);
|
|
|
|
|
+ boolean updateMain = orderPolicyMapper.insertOrUpdate(a);
|
|
|
|
|
+ if (!updateMain) {
|
|
|
throw new RuntimeException("主表回退失败");
|
|
throw new RuntimeException("主表回退失败");
|
|
|
}
|
|
}
|
|
|
|
|
|