| | |
| | | package com.xcong.excoin.common.contants;
|
| | |
|
| | | public class WalletConstants {
|
| | | public static final String ADDRESS_PREFIX = "ROC";
|
| | | public static final String ADDRESS_PREFIX = "SER";
|
| | |
|
| | | /**
|
| | | * 是否是主币
|
| | |
| | | * @author wzy |
| | | */ |
| | | public enum CoinTypeEnum { |
| | | USDT, BTC, ETH, LTC, EOS, XRP, BCH, ETC,ROC |
| | | USDT, BTC, ETH, LTC, EOS, XRP, BCH, ETC,SER |
| | | } |
| | |
| | | */ |
| | | @Getter |
| | | public enum SymbolEnum { |
| | | ROC("ROC", "ROC/USDT") |
| | | SER("SER", "SER/USDT") |
| | | ,BTC("BTC", "BTC/USDT") |
| | | ,ETH("ETH", "ETH/USDT") |
| | | ,LTC("LTC", "LTC/USDT") |
| | |
| | | } else {
|
| | | memberCoinAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), symbol);
|
| | | }
|
| | | log.info("--->{}", memberCoinAddress);
|
| | | if (memberCoinAddress != null) {
|
| | | map.put("address", memberCoinAddress.getAddress());
|
| | | map.put("lable", memberCoinAddress.getLabel());
|
| | |
| | | usdtUpdateProducer.sendAddressMsg(address);
|
| | | }
|
| | | break;
|
| | | case "ROC":
|
| | | address = RocService.createWallet();
|
| | | case "SER":
|
| | | // address = RocService.createWallet();
|
| | | map.put("address", address);
|
| | | break;
|
| | | default:
|
| | |
| | | } |
| | | Long memberId = memberCoinAddress.getMemberId(); |
| | | // 查询钱包 并更新 |
| | | MemberWalletCoinEntity walletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.ROC.name()); |
| | | MemberWalletCoinEntity walletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.SER.name()); |
| | | if (walletCoinEntity == null) { |
| | | // 创建一个钱包 |
| | | // 创建这个钱包 |
| | |
| | | |
| | | memberWalletCoinDao.updateBlockBalance(walletCoinEntity.getId(), balance, BigDecimal.ZERO, 0); |
| | | |
| | | String orderNo = insertCoinCharge(address, memberId, balance, CoinTypeEnum.ROC.name(), "", BigDecimal.ZERO, null); |
| | | String orderNo = insertCoinCharge(address, memberId, balance, CoinTypeEnum.SER.name(), "", BigDecimal.ZERO, null); |
| | | // 插入财务记录 |
| | | LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", balance, CoinTypeEnum.ROC.name(), 1, 1); |
| | | LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", balance, CoinTypeEnum.SER.name(), 1, 1); |
| | | |
| | | try { |
| | | ThreadPoolUtils.sendDingTalk(5); |
| | | MemberEntity member = memberDao.selectById(memberId); |
| | | if (StrUtil.isNotBlank(member.getPhone())) { |
| | | String amount = balance.toPlainString() + "ROC"; |
| | | String amount = balance.toPlainString() + "SER"; |
| | | Sms106Send.sendRechargeMsg(member.getPhone(), DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MINUTE_PATTERN), orderNo); |
| | | } else { |
| | | SubMailSend.sendRechargeMail(member.getEmail(), DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MINUTE_PATTERN), orderNo); |
| | |
| | |
|
| | | @Override
|
| | | public Result findAllWalletCoinOrder() {
|
| | | List<OrderCoinsDealEntity> orderCoinsDealEntities = orderCoinDealDao.selectAllCoinDealsOrderBySymbol(CoinTypeEnum.ROC.toString());
|
| | | List<OrderCoinsDealEntity> orderCoinsDealEntities = orderCoinDealDao.selectAllCoinDealsOrderBySymbol(CoinTypeEnum.SER.toString());
|
| | | return Result.ok(orderCoinsDealEntities);
|
| | | }
|
| | |
|
| | |
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void dealEntrustCoinOrder() {
|
| | | List<String> ignoreTypes = new ArrayList<>();
|
| | | ignoreTypes.add(SymbolsConstats.ROC);
|
| | | ignoreTypes.add(SymbolsConstats.SER);
|
| | | List<OrderCoinsEntity> list = orderCoinsDao.selectAllEntrustingCoinOrderList(ignoreTypes);
|
| | | if (CollUtil.isNotEmpty(list)) {
|
| | | for (OrderCoinsEntity orderCoinsEntity : list) {
|
| | |
| | | |
| | | public class SymbolsConstats { |
| | | public final static List<String> EXCHANGE_SYMBOLS = new ArrayList<>(); |
| | | public final static String ROC = "ROC"; |
| | | public final static String SER = "SER"; |
| | | static { |
| | | EXCHANGE_SYMBOLS.add("ROC"); |
| | | EXCHANGE_SYMBOLS.add("SER"); |
| | | } |
| | | } |
| | |
| | | kLine.setLow(kLine.getClose()); |
| | | kLine.setHigh(kLine.getClose()); |
| | | kLine.setVolume(BigDecimal.ZERO); |
| | | redisUtils.set("ROC/USDT",kLine); |
| | | redisUtils.set("SER/USDT",kLine); |
| | | } |
| | | } |
| | | |
| | |
| | | @PostConstruct |
| | | public void initCoinTrade() { |
| | | log.info("#=======撮合交易器开启=======#"); |
| | | String symbol = SymbolsConstats.ROC; |
| | | String symbol = SymbolsConstats.SER; |
| | | CoinTrader newTrader = new CoinTrader(symbol); |
| | | newTrader.setExchangeProducer(exchangeProducer); |
| | | //newTrader.setKafkaTemplate(kafkaTemplate); |
| | |
| | | processor.initializeThumb(); |
| | | //processor.initializeUsdRate(); |
| | | processor.setIsHalt(false); |
| | | List<ExchangeTrade> nekk = orderCoinDealDao.selectOrderCoinDealByTime(SymbolsConstats.ROC, null, null); |
| | | List<ExchangeTrade> nekk = orderCoinDealDao.selectOrderCoinDealByTime(SymbolsConstats.SER, null, null); |
| | | processor.process(nekk); |
| | | String symbolUsdt = symbol; |
| | | if(!symbol.contains("USDT")){ |
| | |
| | | @RabbitListener(queues = RabbitMqConfig.QUEUE_TRADE_PLATE) |
| | | public void tradePlate(String content) { |
| | | //log.info("--发送盘口消息--"); |
| | | tradePlateSendWebSocket.sendMessagePlate("ROC/USDT",content,null); |
| | | tradePlateSendWebSocket.sendMessagePlate("SER/USDT",content,null); |
| | | } |
| | | |
| | | /** |
| | |
| | | return "EOS/USDT"; |
| | | case "etcusdt": |
| | | return "ETC/USDT"; |
| | | case "rocusdt": |
| | | return "ROC/USDT"; |
| | | case "serusdt": |
| | | return "SER/USDT"; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | switch (symbol) { |
| | | case "BTC/USDT": |
| | | return "btcusdt"; |
| | | case "ROC/USDT": |
| | | return "rocusdt"; |
| | | case "SER/USDT": |
| | | return "serusdt"; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | return "EOS_NEW_PRICE"; |
| | | case "ETC/USDT": |
| | | return "ETC_NEW_PRICE"; |
| | | case "ROC/USDT": |
| | | return "ROC_NEW_PRICE"; |
| | | case "SER/USDT": |
| | | return "SER_NEW_PRICE"; |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | // 发送一次盘口 |
| | | CoinTraderFactory factory = SpringContextHolder.getBean(CoinTraderFactory.class); |
| | | // 发送订阅消息 |
| | | String nekk = factory.getTrader(SymbolsConstats.ROC).sendTradePlateMessage(); |
| | | String nekk = factory.getTrader(SymbolsConstats.SER).sendTradePlateMessage(); |
| | | SubResultModel subResultModel = new SubResultModel(); |
| | | subResultModel.setId("rocusdt"); |
| | | subResultModel.setId("serusdt"); |
| | | subResultModel.setSubbed(sub); |
| | | synchronized (session) { |
| | | try { |
| | |
| | | String key = "KINE_{}_{}"; |
| | | // 币币k线数据 |
| | | //key = StrUtil.format(key, symbol, period); |
| | | key = StrUtil.format(key, "ROC/USDT", period); |
| | | key = StrUtil.format(key, "SER/USDT", period); |
| | | RedisUtils bean = SpringContextHolder.getBean(RedisUtils.class); |
| | | Object o = bean.get(key); |
| | | List<CandlestickModel> candlestickModels = new ArrayList<>(); |
| | |
| | | kline-update-job: false |
| | | newest-price-update-job: true |
| | | exchange-trade: true |
| | | day-line: false |
| | | day-line: true |
| | | other-job: true |
| | | loop-job: false |
| | | rabbit-consumer: false |