|
@@ -1,7 +1,10 @@
|
|
|
package modules.nftt;
|
|
package modules.nftt;
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.jfinal.kit.StrKit;
|
|
|
import com.jfinal.plugin.activerecord.Db;
|
|
import com.jfinal.plugin.activerecord.Db;
|
|
|
import common.model.Nftt;
|
|
import common.model.Nftt;
|
|
|
|
|
+import common.utils.bsn.BsnSDK;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
@@ -26,22 +29,48 @@ public class NfttService {
|
|
|
|
|
|
|
|
public List<Nftt> homeList() {
|
|
public List<Nftt> homeList() {
|
|
|
String columns = "*";
|
|
String columns = "*";
|
|
|
- String baseSql = "select " + columns + " from t_nftt order by buying_start_time desc limit 0, 10";
|
|
|
|
|
|
|
+ String baseSql = "select " + columns + " from t_nftt where bsn_token_id != NULL and bsn_token_id != '-1' order by buying_start_time desc limit 0, 10";
|
|
|
|
|
|
|
|
return Nftt.dao.find(baseSql);
|
|
return Nftt.dao.find(baseSql);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public List<Nftt> nfttList(int pageNumber, int pageSize) {
|
|
public List<Nftt> nfttList(int pageNumber, int pageSize) {
|
|
|
- // limit 的第一个参数是偏移量,第二个参数是查询数量
|
|
|
|
|
- // 正确的 limit 是 LIMIT offset, count
|
|
|
|
|
- // offset = (pageNumber - 1) * pageSize
|
|
|
|
|
- // count = pageSize
|
|
|
|
|
int offset = (pageNumber - 1) * pageSize;
|
|
int offset = (pageNumber - 1) * pageSize;
|
|
|
|
|
|
|
|
- String sql = "SELECT COUNT(1) FROM t_nftt";
|
|
|
|
|
String columns = "*";
|
|
String columns = "*";
|
|
|
String baseSql = "select " + columns + " from t_nftt order by buying_start_time desc limit ?, ?";
|
|
String baseSql = "select " + columns + " from t_nftt order by buying_start_time desc limit ?, ?";
|
|
|
|
|
+
|
|
|
|
|
+ List<Nftt> list = Nftt.dao.find(baseSql, offset, pageSize);
|
|
|
|
|
|
|
|
- return Nftt.dao.find(baseSql, offset, pageSize);
|
|
|
|
|
|
|
+ for (Nftt nftt : list) {
|
|
|
|
|
+ if (StrKit.notBlank(nftt.getBsnTokenId())) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ JSONObject searchObject = BsnSDK.search("DLTBH_NFT_" + nftt.getId());
|
|
|
|
|
+ nftt.setBsnStatusJson(searchObject.toJSONString());
|
|
|
|
|
+ nftt.update();
|
|
|
|
|
+
|
|
|
|
|
+ if (searchObject.getInteger("code") != 0) {
|
|
|
|
|
+ throw new RuntimeException("查询失败,返回值与预期不符:" + searchObject.toJSONString());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ JSONObject data = searchObject.getJSONObject("data");
|
|
|
|
|
+ if (data.getInteger("status") == 2) {
|
|
|
|
|
+ nftt.setBsnTokenId("-1");
|
|
|
|
|
+ throw new RuntimeException("上链失败,链上的错误:" + searchObject.toJSONString());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (data.getInteger("status") == 1) {
|
|
|
|
|
+ nftt.setBsnTokenId(data.getString("tokenId"));
|
|
|
|
|
+ nftt.update();
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ System.err.println("search NFTT时出现问题:" + e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return list;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|