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

Commit 775c1e60 authored by GaoHu's avatar GaoHu

Merge remote-tracking branch 'origin/dev_nft_411' into dev_nft_411

parents 37bb6953 8c71bb3c
...@@ -51,6 +51,9 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable { ...@@ -51,6 +51,9 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable {
@NotBlank(message = "展示文件类型不能为空") @NotBlank(message = "展示文件类型不能为空")
@Pattern(regexp = "\\b(1|2|3)\\b", message = "展示文件类型参数无效") @Pattern(regexp = "\\b(1|2|3)\\b", message = "展示文件类型参数无效")
private String watchType; private String watchType;
@ApiModelProperty(position = 17, required = false, value = "展示预览图[256],展示文件为视频或模型时必传", example = "https://img.zhengzai.tv/files/2020/08/31/5f4c75095e9bc.png")
@Size(max = 256, message = "展示预览图URL过长")
private String skuWatchPic;
@ApiModelProperty(position = 18, required = false, value = "我的藏品展示文件类型[1-图片|2-视频|3-模型],`unbox=0`时必传", example = "1") @ApiModelProperty(position = 18, required = false, value = "我的藏品展示文件类型[1-图片|2-视频|3-模型],`unbox=0`时必传", example = "1")
@Pattern(regexp = "\\b(1|2|3)\\b", message = "我的藏品展示文件类型参数无效") @Pattern(regexp = "\\b(1|2|3)\\b", message = "我的藏品展示文件类型参数无效")
private String materialType; private String materialType;
...@@ -153,6 +156,7 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable { ...@@ -153,6 +156,7 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable {
initVo.setSkuPic(this.getSkuPic()); initVo.setSkuPic(this.getSkuPic());
initVo.setSkuWatch(this.getSkuWatch()); initVo.setSkuWatch(this.getSkuWatch());
initVo.setWatchType(this.getWatchType()); initVo.setWatchType(this.getWatchType());
initVo.setSkuWatchPic(this.getSkuWatchPic());
initVo.setPrice(this.getPrice()); initVo.setPrice(this.getPrice());
initVo.setProductId(this.getProductId()); initVo.setProductId(this.getProductId());
initVo.setPriceMember(this.getPrice()); initVo.setPriceMember(this.getPrice());
...@@ -227,6 +231,7 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable { ...@@ -227,6 +231,7 @@ public class GoblinStoreMgtDigitalGoodsAddSkuParam implements Serializable {
updateVo.setSkuPic(this.getSkuPic());//1 updateVo.setSkuPic(this.getSkuPic());//1
updateVo.setSkuWatch(this.getSkuWatch());//1 updateVo.setSkuWatch(this.getSkuWatch());//1
updateVo.setWatchType(this.getWatchType());//1 updateVo.setWatchType(this.getWatchType());//1
updateVo.setSkuWatchPic(this.getSkuWatchPic());//1
updateVo.setPrice(this.getPrice());//1 updateVo.setPrice(this.getPrice());//1
updateVo.setPriceMember(this.getPrice());// updateVo.setPriceMember(this.getPrice());//
updateVo.setIntro(this.getIntro());//1 updateVo.setIntro(this.getIntro());//1
......
...@@ -37,6 +37,8 @@ public class GoblinGoodsSkuInfoVo implements Serializable, Cloneable { ...@@ -37,6 +37,8 @@ public class GoblinGoodsSkuInfoVo implements Serializable, Cloneable {
private String skuWatch; private String skuWatch;
@ApiModelProperty(position = 15, value = "展示文件类型[1-图片|2-视频|3-模型]") @ApiModelProperty(position = 15, value = "展示文件类型[1-图片|2-视频|3-模型]")
private String watchType; private String watchType;
@ApiModelProperty(position = 15, value = "展示预览图片URL[256]")
private String skuWatchPic;
@ApiModelProperty(position = 15, value = "素材原始文件类型[1-图片|2-视频|3-模型]") @ApiModelProperty(position = 15, value = "素材原始文件类型[1-图片|2-视频|3-模型]")
private String materialType; private String materialType;
@ApiModelProperty(position = 15, value = "素材原始文件URL") @ApiModelProperty(position = 15, value = "素材原始文件URL")
......
...@@ -31,8 +31,10 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable { ...@@ -31,8 +31,10 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
private String subtitle; private String subtitle;
@ApiModelProperty(position = 15, value = "单品详情展示文件URL[256]") @ApiModelProperty(position = 15, value = "单品详情展示文件URL[256]")
private String skuWatch; private String skuWatch;
@ApiModelProperty(position = 15, value = "展示文件类型[1-图片|2-视频|3-模型]") @ApiModelProperty(position = 16, value = "展示文件类型[1-图片|2-视频|3-模型]")
private String watchType; private String watchType;
@ApiModelProperty(position = 17, value = "展示预览图URL[256]")
private String skuWatchPic;
@ApiModelProperty(position = 18, value = "单品库存") @ApiModelProperty(position = 18, value = "单品库存")
private Integer skuStock; private Integer skuStock;
...@@ -103,6 +105,7 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable { ...@@ -103,6 +105,7 @@ public class GoblinNftGoodsSkuInfoVo implements Serializable, Cloneable {
this.setSubtitle(source.getSubtitle()); this.setSubtitle(source.getSubtitle());
this.setSkuWatch(source.getSkuWatch()); this.setSkuWatch(source.getSkuWatch());
this.setWatchType(source.getWatchType()); this.setWatchType(source.getWatchType());
this.setSkuWatchPic(source.getSkuWatchPic());
this.setSkuStock(source.getSkuStock()); this.setSkuStock(source.getSkuStock());
this.setPrice(source.getPrice()); this.setPrice(source.getPrice());
this.setPriceV(source.getPriceV()); this.setPriceV(source.getPriceV());
......
...@@ -67,6 +67,11 @@ public class GoblinGoodsSku implements Serializable { ...@@ -67,6 +67,11 @@ public class GoblinGoodsSku implements Serializable {
*/ */
private String watchType; private String watchType;
/**
* 展示预览图片
*/
private String skuWatchPic;
/** /**
* ISBN,针对CD/图书等 * ISBN,针对CD/图书等
*/ */
......
...@@ -14,6 +14,7 @@ alter table goblin_goods add publisher varchar(100) null comment '发行方' aft ...@@ -14,6 +14,7 @@ alter table goblin_goods add publisher varchar(100) null comment '发行方' aft
alter table goblin_goods_sku add sku_type tinyint default 0 not null comment '商品类型[0-常规|1-数字藏品]' after sku_no; alter table goblin_goods_sku add sku_type tinyint default 0 not null comment '商品类型[0-常规|1-数字藏品]' after sku_no;
alter table goblin_goods_sku add sku_watch varchar(256) null comment '展示文件URL' after sku_pic; alter table goblin_goods_sku add sku_watch varchar(256) null comment '展示文件URL' after sku_pic;
alter table goblin_goods_sku add watch_type char null comment '展示文件类型[1-图片|2-视频|3-模型]' after sku_watch; alter table goblin_goods_sku add watch_type char null comment '展示文件类型[1-图片|2-视频|3-模型]' after sku_watch;
alter table goblin_goods_sku add sku_watch_pic varchar(256) null comment '展示预览图片' after watch_type;
alter table goblin_goods_sku add intro varchar(256) null comment '简介' after weight; alter table goblin_goods_sku add intro varchar(256) null comment '简介' after weight;
alter table goblin_goods_sku add details text null comment '详情' after intro; alter table goblin_goods_sku add details text null comment '详情' after intro;
......
...@@ -925,11 +925,19 @@ public class GoblinStoreMgtGoodsController { ...@@ -925,11 +925,19 @@ public class GoblinStoreMgtGoodsController {
if (StringUtils.isEmpty(mgtDigitalGoodsEditSkuParam.getOpeningTime())) { if (StringUtils.isEmpty(mgtDigitalGoodsEditSkuParam.getOpeningTime())) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "盲盒开启时间不能为空"); return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "盲盒开启时间不能为空");
} }
if ("23".contains(mgtDigitalGoodsEditSkuParam.getWatchType())) {
if (StringUtils.isBlank(mgtDigitalGoodsEditSkuParam.getSkuWatchPic())) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "展示预览图不能为空");
}
} else {
mgtDigitalGoodsEditSkuParam.setSkuWatchPic(null);
}
break; break;
} }
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("商品管理:商品编辑:SKU编辑-数字藏品:[GoblinStoreMgtGoodsEditSkuParam={}]", JsonUtils.toJson(mgtDigitalGoodsEditSkuParam)); log.debug("商品管理:商品编辑:SKU编辑-数字藏品:[GoblinStoreMgtGoodsEditSkuParam={}]", JsonUtils.toJson(mgtDigitalGoodsEditSkuParam));
} }
mgtDigitalGoodsEditSkuParam.setUnbox(mgtGoodsSkuInfoVo.getUnbox());
if (goblinstoreMgtGoodsService.digitalGoodsEditSku(currentUid, mgtDigitalGoodsEditSkuParam, mgtGoodsInfoVo)) { if (goblinstoreMgtGoodsService.digitalGoodsEditSku(currentUid, mgtDigitalGoodsEditSkuParam, mgtGoodsInfoVo)) {
if ("0".equals(mgtGoodsSkuInfoVo.getUnbox()) && !StringUtils.equals(mgtDigitalGoodsEditSkuParam.getSkuAppear(), mgtGoodsSkuInfoVo.getSkuAppear())) { if ("0".equals(mgtGoodsSkuInfoVo.getUnbox()) && !StringUtils.equals(mgtDigitalGoodsEditSkuParam.getSkuAppear(), mgtGoodsSkuInfoVo.getSkuAppear())) {
goblinRedisUtils.delGoblinNftGoodsInfoListVo(); goblinRedisUtils.delGoblinNftGoodsInfoListVo();
...@@ -1066,6 +1074,13 @@ public class GoblinStoreMgtGoodsController { ...@@ -1066,6 +1074,13 @@ public class GoblinStoreMgtGoodsController {
if (goodsInfoVo.getSpuType() == 0) { if (goodsInfoVo.getSpuType() == 0) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "无效操作,该商品非数字藏品"); return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "无效操作,该商品非数字藏品");
} }
if ("23".contains(mgtDigitalGoodsAddSkuParam.getWatchType())) {
if (StringUtils.isBlank(mgtDigitalGoodsAddSkuParam.getSkuWatchPic())) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "展示预览图不能为空");
}
} else {
mgtDigitalGoodsAddSkuParam.setSkuWatchPic(null);
}
BigDecimal hitRatio = mgtDigitalGoodsAddSkuParam.getHitRatio(); BigDecimal hitRatio = mgtDigitalGoodsAddSkuParam.getHitRatio();
if (null != hitRatio && hitRatio.scale() > 2) { if (null != hitRatio && hitRatio.scale() > 2) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "概率值只支持小数点后两位"); return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "概率值只支持小数点后两位");
......
...@@ -10,10 +10,7 @@ import com.liquidnet.service.goblin.dto.vo.*; ...@@ -10,10 +10,7 @@ import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.service.GoblinCouponService; import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.service.IGoblinNftGoodsAppService; import com.liquidnet.service.goblin.service.IGoblinNftGoodsAppService;
import com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService; import com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils; import com.liquidnet.service.goblin.util.*;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.ObjectUtil;
import com.liquidnet.service.goblin.util.QueueUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -46,6 +43,8 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -46,6 +43,8 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
@Autowired @Autowired
RedisUtil redisUtil; RedisUtil redisUtil;
@Autowired @Autowired
private GoblinOrderUtils goblinOrderUtils;
@Autowired
GoblinCouponService goblinCouponService; GoblinCouponService goblinCouponService;
@Autowired @Autowired
IGoblinGoodsAnticipateMgService goblinGoodsAnticipateMgService; IGoblinGoodsAnticipateMgService goblinGoodsAnticipateMgService;
...@@ -78,7 +77,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -78,7 +77,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo); GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo); nftGoodsSkuInfoVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
// 库存 // 库存
HashMap<String, Integer> stockHashMap = getIsStock(skuInfoVo.getSkuId(), skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList()); HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(skuInfoVo.getSkuId(), skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock")); nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock"));
// 写入列表 // 写入列表
skuList.add(nftGoodsSkuInfoVo); skuList.add(nftGoodsSkuInfoVo);
...@@ -99,7 +98,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -99,7 +98,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo); GoblinNftGoodsSpuInfoVo nftGoodsSpuInfoVo = GoblinNftGoodsSpuInfoVo.getNew().copy(goodsInfoVo);
goblinNftGoodsSkuListVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo); goblinNftGoodsSkuListVo.setGoblinNftGoodsSpuInfoVo(nftGoodsSpuInfoVo);
// 库存 // 库存
HashMap<String, Integer> stockHashMap = getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList()); HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
goblinNftGoodsSkuListVo.setIsStock(stockHashMap.get("isStock")); goblinNftGoodsSkuListVo.setIsStock(stockHashMap.get("isStock"));
// 写入列表 // 写入列表
skuList.add(goblinNftGoodsSkuListVo); skuList.add(goblinNftGoodsSkuListVo);
...@@ -135,7 +134,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -135,7 +134,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
GoblinNftGoodsDetailSpuInfoVo nftGoodsDetailSpuInfoVo = GoblinNftGoodsDetailSpuInfoVo.getNew().copy(goodsInfoVo); GoblinNftGoodsDetailSpuInfoVo nftGoodsDetailSpuInfoVo = GoblinNftGoodsDetailSpuInfoVo.getNew().copy(goodsInfoVo);
nftGoodsSkuInfoVo.setGoblinNftGoodsDetailSpuInfoVo(nftGoodsDetailSpuInfoVo); nftGoodsSkuInfoVo.setGoblinNftGoodsDetailSpuInfoVo(nftGoodsDetailSpuInfoVo);
// 库存 // 库存
HashMap<String, Integer> stockHashMap = getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList()); HashMap<String, Integer> stockHashMap = goblinOrderUtils.getIsStock(skuId, skuInfoVo.getUnbox(), skuInfoVo.getSoldoutStatus(), goodsInfoVo.getSkuIdList());
nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock")); nftGoodsSkuInfoVo.setIsStock(stockHashMap.get("isStock"));
// 总库存 // 总库存
if (skuInfoVo.getUnbox().equals("1")) { if (skuInfoVo.getUnbox().equals("1")) {
...@@ -149,34 +148,6 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -149,34 +148,6 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
} }
} }
// 判断是否售罄
private HashMap<String, Integer> getIsStock(String skuId, String unbox, String soldoutStatus, List<String> skuIdList) {
HashMap<String, Integer> returnMap = CollectionUtil.mapStringInteger();
Integer isStock = 0;
Integer totalStock = 0;
if (null == soldoutStatus || soldoutStatus.equals("0")) {// 未设置售罄 查询库存
int surplusStock = 0;
if (unbox.equals("0")) {// 不是盲盒
surplusStock = goblinRedisUtils.getSkuStock(null, skuId);
} else {
for (String skuIdItem : skuIdList) {// 盲盒计算所有sku库存总数
if (skuIdItem.equals(skuId)) {// 过滤自己
continue;
}
GoblinGoodsSkuInfoVo itemVo = goblinRedisUtils.getGoodsSkuInfoVo(skuIdItem);
surplusStock += goblinRedisUtils.getSkuAllStatusStock(itemVo);
totalStock += goblinRedisUtils.getSkuTotalStock(itemVo);
}
}
if (surplusStock > 0) {
isStock = 1;
}
}
returnMap.put("isStock", isStock);
returnMap.put("totalStock", totalStock);
return returnMap;
}
@Override @Override
public Boolean exchange(String code) { public Boolean exchange(String code) {
try { try {
......
...@@ -817,7 +817,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -817,7 +817,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> updateGoodsSkuObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
if ("1".equals(updateSkuInfoVo.getUnbox())) { if ("1".equals(mgtDigitalGoodsAddSkuParam.getUnbox())) {
BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO; BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO;
for (String skuIdStr : mgtGoodsInfoVo.getSkuIdList()) { for (String skuIdStr : mgtGoodsInfoVo.getSkuIdList()) {
GoblinGoodsSkuInfoVo skuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuIdStr); GoblinGoodsSkuInfoVo skuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuIdStr);
...@@ -840,9 +840,9 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -840,9 +840,9 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_edit_box_digital")); toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_edit_box_digital"));
updateGoodsSkuObjs.add(new Object[]{ updateGoodsSkuObjs.add(new Object[]{
updateSkuInfoVo.getName(), updateSkuInfoVo.getSubtitle(), updateSkuInfoVo.getSkuPic(), updateSkuInfoVo.getSkuWatch(), updateSkuInfoVo.getWatchType(), updateSkuInfoVo.getName(), updateSkuInfoVo.getSubtitle(), updateSkuInfoVo.getSkuPic(), updateSkuInfoVo.getSkuWatch(), updateSkuInfoVo.getWatchType(),
updateSkuInfoVo.getPrice(), updateSkuInfoVo.getPriceMember(), updateSkuInfoVo.getIntro(), updateSkuInfoVo.getDetails(), updateSkuInfoVo.getShelvesHandle(), updateSkuInfoVo.getSkuWatchPic(), updateSkuInfoVo.getPrice(), updateSkuInfoVo.getPriceMember(), updateSkuInfoVo.getIntro(), updateSkuInfoVo.getDetails(),
updateSkuInfoVo.getShelvesTime(), updateSkuInfoVo.getSaleStartTime(), updateSkuInfoVo.getOpeningTime(), updateSkuInfoVo.getUpdatedBy(), updateSkuInfoVo.getUpdatedAt(), updateSkuInfoVo.getShelvesHandle(), updateSkuInfoVo.getShelvesTime(), updateSkuInfoVo.getSaleStartTime(), updateSkuInfoVo.getOpeningTime(), updateSkuInfoVo.getUpdatedBy(),
skuId updateSkuInfoVo.getUpdatedAt(), skuId
}); });
} else { } else {
// String buyRoster = mgtDigitalGoodsAddSkuParam.getBuyRoster(); // String buyRoster = mgtDigitalGoodsAddSkuParam.getBuyRoster();
...@@ -1026,12 +1026,12 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -1026,12 +1026,12 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
LinkedList<Object[]> initGoodsSkuObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> initGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
initGoodsSkuObjs.add(new Object[]{ initGoodsSkuObjs.add(new Object[]{
skuId, spuId, initGoodsSkuInfoVo.getSkuNo(), initGoodsSkuInfoVo.getSkuType(), initGoodsSkuInfoVo.getName(), skuId, spuId, initGoodsSkuInfoVo.getSkuNo(), initGoodsSkuInfoVo.getSkuType(), initGoodsSkuInfoVo.getName(),
initGoodsSkuInfoVo.getSubtitle(), initGoodsSkuInfoVo.getSkuPic(), initGoodsSkuInfoVo.getSkuWatch(), initGoodsSkuInfoVo.getWatchType(), initGoodsSkuInfoVo.getStock(), initGoodsSkuInfoVo.getSubtitle(), initGoodsSkuInfoVo.getSkuPic(), initGoodsSkuInfoVo.getSkuWatch(), initGoodsSkuInfoVo.getWatchType(), initGoodsSkuInfoVo.getSkuWatchPic(),
initGoodsSkuInfoVo.getSkuStock(), initGoodsSkuInfoVo.getHitRatio(), initGoodsSkuInfoVo.getPrice(), initGoodsSkuInfoVo.getPriceV(), initGoodsSkuInfoVo.getProductId(), initGoodsSkuInfoVo.getStock(), initGoodsSkuInfoVo.getSkuStock(), initGoodsSkuInfoVo.getHitRatio(), initGoodsSkuInfoVo.getPrice(), initGoodsSkuInfoVo.getPriceV(),
initGoodsSkuInfoVo.getPriceMember(), initGoodsSkuInfoVo.getIntro(), initGoodsSkuInfoVo.getDetails(), initGoodsSkuInfoVo.getBuyFactor(), initGoodsSkuInfoVo.getBuyLimit(), initGoodsSkuInfoVo.getProductId(), initGoodsSkuInfoVo.getPriceMember(), initGoodsSkuInfoVo.getIntro(), initGoodsSkuInfoVo.getDetails(), initGoodsSkuInfoVo.getBuyFactor(),
initGoodsSkuInfoVo.getStoreId(), initGoodsSkuInfoVo.getShelvesHandle(), initGoodsSkuInfoVo.getShelvesTime(), initGoodsSkuInfoVo.getSaleStartTime(), initGoodsSkuInfoVo.getVirtualFlg(), initGoodsSkuInfoVo.getBuyLimit(), initGoodsSkuInfoVo.getStoreId(), initGoodsSkuInfoVo.getShelvesHandle(), initGoodsSkuInfoVo.getShelvesTime(), initGoodsSkuInfoVo.getSaleStartTime(),
initGoodsSkuInfoVo.getStatus(), initGoodsSkuInfoVo.getShelvesStatus(), initGoodsSkuInfoVo.getSkuAppear(), initGoodsSkuInfoVo.getSkuCanbuy(), initGoodsSkuInfoVo.getUnbox(), initGoodsSkuInfoVo.getVirtualFlg(), initGoodsSkuInfoVo.getStatus(), initGoodsSkuInfoVo.getShelvesStatus(), initGoodsSkuInfoVo.getSkuAppear(), initGoodsSkuInfoVo.getSkuCanbuy(),
initGoodsSkuInfoVo.getOpeningTime(), initGoodsSkuInfoVo.getShelvesAt(), uid, now initGoodsSkuInfoVo.getUnbox(), initGoodsSkuInfoVo.getOpeningTime(), initGoodsSkuInfoVo.getShelvesAt(), uid, now
}); });
toMqSqls.add(SqlMapping.get("goblin_goods_sku_nft.insert_for_digital")); toMqSqls.add(SqlMapping.get("goblin_goods_sku_nft.insert_for_digital"));
LinkedList<Object[]> initGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> initGoodsSkuNftObjs = CollectionUtil.linkedListObjectArr();
......
...@@ -2,14 +2,14 @@ package com.liquidnet.service.goblin.util; ...@@ -2,14 +2,14 @@ package com.liquidnet.service.goblin.util;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.adam.dto.vo.AdamRscPolymer01Vo; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.vo.AdamUserProfileVo; import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.param.BackCouponParam; import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.candy.vo.CandyCouponVo; import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyUseResultVo; import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import com.sun.org.apache.xpath.internal.operations.Bool;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -25,8 +25,6 @@ import java.util.List; ...@@ -25,8 +25,6 @@ import java.util.List;
@Slf4j @Slf4j
public class GoblinOrderUtils { public class GoblinOrderUtils {
@Value("${liquidnet.service.adam.url}")
private String adamUrl;
@Value("${liquidnet.service.candy.url}") @Value("${liquidnet.service.candy.url}")
private String candyUrl; private String candyUrl;
@Value("${liquidnet.service.stone.url}") @Value("${liquidnet.service.stone.url}")
...@@ -52,7 +50,7 @@ public class GoblinOrderUtils { ...@@ -52,7 +50,7 @@ public class GoblinOrderUtils {
} }
} }
public CandyCouponVo getCouponDetails(String uCouponId,String uid) { public CandyCouponVo getCouponDetails(String uCouponId, String uid) {
try { try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Authorization", "Bearer " + CurrentUtil.getToken()); header.add("Authorization", "Bearer " + CurrentUtil.getToken());
...@@ -64,9 +62,9 @@ public class GoblinOrderUtils { ...@@ -64,9 +62,9 @@ public class GoblinOrderUtils {
String returnData = HttpUtil.post(candyUrl + " /candy-coupon/receive/ListById", params, header); String returnData = HttpUtil.post(candyUrl + " /candy-coupon/receive/ListById", params, header);
ResponseDto<List<CandyCouponVo>> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<List<CandyCouponVo>>>() { ResponseDto<List<CandyCouponVo>> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<List<CandyCouponVo>>>() {
}); });
if(innerReturnVo.getData().size()>0){ if (innerReturnVo.getData().size() > 0) {
return innerReturnVo.getData().get(0); return innerReturnVo.getData().get(0);
}else{ } else {
return null; return null;
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -93,4 +91,32 @@ public class GoblinOrderUtils { ...@@ -93,4 +91,32 @@ public class GoblinOrderUtils {
} }
} }
// NFT判断是否售罄
public HashMap<String, Integer> getIsStock(String skuId, String unbox, String soldoutStatus, List<String> skuIdList) {
HashMap<String, Integer> returnMap = CollectionUtil.mapStringInteger();
Integer isStock = 0;
Integer totalStock = 0;
if (null == soldoutStatus || soldoutStatus.equals("0")) {// 未设置售罄 查询库存
int surplusStock = 0;
if (unbox.equals("0")) {// 不是盲盒
surplusStock = redisUtils.getSkuStock(null, skuId);
} else {
for (String skuIdItem : skuIdList) {// 盲盒计算所有sku库存总数
if (skuIdItem.equals(skuId)) {// 过滤自己
continue;
}
GoblinGoodsSkuInfoVo itemVo = redisUtils.getGoodsSkuInfoVo(skuIdItem);
surplusStock += redisUtils.getSkuAllStatusStock(itemVo);
totalStock += redisUtils.getSkuTotalStock(itemVo);
}
}
if (surplusStock > 0) {
isStock = 1;
}
}
returnMap.put("isStock", isStock);
returnMap.put("totalStock", totalStock);
return returnMap;
}
} }
...@@ -48,11 +48,11 @@ goblin_goods.update_by_del_store=UPDATE goblin_goods SET del_flg='1',updated_by= ...@@ -48,11 +48,11 @@ goblin_goods.update_by_del_store=UPDATE goblin_goods SET del_flg='1',updated_by=
goblin_goods.update_by_del=UPDATE goblin_goods SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE spu_id=? AND del_flg='0' goblin_goods.update_by_del=UPDATE goblin_goods SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE spu_id=? AND del_flg='0'
goblin_goods_sku.insert=INSERT INTO goblin_goods_sku (sku_id,spu_id,sku_no,name,subtitle, sell_price,sku_pic,sku_isbn,stock,sku_stock, warning_stock,price,price_member,weight,buy_factor, buy_roster,buy_limit,store_id,sku_validity,virtual_flg, status,shelves_status,sku_appear,shelves_at,created_by, created_at,logistics_template)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) goblin_goods_sku.insert=INSERT INTO goblin_goods_sku (sku_id,spu_id,sku_no,name,subtitle, sell_price,sku_pic,sku_isbn,stock,sku_stock, warning_stock,price,price_member,weight,buy_factor, buy_roster,buy_limit,store_id,sku_validity,virtual_flg, status,shelves_status,sku_appear,shelves_at,created_by, created_at,logistics_template)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_goods_sku.insert_for_digital=INSERT INTO goblin_goods_sku (sku_id,spu_id,sku_no,sku_type,name,subtitle,sku_pic,sku_watch,watch_type,stock,sku_stock,hit_ratio,price,price_v,product_id,price_member,intro,details,buy_factor,buy_limit,store_id,shelves_handle,shelves_time,sale_start_time,virtual_flg,status,shelves_status,sku_appear,sku_canbuy,unbox,opening_time,shelves_at,created_by,created_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) goblin_goods_sku.insert_for_digital=INSERT INTO goblin_goods_sku (sku_id,spu_id,sku_no,sku_type,name,subtitle,sku_pic,sku_watch,watch_type,sku_watch_pic,stock,sku_stock,hit_ratio,price,price_v,product_id,price_member,intro,details,buy_factor,buy_limit,store_id,shelves_handle,shelves_time,sale_start_time,virtual_flg,status,shelves_status,sku_appear,sku_canbuy,unbox,opening_time,shelves_at,created_by,created_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_goods_sku.update_by_edit_for_market=UPDATE goblin_goods_sku SET name=?,sku_pic=?,sell_price=?,weight=?,stock=?,warning_stock=?,sku_appear=?,sku_isbn=?,sku_validity=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0' goblin_goods_sku.update_by_edit_for_market=UPDATE goblin_goods_sku SET name=?,sku_pic=?,sell_price=?,weight=?,stock=?,warning_stock=?,sku_appear=?,sku_isbn=?,sku_validity=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0'
goblin_goods_sku.update_by_edit=UPDATE goblin_goods_sku SET name=?,sku_pic=?,sell_price=?,price=?,price_member=?,weight=?,stock=?,sku_stock=?,warning_stock=?,sku_appear=?,sku_isbn=?,buy_factor=?,buy_roster=?,buy_limit=?,sku_validity=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0' goblin_goods_sku.update_by_edit=UPDATE goblin_goods_sku SET name=?,sku_pic=?,sell_price=?,price=?,price_member=?,weight=?,stock=?,sku_stock=?,warning_stock=?,sku_appear=?,sku_isbn=?,buy_factor=?,buy_roster=?,buy_limit=?,sku_validity=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0'
goblin_goods_sku.update_by_edit_for_digital=UPDATE goblin_goods_sku SET hit_ratio=?,buy_factor=?,buy_limit=?,sku_appear=?,sku_canbuy=?,shelves_handle=?,shelves_time=?,sale_start_time=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0' goblin_goods_sku.update_by_edit_for_digital=UPDATE goblin_goods_sku SET hit_ratio=?,buy_factor=?,buy_limit=?,sku_appear=?,sku_canbuy=?,shelves_handle=?,shelves_time=?,sale_start_time=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0'
goblin_goods_sku.update_by_edit_box_digital=UPDATE goblin_goods_sku SET name=?,subtitle=?,sku_pic=?,sku_watch=?,watch_type=?,price=?,price_member=?,intro=?,details=?,shelves_handle=?,shelves_time=?,sale_start_time=?,opening_time=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0' goblin_goods_sku.update_by_edit_box_digital=UPDATE goblin_goods_sku SET name=?,subtitle=?,sku_pic=?,sku_watch=?,watch_type=?,sku_watch_pic=?,price=?,price_member=?,intro=?,details=?,shelves_handle=?,shelves_time=?,sale_start_time=?,opening_time=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0'
goblin_goods_sku.update_by_edit_spu=UPDATE goblin_goods_sku SET sku_no=?,virtual_flg=?,logistics_template=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0' goblin_goods_sku.update_by_edit_spu=UPDATE goblin_goods_sku SET sku_no=?,virtual_flg=?,logistics_template=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0'
goblin_goods_sku.update_by_shelves=UPDATE goblin_goods_sku SET shelves_status=?,shelves_at=?,updated_by=?,updated_at=? WHERE sku_id=? AND store_id=? AND del_flg='0' goblin_goods_sku.update_by_shelves=UPDATE goblin_goods_sku SET shelves_status=?,shelves_at=?,updated_by=?,updated_at=? WHERE sku_id=? AND store_id=? AND del_flg='0'
goblin_goods_sku.update_by_soldout=UPDATE goblin_goods_sku SET soldout_status=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0' goblin_goods_sku.update_by_soldout=UPDATE goblin_goods_sku SET soldout_status=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0'
......
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