關於計算優惠券金額的部分優化

2021-08-27 11:41:43 字數 1825 閱讀 8949

這是乙個 (原金額 - 優惠券 = 實付金額) 的乙個介面

原**:

bigdecimal amount = new bigdecimal(computeamtcardparam.getamount());

bigdecimal vou = null;

boolean existed = amount.doublevalue() >= 0.00 && (mobilecardvouconstants.cash_coupon.equals(coupondef.getcoutype()) || mobilecardvouconstants.discount_coupon.equals(coupondef.getcoutype()));

if(existed)

}else if (mobilecardvouconstants.discount_coupon.equals(coupondef.getcoutype()))

}}else

//coupon calculation

result.setresultcode(mobileapiconstants.result_code_success);

return result;

原來的**思路是:先判斷金額以及優惠券型別是否存在,在這個判斷的基礎上再巢狀一層判斷優惠券型別,然後根據優惠券的型別再給金額做出處理,最後將原金額,優惠券金額,實付金額輸出。這裡他的思路很直接,先判斷金額是否大於0且是否存在指定的優惠券型別:不存在則將優惠券金額設定成0,然後將指定字段輸出;存在則再判斷一次型別,根據不同型別做金額處理最後將指定字段輸出。這段**個人覺得中規中矩,但是很多**都是多餘的,比如在計算金額後得到金額小於0則用0來表示,完全是沒有必要寫成兩段話的,因此我對這段**進行了一些優化。

然後下面是我對這段**的優化:

bigdecimal amount = new bigdecimal(computeamtcardparam.getamount());

bigdecimal originalamount = amount.compareto(bigdecimal.zero) < 0 ? bigdecimal.zero : amount;

bigdecimal voucontent = coupondef.getvoucontent() == null ? bigdecimal.zero : new bigdecimal(coupondef.getvoucontent());

bigdecimal paymoney = null;

if(mobilecardvouconstants.cash_coupon.equals(coupondef.getcoutype())) else if(mobilecardvouconstants.discount_coupon.equals(coupondef.getcoutype())) else

result.setpaymoney(paymoney);

result.setconsumeamt(voucontent);

result.setoriginalamt(originalamount);

result.setresultcode(mobileapiconstants.result_code_success);

return result;

這段**中,我使用了兩個三目運算,第乙個三目運算就可以確定實際收款金額小於0後使用0代替,第二個三目運算子可以確定優惠的型別,並根據優惠型別來做出計算。這樣的做法可以避免在判斷中做出進一步的判斷0的計算,然後通過不同的優惠券型別進行相應計算,這裡只需要得到計算的結果後直接將數值傳給結果bean即可。

判斷優惠券是全場通用券還是抵消部分金額

1封裝乙個支付彈框元件 這是頁面引用 js部分 data methods close confirmpay payvip at position 40 r vip readcou router.push 在頁面有部分資料的情況下,在請求部分資料的方法中放入以下 if that.katex parse...

優惠券實現 從0到1,優惠券體系的搭建

優惠券體系可以說是任何產品都可能會用到的,近期進行了優惠券體系的設計,為了有更深的理解,筆者總結了自己從0到1的優惠券體系搭建,與大家分享。有自動發券跟人工發券。自動發券一般是在固定的場景下系統自動發放的。人工發券是給某個或者一批使用者進行批量發券。1 技術實現上需要考慮要有場景的編號。方便後續場景...

優惠券實現 易維雲如何玩轉優惠券的分享裂變

如今,想玩轉分享裂變是離不開優惠福利的,送優惠券就是一種方式,那麼優惠券都有哪些特點?據建站abc了解,優惠券的本質就是商家通過折扣 滿減 抵扣等形式給使用者提供的一種優惠福利,然後通過利用使用者 佔到便宜 的心理進行營銷裂變,優惠券常見的特點有如下幾點 一 吸引新人下單 二 建立品牌口碑 對於商家...