| | |
| | | String cardLevel = activeProductCardLevel(talentId); |
| | | if (cardLevel == null) return ""; |
| | | BigDecimal lowestRate = null; |
| | | BigDecimal lowestSalePrice = null; |
| | | BigDecimal lowestOriginalPrice = null; |
| | | for (Map<String, Object> product : query(""" |
| | | select id, original_price, sale_price, rights_config |
| | | from merchant_product |
| | |
| | | BigDecimal rate = price.salePrice().divide(originalPrice, 6, RoundingMode.HALF_UP); |
| | | if (lowestRate == null || rate.compareTo(lowestRate) < 0) { |
| | | lowestRate = rate; |
| | | lowestSalePrice = price.salePrice(); |
| | | lowestOriginalPrice = originalPrice; |
| | | } |
| | | } |
| | | return lowestRate == null ? "" : discountText(lowestSalePrice, lowestOriginalPrice); |
| | | if (lowestRate == null || lowestRate.compareTo(BigDecimal.ONE) >= 0) return ""; |
| | | if (lowestRate.signum() == 0) return "免费"; |
| | | double discount = Math.round(lowestRate.doubleValue() * 100) / 10.0; |
| | | return discount + "折"; |
| | | } |
| | | |
| | | @Transactional(readOnly = true) |