package com.fjhx.params.v3;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.fjhx.utils.BigDecimalUtil;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;

@Setter
public class MaterialMath {

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 用户id
     */
    @Getter
    private Long userId;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * 数量
     */
    private BigDecimal quantity;

    /**
     * 单价
     */
    private BigDecimal price;

    /**
     * 门幅
     */
    private BigDecimal width;

    public Date getCreateTime(int h, int m) {
        // 时
        int dateH = Integer.parseInt(DateUtil.format(createTime, "H"));
        // 分
        int dateM = Integer.parseInt(DateUtil.format(createTime, "m"));
        // 小于h时m分算前一日
        if (dateH < h || (dateH == h && dateM <= m)) {
            return DateUtil.beginOfDay(DateUtil.offsetDay(createTime, -1));
        }

        return DateUtil.beginOfDay(createTime);
    }

    public String getMaterialName() {
        return materialName.split("-")[0];
    }

    public BigDecimal getQuantity() {
        return ObjectUtil.defaultIfNull(quantity, BigDecimal.ZERO);
    }

    public BigDecimal getPrice() {
        return ObjectUtil.defaultIfNull(price, BigDecimal.ZERO);
    }

    public BigDecimal getWidth() {
        return ObjectUtil.defaultIfNull(width, BigDecimal.ZERO);
    }

    /**
     * 金额
     *
     * @return
     */
    public BigDecimal getMoney() {
        return BigDecimalUtil.multiply(getPrice(), getQuantity(), 2);
    }

    /**
     * 面积
     */
    public BigDecimal getArea() {
        return BigDecimalUtil.init(getQuantity()).multiply(getWidth()).divide(100, 2).getValue();
    }

}
