增加商品库存验证,增加如果有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.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.*;
|
||||
|
||||
import javax.validation.constraints.DecimalMax;
|
||||
import javax.validation.constraints.DecimalMin;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.*;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@ -24,8 +21,13 @@ import java.math.BigDecimal;
|
||||
* @date 2020-05-12
|
||||
*/
|
||||
|
||||
@Data
|
||||
|
||||
@TableName("yx_store_product")
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
public class YxStoreProduct implements Serializable {
|
||||
|
||||
/** 商品id */
|
||||
@ -104,6 +106,8 @@ public class YxStoreProduct implements Serializable {
|
||||
|
||||
|
||||
/** 库存 */
|
||||
@NotNull(message = "请输入库存")
|
||||
@Min(message = "库存不能小于0",value = 1)
|
||||
private Integer stock;
|
||||
|
||||
|
||||
|
@ -43,13 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
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.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
// 默认不使用缓存
|
||||
@ -242,6 +236,29 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
|
||||
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);
|
||||
|
||||
|
Reference in New Issue
Block a user