From 1b4658cf9c20cef9d4cec9a63b7f5d12c47d2cb5 Mon Sep 17 00:00:00 2001
From: fwq <582742538@qq.com>
Date: 星期二, 23 四月 2024 15:02:54 +0800
Subject: [PATCH] Merge branch 'master-fwq-积分抵扣现金' into master-test

---
 phis-feign/src/main/java/com/hz/his/vo/project/SkuDeductionVo.java   |   66 +++++++++++++++++++++++++++++++++
 phis-feign/src/main/java/com/hz/his/dto/order/PayAmountDto.java      |    2 +
 phis-feign/src/main/java/com/hz/his/dto/order/OrderPayMethodDto.java |   20 ++++++++++
 3 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/phis-feign/src/main/java/com/hz/his/dto/order/OrderPayMethodDto.java b/phis-feign/src/main/java/com/hz/his/dto/order/OrderPayMethodDto.java
index a03f7ad..76c3f2c 100644
--- a/phis-feign/src/main/java/com/hz/his/dto/order/OrderPayMethodDto.java
+++ b/phis-feign/src/main/java/com/hz/his/dto/order/OrderPayMethodDto.java
@@ -22,6 +22,13 @@
     /**鏄惁鍒掓墸璁$畻锛�0鍚�1鏄�*/
     private Integer isExecute;
 
+    /** 鎶垫墸绫诲瀷 */
+    private String deductionType;
+    /** 鎶垫墸閲戦 */
+    private BigDecimal deductionMoney;
+    /** 鍓╀綑鎶垫墸閲戦 */
+    private BigDecimal surplusDeductionTotal;
+
     /** 杞崲鏂瑰紡缂栫爜 锛堝疄闄呴��娆炬柟寮忕紪鐮侊級 */
     private String refundNumberNo;
     /** 杞崲鏂瑰紡鍚嶇О 锛堝疄闄呴��娆炬柟寮忕紪鐮侊級*/
@@ -43,4 +50,17 @@
         this.isMoneyPay = isMoneyPay;
         this.isExecute = isExecute;
     }
+
+    public OrderPayMethodDto(String payMethodNo, String payMethodName, BigDecimal payTotal, Integer isMoneyPay,
+                             Integer isExecute, String deductionType, BigDecimal deductionMoney,
+                             BigDecimal surplusDeductionTotal) {
+        this.payMethodNo = payMethodNo;
+        this.payMethodName = payMethodName;
+        this.payTotal = payTotal;
+        this.isMoneyPay = isMoneyPay;
+        this.isExecute = isExecute;
+        this.deductionType = deductionType;
+        this.deductionMoney = deductionMoney;
+        this.surplusDeductionTotal = surplusDeductionTotal;
+    }
 }
diff --git a/phis-feign/src/main/java/com/hz/his/dto/order/PayAmountDto.java b/phis-feign/src/main/java/com/hz/his/dto/order/PayAmountDto.java
index 57030f2..99fbe70 100644
--- a/phis-feign/src/main/java/com/hz/his/dto/order/PayAmountDto.java
+++ b/phis-feign/src/main/java/com/hz/his/dto/order/PayAmountDto.java
@@ -17,6 +17,8 @@
     private BigDecimal amount;
     /**蹇呭~ 鏀粯鏂瑰紡*/
     private String method;
+    /**蹇呭~ 鎶垫墸瀹為檯鏀粯鐨勯噾棰� 濡傛灉鏄Н鍒嗘姷鎵g幇閲戣繖閲屽瓨鐨勬槸瑕佹敮浠樼殑绉垎*/
+    private BigDecimal deductionAmount = BigDecimal.ZERO;
 
     /**闈炲繀濉� 鍟嗗搧/椤圭洰id/缁勫悎椤规爣璇�(鍗¢」鏀粯鏃跺繀浼犵粍鍚堥」鏍囪瘑)*/
     private String commonId;
