增加商品库存验证,增加如果有sku则同步sku总库存与最小价格
This commit is contained in:
@ -10,12 +10,9 @@ import cn.hutool.core.bean.copier.CopyOptions;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.*;
|
||||||
|
|
||||||
import javax.validation.constraints.DecimalMax;
|
import javax.validation.constraints.*;
|
||||||
import javax.validation.constraints.DecimalMin;
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@ -24,8 +21,13 @@ import java.math.BigDecimal;
|
|||||||
* @date 2020-05-12
|
* @date 2020-05-12
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Data
|
|
||||||
@TableName("yx_store_product")
|
@TableName("yx_store_product")
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
public class YxStoreProduct implements Serializable {
|
public class YxStoreProduct implements Serializable {
|
||||||
|
|
||||||
/** 商品id */
|
/** 商品id */
|
||||||
@ -104,6 +106,8 @@ public class YxStoreProduct implements Serializable {
|
|||||||
|
|
||||||
|
|
||||||
/** 库存 */
|
/** 库存 */
|
||||||
|
@NotNull(message = "请输入库存")
|
||||||
|
@Min(message = "库存不能小于0",value = 1)
|
||||||
private Integer stock;
|
private Integer stock;
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,13 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
// 默认不使用缓存
|
// 默认不使用缓存
|
||||||
@ -242,6 +236,29 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
|
|||||||
throw new BadRequestException("请设置至少一个属性!");
|
throw new BadRequestException("请设置至少一个属性!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//如果设置sku 处理价格与库存
|
||||||
|
|
||||||
|
////取最小价格
|
||||||
|
BigDecimal minPrice = valueGroup
|
||||||
|
.stream()
|
||||||
|
.map(YxStoreProductAttrValue::getPrice)
|
||||||
|
.min(Comparator.naturalOrder())
|
||||||
|
.orElse(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
//计算库存
|
||||||
|
Integer stock = valueGroup
|
||||||
|
.stream()
|
||||||
|
.map(YxStoreProductAttrValue::getStock)
|
||||||
|
.reduce(Integer::sum)
|
||||||
|
.orElse(0);
|
||||||
|
|
||||||
|
YxStoreProduct yxStoreProduct = YxStoreProduct.builder()
|
||||||
|
.stock(stock)
|
||||||
|
.price(minPrice)
|
||||||
|
.id(id)
|
||||||
|
.build();
|
||||||
|
this.updateById(yxStoreProduct);
|
||||||
|
|
||||||
//插入之前清空
|
//插入之前清空
|
||||||
clearProductAttr(id,false);
|
clearProductAttr(id,false);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user