From d4c21ec847eacc78adbd0e844ea8bdb8db5d3505 Mon Sep 17 00:00:00 2001 From: long <18782126717@163.com> Date: Mon, 6 Jun 2022 11:55:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2=E9=93=B8?= =?UTF-8?q?=E9=80=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ConfluxAipController.java | 11 +++++ .../nft/mapper/NftCollectionMapper.java | 2 +- .../nft/service/ConfluxService.java | 2 + .../nft/service/INftCollectionService.java | 8 +++ .../nft/service/impl/ConfluxServiceImpl.java | 49 +++++++++++++++++-- .../impl/NftCollectionServiceImpl.java | 5 ++ .../conflux/web/controller/util/AESUtil.java | 2 +- .../mapper/system/NftCollectionMapper.xml | 8 +++ 8 files changed, 80 insertions(+), 7 deletions(-) diff --git a/conflux-admin/src/main/java/com/conflux/web/controller/api/ConfluxAipController.java b/conflux-admin/src/main/java/com/conflux/web/controller/api/ConfluxAipController.java index f584068..fe7f5fc 100644 --- a/conflux-admin/src/main/java/com/conflux/web/controller/api/ConfluxAipController.java +++ b/conflux-admin/src/main/java/com/conflux/web/controller/api/ConfluxAipController.java @@ -49,4 +49,15 @@ public class ConfluxAipController { public AjaxResult getToken() { return confluxService.getToken(); } + + /** + * 查询id是否铸造成功 + * @param ids + * @return + */ + @ApiOperation("查询id是否铸造成功") + @GetMapping("/getNftStatus") + public AjaxResult getNftStatus(@RequestParam("ids") String[] ids){ + return confluxService.getNftStatus(ids); + } } diff --git a/conflux-admin/src/main/java/com/conflux/web/controller/nft/mapper/NftCollectionMapper.java b/conflux-admin/src/main/java/com/conflux/web/controller/nft/mapper/NftCollectionMapper.java index 024bd85..1c2cc81 100644 --- a/conflux-admin/src/main/java/com/conflux/web/controller/nft/mapper/NftCollectionMapper.java +++ b/conflux-admin/src/main/java/com/conflux/web/controller/nft/mapper/NftCollectionMapper.java @@ -31,7 +31,7 @@ public interface NftCollectionMapper * @return nft上链集合 */ public List selectNftCollectionList(NftCollection nftCollection); - + public List selectNftCollectionListByIds(@Param("stringIds")String[] stringIds,@Param("onChainStatus") Integer onChainStatus); /** * 新增nft上链 * diff --git a/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/ConfluxService.java b/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/ConfluxService.java index 6fe08ff..41cf11c 100644 --- a/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/ConfluxService.java +++ b/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/ConfluxService.java @@ -19,4 +19,6 @@ public interface ConfluxService { * @return */ AjaxResult getToken(); + + AjaxResult getNftStatus(String[] ids); } diff --git a/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/INftCollectionService.java b/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/INftCollectionService.java index bce8722..328c4e3 100644 --- a/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/INftCollectionService.java +++ b/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/INftCollectionService.java @@ -30,6 +30,14 @@ public interface INftCollectionService */ public List selectNftCollectionList(NftCollection nftCollection); + /** + * 查询nft上链的id + * @param stringIds + * @param onChainStatus + * @return + */ + public List selectNftCollectionListByIds(String[] stringIds,Integer onChainStatus); + /** * 新增nft上链 * diff --git a/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/ConfluxServiceImpl.java b/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/ConfluxServiceImpl.java index 8155396..31b673a 100644 --- a/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/ConfluxServiceImpl.java +++ b/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/ConfluxServiceImpl.java @@ -78,6 +78,15 @@ public class ConfluxServiceImpl implements ConfluxService { if (checkArgs.getIds().length > 100) { return AjaxResult.error("上链数量超出100!"); } + String[] ids = checkArgs.getIds(); + List nftCollections = nftCollectionService.selectNftCollectionListByIds(ids, null); + if (nftCollections != null) { + List list = new ArrayList(); + for (NftCollection n : nftCollections) { + list.add(n.getInformationTableId()); + } + return AjaxResult.error("已经上链的id", list); + } String checkArgsToken = AESUtil.decrypt(checkArgs.getToken(), ConfluxArt.AESKEY); String token = (String) redisUtils.get(checkArgsToken); if (null == token) { @@ -153,9 +162,14 @@ public class ConfluxServiceImpl implements ConfluxService { if (executeMakeUp(contract, contractConfig.getUnitName())) { isFalg = false; } + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println("--------正在铸造----------->"); } }); - System.out.println("------------------->"); return AjaxResult.success("上链成功!"); } return AjaxResult.error(); @@ -173,9 +187,26 @@ public class ConfluxServiceImpl implements ConfluxService { return AjaxResult.success(map); } + @Override + public AjaxResult getNftStatus(String[] ids) { + List nftCollections = nftCollectionService.selectNftCollectionListByIds(ids, 2); + if (nftCollections.size() > 0) { + List list = new ArrayList(); + for (NftCollection n : nftCollections) { + list.add(n.getInformationTableId()); + } + return AjaxResult.success("上链成功的id", list); + } + return AjaxResult.error("暂无数据"); + } + public boolean executeMakeUp(String contract, String markName) { log.info("[dispatchHandler]{}", "开始监听数据"); - CollectConfig collect = collectConfigService.selectCollectConfigByStatus(); + CollectConfig collect = (CollectConfig) redisUtils.get(contract); + if (null == collect) { + collect = collectConfigService.selectCollectConfigByStatus(); + redisUtils.set(contract, collect); + } if (collect.getOnPause()) { log.info("[dispatchHandler]{}", "暂停中"); try { @@ -212,7 +243,11 @@ public class ConfluxServiceImpl implements ConfluxService { } FilterMapVO vo = getFilter(eventParams); //获取数据高度 - long from = collect.getEpochNumber(); + String keyNumber = contract + "number"; + long from = (long) redisUtils.get(keyNumber); + if (null == redisUtils.get(contract + "number")) { + from = collect.getEpochNumber(); + } // Invoke cfx method BigInteger epoch = cfx.getEpochNumber().sendAndGet(); log.info("[executeMakeUp][Current epoch]:{}", epoch); @@ -277,13 +312,17 @@ public class ConfluxServiceImpl implements ConfluxService { if (isSuccess) { t.setEpochNumber(to); log.info("[dispatchHandler][更新高度]:{}", to); + redisUtils.set(contract + "number", to); + } + if (logList.size() > 0) { int i = collectConfigService.updateCollectConfig(t); if (i <= 0) { log.error("[dispatchHandler][更新高度失败]:{}", to); throw new RuntimeException("更新高度失败"); } - } - if (logList.size() > 0) { + log.info("[dispatchHandler][更新高度成功]:{}", to); + redisUtils.del(contract); + redisUtils.del(keyNumber); return true; } return false; diff --git a/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/NftCollectionServiceImpl.java b/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/NftCollectionServiceImpl.java index 817ad7e..bb56734 100644 --- a/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/NftCollectionServiceImpl.java +++ b/conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/NftCollectionServiceImpl.java @@ -50,6 +50,11 @@ public class NftCollectionServiceImpl implements INftCollectionService { return nftCollectionMapper.selectNftCollectionList(nftCollection); } + @Override + public List selectNftCollectionListByIds(String[] stringIds,Integer onChainStatus) { + return nftCollectionMapper.selectNftCollectionListByIds(stringIds,onChainStatus); + } + @Override public int insertNftCollection(NftCollection nftCollection) { return nftCollectionMapper.insertNftCollection(nftCollection); diff --git a/conflux-admin/src/main/java/com/conflux/web/controller/util/AESUtil.java b/conflux-admin/src/main/java/com/conflux/web/controller/util/AESUtil.java index 1e08380..285e635 100644 --- a/conflux-admin/src/main/java/com/conflux/web/controller/util/AESUtil.java +++ b/conflux-admin/src/main/java/com/conflux/web/controller/util/AESUtil.java @@ -175,7 +175,7 @@ public final class AESUtil { public static void main(String[] args) { try { - String encrypt = encrypt("a92ccc5a-d74c-4b58-9092-c91ff4a4fb9a","CONFLUX@123"); + String encrypt = encrypt("0x7803ec04eed7bd4f3fd9c3fc824408a80e0b20b599b5e726cbaa609d48a2082d","CONFLUX@123"); System.err.println(encrypt); } catch (Exception e) { e.printStackTrace(); diff --git a/conflux-system/src/main/resources/mapper/system/NftCollectionMapper.xml b/conflux-system/src/main/resources/mapper/system/NftCollectionMapper.xml index 88a7a06..45dc889 100644 --- a/conflux-system/src/main/resources/mapper/system/NftCollectionMapper.xml +++ b/conflux-system/src/main/resources/mapper/system/NftCollectionMapper.xml @@ -40,6 +40,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where information_table_id = #{hexTokenId} + insert into nft_collection