diff --git a/phis-feign/src/main/java/com/hz/his/vo/project/SkuDeductionVo.java b/phis-feign/src/main/java/com/hz/his/vo/project/SkuDeductionVo.java
new file mode 100644
index 0000000..8be5dde
--- /dev/null
+++ b/phis-feign/src/main/java/com/hz/his/vo/project/SkuDeductionVo.java
@@ -0,0 +1,66 @@
+package com.hz.his.vo.project;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+/**
+ * SKU鎶垫墸鏁版嵁
+ */
+@Data
+public class SkuDeductionVo {
+    /**sku鏍囪瘑*/
+    private String skuId;
+    /**sku鏈�澶у彲鎶垫墸鐜伴噾閲戦*/
+    private BigDecimal maxCash = BigDecimal.ZERO;
+    /**sku鎶垫墸鏈�澶х幇閲戦噾棰濋渶瑕佹敮浠樼殑绉垎*/
+    private BigDecimal maxIntegralCash = BigDecimal.ZERO;
+
+    /**鎬诲崟璐拱椤圭洰鏁伴噺*/
+    private Integer totalBuyNum = 0;
+    /**椤圭洰鏁伴噺鍗犳�诲崟姣�*/
+    private BigDecimal skuNumRate = BigDecimal.ZERO;
+    /**瀛愬崟璐拱鏁伴噺*/
+    private Integer buyNum = 0;
+    /**瀛愬崟鐜颁环鎬婚渶瑕佹敮浠樼殑閲戦*/
+    private BigDecimal skuPrice = BigDecimal.ZERO;
+    /**瀛愬崟鍒嗘憡绯荤粺閲戦(鍌ㄥ�奸噾+澧炲�奸噾)*/
+    private BigDecimal skuSystemPrice = BigDecimal.ZERO;
+    /**瀛愬崟浼樻儬閲戦*/
+    private BigDecimal skuDiscountPrice = BigDecimal.ZERO;
+    /**瀛愬崟鍓╀綑杩橀渶鏀粯鐨勯噾棰�*/
+    private BigDecimal skuRemainingPrice = BigDecimal.ZERO;
+    /**瀛愬崟鍙姷鎵f渶澶х幇閲戦噾棰�*/
+    private BigDecimal skuMaxCash = BigDecimal.ZERO;
+
+    /**鍓╀綑鍙垎閰�*/
+    private BigDecimal cash = BigDecimal.ZERO;
+
+    /**
+     * 璁$畻鎶垫墸閲戦
+     * */
+    public void handlerMoney() {
+        //璁$畻鍓╀綑杩樿鏀粯鐨勯噾棰�
+        this.skuRemainingPrice = this.skuPrice.subtract(this.skuSystemPrice).subtract(this.skuDiscountPrice).setScale(2, RoundingMode.HALF_UP);
+        //璁$畻瀛愬崟鏈�澶у彲鎶垫墸
+        this.skuMaxCash = this.maxCash.multiply(new BigDecimal(this.buyNum));
+        //濡傛灉Sku鏈韩璁$畻鐨勬渶澶ф姷鎵g幇閲� 澶т簬 鍓╀綑瑕佹敮浠樼殑鐜伴噾,鍙栧墿浣欒鏀粯鐨勭幇閲�
+        if (this.skuMaxCash.compareTo(this.skuRemainingPrice) > 0){
+            this.skuMaxCash = this.skuRemainingPrice;
+        }
+    }
+
+    /**璁$畻鏁伴噺*/
+    public void handlerNum(Integer totalBuyNum) {
+        this.totalBuyNum = totalBuyNum;
+        if (totalBuyNum != 0){
+            this.skuNumRate = new BigDecimal(this.buyNum).divide(new BigDecimal(this.totalBuyNum),2,RoundingMode.HALF_UP);
+        }
+    }
+
+    /**璁$畻鏁伴噺*/
+    public void handlerCash(BigDecimal totalMoney) {
+        this.cash = this.skuMaxCash.subtract(totalMoney).setScale(2,RoundingMode.HALF_UP);
+    }
+}

--
Gitblit v1.8.0