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

Commit cb84177c authored by 张国柄's avatar 张国柄

~API:商品管理:管理SPU、SKU同步处理活动中的关联商品;

parent d96c9d86
...@@ -44,4 +44,6 @@ public class GoblinStoreMgtGoodsListVo implements Serializable, Cloneable { ...@@ -44,4 +44,6 @@ public class GoblinStoreMgtGoodsListVo implements Serializable, Cloneable {
private Integer surplusStock; private Integer surplusStock;
@ApiModelProperty(position = 25, value = "库存不足预警值") @ApiModelProperty(position = 25, value = "库存不足预警值")
private Integer warningStock; private Integer warningStock;
@ApiModelProperty(position = 25, value = "关联活动标记[0-未关联|1-已关联],用于下架提示'商品正在参与活动,是否确认下架?'")
private Integer relateMarket;
} }
...@@ -14,10 +14,10 @@ public interface IGoblinstoreMgtGoodsService { ...@@ -14,10 +14,10 @@ public interface IGoblinstoreMgtGoodsService {
/** /**
* 商品管理:SPU列表 * 商品管理:SPU列表
* *
* @param storeMgtGoodsFilterParam GoblinStoreMgtGoodsFilterParam * @param mgtGoodsFilterParam GoblinStoreMgtGoodsFilterParam
* @return PagedResult<GoblinStoreMgtGoodsVo> * @return PagedResult<GoblinStoreMgtGoodsVo>
*/ */
PagedResult<GoblinStoreMgtGoodsListVo> goodsList(GoblinStoreMgtGoodsFilterParam storeMgtGoodsFilterParam); PagedResult<GoblinStoreMgtGoodsListVo> goodsList(GoblinStoreMgtGoodsFilterParam mgtGoodsFilterParam);
/** /**
* 商品管理:SPU添加 * 商品管理:SPU添加
...@@ -39,33 +39,34 @@ public interface IGoblinstoreMgtGoodsService { ...@@ -39,33 +39,34 @@ public interface IGoblinstoreMgtGoodsService {
/** /**
* 商品管理:商品编辑:SPU编辑 * 商品管理:商品编辑:SPU编辑
* *
* @param uid UID * @param uid UID
* @param storeMgtGoodsAddParam GoblinStoreMgtGoodsAddParam * @param mgtGoodsAddParam GoblinStoreMgtGoodsAddParam
* @param goodsInfoVo GoblinGoodsInfoVo
* @return boolean * @return boolean
*/ */
boolean goodsEditSpu(String uid, GoblinStoreMgtGoodsAddParam storeMgtGoodsAddParam); boolean goodsEditSpu(String uid, GoblinStoreMgtGoodsAddParam mgtGoodsAddParam, GoblinGoodsInfoVo goodsInfoVo);
/** /**
* 商品管理:商品编辑:SKU编辑 * 商品管理:商品编辑:SKU编辑
* *
* @param uid UID * @param uid UID
* @param storeMgtGoodsEditSkuParam GoblinStoreMgtGoodsEditSkuParam * @param mgtGoodsEditSkuParam GoblinStoreMgtGoodsEditSkuParam
* @param goodsInfoVo GoblinGoodsInfoVo * @param goodsInfoVo GoblinGoodsInfoVo
* @param delSpuSpecMap Map<String, String> * @param delSpuSpecMap Map<String, String>
* @param beUpdateSpuSpecFlg boolean * @param beUpdateSpuSpecFlg boolean
* @return boolean * @return boolean
*/ */
boolean goodsEditSku(String uid, GoblinStoreMgtGoodsEditSkuParam storeMgtGoodsEditSkuParam, boolean goodsEditSku(String uid, GoblinStoreMgtGoodsEditSkuParam mgtGoodsEditSkuParam,
GoblinGoodsInfoVo goodsInfoVo, Map<String, String> delSpuSpecMap, boolean beUpdateSpuSpecFlg); GoblinGoodsInfoVo goodsInfoVo, Map<String, String> delSpuSpecMap, boolean beUpdateSpuSpecFlg);
/** /**
* 商品管理:商品编辑:SKU添加 * 商品管理:商品编辑:SKU添加
* *
* @param uid UID * @param uid UID
* @param storeMgtGoodsEditSkuParam GoblinStoreMgtGoodsEditSkuParam * @param mgtGoodsEditSkuParam GoblinStoreMgtGoodsEditSkuParam
* @param goodsInfoVo GoblinGoodsInfoVo * @param goodsInfoVo GoblinGoodsInfoVo
*/ */
void goodsEditSkuAdd(String uid, GoblinStoreMgtGoodsEditSkuParam storeMgtGoodsEditSkuParam, GoblinGoodsInfoVo goodsInfoVo); void goodsEditSkuAdd(String uid, GoblinStoreMgtGoodsEditSkuParam mgtGoodsEditSkuParam, GoblinGoodsInfoVo goodsInfoVo);
/** /**
* 商品管理:商品编辑:SKU删除 * 商品管理:商品编辑:SKU删除
...@@ -89,17 +90,19 @@ public interface IGoblinstoreMgtGoodsService { ...@@ -89,17 +90,19 @@ public interface IGoblinstoreMgtGoodsService {
/** /**
* 商品管理:上下架商品 * 商品管理:上下架商品
* *
* @param storeMgtGoodsActionParam GoblinStoreMgtGoodsActionParam * @param mgtGoodsActionParam GoblinStoreMgtGoodsActionParam
* @param uid UID * @param uid UID
* @param shelvesFlg true:上架|false:下架 * @param shelvesFlg true:上架|false:下架
* @param spuNoList 操作SPUID对应SPUNO列表
*/ */
void goodsShelvesProcessing(GoblinStoreMgtGoodsActionParam storeMgtGoodsActionParam, String uid, boolean shelvesFlg); void goodsShelvesProcessing(GoblinStoreMgtGoodsActionParam mgtGoodsActionParam, String uid, boolean shelvesFlg, List<String> spuNoList);
/** /**
* 商品管理:删除商品 * 商品管理:删除商品
* *
* @param storeMgtGoodsActionParam GoblinStoreMgtGoodsActionParam * @param mgtGoodsActionParam GoblinStoreMgtGoodsActionParam
* @param uid UID * @param uid UID
* @param spuNoList 操作SPUID对应SPUNO列表
*/ */
void goodsRemove(GoblinStoreMgtGoodsActionParam storeMgtGoodsActionParam, String uid); void goodsRemove(GoblinStoreMgtGoodsActionParam mgtGoodsActionParam, String uid, List<String> spuNoList);
} }
...@@ -89,18 +89,19 @@ public class GoblinPosController { ...@@ -89,18 +89,19 @@ public class GoblinPosController {
List<GoblinPosGoodsVo> posGoodsVoList = ObjectUtil.getGoblinPosGoodsVoArrayList(); List<GoblinPosGoodsVo> posGoodsVoList = ObjectUtil.getGoblinPosGoodsVoArrayList();
for (String skuId : skuIdArr) { for (String skuId : skuIdArr) {
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (null != goodsSkuInfoVo && storeId.equals(goodsSkuInfoVo.getStoreId())) { if (null != goodsSkuInfoVo && goodsSkuInfoVo.getDelFlg().equals("0") && storeId.equals(goodsSkuInfoVo.getStoreId())) {
String spuId = goodsSkuInfoVo.getSpuId(); String spuId = goodsSkuInfoVo.getSpuId();
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId); GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
if (null != goodsInfoVo && goodsInfoVo.getDelFlg().equals("0")) {
GoblinPosGoodsVo posGoodsVo = GoblinPosGoodsVo.getNew();
posGoodsVo.setSkuId(skuId);
posGoodsVo.setName(goodsSkuInfoVo.getName());
posGoodsVo.setPrice(goodsSkuInfoVo.getPrice());
posGoodsVo.setSpuId(spuId);
posGoodsVo.setSpuName(goodsInfoVo.getName());
GoblinPosGoodsVo posGoodsVo = GoblinPosGoodsVo.getNew(); posGoodsVoList.add(posGoodsVo);
posGoodsVo.setSkuId(skuId); }
posGoodsVo.setName(goodsSkuInfoVo.getName());
posGoodsVo.setPrice(goodsSkuInfoVo.getPrice());
posGoodsVo.setSpuId(spuId);
posGoodsVo.setSpuName(goodsInfoVo.getName());
posGoodsVoList.add(posGoodsVo);
} }
} }
return ResponseDto.success(posGoodsVoList); return ResponseDto.success(posGoodsVoList);
......
...@@ -159,10 +159,11 @@ public class GoblinStoreMgtController { ...@@ -159,10 +159,11 @@ public class GoblinStoreMgtController {
param.getConfMap().forEach((ck, cv) -> { param.getConfMap().forEach((ck, cv) -> {
switch (ck) { switch (ck) {
case "BUSINESS_STATUS": case "BUSINESS_STATUS":
// TODO: 2022/2/23 ==zhanggb 暂不启用停业功能 if (Arrays.asList("4", "5").contains(cv)) {
// if (Arrays.asList("4", "5").contains(cv)) { // TODO: 2022/2/23 ==zhanggb 暂不启用停业功能
// updateConfMap.put(ck, cv); // updateConfMap.put(ck, cv);
// } updateConfMap.put(ck, "5");
}
break; break;
case "ONOFF_CUSTOMER_SEV": case "ONOFF_CUSTOMER_SEV":
case "ONOFF_SOLD_OUT_SHOW": case "ONOFF_SOLD_OUT_SHOW":
......
...@@ -17,6 +17,7 @@ import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtCouponFilterParam; ...@@ -17,6 +17,7 @@ import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtCouponFilterParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponInfoVo; import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponInfoVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponListVo; import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtCouponListVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsListVo; import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponBasicVo; import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponBasicVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo; import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo;
import com.liquidnet.service.goblin.service.manage.IGoblinstoreMgtCouponService; import com.liquidnet.service.goblin.service.manage.IGoblinstoreMgtCouponService;
...@@ -40,6 +41,7 @@ import javax.validation.constraints.NotBlank; ...@@ -40,6 +41,7 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.IOException; import java.io.IOException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.Iterator;
import java.util.List; import java.util.List;
@ApiSupport(order = 149006) @ApiSupport(order = 149006)
...@@ -198,7 +200,14 @@ public class GoblinStoreMgtCouponController { ...@@ -198,7 +200,14 @@ public class GoblinStoreMgtCouponController {
List<String> spuIdList = storeCouponBasicVo.getSpuIdList(); List<String> spuIdList = storeCouponBasicVo.getSpuIdList();
if (storeCouponBasicVo.getUseScope().equals("1") && !CollectionUtils.isEmpty(spuIdList)) { if (storeCouponBasicVo.getUseScope().equals("1") && !CollectionUtils.isEmpty(spuIdList)) {
spuIdList.removeIf(spuId -> null == goblinRedisUtils.getGoodsInfoVo(spuId)); Iterator<String> iterator = spuIdList.iterator();
while (iterator.hasNext()) {
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(iterator.next());
if (null == goodsInfoVo || !goodsInfoVo.getDelFlg().equals("0")) {
iterator.remove();
}
}
// spuIdList.removeIf(spuId -> null == goblinRedisUtils.getGoodsInfoVo(spuId));
storeCouponBasicVo.setSpuIdList(spuIdList); storeCouponBasicVo.setSpuIdList(spuIdList);
} }
...@@ -268,7 +277,14 @@ public class GoblinStoreMgtCouponController { ...@@ -268,7 +277,14 @@ public class GoblinStoreMgtCouponController {
List<String> spuIdList = storeCouponBasicVo.getSpuIdList(); List<String> spuIdList = storeCouponBasicVo.getSpuIdList();
if (storeCouponBasicVo.getUseScope().equals("1") && null != spuIdList) { if (storeCouponBasicVo.getUseScope().equals("1") && null != spuIdList) {
spuIdList.removeIf(spuId -> null == goblinRedisUtils.getGoodsInfoVo(spuId)); Iterator<String> iterator = spuIdList.iterator();
while (iterator.hasNext()) {
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(iterator.next());
if (null == goodsInfoVo || !goodsInfoVo.getDelFlg().equals("0")) {
iterator.remove();
}
}
// spuIdList.removeIf(spuId -> null == goblinRedisUtils.getGoodsInfoVo(spuId));
storeCouponBasicVo.setSpuIdList(spuIdList); storeCouponBasicVo.setSpuIdList(spuIdList);
} }
......
...@@ -111,27 +111,78 @@ public class GoblinStoreMgtGoodsController { ...@@ -111,27 +111,78 @@ public class GoblinStoreMgtGoodsController {
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
@ApiOperation(value = "SPU管理") @ApiOperation(value = "SPU管理")
@PostMapping("operate") @PostMapping("operate")
public ResponseDto<Object> action(@Valid @RequestBody GoblinStoreMgtGoodsActionParam storeMgtGoodsActionParam) { public ResponseDto<Object> action(@Valid @RequestBody GoblinStoreMgtGoodsActionParam mgtGoodsActionParam) {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid(), storeId = mgtGoodsActionParam.getStoreId();
if (!goblinRedisUtils.hasStoreId(currentUid, storeMgtGoodsActionParam.getStoreId())) { if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) {
return ResponseDto.failure(ErrorMapping.get("149002")); return ResponseDto.failure(ErrorMapping.get("149002"));
} }
List<String> spuIdList = mgtGoodsActionParam.getSpuIdList();
if (CollectionUtils.isEmpty(spuIdList)) {
return ResponseDto.failure(ErrorMapping.get("149009"));
}
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("商品管理:SPU管理:[GoblinStoreMgtGoodsActionParam={}]", JsonUtils.toJson(storeMgtGoodsActionParam)); log.debug("商品管理:SPU管理:[UID={},GoblinStoreMgtGoodsActionParam={}]", currentUid, JsonUtils.toJson(mgtGoodsActionParam));
} }
List<String> spuNoList = CollectionUtil.arrayListString();
switch (storeMgtGoodsActionParam.getAction()) { switch (mgtGoodsActionParam.getAction()) {
case "ONSHELVES": case "ONSHELVES":
goblinstoreMgtGoodsService.goodsShelvesProcessing(storeMgtGoodsActionParam, currentUid, true); for (String spuId : spuIdList) {
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
if (null == goodsInfoVo || !goodsInfoVo.getDelFlg().equals("0")) {
log.warn("商品管理:SPU管理:上架警告:商品不存在或已删除[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "商品不存在或已删除");
}
if (!goodsInfoVo.getStoreId().equals(storeId)) {
log.warn("商品管理:SPU管理:上架警告:非本店铺商品,无权操作[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "非本店铺商品,无权操作");
}
if (goodsInfoVo.getShelvesStatus().equals("3")) {
log.warn("商品管理:SPU管理:上架警告:请先将商品下架后操作[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "无效操作,商品已上架");
}
}
goblinstoreMgtGoodsService.goodsShelvesProcessing(mgtGoodsActionParam, currentUid, true, null);
break; break;
case "UNSHELVE": case "UNSHELVE":
goblinstoreMgtGoodsService.goodsShelvesProcessing(storeMgtGoodsActionParam, currentUid, false); for (String spuId : spuIdList) {
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
if (null == goodsInfoVo || !goodsInfoVo.getDelFlg().equals("0")) {
log.warn("商品管理:SPU管理:下架警告:商品不存在或已删除[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "商品不存在或已删除");
}
if (!goodsInfoVo.getStoreId().equals(storeId)) {
log.warn("商品管理:SPU管理:下架警告:非本店铺商品,无权操作[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "非本店铺商品,无权操作");
}
if (!goodsInfoVo.getShelvesStatus().equals("3")) {// 非上架中不允许下架
log.warn("商品管理:SPU管理:下架警告:非上架中商品不允许此操作[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "非上架中商品不允许此操作");
}
spuNoList.add(goodsInfoVo.getSpuNo());
}
goblinstoreMgtGoodsService.goodsShelvesProcessing(mgtGoodsActionParam, currentUid, false, spuNoList);
break; break;
case "REMOVE": case "REMOVE":
goblinstoreMgtGoodsService.goodsRemove(storeMgtGoodsActionParam, currentUid); for (String spuId : spuIdList) {
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
if (null == goodsInfoVo || !goodsInfoVo.getDelFlg().equals("0")) {
log.warn("商品管理:SPU管理:删除警告:商品不存在或已删除[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "商品不存在或已删除");
}
if (!goodsInfoVo.getStoreId().equals(storeId)) {
log.warn("商品管理:SPU管理:删除警告:非本店铺商品,无权操作[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "非本店铺商品,无权操作");
}
if (goodsInfoVo.getShelvesStatus().equals("3")) {// 上架中不允许删除
log.warn("商品管理:SPU管理:删除警告:请先将商品下架后操作[UID={},spuId={}]", currentUid, spuId);
return ResponseDto.failure(ErrorMapping.get("149016"));
}
spuNoList.add(goodsInfoVo.getSpuNo());
}
goblinstoreMgtGoodsService.goodsRemove(mgtGoodsActionParam, currentUid, spuNoList);
break; break;
default: default:
log.warn("商品管理:SPU管理:Invalid operation[UID={},storeMgtGoodsActionParam={}]", currentUid, JsonUtils.toJson(storeMgtGoodsActionParam)); log.warn("商品管理:SPU管理:Invalid operation[UID={},mgtGoodsActionParam={}]", currentUid, JsonUtils.toJson(mgtGoodsActionParam));
return ResponseDto.failure(ErrorMapping.get("149001")); return ResponseDto.failure(ErrorMapping.get("149001"));
} }
return ResponseDto.success(); return ResponseDto.success();
...@@ -261,12 +312,13 @@ public class GoblinStoreMgtGoodsController { ...@@ -261,12 +312,13 @@ public class GoblinStoreMgtGoodsController {
if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) { if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) {
return ResponseDto.failure(ErrorMapping.get("149002")); return ResponseDto.failure(ErrorMapping.get("149002"));
} }
if (StringUtils.isBlank(storeMgtGoodsAddParam.getSpuId()) || null == goblinRedisUtils.getMgtGoodsInfoVo(storeMgtGoodsAddParam.getSpuId())) {
return ResponseDto.failure(ErrorMapping.get("149010"));
}
if (CollectionUtils.isEmpty(storeMgtGoodsAddParam.getImageList())) { if (CollectionUtils.isEmpty(storeMgtGoodsAddParam.getImageList())) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "商品图片不能为空"); return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "商品图片不能为空");
} }
GoblinGoodsInfoVo mgtGoodsInfoVo = goblinMongoUtils.getMgtGoodsInfoVo(storeId, storeMgtGoodsAddParam.getName());
if (null != mgtGoodsInfoVo && !mgtGoodsInfoVo.getSpuId().equals(storeMgtGoodsAddParam.getSpuId())) {
return ResponseDto.failure(ErrorMapping.get("149007"));
}
String cateSid = storeMgtGoodsAddParam.getCateSid(), cateTid = storeMgtGoodsAddParam.getCateTid(); String cateSid = storeMgtGoodsAddParam.getCateSid(), cateTid = storeMgtGoodsAddParam.getCateTid();
List<GoblinSelfGoodsCategoryVo> selfGoodsCategoryVos = goblinStoreMgtExtraService.listCategoryVo(); List<GoblinSelfGoodsCategoryVo> selfGoodsCategoryVos = goblinStoreMgtExtraService.listCategoryVo();
if (selfGoodsCategoryVos.stream().noneMatch(r -> r.getCateId().equals(storeMgtGoodsAddParam.getCateFid()) && r.getGrade().equals("1"))) { if (selfGoodsCategoryVos.stream().noneMatch(r -> r.getCateId().equals(storeMgtGoodsAddParam.getCateFid()) && r.getGrade().equals("1"))) {
...@@ -278,14 +330,16 @@ public class GoblinStoreMgtGoodsController { ...@@ -278,14 +330,16 @@ public class GoblinStoreMgtGoodsController {
if (StringUtils.isNotBlank(cateTid) && selfGoodsCategoryVos.stream().noneMatch(r -> r.getCateId().equals(cateTid) && r.getGrade().equals("3"))) { if (StringUtils.isNotBlank(cateTid) && selfGoodsCategoryVos.stream().noneMatch(r -> r.getCateId().equals(cateTid) && r.getGrade().equals("3"))) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "商品分类3无效"); return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "商品分类3无效");
} }
GoblinGoodsInfoVo mgtGoodsInfoVo = goblinMongoUtils.getMgtGoodsInfoVo(storeId, storeMgtGoodsAddParam.getName()); GoblinGoodsInfoVo goodsInfoVo;
if (null != mgtGoodsInfoVo && !mgtGoodsInfoVo.getSpuId().equals(storeMgtGoodsAddParam.getSpuId())) { if (StringUtils.isBlank(storeMgtGoodsAddParam.getSpuId())
return ResponseDto.failure(ErrorMapping.get("149007")); || null == (goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(storeMgtGoodsAddParam.getSpuId()))
|| !goodsInfoVo.getDelFlg().equals("0")) {
return ResponseDto.failure(ErrorMapping.get("149010"));
} }
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("商品管理:商品编辑:SPU编辑:[GoblinStoreMgtGoodsAddParam={}]", JsonUtils.toJson(storeMgtGoodsAddParam)); log.debug("商品管理:商品编辑:SPU编辑:[GoblinStoreMgtGoodsAddParam={}]", JsonUtils.toJson(storeMgtGoodsAddParam));
} }
return ResponseDto.success(goblinstoreMgtGoodsService.goodsEditSpu(currentUid, storeMgtGoodsAddParam)); return ResponseDto.success(goblinstoreMgtGoodsService.goodsEditSpu(currentUid, storeMgtGoodsAddParam, goodsInfoVo));
} }
@ApiOperationSupport(order = 7) @ApiOperationSupport(order = 7)
...@@ -296,13 +350,18 @@ public class GoblinStoreMgtGoodsController { ...@@ -296,13 +350,18 @@ public class GoblinStoreMgtGoodsController {
if (!goblinRedisUtils.hasStoreId(currentUid, storeMgtGoodsEditSkuParam.getStoreId())) { if (!goblinRedisUtils.hasStoreId(currentUid, storeMgtGoodsEditSkuParam.getStoreId())) {
return ResponseDto.failure(ErrorMapping.get("149002")); return ResponseDto.failure(ErrorMapping.get("149002"));
} }
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(storeMgtGoodsEditSkuParam.getSkuId()); // TODO: 2022/1/5 zhanggb +分类-ISBN校验
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(storeMgtGoodsEditSkuParam.getSkuId());
if (StringUtils.isBlank(storeMgtGoodsEditSkuParam.getSkuId()) if (StringUtils.isBlank(storeMgtGoodsEditSkuParam.getSkuId())
|| null == mgtGoodsSkuInfoVo || !mgtGoodsSkuInfoVo.getStoreId().equals(storeMgtGoodsEditSkuParam.getStoreId())) { || null == mgtGoodsSkuInfoVo || !mgtGoodsSkuInfoVo.getDelFlg().equals("0")
|| !mgtGoodsSkuInfoVo.getStoreId().equals(storeMgtGoodsEditSkuParam.getStoreId())) {
return ResponseDto.failure(ErrorMapping.get("149011")); return ResponseDto.failure(ErrorMapping.get("149011"));
} }
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getMgtGoodsInfoVo(mgtGoodsSkuInfoVo.getSpuId()); GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(mgtGoodsSkuInfoVo.getSpuId());
// TODO: 2022/1/5 zhanggb +分类-ISBN校验 if (null == goodsInfoVo || !goodsInfoVo.getDelFlg().equals("0")) {
return ResponseDto.failure(ErrorMapping.get("149010"));
}
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("商品管理:商品编辑:SKU编辑:[GoblinStoreMgtGoodsEditSkuParam={}]", JsonUtils.toJson(storeMgtGoodsEditSkuParam)); log.debug("商品管理:商品编辑:SKU编辑:[GoblinStoreMgtGoodsEditSkuParam={}]", JsonUtils.toJson(storeMgtGoodsEditSkuParam));
...@@ -340,7 +399,7 @@ public class GoblinStoreMgtGoodsController { ...@@ -340,7 +399,7 @@ public class GoblinStoreMgtGoodsController {
Map<String, String> delSpuSpecMap = CollectionUtil.mapStringString(); Map<String, String> delSpuSpecMap = CollectionUtil.mapStringString();
boolean beUpdateSpuSpecFlg = false; boolean beUpdateSpuSpecFlg = false;
for (String skuId : skuIdList) {// 比对所有SKU规格信息 for (String skuId : skuIdList) {// 比对所有SKU规格信息
GoblinGoodsSkuInfoVo existMgtGoodsSkuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo existMgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
List<GoblinGoodsSpecDto> skuSpecList = existMgtGoodsSkuInfoVo.getSkuSpecList(); List<GoblinGoodsSpecDto> skuSpecList = existMgtGoodsSkuInfoVo.getSkuSpecList();
otherSkuSpecListMap.put(skuId, skuSpecList); otherSkuSpecListMap.put(skuId, skuSpecList);
Map<String, String> editBefSkuSpecMap = skuSpecList.stream() Map<String, String> editBefSkuSpecMap = skuSpecList.stream()
...@@ -414,7 +473,7 @@ public class GoblinStoreMgtGoodsController { ...@@ -414,7 +473,7 @@ public class GoblinStoreMgtGoodsController {
} }
} }
if (goblinstoreMgtGoodsService.goodsEditSku(currentUid, storeMgtGoodsEditSkuParam, goodsInfoVo, delSpuSpecMap, beUpdateSpuSpecFlg)) { if (goblinstoreMgtGoodsService.goodsEditSku(currentUid, storeMgtGoodsEditSkuParam, goodsInfoVo, delSpuSpecMap, beUpdateSpuSpecFlg)) {
mgtGoodsSkuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(paramSkuId); mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(paramSkuId);
mgtGoodsSkuInfoVo.setSurplusStock(goblinRedisUtils.getSkuStock(null, paramSkuId)); mgtGoodsSkuInfoVo.setSurplusStock(goblinRedisUtils.getSkuStock(null, paramSkuId));
return ResponseDto.success(mgtGoodsSkuInfoVo); return ResponseDto.success(mgtGoodsSkuInfoVo);
} else { } else {
...@@ -445,14 +504,15 @@ public class GoblinStoreMgtGoodsController { ...@@ -445,14 +504,15 @@ public class GoblinStoreMgtGoodsController {
if (null == storeMgtGoodsEditSkuParam.getStock() || storeMgtGoodsEditSkuParam.getStock() <= 0) { if (null == storeMgtGoodsEditSkuParam.getStock() || storeMgtGoodsEditSkuParam.getStock() <= 0) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "库存无效"); return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "库存无效");
} }
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getMgtGoodsInfoVo(storeMgtGoodsEditSkuParam.getSpuId()); GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(storeMgtGoodsEditSkuParam.getSpuId());
if (null == goodsInfoVo || !goodsInfoVo.getStoreId().equals(storeMgtGoodsEditSkuParam.getStoreId())) { if (null == goodsInfoVo || !goodsInfoVo.getDelFlg().equals("0")
|| !goodsInfoVo.getStoreId().equals(storeMgtGoodsEditSkuParam.getStoreId())) {
return ResponseDto.failure(ErrorMapping.get("149010")); return ResponseDto.failure(ErrorMapping.get("149010"));
} }
List<String> skuIdList = goodsInfoVo.getSkuIdList(); List<String> skuIdList = goodsInfoVo.getSkuIdList();
List<GoblinGoodsSpecDto> paramSkuSpecDtoList = storeMgtGoodsEditSkuParam.getSkuSpecList(); List<GoblinGoodsSpecDto> paramSkuSpecDtoList = storeMgtGoodsEditSkuParam.getSkuSpecList();
for (String skuId : skuIdList) {// 比对所有SKU规格信息 for (String skuId : skuIdList) {// 比对所有SKU规格信息
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (mgtGoodsSkuInfoVo.getSkuSpecList().size() != paramSkuSpecDtoList.size()) { if (mgtGoodsSkuInfoVo.getSkuSpecList().size() != paramSkuSpecDtoList.size()) {
log.warn("商品管理:商品编辑:SKU添加:规格信息有误[skuSpecMap={},paramSkuSpecMap={}]", JsonUtils.toJson(mgtGoodsSkuInfoVo.getSkuSpecList()), JsonUtils.toJson(paramSkuSpecDtoList)); log.warn("商品管理:商品编辑:SKU添加:规格信息有误[skuSpecMap={},paramSkuSpecMap={}]", JsonUtils.toJson(mgtGoodsSkuInfoVo.getSkuSpecList()), JsonUtils.toJson(paramSkuSpecDtoList));
return ResponseDto.failure(ErrorMapping.get("149014")); return ResponseDto.failure(ErrorMapping.get("149014"));
...@@ -515,10 +575,13 @@ public class GoblinStoreMgtGoodsController { ...@@ -515,10 +575,13 @@ public class GoblinStoreMgtGoodsController {
if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) { if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) {
return ResponseDto.failure(ErrorMapping.get("149002")); return ResponseDto.failure(ErrorMapping.get("149002"));
} }
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (null == mgtGoodsSkuInfoVo || !mgtGoodsSkuInfoVo.getStoreId().equals(storeId)) { if (null == mgtGoodsSkuInfoVo || !mgtGoodsSkuInfoVo.getDelFlg().equals("0") || !mgtGoodsSkuInfoVo.getStoreId().equals(storeId)) {
return ResponseDto.failure(ErrorMapping.get("149011")); return ResponseDto.failure(ErrorMapping.get("149011"));
} }
if (mgtGoodsSkuInfoVo.getShelvesStatus().equals("3")) {
return ResponseDto.failure(ErrorMapping.get("149016"));
}
return ResponseDto.success(goblinstoreMgtGoodsService.goodsEditSkuDel(currentUid, mgtGoodsSkuInfoVo)); return ResponseDto.success(goblinstoreMgtGoodsService.goodsEditSkuDel(currentUid, mgtGoodsSkuInfoVo));
} }
......
...@@ -185,17 +185,18 @@ public class GoblinStoreMgtCouponServiceImpl implements IGoblinstoreMgtCouponSer ...@@ -185,17 +185,18 @@ public class GoblinStoreMgtCouponServiceImpl implements IGoblinstoreMgtCouponSer
ArrayList<GoblinStoreMgtCouponSpuListVo> couponSpuListVos = ObjectUtil.getGoblinStoreMgtCouponSpuListVoArrayList(); ArrayList<GoblinStoreMgtCouponSpuListVo> couponSpuListVos = ObjectUtil.getGoblinStoreMgtCouponSpuListVoArrayList();
spuIds.forEach(spuId -> { spuIds.forEach(spuId -> {
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId); GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
if (null != goodsInfoVo && goodsInfoVo.getDelFlg().equals("0")) {
String cateFid = goodsInfoVo.getCateFid(), cateSid = goodsInfoVo.getCateSid(), cateTid = goodsInfoVo.getCateTid(); String cateFid = goodsInfoVo.getCateFid(), cateSid = goodsInfoVo.getCateSid(), cateTid = goodsInfoVo.getCateTid();
List<GoblinSelfGoodsCategoryVo> categoryVoList = selfGoodsCategoryVos.stream() List<GoblinSelfGoodsCategoryVo> categoryVoList = selfGoodsCategoryVos.stream()
.filter(cr -> Arrays.asList(cateFid, cateSid, cateTid).contains(cr.getCateId())).collect(Collectors.toList()); .filter(cr -> Arrays.asList(cateFid, cateSid, cateTid).contains(cr.getCateId())).collect(Collectors.toList());
categoryVoList.forEach(cr -> { categoryVoList.forEach(cr -> {
if (cr.getCateId().equals(cateFid)) goodsInfoVo.setCateFid(cr.getName()); if (cr.getCateId().equals(cateFid)) goodsInfoVo.setCateFid(cr.getName());
if (cr.getCateId().equals(cateSid)) goodsInfoVo.setCateSid(cr.getName()); if (cr.getCateId().equals(cateSid)) goodsInfoVo.setCateSid(cr.getName());
if (cr.getCateId().equals(cateTid)) goodsInfoVo.setCateTid(cr.getName()); if (cr.getCateId().equals(cateTid)) goodsInfoVo.setCateTid(cr.getName());
}); });
couponSpuListVos.add(GoblinStoreMgtCouponSpuListVo.getNew().copy(goodsInfoVo)); couponSpuListVos.add(GoblinStoreMgtCouponSpuListVo.getNew().copy(goodsInfoVo));
}
}); });
mgtCouponInfoVo.setSpuVoList(couponSpuListVos); mgtCouponInfoVo.setSpuVoList(couponSpuListVos);
} }
......
...@@ -45,38 +45,43 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -45,38 +45,43 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
IGoblinStoreMgtExtraService goblinStoreMgtExtraService; IGoblinStoreMgtExtraService goblinStoreMgtExtraService;
@Override @Override
public PagedResult<GoblinStoreMgtGoodsListVo> goodsList(GoblinStoreMgtGoodsFilterParam filterParam) { public PagedResult<GoblinStoreMgtGoodsListVo> goodsList(GoblinStoreMgtGoodsFilterParam mgtGoodsFilterParam) {
PagedResult<GoblinStoreMgtGoodsListVo> goodsListVoPagedResult = goblinMongoUtils.getMgtGoodsInfoVos(filterParam); PagedResult<GoblinStoreMgtGoodsListVo> goodsListVoPagedResult = goblinMongoUtils.getMgtGoodsInfoVos(mgtGoodsFilterParam);
if (goodsListVoPagedResult.getTotal() > 0) { if (goodsListVoPagedResult.getTotal() > 0) {
List<GoblinStoreMgtGoodsListVo> voList = goodsListVoPagedResult.getList(); List<GoblinStoreMgtGoodsListVo> voList = goodsListVoPagedResult.getList();
List<GoblinStoreConfigVo> storeConfigVos = goblinRedisUtils.getStoreConfigVos(filterParam.getStoreId()); // 存在关联活动的SPUNO获取
List<String> relateMarketSpuNoList = goblinMongoUtils.getMgtSpuNosForMarketBySpuNos(
voList.stream().map(GoblinStoreMgtGoodsListVo::getSpuNo).collect(Collectors.toList()), "3");
// 库存预警配置获取
List<GoblinStoreConfigVo> storeConfigVos = goblinRedisUtils.getStoreConfigVos(mgtGoodsFilterParam.getStoreId());
Optional<GoblinStoreConfigVo> optional = storeConfigVos.stream().filter(r -> r.getConfigKey().equals(GoblinStoreConf.LIMIT_WARNING_STOCK.name())).findAny(); Optional<GoblinStoreConfigVo> optional = storeConfigVos.stream().filter(r -> r.getConfigKey().equals(GoblinStoreConf.LIMIT_WARNING_STOCK.name())).findAny();
Integer warningStock = optional.map(goblinStoreConfigVo -> Integer.parseInt(goblinStoreConfigVo.getConfigVal())).orElse(5); Integer warningStock = optional.map(goblinStoreConfigVo -> Integer.parseInt(goblinStoreConfigVo.getConfigVal())).orElse(5);
// 商品分类获取
List<GoblinSelfGoodsCategoryVo> selfGoodsCategoryVos = goblinStoreMgtExtraService.listCategoryVo(); List<GoblinSelfGoodsCategoryVo> selfGoodsCategoryVos = goblinStoreMgtExtraService.listCategoryVo();
voList.forEach(vo -> { voList.forEach(vo -> {
GoblinGoodsInfoVo mgtGoodsInfoVo = goblinRedisUtils.getMgtGoodsInfoVo(vo.getSpuId()); GoblinGoodsInfoVo mgtGoodsInfoVo = goblinRedisUtils.getGoodsInfoVo(vo.getSpuId());
int totalStock = 0, surplusStock = 0; int totalStock = 0, surplusStock = 0;
for (String skuId : mgtGoodsInfoVo.getSkuIdList()) { for (String skuId : mgtGoodsInfoVo.getSkuIdList()) {
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (null != mgtGoodsSkuInfoVo && mgtGoodsSkuInfoVo.getDelFlg().equals("0")) {
totalStock += mgtGoodsSkuInfoVo.getStock();
surplusStock += goblinRedisUtils.getSkuStock(null, skuId);
totalStock += mgtGoodsSkuInfoVo.getStock();
surplusStock += goblinRedisUtils.getSkuStock(null, skuId);
// if (!mgtGoodsSkuInfoVo.getStock().equals(mgtGoodsSkuInfoVo.getSkuStock())) {// 总库存<>当前SKU库存,则存在活动商品分库存
List<String> skuReList = goblinRedisUtils.getSkuRe(skuId); List<String> skuReList = goblinRedisUtils.getSkuRe(skuId);
if (!CollectionUtils.isEmpty(skuReList)) { if (!CollectionUtils.isEmpty(skuReList))
for (String skuRe : skuReList) { for (String skuRe : skuReList)
surplusStock += goblinRedisUtils.getSkuStock(GoblinStatusConst.MarketPreStatus.getPre(skuRe), skuRe); surplusStock += goblinRedisUtils.getSkuStock(GoblinStatusConst.MarketPreStatus.getPre(skuRe), skuRe);
} }
}
// }
} }
vo.setTotalStock(totalStock); vo.setTotalStock(totalStock);
vo.setSurplusStock(surplusStock); vo.setSurplusStock(surplusStock);
vo.setWarningStock(warningStock); vo.setWarningStock(warningStock);
vo.setRelateMarket(relateMarketSpuNoList.contains(vo.getSpuNo()) ? 1 : 0);
String cateFid = vo.getCateFid(), cateSid = vo.getCateSid(), cateTid = vo.getCateTid(); String cateFid = vo.getCateFid(), cateSid = vo.getCateSid(), cateTid = vo.getCateTid();
List<GoblinSelfGoodsCategoryVo> categoryVoList = selfGoodsCategoryVos.stream() List<GoblinSelfGoodsCategoryVo> categoryVoList = selfGoodsCategoryVos.stream()
...@@ -219,16 +224,18 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -219,16 +224,18 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
@Override @Override
public GoblinStoreMgtGoodsInfoVo goodsInfo(String storeId, String spuId) { public GoblinStoreMgtGoodsInfoVo goodsInfo(String storeId, String spuId) {
GoblinStoreMgtGoodsInfoVo vo = GoblinStoreMgtGoodsInfoVo.getNew(); GoblinStoreMgtGoodsInfoVo vo = GoblinStoreMgtGoodsInfoVo.getNew();
GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getMgtGoodsInfoVo(spuId); GoblinGoodsInfoVo goodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
if (null != goodsInfoVo) { if (null != goodsInfoVo && goodsInfoVo.getDelFlg().equals("0")) {
vo.setGoodsInfoVo(goodsInfoVo); vo.setGoodsInfoVo(goodsInfoVo);
List<String> skuIdList = goodsInfoVo.getSkuIdList(); List<String> skuIdList = goodsInfoVo.getSkuIdList();
if (!CollectionUtils.isEmpty(skuIdList)) { if (!CollectionUtils.isEmpty(skuIdList)) {
List<GoblinGoodsSkuInfoVo> goodsSkuInfoVoList = ObjectUtil.getGoblinGoodsSkuInfoVoArrayList(); List<GoblinGoodsSkuInfoVo> goodsSkuInfoVoList = ObjectUtil.getGoblinGoodsSkuInfoVoArrayList();
skuIdList.forEach(skuId -> { skuIdList.forEach(skuId -> {
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
mgtGoodsSkuInfoVo.setSurplusStock(goblinRedisUtils.getSkuStock(null, skuId)); if (null != mgtGoodsSkuInfoVo && mgtGoodsSkuInfoVo.getDelFlg().equals("0")) {
goodsSkuInfoVoList.add(mgtGoodsSkuInfoVo); mgtGoodsSkuInfoVo.setSurplusStock(goblinRedisUtils.getSkuStock(null, skuId));
goodsSkuInfoVoList.add(mgtGoodsSkuInfoVo);
}
}); });
vo.setGoodsSkuInfoVoList(goodsSkuInfoVoList); vo.setGoodsSkuInfoVoList(goodsSkuInfoVoList);
} }
...@@ -237,13 +244,9 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -237,13 +244,9 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
} }
@Override @Override
public boolean goodsEditSpu(String uid, GoblinStoreMgtGoodsAddParam storeMgtGoodsAddParam) { public boolean goodsEditSpu(String uid, GoblinStoreMgtGoodsAddParam storeMgtGoodsAddParam, GoblinGoodsInfoVo mgtGoodsInfoVo) {
String spuId = storeMgtGoodsAddParam.getSpuId(); String spuId = storeMgtGoodsAddParam.getSpuId();
GoblinGoodsInfoVo mgtGoodsInfoVo = goblinRedisUtils.getMgtGoodsInfoVo(spuId);
if (null == mgtGoodsInfoVo) {
log.warn("商品管理:商品编辑:SPU编辑:[uid={},storeId={},spuId={}]", uid, storeMgtGoodsAddParam.getStoreId(), spuId);
return false;
}
GoblinGoodsInfoVo updateSpuInfoVo = storeMgtGoodsAddParam.initEditGoodsInfoVo(); GoblinGoodsInfoVo updateSpuInfoVo = storeMgtGoodsAddParam.initEditGoodsInfoVo();
boolean updateTagFlg = false, updateExtagFlg = false, updateArtagFlg = false; boolean updateTagFlg = false, updateExtagFlg = false, updateArtagFlg = false;
...@@ -526,11 +529,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -526,11 +529,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
} }
@Override @Override
public boolean goodsEditSku(String uid, GoblinStoreMgtGoodsEditSkuParam storeMgtGoodsEditSkuParam, GoblinGoodsInfoVo goodsInfoVo, public boolean goodsEditSku(String uid, GoblinStoreMgtGoodsEditSkuParam mgtGoodsEditSkuParam, GoblinGoodsInfoVo goodsInfoVo,
Map<String, String> updateSpuSpecMap, boolean beUpdateSpuSpecFlg) { Map<String, String> updateSpuSpecMap, boolean beUpdateSpuSpecFlg) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
GoblinGoodsSkuInfoVo updateSkuInfoVo = storeMgtGoodsEditSkuParam.initEditGoodsSkuInfoVo(); GoblinGoodsSkuInfoVo updateSkuInfoVo = mgtGoodsEditSkuParam.initEditGoodsSkuInfoVo();
updateSkuInfoVo.setUpdatedBy(uid); updateSkuInfoVo.setUpdatedBy(uid);
updateSkuInfoVo.setUpdatedAt(now); updateSkuInfoVo.setUpdatedAt(now);
String skuId = updateSkuInfoVo.getSkuId(); String skuId = updateSkuInfoVo.getSkuId();
...@@ -560,7 +563,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -560,7 +563,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
LinkedList<Object[]> updateSpuSpecValueObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateSpuSpecValueObjs = CollectionUtil.linkedListObjectArr();
List<GoblinGoodsSpecVo> specVoList = goodsInfoVo.getSpecVoList(); List<GoblinGoodsSpecVo> specVoList = goodsInfoVo.getSpecVoList();
List<GoblinGoodsSpecDto> skuSpecList = storeMgtGoodsEditSkuParam.getSkuSpecList(); List<GoblinGoodsSpecDto> skuSpecList = mgtGoodsEditSkuParam.getSkuSpecList();
skuSpecList.forEach(spec -> { skuSpecList.forEach(spec -> {
String specName = spec.getSpecName(), specVname = spec.getSpecVname(); String specName = spec.getSpecName(), specVname = spec.getSpecVname();
...@@ -598,10 +601,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -598,10 +601,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO; BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO;
for (String skuIdStr : goodsInfoVo.getSkuIdList()) { for (String skuIdStr : goodsInfoVo.getSkuIdList()) {
GoblinGoodsSkuInfoVo skuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(skuIdStr); GoblinGoodsSkuInfoVo skuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuIdStr);
if (null != skuInfoVo && skuInfoVo.getDelFlg().equals("0")) {
priceGe = priceGe.compareTo(BigDecimal.ZERO) == 0 ? skuInfoVo.getPrice() : (priceGe.compareTo(skuInfoVo.getPrice()) > 0 ? skuInfoVo.getPrice() : priceGe); priceGe = priceGe.compareTo(BigDecimal.ZERO) == 0 ? skuInfoVo.getPrice() : (priceGe.compareTo(skuInfoVo.getPrice()) > 0 ? skuInfoVo.getPrice() : priceGe);
priceLe = priceLe.compareTo(skuInfoVo.getPrice()) < 0 ? skuInfoVo.getPrice() : priceLe; priceLe = priceLe.compareTo(skuInfoVo.getPrice()) < 0 ? skuInfoVo.getPrice() : priceLe;
}
} }
LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr();
if (priceGe.compareTo(goodsInfoVo.getPriceGe()) != 0 || priceLe.compareTo(goodsInfoVo.getPriceLe()) != 0) { if (priceGe.compareTo(goodsInfoVo.getPriceGe()) != 0 || priceLe.compareTo(goodsInfoVo.getPriceLe()) != 0) {
...@@ -615,9 +619,9 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -615,9 +619,9 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
updateGoodsObjs.add(new Object[]{priceGe, priceLe, uid, now, spuId}); updateGoodsObjs.add(new Object[]{priceGe, priceLe, uid, now, spuId});
} }
String buyRoster = storeMgtGoodsEditSkuParam.getBuyRoster(); String buyRoster = mgtGoodsEditSkuParam.getBuyRoster();
if (storeMgtGoodsEditSkuParam.getBuyFactor().equals("2") && StringUtils.isNotBlank(buyRoster) && buyRoster.startsWith("http")) { if (mgtGoodsEditSkuParam.getBuyFactor().equals("2") && StringUtils.isNotBlank(buyRoster) && buyRoster.startsWith("http")) {
queueUtils.sendMsgByRedisXls(buyRoster, storeMgtGoodsEditSkuParam.getBuyRosterType(), skuId); queueUtils.sendMsgByRedisXls(buyRoster, mgtGoodsEditSkuParam.getBuyRosterType(), skuId);
} }
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
...@@ -648,7 +652,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -648,7 +652,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
updateSkuSpecValueObjs, initSpuSpecValueObjs, delSpuSpecValueObjs, updateSpuSpecValueObjs, updateGoodsObjs)); updateSkuSpecValueObjs, initSpuSpecValueObjs, delSpuSpecValueObjs, updateSpuSpecValueObjs, updateGoodsObjs));
return true; return true;
} }
Integer operStock = storeMgtGoodsEditSkuParam.getOperStock(); Integer operStock = mgtGoodsEditSkuParam.getOperStock();
if (null != operStock && operStock != 0) { if (null != operStock && operStock != 0) {
if (operStock > 0) { if (operStock > 0) {
goblinRedisUtils.decrSkuStock(null, skuId, Math.abs(operStock)); goblinRedisUtils.decrSkuStock(null, skuId, Math.abs(operStock));
...@@ -660,12 +664,12 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -660,12 +664,12 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
} }
@Override @Override
public void goodsEditSkuAdd(String uid, GoblinStoreMgtGoodsEditSkuParam storeMgtGoodsEditSkuParam, GoblinGoodsInfoVo goodsInfoVo) { public void goodsEditSkuAdd(String uid, GoblinStoreMgtGoodsEditSkuParam mgtGoodsEditSkuParam, GoblinGoodsInfoVo goodsInfoVo) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String spuId = storeMgtGoodsEditSkuParam.getSpuId(); String spuId = mgtGoodsEditSkuParam.getSpuId();
String skuId = spuId.concat(StringUtils.right(String.valueOf(System.nanoTime()), 5)); String skuId = spuId.concat(StringUtils.right(String.valueOf(System.nanoTime()), 5));
GoblinGoodsSkuInfoVo addSkuInfoVo = storeMgtGoodsEditSkuParam.initEditAddGoodsSkuInfoVo(); GoblinGoodsSkuInfoVo addSkuInfoVo = mgtGoodsEditSkuParam.initEditAddGoodsSkuInfoVo();
addSkuInfoVo.setSkuId(skuId); addSkuInfoVo.setSkuId(skuId);
addSkuInfoVo.setSpuId(spuId); addSkuInfoVo.setSpuId(spuId);
addSkuInfoVo.setSkuNo(goodsInfoVo.getSpuNo()); addSkuInfoVo.setSkuNo(goodsInfoVo.getSpuNo());
...@@ -686,10 +690,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -686,10 +690,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
goodsInfoVo.setSkuIdList(skuIdList); goodsInfoVo.setSkuIdList(skuIdList);
BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO; BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO;
for (String skuIdStr : goodsInfoVo.getSkuIdList()) { for (String skuIdStr : goodsInfoVo.getSkuIdList()) {
GoblinGoodsSkuInfoVo skuInfoVo = skuIdStr.equals(skuId) ? addSkuInfoVo : goblinRedisUtils.getMgtGoodsSkuInfoVo(skuIdStr); GoblinGoodsSkuInfoVo skuInfoVo = skuIdStr.equals(skuId) ? addSkuInfoVo : goblinRedisUtils.getGoodsSkuInfoVo(skuIdStr);
if (null != skuInfoVo && skuInfoVo.getDelFlg().equals("0")) {
priceGe = priceGe.compareTo(BigDecimal.ZERO) == 0 ? skuInfoVo.getPrice() : (priceGe.compareTo(skuInfoVo.getPrice()) > 0 ? skuInfoVo.getPrice() : priceGe); priceGe = priceGe.compareTo(BigDecimal.ZERO) == 0 ? skuInfoVo.getPrice() : (priceGe.compareTo(skuInfoVo.getPrice()) > 0 ? skuInfoVo.getPrice() : priceGe);
priceLe = priceLe.compareTo(skuInfoVo.getPrice()) < 0 ? skuInfoVo.getPrice() : priceLe; priceLe = priceLe.compareTo(skuInfoVo.getPrice()) < 0 ? skuInfoVo.getPrice() : priceLe;
}
} }
LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr();
if (priceGe.compareTo(goodsInfoVo.getPriceGe()) != 0 || priceLe.compareTo(goodsInfoVo.getPriceLe()) != 0) { if (priceGe.compareTo(goodsInfoVo.getPriceGe()) != 0 || priceLe.compareTo(goodsInfoVo.getPriceLe()) != 0) {
...@@ -752,7 +757,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -752,7 +757,11 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
String spuId = goodsSkuInfoVo.getSpuId(); String spuId = goodsSkuInfoVo.getSpuId();
String delSkuId = goodsSkuInfoVo.getSkuId(); String delSkuId = goodsSkuInfoVo.getSkuId();
GoblinGoodsInfoVo mgtGoodsInfoVo = goblinRedisUtils.getMgtGoodsInfoVo(spuId); GoblinGoodsInfoVo mgtGoodsInfoVo = goblinRedisUtils.getGoodsInfoVo(spuId);
if (null == mgtGoodsInfoVo || !mgtGoodsInfoVo.getDelFlg().equals("0")) {
log.warn("商品管理:商品编辑:SKU删除警告:SPU不存在或已删除[uid={},spuId={},skuId={}]", uid, spuId, delSkuId);
return false;
}
mgtGoodsInfoVo.getSkuIdList().removeIf(r -> r.equals(delSkuId)); mgtGoodsInfoVo.getSkuIdList().removeIf(r -> r.equals(delSkuId));
List<GoblinGoodsSpecVo> specVoList = mgtGoodsInfoVo.getSpecVoList(); List<GoblinGoodsSpecVo> specVoList = mgtGoodsInfoVo.getSpecVoList();
...@@ -792,23 +801,24 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -792,23 +801,24 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
goodsSkuInfoVo.setDeletedBy(uid); goodsSkuInfoVo.setDeletedBy(uid);
goodsSkuInfoVo.setDeletedAt(now); goodsSkuInfoVo.setDeletedAt(now);
List<String> skuReList = goblinRedisUtils.getSkuRe(delSkuId); List<String> delSkuIdList = goblinRedisUtils.getSkuRe(delSkuId);
skuReList = null == skuReList ? CollectionUtil.arrayListString() : skuReList; delSkuIdList = null == delSkuIdList ? CollectionUtil.arrayListString() : delSkuIdList;
skuReList.add(delSkuId); delSkuIdList.add(delSkuId);
if (goblinMongoUtils.delGoodsSkuInfoVo(goodsSkuInfoVo, skuReList)) { if (goblinMongoUtils.delGoodsSkuInfoVo(goodsSkuInfoVo, delSkuIdList)) {
// goblinRedisUtils.delGoodsSkuInfoVo(delSkuId); // goblinRedisUtils.delGoodsSkuInfoVo(delSkuId);
// goblinRedisUtils.delGoodsSkuInfoVoByUnShelves(delSkuId); // goblinRedisUtils.delGoodsSkuInfoVoByUnShelves(delSkuId);
skuReList.forEach(skuRe -> { delSkuIdList.forEach(skuId -> {
goblinRedisUtils.delGoodsSkuInfoVo(skuRe); goblinRedisUtils.delGoodsSkuInfoVo(skuId);
goblinRedisUtils.delGoodsSkuInfoVoByUnShelves(skuRe); goblinRedisUtils.delGoodsSkuInfoVoByUnShelves(skuId);
}); });
BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO; BigDecimal priceGe = BigDecimal.ZERO, priceLe = BigDecimal.ZERO;
for (String skuId : mgtGoodsInfoVo.getSkuIdList()) { for (String skuId : mgtGoodsInfoVo.getSkuIdList()) {
GoblinGoodsSkuInfoVo skuInfoVo = goblinRedisUtils.getMgtGoodsSkuInfoVo(skuId); GoblinGoodsSkuInfoVo skuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
if (null != skuInfoVo && skuInfoVo.getDelFlg().equals("0")) {
priceGe = priceGe.compareTo(BigDecimal.ZERO) == 0 ? skuInfoVo.getPrice() : (priceGe.compareTo(skuInfoVo.getPrice()) > 0 ? skuInfoVo.getPrice() : priceGe); priceGe = priceGe.compareTo(BigDecimal.ZERO) == 0 ? skuInfoVo.getPrice() : (priceGe.compareTo(skuInfoVo.getPrice()) > 0 ? skuInfoVo.getPrice() : priceGe);
priceLe = priceLe.compareTo(skuInfoVo.getPrice()) < 0 ? skuInfoVo.getPrice() : priceLe; priceLe = priceLe.compareTo(skuInfoVo.getPrice()) < 0 ? skuInfoVo.getPrice() : priceLe;
}
} }
mgtGoodsInfoVo.setUpdatedBy(uid); mgtGoodsInfoVo.setUpdatedBy(uid);
mgtGoodsInfoVo.setUpdatedAt(now); mgtGoodsInfoVo.setUpdatedAt(now);
...@@ -821,11 +831,12 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -821,11 +831,12 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
} }
goblinMongoUtils.updateGoodsInfoVo(mgtGoodsInfoVo); goblinMongoUtils.updateGoodsInfoVo(mgtGoodsInfoVo);
goblinRedisUtils.delGoodsInfoVo(spuId); goblinRedisUtils.delGoodsInfoVo(spuId);
goblinRedisUtils.delGoodsInfoVoByUnShelves(spuId);
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del")); toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del"));
LinkedList<Object[]> delGoodsSkuObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> delGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
delGoodsSkuObjs.add(new Object[]{uid, now, uid, now, spuId, goodsSkuInfoVo.getStoreId()}); delSkuIdList.forEach(skuId -> delGoodsSkuObjs.add(new Object[]{uid, now, uid, now, skuId}));
toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku1")); toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku1"));
// LinkedList<Object[]> updateGoodsSpuSpecDelObjs = CollectionUtil.linkedListObjectArr(); // LinkedList<Object[]> updateGoodsSpuSpecDelObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku2")); toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku2"));
...@@ -847,10 +858,14 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -847,10 +858,14 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
// } // }
@Override @Override
public void goodsShelvesProcessing(GoblinStoreMgtGoodsActionParam storeMgtGoodsActionParam, String uid, boolean shelvesFlg) { public void goodsShelvesProcessing(GoblinStoreMgtGoodsActionParam mgtGoodsActionParam, String uid, boolean shelvesFlg, List<String> spuNoList) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String storeId = storeMgtGoodsActionParam.getStoreId(); String storeId = mgtGoodsActionParam.getStoreId();
List<String> spuIdList = storeMgtGoodsActionParam.getSpuIdList(); List<String> spuIdList = mgtGoodsActionParam.getSpuIdList();
if (!shelvesFlg) {// 下架操作,需处理关联活动的商品数据
spuIdList.addAll(goblinMongoUtils.getMgtSpuIdsForMarketBySpuNos(spuNoList, "3"));
}
if (goblinMongoUtils.updateGoodsInfoVoByShelves(storeId, spuIdList, shelvesFlg, uid, now)) { if (goblinMongoUtils.updateGoodsInfoVoByShelves(storeId, spuIdList, shelvesFlg, uid, now)) {
if (goblinMongoUtils.updateGoodsSkuInfoVoByShelves(storeId, spuIdList, shelvesFlg, uid, now)) { if (goblinMongoUtils.updateGoodsSkuInfoVoByShelves(storeId, spuIdList, shelvesFlg, uid, now)) {
...@@ -884,25 +899,34 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -884,25 +899,34 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
} }
@Override @Override
public void goodsRemove(GoblinStoreMgtGoodsActionParam storeMgtGoodsActionParam, String uid) { public void goodsRemove(GoblinStoreMgtGoodsActionParam mgtGoodsActionParam, String uid, List<String> spuNoList) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String storeId = storeMgtGoodsActionParam.getStoreId(); String storeId = mgtGoodsActionParam.getStoreId();
List<String> spuIdList = storeMgtGoodsActionParam.getSpuIdList(); List<String> spuIdList = mgtGoodsActionParam.getSpuIdList();
// 删除操作,需处理关联活动的商品数据
spuIdList.addAll(goblinMongoUtils.getMgtSpuIdsForMarketBySpuNos(spuNoList, "0", "1", "2"));
if (goblinMongoUtils.delGoodsInfoVoBySpuIds(storeId, spuIdList, uid, now)) { if (goblinMongoUtils.delGoodsInfoVoBySpuIds(storeId, spuIdList, uid, now)) {
goblinRedisUtils.deleteKeyForSelectGoods();// 精选商品:商品上架、下架、删除 调用的方法 goblinRedisUtils.deleteKeyForSelectGoods();// 精选商品:商品上架、下架、删除 调用的方法
spuIdList.forEach(spuId -> goblinRedisUtils.delGoodsInfoVo(spuId)); spuIdList.forEach(spuId -> {
goblinRedisUtils.delGoodsInfoVo(spuId);
goblinRedisUtils.delGoodsInfoVoByUnShelves(spuId);
});
List<String> skuIdList = goblinMongoUtils.getMgtGoodsSkuIds(storeId, spuIdList); List<String> skuIdList = goblinMongoUtils.getMgtGoodsSkuIds(storeId, spuIdList);
skuIdList.forEach(skuId -> goblinRedisUtils.delGoodsSkuInfoVo(skuId)); skuIdList.forEach(skuId -> {
goblinRedisUtils.delGoodsSkuInfoVo(skuId);
goblinRedisUtils.delGoodsSkuInfoVoByUnShelves(skuId);
});
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
toMqSqls.add(SqlMapping.get("goblin_goods.update_by_del")); toMqSqls.add(SqlMapping.get("goblin_goods.update_by_del"));
LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateGoodsObjs = CollectionUtil.linkedListObjectArr();
spuIdList.forEach(spuId -> updateGoodsObjs.add(new Object[]{uid, now, uid, now, spuId, storeId})); spuIdList.forEach(spuId -> updateGoodsObjs.add(new Object[]{uid, now, uid, now, spuId}));
toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del")); toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del_spu"));
LinkedList<Object[]> updateGoodsSkuObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
spuIdList.forEach(spuId -> updateGoodsSkuObjs.add(new Object[]{uid, now, uid, now, spuId, storeId})); spuIdList.forEach(spuId -> updateGoodsSkuObjs.add(new Object[]{uid, now, uid, now, spuId}));
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(), queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(),
SqlMapping.gets(toMqSqls, updateGoodsObjs, updateGoodsSkuObjs)); SqlMapping.gets(toMqSqls, updateGoodsObjs, updateGoodsSkuObjs));
......
...@@ -89,12 +89,14 @@ public class GoblinZhengzaiServiceImpl implements IGoblinZhengzaiService { ...@@ -89,12 +89,14 @@ public class GoblinZhengzaiServiceImpl implements IGoblinZhengzaiService {
GoblinMarketSpuListVo vo = GoblinMarketSpuListVo.getNew(); GoblinMarketSpuListVo vo = GoblinMarketSpuListVo.getNew();
String marketSpuId = marketSpuList.get(i); String marketSpuId = marketSpuList.get(i);
GoblinGoodsInfoVo spuVo = redisUtils.getGoodsInfoVo(marketSpuId); GoblinGoodsInfoVo spuVo = redisUtils.getGoodsInfoVo(marketSpuId);
vo.setMarketSpuId(marketSpuId.split(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue())[0]); if (null != spuVo && spuVo.getDelFlg().equals("0") && spuVo.getShelvesStatus().equals("3")) {
vo.setCoverPic(spuVo.getCoverPic()); vo.setMarketSpuId(marketSpuId.split(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue())[0]);
vo.setName(spuVo.getName()); vo.setCoverPic(spuVo.getCoverPic());
vo.setPriceGe(spuVo.getPriceGe()); vo.setName(spuVo.getName());
vo.setPriceLe(spuVo.getPriceLe()); vo.setPriceGe(spuVo.getPriceGe());
voList.add(vo); vo.setPriceLe(spuVo.getPriceLe());
voList.add(vo);
}
} }
return ResponseDto.success(voList); return ResponseDto.success(voList);
} }
......
...@@ -392,6 +392,21 @@ public class GoblinMongoUtils { ...@@ -392,6 +392,21 @@ public class GoblinMongoUtils {
return pagedResult.setList(goodsListVos).setTotal(count, filterParam.getPageSize()); return pagedResult.setList(goodsListVos).setTotal(count, filterParam.getPageSize());
} }
public List<String> getMgtSpuNosForMarketBySpuNos(List<String> spuNos, Object... shelvesStatus) {
Query query = Query.query(Criteria.where("spuNo").in(spuNos.toArray())
.and("marketId").exists(true).and("delFlg").is("0").and("shelvesStatus").in(shelvesStatus));
query.fields().include("spuNo");
List<GoblinGoodsInfoVo> goblinGoodsInfoVos = mongoTemplate.find(query, GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName());
return CollectionUtils.isEmpty(goblinGoodsInfoVos) ? CollectionUtil.arrayListString() : goblinGoodsInfoVos.stream().map(GoblinGoodsInfoVo::getSpuNo).distinct().collect(Collectors.toList());
}
public List<String> getMgtSpuIdsForMarketBySpuNos(List<String> spuNos, Object... shelvesStatus) {
Query query = Query.query(Criteria.where("spuNo").in(spuNos.toArray())
.and("marketId").exists(true).and("delFlg").is("0").and("shelvesStatus").in(shelvesStatus));
query.fields().include("spuId");
List<GoblinGoodsInfoVo> goblinGoodsInfoVos = mongoTemplate.find(query, GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName());
return CollectionUtils.isEmpty(goblinGoodsInfoVos) ? CollectionUtil.arrayListString() : goblinGoodsInfoVos.stream().map(GoblinGoodsInfoVo::getSpuId).distinct().collect(Collectors.toList());
}
// SPU信息 // SPU信息
public List<String> getMgtGoodsSpuIds(String storeId) { public List<String> getMgtGoodsSpuIds(String storeId) {
Query query = Query.query(Criteria.where("storeId").is(storeId).and("delFlg").is("0")); Query query = Query.query(Criteria.where("storeId").is(storeId).and("delFlg").is("0"));
...@@ -419,10 +434,10 @@ public class GoblinMongoUtils { ...@@ -419,10 +434,10 @@ public class GoblinMongoUtils {
} }
// SPU信息 // SPU信息
public GoblinGoodsInfoVo getMgtGoodsInfoVo(String spuId) { // public GoblinGoodsInfoVo getMgtGoodsInfoVo(String spuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("spuId").is(spuId).and("delFlg").is("0")), // return mongoTemplate.findOne(Query.query(Criteria.where("spuId").is(spuId).and("delFlg").is("0")),
GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName()); // GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName());
} // }
// SPU信息 // SPU信息
public GoblinGoodsInfoVo getMgtGoodsInfoVo(String storeId, String name) { public GoblinGoodsInfoVo getMgtGoodsInfoVo(String storeId, String name) {
...@@ -537,10 +552,10 @@ public class GoblinMongoUtils { ...@@ -537,10 +552,10 @@ public class GoblinMongoUtils {
} }
// SKU信息 // SKU信息
public GoblinGoodsSkuInfoVo getMgtGoodsSkuInfoVo(String skuId) { // public GoblinGoodsSkuInfoVo getMgtGoodsSkuInfoVo(String skuId) {
return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")), // return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0")),
GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName()); // GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
} // }
// SKU信息 // SKU信息
public boolean updateGoodsSkuInfoVo(GoblinGoodsSkuInfoVo vo) { public boolean updateGoodsSkuInfoVo(GoblinGoodsSkuInfoVo vo) {
......
...@@ -397,14 +397,14 @@ public class GoblinRedisUtils { ...@@ -397,14 +397,14 @@ public class GoblinRedisUtils {
return vo; return vo;
} }
public GoblinGoodsInfoVo getMgtGoodsInfoVo(String spuId) { // public GoblinGoodsInfoVo getMgtGoodsInfoVo(String spuId) {
String rk = GoblinRedisConst.BASIC_GOODS.concat(spuId); // String rk = GoblinRedisConst.BASIC_GOODS.concat(spuId);
GoblinGoodsInfoVo vo = (GoblinGoodsInfoVo) redisUtil.get(rk); // GoblinGoodsInfoVo vo = (GoblinGoodsInfoVo) redisUtil.get(rk);
if (null == vo && null != (vo = goblinMongoUtils.getMgtGoodsInfoVo(spuId))) { // if (null == vo && null != (vo = goblinMongoUtils.getMgtGoodsInfoVo(spuId))) {
redisUtil.set(rk, vo); // redisUtil.set(rk, vo);
} // }
return vo; // return vo;
} // }
public boolean setGoodsSkuInfoVo(GoblinGoodsSkuInfoVo vo) { public boolean setGoodsSkuInfoVo(GoblinGoodsSkuInfoVo vo) {
return redisUtil.set(GoblinRedisConst.BASIC_GOODS_SKU.concat(vo.getSkuId()), vo); return redisUtil.set(GoblinRedisConst.BASIC_GOODS_SKU.concat(vo.getSkuId()), vo);
...@@ -450,14 +450,14 @@ public class GoblinRedisUtils { ...@@ -450,14 +450,14 @@ public class GoblinRedisUtils {
return vo; return vo;
} }
public GoblinGoodsSkuInfoVo getMgtGoodsSkuInfoVo(String skuId) { // public GoblinGoodsSkuInfoVo getMgtGoodsSkuInfoVo(String skuId) {
String rk = GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId); // String rk = GoblinRedisConst.BASIC_GOODS_SKU.concat(skuId);
GoblinGoodsSkuInfoVo vo = (GoblinGoodsSkuInfoVo) redisUtil.get(rk); // GoblinGoodsSkuInfoVo vo = (GoblinGoodsSkuInfoVo) redisUtil.get(rk);
if (null == vo && null != (vo = goblinMongoUtils.getMgtGoodsSkuInfoVo(skuId))) { // if (null == vo && null != (vo = goblinMongoUtils.getMgtGoodsSkuInfoVo(skuId))) {
redisUtil.set(rk, vo); // redisUtil.set(rk, vo);
} // }
return vo; // return vo;
} // }
/* ---------------------------------------- ---------------------------------------- */ /* ---------------------------------------- ---------------------------------------- */
......
...@@ -31,13 +31,14 @@ ...@@ -31,13 +31,14 @@
149006=添加商品失败,规格信息无效 149006=添加商品失败,规格信息无效
149007=添加商品失败,商品名称重复 149007=添加商品失败,商品名称重复
149008=商品分类名称重复,请核实 149008=商品分类名称重复,请核实
149009= 149009=请点选商品后操作
149010=商品不存在,请核实 149010=商品不存在,请核实
149011=SKU不存在,请核实 149011=SKU不存在,请核实
149012=SKU库存不足,请核实 149012=SKU库存不足,请核实
149013=SKU编辑失败 149013=SKU编辑失败
149014=SKU编辑失败,规格信息有误 149014=SKU编辑失败,规格信息有误
149015=SKU添加失败,重复的规格信息 149015=SKU添加失败,重复的规格信息
149016=请先将商品下架后操作
148001=库存不足 148001=库存不足
......
...@@ -41,15 +41,16 @@ goblin_goods.update_by_shelves=UPDATE goblin_goods SET shelves_status=?,shelves_ ...@@ -41,15 +41,16 @@ goblin_goods.update_by_shelves=UPDATE goblin_goods SET shelves_status=?,shelves_
goblin_goods.update_by_status=UPDATE goblin_goods SET spu_appear=?,updated_by=?,updated_at=? WHERE store_id=? AND del_flg='0' goblin_goods.update_by_status=UPDATE goblin_goods SET spu_appear=?,updated_by=?,updated_at=? WHERE store_id=? AND del_flg='0'
goblin_goods.update_by_edit_sku=UPDATE goblin_goods SET price_ge=?,price_le=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0' goblin_goods.update_by_edit_sku=UPDATE goblin_goods SET price_ge=?,price_le=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0'
goblin_goods.update_by_del_sku=UPDATE goblin_goods SET price_ge=?,price_le=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0' goblin_goods.update_by_del_sku=UPDATE goblin_goods SET price_ge=?,price_le=?,updated_by=?,updated_at=? WHERE spu_id=? AND del_flg='0'
goblin_goods.update_by_del_store=UPDATE goblin_goods SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE store_id=? goblin_goods.update_by_del_store=UPDATE goblin_goods SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE store_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 store_id=? 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.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_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 spu_id=? AND store_id=? AND sku_appear='0' goblin_goods_sku.update_by_shelves=UPDATE goblin_goods_sku SET shelves_status=?,shelves_at=?,updated_by=?,updated_at=? WHERE spu_id=? AND store_id=? AND sku_appear='0'
goblin_goods_sku.update_by_del_store=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE store_id=? goblin_goods_sku.update_by_del_store=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE store_id=? AND del_flg='0'
goblin_goods_sku.update_by_del=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE spu_id=? AND store_id=? goblin_goods_sku.update_by_del_spu=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE spu_id=? AND del_flg='0'
goblin_goods_sku.update_by_del=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE sku_id=? AND del_flg='0'
goblin_goods_image.insert_byreplace=REPLACE INTO goblin_goods_image (spu_id,url)VALUES(?,?) goblin_goods_image.insert_byreplace=REPLACE INTO goblin_goods_image (spu_id,url)VALUES(?,?)
goblin_goods_image.delete=UPDATE goblin_goods_image SET del_flg='1' WHERE spu_id=? AND del_flg='0' goblin_goods_image.delete=UPDATE goblin_goods_image SET del_flg='1' WHERE spu_id=? AND del_flg='0'
goblin_goods_tag.insert_byreplace=REPLACE INTO goblin_goods_tag (spu_id,tag_id,sort,tag_belong)VALUES(?,?,?,?) goblin_goods_tag.insert_byreplace=REPLACE INTO goblin_goods_tag (spu_id,tag_id,sort,tag_belong)VALUES(?,?,?,?)
......
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