BalanceLogRepository.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * 描述.
  4. *
  5. * @author nj
  6. * @date 2021-08-18 12:59
  7. */
  8. namespace App\Repositories;
  9. use App\Models\Mysql\BalanceLogModel;
  10. use Carbon\Carbon;
  11. use KZ2\Laravel\Repositories\Eloquent\Repository;
  12. class BalanceLogRepository extends Repository
  13. {
  14. public function model()
  15. {
  16. return BalanceLogModel::class;
  17. }
  18. /**
  19. * 记录.
  20. * @param mixed $currAgent
  21. * @param mixed $prevAgent
  22. * @param string $changeNote 改变备注.
  23. * @return bool
  24. */
  25. public function record($currAgent, $prevAgent, $changeNote = '')
  26. {
  27. if (empty($currAgent->uid)) {
  28. logger('BalanceLogRepository::record', ['err' => '入参数据没有用户UID']);
  29. return false;
  30. }
  31. if (strval($currAgent->uid) !== strval($prevAgent->uid)) {
  32. logger('BalanceLogsRepository::record', ['err' => '前后2个用户不一致']);
  33. return false;
  34. }
  35. $result = false;
  36. $prevBalance = $prevAgent->balance; // 上次余额
  37. $currBalance = $currAgent->balance; // 当前余额
  38. $prevFrozen = $prevAgent->frozen; // 上次冻结
  39. $currFrozen = $currAgent->frozen; // 当前冻结
  40. $createdAt = Carbon::now()->toDateTimeString();
  41. $diffBalance = $currBalance - $prevBalance; // 前后余额差额
  42. $diffFrozen = $currFrozen - $prevFrozen; // 前后冻结资金差.
  43. if ($diffBalance != 0 || $diffFrozen != 0) {
  44. $item = [
  45. 'created_at' => $createdAt,
  46. 'agent_uid' => $currAgent->uid,
  47. 'curr_balance' => $currBalance,
  48. 'prev_balance' => $prevBalance,
  49. 'diff_balance' => $diffBalance,
  50. 'change_note' => $changeNote,
  51. 'curr_frozen' => $currFrozen,
  52. 'prev_frozen' => $prevFrozen,
  53. ];
  54. $result = BalanceLogModel::create($item);
  55. }
  56. return boolval($result);
  57. }
  58. }