重量转换之克、两、斤

售卖方式、按份或者按重,商品单位转换

@Data
public class ElectricBalanceCreatedDto {


    @ApiModelProperty(value = "菜谱id")
    private String recipeId;

    @ApiModelProperty(value = "菜谱名称(要关联了菜谱才有)")
    private String recipeName;

    @ApiModelProperty(value = "菜谱图片 (商品图片,关联了菜谱就是菜谱图片,没关联就是上传商品图片)")
    private String recipeImage;

    @ApiModelProperty(value = "商品名称(综合2.5)")
    private String goodsName;

    @ApiModelProperty(value = "商品ID (编辑必传)")
    private String goodsId;

    @ApiModelProperty(value = "商品类型 3 称菜(按重计价)  后续补上 “4 称菜(按份计价) ")
    private Integer goodsType;


    @ApiModelProperty(value = "商品描述")
    @Length(max = 500)
    private String goodsDesc;

    @NotBlank(message = "主店铺id不能为空(主店铺)")
    @ApiModelProperty(value = "店铺id")
    private String storeId;

    @ApiModelProperty(value = "商品价格")
    @NotNull(message="商品价格不能为空")
    private BigDecimal goodsPrice;

    @ApiModelProperty(value = "中文 克 两 斤")
    @NotBlank(message="商品价格单位不能为空")
    private String goodsPriceUnit;

    @ApiModelProperty(value = "每份误差")
    private BigDecimal errorStandard;

    @ApiModelProperty(value = "标准份重量")
    @Max(value = 100000,message = "重量不合法")
    private Integer goodsPartWeight;

    @ApiModelProperty(value = "3 按重 4 按份")
    @NotNull(message="称菜商品类型不能为空")
    private Integer sellType;

    @Getter
    public enum GOODS_PRICE_UNIT {
        GRAM("克", 1), FIFTY_GRAM("两",2), FIVE_HUNDRED_GRAM("斤",3), FIFTY_GRAM_50("50克",4),SIN("份",5);

        private String name;
        private Integer index;

        GOODS_PRICE_UNIT(String name, Integer index) {
            this.name = name;
            this.index = index;
        }

        public static String getName(Integer index) {
            for (GOODS_PRICE_UNIT c : GOODS_PRICE_UNIT.values()) {
                if (c.getIndex().equals(index)) {
                    return c.getName();
                }
            }
            return null;
        }
    }

    @Getter
    public enum SELL_TYPE {
        WEIGH("重",0),SIN("份",1);

        private String name;
        private Integer index;

        SELL_TYPE(String name, Integer index) {
            this.name = name;
            this.index = index;
        }

        public static String getName(Integer index) {
            for (SELL_TYPE c : SELL_TYPE.values()) {
                if (c.getIndex().equals(index)) {
                    return c.getName();
                }
            }
            return null;
        }
    }

    //克转两
    public static BigDecimal getFiftyGram(BigDecimal goodsPrice) {
        return AlUtil.mul(goodsPrice, new BigDecimal("50"));
    }

    //两转克
    public static BigDecimal getFiftyToGram(BigDecimal goodsPrice) {
        return AlUtil.divide(goodsPrice, new BigDecimal("50"));
    }

    //斤转成克
    public static BigDecimal getFiftyGramToPlus(BigDecimal goodsPrice) {
        return AlUtil.divide(goodsPrice, new BigDecimal("500"));
    }

    //克转成斤f
    public static BigDecimal fiftyGramToPlus(BigDecimal goodsPrice) {
        return AlUtil.mul(goodsPrice, new BigDecimal("500"));
    }

    //斤转两
    public static BigDecimal getFiftyGramPlus(BigDecimal goodsPrice) {
        return AlUtil.divide(goodsPrice, new BigDecimal("10"));
    }

    //克斤两类型换算
    public static Integer getUnitType(String priceUnit) {
        if (priceUnit.equals(GOODS_PRICE_UNIT.GRAM.getName())) {
            return GOODS_PRICE_UNIT.GRAM.getIndex();
        } else if (priceUnit.equals(GOODS_PRICE_UNIT.FIFTY_GRAM.getName())) {
            return GOODS_PRICE_UNIT.FIFTY_GRAM.getIndex();
        } else  {
            return GOODS_PRICE_UNIT.FIVE_HUNDRED_GRAM.getIndex();
        }
    }


    /**
     * 克斤两换算 成克
     * @param priceUnit
     * @param goodsPrice
     * @return
     */
    public static BigDecimal convertToGram(String priceUnit, BigDecimal goodsPrice) {
        //商品价格
        BigDecimal price = BigDecimal.ZERO;
        if (priceUnit.equals(ElectricBalanceCreatedDto.GOODS_PRICE_UNIT.GRAM.getName())) {
            price = goodsPrice;
        } else if (priceUnit.equals(ElectricBalanceCreatedDto.GOODS_PRICE_UNIT.FIFTY_GRAM.getName())) {
            price = getFiftyToGram(goodsPrice);
        } else if (priceUnit.equals(ElectricBalanceCreatedDto.GOODS_PRICE_UNIT.FIVE_HUNDRED_GRAM.getName())) {
            price = getFiftyGramToPlus(goodsPrice);
        }else {
            return goodsPrice;
        }
        return price;
    }

    /**
     *  克换算成对应单位的价格
     * @param priceUnit
     * @param goodsPrice
     * @return
     */
    public static BigDecimal convertToGramPlus(String priceUnit, BigDecimal goodsPrice) {
        //商品价格
        BigDecimal price = BigDecimal.ZERO;
        if (priceUnit.equals(ElectricBalanceCreatedDto.GOODS_PRICE_UNIT.GRAM.getName())) {
            price = goodsPrice;
        } else if (priceUnit.equals(ElectricBalanceCreatedDto.GOODS_PRICE_UNIT.FIFTY_GRAM.getName())) {
            //克转两
            price = getFiftyGram(goodsPrice);
        } else if (priceUnit.equals(ElectricBalanceCreatedDto.GOODS_PRICE_UNIT.FIVE_HUNDRED_GRAM.getName())) {
            //克转斤
            price = fiftyGramToPlus(goodsPrice);
        }else {
            return goodsPrice;
        }
        return price;
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值