首页 > 其他分享 >83、商城业务---购物车---购物车vo编写

83、商城业务---购物车---购物车vo编写

时间:2023-02-11 16:11:06浏览次数:38  
标签:return BigDecimal items void private vo --- 购物车 public

这两个vo比较独特,我们重写了它的get/set方法,对他的属性进行了计算。

package com.gulimall.cart.vo;

import java.math.BigDecimal;
import java.util.List;

/**
 * 整个购物车
 *  需要计算的属性,重写它的get方法,保证每次获取属性都会进行计算
 */
public class Cart {
    List<CartItem> items;
    private Integer countNum;//商品数量
    private Integer countType;//商品类型种类
    private BigDecimal totalAmount;//商品总价
    private BigDecimal reduce = new BigDecimal("0.00");//减免价格(默认为0)

    public List<CartItem> getItems() {
        return items;
    }

    public void setItems(List<CartItem> items) {
        this.items = items;
    }

    public Integer getCountNum() {
        int count = 0;
        if (this.items!=null && this.items.size()>0){
            for (CartItem item : items) {
                count += item.getCount();
            }
        }
        return count;
    }


    public Integer getCountType() {
        if (this.items!=null && this.items.size()>0){
            return this.items.size();
        }else {
            return 0;
        }
    }

    public BigDecimal getTotalAmount() {
        BigDecimal total = new BigDecimal("0");

        //1、计算购物项总价
        if (this.items!=null && this.items.size()>0){
            for (CartItem item : this.items) {
                total = total.add(item.getTotalPrice());
            }
        }

        //2、减去优惠信息
        total = total.subtract(this.getReduce());

        return total;
    }

    public BigDecimal getReduce() {
        return reduce;
    }

    public void setReduce(BigDecimal reduce) {
        this.reduce = reduce;
    }
}
package com.gulimall.cart.vo;

import java.math.BigDecimal;
import java.util.List;

/**
 * 购物项内容
 */
public class CartItem {
    private Long skuId;
    private Boolean check = true;
    private String title;
    private String image;
    private List<String> skuAttr;
    private BigDecimal price;
    private Integer count;
    private BigDecimal totalPrice;

    public Long getSkuId() {
        return skuId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public Boolean getCheck() {
        return check;
    }

    public void setCheck(Boolean check) {
        this.check = check;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public List<String> getSkuAttr() {
        return skuAttr;
    }

    public void setSkuAttr(List<String> skuAttr) {
        this.skuAttr = skuAttr;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public BigDecimal getTotalPrice() {
        BigDecimal multiply = this.price.multiply(new BigDecimal("" + this.count)); //BigDecimal的乘法转化成字符串不会丢失精度
        return multiply;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }
}

标签:return,BigDecimal,items,void,private,vo,---,购物车,public
From: https://www.cnblogs.com/morehair/p/17111870.html

相关文章