SubscribeController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Components\Helpers;
  4. use App\Http\Controllers\Controller;
  5. use App\Http\Models\Device;
  6. use App\Http\Models\UserSubscribe;
  7. use App\Http\Models\UserSubscribeLog;
  8. use Illuminate\Http\Request;
  9. use Response;
  10. /**
  11. * 订阅控制器
  12. *
  13. * Class SubscribeController
  14. *
  15. * @package App\Http\Controllers\Controller
  16. */
  17. class SubscribeController extends Controller
  18. {
  19. protected static $systemConfig;
  20. function __construct()
  21. {
  22. self::$systemConfig = Helpers::systemConfig();
  23. }
  24. // 订阅码列表
  25. public function subscribeList(Request $request)
  26. {
  27. $user_id = $request->input('user_id');
  28. $email = $request->input('email');
  29. $status = $request->input('status');
  30. $query = UserSubscribe::with(['user:id,email']);
  31. if(isset($user_id)){
  32. $query->whereUserId($user_id);
  33. }
  34. if(isset($email)){
  35. $query->whereHas('user', function($q) use ($email){
  36. $q->where('email', 'like', '%'.$email.'%');
  37. });
  38. }
  39. if(isset($status)){
  40. $query->whereStatus($status);
  41. }
  42. $view['subscribeList'] = $query->orderBy('id', 'desc')->paginate(20)->appends($request->except('page'));
  43. return Response::view('admin.subscribe.subscribeList', $view);
  44. }
  45. //订阅记录
  46. public function subscribeLog(Request $request)
  47. {
  48. $id = $request->input('id');
  49. $query = UserSubscribeLog::with('user:email');
  50. if(isset($id)){
  51. $query->whereSid($id);
  52. }
  53. $view['subscribeLog'] = $query->orderBy('id', 'desc')->paginate(20)->appends($request->except('page'));
  54. return Response::view('admin.subscribe.subscribeLog', $view);
  55. }
  56. // 订阅设备列表
  57. public function deviceList(Request $request)
  58. {
  59. $type = $request->input('type');
  60. $platform = $request->input('platform');
  61. $name = $request->input('name');
  62. $status = $request->input('status');
  63. $query = Device::query();
  64. if(isset($type)){
  65. $query->whereType($type);
  66. }
  67. if(isset($platform)){
  68. $query->wherePlatform($platform);
  69. }
  70. if(isset($name)){
  71. $query->where('name', 'like', '%'.$name.'%');
  72. }
  73. if(isset($status)){
  74. $query->whereStatus($status);
  75. }
  76. $view['deviceList'] = $query->paginate(20)->appends($request->except('page'));
  77. return Response::view('admin.subscribe.deviceList', $view);
  78. }
  79. // 设置用户的订阅的状态
  80. public function setSubscribeStatus(Request $request)
  81. {
  82. $id = $request->input('id');
  83. $status = $request->input('status', 0);
  84. if(empty($id)){
  85. return Response::json(['status' => 'fail', 'data' => '', 'message' => '操作异常']);
  86. }
  87. if($status){
  88. UserSubscribe::query()->whereId($id)->update(['status' => 1, 'ban_time' => 0, 'ban_desc' => '']);
  89. }else{
  90. UserSubscribe::query()->whereId($id)->update(['status' => 0, 'ban_time' => time(), 'ban_desc' => '后台手动封禁']);
  91. }
  92. return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
  93. }
  94. // 设置设备是否允许订阅的状态
  95. public function setDeviceStatus(Request $request)
  96. {
  97. $id = $request->input('id');
  98. $status = $request->input('status', 0);
  99. if(empty($id)){
  100. return Response::json(['status' => 'fail', 'data' => '', 'message' => '操作异常']);
  101. }
  102. Device::query()->whereId($id)->update(['status' => $status]);
  103. return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
  104. }
  105. }