fwq
2024-09-30 2bbf2a6d0b13772aa5254cb9e9271bd2e41d4061
提交 | 用户 | age
2edfdb 1 package com.hz.his.vo.project;
F 2
3 import lombok.Data;
4
5 import java.math.BigDecimal;
6 import java.math.RoundingMode;
7
8 /**
9  * SKU抵扣数据
10  */
11 @Data
12 public class SkuDeductionVo {
13     /**sku标识*/
14     private String skuId;
15     /**sku最大可抵扣现金金额*/
16     private BigDecimal maxCash = BigDecimal.ZERO;
17     /**sku抵扣最大现金金额需要支付的积分*/
18     private BigDecimal maxIntegralCash = BigDecimal.ZERO;
19
20     /**总单购买项目数量*/
21     private Integer totalBuyNum = 0;
22     /**项目数量占总单比*/
23     private BigDecimal skuNumRate = BigDecimal.ZERO;
24     /**子单购买数量*/
25     private Integer buyNum = 0;
bed2a0 26     /**子单现价x数量算出的总金额*/
2edfdb 27     private BigDecimal skuPrice = BigDecimal.ZERO;
F 28     /**子单可抵扣最大现金金额*/
29     private BigDecimal skuMaxCash = BigDecimal.ZERO;
30
31     /**剩余可分配*/
32     private BigDecimal cash = BigDecimal.ZERO;
33
34     /**
35      * 计算抵扣金额
36      * */
37     public void handlerMoney() {
38         //计算子单最大可抵扣
39         this.skuMaxCash = this.maxCash.multiply(new BigDecimal(this.buyNum));
1296bf 40         //默认赋值cash
F 41         handlerCash(BigDecimal.ZERO);
2edfdb 42     }
F 43
44     /**计算数量*/
45     public void handlerNum(Integer totalBuyNum) {
46         this.totalBuyNum = totalBuyNum;
47         if (totalBuyNum != 0){
48             this.skuNumRate = new BigDecimal(this.buyNum).divide(new BigDecimal(this.totalBuyNum),2,RoundingMode.HALF_UP);
49         }
50     }
51
52     /**计算数量*/
53     public void handlerCash(BigDecimal totalMoney) {
54         this.cash = this.skuMaxCash.subtract(totalMoney).setScale(2,RoundingMode.HALF_UP);
55     }
56 }