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

Commit 391abfbb authored by 张国柄's avatar 张国柄

Merge remote-tracking branch 'origin/master' into Fix220713_station_down_refresh

parents d80f23e6 c4443c8d
......@@ -7,6 +7,7 @@ public class AdamEnum {
public enum BizAcct {
IMHX("imhx", "即时通讯-环信"),
NFT_ZX("nft_zx", "NFT-至信链"),
NFT_XUPER("nft_xuper", "NFT-百度超级链"),
;
private final String code;
private final String desc;
......
package com.liquidnet.service.candy.dto.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
@ApiModel(value = "CandyMgtCouponRelateParam", description = "券关联配置")
public class CandyMgtCouponRelateParam {
@NotBlank(message = "券ID不能为空")
@ApiModelProperty(required = true, value = "券ID", example = "123456789")
private String couponId;
@NotNull(message = "适用范围不能为空")
@ApiModelProperty(required = true, value = "适用范围[1-巡演]", allowableValues = "1")
private Integer scope;
@NotNull(message = "业务ID列表不能为空")
@Size(min = 1, message = "业务ID列表最少选择一个")
@ApiModelProperty(required = true, value = "业务ID", dataType = "List", example = "[\"IDIDIDIDIDIDID1\",\"IDIDIDIDIDIDID2\"]")
private List<@NotBlank(message = "业务ID值不能为空") String> idList;
public String getCouponId() {
return couponId;
}
public void setCouponId(String couponId) {
this.couponId = couponId;
}
public Integer getScope() {
return scope;
}
public void setScope(Integer scope) {
this.scope = scope;
}
public List<String> getIdList() {
return idList;
}
public void setIdList(List<String> idList) {
this.idList = idList;
}
}
......@@ -18,6 +18,8 @@ public class CandyCouponVo implements Serializable, Cloneable {
private static final long serialVersionUID = 4073256621782131606L;
/* --- --- --- CandyCoupon */
@ApiModelProperty(value = "券id",example = "")
private String couponId;
@ApiModelProperty(value = "标题",example = "标题")
private String title;
@ApiModelProperty(value = "标注",example = "标注")
......
package com.liquidnet.service.candy.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -10,6 +11,7 @@ import java.util.List;
@Data
@ApiModel
@JsonIgnoreProperties(ignoreUnknown = true)
public class CandyUseResultVo implements Serializable, Cloneable {
private static final long serialVersionUID = 4073256621782131607L;
......@@ -21,6 +23,8 @@ public class CandyUseResultVo implements Serializable, Cloneable {
private List<String> targetIds;
@ApiModelProperty(value = "满减金额[满多少]")
private BigDecimal fullValue;
@ApiModelProperty(value = "满减金额[满多少]")
private String couponId;
private static final CandyUseResultVo obj = new CandyUseResultVo();
......
......@@ -23,6 +23,7 @@ public class GalaxyConstant {
public static final String REDIS_KEY_GALAXY_PUBLISH_NFT="galaxy:publish:nft:"; //nft索引递增记录
public static final String SERIES_NAME_PREFIX="NOW_ZXL_";// 系列存储目录名称和系列声明
public static final String SERIES_NAME_XUPER_PREFIX="NOW_XUPER_";// 系列存储目录名称和系列声明
public static final String ADAM_USER_SYNC_URL="/adam/rsc/syn/certmeta";// adam用户开通数字账户信息同步url
......
......@@ -148,6 +148,42 @@ public class GalaxyEnum {
}
}
/**
* 标记任务状态
*/
public enum AssetPublishStatusEnum{
INIT("-1","数据初始化"),
PROCESSING("0","发行中"),
SUCCESS("1","发行成功"),
FAIL("2","发行失败");
private String code;
private String message;
AssetPublishStatusEnum(String code, String message) {
this.code = code;
this.message = message;
}
public AssetPublishStatusEnum getEnumByCode(String code){
AssetPublishStatusEnum[] arry = AssetPublishStatusEnum.values();
for (int i = 0; i < arry.length; i++) {
if (arry[i].getCode().equals(code)) {
return arry[i];
}
}
return null;
}
public String getCode() {
return code;
}
public String getMessage(){
return message;
}
}
/**
* 标记任务状态
*/
......
......@@ -71,6 +71,16 @@ public class GalaxySeriesNftInfoBo implements Serializable,Cloneable {
*/
private String originalDisplayUrl;
/**
* nft发行状态
*/
private String nftPublishStatus;
/**
* nft发行交易hash
*/
private String nftPublishTradeHash;
//======================================
//=============以下都为购买信息=============
//======================================
......
......@@ -39,6 +39,11 @@ public class GalaxySeriesNftUploadBo implements Serializable,Cloneable {
*/
private String displayUrl;
/**
* nft介质hash值
*/
private String nftHashStr;
/**
* 创建时间
*/
......
......@@ -69,6 +69,45 @@ public class GalaxyQuerySeriesInfoRespDto implements Serializable,Cloneable {
return JsonUtils.toJson(this);
}
/**
* 以下为百度链新增字段****开始***********
*/
/**
* nft介质访问url
*/
@ApiModelProperty(position = 1, required = true, value = "nft介质访问url")
private String nftUrl;
/**
* nft缩略图icon
*/
@ApiModelProperty(position = 1, required = true, value = "nft缩略图icon")
private String nftThumbIcon;
/**
* nft缩略图url1
*/
@ApiModelProperty(position = 1, required = true, value = "nft缩略图url1")
private String nftThumbUrl1;
/**
* nft缩略图url2
*/
@ApiModelProperty(position = 1, required = true, value = "nft缩略图url2")
private String nftThumbUrl2;
/**
* nft缩略图url3
*/
@ApiModelProperty(position = 1, required = true, value = "nft缩略图url3")
private String nftThumbUrl3;
/**
* 以下为百度链新增字段****结束***********
*/
private static final GalaxyQuerySeriesInfoRespDto obj = new GalaxyQuerySeriesInfoRespDto();
public static GalaxyQuerySeriesInfoRespDto getNew() {
......
......@@ -22,12 +22,20 @@ import java.io.Serializable;
@Data
public class GalaxyUserBindStatusQueryReqDto extends GalaxyBaseReqDto implements Serializable,Cloneable {
/**
* nftOrderPayId
* 用户id
*/
@ApiModelProperty(position = 1, required = true, value = "用户区块链地址")
@NotBlank(message = "用户区块链地址不能为空!")
@Size(min = 2, max = 100, message = "用户区块链地址不能超过100个字符")
private String blockChainAddress;
@ApiModelProperty(position = 1, required = true, value = "用户ID[30]")
@NotBlank(message = "用户ID不能为空!")
@Size(min = 1, max = 30, message = "用户ID限制2-30位且不能包含特殊字符")
private String userId;
// /**
// * nftOrderPayId
// */
// @ApiModelProperty(position = 1, required = true, value = "用户区块链地址")
// @NotBlank(message = "用户区块链地址不能为空!")
// @Size(min = 2, max = 100, message = "用户区块链地址不能超过100个字符")
// private String blockChainAddress;
@Override
public String toString(){
......
......@@ -19,6 +19,9 @@ import java.io.Serializable;
@ApiModel(value = "GalaxyUserBindStatusQueryRespDto", description = "用户绑定状态查询")
@Data
public class GalaxyUserBindStatusQueryRespDto implements Serializable,Cloneable {
@ApiModelProperty(position = 1, required = true, value = "用户ID[30]")
private String userId;
@ApiModelProperty(position = 3, required = true, value = "用户区块链地址")
private String blockChainAddress;
......
......@@ -27,8 +27,8 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable {
@ApiModelProperty(position = 12, required = false, value = "单品ID,编辑时必传")
private String skuId;
@ApiModelProperty(position = 12, required = false, value = "NFT区块链[zxinchain-至信链]", allowableValues = "zxinchain", example = "zxinchain")
@Pattern(regexp = "\\b(zxinchain)\\b", message = "NFT区块链参数无效")
@ApiModelProperty(position = 12, required = false, value = "NFT区块链[zxinchain-至信链|xuper-百度链]", allowableValues = "zxinchain,xuper", example = "zxinchain")
@Pattern(regexp = "\\b(zxinchain|xuper)\\b", message = "NFT区块链参数无效")
private String routeType;
@ApiModelProperty(position = 13, required = true, value = "藏品名称[36]", example = "藏品名称...")
......@@ -195,8 +195,8 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable {
initVo.setSkuStock(0);
// initVo.setBuyLimit(this.getBuyLimit());//
// initVo.setBuyFactor(this.getBuyFactor());//
initVo.setSkuAppear("0");
initVo.setSkuCanbuy("1");
initVo.setSkuAppear(null == this.getSkuAppear() ? "0" : this.getSkuAppear());//1
initVo.setSkuCanbuy(null == this.getSkuCanbuy() ? "1" : this.getSkuCanbuy());//1
initVo.setOpeningTime(DateUtil.Formatter.yyyyMMddHHmmss.parse(this.getOpeningTime()));//1
}
return initVo;
......@@ -227,8 +227,8 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable {
case "1":
// updateVo.setBuyLimit(this.getBuyLimit());//
// updateVo.setBuyFactor(this.getBuyFactor());//
updateVo.setSkuAppear("0");//
updateVo.setSkuCanbuy("1");//
updateVo.setSkuAppear(null == this.getSkuAppear() ? "0" : this.getSkuAppear());//1
updateVo.setSkuCanbuy(null == this.getSkuCanbuy() ? "1" : this.getSkuCanbuy());//1
updateVo.setName(this.getName());//1
updateVo.setSkuPic(this.getSkuPic());//1
updateVo.setSkuWatch(this.getSkuWatch());//1
......
......@@ -28,6 +28,8 @@ public class GoblinUserDigitalArtworkInfoVo implements Serializable, Cloneable {
private Integer edition;
@ApiModelProperty(position = 17, value = "藏品NFT ID")
private String nftId;
@ApiModelProperty(position = 17, value = "藏品交易HASH")
private String tradingTxhash;
@ApiModelProperty(position = 18, value = "藏品生成时间[yyyy-MM-dd HH:mm:ss]")
private String generateTime;
......@@ -63,6 +65,7 @@ public class GoblinUserDigitalArtworkInfoVo implements Serializable, Cloneable {
}
public GoblinUserDigitalArtworkInfoVo copy(GoblinUserDigitalArtworkVo source) {
if (null == source) return this;
// this.setName();
// this.setSubtitle();
// this.setMaterialType();
......@@ -70,6 +73,7 @@ public class GoblinUserDigitalArtworkInfoVo implements Serializable, Cloneable {
// this.setEdition();
this.setEditionSn(source.getEditionSn());
this.setNftId(source.getNftId());
this.setTradingTxhash(source.getTradingTxhash());
this.setGenerateTime(source.getTradingAt());
this.setSource(source.getSource());
this.setState(source.getState());
......
......@@ -95,4 +95,10 @@ public class KylinRedisConst {
public static final String ACTIVE_TICKET_AR_TICKET = "kylin:active:ar:ticket:";//互动券
public static final String ACTIVE_TICKET_AR_USER = "kylin:active:ar:user:";//互动券 绑定的用户
/**
* 巡演券
* eg:{kylin:c_rs:${couponId}, List<巡演ID>}
*/
public static final String COUPON_ROADSHOWS = "kylin:c_rs:";
}
package com.liquidnet.service.kylin.dto.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel
@Data
public class KylinCandyItemParam implements Serializable, Cloneable {
@ApiModelProperty(value = "券类型id")
private String couponId;
@ApiModelProperty(value = "每一张券id")
private String ucouponId;
private static final KylinCandyItemParam obj = new KylinCandyItemParam();
public static KylinCandyItemParam getNew() {
try {
return (KylinCandyItemParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinCandyItemParam();
}
}
}
package com.liquidnet.service.kylin.dto.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel
@Data
public class KylinCandyParam implements Serializable, Cloneable {
@ApiModelProperty(value = "券id集合")
private List<KylinCandyItemParam> couponList;
@ApiModelProperty(value = "巡演id")
private String roadShowId;
private static final KylinCandyParam obj = new KylinCandyParam();
public static KylinCandyParam getNew() {
try {
return (KylinCandyParam) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinCandyParam();
}
}
}
package com.liquidnet.service.kylin.dto.vo.mongo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel
@Data
public class KylinCandyVo implements Serializable, Cloneable {
@ApiModelProperty(value = "券类别id")
private String couponId;
@ApiModelProperty(value = "券id")
private String ucouponId;
@ApiModelProperty(value = "巡演id")
private String roadShowId;
private static final KylinCandyVo obj = new KylinCandyVo();
public static KylinCandyVo getNew() {
try {
return (KylinCandyVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinCandyVo();
}
}
}
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.KylinCandyItemParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinCandyVo;
import java.util.List;
/**
* <p>
......@@ -24,4 +28,6 @@ public interface IKylinPerformancesService {
ResponseDto<String> subscribe(String performancesId, Integer sourceType);
ResponseDto<Integer> isSubscribe(String performancesId);
ResponseDto<List<KylinCandyVo>> kylinCandy(List<KylinCandyItemParam> data, String roadShowId);
}
......@@ -20,6 +20,7 @@ public class LocalAdminController extends BaseController
private final String storePrefix = "zhengzai/store";
private final String smilePrefix = "zhengzai/smile";
private final String activityPrefix = "zhengzai/sweet";
private final String candyPrefix = "zhengzai/candy";
@Value("${liquidnet.client.admin.platformUrl}")
private String platformUrl;
......@@ -200,5 +201,10 @@ public class LocalAdminController extends BaseController
{
return activityPrefix + "/performanceActivity/ticketList";
}
@GetMapping("/relevancyShow") // 活动关联券部分
public String relevancyShow()
{
return candyPrefix + "/coupon/mgt/relevancyShow";
}
}
......@@ -9,14 +9,13 @@ import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRelateAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService;
import com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinPerformancesAdminServiceImpl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam;
import com.liquidnet.service.candy.dto.admin.*;
import com.liquidnet.service.candy.entity.CandyCouponRule;
import com.liquidnet.service.kylin.dao.PerformanceSimpleAllDao;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
......@@ -34,7 +33,9 @@ import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@Api(tags = "我的券包")
@Controller
......@@ -53,6 +54,8 @@ public class CandyMgtCouponAdminController extends BaseController {
private ICandyCouponRuleAdminService candyCouponRuleAdminService;
@Autowired
private IKylinPerformancesAdminService kylinPerformancesAdminService;
@Autowired
private ICandyCouponRelateAdminService candyCouponRelateAdminService;
@RequiresPermissions("candy:coupon:mgt:view")
@GetMapping()
......@@ -72,12 +75,16 @@ public class CandyMgtCouponAdminController extends BaseController {
if (Arrays.asList(3, 101).contains(listParam.getCouType())) {
String[] couponIdArr = list.stream().map(CandyMgtCouponInfoDto::getCouponId).toArray(String[]::new);
Map<String, String> roadshowNameMap = 101 != listParam.getCouType() ? CollectionUtil.mapStringString() : candyCouponRelateAdminService.queryRelateRoadshowName(Arrays.asList(couponIdArr));
LambdaQueryWrapper<CandyCouponRule> queryWrapper = Wrappers.lambdaQuery(CandyCouponRule.class);
queryWrapper.in(CandyCouponRule::getCouponId, couponIdArr);
queryWrapper.eq(CandyCouponRule::getState, 1);
queryWrapper.select(CandyCouponRule::getCruleId, CandyCouponRule::getCouponId, CandyCouponRule::getBusiName);
List<CandyCouponRule> couponRuleList = candyCouponRuleAdminService.list(queryWrapper);
list.stream().forEach(r -> {
list.forEach(r -> {
r.setRelateRoadshowFlg(null != roadshowNameMap.get(r.getCouponId()));
couponRuleList.forEach(cr -> {
if (r.getCouponId().equals(cr.getCouponId())) {
r.setCouponRuleScopeName(cr.getBusiName());
......@@ -140,7 +147,18 @@ public class CandyMgtCouponAdminController extends BaseController {
}
break;
}
} else {
mmap.put("busiNameChildNode", "全场通用");
}
Map<String, String> roadshowNameMap = candyCouponRelateAdminService.queryRelateRoadshowName(Collections.singletonList(mgtCouponInfoDto.getCouponId()));
String relateRoadshowNames = "";
if (!CollectionUtils.isEmpty(roadshowNameMap)) {
StringBuilder relateRoadshowSB = new StringBuilder();
roadshowNameMap.forEach((k,v) -> relateRoadshowSB.append(v).append(";"));
relateRoadshowNames = relateRoadshowSB.substring(0, relateRoadshowSB.length() - 1);
}
mmap.put("relateRoadshowNames", relateRoadshowNames);
}
return prefix + "/detail" + couType;
}
......@@ -291,7 +309,7 @@ public class CandyMgtCouponAdminController extends BaseController {
case 0:
buildParam.setEventType(0);
buildParam.setEventLimit(null);
if (null == buildParam.getRedeemValidity()) {
if (null == buildParam.getRedeemValidity() || buildParam.getRedeemValidity().compareTo(0) <= 0) {
return AjaxResult.warn("兑换有效期无效");
}
break;
......@@ -379,4 +397,14 @@ public class CandyMgtCouponAdminController extends BaseController {
//// candyCouponRuleAdminService.update(couponRuleLambdaUpdateWrapper);
// return toAjax(updateMgtCouponFlg);
// }
@ApiOperation(value = "关联配置")
@Log(title = "我的券包:关联配置", businessType = BusinessType.INSERT)
@RequiresPermissions("candy:coupon:mgt:relate")
@PostMapping("relate")
@ResponseBody
public AjaxResult relate(@RequestBody @Validated CandyMgtCouponRelateParam relateParam) {
logger.info("我的券包:关联配置:operator:{},relateParam:{}", ShiroUtils.getLoginName(), JsonUtils.toJson(relateParam));
return candyCouponRelateAdminService.relate(relateParam);
}
}
......@@ -107,6 +107,11 @@ public class GoblinSelfExtagAdminController extends BaseController {
LambdaQueryWrapper<GoblinSelfTag> queryWrapper = Wrappers.lambdaQuery(GoblinSelfTag.class);
queryWrapper.eq(GoblinSelfTag::getDelFlg, "0");
queryWrapper.eq(GoblinSelfTag::getTagBelong, "1");
if ("5".equals(tagType)) {// AR标签类型时,类型内标签名重复校验
queryWrapper.eq(GoblinSelfTag::getTagType, tagType);
} else {
queryWrapper.ne(GoblinSelfTag::getTagType, "5");
}
queryWrapper.eq(GoblinSelfTag::getTagName, tagName.trim());
if (goblinSelfTagService.count(queryWrapper) > 0) {
return AjaxResult.warn("标签名称重复,请核实");
......
......@@ -54,6 +54,16 @@ public class KylinRoadShowController extends BaseController {
return getDataTable(result.getList());
}
@Log(title = "巡演管理", businessType = BusinessType.LIST)
@GetMapping("/getList")
@ResponseBody
public TableDataInfo getlistRoadShow(@RequestParam(value = "title", required = false) String title,
@RequestParam(value = "pageNum") int page,
@RequestParam(value = "pageSize") int size) {
startPage();
PageInfo<RoadShowAdminListDao> result = kylinRoadShowsAdminService.listRoadShow(title, page, size);
return getDataTable(result.getList());
}
/**
* 新增巡演
*/
......
......@@ -11,4 +11,4 @@ liquidnet:
spring:
profiles:
include: client-admin-web
include: client-admin-web
\ No newline at end of file
# begin-dev-这里是配置信息基本值
# begin-prod-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: prod
......@@ -7,7 +7,7 @@ liquidnet:
password: user123
eureka:
host: 172.17.207.189:7001
# end-dev-这里是配置信息基本值
# end-prod-这里是配置信息基本值
spring:
profiles:
......
# begin-dev-这里是配置信息基本值
# begin-test-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: test
......@@ -7,11 +7,7 @@ liquidnet:
password: user123
eureka:
host: 172.17.207.177:7001
#instance:
# prefer-ip-address: true
#host: eureka-test-0.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-1.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-2.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka
#host: 192.168.193.41:7001
# end-dev-这里是配置信息基本值
# end-test-这里是配置信息基本值
spring:
profiles:
......
# begin-yace-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: yace
security:
username: user
password: user123
eureka:
host: 172.17.121.251:7001
# end-yace-这里是配置信息基本值
spring:
profiles:
include: client-admin-web
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('兑换券')" />
<th:block th:include="include :: header('优先券')" />
<style>
body .layui-layer-btn {
display: none !important;
}
</style>
</head>
<body class="gray-bg">
<div class="container-div">
......@@ -49,8 +54,9 @@
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "candy/coupon/mgt";
var prefix2 = ctx + "local";
var viewMgtCouponFlag = [[${@permission.hasPermi('candy:coupon:mgt:detail')}]];
var viewMgtRelateFlag = [[${@permission.hasPermi('candy:coupon:mgt:relate')}]];
var cancelMgtCouponFlag = [[${@permission.hasPermi('candy:coupon:mgt:cancel')}]];
var couType = [[${couType}]];
......@@ -111,6 +117,9 @@
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-warning btn-xs ' + viewMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.mcouponId + '\')"><i class="fa fa-search"></i>详情</a>');
if (!row.relateRoadshowFlg) {
actions.push('<a class="btn btn-success btn-xs ' + viewMgtRelateFlag + '" href="javascript:void(0)" onclick="relevancyShow(\'' + row.couponId + '\')">关联巡演</a>');
}
// if (row.state === 0) {
// actions.push('<a class="btn btn-danger btn-xs ' + cancelMgtCouponFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.mcouponId + '\')"><i class="fa fa-remove"></i>取消</a>');
// }
......@@ -129,6 +138,15 @@
var url = 'candy/coupon/code?couponId=' + couponId;
$.modal.openTab("查看码列表", url);
}
// 导出数据
function relevancyShow(couponId) {
// console.log(userIds.toString(), 'dataParam')
$.modal.open('关联巡演', prefix2 + "/relevancyShow?couponId="+couponId, 500, 350, cancel)
}
function cancel () {
console.log('确定按钮?')
}
</script>
</body>
</html>
\ No newline at end of file
......@@ -76,6 +76,12 @@
[[${#strings.substring(mgtCouponInfoDto?.eventAt,0,19)}]]
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">关联巡演:</label>
<div class="form-control-static col-sm-9">
[[${relateRoadshowNames}]]
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('创建活动')" />
<th:block th:include="include :: bootstrap-fileinput-css" />
<style>
.create_activity_box {
padding: 20px;
}
.items {
/* border: 1px dashed #ccc; */
border-radius: 10px;
padding: 12px;
margin-bottom: 10px;
display: flex;
align-items: center;
}
.items .title {
width: 80px;
}
label {
width: 80px;
text-align: right;
}
input {
width: 200px;
height: 30px;
}
.footer_btn {
position: absolute;
margin-top: 20px;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
bottom: 20px;
left: 50%;
margin-left: -20px;
}
select {
height: 30px;
width: 200px;
}
</style>
</head>
<body>
<div class="create_activity_box">
<div class="items">
<div class="title">关联巡演:</div>
<div class="input-group">
<input id="goodsName" type="text" class="form-control storeList" placeholder="搜索巡演名称">
<div class="input-group-btn">
<ul class="dropdown-menu dropdown-menu-right" role="menu">
</ul>
</div>
</div>
</div>
<div class="footer_btn">
<button type="button" class="btn btn-success" onclick="save()">保存</button>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: bootstrap-fileinput-js" />
<th:block th:include="include :: bootstrap-suggest-js" />
<script th:inline="javascript">
var prefix2 = ctx + "local";
var platformUrl = [[${platformUrl}]];
let couponId = '';
let showId = '';
let showName = '';
$(function () {
couponId = getUrlParms('couponId')
function getUrlParms(name){
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)
return unescape(r[2]);
return null;
}
console.log(couponId, 'dasdasdasd')
$(".storeList").bsSuggest({
idField: 'roadShowId', // data.value 的第几个数据,作为input输入框的内容
keyField: 'title', // data.value 的第几个数据,作为input输入框的内容
allowNoKeyword: false, //是否允许无关键字时请求数据
showBtn:false,
multiWord: true, //以分隔符号分割的多关键字支持
hideOnSelect: true,
getDataMethod: "url", //获取数据的方式,总是从 URL 获取
effectiveFields: ['title'],
url: '/kylin/performances/roadShow/getList?pageSize=10&pageNum=1&title=',
/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
processData: function (json) { // url 获取数据时,对数据的处理,作为 getData 的回调函数
console.log(json, '?????')
//字符串转化为 js 对象
let data = {};
data.value = json.rows
return data
}
}).on('onDataRequestSuccess', function (e, result) {
}).on('onSetSelectValue', function (e, selectedData,selectedRawData ) { // 当前行的所有值都能拿到
console.log(e, selectedData,selectedRawData, 'dsadasdas')
showId = selectedData.id;
showName = selectedData.key;
}).on('onUnsetSelectValue', function (e) {
});;
})
function save () {
let data = {
"couponId": couponId,
"idList": [
showId
],
"scope": 1
}
promiseMethods('/candy/coupon/mgt/relate', 'post', JSON.stringify(data), 'application/json').then((res) => {
layer.msg("关联成功!")
$.operate.successCallback(res);
}).catch(() => {
layer.msg("关联失败,请重试!")
$.operate.successCallback(res);
})
}
function promiseMethods(url,type,data,contentType) {
return new Promise((resolve,reject)=>{
$.ajax({
url,
type,
data,
contentType,
success:function(res) {
resolve(res);
}
})
})
}
</script>
</body>
</html>
package com.liquidnet.client.admin.zhengzai.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponRelateParam;
import com.liquidnet.service.candy.entity.CandyCouponRelate;
import java.util.List;
import java.util.Map;
/**
* <p>
* 券适用关联配置 服务类
* </p>
*
* @author liquidnet
* @since 2022-07-19
*/
public interface ICandyCouponRelateAdminService extends IService<CandyCouponRelate> {
/**
* 券适用关联配置
*
* @param couponRelateParam CandyMgtCouponRelateParam
* @return boolean
*/
AjaxResult relate(CandyMgtCouponRelateParam couponRelateParam);
/**
* 券适用关联巡演名称查询
*
* @param couponIdList List<String>
* @return Map<String, String>
*/
Map<String, String> queryRelateRoadshowName(List<String> couponIdList);
}
package com.liquidnet.client.admin.zhengzai.candy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRelateAdminService;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.candy.dto.CandyCouponRelateDto;
import com.liquidnet.service.candy.dto.admin.CandyMgtCouponRelateParam;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.entity.CandyCouponRelate;
import com.liquidnet.service.candy.mapper.CandyCouponRelateMapper;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.entity.KylinRoadShows;
import com.liquidnet.service.kylin.mapper.KylinRoadShowsMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
* 券适用关联配置 服务实现类
* </p>
*
* @author liquidnet
* @since 2022-07-19
*/
@Slf4j
@Service
public class CandyCouponRelateAdminServiceImpl extends ServiceImpl<CandyCouponRelateMapper, CandyCouponRelate> implements ICandyCouponRelateAdminService {
@Autowired
private CandyCouponRelateMapper candyCouponRelateMapper;
@Autowired
private KylinRoadShowsMapper kylinRoadShowsMapper;
@Autowired
private RedisDataSourceUtil redisDataSourceUtil;
@Autowired
private ICandyCouponAdminService candyCouponAdminService;
@Override
public AjaxResult relate(CandyMgtCouponRelateParam couponRelateParam) {
String couponId = couponRelateParam.getCouponId(), redisKey, loginName = ShiroUtils.getLoginName();
LambdaQueryWrapper<CandyCoupon> couponLambdaQueryWrapper = Wrappers.lambdaQuery();
couponLambdaQueryWrapper.eq(CandyCoupon::getCouponId, couponId);
couponLambdaQueryWrapper.eq(CandyCoupon::getState, 1);
CandyCoupon coupon = candyCouponAdminService.getOne(couponLambdaQueryWrapper);
if (null == coupon) return AjaxResult.warn("券不存在");
if (coupon.getCouType() != 101) return AjaxResult.warn("当前操作只支持优先券类型");
Integer scope = couponRelateParam.getScope();
switch (scope) {
case 1:
redisKey = KylinRedisConst.COUPON_ROADSHOWS.concat(couponId);
List<String> valList = (List<String>) redisDataSourceUtil.getRedisKylinUtil().get(redisKey);
if (!CollectionUtils.isEmpty(valList)) {
LambdaQueryWrapper<KylinRoadShows> kylinRoadShowsLambdaQueryWrapper = Wrappers.lambdaQuery();
kylinRoadShowsLambdaQueryWrapper.in(KylinRoadShows::getRoadShowsId, valList);
kylinRoadShowsLambdaQueryWrapper.select(KylinRoadShows::getRoadShowsId, KylinRoadShows::getTitle);
List<KylinRoadShows> kylinRoadShowsList = kylinRoadShowsMapper.selectList(kylinRoadShowsLambdaQueryWrapper);
StringBuilder stringBuffer = new StringBuilder();
for (KylinRoadShows kylinRoadShows : kylinRoadShowsList) {
stringBuffer.append(kylinRoadShows.getTitle()).append(";");
}
return AjaxResult.warn(String.format("该券已关联巡演:%s", stringBuffer));
}
break;
default:
return AjaxResult.warn("适用范围无效");
}
LocalDateTime now = LocalDateTime.now();
List<CandyCouponRelate> couponRelateList = new ArrayList<>();
List<String> idList = couponRelateParam.getIdList();
for (String id : idList) {
CandyCouponRelate couponRelate = new CandyCouponRelate();
couponRelate.setCouponId(couponId);
couponRelate.setBusiId(id);
couponRelate.setScope(scope);
couponRelate.setState(1);
couponRelate.setOperator(loginName);
couponRelate.setCreatedAt(now);
couponRelateList.add(couponRelate);
}
if (this.saveBatch(couponRelateList)) {
switch (scope) {
case 1:
redisDataSourceUtil.getRedisKylinUtil().set(redisKey, idList);
break;
}
return AjaxResult.success();
}
return AjaxResult.warn("操作失败");
}
@Override
public Map<String, String> queryRelateRoadshowName(List<String> couponIdList) {
try {
List<CandyCouponRelateDto> list = candyCouponRelateMapper.selectMultiForRoadshowName(couponIdList);
return list.stream().collect(Collectors.toMap(CandyCouponRelateDto::getCouponId, CandyCouponRelateDto::getBusiName));
} catch (Exception e) {
log.error("Ex.券关联巡演查询异常[couponIdList={}]", JsonUtils.toJson(couponIdList), e);
return CollectionUtil.mapStringString();
}
}
}
......@@ -67,7 +67,7 @@ public class TaobaoTicketUtils {
}
public boolean refundDamaiOrder(KylinOrderTicketVo orderData,KylinPerformanceVo vo) {
public boolean refundDamaiOrder(KylinOrderTicketVo orderData, KylinPerformanceVo vo) {
try {
int isSysDamai = 0;
for (int x = 0; x < vo.getTicketTimeList().size(); x++) {
......@@ -102,14 +102,15 @@ public class TaobaoTicketUtils {
} else {
orderTicketEntitiesKey = Long.valueOf(IDGenerator.getDamaiCode(item.getOrderTicketEntitiesId()).toString().concat("020"));
}
withdrawDamaiOrder(ticketTimesKey, orderTicketEntitiesKey);
if (item.getIsPayment() == 2) {
withdrawDamaiOrder(ticketTimesKey, orderTicketEntitiesKey);
}
}
return true;
}
return true;
}catch (Exception e){
log.info("REFUND DAMAI ERROR = {}",e);
} catch (Exception e) {
log.info("REFUND DAMAI ERROR = {}", e);
return false;
}
}
......
# begin-dev-这里是配置信息基本值
# begin-prod-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: prod
......@@ -7,7 +7,7 @@ liquidnet:
password: user123
eureka:
host: 172.17.207.189:7001
# end-dev-这里是配置信息基本值
# end-prod-这里是配置信息基本值
spring:
profiles:
......
# begin-dev-这里是配置信息基本值
# begin-test-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: test
......@@ -7,12 +7,7 @@ liquidnet:
password: user123
eureka:
host: 172.17.207.177:7001
#instance:
# prefer-ip-address: true
#host: eureka-test-0.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-1.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-2.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka
#host: 192.168.193.41:7001
# end-dev-这里是配置信息基本值
# end-test-这里是配置信息基本值
spring:
profiles:
......
# begin-yace-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: yace
security:
username: user
password: user123
eureka:
host: 172.17.121.251:7001
# end-yace-这里是配置信息基本值
spring:
profiles:
include: client-job
\ No newline at end of file
......@@ -117,6 +117,10 @@ public class IDGenerator {
return "ZXLNFTIMAGE" + nextTimeId();
}
public static String getXuperNftImageCosCode() {
return "XUPERNFTIMAGE" + nextTimeId();
}
public static String refundCode() {
return "RED" + nextTimeId();
}
......
......@@ -37,8 +37,12 @@ public abstract class AbstractRedisConfig {
public int totalDbs = 1;
public int stringTemplateDb = 1;
public Map<Integer, RedisTemplate<String, Object>> redisTemplateMap = new HashMap<>();
private StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
abstract String getHost();
abstract int getPort();
abstract String getPassword();
......@@ -51,13 +55,13 @@ public abstract class AbstractRedisConfig {
@PostConstruct
public void initRedisTemp() throws Exception {
log.info("############################################################");
log.info("###### START 初始化 Redis "+this.getClass().getSimpleName()+"连接池 START ######");
log.info("###### START 初始化 Redis{} "+this.getClass().getSimpleName()+"连接池 START ######", this.getHost());
if(StringUtils.isEmpty(getHost())||getHost().equalsIgnoreCase("null")){
log.info("无配置,不需要初始化!");
return;
}
defaultDb = this.getDbs().get(0);
if(this.getDbs().size()==2&&this.getDbs().get(1)!=null){
if(this.getDbs().size()>=2&&this.getDbs().get(1)!=null){
totalDbs = this.getDbs().get(1);
log.info("init totalDbs : {}",totalDbs);
for (int i = 0;i < totalDbs; i++) {
......@@ -69,6 +73,26 @@ public abstract class AbstractRedisConfig {
redisTemplateMap.put(defaultDb, getRedisTemplate(defaultDb));
}
log.info("###### END 初始化 Redis 连接池 END ######");
log.info("###### START 初始化 Redis-queue{} "+this.getClass().getSimpleName()+"连接池 START ######", this.getHost());
//初始化队列
LettuceConnectionFactory factory = null;
if(this.getDbs().size()==3){
stringTemplateDb = this.getDbs().get(2);
}else{
stringTemplateDb = totalDbs-1;
}
if(totalDbs==1){
log.info("###### 正在加载Redis-queue-db-" + defaultDb + " ######");
factory = getDbFactory(defaultDb);
}else{
log.info("###### 正在加载Redis-queue-db-" + (totalDbs-1) + " ######");
factory = getDbFactory(totalDbs-1);
}
stringRedisTemplate.setConnectionFactory(factory);
stringRedisTemplate.afterPropertiesSet();
log.info("###### END 初始化 Redis-queue 连接池 END ######");
}
private RedisTemplate<String, Object> getRedisTemplate(int dbNo) {
......@@ -127,20 +151,26 @@ public abstract class AbstractRedisConfig {
// }
public StringRedisTemplate getStringRedisTemplate(){
return stringRedisTemplate;
}
public StringRedisTemplate getDefaultStringRedisTemplate(){
if(StringUtils.isEmpty(getHost())||getHost().equalsIgnoreCase("null")){
log.info("无配置,不需要初始化!");
return null;
}
LettuceConnectionFactory factory = null;
if(totalDbs==1){
log.info("###### 正在加载Redis-stringTemplate-" + (defaultDb) + " ######");
factory = getDbFactory(defaultDb);
}else{
factory = getDbFactory(totalDbs-1);
log.info("###### 正在加载Redis-stringTemplate-" + (stringTemplateDb) + " ######");
factory = getDbFactory(stringTemplateDb);
}
StringRedisTemplate redisTemplate = new StringRedisTemplate();
redisTemplate.setConnectionFactory(factory);
redisTemplate.afterPropertiesSet();
return redisTemplate;
StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
stringRedisTemplate.setConnectionFactory(factory);
stringRedisTemplate.afterPropertiesSet();
return stringRedisTemplate;
}
private void setSerializer(RedisTemplate<String, Object> template) {
......
......@@ -42,7 +42,7 @@ public class RedisConfig extends AbstractRedisConfig{
@Bean
public StringRedisTemplate stringRedisTemplate() {
return this.getStringRedisTemplate();
return this.getDefaultStringRedisTemplate();
}
String getHost(){
......
......@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.config.AbstractRedisConfig;
import com.liquidnet.common.cache.redis.config.RedisAdamConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
......@@ -20,10 +21,17 @@ import org.springframework.stereotype.Component;
public final class RedisAdamUtil extends AbstractRedisUtil{
@Autowired
private RedisAdamConfig redisConfig;
@Value("${spring.profiles.active:prod}")
private String prefix;
@Override
public String fillingKey(String key) {
return prefix.equals("prod") ? key : prefix.concat(":").concat(key);
}
@Override
public int getDbs() {
log.info("redisAdamUtil.totalDbs===",redisConfig.totalDbs);
log.info("redisAdamUtil.totalDbs:{},prefix:{}===", redisConfig.totalDbs, prefix);
return redisConfig.totalDbs;
}
......
......@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.config.AbstractRedisConfig;
import com.liquidnet.common.cache.redis.config.RedisCandyConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
......@@ -19,10 +20,17 @@ import org.springframework.stereotype.Component;
public final class RedisCandyUtil extends AbstractRedisUtil{
@Autowired
private RedisCandyConfig redisConfig;
@Value("${spring.profiles.active:prod}")
private String prefix;
@Override
public String fillingKey(String key) {
return prefix.equals("prod") ? key : prefix.concat(":").concat(key);
}
@Override
public int getDbs() {
log.info("redisCandyUtil.totalDbs===",redisConfig.totalDbs);
log.info("redisCandyUtil.totalDbs:{},prefix:{}===", redisConfig.totalDbs, prefix);
return redisConfig.totalDbs;
}
......
......@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.config.AbstractRedisConfig;
import com.liquidnet.common.cache.redis.config.RedisDragonConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
......@@ -20,15 +21,20 @@ import org.springframework.stereotype.Component;
public final class RedisDragonUtil extends AbstractRedisUtil{
@Autowired
private RedisDragonConfig redisConfig;
@Value("${spring.profiles.active:prod}")
private String prefix;
@Override
public String fillingKey(String key) {
return prefix.equals("prod") ? key : prefix.concat(":").concat(key);
}
@Override
public int getDbs() {
log.info("redisDragonUtil.totalDbs===",redisConfig.totalDbs);
log.info("redisDragonUtil.totalDbs:{},prefix:{}===", redisConfig.totalDbs, prefix);
return redisConfig.totalDbs;
}
@Override
AbstractRedisConfig getRedisConfig() {
return this.redisConfig;
......
......@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.config.AbstractRedisConfig;
import com.liquidnet.common.cache.redis.config.RedisGalaxyConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
......@@ -20,10 +21,17 @@ import org.springframework.stereotype.Component;
public final class RedisGalaxyUtil extends AbstractRedisUtil{
@Autowired
private RedisGalaxyConfig redisConfig;
@Value("${spring.profiles.active:prod}")
private String prefix;
@Override
public String fillingKey(String key) {
return prefix.equals("prod") ? key : prefix.concat(":").concat(key);
}
@Override
public int getDbs() {
log.info("RedisGalaxyUtil.totalDbs===",redisConfig.totalDbs);
log.info("RedisGalaxyUtil.totalDbs:{},prefix:{}===", redisConfig.totalDbs, prefix);
return redisConfig.totalDbs;
}
......
package com.liquidnet.common.cache.redis.util;
import com.liquidnet.common.cache.redis.config.AbstractRedisConfig;
import com.liquidnet.common.cache.redis.config.RedisAdamConfig;
import com.liquidnet.common.cache.redis.config.RedisGoblinConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
......@@ -21,10 +21,17 @@ import org.springframework.stereotype.Component;
public final class RedisGoblinUtil extends AbstractRedisUtil {
@Autowired
private RedisGoblinConfig redisConfig;
@Value("${spring.profiles.active:prod}")
private String prefix;
@Override
public String fillingKey(String key) {
return prefix.equals("prod") ? key : prefix.concat(":").concat(key);
}
@Override
public int getDbs() {
log.info("redisAdamUtil.totalDbs===", redisConfig.totalDbs);
log.info("redisAdamUtil.totalDbs:{},prefix:{}===", redisConfig.totalDbs, prefix);
return redisConfig.totalDbs;
}
......
......@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.config.AbstractRedisConfig;
import com.liquidnet.common.cache.redis.config.RedisKylinConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
......@@ -20,15 +21,20 @@ import org.springframework.stereotype.Component;
public final class RedisKylinUtil extends AbstractRedisUtil{
@Autowired
private RedisKylinConfig redisConfig;
@Value("${spring.profiles.active:prod}")
private String prefix;
@Override
public String fillingKey(String key) {
return prefix.equals("prod") ? key : prefix.concat(":").concat(key);
}
@Override
public int getDbs() {
log.info("redisKylinUtil.totalDbs===",redisConfig.totalDbs);
log.info("redisKylinUtil.totalDbs:{},prefix:{}===", redisConfig.totalDbs, prefix);
return redisConfig.totalDbs;
}
@Override
AbstractRedisConfig getRedisConfig() {
return this.redisConfig;
......
......@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.config.AbstractRedisConfig;
import com.liquidnet.common.cache.redis.config.RedisSweetConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
......@@ -20,10 +21,17 @@ import org.springframework.stereotype.Component;
public final class RedisSweetUtil extends AbstractRedisUtil{
@Autowired
private RedisSweetConfig redisConfig;
@Value("${spring.profiles.active:prod}")
private String prefix;
@Override
public String fillingKey(String key) {
return prefix.equals("prod") ? key : prefix.concat(":").concat(key);
}
@Override
public int getDbs() {
log.info("redisSweetUtil.totalDbs===",redisConfig.totalDbs);
log.info("redisSweetUtil.totalDbs:{},prefix:{}===", redisConfig.totalDbs, prefix);
return redisConfig.totalDbs;
}
......
......@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.config.AbstractRedisConfig;
import com.liquidnet.common.cache.redis.config.RedisConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
......@@ -20,10 +21,17 @@ import org.springframework.stereotype.Component;
public final class RedisUtil extends AbstractRedisUtil{
@Autowired
private RedisConfig redisConfig;
@Value("${spring.profiles.active:prod}")
private String prefix;
@Override
public String fillingKey(String key) {
return prefix.equals("prod") ? key : prefix.concat(":").concat(key);
}
@Override
public int getDbs() {
// log.info("redisConfig.totalDbs===",redisConfig.totalDbs);
log.info("redisConfig.totalDbs:{},prefix:{}===", redisConfig.totalDbs, prefix);
return redisConfig.totalDbs;
}
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-common-third</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-common-third-xuper</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-base</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-cache-redis</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>jakarta.validation</groupId>-->
<!-- <artifactId>jakarta.validation-api</artifactId>-->
<!-- </dependency>-->
<!-- 百度超级链-->
<dependency>
<groupId>com.baidu.xuper</groupId>
<artifactId>xasset-sdk-java</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>com.baidu.xuper</groupId>
<artifactId>xuper-java-sdk</artifactId>
<version>0.2.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>4.1.59.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-bom</artifactId>
<version>2020.0.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
\ No newline at end of file
package com.liquidnet.common.third.xuper.biz;
import com.baidu.xasset.auth.XchainAccount;
import com.baidu.xasset.client.xasset.Asset;
import com.baidu.xasset.common.config.Config;
import com.baidu.xuper.api.Account;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.logging.Logger;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: XuperCommonBiz
* @Package com.liquidnet.common.third.xuper.biz
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 17:59
*/
@Slf4j
@Component
public class XuperCommonBiz {
public Asset getAssetApi(){
long appId = 1182282645;
String ak = "3bdecf4afebd41849628389a20629ecc";
String sk = "3f901ef12d454b9c92ba2dde7c029140";
Config.XassetCliConfig cfg = new Config.XassetCliConfig();
cfg.setCredentials(appId, ak, sk);
cfg.setEndPoint("http://120.48.16.137:8360");
// 创建区块链账户
Account acc = XchainAccount.newXchainEcdsaAccount(XchainAccount.mnemStrgthStrong, XchainAccount.mnemLangEN);
// 初始化接口类
Asset handle = new Asset(cfg, Logger.getGlobal());
return handle;
}
}
package com.liquidnet.common.third.xuper.config;
import com.baidu.xasset.client.xasset.Asset;
import com.baidu.xasset.common.config.Config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import java.util.logging.Logger;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: Xuper配置
* @class: XuperConfig
* @Package com.liquidnet.common.third.xuper.config
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 17:42
*/
@Slf4j
@Configuration
public class XuperConfig {
@Value("${liquidnet.service.galaxy.xuper.appId:110381}")
private String appId;
@Value("${liquidnet.service.galaxy.xuper.accessKeyID:f3565df21f2b84d999dd7e2817ed80ea}")
private String accessKeyID;
@Value("${liquidnet.service.galaxy.xuper.secretAccessKey:b2ee53f6bb5555ee3582198fd52552cc}")
private String secretAccessKey;
@Value("${liquidnet.service.galaxy.xuper.nftApiUrl:http://120.48.16.137:8360}")
private String nftApiUrl;
@Value("${liquidnet.service.galaxy.xuper.nftPlatformMnemonic}")
private String nftPlatformMnemonic;
@Value("${liquidnet.service.galaxy.xuper.nftPlatformAddress}")
private String nftPlatformAddress;
private Asset asset = null;
private static Asset staticAsset = null;
private static Logger logger = Logger.getLogger(XuperConfig.class.getCanonicalName());
@PostConstruct
public void init(){
long _appId = Long.parseLong(appId);
//生产
String ak = accessKeyID;
String sk = secretAccessKey;
//测试环境
// String ak = MD5Utils.md5(accessKeyID);
// String sk = MD5Utils.md5(secretAccessKey);
Config.XassetCliConfig cfg = new Config.XassetCliConfig();
cfg.setCredentials(_appId, ak, sk);
cfg.setEndPoint(nftApiUrl);
// 初始化接口类
// Logger logger = Logger.getGlobal();
// logger.getParent().setLevel(Level.INFO);
log.info("logger.getParent().getLevel() === {}",logger.getParent().getLevel());
// logger.setLevel(Level.INFO);
log.info("logger.getLevel() === {}",logger.getLevel());
asset = new Asset(cfg, logger);
}
//
// static{
// long appId = 1182282645;
// String ak = "";
// String sk = "";
// String apiUrl = "http://120.48.16.137:8360";
//
// Config.XassetCliConfig cfg = new Config.XassetCliConfig();
// cfg.setCredentials(appId, ak, sk);
// cfg.setEndPoint(apiUrl);
//
// // 初始化接口类
// staticAsset = new Asset(cfg, Logger.getGlobal());
// }
public Asset getAsset(){
return this.asset;
}
public String getAppId() {
return appId;
}
public String getAccessKeyID() {
return accessKeyID;
}
public String getSecretAccessKey() {
return secretAccessKey;
}
public String getNftApiUrl() {
return nftApiUrl;
}
public String getNftPlatformMnemonic() {
return nftPlatformMnemonic;
}
public String getNftPlatformAddress() {
return nftPlatformAddress;
}
}
package com.liquidnet.common.third.xuper.constant;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: XuperConstant
* @Package com.liquidnet.common.third.xuper.constant
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/6/22 11:49
*/
public class XuperConstant {
}
package com.liquidnet.common.third.xuper.constant;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: XuperEnum
* @Package com.liquidnet.common.third.xuper.constant
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/6/22 11:50
*/
public class XuperEnum {
/**
* 资产分类。1:艺术品 2:收藏品 3:门票 4:酒店
*/
public enum assetTypeEnum{
ARTWORK("1","艺术品"),
COLLECTION("2","收藏品"),
TICKETS("3","门票"),
HOTEL("4","酒店");
private String code;
private String message;
assetTypeEnum(String code, String message) {
this.code = code;
this.message = message;
}
public assetTypeEnum getEnumByCode(String code){
assetTypeEnum[] arry = assetTypeEnum.values();
for (int i = 0; i < arry.length; i++) {
if (arry[i].getCode().equals(code)) {
return arry[i];
}
}
return null;
}
public String getCode() {
return code;
}
}
/**
* 资产发行状态 1:初始 3:发行中 4:发行成功 5:冻结中 6:已冻结 7:封禁中 8:已封禁
*/
public enum AssetPublishStatusEnum{
INIT("1","初始"),
PUBLISHING("3","发行中"),
PUBLISH_SUCCESS("4","发行成功"),
FREEZING("5","冻结中"),
BANNEDING("6","封禁中"),
BANNEDED("7","已封禁");
private String code;
private String message;
AssetPublishStatusEnum(String code, String message) {
this.code = code;
this.message = message;
}
public AssetPublishStatusEnum getEnumByCode(String code){
AssetPublishStatusEnum[] arry = AssetPublishStatusEnum.values();
for (int i = 0; i < arry.length; i++) {
if (arry[i].getCode().equals(code)) {
return arry[i];
}
}
return null;
}
public String getCode() {
return code;
}
public String getMessage(){
return message;
}
}
/**
* 资产授予状态 0:已上链 1:授予中 4:转移中 5: 核销中 6: 已核销 10:异常详情参考错误码和状态码
*/
public enum AssetGrantStatusEnum{
GRANT_SUCCESS("0","已上链"),
GRANTING("1","授予中"),
TRANSFERING("4","转移中"),
CANCELING("5","核销中"),
CANCELED("6","已核销"),
OTHER_ERROR("10","异常详情参考错误码和状态码");
private String code;
private String message;
AssetGrantStatusEnum(String code, String message) {
this.code = code;
this.message = message;
}
public AssetGrantStatusEnum getEnumByCode(String code){
AssetGrantStatusEnum[] arry = AssetGrantStatusEnum.values();
for (int i = 0; i < arry.length; i++) {
if (arry[i].getCode().equals(code)) {
return arry[i];
}
}
return null;
}
public String getCode() {
return code;
}
public String getMessage(){
return message;
}
}
}
package com.liquidnet.common.third.xuper.constant;
import java.util.Arrays;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: XuperErrorEnum
* @Package com.liquidnet.common.third.xuper.constant
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/6/21 14:09
*/
public enum XuperErrorEnum {
SECCESS("0","成功"),
FAILURE("1","失败"),
SYSTEM_ERROR("SYS0010001", "系统异常,请联系管理员"),
SERVER_INNER_ERROR("SYS0010002", "系统内部错误"),
SERVER_ERROR("SYS0010003", "服务不可用,调用后端服务失败"),
INVALID_PARAM_ERROR("XUPER0010001", "参数错误"),
GENERATE_KEYPAIR_ERROR("XUPER0010002", "生成公私钥错误"),
SIGN_ERROR("XUPER0010003", "签名错误"),
VERIFY_ERROR("XUPER0010004", "验签错误"),
ENCRYPT_ERROR("XUPER0010005", "加密数据错误"),
DECODE_ERROR("XUPER0010006", "解密数据错误"),
IMAGE_CHECK_ERROR("XUPER0010007", "图片内容检测未通过"),
PARAM_FORMAT_ERROR("XUPER0010008", "参数格式错误"),
ORDER_NOT_FOUND_ERROR("XUPER0010009", "此编号未查到对应信息"),
UPLOAD_TEMP_SECRET("XUPER0010010", "生成素材上传临时密钥失败");
private String code;
private String msg;
XuperErrorEnum(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() { return this.code; }
public String getMsg() { return this.msg; }
public static String errorMsg(String content) {
XuperErrorEnum err = Arrays.<XuperErrorEnum>asList(values()).stream().filter(errorEnum -> errorEnum.getCode().equals(content)).findFirst().orElse(SERVER_INNER_ERROR);
return err.getMsg();
}
}
package com.liquidnet.common.third.xuper.dto;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 获取访问BOS临时STS凭证
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
public class Xuper000CreateAccountReqDto implements Serializable {
/**
* 创建资产账户地址
*/
private String addr;
/**
* 创建资产账户私钥签名
*/
private String sign;
/**
* 创建资产账户公钥
*/
private String pkey;
/**
* 随机数
*/
private Integer nonce;
private static final Xuper000CreateAccountReqDto obj = new Xuper000CreateAccountReqDto();
public static Xuper000CreateAccountReqDto getNew() {
try {
return (Xuper000CreateAccountReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper000CreateAccountReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 获取访问BOS临时STS凭证
* @class: Xuper001GetStokenRespDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper000CreateAccountRespDto {
private String pubKeyStr;
private String priKeyStr;
private String address;
private String mnemonic;
private static final Xuper000CreateAccountRespDto obj = new Xuper000CreateAccountRespDto();
public static Xuper000CreateAccountRespDto getNew() {
try {
return (Xuper000CreateAccountRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper000CreateAccountRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 获取访问BOS临时STS凭证
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper001GetStokenReqDto implements Serializable {
/**
* 助记词
*/
private String mnemonic;
// /**
// * 创建资产账户地址
// */
// private String addr;
// /**
// * 创建资产账户私钥签名,内容为:msg = Sprintf(“%d”, nonce),sign = XassetSignECDSA(account, msg)
// */
// private String sign;
// /**
// * 创建资产账户公钥
// */
// private String pkey;
// /**
// * 随机数,可用sdk内置算法gen_nonce()生成
// */
// private Integer nonce;
private static final Xuper001GetStokenReqDto obj = new Xuper001GetStokenReqDto();
public static Xuper001GetStokenReqDto getNew() {
try {
return (Xuper001GetStokenReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper001GetStokenReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 获取访问BOS临时STS凭证
* @class: Xuper001GetStokenRespDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper001GetStokenRespDto {
/**
* 后端生成,用于问题反馈,建议业务日志纪录
*/
public long requestId;
/**
* 错误码 0为成功,其他可参考常用错误码
*/
public int errNo;
/**
* 错误信息
*/
public String errMsg;
/**
* 获取的临时授权的bos信息
*/
public AccessInfo accessInfo;
@Data
public static class AccessInfo {
/**
* 存储空间
*/
@JSONField(
name = "bucket"
)
public String bucket;
/**
* 访问域名
*/
@JSONField(
name = "endpoint"
)
public String endpoint;
/**
* 文件路径
*/
@JSONField(
name = "object_path"
)
public String objectPath;
/**
* 访问密钥公钥
*/
@JSONField(
name = "access_key_id"
)
public String accessKeyId;
/**
* 访问密钥私钥
*/
@JSONField(
name = "secret_access_key"
)
public String secretAccessKey;
/**
* 临时有权的token,有效期为30min
*/
@JSONField(
name = "session_token"
)
public String sessionToken;
/**
* 鉴权生效开始时间
*/
@JSONField(
name = "createTime"
)
public LocalDateTime createTime;
/**
* 鉴权失效时间
*/
@JSONField(
name = "expiration"
)
public LocalDateTime expiration;
}
private static final Xuper001GetStokenRespDto obj = new Xuper001GetStokenRespDto();
public static Xuper001GetStokenRespDto getNew() {
try {
return (Xuper001GetStokenRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper001GetStokenRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 创造数字资产
* @class: Xuper002CreateAssetReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper002CreateAssetReqDto {
/**
* 助记词
*/
private String mnemonic;
/**
* 资产碎片数量,小于1和大于200000代表不做库存限制
*/
private Integer amount;
/**
* 藏品显示售卖价格,单位为分
*/
private Long price;
/**
* (可选)业务侧用户标记,必要时请安全处理后设置
*/
private Long userId;
/**
* (可选)要存证的资产文件sm3散列值,如有多个文件逐个计算hash值后合并计算最终hash值
*/
private String fileHash;
/**
* 资产分类。1:艺术品 2:收藏品 3:门票 4:酒店
*/
private Integer assetCate;
/**
* 资产名称,小于30个字节
*/
private String title;
/**
* 资产缩略图。bos上传的图片,格式支持:”jpg”, “jpeg”, “png”, “bmp”, “webp”, “heic”。参数格式bos_v1://{bucket}/{object}/{width}_{height}
*/
private String thumb;
/**
* 短文字描述,小于300个字节
*/
private String shortDesc;
/**
* (可选)资产详情介绍长图。bos上传的图片,格式支持:”jpg”, “jpeg”, “png”, “bmp”, “webp”, “heic”。参数格式bos_v1://{bucket}/{object}/{width}_{height}
*/
private String imgDesc;
/**
* 资产原始文件。比如图片,图片本身就是资产。格式bos_v1://{bucket}/{object} ,文件大小<10M。文件名采用文件md5值,为了正常展现,需要正确携带文件后缀
*/
private String assetUrl;
/**
* (可选)长文字描述,小于1200个字节
*/
private String longDesc;
/**
* (可选)资产额外描述信息json字符串。比如标签
*/
private String assetExt;
/**
* (可选)资产组id。用于关联业务层酒店/店铺id
*/
private Long groupId;
private static final Xuper002CreateAssetReqDto obj = new Xuper002CreateAssetReqDto();
public static Xuper002CreateAssetReqDto getNew() {
try {
return (Xuper002CreateAssetReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper002CreateAssetReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 创造数字资产
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper002CreateAssetRespDto {
public long requestId;
public int errNo;
public String errMsg;
public long assetId;
private static final Xuper002CreateAssetRespDto obj = new Xuper002CreateAssetRespDto();
public static Xuper002CreateAssetRespDto getNew() {
try {
return (Xuper002CreateAssetRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper002CreateAssetRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 修改未发行的数字资产
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper003AlterAssetReqDto {
/**
* 资产id
*/
private Long assetId;
/**
* 助记词
*/
private String mnemonic;
/**
* 资产碎片数量,小于1和大于200000代表不做库存限制
*/
private Integer amount;
/**
* 藏品显示售卖价格,单位为分
*/
private Long price;
/**
* (可选)业务侧用户标记,必要时请安全处理后设置
*/
private Long userId;
/**
* (可选)要存证的资产文件sm3散列值,如有多个文件逐个计算hash值后合并计算最终hash值
*/
private String fileHash;
/**
* 资产分类。1:艺术品 2:收藏品 3:门票 4:酒店
*/
private Integer assetCate;
/**
* 资产名称,小于30个字节
*/
private String title;
/**
* 资产缩略图。bos上传的图片,格式支持:”jpg”, “jpeg”, “png”, “bmp”, “webp”, “heic”。参数格式bos_v1://{bucket}/{object}/{width}_{height}
*/
private String thumb;
/**
* 短文字描述,小于300个字节
*/
private String shortDesc;
/**
* (可选)资产详情介绍长图。bos上传的图片,格式支持:”jpg”, “jpeg”, “png”, “bmp”, “webp”, “heic”。参数格式bos_v1://{bucket}/{object}/{width}_{height}
*/
private String imgDesc;
/**
* 资产原始文件。比如图片,图片本身就是资产。格式bos_v1://{bucket}/{object} ,文件大小<10M。文件名采用文件md5值,为了正常展现,需要正确携带文件后缀
*/
private String assetUrl;
/**
* (可选)长文字描述,小于1200个字节
*/
private String longDesc;
/**
* (可选)资产额外描述信息json字符串。比如标签
*/
private String assetExt;
/**
* (可选)资产组id。用于关联业务层酒店/店铺id
*/
private Long groupId;
private static final Xuper003AlterAssetReqDto obj = new Xuper003AlterAssetReqDto();
public static Xuper003AlterAssetReqDto getNew() {
try {
return (Xuper003AlterAssetReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper003AlterAssetReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 修改未发行的数字资产
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper003AlterAssetRespDto {
public long requestId;
public int errNo;
public String errMsg;
private static final Xuper003AlterAssetRespDto obj = new Xuper003AlterAssetRespDto();
public static Xuper003AlterAssetRespDto getNew() {
try {
return (Xuper003AlterAssetRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper003AlterAssetRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 链上发行数字资产
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper004PublishAssetReqDto {
/**
* 资产id
*/
private Long assetId;
/**
* 助记词
*/
private String mnemonic;
private static final Xuper004PublishAssetReqDto obj = new Xuper004PublishAssetReqDto();
public static Xuper004PublishAssetReqDto getNew() {
try {
return (Xuper004PublishAssetReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper004PublishAssetReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 链上发行数字资产
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper004PublishAssetRespDto {
public long requestId;
public int errNo;
public String errMsg;
private static final Xuper004PublishAssetRespDto obj = new Xuper004PublishAssetRespDto();
public static Xuper004PublishAssetRespDto getNew() {
try {
return (Xuper004PublishAssetRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper004PublishAssetRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 查询数字商品详情
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper005QueryAssetReqDto {
/**
* 资产id
*/
private Long assetId;
private static final Xuper005QueryAssetReqDto obj = new Xuper005QueryAssetReqDto();
public static Xuper005QueryAssetReqDto getNew() {
try {
return (Xuper005QueryAssetReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper005QueryAssetReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import com.alibaba.fastjson.JSONArray;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 查询数字商品详情
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper005QueryAssetRespDto {
private long requestId;
private int errNo;
private String errMsg;
private AssetMeta meta;
@Data
public static class AssetMeta {
private long assetId;
private int assetCate;
private String title;
private Thumb[] thumb;
private String shortDesc;
private String longDesc;
private JSONArray imgDesc;
private JSONArray assetUrl;
private int amount;
private long price;
private int status;
private String assetExt;
private String createAddr;
private long groupId;
private String txId;
}
@Data
public static class Thumb {
private Urls urls;
private String width;
private String height;
}
@Data
public static class Urls {
private String icon;//60
private String url1;//140
private String url2;//360
private String url3;//850
}
private static final Xuper005QueryAssetRespDto obj = new Xuper005QueryAssetRespDto();
public static Xuper005QueryAssetRespDto getNew() {
try {
return (Xuper005QueryAssetRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper005QueryAssetRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 拉取账户创造资产列表
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper006ListAssetByAddrReqDto {
//资产状态。0:全部 1:初试 3:发行中 4:发行成功。默认 0(可选)
private Integer status = 0;
//要拉取的区块链账户地址
private String addr;
//要拉取页数,第一页为1
private Integer page = 1;
//每页拉取数量,默认20,最大50(可选)
private Integer limit = 20;
private static final Xuper006ListAssetByAddrReqDto obj = new Xuper006ListAssetByAddrReqDto();
public static Xuper006ListAssetByAddrReqDto getNew() {
try {
return (Xuper006ListAssetByAddrReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper006ListAssetByAddrReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
import java.util.ArrayList;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 拉取账户创造资产列表
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper006ListAssetByAddrRespDto {
public long requestId;
public int errNo;
public String errMsg;
public ArrayList list;
public int totalCnt;
private static final Xuper006ListAssetByAddrRespDto obj = new Xuper006ListAssetByAddrRespDto();
public static Xuper006ListAssetByAddrRespDto getNew() {
try {
return (Xuper006ListAssetByAddrRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper006ListAssetByAddrRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 授予数字商品碎片
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper007GrantShardReqDto {
/**
* 资产id
*/
private Long assetId;
/**
* 资产创建者助记词
*/
private String mnemonic;
/**
* 资产碎片id,需要确保asset下唯一,可以使用有序编号,也可以使用随机整数,默认使用sdk提供GenRandId方法生成
*/
private Long shardId;
/**
* 资产接收者区块链地址
*/
private String toAddr;
/**
* (可选)资产接收者用户id
*/
private Long toUserId;
/**
* (可选)碎片价格
*/
private Long price;
private static final Xuper007GrantShardReqDto obj = new Xuper007GrantShardReqDto();
public static Xuper007GrantShardReqDto getNew() {
try {
return (Xuper007GrantShardReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper007GrantShardReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 授予数字商品碎片
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper007GrantShardRespDto {
private long requestId;
private int errNo;
private String errMsg;
public long assetId;
public long shardId;
private static final Xuper007GrantShardRespDto obj = new Xuper007GrantShardRespDto();
public static Xuper007GrantShardRespDto getNew() {
try {
return (Xuper007GrantShardRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper007GrantShardRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
import org.aspectj.lang.annotation.DeclareAnnotation;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 转移资产碎片(暂不开放)
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper008TransferShardReqDto {
/**
* 资产id
*/
private Long assetId;
/**
* 资产拥有者助记词
*/
private String mnemonic;
/**
* 资产碎片id,需要确保asset下唯一,可以使用有序编号,也可以使用随机整数,默认使用sdk提供GenRandId方法生成
*/
private Long shardId;
/**
* 资产接收者区块链地址
*/
private String toAddr;
/**
* (可选)资产接收者用户id
*/
private Long toUserId;
/**
* (可选)碎片价格
*/
private Long price;
private static final Xuper008TransferShardReqDto obj = new Xuper008TransferShardReqDto();
public static Xuper008TransferShardReqDto getNew() {
try {
return (Xuper008TransferShardReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper008TransferShardReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 转移资产碎片(暂不开放)
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper008TransferShardRespDto {
private long requestId;
private int errNo;
private String errMsg;
private static final Xuper008TransferShardRespDto obj = new Xuper008TransferShardRespDto();
public static Xuper008TransferShardRespDto getNew() {
try {
return (Xuper008TransferShardRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper008TransferShardRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 碎片核销
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
public class Xuper009ConsumeReqDto {
private static final Xuper009ConsumeReqDto obj = new Xuper009ConsumeReqDto();
public static Xuper009ConsumeReqDto getNew() {
try {
return (Xuper009ConsumeReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper009ConsumeReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 碎片核销
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper009ConsumeRespDto {
private long requestId;
private int errNo;
private String errMsg;
private static final Xuper009ConsumeRespDto obj = new Xuper009ConsumeRespDto();
public static Xuper009ConsumeRespDto getNew() {
try {
return (Xuper009ConsumeRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper009ConsumeRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 查询指定资产碎片信息
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper010QuerySdsReqDto {
/**
* 资产id
*/
private Long assetId;
/**
* 碎片id
*/
private Long shardId;
private static final Xuper010QuerySdsReqDto obj = new Xuper010QuerySdsReqDto();
public static Xuper010QuerySdsReqDto getNew() {
try {
return (Xuper010QuerySdsReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper010QuerySdsReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 查询指定资产碎片信息
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper010QuerySdsRespDto {
public long requestId;
public int errNo;
public String errMsg;
public ShardMeta meta;
@Data
public static class ShardMeta {
public long assetId;
public long shardId;
public String ownerAddr;
public long uid;
public long price;
public int status;
public String txId;
public ShardAssetInfo assetInfo;
public long ctime;
}
@Data
public static class ShardAssetInfo {
public String title;
public int assetCate;
public Thumb[] thumb;
public String shortDesc;
public String createAddr;
public long groupId;
}
@Data
public static class Thumb {
private Urls urls;
private String width;
private String height;
}
@Data
public static class Urls {
private String icon;
private String url1;
private String url2;
private String url3;
}
private static final Xuper010QuerySdsRespDto obj = new Xuper010QuerySdsRespDto();
public static Xuper010QuerySdsRespDto getNew() {
try {
return (Xuper010QuerySdsRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper010QuerySdsRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 分页拉取指定账户持有碎片列表
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper011ListSdsByAddrReqDto {
//要拉取的区块链账户地址
private String addr = "";
//要拉取页数,第一页为1
private int page = 1;
//每页拉取数量,默认20,最大50(可选)
private int limit = 50;
private static final Xuper011ListSdsByAddrReqDto obj = new Xuper011ListSdsByAddrReqDto();
public static Xuper011ListSdsByAddrReqDto getNew() {
try {
return (Xuper011ListSdsByAddrReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper011ListSdsByAddrReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
import java.util.ArrayList;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 分页拉取指定账户持有碎片列表
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper011ListSdsByAddrRespDto {
public long requestId;
public int errNo;
public String errMsg;
public ArrayList<ShardMeta> list;
public int totalCnt;
@Data
public static class ShardMeta {
public long assetId;
public long shardId;
public String ownerAddr;
public long uid;
public long price;
public int status;
public String txId;
public ShardAssetInfo assetInfo;
public long ctime;
}
@Data
public static class ShardAssetInfo {
public String title;
public int assetCate;
public Thumb[] thumb;
public String shortDesc;
public String createAddr;
public long groupId;
}
@Data
public static class Thumb {
private Urls urls;
private String width;
private String height;
}
@Data
public static class Urls {
private String icon;
private String url1;
private String url2;
private String url3;
}
private static final Xuper011ListSdsByAddrRespDto obj = new Xuper011ListSdsByAddrRespDto();
public static Xuper011ListSdsByAddrRespDto getNew() {
try {
return (Xuper011ListSdsByAddrRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper011ListSdsByAddrRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 分页拉取指定资产已授予碎片列表
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper012ListSdsByAstReqDto {
//资产id
private long assetId;
//分页游标,首页设置空字符串,后面的用上页返回的cursor值
private String cursor = "";
//每页拉取数量,默认20,最多50(可选)
private int limit = 20;
private static final Xuper012ListSdsByAstReqDto obj = new Xuper012ListSdsByAstReqDto();
public static Xuper012ListSdsByAstReqDto getNew() {
try {
return (Xuper012ListSdsByAstReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper012ListSdsByAstReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
import java.util.ArrayList;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 分页拉取指定资产已授予碎片列表
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper012ListSdsByAstRespDto {
public long requestId;
public int errNo;
public String errMsg;
public ArrayList<ShardAssetInfo> list;
public int hasMore;
public String cursor;
@Data
public static class ShardAssetInfo {
public long shardId;
public String ownerAddr;
public long price;
public String txId;
public String groupId;
public long ctime;
}
private static final Xuper012ListSdsByAstRespDto obj = new Xuper012ListSdsByAstRespDto();
public static Xuper012ListSdsByAstRespDto getNew() {
try {
return (Xuper012ListSdsByAstRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper012ListSdsByAstRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 拉取数字商品历史登记记录
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper013HistoryReqDto {
//资产id
private long assetId;
//要拉取页数,第一页为1
private int page = 1;
//每页拉取数量,默认20,最大50(可选)
private int limit = 20;
private static final Xuper013HistoryReqDto obj = new Xuper013HistoryReqDto();
public static Xuper013HistoryReqDto getNew() {
try {
return (Xuper013HistoryReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper013HistoryReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
import java.util.ArrayList;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 拉取数字商品历史登记记录
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper013HistoryRespDto {
public long requestId;
public int errNo;
public String errMsg;
public ArrayList<AssetInfo> list;
public int totalCnt;
@Data
public static class AssetInfo {
public long assetId;
public long type;
public long shardId;
public long price;
public String txId;
public String from;
public String to;
public long ctime;
}
private static final Xuper013HistoryRespDto obj = new Xuper013HistoryRespDto();
public static Xuper013HistoryRespDto getNew() {
try {
return (Xuper013HistoryRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper013HistoryRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 冻结发行成功资产,后续授予操作将被禁止
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper014FreezeAssetReqDto {
/**
* 资产id
*/
private Long assetId;
/**
* 助记词
*/
private String mnemonic;
private static final Xuper014FreezeAssetReqDto obj = new Xuper014FreezeAssetReqDto();
public static Xuper014FreezeAssetReqDto getNew() {
try {
return (Xuper014FreezeAssetReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper014FreezeAssetReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 冻结发行成功资产,后续授予操作将被禁止
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper014FreezeAssetRespDto {
public long requestId;
public int errNo;
public String errMsg;
private static final Xuper014FreezeAssetRespDto obj = new Xuper014FreezeAssetRespDto();
public static Xuper014FreezeAssetRespDto getNew() {
try {
return (Xuper014FreezeAssetRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper014FreezeAssetRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 获取商品存证信息
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class Xuper015GetEvidenceInfoReqDto {
long assetId;
private static final Xuper015GetEvidenceInfoReqDto obj = new Xuper015GetEvidenceInfoReqDto();
public static Xuper015GetEvidenceInfoReqDto getNew() {
try {
return (Xuper015GetEvidenceInfoReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper015GetEvidenceInfoReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 获取商品存证信息
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
public class Xuper015GetEvidenceInfoRespDto {
private static final Xuper015GetEvidenceInfoRespDto obj = new Xuper015GetEvidenceInfoRespDto();
public static Xuper015GetEvidenceInfoRespDto getNew() {
try {
return (Xuper015GetEvidenceInfoRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new Xuper015GetEvidenceInfoRespDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import com.liquidnet.commons.lang.util.JsonUtils;
import java.io.Serializable;
/**
* REDIRECT(-1),
* SUCCESS(0),
* FAIL(1),
* UNAUTH(2),
*/
public class XuperResponseDto<T> implements Serializable, Cloneable {
private static final long serialVersionUID = 8377276776600901982L;
private String code;
private String message;
private T data;
public boolean isSuccess() {
return this.code.equals("0");
}
private XuperResponseDto() {
}
private XuperResponseDto(String code) {
this.code = code;
}
private XuperResponseDto(String code, T data) {
this.code = code;
this.data = data;
}
private XuperResponseDto(String code, String message) {
this.code = code;
this.message = message;
}
private XuperResponseDto(String code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public String getCode() {
return code;
}
public String getMessage() {
return message;
}
/**
* <p>Getter for the field <code>data</code>.</p>
*
* @return a T object.
*/
public T getData() {
return data;
}
public static <Object> XuperResponseDto<Object> success() {
return new XuperResponseDto<>("0");
}
public static <Object> XuperResponseDto<Object> success(Object data) {
return new XuperResponseDto<>("0", data);
}
public static <Object> XuperResponseDto<Object> failure() {
return new XuperResponseDto<>("1", "系统繁忙,请稍后再试");
}
public static <Object> XuperResponseDto<Object> failure(String message) {
return new XuperResponseDto<>("1", message);
}
public static <Object> XuperResponseDto<Object> failure(String code, String message) {
return new XuperResponseDto<>(code, message);
}
public static <Object> XuperResponseDto<Object> failure(String code, String message, Object data) {
return new XuperResponseDto<>(code, message, data);
}
public <T> T getParseData(Class<T> clazz) {
try {
if (getData() != null) {
return JsonUtils.fromJson(JsonUtils.toJson(getData()), clazz);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public String toJson() {
return JsonUtils.toJson(this);
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 获取访问BOS临时STS凭证
* @class: Xuper001GetStokenReqDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class XuperUploadFileReqDto implements Serializable {
/**
* 助记词
*/
private String mnemonic;
private String fileName;
private String filePath;
private byte[] dataByte;
private String property;
private static final XuperUploadFileReqDto obj = new XuperUploadFileReqDto();
public static XuperUploadFileReqDto getNew() {
try {
return (XuperUploadFileReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new XuperUploadFileReqDto();
}
}
}
package com.liquidnet.common.third.xuper.dto;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 获取访问BOS临时STS凭证
* @class: Xuper001GetStokenRespDto
* @Package com.liquidnet.common.third.xuper.dto
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 15:10
*/
@Data
public class XuperUploadFileRespDto {
public String link;
public GetStokenResp resp;
public RequestRes res;
@Data
public static class GetStokenResp {
public long requestId;
public int errNo;
public String errMsg;
public AccessInfo accessInfo;
}
@Data
public static class AccessInfo {
public String bucket;
public String endPoint;
public String objectPath;
public String accessKeyId;
public String secreteAccessKey;
public String sessionToken;
public String createTime;
public String expiration;
}
@Data
public static class RequestRes {
public int httpCode;
public String reqUrl;
public String traceId;
public String body;
}
private static final XuperUploadFileRespDto obj = new XuperUploadFileRespDto();
public static XuperUploadFileRespDto getNew() {
try {
return (XuperUploadFileRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new XuperUploadFileRespDto();
}
}
}
package com.liquidnet.common.third.xuper.exception;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: Xupter
* @Package com.liquidnet.common.third.xuper.exception
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/6/15 16:05
*/
public class XupterException extends RuntimeException{
private static final long serialVersionUID = -3916918823313768482L;
private String code;
private String msg;
public XupterException(String code, String msg) {
super(msg);
this.code = code;
this.msg = msg;
}
public XupterException(String code, String msg, Throwable t) {
super(msg, t);
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
package com.liquidnet.common.third.xuper.util;
import com.baidu.xasset.auth.XchainAccount;
import com.baidu.xasset.client.base.BaseDef.*;
import com.baidu.xasset.client.xasset.Asset;
import com.baidu.xasset.client.xasset.XassetDef.*;
import com.baidu.xasset.common.config.Config.*;
import com.baidu.xuper.api.Account;
import java.util.logging.Logger;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestXuperChain
* @Package com.liquidnet.common.third.xuper.util
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/4/18 13:21
*/
public class TestXuperChain {
public static void main(String[] args) {
// 配置AK/SK
long appId = 0;
String ak = "12121212121212121";
String sk = "1212121212122";
XassetCliConfig cfg = new XassetCliConfig();
cfg.setCredentials(appId, ak, sk);
cfg.setEndPoint("http://120.48.16.137:8360");
// 创建区块链账户
Account acc = XchainAccount.newXchainEcdsaAccount(XchainAccount.mnemStrgthStrong, XchainAccount.mnemLangEN);
// 初始化接口类
Asset handle = new Asset(cfg, Logger.getGlobal());
// 调用方法
Resp<GetStokenResp> result = handle.getStoken(acc);
System.out.println(result);
}
}
# prod
host=https://sdk.zxinchain.com
# user learn
#host=https://testsdk.zxchain.net:9087
# test
#host=https://testsdk.zxchain.net:9086
#host=http://127.0.0.1:7082
connectTimeout=30000
connectionRequestTimeout=10000
socketTimeout=6000
#是否使用默认证书库(jdk)
isDefaultTrustStore=true
trustStore=/home/dev/access.keystore
trustStorePassword=123456
proxy=false
proxy.host=182.140.146.66
proxy.port=10081
xl.cert.path=/api/v1/spider/sdk/certificate
xl.ev.path=/api/v1/spider/evidence
xl.ev.query.path=/api/v1/spider/sdk/evidence
sdk.version=java-v2.0.0
\ No newline at end of file
# 新增转发请求接口路由
xl.al.manager.request.fun = /api/v1/spider/sdk/req/forward
# 新增文件转发接口路由
xl.al.manager.file.request.fun = /api/v1/spider/sdk/req/file/forward
......@@ -15,5 +15,6 @@
<module>liquidnet-common-third-shumei</module>
<module>liquidnet-common-third-zxlnft</module>
<module>liquidnet-common-third-antchain</module>
<module>liquidnet-common-third-xuper</module>
</modules>
</project>
......@@ -13,8 +13,8 @@ liquidnet:
refresh-ttl: 525600
blacklist_grace_period: 5
mysql:
urlHostAndPort: 39.107.71.112:3308
username: root
urlHostAndPort: java-test.mysql.polardb.rds.aliyuncs.com:3306
username: zhengzai
password: Zhengzai@rd2U#
# rabbitmq:
# host: rabbitmq.zhengzai.tv
......@@ -32,52 +32,52 @@ liquidnet:
disable: false
redis:
kylin:
dbs: 0,16
database: 15
host: 39.107.71.112
port: 6379
password: 3Xa%8p
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
goblin:
dbs: 0,16
database: 15
host: 39.107.71.112
port: 6379
password: 3Xa%8p
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
slime:
dbs: 0,16
database: 15
host: 39.107.71.112
port: 6379
password: 3Xa%8p
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
dragon:
dbs: 0,16
database: 15
host: 39.107.71.112
port: 6379
password: 3Xa%8p
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
sweet:
dbs: 0,16
database: 15
host: 39.107.71.112
port: 6379
password: 3Xa%8p
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
adam:
dbs: 0,16
database: 15
host: 39.107.71.112
port: 6379
password: 3Xa%8p
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
candy:
dbs: 0,16
database: 15
host: 39.107.71.112
port: 6379
password: 3Xa%8p
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
mongodb:
host: 39.107.71.112:27017
port: 27017
user: admin
pwd: S&y$6d*JwJ
host: dds-2ze23697d93111041932-pub.mongodb.rds.aliyuncs.com:3717,dds-2ze23697d93111042720-pub.mongodb.rds.aliyuncs.com:3717
port: 3717
user: root
pwd: Sy6d*JwJ
service:
adam:
url-pay:
......@@ -125,9 +125,8 @@ liquidnet:
chime:
url: http://devchime.zhengzai.tv
galaxy:
url: http://devgalaxy.zhengzai.tv
temp-file-path: /data/galaxy/tempFilePath
router: zxinchain,eth
router: zxinchain,xuper
zxlnft:
walletSdkUrl: http://127.0.0.1:30505
nftApiUrl: https://nfttest2.zxinchain.com
......@@ -137,6 +136,13 @@ liquidnet:
nftPlatformPubKey: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb0VjejFVQmdpMERRZ0FFbFNTQk00MHJIZlJFa0NjWUxlRm1RZzE0SHlIcAp5Rk9uSktzblFqbDBCL2JXOStFWnZPblArNW0vMEdkUCtXM29yeG5Kd3p5OHNoYS9OYkQ4QVBmNXlBPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==
nftPlatformPriKey: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR1RBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUJITTlWQVlJdEJIa3dkd0lCQVFRZ1VhbTVWM2V6ZFZJTmNoZ28KVDRKL28zMHArMGJCd3hQWUZFL01FdEU3MTZhZ0NnWUlLb0VjejFVQmdpMmhSQU5DQUFTVkpJRXpqU3NkOUVTUQpKeGd0NFdaQ0RYZ2ZJZW5JVTZja3F5ZENPWFFIOXRiMzRSbTg2Yy83bWIvUVowLzViZWl2R2NuRFBMeXlGcjgxCnNQd0E5L25JCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
platformIdentification: 4e40d5f6f65aa8ec9bc33ab424e0167e68783bbe95d4d265086314d749808eef
xuper:
nftApiUrl: http://120.48.16.137:8360
appId: 110353
accessKeyID: 4e99daf33303efc8c822daa90c925389
secretAccessKey: ac77c0e94424edd98ea8a23b342e877a
nftPlatformMnemonic: person lucky trophy wall kangaroo body bounce coach unable sister second goat guitar virus tree security acoustic ankle kiss deputy sunny message weapon believe
nftPlatformAddress: YqsYxgBSP74piDhNQHTjWMH9wXnXxZbt8
other:
ticketSystemUrl: http://dev-report.capapiao.com
appId: 11920532
......@@ -149,6 +155,7 @@ liquidnet:
addresses: 39.107.71.112:8090
client:
admin:
# phpPayUrl: http://devorder.zhengzai.tv
phpMallUrl: https://devmall.zhengzai.tv
platformUrl: https://devplatform.zhengzai.tv
h5Url: https://devm.zhengzai.tv
......@@ -228,5 +235,4 @@ liquidnet:
expressType: 2 # 默认顺丰特快
depositumInfo: 演出纸质票
#application-dev-end
#application-dev-end
\ No newline at end of file
......@@ -13,8 +13,8 @@ liquidnet:
refresh-ttl: 525600
blacklist_grace_period: 5
mysql:
urlHostAndPort: 39.107.71.112:3308
username: root
urlHostAndPort: java-test.mysql.polardb.rds.aliyuncs.com:3306
username: zhengzai
password: Zhengzai@rd2U#
# rabbitmq:
# host: 101.201.127.58
......@@ -32,52 +32,52 @@ liquidnet:
disable: false
redis:
kylin:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
database: 251
dbs: 0,256,251
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
goblin:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
database: 251
dbs: 0,256,251
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
slime:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
database: 251
dbs: 0,256,251
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
dragon:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
database: 251
dbs: 0,256,251
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
sweet:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
database: 251
dbs: 0,256,251
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
adam:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
database: 251
dbs: 0,256,251
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
candy:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
database: 251
dbs: 0,256,251
host: r-2zeucai3yj2t0f4nmzpd.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
mongodb:
host: 39.107.71.112:27017
port: 27017
user: admin
pwd: S&y$6d*JwJ
host: dds-2ze23697d93111041932-pub.mongodb.rds.aliyuncs.com:3717,dds-2ze23697d93111042720-pub.mongodb.rds.aliyuncs.com:3717
port: 3717
user: root
pwd: Sy6d*JwJ
service:
adam:
url-pay:
......@@ -125,9 +125,8 @@ liquidnet:
chime:
url: http://testchime.zhengzai.tv
galaxy:
# url: http://testgalaxy.zhengzai.tv
temp-file-path: /data/galaxy/tempFilePath
router: zxinchain,eth
router: zxinchain,xuper
zxlnft:
walletSdkUrl: http://127.0.0.1:30505
nftApiUrl: https://nfttest2.zxinchain.com
......@@ -137,6 +136,13 @@ liquidnet:
nftPlatformPubKey: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb0VjejFVQmdpMERRZ0FFbFNTQk00MHJIZlJFa0NjWUxlRm1RZzE0SHlIcAp5Rk9uSktzblFqbDBCL2JXOStFWnZPblArNW0vMEdkUCtXM29yeG5Kd3p5OHNoYS9OYkQ4QVBmNXlBPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==
nftPlatformPriKey: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR1RBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUJITTlWQVlJdEJIa3dkd0lCQVFRZ1VhbTVWM2V6ZFZJTmNoZ28KVDRKL28zMHArMGJCd3hQWUZFL01FdEU3MTZhZ0NnWUlLb0VjejFVQmdpMmhSQU5DQUFTVkpJRXpqU3NkOUVTUQpKeGd0NFdaQ0RYZ2ZJZW5JVTZja3F5ZENPWFFIOXRiMzRSbTg2Yy83bWIvUVowLzViZWl2R2NuRFBMeXlGcjgxCnNQd0E5L25JCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
platformIdentification: 4e40d5f6f65aa8ec9bc33ab424e0167e68783bbe95d4d265086314d749808eef
xuper:
nftApiUrl: http://120.48.16.137:8360
appId: 110353
accessKeyID: 4e99daf33303efc8c822daa90c925389
secretAccessKey: ac77c0e94424edd98ea8a23b342e877a
nftPlatformMnemonic: person lucky trophy wall kangaroo body bounce coach unable sister second goat guitar virus tree security acoustic ankle kiss deputy sunny message weapon believe
nftPlatformAddress: YqsYxgBSP74piDhNQHTjWMH9wXnXxZbt8
other:
ticketSystemUrl: http://dev-report.capapiao.com/
appId: 11920532
......
config-server-git: yace
#application-yace-begin
#这里后续添加公共参数值
liquidnet:
secret:
passwd-salt: NTZiYzg4
security:
username: user
password: user123
jwt:
secret: qZHglvNP0n0aOOckHiQXq5JMD468J4eG
expire-ttl: 43200
refresh-ttl: 525600
blacklist_grace_period: 5
mysql:
urlHostAndPort: pc-2ze0t10lf4x6j29fb.mysql.polardb.rds.aliyuncs.com
username: zhengzai
password: Zhengzai@rd2U#
# rabbitmq:
# host: 101.201.127.58
# port: 5672
# username: admin
# password: admin
# virtual-host: liquidnet
# adam:
# host: rabbitmq.zhengzai.tv
# port: 5672
# username: admin
# password: admin
# virtual-host: liquidnet
knife4j:
disable: false
redis:
kylin:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
goblin:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
slime:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
dragon:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
sweet:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
adam:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
candy:
database: 255
dbs: 0,256
host: r-2zeucai3yj2t0f4nmz.redis.rds.aliyuncs.com
port: 6380
password: 7eoK2XehKqF1
mongodb:
host: dds-2ze23697d93111041.mongodb.rds.aliyuncs.com:3717,dds-2ze23697d93111042.mongodb.rds.aliyuncs.com:3717
port: 3717
user: root
pwd: Sy6d*JwJ
service:
adam:
url-pay:
pay: http://ttestdragon.zhengzai.tv/dragon/pay/dragonPay
check: http://ttestdragon.zhengzai.tv/dragon/pay/checkOrder
callback: http://ttestadam.zhengzai.tv/adam/member/order/callback
url: http://ttestadam.zhengzai.tv
kylin:
url-pay:
pay: http://ttestdragon.zhengzai.tv/dragon/pay/dragonPay
check: http://ttestdragon.zhengzai.tv/dragon/pay/checkOrder
localUrl: http://ttestkylin.zhengzai.tv/kylin/order/syncOrder
url: http://ttestkylin.zhengzai.tv/kylin
candy:
url: http://ttestcandy.zhengzai.tv/candy
goblin:
url: http://ttestgoblin.zhengzai.tv
stone:
url: http://tteststone.zhengzai.tv/stone
smile:
url: http://ttestsmile.zhengzai.tv
order:
url: http://ttestorder.zhengzai.tv
url-pay:
pay: http://ttestdragon.zhengzai.tv/dragon/pay/dragonPay
applePay: http://ttestdragon.zhengzai.tv/dragon/notify/apple/purchase
check: http://ttestdragon.zhengzai.tv/dragon/pay/checkOrder
localUrl: http://ttestorder.zhengzai.tv/order/order/syncOrder
goblinUrl: http://ttestorder.zhengzai.tv/order/goblin/syncOrder
goblinRefundUrl: http://ttestorder.zhengzai.tv/order/goblin/refundSyncOrder
nftPayNotify: https://ttestorder.zhengzai.tv/order/goblin/nft/syncOrder
nftRefundNotify: https://ttestorder.zhengzai.tv/order/goblin/nft/refundSyncOrder
dragon:
notifyUrl: https://ttestdragon.zhengzai.tv/dragon
urls:
refundApply: https://ttestdragon.zhengzai.tv/dragon/refund/refundSingle
refundResult: https://ttestdragon.zhengzai.tv/dragon/refund/refund/alipay/result
platform:
urls:
ticketRefundNotify: https://ttestplatform.zhengzai.tv/platform/refund/callback
memberRefundNotify: https://ttestplatform.zhengzai.tv/platform/amorder/callack/refund
url: http://ttestplatform.zhengzai.tv
sweet:
url: http://ttestsweet.zhengzai.tv
chime:
url: http://ttestchime.zhengzai.tv
galaxy:
temp-file-path: /data/galaxy/tempFilePath
router: zxinchain,xuper
zxlnft:
walletSdkUrl: http://127.0.0.1:30505
nftApiUrl: https://nfttest2.zxinchain.com
appId: 220214000100001
appKey: 82b561110c4b4f4d91ad2a2b0d5b7908
nftPlatformAddress: ZXa66c8a684727d0f9aaa434044362aa8a18b61bb4
nftPlatformPubKey: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb0VjejFVQmdpMERRZ0FFbFNTQk00MHJIZlJFa0NjWUxlRm1RZzE0SHlIcAp5Rk9uSktzblFqbDBCL2JXOStFWnZPblArNW0vMEdkUCtXM29yeG5Kd3p5OHNoYS9OYkQ4QVBmNXlBPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==
nftPlatformPriKey: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR1RBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUJITTlWQVlJdEJIa3dkd0lCQVFRZ1VhbTVWM2V6ZFZJTmNoZ28KVDRKL28zMHArMGJCd3hQWUZFL01FdEU3MTZhZ0NnWUlLb0VjejFVQmdpMmhSQU5DQUFTVkpJRXpqU3NkOUVTUQpKeGd0NFdaQ0RYZ2ZJZW5JVTZja3F5ZENPWFFIOXRiMzRSbTg2Yy83bWIvUVowLzViZWl2R2NuRFBMeXlGcjgxCnNQd0E5L25JCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
platformIdentification: 4e40d5f6f65aa8ec9bc33ab424e0167e68783bbe95d4d265086314d749808eef
xuper:
nftApiUrl: http://120.48.16.137:8360
appId: 110353
accessKeyID: 44b69914377ed77613824781da9e8653
secretAccessKey: 99b946f9dba244e7a3d5bc7a1862ef39
nftPlatformMnemonic: person lucky trophy wall kangaroo body bounce coach unable sister second goat guitar virus tree security acoustic ankle kiss deputy sunny message weapon believe
nftPlatformAddress: YqsYxgBSP74piDhNQHTjWMH9wXnXxZbt8
other:
ticketSystemUrl: http://dev-report.capapiao.com/
appId: 11920532
secret: 0854C2FFE6BED88E1E21E7F5BAF988CDF9D81D38
slime:
url: http://ttestslime.zhengzai.tv
executor-main:
xxl:
admin:
addresses: 172.17.121.250:8090
client:
admin:
# phpPayUrl: http://ttestdragon.zhengzai.tv
phpMallUrl: https://ttestmall.zhengzai.tv
platformUrl: https://ttestplatform.zhengzai.tv
h5Url: https://ttestm.zhengzai.tv
aliyun:
dypns:
accessKeyId: LTAI4FvoqxJUT5T1ydJSyhUn
accessKeySecret: WNCgFn9dSjnoDdej2YTvR0v0216WWU
dysms:
accessKeyId: LTAI5tHt7yvm97G8zxackcMK
accessKeySecret: xC3i5qEptJ3JIIRaYLaKvhk4gVASfl
oss:
imgUrl: "https://img.zhengzai.tv/"
appUrl: "https://app.zhengzai.tv/"
endpoint: http://oss-cn-hangzhou.aliyuncs.com
accessKeyId: LTAI4FxrURzMvvu9reFgwY5o
accessKeySecret: Ym5tfAxOf2zX20MgjikLI3Wz3tlwVV
wechat:
service:
zhengzai:
appid: wx3498304dda39c5a1
secret: a1307fab0a5f2380086a7c636f7339ea
token: tftipg1427706847
aeskey: LwVpmpuOcl7Mi3mtfQgBol11MsmMCATIqbPgHrEpDzx
zhengzaiActivity:
appid: wx769aa9167bef9ce2
secret: bebccc204b9472ba41661372b197eb81
modernsky:
appid: wx6bf7999941a06d15
secret: a12012b31307a539719dbe4d137ca45a
test:
appid: wxc7edcfdcb28e21f6
secret: 554c17cea13dffa05c290e7e722665ac
applet:
zhengzai:
appid: wx4732efeaa2b08086
secret: 94562c1f92da1b6cb3f1327c8842c6d3
strawberry:
appid: wx08b852ade69f8019
secret: 0aac285fd1fbc6aa4e562b7ad81de392
five:
appid: wxb5371c8c95226957
secret: a6a909ae1ab25a79d4addd154eafbb7e
mdsk:
appid: wxc278ddf30f515188
secret: 21c0daa5d7d323f86c70c29db3c0613b
airship:
appid: wxefc896f987d72d32
secret: 24c80a734c1fdb316a31a5be1f3606d5
smile:
appid: wx4956704fe769112c
secret: 645919ab4a4c48eb8e73aea38752adfa
umeng:
ios:
appkey: 54fe819bfd98c546b50004f0
appMasterSecret: fsls9dv1vwyemqdv9lidjfppk37nmssa
android:
appkey: 5c6cf6cbb465f592e4000bae
appMasterSecret: dmsho74wlpd1hp7vrwp9bjehzwo29pza
easemob:
api-url: https://a1.easemob.com
org-name: 1106210901175651
app-name: demo
client-id: YXA6x4Xs7cYDQcOv6BPuM3hUDA
client-secret: YXA6olr2qaW65xlkFixS81kiWnplrW4
express:
shunfeng:
url: "https://butler-dev.sit.sf-express.com"
sk: 21e9a70f677a2bf29dfa2b3bead4f018
appid: 557104628450889728
custid: "7551234567"
jCompany: 北京正在映画互联网有限公司
jContact: 摩登天空票务部
jTel: 4006310750
jProvince: 北京
jCity: 北京市
jAddress: 朝阳区广渠路1号北京市商业储运公司3-12号 摩登天空
expressType: 2 # 默认顺丰特快
depositumInfo: 演出纸质票
#application-yace-end
\ No newline at end of file
# begin-yace-这里是配置信息基本值
liquidnet:
info:
port: 7099
context:
name: liquidnet-client-admin-web
logfile:
path: /data/logs
name: client-admin-web
level: info
mysql:
master:
urlHostAndPort: ${liquidnet.mysql.urlHostAndPort}
username: ${liquidnet.mysql.username}
password: ${liquidnet.mysql.password}
database-name: yace_ln_scene
slave:
urlHostAndPort: ${liquidnet.mysql.urlHostAndPort}
username: ${liquidnet.mysql.username}
password: ${liquidnet.mysql.password}
database-name: yace_ln_scene
mongodb:
sslEnabled: false
database: yace_ln_scene
# end-yace-这里是配置信息基本值
\ No newline at end of file
liquidnet:
info:
context: /
name: liquidnet-client-job
port: 8090
logfile:
name: client-job
path: /data/logs
max-history: 7
level: info
mysql:
database-name: yace_ln_clijob
\ No newline at end of file
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