当前位置 主页 > 网站技术 > 代码类 >

    基于Java创建一个订单类代码实例

    栏目:代码类 时间:2019-12-19 18:05

    这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    需求描述

    定义一个类,描述订单信息 订单id 订单所属用户(用户对象) 订单所包含的商品(不定数量个商品对象) 订单总金额 订单应付金额: 总金额500~1000,打折85折 总金额1000~1500,打折80折 总金额1500~2000,打折70折 总金额超过2000,打折65折

    在此基础上,还要看用户的vip等级

    用户vip等级为:一般会员,则折上折:95 用户vip等级为:中级会员,则折上折:90 用户vip等级为:高级会员,则折上折:80

    代码实现

    User.java

    package cn.test.logan.day04;
    /**
     * 用户类
     * 包含信息项目:用户ID、用户名、用户会员等级
     * @author QIN
     *
     */
    public class User {
      // 用户ID
      public String CustId;
        
      // 用户名
      public String CustName;
        
      // 用户会员等级
      public String CustLevel;
        
      public User() {
        
      }
      
      public User(String CustId,String CustName,String CustLevel) {
        this.CustId = CustId;
        this.CustName = CustName ;
        this.CustLevel = CustLevel ;
      }
    }

    Product.java

    package cn.test.logan.day04;
    /**
     * 商品类
     * 包含:商品ID、商品名称、商品价格、商品数量
     * @author QIN
     *
     */
    public class Product {
      
      // 商品ID
      public String pId;
      
      // 商品名称
      public String pName;
      
      //商品价格
      public float price;
      
      // 商品数量
      public int number;
      
      public Product() {
        
      }
      
      public Product(String pId, String pName,float price,int number) {
        this.pId = pId;
        this.pName = pName;
        this.price = price;
        this.number = number;
      }
    }

    Order.java

    package cn.test.logan.day04;
    
    import java.util.ArrayList;
    
    /**
     * 订单类
     * 包含:订单ID、订单所属用户、订单所包含的商品、订单总金额、订单应付金额
     * 500-1000 -------> 8.5折
     * 1000-1500 -------> 8折
     * 1500-2000 -------> 7折
     * 2000以上 -------> 6.5折
     *  如果是会员,那么可以基于以上折扣继续折扣
     *  一般会员:9.5折
     *  中级会员:9折
     *  高级会员:8折
     * @author QIN
     *
     */
    public class Order {
      // 订单ID 
      public String ordId;
      
      // 订单所属用户
      public User user;
      
      // 订单所包含的商品(多个商品,使用ArrayList)
      public ArrayList<Product> pds;
      
      // 订单总金额
      public float ordAllAmt;
      
      // 订单应付金额
      public float payAmt;
      
      // 计算总金额的方法
      public void setAllAmt() {
        float sum = 0;
        for(int i=0;i<this.pds.size();i++) {
          sum +=this.pds.get(i).price * this.pds.get(i).number;
        }
        this.ordAllAmt = sum;
      }
      
      // 计算实付金额
      public void setPayAmt() {
        float tmp = this.ordAllAmt;
        
        // 根据总金额进行折扣
        if(this.ordAllAmt >= 500 && this.ordAllAmt < 1000) {
          tmp = this.ordAllAmt * 0.85f;
        }
        if(this.ordAllAmt >= 1000 && this.ordAllAmt < 1500) {
          tmp = this.ordAllAmt * 0.8f;
        }
        if(this.ordAllAmt >= 1500 && this.ordAllAmt < 2000) {
          tmp = this.ordAllAmt * 0.7f;
        }
        if(this.ordAllAmt >= 2000) {
          tmp = this.ordAllAmt * 0.65f;
        }
        
        // 根据会员等级折扣
        if(user.CustLevel.equals("一般会员")) {
          tmp = tmp * 0.95f;
        }
        if(user.CustLevel.equals("中级会员")) {
          tmp = tmp * 0.9f;
        }
        if(user.CustLevel.equals("高级会员")) {
          tmp = tmp * 0.8f;
        }
        //计算结果赋值给对象上的payAmt变量
        this.payAmt = tmp;
      }
    
    }