记得上下班打卡 | git大法好,push需谨慎

Commit 3ea6c363 authored by 张国柄's avatar 张国柄

~api:我的藏品列表+区块链路由、数据链交易时间;

parent a002fc88
......@@ -362,9 +362,9 @@ public class GoblinRedisConst {
/**
* NFT转赠约束时间(单位秒)
* {goblin:nft_tx_tl, long}
* {goblin:nft_trans_conf, "${timeLimit},${routeType:1},${routeType:2}..."}
*/
public static final String NFT_TRANSFER_TIME_LIMIT = PREFIX.concat("nft_tx_tl");
public static final String NFT_TRANSFER_CONF = PREFIX.concat("nft_trans_conf");
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
......
......@@ -111,7 +111,7 @@ public class GoblinGoodsSkuInfoVo implements Serializable, Cloneable {
private LocalDateTime openingTime;
@ApiModelProperty(position = 33, value = "盲盒开启时限[单位秒]")
private Integer openingLimit;
@ApiModelProperty(position = 33, value = "NFT路由")
@ApiModelProperty(position = 33, value = "NFT路由[zxinchain-至信链|xuper-百度超级链]")
private String routeType;
@ApiModelProperty(position = 33, value = "NFT上传声明状态[0-待上传|1-已声明|2-声明失败|9-声明中]")
private Integer upchain;
......
......@@ -36,7 +36,8 @@ public class GoblinUserDigitalArtworkListVo implements Serializable, Cloneable {
@ApiModelProperty(position = 19, value = "藏品创建时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(position = 19, value = "藏品数据链交易时间")
private String tradingAt;
@ApiModelProperty(position = 20, value = "是否盲盒[0-否|1-是]")
private String unbox;
......@@ -46,9 +47,11 @@ public class GoblinUserDigitalArtworkListVo implements Serializable, Cloneable {
@ApiModelProperty(position = 22, value = "创作者")
private String author;
@ApiModelProperty(position = 23, value = "转赠状态[PENDING|SUCCESS]")
@ApiModelProperty(position = 23, value = "区块链路由[zxinchain-至信链|xuper-百度超级链]")
private String routeType;
@ApiModelProperty(position = 24, value = "转赠状态[PENDING|SUCCESS]")
private String transferState;
@ApiModelProperty(position = 24, value = "转赠时间限制(单位秒)")
@ApiModelProperty(position = 25, value = "转赠时间限制(单位秒)")
private Long transferTimeLimit;
......@@ -63,6 +66,7 @@ public class GoblinUserDigitalArtworkListVo implements Serializable, Cloneable {
}
public GoblinUserDigitalArtworkListVo copy(GoblinUserDigitalArtworkVo source) {
if (null == source) return this;
this.setArtworkId(source.getArtworkId());
// this.setName();
// this.setSubtitle();
......@@ -72,6 +76,7 @@ public class GoblinUserDigitalArtworkListVo implements Serializable, Cloneable {
this.setSource(source.getSource());
this.setState(source.getState());
this.setCreatedAt(source.getCreatedAt());
this.setTradingAt(source.getTradingAt());
// this.setUnbox();
// this.setOpeningTime();
......
......@@ -4,6 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DESUtils;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
......@@ -29,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.List;
@ApiSupport(order = 142000)
@Api(tags = "我的藏品管理")
......@@ -170,6 +172,10 @@ public class GoblinUserDigitalArtworkController {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(userDigitalArtworkVo.getSkuId());
if ("1".equals(goodsSkuInfoVo.getUnbox())) return ResponseDto.failure(ErrorMapping.get("140106"));// 盲盒
if (1 != userDigitalArtworkVo.getState()) return ResponseDto.failure(ErrorMapping.get("140107"));// 未上链
List<String> transferConfList = goblinRedisUtils.getUserDigitalArtworkTransferConf();
LocalDateTime transferAllowTime = DateUtil.Formatter.yyyyMMddHHmmss.parse(userDigitalArtworkVo.getTradingAt()).plusSeconds(Long.parseLong(transferConfList.get(0)));
if (!transferConfList.contains(goodsSkuInfoVo.getRouteType())) return ResponseDto.failure(ErrorMapping.get("140111"));// 区块链路由未开放转赠
if (transferAllowTime.isBefore(LocalDateTime.now())) return ResponseDto.failure(ErrorMapping.get("140112"));// 转赠过渡期内不可转赠
String transferState = userDigitalArtworkVo.getTransferState();
if (StringUtils.isNotEmpty(transferState)) return ResponseDto.success(transferState);// 转赠状态不为空,标记已转赠或转赠中
String[] receiverArr;
......
......@@ -76,7 +76,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
return pageVo.setArtworkNum((int) artworkNum).setPagedResult(listVoPagedResult).setSystime(LocalDateTime.now());
}
long transferTimeLimit = goblinRedisUtils.getUserDigitalArtworkTransferTimeLimit();
long transferTimeLimit = Long.parseLong(goblinRedisUtils.getUserDigitalArtworkTransferConf().get(0));
List<GoblinUserDigitalArtworkListVo> list = ObjectUtil.getGoblinUserDigitalArtworkListVoArrayList();
LocalDateTime now = LocalDateTime.now(), toCheckTime = now.minusSeconds(15);
for (int i = 0, subSize = subArtworkIdList.size(); i < subSize; i++) {
......@@ -93,6 +93,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
listVo.setEdition(goodsSkuInfoVo.getSkuStock());
listVo.setUnbox(goodsSkuInfoVo.getUnbox());
listVo.setOpeningTime(goodsSkuInfoVo.getOpeningTime());
listVo.setRouteType(goodsSkuInfoVo.getRouteType());
listVo.setTransferTimeLimit(transferTimeLimit);
// 非盲盒 && 生成中 && 创建时间判断
......@@ -168,7 +169,7 @@ public class GoblinUserDigitalArtworkServiceImpl implements IGoblinUserDigitalAr
artworkInfoVo.setDetails(goodsSkuInfoVo.getDetails());
artworkInfoVo.setArUrlIos(goodsSkuInfoVo.getArUrlIos());
artworkInfoVo.setArUrlAndroid(goodsSkuInfoVo.getArUrlAndroid());
artworkInfoVo.setTransferTimeLimit(goblinRedisUtils.getUserDigitalArtworkTransferTimeLimit());
artworkInfoVo.setTransferTimeLimit(Long.valueOf(goblinRedisUtils.getUserDigitalArtworkTransferConf().get(0)));
artworkInfoVo.setSystime(LocalDateTime.now());
}
return artworkInfoVo;
......
......@@ -6,7 +6,6 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.RandomUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.GoblinStoreMarketDto;
......@@ -2675,16 +2674,16 @@ public class GoblinRedisUtils {
return (GoblinUserSafeConfigDto) redisUtil.get(GoblinRedisConst.USER_SAFE_CONFIG.concat(uid));
}
/* ---------------------------------------- NFT转赠约束时间 ---------------------------------------- */
/* ---------------------------------------- ---------------------------------------- */
/**
* NFT转赠约束时间
* NFT转赠约束配置
* redis未配置默认返回24小时对应86400秒
* @return long(秒)
*/
public long getUserDigitalArtworkTransferTimeLimit() {
Object o = redisUtil.get(GoblinRedisConst.NFT_TRANSFER_TIME_LIMIT);
return Objects.isNull(o) ? 86400L : (long) o;
public List<String> getUserDigitalArtworkTransferConf() {
String o = (String) redisUtil.get(GoblinRedisConst.NFT_TRANSFER_CONF);
return StringUtils.isEmpty(o) ? Arrays.asList("15552000", "xuper") : Arrays.asList(o.split(","));
}
/* ---------------------------------------- ---------------------------------------- */
......
......@@ -53,6 +53,8 @@
140108=\u53D7\u8D60\u4EBA\u4FE1\u606F\u6709\u8BEF
140109=\u8F6C\u8D60\u4EBA\u4E0E\u53D7\u8D60\u4EBA\u4E0D\u53EF\u672A\u540C\u4E00\u4EBA
140110=\u53D7\u8D60\u4EBA\u672A\u5F00\u901A\u6570\u5B57\u8D26\u53F7
140111=\u8BE5\u85CF\u54C1\u6240\u5C5E\u6570\u636E\u94FE\u6682\u672A\u5F00\u653E\u8F6C\u8D60
140112=\u8BE5\u85CF\u54C1\u4E0D\u6EE1\u8DB3\u8F6C\u8D60\u6761\u4EF6
......
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