RechargeController.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace App\Http\Controllers\V1\User;
  3. use App\Helper\SerialNumber;
  4. use App\Http\Controllers\V1\Controller;
  5. use App\Models\Pay;
  6. use App\Models\RechargeCombo;
  7. use App\Models\Setting;
  8. use App\Models\UserConsumeRecord;
  9. use App\Models\UserEpisodesRecord;
  10. use App\Models\UserRechargeRecord;
  11. use App\Models\UserWatchRecord;
  12. use Carbon\Carbon;
  13. use Dingo\Api\Http\Request;
  14. use Illuminate\Database\Eloquent\Builder;
  15. use Illuminate\Database\QueryException;
  16. class RechargeController extends Controller
  17. {
  18. public function record(Request $request)
  19. {
  20. $date = $request->input('date');
  21. $date= $date??Carbon::now()->format('Y-m');
  22. $lists = UserRechargeRecord::filterUser()
  23. ->when($date,function ($query,$date){
  24. /* @var Builder $query*/
  25. return $query->where('created_at', 'like', "$date%");
  26. })
  27. ->where('status', 1)
  28. ->orderByDesc('id')
  29. ->get();
  30. return $this->success($lists);
  31. }
  32. public function createOrder()
  33. {
  34. try {
  35. /* @var Setting $setting*/
  36. $setting = Setting::first();
  37. if($setting->is_review) {
  38. throw new \Exception('暂不支持,请联系管理员');
  39. }
  40. \DB::beginTransaction();
  41. $comboId = \request()->input('id');
  42. $app = $this->getUniFactory(\user()->info->platform);
  43. $combo = RechargeCombo::find($comboId);
  44. // 避免重复创建订单
  45. $recharge = UserRechargeRecord::where('user_id', \user()->id)
  46. ->where('combo_id', $combo->id)
  47. ->where('status', 0)
  48. ->where('created_at','like', Carbon::now()->toDateString()."%")
  49. ->first();
  50. if($recharge){
  51. $pay = Pay::find($recharge->pay_id);
  52. $res = [
  53. 'order_id' => $pay->prepay_id,
  54. 'order_token' => $pay->token,
  55. 'pay_id' => $pay->pay_id,
  56. ];
  57. }else{
  58. $res = app(Pay::class)->create($app, $combo->price, Pay::SOURCE_RECHARGE);
  59. $recharge = new UserRechargeRecord();
  60. $recharge->user_id = \user()->id;
  61. $recharge->combo_id = $combo->id;
  62. $recharge->price = $combo->price;
  63. $recharge->gold = $combo->gold;
  64. $recharge->gift = $combo->gift;
  65. $recharge->pay_id = $res['pay_id'];
  66. $recharge->status = 0;
  67. $recharge->save();
  68. }
  69. \DB::commit();
  70. return $this->success($res);
  71. }catch (QueryException $e){
  72. \DB::rollBack();
  73. return $this->error('下单失败');
  74. }catch (\Exception $e){
  75. \DB::rollBack();
  76. return $this->error($e->getMessage());
  77. }
  78. }
  79. }