| | |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.yami.trading.api.UD.*; |
| | | import com.yami.trading.bean.data.domain.Kline; |
| | | import com.yami.trading.bean.ico.domain.Ico; |
| | | import com.yami.trading.bean.item.domain.Item; |
| | | import com.yami.trading.bean.model.ChannelBlockchain; |
| | | import com.yami.trading.bean.model.User; |
| | | import com.yami.trading.bean.model.Withdraw; |
| | | import com.yami.trading.common.config.RequestDataHelper; |
| | | import com.yami.trading.common.domain.Result; |
| | | import com.yami.trading.common.util.*; |
| | | import com.yami.trading.huobi.data.DataCache; |
| | | import com.yami.trading.huobi.data.internal.CryptosKlineService; |
| | | import com.yami.trading.huobi.data.internal.KlineInitService; |
| | | import com.yami.trading.huobi.data.internal.KlineTimeObject; |
| | | import com.yami.trading.huobi.hobi.HobiDataService; |
| | | import com.yami.trading.security.common.enums.CryptoCurrencyEnum; |
| | | import com.yami.trading.security.common.enums.SysTypeEnum; |
| | | import com.yami.trading.security.common.manager.PasswordCheckManager; |
| | | import com.yami.trading.security.common.util.SecurityUtils; |
| | | import com.yami.trading.service.IdentifyingCodeService; |
| | | import com.yami.trading.service.WithdrawService; |
| | | import com.yami.trading.service.data.KlineDBService; |
| | | import com.yami.trading.service.ico.IcoService; |
| | | import com.yami.trading.service.item.ItemService; |
| | | import com.yami.trading.service.user.UserService; |
| | |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.DecimalFormat; |
| | | import java.util.*; |
| | |
| | | UserService userService; |
| | | @Autowired |
| | | PasswordCheckManager passwordCheckManager; |
| | | @Autowired |
| | | HobiDataService hobiDataService; |
| | | @Autowired |
| | | KlineDBService klineDBService; |
| | | |
| | | private double getRandomValue(int value) { |
| | | double addValue; |
| | | if (value > 0) { |
| | | int count = 0; |
| | | while (value > 0) { |
| | | value = value / 10; |
| | | count++; |
| | | } |
| | | // 个 |
| | | if (count == 1) { |
| | | addValue = RandomUtil.randomFloat(0.01, 0.1999, 4); |
| | | return addValue; |
| | | } |
| | | // 十 |
| | | if (count == 2) { |
| | | addValue = RandomUtil.randomFloat(0.1, 0.5999, 4); |
| | | return addValue; |
| | | } |
| | | // 百 |
| | | if (count == 3) { |
| | | addValue = RandomUtil.randomFloat(0.1, 2.9999, 4); |
| | | return addValue; |
| | | } |
| | | // 千 |
| | | if (count == 4) { |
| | | addValue = RandomUtil.randomFloat(1, 3.9999, 4); |
| | | return addValue; |
| | | } |
| | | // 万 |
| | | if (count == 5) { |
| | | addValue = RandomUtil.randomFloat(1, 5.9999, 4); |
| | | return addValue; |
| | | } |
| | | // 十万 |
| | | else { |
| | | addValue = RandomUtil.randomFloat(1, 5.9999, 4); |
| | | return addValue; |
| | | } |
| | | } else { |
| | | addValue = RandomUtil.randomFloat(0.01, 0.2999, 4); |
| | | return addValue; |
| | | } |
| | | } |
| | | |
| | | // @Scheduled(cron = "*/5 * * * * ?") |
| | | //@Scheduled(cron = "*/5 * * * * ?") |
| | | public void test() throws Exception { |
| | | double amt = 0.005215; |
| | | double addPriceValue = getRandomValue((int)amt); |
| | | double price = Arith.add(amt, addPriceValue); |
| | | /*String symbol ="snekusdt"; |
| | | RequestDataHelper.set("symbol", symbol); |
| | | LambdaQueryWrapper<Kline> queryWrapper = new LambdaQueryWrapper<Kline>() |
| | | .eq(Kline::getSymbol, symbol) |
| | | .eq(Kline::getPeriod, "5min") |
| | | .ge(Kline::getTs, ts1) |
| | | .lt(Kline::getTs, ts2) |
| | | .orderByAsc(Kline::getTs); |
| | | List<Kline> list = klineDBService.list(queryWrapper); |
| | | BigDecimal tz = num.divide(BigDecimal.valueOf(list.size()), 6, RoundingMode.HALF_UP); |
| | | System.out.println(list.size()); |
| | | System.out.println(tz); |
| | | for(int i=0;i<list.size();i++){ |
| | | BigDecimal nums = BigDecimal.valueOf(i+1); |
| | | *//*BigDecimal integerPart = nums.divide(BigDecimal.valueOf(100), 0, RoundingMode.FLOOR).add(BigDecimal.valueOf(1)); |
| | | |
| | | String format = ""; |
| | | format = "#."; |
| | | for (int j = 0; j < 6; j++) { |
| | | format = format + "#"; |
| | | System.out.printf("nums=%d, 除以100的整数部分=%d%n", nums.intValue(), integerPart.intValue());*//* |
| | | BigDecimal addNum = nums.multiply(tz); |
| | | list.get(i).setClose(list.get(i).getClose().add(addNum)); |
| | | list.get(i).setOpen(list.get(i).getOpen().add(addNum)); |
| | | list.get(i).setHigh(list.get(i).getHigh().add(addNum)); |
| | | list.get(i).setLow(list.get(i).getLow().add(addNum)); |
| | | } |
| | | klineDBService.saveOrUpdateBatch(list);*/ |
| | | |
| | | DecimalFormat df = new DecimalFormat(format); |
| | | df.setRoundingMode(RoundingMode.FLOOR);// 向下取整 |
| | | /*RequestDataHelper.clear(); |
| | | // 定义时间范围:2025-09-16 00:00:00 到 2025-09-19 16:15:00 |
| | | LocalDateTime startTime = LocalDateTime.of(2025, 9, 16, 0, 0, 0); |
| | | LocalDateTime endTime = LocalDateTime.of(2025, 9, 19, 16, 15, 0); |
| | | |
| | | System.out.println(df.format(price)); |
| | | System.out.println("dd"); |
| | | // 转换为东八区(UTC+8)的毫秒级时间戳 |
| | | ZoneOffset zoneOffset = ZoneOffset.of("+8"); |
| | | long startTs = startTime.toInstant(zoneOffset).toEpochMilli(); |
| | | long endTs = endTime.toInstant(zoneOffset).toEpochMilli(); |
| | | |
| | | // 存储所有时间戳 |
| | | List<Long> timestamps = new ArrayList<>(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | List<Kline> list = new ArrayList<>(); |
| | | // 每5分钟 = 300000毫秒,遍历生成时间戳 |
| | | for (long currentTs = startTs; currentTs <= endTs; currentTs += 300000) { |
| | | timestamps.add(currentTs); |
| | | |
| | | // 打印时间和对应的时间戳(可选) |
| | | LocalDateTime currentTime = LocalDateTime.ofInstant( |
| | | java.time.Instant.ofEpochMilli(currentTs), |
| | | zoneOffset |
| | | ); |
| | | System.out.printf("时间: %s | 时间戳: %d%n", |
| | | currentTime.format(formatter), currentTs); |
| | | Kline kline = new Kline(); |
| | | kline.setTs(currentTs); |
| | | kline.setSymbol(symbol); |
| | | kline.setPeriod("5min"); |
| | | list.add(kline); |
| | | } |
| | | System.out.println(list.size()); |
| | | RequestDataHelper.set("symbol", symbol); |
| | | klineDBService.saveOrUpdateBatch(list); |
| | | RequestDataHelper.clear();*/ |
| | | } |
| | | /** |
| | | * ico转入产品 |