mainId ?? 0; $stat = self::getByCondition(['mainId' => $mainId, 'time' => $time], true); if (empty($stat)) { $stat = self::add(['mainId' => $mainId, 'time' => $time, 'year' => $year, 'month' => $month], true); } $id = $stat->id; $unique = self::getLockById($id); $currentAmount = bcadd($unique->amount, $amount, 2); $unique->amount = $currentAmount; $payWayMap = dict::getDict('payWay'); switch ($payWay) { case $payWayMap['wxPay']: $currentWx = bcadd($unique->wx, $amount, 2); $unique->wx = $currentWx; break; case $payWayMap['alipay']: $currentAliPay = bcadd($unique->alipay, $amount, 2); $unique->alipay = $currentAliPay; break; case $payWayMap['balancePay']: $currentBalance = bcadd($unique->balance, $amount, 2); $unique->balance = $currentBalance; break; case $payWayMap['debtPay']: $currentDebt = bcadd($unique->debt, $amount, 2); $unique->debt = $currentDebt; break; case $payWayMap['cash']: $currentCash = bcadd($unique->cash, $amount, 2); $unique->cash = $currentCash; break; case $payWayMap['bankCard']: $currentBank = bcadd($unique->bank, $amount, 2); $unique->bank = $currentBank; break; default: } $unique->save(); } }