$v) { $v = is_array($v) ? $v : (array)$v; $v = self::fillSettleAuditFromRecharge($v); $settleAmount = $v['settleAmount'] ?? 0; $amount = $v['amount'] ?? 0; $io = $v['io'] ?? 0; $becomeBalance = 0; if ($io == 1) { $becomeBalance = bcsub($amount, $settleAmount, 2); $becomeBalance = floatval($becomeBalance); } $v['becomeBalance'] = $becomeBalance; $data['list'][$k] = $v; } } return $data; } /** * 零售会员充值流水补全结账单(对照 ghs CustomBalanceChangeClass::fillClearAuditFromRecharge) */ public static function fillSettleAuditFromRecharge($row) { if (empty($row) || !is_array($row)) { return $row; } if (intval($row['settleId'] ?? 0) > 0) { return self::normalizeSettleAuditRow($row); } if (intval($row['io'] ?? 0) !== 1) { return $row; } $relateId = intval($row['relateId'] ?? 0); if ($relateId <= 0 || !self::isRechargeCapitalType($row['capitalType'] ?? 0)) { return $row; } $recharge = RechargeClass::getById($relateId, true); if (!empty($recharge)) { $settleId = intval(is_object($recharge) ? ($recharge->settleId ?? 0) : ($recharge['settleId'] ?? 0)); if ($settleId > 0) { $row['settleId'] = $settleId; $settle = SettleClass::getById($settleId, true); if (!empty($settle)) { $row['settleNo'] = is_object($settle) ? ($settle->orderSn ?? '') : ($settle['orderSn'] ?? ''); $row['settleAmount'] = is_object($settle) ? ($settle->actPrice ?? 0) : ($settle['actPrice'] ?? 0); } return self::normalizeSettleAuditRow($row); } } return $row; } protected static function normalizeSettleAuditRow(array $row) { $settleId = intval($row['settleId'] ?? 0); if ($settleId > 0 && (empty($row['settleNo']) || bccomp((string)($row['settleAmount'] ?? 0), '0', 2) <= 0)) { $settle = SettleClass::getById($settleId, true); if (!empty($settle)) { $row['settleNo'] = is_object($settle) ? ($settle->orderSn ?? '') : ($settle['orderSn'] ?? ''); $row['settleAmount'] = is_object($settle) ? ($settle->actPrice ?? 0) : ($settle['actPrice'] ?? 0); } } return $row; } protected static function isRechargeCapitalType($capitalType) { $capitalType = intval($capitalType); return $capitalType === intval(dict::getDict('capitalType', 'xhRecharge', 'id')); } }