Transfer.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Module\Fund\Logic;
  3. use App\Module\Fund\Models\FundTransferModel;
  4. use UCore\Trace;
  5. /**
  6. * Class Transfer 转账的服务层
  7. *
  8. * @package logic\user\fund\Service
  9. */
  10. class Transfer
  11. {
  12. /**
  13. * 日志信息
  14. *
  15. * @param $id
  16. */
  17. public static function logInfo($id)
  18. {
  19. $transfer = FundTransferModel::find($id);
  20. if (!$transfer) {
  21. return [];
  22. }
  23. $info = $transfer->toArray();
  24. // 获取用户信息 - 使用Laravel的用户模型
  25. $userInfo = \App\Module\User\Models\User::find($info['user_id']);
  26. $info['user_id_info'] = $userInfo ? $userInfo->toArray() : [];
  27. return $info;
  28. }
  29. /**
  30. * 转账给别人
  31. *
  32. * @param $user_id
  33. * @param $to_user_id
  34. * @param $amount
  35. * @param $remark
  36. * @return bool|\Illuminate\Database\Eloquent\Model|int|string
  37. */
  38. public static function to_user(
  39. $user_id,
  40. $fund_id,
  41. $to_user_id,
  42. $amount,
  43. $remark)
  44. {
  45. Trace::addData('info', func_get_args());
  46. $data = [
  47. 'fund_id' => $fund_id,
  48. 'user_id' => $user_id,
  49. 'to_user_id' => $to_user_id,
  50. 'remark' => $remark,
  51. 'amount' => $amount
  52. ];
  53. # 进行验证
  54. $va = new \App\Module\Fund\Validations\Transfer($data);
  55. $va->validate();
  56. if ($va->isFail()) {
  57. return $va->firstError();
  58. }
  59. $Model = new FundTransferModel();
  60. $Model->setData($data);
  61. if ($Model->save() === false) {
  62. return $Model->getMessage();
  63. }
  64. return (int)$Model->id;
  65. }
  66. }