| | |
| | | Realtime realtime = dataService.realtime(symbol).get(0); |
| | | BigDecimal new_price = realtime.getClose(); |
| | | BigDecimal plus = value.abs(); |
| | | if (plus.divide(new_price, 2, RoundingMode.HALF_UP).compareTo(new BigDecimal("0.1")) > 0) { |
| | | throw new YamiShopBindException("调整偏差过大,超过10%"); |
| | | } |
| | | // if (plus.divide(new_price, 2, RoundingMode.HALF_UP).compareTo(new BigDecimal("0.1")) > 0) { |
| | | // throw new YamiShopBindException("调整偏差过大,超过10%"); |
| | | // } |
| | | |
| | | if (second <= 0) { |
| | | /** |
| | |
| | | } else { |
| | | AdjustmentValueCache.getCurrentValue().put(symbol, currentValue.add(value)); |
| | | } |
| | | // 马上扣除价格,避免因为数据没有拉取导致加不正确 |
| | | realtime.setClose(realtime.getClose().add(value)); |
| | | /* |
| | | * 持久化缓存 |
| | | * 持久化到品种表(重启后 InitHandle 会加载到 AdjustmentValueCache) |
| | | */ |
| | | Item item = this.itemService.findBySymbol(symbol); |
| | | if (item.getAdjustmentValue().compareTo(AdjustmentValueCache.getCurrentValue().get(symbol)) != 0) { |
| | | item.setAdjustmentValue(AdjustmentValueCache.getCurrentValue().get(symbol)); |
| | | itemService.saveOrUpdate(item); |
| | | BigDecimal cachedAdjust = AdjustmentValueCache.getCurrentValue().get(symbol); |
| | | if (item != null && cachedAdjust != null) { |
| | | BigDecimal itemAdjust = item.getAdjustmentValue(); |
| | | if (itemAdjust == null || itemAdjust.compareTo(cachedAdjust) != 0) { |
| | | item.setAdjustmentValue(cachedAdjust); |
| | | itemService.saveOrUpdate(item); |
| | | } |
| | | } |
| | | |
| | | } else { |