Browse Source

修改上链自增的功能

dev
long 3 years ago
parent
commit
cc667405a5
  1. 2
      conflux-admin/src/main/java/com/conflux/web/controller/nft/domain/NftCollection.java
  2. 2
      conflux-admin/src/main/java/com/conflux/web/controller/nft/domain/dto/NftDTO.java
  3. 2
      conflux-admin/src/main/java/com/conflux/web/controller/nft/mapper/NftCollectionMapper.java
  4. 2
      conflux-admin/src/main/java/com/conflux/web/controller/nft/service/IHandlerStrategy.java
  5. 2
      conflux-admin/src/main/java/com/conflux/web/controller/nft/service/INftInfoV2Handler.java
  6. 4
      conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/ConfluxServiceImpl.java
  7. 4
      conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/HandlerStrategy.java
  8. 27
      conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/NftCollectionServiceImpl.java
  9. 3
      conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/NftInfoV2ImplHandler.java
  10. 38
      conflux-common/src/main/java/com/conflux/common/utils/IpfsUtils.java
  11. 5
      conflux-system/src/main/resources/mapper/system/NftCollectionMapper.xml

2
conflux-admin/src/main/java/com/conflux/web/controller/nft/domain/NftCollection.java

@ -41,8 +41,6 @@ public class NftCollection extends BaseEntity
private BigInteger nftId;
private String nftName;
/** 创建公司 */
@Excel(name = "创建公司")
private String createdBy;

2
conflux-admin/src/main/java/com/conflux/web/controller/nft/domain/dto/NftDTO.java

@ -10,5 +10,5 @@ public class NftDTO {
private BigInteger tokenId;
private Long updateTime;
private Long epochNumber;
private String nftName;
private String unitName;
}

2
conflux-admin/src/main/java/com/conflux/web/controller/nft/mapper/NftCollectionMapper.java

@ -68,7 +68,7 @@ public interface NftCollectionMapper
*/
public int deleteNftCollectionByIds(Long[] ids);
int updateByTokenId(@Param("hexTokenId")String hexTokenId,@Param("nftName")String nftName,@Param("time")Date time);
int updateByTokenId(@Param("hexTokenId")String hexTokenId,@Param("unitName")String unitName,@Param("time")Date time);
int selectMaxNftId(@Param("unitName")String unitName,@Param("nftName")String nftName);
}

2
conflux-admin/src/main/java/com/conflux/web/controller/nft/service/IHandlerStrategy.java

@ -4,5 +4,5 @@ package com.conflux.web.controller.nft.service;
import conflux.web3j.Cfx;
public interface IHandlerStrategy {
boolean relayHandler(Cfx cfx, String json, int type,String nftName);
boolean relayHandler(Cfx cfx, String json, int type,String unitName);
}

2
conflux-admin/src/main/java/com/conflux/web/controller/nft/service/INftInfoV2Handler.java

@ -5,5 +5,5 @@ import conflux.web3j.Cfx;
public interface INftInfoV2Handler {
void send721NftTransfer(Cfx cfx, String json,String nftName);
void send721NftTransfer(Cfx cfx, String json,String unitName);
}

4
conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/ConfluxServiceImpl.java

