• 【BigData】Java基础_创建一个订单类


    需求描述

    定义一个类,描述订单信息
    订单id
    订单所属用户(用户对象)
    订单所包含的商品(不定数量个商品对象)
    订单总金额
    订单应付金额:
        总金额500~1000,打折85折
        总金额1000~1500,打折80折
        总金额1500~2000,打折70折
        总金额超过2000,打折65折
         
        在此基础上,还要看用户的vip等级
        用户vip等级为:一般会员,则折上折:95
        用户vip等级为:中级会员,则折上折:90
        用户vip等级为:高级会员,则折上折:80

    代码实现

    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 ;
        }
    }
    User.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;
        }
        
    }
    Product.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;
        }
    
    }
    Order.java
    package cn.test.logan.day04;
    
    import java.util.ArrayList;
    
    public class OrderTest {
        public static void main(String[] args) {
            // 创建订单对象
            Order ord = new Order();
            ord.ordId="001";
            
            // 创建订单所属用户对象
            User u_xm = new User("C001","小明","高级会员");
            ord.user = u_xm;
            // 创建商品对象
            ArrayList<Product> list = new ArrayList<Product>();
            
            Product p1 = new Product("P001","杰克琼斯",500.5f,2);
            Product p2 = new Product("P002","Nick",1000f,1);
            Product p3 = new Product("P003","Adidas",1200f,2);
            
            
            list.add(p1);
            list.add(p2);
            list.add(p3);
            
            ord.pds = list ;
            ord.setAllAmt();
            ord.setPayAmt();
            
            System.out.println("订单总金额:" + ord.ordAllAmt);
            System.out.println("订单应付金额:" + ord.payAmt);
        }
    }
    OrderTest.java
  • 相关阅读:
    EntityFramework,配合Oracle.ManagedDataAccess配置Oracle数据库连接
    使用Speech实现js播放音频
    PushAsync is not supported globally on Android, please use a NavigationPage异常出现及解决方案
    Vs 2017初次配置Xamarin
    本地项目使用github管理
    服务注册和发现 Eureka
    FutureTask的理解
    Syncronized之偏向锁
    Syncronized之自适应自旋锁
    发布订阅-jedis
  • 原文地址:https://www.cnblogs.com/OliverQin/p/12064961.html
Copyright © 2020-2023  润新知