|
|
@@ -105,8 +105,7 @@ public class KwpGoodsService {
|
|
|
//添加商品信息
|
|
|
KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
|
|
|
Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
|
|
|
- goods.setCode(NumberUtils.createRandomVcode()).setAreaCode(cityCode).setEntId(entId)
|
|
|
- .setAddedTime(new Date()).setStatus(GoodsStatusEnum.PUT_ON_SHELVES.getCode());
|
|
|
+ goods.setCode(NumberUtils.createRandomVcode()).setAreaCode(cityCode).setEntId(entId).setAddedTime(new Date()).setStatus(GoodsStatusEnum.PUT_ON_SHELVES.getCode());
|
|
|
kwpGoodsMapper.insert(goods);
|
|
|
addGoodsOtherInfo(goods.getId(), addGoodsParam);
|
|
|
}
|
|
|
@@ -189,11 +188,7 @@ public class KwpGoodsService {
|
|
|
if (Objects.nonNull(managerInfo)) {
|
|
|
detail.setManagerName(managerInfo.getName()).setManagerPhone(managerInfo.getPhone());
|
|
|
}
|
|
|
- detail.setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), detail.getGoodsType()))
|
|
|
- .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), detail.getTrading()))
|
|
|
- .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), detail.getUnit()))
|
|
|
- .setTaxRateLabel(DictEnum.getLabel(DictTypeEnum.TAX_RATE.getType(), detail.getTaxRate()))
|
|
|
- .setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(detail.getStatus())));
|
|
|
+ detail.setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), detail.getGoodsType())).setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), detail.getTrading())).setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), detail.getUnit())).setTaxRateLabel(DictEnum.getLabel(DictTypeEnum.TAX_RATE.getType(), detail.getTaxRate())).setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(detail.getStatus())));
|
|
|
//商品图片信息
|
|
|
List<KwpGoodsImage> goodsImages = kwpGoodsImageService.getByGoodsId(id);
|
|
|
List<GoodsImagesDetail> images = BeanUtils.copyToList(goodsImages, GoodsImagesDetail.class);
|
|
|
@@ -228,11 +223,9 @@ public class KwpGoodsService {
|
|
|
if (Objects.isNull(goods)) {
|
|
|
throw new BusinessException("当前商品不存在!");
|
|
|
}
|
|
|
- if (Objects.equals(goods.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())
|
|
|
- || Objects.equals(goods.getStatus(), GoodsStatusEnum.TAKE_OFF_SHELVES.getCode())) {
|
|
|
+ if (Objects.equals(goods.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode()) || Objects.equals(goods.getStatus(), GoodsStatusEnum.TAKE_OFF_SHELVES.getCode())) {
|
|
|
judgeParameters(param);
|
|
|
- if (Objects.equals(goods.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode()) &&
|
|
|
- goods.getAmount().compareTo(param.getAmount()) != 0) {
|
|
|
+ if (Objects.equals(goods.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode()) && goods.getAmount().compareTo(param.getAmount()) != 0) {
|
|
|
throw new BusinessException("上架商品不可修改库存数量!");
|
|
|
}
|
|
|
}
|
|
|
@@ -435,11 +428,9 @@ public class KwpGoodsService {
|
|
|
}
|
|
|
});
|
|
|
//地址信息
|
|
|
- Map<Long, KwpGoodsAddress> addressMap = kwpGoodsAddressService.getByGoodsIds(goodsIds)
|
|
|
- .stream().collect(Collectors.toMap(KwpGoodsAddress::getGoodsId, e -> e, (k1, k2) -> k1));
|
|
|
+ Map<Long, KwpGoodsAddress> addressMap = kwpGoodsAddressService.getByGoodsIds(goodsIds).stream().collect(Collectors.toMap(KwpGoodsAddress::getGoodsId, e -> e, (k1, k2) -> k1));
|
|
|
//价格梯度信息
|
|
|
- Map<Long, List<KwpGoodsPriceRange>> priceRangeMap = kwpGoodsPriceRangeService.getByGoodsIds(goodsIds)
|
|
|
- .stream().collect(Collectors.groupingBy(KwpGoodsPriceRange::getGoodsId));
|
|
|
+ Map<Long, List<KwpGoodsPriceRange>> priceRangeMap = kwpGoodsPriceRangeService.getByGoodsIds(goodsIds).stream().collect(Collectors.groupingBy(KwpGoodsPriceRange::getGoodsId));
|
|
|
//用户信息
|
|
|
List<UserCacheResDto> userList = remoteSystemService.queryUserCacheByIds(userIds);
|
|
|
Map<Long, UserCacheResDto> userMap = userList.stream().collect(Collectors.toMap(UserCacheResDto::getId, e -> e, (k1, k2) -> k1));
|
|
|
@@ -454,19 +445,9 @@ public class KwpGoodsService {
|
|
|
GoodsList goodsList = BeanUtils.copyProperties(e, GoodsList.class);
|
|
|
UserCacheResDto manager = userMap.get(e.getManager());
|
|
|
UserCacheResDto createUser = userMap.get(e.getCreateBy());
|
|
|
- goodsList.setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(goodsList.getStatus())))
|
|
|
- .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), goodsList.getGoodsType()))
|
|
|
- .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), goodsList.getUnit()))
|
|
|
- .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), goodsList.getTrading()))
|
|
|
- .setTaxRateLabel(DictEnum.getLabel(DictTypeEnum.TAX_RATE.getType(), goodsList.getTaxRate()))
|
|
|
- .setManageName(Objects.nonNull(manager) ? manager.getName() : null)
|
|
|
- .setPhone(Objects.nonNull(manager) ? manager.getPhone() : null)
|
|
|
- .setSupplyEnt(Objects.nonNull(entMap.get(e.getSupplyEntId())) ? entMap.get(e.getSupplyEntId()) : null)
|
|
|
- .setAddress(Objects.isNull(addressMap.get(id)) ? null : addressMap.get(id).getName())
|
|
|
- .setCreateByName(Objects.nonNull(createUser) ? createUser.getName() : null);
|
|
|
+ goodsList.setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(goodsList.getStatus()))).setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), goodsList.getGoodsType())).setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), goodsList.getUnit())).setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), goodsList.getTrading())).setTaxRateLabel(DictEnum.getLabel(DictTypeEnum.TAX_RATE.getType(), goodsList.getTaxRate())).setManageName(Objects.nonNull(manager) ? manager.getName() : null).setPhone(Objects.nonNull(manager) ? manager.getPhone() : null).setSupplyEnt(Objects.nonNull(entMap.get(e.getSupplyEntId())) ? entMap.get(e.getSupplyEntId()) : null).setAddress(Objects.isNull(addressMap.get(id)) ? null : addressMap.get(id).getName()).setCreateByName(Objects.nonNull(createUser) ? createUser.getName() : null);
|
|
|
List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(id);
|
|
|
- goodsList.setHighestPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(priceRanges.size() - 1).getPrice())
|
|
|
- .setLowestPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(0).getPrice());
|
|
|
+ goodsList.setHighestPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(priceRanges.size() - 1).getPrice()).setLowestPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(0).getPrice());
|
|
|
result.add(goodsList);
|
|
|
});
|
|
|
return PageResult.build(params.getPage(), params.getPageSize(), goodsIpage.getTotal(), result);
|
|
|
@@ -488,9 +469,7 @@ public class KwpGoodsService {
|
|
|
if (Objects.nonNull(params.getEndCreateTime())) {
|
|
|
wrapper.le(KwpGoods::getCreateTime, DateUtil.offsetDay(params.getEndCreateTime(), 1));
|
|
|
}
|
|
|
- wrapper.ge(Objects.nonNull(params.getStartCreateTime()), KwpGoods::getCreateTime, params.getStartCreateTime())
|
|
|
- .eq(StringUtils.isNotBlank(params.getTrading()), KwpGoods::getTrading, params.getTrading())
|
|
|
- .eq(Objects.nonNull(params.getStatus()) && isPage, KwpGoods::getStatus, params.getStatus());
|
|
|
+ wrapper.ge(Objects.nonNull(params.getStartCreateTime()), KwpGoods::getCreateTime, params.getStartCreateTime()).eq(StringUtils.isNotBlank(params.getTrading()), KwpGoods::getTrading, params.getTrading()).eq(Objects.nonNull(params.getStatus()) && isPage, KwpGoods::getStatus, params.getStatus());
|
|
|
if (StringUtils.isNotBlank(params.getGoodsType()) && StringUtils.isNotBlank(params.getGoodsTypeValue())) {
|
|
|
List<SysDictResDto> goodsTypeList = remoteSystemService.queryDictBottom(params.getGoodsType(), params.getGoodsTypeValue());
|
|
|
if (CollectionUtils.isNotEmpty(goodsTypeList)) {
|
|
|
@@ -567,11 +546,7 @@ public class KwpGoodsService {
|
|
|
List<GoodsListExport> list = new ArrayList<>();
|
|
|
goodsLists.forEach(e -> {
|
|
|
GoodsListExport export = BeanUtils.copyProperties(e, GoodsListExport.class);
|
|
|
- export.setHighestPrice(Objects.isNull(e.getHighestPrice()) ? null : String.valueOf(e.getHighestPrice()))
|
|
|
- .setLowestPrice(Objects.isNull(e.getLowestPrice()) ? null : String.valueOf(e.getLowestPrice()))
|
|
|
- .setAddedTime(Objects.isNull(e.getAddedTime()) ? null : DateUtil.getDateTime(e.getAddedTime()))
|
|
|
- .setShelfTime(Objects.isNull(e.getShelfTime()) ? null : DateUtil.getDateTime(e.getShelfTime()))
|
|
|
- .setCreateTime(Objects.isNull(e.getCreateTime()) ? null : DateUtil.getDateTime(e.getCreateTime()));
|
|
|
+ export.setHighestPrice(Objects.isNull(e.getHighestPrice()) ? null : String.valueOf(e.getHighestPrice())).setLowestPrice(Objects.isNull(e.getLowestPrice()) ? null : String.valueOf(e.getLowestPrice())).setAddedTime(Objects.isNull(e.getAddedTime()) ? null : DateUtil.getDateTime(e.getAddedTime())).setShelfTime(Objects.isNull(e.getShelfTime()) ? null : DateUtil.getDateTime(e.getShelfTime())).setCreateTime(Objects.isNull(e.getCreateTime()) ? null : DateUtil.getDateTime(e.getCreateTime()));
|
|
|
list.add(export);
|
|
|
});
|
|
|
return list;
|
|
|
@@ -587,8 +562,7 @@ public class KwpGoodsService {
|
|
|
*/
|
|
|
public void batchPutOnShelves(Long id) {
|
|
|
LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(KwpGoods::getId, id).eq(KwpGoods::getEntId, LoginUserHolder.getEntId())
|
|
|
- .eq(KwpGoods::getDelFlag, Global.NO).last("LIMIT 1");
|
|
|
+ wrapper.eq(KwpGoods::getId, id).eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO).last("LIMIT 1");
|
|
|
KwpGoods goods = kwpGoodsMapper.selectOne(wrapper);
|
|
|
if (Objects.isNull(goods)) {
|
|
|
throw new BusinessException("商品不存在!");
|
|
|
@@ -605,8 +579,7 @@ public class KwpGoodsService {
|
|
|
judgeParameters(updateParam);
|
|
|
}
|
|
|
LambdaUpdateWrapper<KwpGoods> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
- updateWrapper.set(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).set(KwpGoods::getAddedTime, new Date())
|
|
|
- .eq(KwpGoods::getId, id);
|
|
|
+ updateWrapper.set(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).set(KwpGoods::getAddedTime, new Date()).eq(KwpGoods::getId, id);
|
|
|
kwpGoodsMapper.update(null, updateWrapper);
|
|
|
}
|
|
|
|
|
|
@@ -620,15 +593,13 @@ public class KwpGoodsService {
|
|
|
*/
|
|
|
public void batchTakeOffShelves(List<Long> ids) {
|
|
|
LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.in(KwpGoods::getId, ids).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode())
|
|
|
- .eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO);
|
|
|
+ wrapper.in(KwpGoods::getId, ids).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO);
|
|
|
List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
|
|
|
if (!Objects.equals(ids.size(), list.size())) {
|
|
|
throw new BusinessException("下架操作仅针对“已上架”状态的单据");
|
|
|
}
|
|
|
LambdaUpdateWrapper<KwpGoods> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
- updateWrapper.set(KwpGoods::getStatus, GoodsStatusEnum.TAKE_OFF_SHELVES.getCode()).set(KwpGoods::getShelfTime, new Date())
|
|
|
- .in(KwpGoods::getId, ids);
|
|
|
+ updateWrapper.set(KwpGoods::getStatus, GoodsStatusEnum.TAKE_OFF_SHELVES.getCode()).set(KwpGoods::getShelfTime, new Date()).in(KwpGoods::getId, ids);
|
|
|
kwpGoodsMapper.update(null, updateWrapper);
|
|
|
}
|
|
|
|
|
|
@@ -642,8 +613,7 @@ public class KwpGoodsService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void batchDelete(List<Long> ids) {
|
|
|
LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.in(KwpGoods::getId, ids).in(KwpGoods::getStatus, 0, 2)
|
|
|
- .eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO);
|
|
|
+ wrapper.in(KwpGoods::getId, ids).in(KwpGoods::getStatus, 0, 2).eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO);
|
|
|
List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
|
|
|
if (!Objects.equals(ids.size(), list.size())) {
|
|
|
throw new BusinessException("删除操作仅针对“已下架”“草稿”状态的单据");
|
|
|
@@ -676,8 +646,7 @@ public class KwpGoodsService {
|
|
|
wrapper.in(KwpGoods::getGoodsType, goodsTypes);
|
|
|
}
|
|
|
}
|
|
|
- wrapper.in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
|
|
|
- .eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO);
|
|
|
+ wrapper.in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings()).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO);
|
|
|
if (Objects.nonNull(params.getAreaCode()) && Objects.nonNull(params.getAreaLevel())) {
|
|
|
switch (params.getAreaLevel()) {
|
|
|
case 1 ->
|
|
|
@@ -710,11 +679,9 @@ public class KwpGoodsService {
|
|
|
supplyEntIds.add(e.getSupplyEntId());
|
|
|
});
|
|
|
//地址信息
|
|
|
- Map<Long, KwpGoodsAddress> addressMap = kwpGoodsAddressService.getByGoodsIds(goodsIds)
|
|
|
- .stream().collect(Collectors.toMap(KwpGoodsAddress::getGoodsId, e -> e, (k1, k2) -> k1));
|
|
|
+ Map<Long, KwpGoodsAddress> addressMap = kwpGoodsAddressService.getByGoodsIds(goodsIds).stream().collect(Collectors.toMap(KwpGoodsAddress::getGoodsId, e -> e, (k1, k2) -> k1));
|
|
|
//价格梯度信息
|
|
|
- Map<Long, List<KwpGoodsPriceRange>> priceRangeMap = kwpGoodsPriceRangeService.getByGoodsIds(goodsIds)
|
|
|
- .stream().collect(Collectors.groupingBy(KwpGoodsPriceRange::getGoodsId));
|
|
|
+ Map<Long, List<KwpGoodsPriceRange>> priceRangeMap = kwpGoodsPriceRangeService.getByGoodsIds(goodsIds).stream().collect(Collectors.groupingBy(KwpGoodsPriceRange::getGoodsId));
|
|
|
//供应企业信息
|
|
|
List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByIds(supplyEntIds);
|
|
|
Map<Long, String> entMap = entList.stream().collect(Collectors.toMap(EntCacheResDto::getId, EntCacheResDto::getFirmName, (k1, k2) -> k1));
|
|
|
@@ -723,13 +690,7 @@ public class KwpGoodsService {
|
|
|
BuildingMaterialsMarketList materials = BeanUtils.copyProperties(e, BuildingMaterialsMarketList.class);
|
|
|
KwpGoodsAddress address = addressMap.get(e.getId());
|
|
|
List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(e.getId());
|
|
|
- materials.setAddressName(Objects.isNull(address) ? null : address.getCityName())
|
|
|
- .setDetailAddress(Objects.isNull(address) ? null : address.getDetailAddress())
|
|
|
- .setPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(0).getPrice())
|
|
|
- .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), e.getGoodsType()))
|
|
|
- .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
|
|
|
- .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), e.getUnit()))
|
|
|
- .setSupplyEnt(entMap.get(e.getSupplyEntId()));
|
|
|
+ materials.setAddressName(Objects.isNull(address) ? null : address.getCityName()).setDetailAddress(Objects.isNull(address) ? null : address.getDetailAddress()).setPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(0).getPrice()).setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), e.getGoodsType())).setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading())).setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), e.getUnit())).setSupplyEnt(entMap.get(e.getSupplyEntId()));
|
|
|
result.add(materials);
|
|
|
});
|
|
|
return PageResult.build(params.getPage(), params.getPageSize(), kwpGoodsPage.getTotal(), result);
|
|
|
@@ -751,9 +712,7 @@ public class KwpGoodsService {
|
|
|
}
|
|
|
wrapper.eq(KwpGoods::getSupplyEntId, params.getSupplyEntId());
|
|
|
}
|
|
|
- wrapper.like(StringUtils.isNotBlank(params.getName()), KwpGoods::getName, params.getName())
|
|
|
- .eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode())
|
|
|
- .eq(KwpGoods::getDelFlag, Global.NO).orderByDesc(KwpGoods::getAddedTime);
|
|
|
+ wrapper.like(StringUtils.isNotBlank(params.getName()), KwpGoods::getName, params.getName()).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO).orderByDesc(KwpGoods::getAddedTime);
|
|
|
List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
|
|
|
if (CollectionUtils.isEmpty(list)) {
|
|
|
return Collections.emptyList();
|
|
|
@@ -779,8 +738,7 @@ public class KwpGoodsService {
|
|
|
*/
|
|
|
public KwpGoods getGoodsById(Long id) {
|
|
|
LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
|
|
|
- LambdaQueryWrapper<KwpGoods> last = wrapper.eq(KwpGoods::getId, id).eq(KwpGoods::getEntId, LoginUserHolder.getEntId())
|
|
|
- .eq(KwpGoods::getDelFlag, Global.NO).last("LIMIT 1");
|
|
|
+ LambdaQueryWrapper<KwpGoods> last = wrapper.eq(KwpGoods::getId, id).eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO).last("LIMIT 1");
|
|
|
return kwpGoodsMapper.selectOne(last);
|
|
|
}
|
|
|
|
|
|
@@ -841,8 +799,7 @@ public class KwpGoodsService {
|
|
|
*/
|
|
|
public BigDecimal maxPurchaseNum(MaxPurchaseNumParam param) {
|
|
|
LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
|
|
|
- LambdaQueryWrapper<KwpGoods> last = wrapper.eq(KwpGoods::getId, param.getGoodsId()).eq(KwpGoods::getDelFlag, Global.NO)
|
|
|
- .eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).last("LIMIT 1");
|
|
|
+ LambdaQueryWrapper<KwpGoods> last = wrapper.eq(KwpGoods::getId, param.getGoodsId()).eq(KwpGoods::getDelFlag, Global.NO).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).last("LIMIT 1");
|
|
|
KwpGoods goods = kwpGoodsMapper.selectOne(last);
|
|
|
if (Objects.isNull(goods)) {
|
|
|
throw new BusinessException("商品不存在或已下架!");
|
|
|
@@ -889,22 +846,21 @@ public class KwpGoodsService {
|
|
|
public void updateAmount(UpdateAmountParam param) {
|
|
|
Long id = param.getId();
|
|
|
BigDecimal updateAmount = param.getUpdateAmount();
|
|
|
- LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(KwpGoods::getId, id).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode())
|
|
|
- .eq(KwpGoods::getDelFlag, Global.NO).last("LIMIT 1");
|
|
|
- KwpGoods goods = kwpGoodsMapper.selectOne(wrapper);
|
|
|
- if (Objects.isNull(goods)) {
|
|
|
- throw new BusinessException("商品不存在或已下架!");
|
|
|
- }
|
|
|
- BigDecimal amount = goods.getAmount();
|
|
|
- BigDecimal finalAmount = Objects.equals(param.getUpdateType(), 0) ? amount.add(updateAmount) : amount.subtract(updateAmount);
|
|
|
- if (finalAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
- throw new BusinessException("库存数量更新后不能小于等于零!");
|
|
|
- }
|
|
|
String lockKey = String.format(RedisConstant.GOODS_UPDATE_AMOUNT_KEY, id);
|
|
|
+ if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 5L, 10L))) {
|
|
|
+ throw new BusinessException("业务繁忙,请稍后再试!");
|
|
|
+ }
|
|
|
try {
|
|
|
- if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 10L, 30L))) {
|
|
|
- throw new BusinessException("业务繁忙,请稍后再试!");
|
|
|
+ LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(KwpGoods::getId, id).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO).last("LIMIT 1");
|
|
|
+ KwpGoods goods = kwpGoodsMapper.selectOne(wrapper);
|
|
|
+ if (Objects.isNull(goods)) {
|
|
|
+ throw new BusinessException("商品不存在或已下架!");
|
|
|
+ }
|
|
|
+ BigDecimal amount = goods.getAmount();
|
|
|
+ BigDecimal finalAmount = Objects.equals(param.getUpdateType(), 0) ? amount.add(updateAmount) : amount.subtract(updateAmount);
|
|
|
+ if (finalAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ throw new BusinessException("库存数量更新后不能小于等于零!");
|
|
|
}
|
|
|
goods.setAmount(finalAmount);
|
|
|
kwpGoodsMapper.updateById(goods);
|