|
@@ -28,7 +28,12 @@ public class TraditionRuleHandler extends AbstractTraditionRuleHandler {
|
|
|
@Override
|
|
@Override
|
|
|
protected void delay(TraditionLive traditionLive) {
|
|
protected void delay(TraditionLive traditionLive) {
|
|
|
//计算当前结束时间和剩余总计延时时间
|
|
//计算当前结束时间和剩余总计延时时间
|
|
|
- Long onceDelayTime = Math.min(traditionLive.getRemainingAllDelayTime(), traditionLive.getTraditionRule().getOnceDelayTime());
|
|
|
|
|
|
|
+ long remainingAllDelayTime = defaultDelayTime(traditionLive.getRemainingAllDelayTime());
|
|
|
|
|
+ long onceDelayTime = Math.min(remainingAllDelayTime, defaultDelayTime(traditionLive.getTraditionRule().getOnceDelayTime()));
|
|
|
|
|
+ traditionLive.setRemainingAllDelayTime(remainingAllDelayTime);
|
|
|
|
|
+ if (onceDelayTime <= 0) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
if ((System.currentTimeMillis() + onceDelayTime * 1000) > traditionLive.getCurrentEndTime()) {
|
|
if ((System.currentTimeMillis() + onceDelayTime * 1000) > traditionLive.getCurrentEndTime()) {
|
|
|
traditionLive.setCurrentEndTime(traditionLive.getCurrentEndTime() + onceDelayTime * 1000);
|
|
traditionLive.setCurrentEndTime(traditionLive.getCurrentEndTime() + onceDelayTime * 1000);
|
|
|
traditionLive.setRemainingAllDelayTime(traditionLive.getRemainingAllDelayTime() - onceDelayTime);
|
|
traditionLive.setRemainingAllDelayTime(traditionLive.getRemainingAllDelayTime() - onceDelayTime);
|
|
@@ -42,11 +47,16 @@ public class TraditionRuleHandler extends AbstractTraditionRuleHandler {
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
protected void delaySync(TraditionLive traditionLive, List<Bid> bids) {
|
|
protected void delaySync(TraditionLive traditionLive, List<Bid> bids) {
|
|
|
- Long allDelayTime = traditionLive.getTraditionRule().getAllDelayTime();
|
|
|
|
|
|
|
+ long allDelayTime = defaultDelayTime(traditionLive.getTraditionRule().getAllDelayTime());
|
|
|
|
|
+ long onceDelayTime = defaultDelayTime(traditionLive.getTraditionRule().getOnceDelayTime());
|
|
|
|
|
+ traditionLive.setRemainingAllDelayTime(allDelayTime);
|
|
|
|
|
+ if (onceDelayTime <= 0) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
for (int index = bids.size() - 1; index >= 0; index--) {
|
|
for (int index = bids.size() - 1; index >= 0; index--) {
|
|
|
- if ((bids.get(index).getCreateTime().getTime() + traditionLive.getTraditionRule().getOnceDelayTime() * 1000) > traditionLive.getCurrentEndTime()) {
|
|
|
|
|
- allDelayTime = allDelayTime - traditionLive.getTraditionRule().getOnceDelayTime();
|
|
|
|
|
- traditionLive.setCurrentEndTime(traditionLive.getCurrentEndTime() + traditionLive.getTraditionRule().getOnceDelayTime() * 1000);
|
|
|
|
|
|
|
+ if ((bids.get(index).getCreateTime().getTime() + onceDelayTime * 1000) > traditionLive.getCurrentEndTime()) {
|
|
|
|
|
+ allDelayTime = allDelayTime - onceDelayTime;
|
|
|
|
|
+ traditionLive.setCurrentEndTime(traditionLive.getCurrentEndTime() + onceDelayTime * 1000);
|
|
|
}
|
|
}
|
|
|
traditionLive.setRemainingAllDelayTime(allDelayTime > 0 ? allDelayTime : 0);
|
|
traditionLive.setRemainingAllDelayTime(allDelayTime > 0 ? allDelayTime : 0);
|
|
|
}
|
|
}
|