Commit c2fa5543 authored by wlx@33.cn's avatar wlx@33.cn

Merge branch 'dev' of https://gitlab.33.cn/yimu/mall-server into dev

parents 32a6cd1d ea496bd7
...@@ -245,7 +245,7 @@ ...@@ -245,7 +245,7 @@
// // log.info("【平行链充值程序】充值交易查询开始,当前确认高度:" + current_height + ",链上高度:" + // // log.info("【平行链充值程序】充值交易查询开始,当前确认高度:" + current_height + ",链上高度:" +
// // leastHeight); // // leastHeight);
// } // }
// if (current_height >= leastHeight) { // 如果已经确认到最新高度,那么稍等一会再确认 // if (current_height > leastHeight) { // 如果已经确认到最新高度,那么稍等一会再确认
// try { // try {
// Thread.sleep(10 * 1000); // Thread.sleep(10 * 1000);
// } catch (InterruptedException ie) { // } catch (InterruptedException ie) {
...@@ -272,7 +272,7 @@ ...@@ -272,7 +272,7 @@
// continue; // continue;
// } // }
// //
// // 判断币的类型 COINS // /*// 判断币的类型 COINS
// if ((adminProperties.getTitle() + CHAIN33_COINS).equals(execer)) { // if ((adminProperties.getTitle() + CHAIN33_COINS).equals(execer)) {
// log.info("【平行链充值程序】解析到COINS交易,区块高度:{},Hash:{},详情:{}", current_height, txHash, // log.info("【平行链充值程序】解析到COINS交易,区块高度:{},Hash:{},详情:{}", current_height, txHash,
// JSON.toJSONString(txDetail)); // JSON.toJSONString(txDetail));
...@@ -301,7 +301,7 @@ ...@@ -301,7 +301,7 @@
// Merchant fromUserAddress = merchantService.queryByAddress(fromAddr, false); // Merchant fromUserAddress = merchantService.queryByAddress(fromAddr, false);
// if (fromUserAddress != null && !StringUtil.isNullOrEmpty(fromUserAddress.getMerchantId())) { // if (fromUserAddress != null && !StringUtil.isNullOrEmpty(fromUserAddress.getMerchantId())) {
// // 检索提币交易记录的hash是否包含当前hash以及代扣hash // // 检索提币交易记录的hash是否包含当前hash以及代扣hash
// /*ArrayList<String> hashList = Lists.newArrayList(); // *//*ArrayList<String> hashList = Lists.newArrayList();
// hashList.add(txDetail.getHash()); // hashList.add(txDetail.getHash());
// String grpTxHash = paraClient.getGrpTxHashFromReal(txDetail.getHash()); // String grpTxHash = paraClient.getGrpTxHashFromReal(txDetail.getHash());
// if (!StringUtil.isNullOrEmpty(grpTxHash)) { // if (!StringUtil.isNullOrEmpty(grpTxHash)) {
...@@ -311,7 +311,7 @@ ...@@ -311,7 +311,7 @@
// if (hashCount <= 0) { // if (hashCount <= 0) {
// log.info("【平行链充值程序】-EVM-系统内部非提币交易的Hash,过滤"); // log.info("【平行链充值程序】-EVM-系统内部非提币交易的Hash,过滤");
// continue; // continue;
// }*/ // }*//*
// log.info("【平行链充值程序】-COINS-系统内部提币交易的Hash,过滤"); // log.info("【平行链充值程序】-COINS-系统内部提币交易的Hash,过滤");
// } // }
// //
...@@ -321,8 +321,8 @@ ...@@ -321,8 +321,8 @@
// //
// merchantAssetsService.updateAssets(toUserAddress.getMerchantId(), toUserAddress.getExternalTokenAddr(), // merchantAssetsService.updateAssets(toUserAddress.getMerchantId(), toUserAddress.getExternalTokenAddr(),
// txDetail.getAssetType(), amount); // txDetail.getAssetType(), amount);
// /*coinService.addUserCoin(toUserAddress.getUid(), 1, txDetail.getAssetType(), 1, // *//*coinService.addUserCoin(toUserAddress.getUid(), 1, txDetail.getAssetType(), 1,
// amount.toPlainString(), 4, fromAddr);*/ // amount.toPlainString(), 4, fromAddr);*//*
// merchantAssetsFlowService.saveOutRecharge(toUserAddress.getMerchantId(), txDetail.getAssetType(), // merchantAssetsFlowService.saveOutRecharge(toUserAddress.getMerchantId(), txDetail.getAssetType(),
// amount, 20, fromAddr); // amount, 20, fromAddr);
// //
...@@ -340,7 +340,7 @@ ...@@ -340,7 +340,7 @@
// externalTokenTradeService.addTrade(commodityPassId, fromAddr, amount); // externalTokenTradeService.addTrade(commodityPassId, fromAddr, amount);
// //
// // 添加进当前高度的充值集合 // // 添加进当前高度的充值集合
// /*TxInfoByBlock txinfo = new TxInfoByBlock(); // *//*TxInfoByBlock txinfo = new TxInfoByBlock();
// txinfo.setFrom(txDetail.getFrom()); // txinfo.setFrom(txDetail.getFrom());
// txinfo.setBlocktime(txDetail.getBlocktime() + ""); // txinfo.setBlocktime(txDetail.getBlocktime() + "");
// txinfo.setHash(txDetail.getHash()); // txinfo.setHash(txDetail.getHash());
...@@ -352,15 +352,15 @@ ...@@ -352,15 +352,15 @@
// txinfo.setTxIndex(txDetail.getIndex()); // txinfo.setTxIndex(txDetail.getIndex());
// txinfo.setValue( // txinfo.setValue(
// txDetail.getAmount().divide(BigDecimal.valueOf(100000000L)).toPlainString()); // txDetail.getAmount().divide(BigDecimal.valueOf(100000000L)).toPlainString());
// list.add(txinfo);*/ // list.add(txinfo);*//*
// //
// // 发起转币 ===> 系统账户 // // 发起转币 ===> 系统账户
// /*String hash = paraClient.localTran(RC4Util.decrypt(toUserAddress.getPrivateKey(), null), // *//*String hash = paraClient.localTran(RC4Util.decrypt(toUserAddress.getPrivateKey(), null),
// adminProperties.getAddr(), // adminProperties.getAddr(),
// (amount.multiply(BigDecimal.valueOf(100000000L))), "", false, // (amount.multiply(BigDecimal.valueOf(100000000L))), "", false,
// txDetail.getAssetType(), false); // txDetail.getAssetType(), false);
// log.info("【平行链充值程序】将用户地址的充值资产转入系统账户 UID:{},数量:{},Hash:{}", toUserAddress.getUid(), amount, // log.info("【平行链充值程序】将用户地址的充值资产转入系统账户 UID:{},数量:{},Hash:{}", toUserAddress.getUid(), amount,
// hash);*/ // hash);*//*
// //
// } // }
// //
...@@ -393,7 +393,7 @@ ...@@ -393,7 +393,7 @@
// Merchant fromUserAddress = merchantService.queryByAddress(fromAddr, false); // Merchant fromUserAddress = merchantService.queryByAddress(fromAddr, false);
// if (fromUserAddress != null && !StringUtil.isNullOrEmpty(fromUserAddress.getMerchantId())) { // if (fromUserAddress != null && !StringUtil.isNullOrEmpty(fromUserAddress.getMerchantId())) {
// // 检索提币交易记录的hash是否包含当前hash以及代扣hash // // 检索提币交易记录的hash是否包含当前hash以及代扣hash
// /*ArrayList<String> hashList = Lists.newArrayList(); // *//*ArrayList<String> hashList = Lists.newArrayList();
// hashList.add(txDetail.getHash()); // hashList.add(txDetail.getHash());
// String grpTxHash = paraClient.getGrpTxHashFromReal(txDetail.getHash()); // String grpTxHash = paraClient.getGrpTxHashFromReal(txDetail.getHash());
// if (!StringUtil.isNullOrEmpty(grpTxHash)) { // if (!StringUtil.isNullOrEmpty(grpTxHash)) {
...@@ -403,7 +403,7 @@ ...@@ -403,7 +403,7 @@
// if (hashCount <= 0) { // if (hashCount <= 0) {
// log.info("【平行链充值程序】-EVM-系统内部非提币交易的Hash,过滤"); // log.info("【平行链充值程序】-EVM-系统内部非提币交易的Hash,过滤");
// continue; // continue;
// }*/ // }*//*
// log.info("【平行链充值程序】-TOKEN-系统内部提币交易的Hash,过滤"); // log.info("【平行链充值程序】-TOKEN-系统内部提币交易的Hash,过滤");
// } // }
// //
...@@ -413,8 +413,8 @@ ...@@ -413,8 +413,8 @@
// //
// merchantAssetsService.updateAssets(toUserAddress.getMerchantId(), toUserAddress.getExternalTokenAddr(), // merchantAssetsService.updateAssets(toUserAddress.getMerchantId(), toUserAddress.getExternalTokenAddr(),
// txDetail.getAssetType(), amount); // txDetail.getAssetType(), amount);
// /*coinService.addUserCoin(toUserAddress.getUid(), 1, txDetail.getAssetType(), 1, // *//*coinService.addUserCoin(toUserAddress.getUid(), 1, txDetail.getAssetType(), 1,
// amount.toPlainString(), 4, fromAddr);*/ // amount.toPlainString(), 4, fromAddr);*//*
// merchantAssetsFlowService.saveOutRecharge(toUserAddress.getMerchantId(), txDetail.getAssetType(), // merchantAssetsFlowService.saveOutRecharge(toUserAddress.getMerchantId(), txDetail.getAssetType(),
// amount, 19, fromAddr); // amount, 19, fromAddr);
// //
...@@ -432,7 +432,7 @@ ...@@ -432,7 +432,7 @@
// externalTokenTradeService.addTrade(commodityPassId, fromAddr, amount); // externalTokenTradeService.addTrade(commodityPassId, fromAddr, amount);
// //
// // 添加进当前高度的充值集合 // // 添加进当前高度的充值集合
// /*TxInfoByBlock txinfo = new TxInfoByBlock(); // *//*TxInfoByBlock txinfo = new TxInfoByBlock();
// txinfo.setFrom(txDetail.getFrom()); // txinfo.setFrom(txDetail.getFrom());
// txinfo.setBlocktime(txDetail.getBlocktime() + ""); // txinfo.setBlocktime(txDetail.getBlocktime() + "");
// txinfo.setHash(txDetail.getHash()); // txinfo.setHash(txDetail.getHash());
...@@ -444,16 +444,16 @@ ...@@ -444,16 +444,16 @@
// txinfo.setTxIndex(txDetail.getIndex()); // txinfo.setTxIndex(txDetail.getIndex());
// txinfo.setValue( // txinfo.setValue(
// txDetail.getAmount().divide(BigDecimal.valueOf(100000000L)).toPlainString()); // txDetail.getAmount().divide(BigDecimal.valueOf(100000000L)).toPlainString());
// list.add(txinfo);*/ // list.add(txinfo);*//*
// //
// // 发起转币 ===> 系统账户 // // 发起转币 ===> 系统账户
// /*String hash = paraClient.localTran(RC4Util.decrypt(toUserAddress.getPrivateKey(), null), // *//*String hash = paraClient.localTran(RC4Util.decrypt(toUserAddress.getPrivateKey(), null),
// adminProperties.getAddr(), // adminProperties.getAddr(),
// (amount.multiply(BigDecimal.valueOf(100000000L))), "", true, // (amount.multiply(BigDecimal.valueOf(100000000L))), "", true,
// txDetail.getAssetType(), false); // txDetail.getAssetType(), false);
// log.info("【平行链充值程序】将用户地址的充值资产转入系统账户 UID:{},数量:{},Hash:{}", toUserAddress.getUid(), amount, // log.info("【平行链充值程序】将用户地址的充值资产转入系统账户 UID:{},数量:{},Hash:{}", toUserAddress.getUid(), amount,
// hash);*/ // hash);*//*
// } // }*/
// //
// // EVM NFT // // EVM NFT
// if ((adminProperties.getTitle() + CHAIN33_EVM).equals(execer) && // if ((adminProperties.getTitle() + CHAIN33_EVM).equals(execer) &&
......
...@@ -281,10 +281,10 @@ public class SlcRechargeTask { ...@@ -281,10 +281,10 @@ public class SlcRechargeTask {
continue; continue;
} }
// TxDetail txDetail = paraClient.queryTxDetailByHash(txHash); TxDetail txDetail = paraClient.queryTxDetailByHash(txHash);
// System.err.println(txHash); // System.err.println(txHash);
// System.err.println(paraClient.queryTxDetailByHash(txHash)); // System.err.println(paraClient.queryTxDetailByHash(txHash));
TxDetail txDetail = paraClient.evmQueryTxByRealhash(txHash, "1MbJCfsBwEkTJhfbEgQ5ScHYTMPL3Nf8KF", "0xdefc650e", true); // TxDetail txDetail = paraClient.evmQueryTxByRealhash(txHash, "1MbJCfsBwEkTJhfbEgQ5ScHYTMPL3Nf8KF", "0xdefc650e", true);
log.info("【平行链充值程序】-txDetail:" + txDetail); log.info("【平行链充值程序】-txDetail:" + txDetail);
if (txDetail == null) { if (txDetail == null) {
continue; continue;
...@@ -565,7 +565,7 @@ public class SlcRechargeTask { ...@@ -565,7 +565,7 @@ public class SlcRechargeTask {
// 转给商户 // 转给商户
if (toMerchant != null) { if (toMerchant != null) {
for (int i = 0; i < txDetail.getTokenIds().length; i++) { /*for (int i = 0; i < txDetail.getTokenIds().length; i++) {
merchantAssetsService.updateAssets(toMerchant.getMerchantId(), toMerchant.getTokenIssueAddr(), merchantAssetsService.updateAssets(toMerchant.getMerchantId(), toMerchant.getTokenIssueAddr(),
chainUtil.getGoodsAttribute(txDetail.getTokenIds()[i], toAddr)[6], new BigDecimal(txDetail.getAmounts()[i])); chainUtil.getGoodsAttribute(txDetail.getTokenIds()[i], toAddr)[6], new BigDecimal(txDetail.getAmounts()[i]));
merchantAssetsFlowService.saveOutRecharge(toMerchant.getMerchantId(), chainUtil.getGoodsAttribute(txDetail.getTokenIds()[i], toAddr)[6], merchantAssetsFlowService.saveOutRecharge(toMerchant.getMerchantId(), chainUtil.getGoodsAttribute(txDetail.getTokenIds()[i], toAddr)[6],
...@@ -592,7 +592,36 @@ public class SlcRechargeTask { ...@@ -592,7 +592,36 @@ public class SlcRechargeTask {
commodityPassId = UUIDUtil.getUUID(); commodityPassId = UUIDUtil.getUUID();
} }
externalTokenTradeService.addTrade(commodityPassId, fromAddr, new BigDecimal(txDetail.getAmounts()[i])); externalTokenTradeService.addTrade(commodityPassId, fromAddr, new BigDecimal(txDetail.getAmounts()[i]));
}*/
merchantAssetsService.updateAssets(toMerchant.getMerchantId(), toMerchant.getTokenIssueAddr(),
"NFT-" + txDetail.getTokenId(), amount);
/*coinService.addUserCoin(toUserAddress.getUid(), 1, txDetail.getAssetType(), 1,
amount.toPlainString(), 4, fromAddr);*/
merchantAssetsFlowService.saveOutRecharge(toMerchant.getMerchantId(), "NFT-" + txDetail.getTokenId(),
amount, 18, fromAddr);
log.info("【平行链充值程序】解析到一条充值记录,UID:{},资产类型:{},数量:{}", toMerchant.getMerchantId(),
txDetail.getTokenId(), amount);
externalTokenService.addToken(toMerchant.getMerchantId(),
"NFT-" + txDetail.getTokenId(),
txDetail.getTokenId(),
0,
"",
amount,
3,
0L,
""
);
ExternalToken externalToken = externalTokenService.queryByLabelNameAndMerchantId("NFT-" + txDetail.getTokenId(), toMerchant.getMerchantId());
String commodityPassId;
if (externalToken != null) {
commodityPassId = externalToken.getCommodityPassId();
} else {
commodityPassId = UUIDUtil.getUUID();
} }
externalTokenTradeService.addTrade(commodityPassId, fromAddr, amount);
} }
// 转给用户 // 转给用户
......
...@@ -3,6 +3,7 @@ package com.fzm.mall.server.admin.goods_center.model; ...@@ -3,6 +3,7 @@ package com.fzm.mall.server.admin.goods_center.model;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable; import java.io.Serializable;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -19,7 +20,7 @@ import lombok.EqualsAndHashCode; ...@@ -19,7 +20,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@TableName("goods_sku_usufruct") @TableName("goods_sku_usufruct")
@ApiModel(value="GoodsSkuUsufruct对象", description="使用权") @ApiModel(value = "GoodsSkuUsufruct对象", description = "使用权")
public class GoodsSkuUsufruct implements Serializable { public class GoodsSkuUsufruct implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -33,6 +34,12 @@ public class GoodsSkuUsufruct implements Serializable { ...@@ -33,6 +34,12 @@ public class GoodsSkuUsufruct implements Serializable {
@ApiModelProperty(value = "序列号") @ApiModelProperty(value = "序列号")
private String serialNo; private String serialNo;
@ApiModelProperty(value = "外部通证编号")
private String commodityPassId;
@ApiModelProperty(value = "商户号")
private String merchantId;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
private Long createTime; private Long createTime;
...@@ -41,6 +48,4 @@ public class GoodsSkuUsufruct implements Serializable { ...@@ -41,6 +48,4 @@ public class GoodsSkuUsufruct implements Serializable {
@TableField(fill = FieldFill.INSERT_UPDATE) @TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Long updateTime;
@ApiModelProperty(value = "卖家编号")
private String merchantId;
} }
...@@ -117,13 +117,13 @@ public class ExternalTokenServiceImpl extends ServiceImpl<ExternalTokenMapper, E ...@@ -117,13 +117,13 @@ public class ExternalTokenServiceImpl extends ServiceImpl<ExternalTokenMapper, E
externalToken.setPublishTime(publishTime); externalToken.setPublishTime(publishTime);
externalToken.setPublisher(publisher); externalToken.setPublisher(publisher);
Map<String, Object> map = new HashMap<>(); /*Map<String, Object> map = new HashMap<>();
map.put("tokenId", tokenId); map.put("tokenId", tokenId);
String httpGet = HttpUtil.httpGet(url, map); String httpGet = HttpUtil.httpGet(url, map);
JSONObject json = JSONObject.parseObject(httpGet); JSONObject json = JSONObject.parseObject(httpGet);
if (json.getString("code").equals("200")) { if (json.getString("code").equals("200")) {
externalToken.setHash(json.getString("data")); externalToken.setHash(json.getString("data"));
} }*/
//TODO 唐拓接口 //TODO 唐拓接口
save(externalToken); save(externalToken);
} }
......
...@@ -87,6 +87,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -87,6 +87,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
sku.setSkuId(skuId); sku.setSkuId(skuId);
sku.setGoodsId(goodsId); sku.setGoodsId(goodsId);
sku.setCoinName(coinName); sku.setCoinName(coinName);
sku.setCirculation(kDTO.getStock());
if (commodityPass.equals(1) && !pDTOType.equals(6)) { if (commodityPass.equals(1) && !pDTOType.equals(6)) {
//发行商品币 //发行商品币
...@@ -124,16 +125,16 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -124,16 +125,16 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
if (kDTO.getNftSalesType().equals(2)) { if (kDTO.getNftSalesType().equals(2)) {
//发行NFT //发行NFT
System.err.println(kDTO.getCoinName());
ExternalToken externalToken = externalTokenService.queryByLabelNameAndMerchantId(kDTO.getCoinName(), merchantId); ExternalToken externalToken = externalTokenService.queryByLabelNameAndMerchantId(kDTO.getCoinName(), merchantId);
String tokenId = externalToken.getTokenId().toString(); String tokenId = externalToken.getTokenId().toString();
long[] nos = new long[Math.toIntExact(kDTO.getStock() + 1)]; long[] nos = new long[Math.toIntExact(kDTO.getStock())];
String[] hashs = new String[Math.toIntExact(kDTO.getStock())]; String[] hashs = new String[Math.toIntExact(kDTO.getStock())];
nos[0] = 0;
for (int i = 0; i < kDTO.getStock(); i++) { for (int i = 0; i < kDTO.getStock(); i++) {
String hash = chainUtil.evmPublishTokenSplit(merchant.getTokenIssueAddr(), Long.parseLong(tokenId + (i + 1)), 1L); String suffix = i + 1 + "";
nos[i + 1] = 1; Long suffixAll = Long.parseLong(tokenId + "00000000".substring(0, 8 - suffix.length()) + suffix);
String hash = chainUtil.evmPublishTokenSplit(merchant.getTokenIssueAddr(), Long.parseLong(tokenId + suffixAll), 1L);
nos[i] = suffixAll;
hashs[i] = hash; hashs[i] = hash;
} }
...@@ -141,6 +142,8 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -141,6 +142,8 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
map.put("goodsId", goodsId); map.put("goodsId", goodsId);
map.put("hashs", hashs); map.put("hashs", hashs);
map.put("prefix", tokenId); map.put("prefix", tokenId);
map.put("merchantId", merchantId);
map.put("commodityPassId", externalToken.getCommodityPassId());
map.put("nos", JSONArray.toJSON(nos)); map.put("nos", JSONArray.toJSON(nos));
producer.sendTTL(map, QueueTTLTypeEnum.NFT_USU_TTL, 10 * 1000); producer.sendTTL(map, QueueTTLTypeEnum.NFT_USU_TTL, 10 * 1000);
} }
...@@ -167,6 +170,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -167,6 +170,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
Long oldStock = one.getStock(); Long oldStock = one.getStock();
one.setOriginalPrice(kDTO.getOriginalPrice()); one.setOriginalPrice(kDTO.getOriginalPrice());
one.setStock(kDTO.getStock()); one.setStock(kDTO.getStock());
one.setCirculation(one.getCirculation() + kDTO.getStock() - oldStock);
one.setWeight(kDTO.getWeight()); one.setWeight(kDTO.getWeight());
skus.add(one); skus.add(one);
...@@ -298,23 +302,24 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -298,23 +302,24 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
if (kDTO.getNftSalesType().equals(2)) { if (kDTO.getNftSalesType().equals(2)) {
//发行NFT //发行NFT
ExternalToken externalToken = externalTokenService.queryByLabelNameAndMerchantId(kDTO.getCoinName(), merchantId); ExternalToken externalToken = externalTokenService.queryByLabelNameAndMerchantId(kDTO.getCoinName(), merchantId);
String tokenId = externalToken.getTokenId().toString(); String tokenId = externalToken.getTokenId().toString();
long[] nos = new long[Math.toIntExact(kDTO.getStock() + 1)]; long[] nos = new long[Math.toIntExact(kDTO.getStock())];
String[] hashs = new String[Math.toIntExact(kDTO.getStock())]; String[] hashs = new String[Math.toIntExact(kDTO.getStock())];
nos[0] = 0;
for (int i = 0; i < kDTO.getStock(); i++) { for (int i = 0; i < kDTO.getStock(); i++) {
long balance = chainUtil.evmBalance(merchant.getTokenIssueAddr(), Long.parseLong(tokenId + (i + 1))); String suffix = i + 1 + "";
if (balance != 0) { Long suffixAll = Long.parseLong(tokenId + "00000000".substring(0, 8 - suffix.length()) + suffix);
String hash = chainUtil.evmPublishTokenSplit(merchant.getTokenIssueAddr(), Long.parseLong(tokenId + (i + 1)), 1L); String hash = chainUtil.evmPublishTokenSplit(merchant.getTokenIssueAddr(), Long.parseLong(tokenId + suffixAll), 1L);
hashs[i] = hash; nos[i] = suffixAll;
} hashs[i] = hash;
nos[i + 1] = 1;
} }
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("goodsId", goodsId); map.put("goodsId", goodsId);
map.put("hashs", hashs); map.put("hashs", hashs);
map.put("prefix", tokenId); map.put("prefix", tokenId);
map.put("merchantId", merchantId);
map.put("commodityPassId", externalToken.getCommodityPassId());
map.put("nos", JSONArray.toJSON(nos)); map.put("nos", JSONArray.toJSON(nos));
producer.sendTTL(map, QueueTTLTypeEnum.NFT_USU_TTL, 10 * 1000); producer.sendTTL(map, QueueTTLTypeEnum.NFT_USU_TTL, 10 * 1000);
} }
......
...@@ -63,6 +63,8 @@ public class NftConsumer { ...@@ -63,6 +63,8 @@ public class NftConsumer {
String[] hashs = (String[]) obj.get("hashs"); String[] hashs = (String[]) obj.get("hashs");
String prefix = obj.get("prefix") + ""; String prefix = obj.get("prefix") + "";
String nos = obj.get("nos") + ""; String nos = obj.get("nos") + "";
String merchantId = obj.get("merchantId") + "";
String commodityPassId = obj.get("commodityPassId") + "";
System.err.println("obj:" + obj); System.err.println("obj:" + obj);
int length = hashs.length; int length = hashs.length;
...@@ -87,6 +89,8 @@ public class NftConsumer { ...@@ -87,6 +89,8 @@ public class NftConsumer {
GoodsSkuUsufruct goodsSkuUsufruct = new GoodsSkuUsufruct(); GoodsSkuUsufruct goodsSkuUsufruct = new GoodsSkuUsufruct();
goodsSkuUsufruct.setPrefix(prefix); goodsSkuUsufruct.setPrefix(prefix);
goodsSkuUsufruct.setSerialNo(nos.toString()); goodsSkuUsufruct.setSerialNo(nos.toString());
goodsSkuUsufruct.setCommodityPassId(commodityPassId);
goodsSkuUsufruct.setMerchantId(merchantId);
goodsSkuUsufructService.save(goodsSkuUsufruct); goodsSkuUsufructService.save(goodsSkuUsufruct);
} }
} }
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<id column="id" property="id" /> <id column="id" property="id" />
<result column="prefix" property="prefix" /> <result column="prefix" property="prefix" />
<result column="serial_no" property="serialNo" /> <result column="serial_no" property="serialNo" />
<result column="commodity_pass_id" property="commodityPassId" />
<result column="merchant_id" property="merchantId" /> <result column="merchant_id" property="merchantId" />
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
......
...@@ -15,6 +15,9 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -15,6 +15,9 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequestMapping("/shop-navigation") @RequestMapping("/shop-navigation")
public class ShopNavigationController { public class
ShopNavigationController {
} }
...@@ -2512,4 +2512,5 @@ CREATE TABLE `goods_sku_usufruct` ( ...@@ -2512,4 +2512,5 @@ CREATE TABLE `goods_sku_usufruct` (
`commodity_pass_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '编号', `commodity_pass_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '编号',
`merchant_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '商户号', `merchant_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '商户号',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='使用权';
\ No newline at end of file ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='使用权';
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment