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

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

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

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