我的应用程序中有一些MembershipTypes
,如下所示:
sealed class MembershipType(val label: String) {
abstract val interestOptions: List<BigDecimal>
abstract val price: BigDecimal
object GOLD : MembershipType("Gold") {
override val price: BigDecimal = BigDecimal(1)
override val interestOptions: List<BigDecimal> = listOf(BigDecimal(100), BigDecimal(200), BigDecimal(300))
}
object SILVER : MembershipType("Silver") {
override val price: BigDecimal = BigDecimal(0.8)
override val interestOptions: List<BigDecimal> = listOf(BigDecimal(300), BigDecimal(400), BigDecimal(500))
}
}
它们的属性是一个价格和 interestOptions 的列表。
我要计算所有 值(V) / interest(I)计算组合,并返回报价列表{{1} },请使用以下公式:
List<Quote>
还有其他类型的(R^max/R) × V × (1 - I/V) × 0.0015 × P
where 1 <= R <= R^max is the risk score with R^max = 3500, V > 0 is the value, I is the interest,
and P is price.
对象,但是 GOLD 和 SILVER 类型具有一组预定义的值,因此我在{ {1}}类:
MembershipType
我在QuoteMaker
对象中收到R(风险)和所选的成员资格类型列表。
在class QuoteMaker {
private val membershipToValue: MutableMap<MembershipType, List<BigDecimal>> = mutableMapOf()
init {
membershipToValue.put(MembershipType.GOLD, listOf(BigDecimal(2500), BigDecimal(5000)))
membershipToValue.put(MembershipType.SILVER, listOf(BigDecimal(1000), BigDecimal(2000)))
}
fun generateQuotes(request1: Request) {
val risk = request1.riskRate
val membershipChosen = request1.membershipChosen //list of MemberShipType selected
generateMembershipQuote(riskRate, membershipChosen)
}
private fun generateMembershipQuote(riskRate: Int, membershipChosen: List<MembershipType>) : List<Quote> {
//return membershipChosen.stream()
//.forEach { }...
}
}
中,我需要遍历所有选定的成员资格,然后遍历Request
中该类型的值,并计算值/兴趣的所有组合并返回结果。
我想将公式创建为函数,然后针对每个值/兴趣应用,并返回该generateMembershipQuote()
的结果。我该如何实施?
membershipToValue
应该具有有关总价格,用于计算总和的会员资格的价值和利息的信息
MembershipType
){
Quote
}