Deposit.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace app\controller\admin;
  3. use app\extra\basic\Base;
  4. use app\extra\tools\CodeExtend;
  5. use app\middleware\AuthMiddleware;
  6. use app\model\saas\SaasDepositLog;
  7. use app\model\saas\SaasStore;
  8. use app\service\saas\DepositService;
  9. use DI\Attribute\Inject;
  10. use LinFly\Annotation\Attributes\Route\Controller;
  11. use LinFly\Annotation\Attributes\Route\GetMapping;
  12. use LinFly\Annotation\Attributes\Route\Middleware;
  13. use LinFly\Annotation\Attributes\Route\PostMapping;
  14. use support\Request;
  15. use support\Response;
  16. /**
  17. * 保证金
  18. */
  19. #[Controller("/api/deposit"),Middleware(AuthMiddleware::class)]
  20. class Deposit extends Base
  21. {
  22. #[Inject]
  23. protected DepositService $service;
  24. #[Inject]
  25. protected SaasDepositLog $model;
  26. #[GetMapping('list')]
  27. public function getDataList(Request $request): Response
  28. {
  29. try {
  30. $param = $request->all();
  31. $data = $this->service->setModel()->getList($param,['poi' => function($query){
  32. $query->field("poi_id,poi_name,poi_address,nick_name");
  33. }]);
  34. return successTrans(100010,pageFormat($data),200);
  35. } catch (\Throwable $th) {
  36. return error($th->getMessage());
  37. }
  38. }
  39. #[PostMapping("save")]
  40. public function setDepositData(Request $request): Response
  41. {
  42. try {
  43. $param = $this->_valid([
  44. "poi_id.require" => trans("empty.require"),
  45. "type.require" => trans("empty.require"),
  46. "money.require" => trans("empty.require"),
  47. ],$request->method());
  48. if (!is_array($param)) return error($param);
  49. $store = (new SaasStore)->where("poi_id",$param['poi_id'])->findOrEmpty();
  50. if ($store->isEmpty()) return error("该商家不存在");
  51. switch ($param['type']) {
  52. case "1": // 新增金额
  53. case "3":
  54. case "5":
  55. $store->deposit = $store['deposit'] + ($param['money'] * 100);
  56. break;
  57. default:
  58. if (($param['money'] * 100) > $store['deposit']) return error("商家保证金余额不足");
  59. $store->deposit = $store['deposit'] - ($param['money'] * 100);
  60. break;
  61. }
  62. $store->save();
  63. $state = $this->model->insertGetId([
  64. "poi_id" => $param['poi_id'],
  65. "order_sn" => strtoupper(CodeExtend::random(18,3)),
  66. "money" => $param['money'] * 100,
  67. "type" => $param['type'],
  68. "status" => 1
  69. ]);
  70. if (!$state) return errorTrans("error.data");
  71. return successTrans("success.data");
  72. } catch (\Throwable $throwable) {
  73. return error($throwable->getMessage());
  74. }
  75. }
  76. }