在线商城修改

This commit is contained in:
zjf committed 2025-07-17 11:23:10 +08:00
1 parent 326222615a
commit 11f7fcb343
7 files changed
+41 -10

No files matched your search

@@ -116,4 +116,10 @@ public class ShopSkuEntity extends Model<ShopSkuEntity> {
@Schema(description="版本号")
private Integer version;
/**
* 销量
*/
@Schema(description="销量")
private Integer salesCount;
}
@@ -46,7 +46,7 @@ public class ShopSpuListAppVo {
/**
* 总库存
*/
@Schema(description="总库存")
private Double totalStock;
@Schema(description="总销量")
private Double salesCount;
}
@@ -60,13 +60,13 @@ public class AppShopSpuController {
.map(price -> new java.math.BigDecimal(price).divide(new java.math.BigDecimal(100)))
.min(java.math.BigDecimal::compareTo)
.orElse(java.math.BigDecimal.ZERO));
vo.setTotalStock(
skus.stream()
.map(ShopSkuEntity::getStock)
.filter(java.util.Objects::nonNull)
.mapToDouble(Double::doubleValue)
.sum()
);
// vo.setTotalStock(
// skus.stream()
// .map(ShopSkuEntity::gets)
// .filter(java.util.Objects::nonNull)
// .mapToDouble(Double::doubleValue)
// .sum()
// );
return vo;
});
return R.ok(voPage);
@@ -8,4 +8,9 @@ import org.apache.ibatis.annotations.Mapper;
public interface ShopSpuMapper extends PjcloudBaseMapper<ShopSpuEntity> {
/**
* 修改销量
* @param num
*/
void updateSalesCount(Long spuId,Integer num);
}
@@ -1,9 +1,12 @@
package com.bsd.pjcloud.supermarket.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.supermarket.entity.ShopSkuEntity;
import com.bsd.pjcloud.supermarket.mapper.ShopSkuMapper;
import com.bsd.pjcloud.supermarket.mapper.ShopSpuMapper;
import com.bsd.pjcloud.supermarket.service.ShopSkuService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* sku
@@ -12,7 +15,10 @@ import org.springframework.stereotype.Service;
* @date 2025-06-19 12:43:40
*/
@Service
@AllArgsConstructor
public class ShopSkuServiceImpl extends ServiceImpl<ShopSkuMapper, ShopSkuEntity> implements ShopSkuService {
private final ShopSpuMapper shopSpuMapper;
/**
* 修改库存(乐观锁)
* 正数:增加库存,负数:扣减库存
@@ -24,7 +30,15 @@ public class ShopSkuServiceImpl extends ServiceImpl<ShopSkuMapper, ShopSkuEntity
if (sku == null) return false;
// 扣减时判断库存是否足够
if (num < 0 && sku.getStock() < -num) return false;
LambdaQueryWrapper<ShopSkuEntity> shopSkuEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
shopSkuEntityLambdaQueryWrapper.eq(ShopSkuEntity::getId, skuId);
ShopSkuEntity shopSkuEntity = baseMapper.selectOne(shopSkuEntityLambdaQueryWrapper);
if (null==shopSkuEntity){
return false;
}
int updated = baseMapper.deductStock(skuId, num, sku.getVersion());
//更新spu已售总数
shopSpuMapper.updateSalesCount(shopSkuEntity.getSpuId(),num);
if (updated > 0) return true;
}
return false;
@@ -22,11 +22,12 @@
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="version" column="version"/>
<result property="salesCount" column="sales_count"/>
</resultMap>
<update id="deductStock">
UPDATE shop_sku
SET stock = stock + #{num}, version = version + 1
SET stock = stock + #{num}, version = version + 1,sales_count=sales_count+#{num}
WHERE id = #{skuId} AND stock + #{num} &gt;= 0 AND version = #{version}
</update>
</mapper>
@@ -28,4 +28,9 @@
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
</resultMap>
<update id="updateSalesCount">
UPDATE shop_spu
SET sales_count=sales_count+#{num}
WHERE id = #{spuId}
</update>
</mapper>