@ -662,7 +662,7 @@ public class ConfluxServiceImpl implements ConfluxService {
return AjaxResult.error("token或sign签名失效!");
}
public boolean executeMakeUp(String contract, String markName,String nftName) {
public boolean executeMakeUp(String contract, String markName,String unitName) {
log.info("[dispatchHandler]{}", "开始监听数据");
CollectConfig collect = (CollectConfig) redisUtils.get(contract);
if (null == collect) {
@ -754,7 +754,7 @@ public class ConfluxServiceImpl implements ConfluxService {
}
boolean res;
try {
res = iHandlerStrategy.relayHandler(cfx, gson.toJson(l), type,nftName);
res = iHandlerStrategy.relayHandler(cfx, gson.toJson(l), type,unitName);
} catch (Exception e) {
e.printStackTrace();
isSuccess = false;

4
conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/HandlerStrategy.java

@ -16,11 +16,11 @@ public class HandlerStrategy implements IHandlerStrategy {
private INftInfoV2Handler iNftInfoV2ImplHandler;
@Override
public boolean relayHandler(Cfx cfx, String json, int type,String nftName) {
public boolean relayHandler(Cfx cfx, String json, int type,String unitName) {
if (type == 20000) {
//nft 1155 采集
log.info("transfer: {}", json);
iNftInfoV2ImplHandler.send721NftTransfer(cfx, json,nftName);
iNftInfoV2ImplHandler.send721NftTransfer(cfx, json,unitName);
return true;
}
return false;

27
conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/NftCollectionServiceImpl.java

@ -67,16 +67,21 @@ public class NftCollectionServiceImpl implements INftCollectionService {
*/
@Override
public int insertListNftCollection(String unitName, List<String> strings,List<BigInteger> nftId,String nftName) {
List<NftCollection> list=new ArrayList<>();
for (int i = 0; i < strings.size(); i++) {
NftCollection nftCollection=new NftCollection();
nftCollection.setNftId(nftId.get(i));
nftCollection.setInformationTableId(strings.get(i));
nftCollection.setUnitName(unitName);
nftCollection.setNftName(nftName);
list.add(nftCollection);
}
return nftCollectionMapper.insertListNftCollection(list,new Date());
try{
List<NftCollection> list=new ArrayList<>();
for (int i = 0; i < strings.size(); i++) {
NftCollection nftCollection=new NftCollection();
nftCollection.setNftId(nftId.get(i));
nftCollection.setInformationTableId(strings.get(i));
nftCollection.setUnitName(unitName);
// nftCollection.setNftUri();
list.add(nftCollection);
}
return nftCollectionMapper.insertListNftCollection(list,new Date());
}catch (Exception e){
log.info("nft上链新增失败!",e);
return 0;
}
}
/**
@ -133,7 +138,7 @@ public class NftCollectionServiceImpl implements INftCollectionService {
log.info("[WjMyCollection][has mint]{}", nftDTO);
return;
}
int row = nftCollectionMapper.updateByTokenId(hexTokenId,nftDTO.getNftName(),new Date());
int row = nftCollectionMapper.updateByTokenId(hexTokenId,nftDTO.getUnitName(),new Date());
if (row < 1) {
log.info("[WjMyCollection][updateCollect]{}", nftDTO);
throw new RuntimeException("updateCollect error");

3
conflux-admin/src/main/java/com/conflux/web/controller/nft/service/impl/NftInfoV2ImplHandler.java

@ -32,13 +32,14 @@ public class NftInfoV2ImplHandler extends BaseHandler implements INftInfoV2Handl
* @param json json
*/
@Override
public void send721NftTransfer(Cfx cfx, String json,String nftName) {
public void send721NftTransfer(Cfx cfx, String json,String unitName) {
Log logInfo = getLogInfo(json);
NftDTO nftDTO = new NftDTO();
nftDTO.setOwner(decode(logInfo.getTopics().get(2)).getValue());
nftDTO.setTokenId(CfxUtils.getNumber(logInfo.getTopics().get(3)));
nftDTO.setEpochNumber(logInfo.getEpochNumber().get().longValue());
nftDTO.setUpdateTime(DateUtil.currentSeconds());
nftDTO.setUnitName(unitName);
log.info("-------------->json:",json);
nftCollectionService.updateCollect(nftDTO);
}

38
conflux-common/src/main/java/com/conflux/common/utils/IpfsUtils.java

@ -0,0 +1,38 @@
package com.conflux.common.utils;
import storage.nft.ApiClient;
import storage.nft.ApiException;
import storage.nft.Configuration;
import storage.nft.api.NftStorageApi;
import storage.nft.auth.HttpBearerAuth;
import storage.nft.model.DeleteResponse;
/**
* @Author _007long
* @Date 2022 06 27
**/
public class IpfsUtils {
public static void main(String[] args) {
System.out.println("-------------------->");
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.nft.storage");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("18782126717@163.com");
bearerAuth.setBearerToken("Bearer WyIweDU5NmJmN2MyMmZmZTkxMTBkYmIwMTE0YWNkMjVhMGQ3NGE0ODgwNGRmMjg5MzBhNTk4ZGRiZDYxMzEyY2JhOTI0OTU5Y2U0MjVhZDMwZWQ3OTJiOTM0YmY5YzBhODRhYTA5ZGEyYWI2ZWM4NDI3ZWFkNWQzYjE2NGExYmE5MDE0MWMiLCJ7XCJpYXRcIjoxNjU2MTM2NjAyLFwiZXh0XCI6MTY1NjE0MzgwMixcImlzc1wiOlwiZGlkOmV0aHI6MHhGOTFERjhiQjMwYzhEZGZBMWU3NjJFOTM4RjhjZDdhOTVENTMzNWUyXCIsXCJzdWJcIjpcInF1Q3BvczNQVW9odjFacEgwclExa2U5aWVJR2hLWXh4ZnVjODhlblRsMnM9XCIsXCJhdWRcIjpcIlpvYmw1QzJHRWVvT1dudXdpb0RURDRBSnd1NlhFTW5WSEttWjZWOFZZLUU9XCIsXCJuYmZcIjoxNjU2MTM2NjAyLFwidGlkXCI6XCI0ZWNkMDY2NS1lZTRlLTQ3OTUtOWE0Ny04NzdiNmY2ZDk4NGJcIixcImFkZFwiOlwiMHg5ZDk5NWViZDU1YmE4YmE4NmU5NzkyOGFmNTdkOWRjZTk5N2YxZjgwZWY2MGJjM2M2ZGY3MmMwM2EzMDZjM2Y4NTQyY2I2MzQ5YjZiMjI3NzA0MzBjZTlmYTgzNjUyZTczZDc1MDUzZDdhMDQzMDEwMmVjYjI5NDY4ODg0MDViZTFiXCJ9Il0=");
NftStorageApi apiInstance = new NftStorageApi(defaultClient);
String cid = "cid_example"; // String | CID for the NFT
try {
DeleteResponse result = apiInstance.delete(cid);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling NftStorageApi#delete");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}

5
conflux-system/src/main/resources/mapper/system/NftCollectionMapper.xml

@ -10,7 +10,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="informationTableId" column="information_table_id" />
<result property="nftUri" column="nft_uri" />
<result property="nftId" column="nft_id" />
<result property="nftName" column="nft_name" />
<result property="onChainStatus" column="on_chain_status" />
<result property="createdBy" column="created_by" />
<result property="createdTime" column="created_time" />
@ -101,7 +100,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
set
on_chain_status = 2,
updated_time = #{time}
where information_table_id = #{hexTokenId} AND nft_name=#{nftName} and on_chain_status = 1
where information_table_id = #{hexTokenId} AND unit_name=#{unitName} and on_chain_status = 1
</update>
<delete id="deleteNftCollectionById" parameterType="Long">
@ -115,6 +114,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<select id="selectMaxNftId" parameterType="String" resultType="int">
SELECT IF(MAX(nft_id) IS NULL,0, MAX(nft_id)) FROM nft_collection WHERE unit_name=#{unitName} and nft_name=#{nftName};
SELECT IF(MAX(nft_id) IS NULL,0, MAX(nft_id)) FROM nft_collection WHERE unit_name=#{unitName};
</select>
</mapper>
Loading…
Cancel
Save