| | |
| | | if(dto.getUserCouponId()!=null){ |
| | | XpAppUserCoupon coupon = couponList.get(0); |
| | | userCouponVo.setId(coupon.getId()); |
| | | userCouponVo.setCouponType(coupon.getCouponType()); |
| | | userCouponVo.setMoney(coupon.getMoney().doubleValue()); |
| | | return R.ok(userCouponVo); |
| | | }else { |
| | | // 优先用满足条件且抵扣金额最大的 |
| | | List<XpAppUserCoupon> discountUserCoupons = couponList.stream().filter(e -> e.getCouponType() == 1).sorted(Comparator.comparing(XpAppUserCoupon::getMoney).reversed()).collect(Collectors.toList()); |
| | | if(!discountUserCoupons.isEmpty()){ |
| | | userCouponVo.setCouponType(discountUserCoupons.get(0).getCouponType()); |
| | | userCouponVo.setId(discountUserCoupons.get(0).getId()); |
| | | userCouponVo.setMoney(discountUserCoupons.get(0).getMoney().doubleValue()); |
| | | return R.ok(userCouponVo); |
| | | } |
| | | List<XpAppUserCoupon> fullUserCoupons = couponList.stream().filter(e -> e.getCouponType() == 2 && dto.getTotalAmount() >= e.getFullMoney().doubleValue()).sorted(Comparator.comparing(XpAppUserCoupon::getMoney).reversed()).collect(Collectors.toList()); |
| | | if(!fullUserCoupons.isEmpty()){ |
| | | userCouponVo.setCouponType(fullUserCoupons.get(0).getCouponType()); |
| | | userCouponVo.setId(fullUserCoupons.get(0).getId()); |
| | | userCouponVo.setMoney(fullUserCoupons.get(0).getMoney().doubleValue()); |
| | | return R.ok(userCouponVo); |
| | |
| | | * @return |
| | | */ |
| | | @PostMapping("/logan/inner/appUserCoupon/calculateDiscountAmount") |
| | | public R<BigDecimal> calculateDiscountAmount(@RequestParam CalculateDiscountAmountVo vo){ |
| | | public R<BigDecimal> calculateDiscountAmount(@RequestBody CalculateDiscountAmountVo vo){ |
| | | BigDecimal bigDecimal = xpAppUserCouponService.calculateDiscountAmount(vo); |
| | | return R.ok(bigDecimal); |
| | | } |