UserFinance.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * @Created by PhpStorm
  4. * @author: Kirin
  5. * @day: 2024/12/16
  6. * @time: 11:29
  7. */
  8. namespace app\controller\api\user;
  9. use app\common\ApiBaseController;
  10. use app\Request;
  11. use app\services\user\UserBillServices;
  12. use app\services\user\UserBrokerageServices;
  13. use app\services\user\UserMoneyServices;
  14. use app\services\user\UserServices;
  15. /**
  16. * 用户财务类
  17. * Class UserFinance
  18. * @package app\controller\api\user
  19. */
  20. class UserFinance extends ApiBaseController
  21. {
  22. protected $brokerageServices;
  23. protected $moneyServices;
  24. protected $billServices;
  25. public function __construct(Request $request, UserServices $userService, UserBrokerageServices $brokerageServices, UserMoneyServices $moneyServices, UserBillServices $billServices)
  26. {
  27. $this->service = $userService;
  28. $this->brokerageServices = $brokerageServices;
  29. $this->moneyServices = $moneyServices;
  30. $this->billServices = $billServices;
  31. parent::__construct($request);
  32. }
  33. public function getMoneyInfo()
  34. {
  35. $balance = $this->service->getOneValue(['uid' => $this->request->uid()], 'now_money');
  36. $pm = $this->request->param('pm', '');
  37. $start_time = $this->request->param('start_time', '');
  38. $end_time = $this->request->param('end_time', '');
  39. $data = $this->moneyServices->getMoneyList(['uid' => $this->request->uid(), 'pm' => $pm, 'start_time' => $start_time, 'end_time' => $end_time], '*');
  40. $all_income = $this->moneyServices->getUserMoneySum($this->request->uid(), '', 1);
  41. $all_expend = $this->moneyServices->getUserMoneySum($this->request->uid(), '', 0);
  42. $types = $this->moneyServices->bill_type();
  43. return $this->success(compact('types', 'data', 'all_income', 'all_expend', 'balance'));
  44. }
  45. public function tradeMoney()
  46. {
  47. $num = $this->request->post('num', 0);
  48. $to_uid = $this->request->post('to_uid', 0);
  49. $res = $this->moneyServices->trade($this->request->uid(), $to_uid, $num);
  50. if ($res)
  51. return $this->success($res);
  52. return $this->error('操作失败');
  53. }
  54. public function getBrokerageInfo()
  55. {
  56. $balance = $this->service->getOneValue(['uid' => $this->request->uid()], 'brokerage_price');
  57. $frozen = $this->brokerageServices->getUserFrozenPrice($this->request->uid());
  58. $extractable = bcsub($balance, $frozen, 2);
  59. if ($extractable < 0) $extractable = 0;
  60. $pm = $this->request->param('pm', '');
  61. $start_time = $this->request->param('start_time', '');
  62. $end_time = $this->request->param('end_time', '');
  63. $data = $this->brokerageServices->getBrokerageList(['uid' => $this->request->uid(), 'pm' => $pm, 'start_time' => $start_time, 'end_time' => $end_time], '*');
  64. $all_income = $this->brokerageServices->getUserBillBrokerageSum($this->request->uid(), '', 1);
  65. $all_expend = $this->brokerageServices->getUserBillBrokerageSum($this->request->uid(), '', 0);
  66. $types = $this->brokerageServices->bill_type();
  67. return $this->success(compact('types', 'data', 'all_income', 'all_expend', 'balance', 'extractable', 'frozen'));
  68. }
  69. public function tradeBrokerage()
  70. {
  71. $num = $this->request->post('num', 0);
  72. $to_uid = $this->request->post('to_uid', 0);
  73. $res = $this->brokerageServices->trade($this->request->uid(), $to_uid, $num);
  74. if ($res)
  75. return $this->success($res);
  76. return $this->error('操作失败');
  77. }
  78. public function getBillInfo($category)
  79. {
  80. $pm = $this->request->param('pm', '');
  81. $start_time = $this->request->param('start_time', '');
  82. $end_time = $this->request->param('end_time', '');
  83. $data = $this->billServices->getUserBillList($category, ['uid' => $this->request->uid(), 'pm' => $pm, 'start_time' => $start_time, 'end_time' => $end_time], '*');
  84. $all_income = $this->billServices->getUserBillSum($this->request->uid(), $category, '', 1);
  85. $all_expend = $this->billServices->getUserBillSum($this->request->uid(), $category, '', 0);
  86. $types = $this->billServices->getBillType($category);
  87. return $this->success(compact('data', 'all_income', 'all_expend', 'types'));
  88. }
  89. public function tradeOther()
  90. {
  91. $num = $this->request->post('num', 0);
  92. $category = $this->request->post('category', '');
  93. $to_uid = $this->request->post('to_uid', 0);
  94. $res = $this->billServices->trade($this->request->uid(), $to_uid, $category, $num);
  95. if ($res)
  96. return $this->success($res);
  97. return $this->error('操作失败');
  98. }
  99. }