首页 > 编程语言 >JAVA实体类-自定义Getter Setter

JAVA实体类-自定义Getter Setter

时间:2023-04-09 22:01:58浏览次数:44  
标签:count 实体类 JAVA BigDecimal 自定义 items item return public

### 案例一

  • 整个购物车存放的商品信息 需要计算的属性需要重写get方法,保证每次获取属性都会进行计算
private BigDecimal totalPrice;

/**
 * 计算当前购物项总价
 * @return
 */
public BigDecimal getTotalPrice() {
    // 等于单价 *数量
    return this.price.multiply(new BigDecimal("" + this.count));
}

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

///购物车实体类
/**
 * 购物车子项信息
 */
List<CartItem> items;

/**
 * 商品数量
 */
private Integer countNum;

/**
 * 商品类型数量
 */
private Integer countType;

/**
 * 商品总价
 */
private BigDecimal totalAmount;

/**
 * 减免价格
 */
private BigDecimal reduce = new BigDecimal("0.00"); //默认没有满减

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

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

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

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


public BigDecimal getTotalAmount() {
    BigDecimal amount = new BigDecimal("0");
    // 计算购物项总价
    if (!CollectionUtils.isEmpty(items)) {
        for (CartItemVo cartItem : items) {
            if (cartItem.getCheck()) {
                amount = amount.add(cartItem.getTotalPrice());
            }
        }
    }
    // 计算优惠后的价格
    return amount.subtract(getReduce());
}

public BigDecimal getReduce() {
    return reduce;
}

public void setReduce(BigDecimal reduce) {
    this.reduce = reduce;
}

### 案例二

public class OrderConfirmVo {
    @Getter
    @Setter
    /** 会员收获地址列表 **/
            List<MemberAddressVo> address;

    @Getter
    @Setter
    /** 所有选中的购物项 **/
            List<OrderItemVo> items;

    /** 发票记录 **/
    @Getter
    @Setter
    /** 优惠券(会员积分) **/
    private Integer integration;

    /** 防止重复提交的令牌 **/
    @Getter
    @Setter
    private String orderToken;

    @Getter
    @Setter
    Map<Long, Boolean> stocks;

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


    /** 订单总额 **/
    //BigDecimal total;
    //计算订单总额
    public BigDecimal getTotal() {
        BigDecimal totalNum = BigDecimal.ZERO;
        if (items != null && items.size() > 0) {
            for (OrderItemVo item : items) {
                //计算当前商品的总价格
                BigDecimal itemPrice = item.getPrice().multiply(new BigDecimal(item.getCount().toString()));
                //再计算全部商品的总价格
                totalNum = totalNum.add(itemPrice);
            }
        }
        return totalNum;
    }


    /** 应付价格 **/
    //BigDecimal payPrice;
    public BigDecimal getPayPrice() {
        return getTotal();
    }
}

标签:count,实体类,JAVA,BigDecimal,自定义,items,item,return,public
From: https://blog.51cto.com/u_15993308/6179243

相关文章

  • Java5
    使用for循环计算1-100的和,除了以3结尾的那些数packagedsfa; publicclassdgd{ publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubinti,sum=0;for(i=1;i<=100;i++){if(i%10!=3) sum=sum+i; }System.out.println("和为"+sum);}......
  • 近万字总结:Java8 Stream流式处理指南
    总结/朱季谦在实际项目当中,若能熟练使用Java8的Stream流特性进行开发,就比较容易写出简洁优雅的代码。目前市面上很多开源框架,如Mybatis-Plus、kafkaStreams以及Flink流处理等,都有一个相似的地方,即用到Stream流特性,其写出的代码简洁而易懂,当然,若是在不熟悉流特性的基础上而贸......
  • JavaWeb
    JavaWebjavaweb1、基本概念1.1、前言web开发:web,网页的意思,www.baidu.com静态webhtml,css提供给所有人看的数据始终不会发生变化!动态web淘宝,几乎是所有的网站提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!技术栈:Servl......
  • 【Java 并发】【十】【JUC数据结构】【六】SynchronousQueue同步阻塞队列原理
    1 前言看过了LinkedBlockingQueue、ArrayBlockingQueue、DelayQueue等阻塞队列,这节我们又要看一个不一样的队列,SynchronousQueue同步阻塞队列。2 SynchronousQueue是什么SynchronousQueue的同步队列,使用的场景比较少,主要是用来做线程之间的数据同步传输的。线程之间的同步......
  • javaScript技巧
    一、动态修改网页内容或属性1.改变HTML内容 2.改变属性值  3.改变css样式  4.操作元素  5.定时器 ......
  • Java8 Stream
    Java8Stream1Stream概述2Stream的创建3Stream的使用案例使用的员工类3.1遍历/匹配(foreach/find/match)3.2筛选(filter)3.3聚合(max/min/count)3.4映射(map/flatMap)3.5归约(reduce)3.6收集(collect)3.6.1归集(toList/toSet/toMap)3.6.2统计(count/averag......
  • 【Java 并发】【十】【JUC数据结构】【五】DelayQueue延迟阻塞队列原理
    1 前言前两节我们看了BlockingQueue阻塞队列的两个子类,LinkedBlockingQueue、ArrayBlockingQueue,它们都是使用了ReentrantLock、Condition的来实现的,在进行插入操作、拉取数据操作之前为了并发安全都需要进行加锁;然后插入时候在容量满的时候发现没有空间了,这时候调用Condition.......
  • C# Linq俩个list<Datarow> 取差集,并自定义字段
    可以自定义类,也可以从参考官网文档:Enumerable.Except方法(System.Linq)|MicrosoftLearnList<DataRow>list1=newList<DataRow>();List<DataRow>list2=newList<DataRow>();DataTabledataTable=newDataTable();dataTable......
  • 小程序自定义组件 - 组件通信父传子
    页面组件化后,随即就面临组件间的通信问题,就组件间如何传递数据的问题.在vue中,总结下来就是父组件通过prop属性给子组件传简单的值,通过slot给子组件传dom等复杂数据;反之,子组件可通过$emit向父组件发射事件,然后在父组件中处理逻辑,达到子传父的效果.在小......
  • JavaSE02基础语法
    JavaSE02基础语法1.注释​ 注释是对代码的解释和说明文字。Java中的注释分为三种:单行注释://这是单行注释文字多行注释:/*这是多行注释文字这是多行注释文字这是多行注释文字*/注意:多行注释不能嵌套使用。文档注释(暂时用不到):/**这是多行注释文字这是多行......