当前位置: 首页>>代码示例>>Scala>>正文


Scala Maps类代码示例

本文整理汇总了Scala中com.google.common.collect.Maps的典型用法代码示例。如果您正苦于以下问题:Scala Maps类的具体用法?Scala Maps怎么用?Scala Maps使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Maps类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。

示例1: process

//设置package包名称以及导入依赖的类
package com.clemble.loveit.payment.service


import com.clemble.loveit.payment.model._
import com.clemble.loveit.payment.model.PayoutStatus.PayoutStatus
import com.google.common.collect.{ImmutableMap, Maps}
import play.api.libs.json._

import scala.concurrent.Future
import scala.util.{Failure, Success, Try}

sealed trait EOMPayoutService {

  def process(payout: EOMPayout): Future[(PayoutStatus, JsValue)]

}

import com.stripe.model.Transfer

case object StripeEOMPayoutService extends EOMPayoutService {

  
  private def transferStripe(chAcc: StripePayoutAccount, amount: Money): Transfer = {
    val transferParams = Maps.newHashMap[String, Object]()
    val stripeAmount = (amount.amount * 100).toInt
    transferParams.put("amount", stripeAmount.toString)
    transferParams.put("currency", "usd")
    transferParams.put("destination", chAcc.accountId)
    Transfer.create(transferParams)
  }

  private def doProcess(payout: EOMPayout): (PayoutStatus, JsValue) = {
    Try({
      transferStripe(payout.destination.asInstanceOf[StripePayoutAccount], payout.amount)
    }) match {
      case Success(transfer) =>
        val details = Json.parse(transfer.toJson())
        (PayoutStatus.Success, details)
      case Failure(t) =>
        (PayoutStatus.Failed, Json.obj("error" -> t.getMessage))
    }
  }

  override def process(payout: EOMPayout): Future[(PayoutStatus, JsValue)] = {
    if (payout.destination.isEmpty) {
      Future.successful(PayoutStatus.NoBankAccount -> Json.obj())
    } else {
      Future.successful(doProcess(payout))
    }
  }

} 
开发者ID:thankyo,项目名称:thank,代码行数:53,代码来源:EOMPayoutService.scala


注:本文中的com.google.common.collect.Maps类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。