@Override
 public ResultInfo expend(
     Map<String, Object> props,
     Account account,
     ProductDetail detail,
     Authorization auth,
     int amount) {
   String remark = (String) props.get("remark");
   java.util.Date prTime = (java.util.Date) props.get("purchaseTime");
   PurchaseRelation pr = subImpl.queryPurchaseRelation(detail, "expend", 0, 0);
   if (pr == null) {
     ResultInfo info = new ResultInfo();
     info.setErrorCode(ErrorCode.EC_INVALID_PURCHASE_ID);
     info.setMessage(ErrorCode.getErrorMessage(ErrorCode.EC_INVALID_PURCHASE_ID));
     return info;
   }
   props.put("purchaseRelation", pr);
   int newAmount = amount / detail.getRechargeRatio();
   pr.setAmount(newAmount);
   log.debug("[Expend Amount] ==> " + newAmount);
   return subImpl.subscribe(props, account, detail, auth, pr, remark, prTime);
 }