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

Commit 28f63fbf authored by 胡佳晨's avatar 胡佳晨

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

parents 61c1d971 6cbbee56
......@@ -26,10 +26,12 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable {
@NotBlank(message = "店铺ID不能为空")
private String storeId;
@ApiModelProperty(position = 11, required = true, value = "商品ID[64]")
@NotNull(message = "商品ID不能为空")
private String spuId;
@ApiModelProperty(position = 12, required = false, value = "单品ID[编辑时必传]")
private String skuId;
@ApiModelProperty(position = 13, required = true, value = "单品默认图片的url[256]")
@NotNull(message = "单品默认图片不能为空")
private String skuPic;
@ApiModelProperty(position = 14, required = true, value = "单品规格信息")
@Valid
......@@ -53,11 +55,14 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable {
private Integer skuStock;
@ApiModelProperty(position = 21, required = false, value = "预警库存")
private Integer warningStock;
@ApiModelProperty(position = 22, value = "自定义展示[0-默认展示|1-隐藏不可购买]")
@ApiModelProperty(position = 22, required = true, value = "自定义展示[0-默认展示|1-隐藏不可购买]")
@NotBlank(message = "是否隐藏不能为空")
@Pattern(regexp = "\\b(0|1)\\b", message = "购买限制参数无效")
private String skuAppear;
@ApiModelProperty(position = 23, required = false, value = "ISBN,针对CD/图书等[100]")
private String skuIsbn;
@ApiModelProperty(position = 24, required = true, value = "购买限制[0-全部用户|1-仅会员|2-指定用户]")
@NotBlank(message = "购买限制不能为空")
@Pattern(regexp = "\\b(0|1|2)\\b", message = "购买限制参数无效")
private String buyFactor;
@ApiModelProperty(position = 25, required = false, value = "购买限制人员名单,购买限制为2-指定用户时必填")
......@@ -75,7 +80,7 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable {
@ApiModelProperty(position = 30, required = false, value = "加减库存")
private Integer operStock;
public GoblinGoodsSkuInfoVo initEditGoodsSkuInfoVo() {
public GoblinGoodsSkuInfoVo initEditGoodsSkuInfoVo(GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo) {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = GoblinGoodsSkuInfoVo.getNew();
List<GoblinGoodsSpecDto> skuSpecList = this.getSkuSpecList();
if (!CollectionUtils.isEmpty(skuSpecList)) {
......@@ -84,19 +89,21 @@ public class GoblinStoreMgtGoodsEditSkuParam implements Serializable {
goodsSkuInfoVo.setName(goodsSkuInfoVo.getName().concat(goblinGoodsSpecDto.getSpecVname()));
}
goodsSkuInfoVo.setSkuSpecList(skuSpecList);
} else {
goodsSkuInfoVo.setName(mgtGoodsSkuInfoVo.getName());
goodsSkuInfoVo.setSkuSpecList(mgtGoodsSkuInfoVo.getSkuSpecList());
}
goodsSkuInfoVo.setSkuId(this.getSkuId());
goodsSkuInfoVo.setSkuPic(this.getSkuPic());
goodsSkuInfoVo.setSkuSpecList(skuSpecList);
goodsSkuInfoVo.setSellPrice(this.getSellPrice());
goodsSkuInfoVo.setSellPrice(null == this.getSellPrice() ? mgtGoodsSkuInfoVo.getSellPrice() : this.getSellPrice());
goodsSkuInfoVo.setPrice(this.getPrice());
goodsSkuInfoVo.setPriceMember(this.getPriceMember());
goodsSkuInfoVo.setWeight(this.getWeight());
goodsSkuInfoVo.setWeight(null == this.getWeight() ? mgtGoodsSkuInfoVo.getWeight() : this.getWeight());
goodsSkuInfoVo.setStock(this.getStock());
goodsSkuInfoVo.setSkuStock(this.getSkuStock());
goodsSkuInfoVo.setWarningStock(this.getWarningStock());
goodsSkuInfoVo.setSkuAppear(this.getSkuAppear());
goodsSkuInfoVo.setSkuIsbn(this.getSkuIsbn());
goodsSkuInfoVo.setSkuIsbn(null == this.getSkuIsbn() ? mgtGoodsSkuInfoVo.getSkuIsbn() : this.getSkuIsbn());
goodsSkuInfoVo.setBuyFactor(this.getBuyFactor());
goodsSkuInfoVo.setBuyRoster(this.getBuyRoster());
goodsSkuInfoVo.setBuyLimit(this.getBuyLimit());
......
......@@ -51,12 +51,13 @@ public interface IGoblinstoreMgtGoodsService {
*
* @param uid UID
* @param mgtGoodsEditSkuParam GoblinStoreMgtGoodsEditSkuParam
* @param mgtGoodsSkuInfoVo GoblinGoodsSkuInfoVo
* @param goodsInfoVo GoblinGoodsInfoVo
* @param delSpuSpecMap Map<String, String>
* @param addSpuSpecMap Map<String, String>
* @return boolean
*/
boolean goodsEditSku(String uid, GoblinStoreMgtGoodsEditSkuParam mgtGoodsEditSkuParam,
boolean goodsEditSku(String uid, GoblinStoreMgtGoodsEditSkuParam mgtGoodsEditSkuParam, GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo,
GoblinGoodsInfoVo goodsInfoVo, Map<String, String> delSpuSpecMap, Map<String, String> addSpuSpecMap);
/**
......
......@@ -4,6 +4,7 @@ import com.liquidnet.service.base.ResponseDto;
import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@Component
......@@ -21,4 +22,7 @@ public interface FeignPlatformGoblinTaskClient {
@PutMapping("gstore/task/market/activity")
ResponseDto<String> storeMarketActivityHandler();
@PostMapping("spu/goblin/setCount")
ResponseDto<String> setCount();
}
......@@ -33,4 +33,14 @@ public class PlatformGoblinTaskHandler {
XxlJobHelper.handleFail();
}
}
@XxlJob(value = "sev-platform:goblinSetCount")
public void setCount() {// 设置商城 商品数量
try {
XxlJobHelper.handleSuccess("结果:" + feignPlatformGoblinTaskClient.setCount().toJson());
} catch (Exception e) {
XxlJobHelper.log(e);
XxlJobHelper.handleFail();
}
}
}
......@@ -475,6 +475,7 @@ public class GoblinStoreMgtGoodsController {
}
mgtGoodsEditSkuParam.setStock(mgtGoodsSkuInfoVo.getStock());
mgtGoodsEditSkuParam.setSkuStock(mgtGoodsSkuInfoVo.getSkuStock());
mgtGoodsEditSkuParam.setWarningStock(mgtGoodsSkuInfoVo.getWarningStock());
Integer operStock = mgtGoodsEditSkuParam.getOperStock();
if (null != operStock && operStock != 0) {// 处理库存
int operStockVal = Math.abs(operStock);
......@@ -598,7 +599,7 @@ public class GoblinStoreMgtGoodsController {
if (!mgtGoodsEditSkuParam.getBuyFactor().equals("2") || StringUtils.equals(befBuyRoster, buyRoster) || !buyRoster.startsWith("http")) {
mgtGoodsEditSkuParam.setBuyRoster(null);
}
if (goblinstoreMgtGoodsService.goodsEditSku(currentUid, mgtGoodsEditSkuParam, goodsInfoVo, delSpuSpecMap, addSpuSpecMap)) {
if (goblinstoreMgtGoodsService.goodsEditSku(currentUid, mgtGoodsEditSkuParam, mgtGoodsSkuInfoVo, goodsInfoVo, delSpuSpecMap, addSpuSpecMap)) {
mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(paramSkuId);
mgtGoodsSkuInfoVo.setSurplusStock(goblinRedisUtils.getSkuStock(null, paramSkuId));
return ResponseDto.success(mgtGoodsSkuInfoVo);
......
......@@ -304,7 +304,7 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
buyCount=goblinRedisUtils.getSkuCountByUid(userId, sku);
}
GoblinGoodsSkuInfoVo goblinGoodsSkuInfoVo=goblinRedisUtils.getGoodsSkuInfoVo(sku);
if(null!=goblinGoodsSkuInfoVo){
if(null!=goblinGoodsSkuInfoVo&&goblinGoodsSkuInfoVo.getDelFlg().equals("0")&&goblinGoodsSkuInfoVo.getShelvesStatus().equals("3")){
//获取 sku 库存数量
String pre = GoblinStatusConst.MarketPreStatus.getPre(spuId);
int stock=goblinRedisUtils.getSkuStock(pre,goblinGoodsSkuInfoVo.getSkuId());
......
......@@ -530,11 +530,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
}
@Override
public boolean goodsEditSku(String uid, GoblinStoreMgtGoodsEditSkuParam mgtGoodsEditSkuParam, GoblinGoodsInfoVo goodsInfoVo,
Map<String, String> delSpuSpecMap, Map<String, String> addSpuSpecMap) {
public boolean goodsEditSku(String uid, GoblinStoreMgtGoodsEditSkuParam mgtGoodsEditSkuParam, GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo,
GoblinGoodsInfoVo goodsInfoVo, Map<String, String> delSpuSpecMap, Map<String, String> addSpuSpecMap) {
LocalDateTime now = LocalDateTime.now();
GoblinGoodsSkuInfoVo updateSkuInfoVo = mgtGoodsEditSkuParam.initEditGoodsSkuInfoVo();
GoblinGoodsSkuInfoVo updateSkuInfoVo = mgtGoodsEditSkuParam.initEditGoodsSkuInfoVo(mgtGoodsSkuInfoVo);
updateSkuInfoVo.setUpdatedBy(uid);
updateSkuInfoVo.setUpdatedAt(now);
String skuId = updateSkuInfoVo.getSkuId();
......@@ -564,31 +564,27 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
boolean updateGoodsInfoVoFlg = false;
List<GoblinGoodsSpecDto> skuSpecList = mgtGoodsEditSkuParam.getSkuSpecList();
if (!CollectionUtils.isEmpty(skuSpecList)) {// 不为空,则更改了规格
List<GoblinGoodsSpecVo> specVoList = goodsInfoVo.getSpecVoList();
skuSpecList.forEach(spec -> {
String specName = spec.getSpecName(), specVname = spec.getSpecVname();
GoblinGoodsSpecVo specVo = specVoList.stream().filter(r -> r.getSpecName().equals(specName)).findAny().get();
specVo.getSpecValues().forEach(r -> initSpuSpecValueObjs.add(new Object[]{spuId, specName, r.getSpecVname(), r.getSpecVsort()}));
updateSkuSpecValueObjs.add(new Object[]{specVname, skuId, specName});
if (!CollectionUtils.isEmpty(marketSkuIdList)) {
marketSkuIdList.forEach(marketSkuId -> updateSkuSpecValueObjs.add(new Object[]{specVname, marketSkuId, specName}));
}
});
if (!delSpuSpecMap.isEmpty()) {// 删除了规格值,需要同步SPU里的规格信息
updateGoodsInfoVoFlg = true;
goodsInfoVo.setUpdatedBy(uid);
goodsInfoVo.setUpdatedAt(now);
delSpuSpecMap.forEach((k, v) -> delSpuSpecValueObjs.add(new Object[]{spuId, k, v}));
}
if (!addSpuSpecMap.isEmpty()) {// 新增了规格值,需要同步SPU里的规格信息
updateGoodsInfoVoFlg = true;
goodsInfoVo.setUpdatedBy(uid);
goodsInfoVo.setUpdatedAt(now);
List<GoblinGoodsSpecVo> specVoList = goodsInfoVo.getSpecVoList();
skuSpecList.forEach(spec -> {
String specName = spec.getSpecName(), specVname = spec.getSpecVname();
GoblinGoodsSpecVo specVo = specVoList.stream().filter(r -> r.getSpecName().equals(specName)).findAny().get();
specVo.getSpecValues().forEach(r -> initSpuSpecValueObjs.add(new Object[]{spuId, specName, r.getSpecVname(), r.getSpecVsort()}));
updateSkuSpecValueObjs.add(new Object[]{specVname, skuId, specName});
if (!CollectionUtils.isEmpty(marketSkuIdList)) {
marketSkuIdList.forEach(marketSkuId -> updateSkuSpecValueObjs.add(new Object[]{specVname, marketSkuId, specName}));
}
});
if (!delSpuSpecMap.isEmpty()) {// 删除了规格值,需要同步SPU里的规格信息
updateGoodsInfoVoFlg = true;
goodsInfoVo.setUpdatedBy(uid);
goodsInfoVo.setUpdatedAt(now);
delSpuSpecMap.forEach((k, v) -> delSpuSpecValueObjs.add(new Object[]{spuId, k, v}));
}
if (!addSpuSpecMap.isEmpty()) {// 新增了规格值,需要同步SPU里的规格信息
updateGoodsInfoVoFlg = true;
goodsInfoVo.setUpdatedBy(uid);
goodsInfoVo.setUpdatedAt(now);
}
BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO;
......
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