Spring boot理財系統1

一、項目準備

模塊化開發的好處

  高內聚,低耦合

  並行開發,提高開發的效率

如何劃分?

  業務層次

  功能劃分

  重複使用

 (一)、工程創建

構建工具:gradle

(二)、數據庫設計

管理端                     

                               產品表

                                                                訂單表

(三)、創建表

create table product(
 
id VARCHAR(50) not null comment '產品編號',
 
name VARCHAR(50) not null comment '產品名稱',
 
threshold_amount DECIMAL(15,3) not null comment '起步金額',
 
step_amount DECIMAL(15,3) not null comment '投資步長',
 
lock_term SMALLINT not null comment '鎖定期',
 
reward_rate DECIMAL(15,3) not null comment '收益率,0-100 百分比值',
 
status VARCHAR(20) not null comment '狀態,AUDINTING:審覈中,IN_SELL:銷售 中,LOCKED:暫停銷售,FINISHED:已結束',
 
memo VARCHAR(200) comment '備註',
 
create_at datetime comment '創建時間',
 
create_user VARCHAR(20) comment '創建者',
 
update_at datetime comment '更新時間',
 
update_user VARCHAR(20) comment '更新者',
 
PRIMARY KEY(id)
 
)ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
create table order_t(
 
order_id VARCHAR(50) not null comment '訂單編號',
 
chan_id VARCHAR(50) not null comment '渠道編號',
 
product_id VARCHAR(50) not null comment '產品編號',
 
chan_user_id VARCHAR(50) not null comment '渠道用戶編號',
 
order_type VARCHAR(50) not null comment '類型,APPLY:申購,REDEEM:贖回',
 
order_status VARCHAR(50) not null comment '狀態,INIT:初始化,PROCESS:處理 中,SUCCESS:成功,FAIL:失敗',
 
outer_order_id VARCHAR(50) not null comment '外部訂單編號',
 
amount DECIMAL(15,3) not null comment '金額',
 
memo VARCHAR(200) comment '備註',
 
create_at datetime comment '創建時間',
 
update_at datetime comment '更新時間',
 
PRIMARY KEY(order_id)
 
)ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

(四)、Entity模塊

package com.qwl.entity;

import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 產品
 */
@Entity
public class Product {
    @Id
    private String id;
    private String name;
    private String status;
    //起投金額
    private BigDecimal threshouldAmount;
    //投資步長
    private BigDecimal stepAmount;
    //鎖定期
    private Integer lockTerm;
    //收益率
    private BigDecimal rewardRate;
    private String memo;
    private Date createAt;
    private Date updateAt;
    private String createUser;
    private String updateUser;

    //get set toString
}
package com.qwl.entity;

import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 訂單
 */
@Entity(name = "order_t")
public class Order {
    @Id
    private String orderId;
    //渠道id
    private String chanId;
    private String chanUserId;
    private String orderType;
    private String productId;
    private BigDecimal amount;
    private String outerOrderId;
    private String orderStatus;
    private String memo;
    private Date createAt;
    private Date updateAt;

    //get set toString
}

 (五)、enums

package com.qwl.entity.enums;

/**
 * 訂單狀態
 */
public enum OrderStatus {
    INIT("初始化"),
    PROCESS("處理中"),
    SUCCESS("成功"),
    FAIL("失敗");
    private String desc;

    OrderStatus(String desc) {
        this.desc = desc;
    }

    public String getDesc() {
        return desc;
    }
}
package com.qwl.entity.enums;

/**
 * 訂單狀態
 */
public enum OrderType {
    APPLY("申購"),
    REDEEM("贖回");

    private String desc;

    OrderType(String desc) {
        this.desc = desc;
    }

    public String getDesc() {
        return desc;
    }
}
package com.qwl.entity.enums;

/**
 * 產品狀態
 */
public enum  ProductStatus {
    AUDITING("審覈中"),

    IN_SELL("銷售中"),

    LOCKED("暫停銷售"),

    FINISHED("已結束");

    private String desc;

    ProductStatus(String desc){

        this.desc = desc;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章