SubscribeController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. protected static $systemConfig;
  19. function __construct() {
  20. self::$systemConfig = Helpers::systemConfig();
  21. }
  22. // 订阅码列表
  23. public function subscribeList(Request $request) {
  24. $user_id = $request->input('user_id');
  25. $email = $request->input('email');
  26. $status = $request->input('status');
  27. $query = UserSubscribe::with(['user:id,email']);
  28. if(isset($user_id)){
  29. $query->whereUserId($user_id);
  30. }
  31. if(isset($email)){
  32. $query->whereHas('user', function($q) use ($email) {
  33. $q->where('email', 'like', '%'.$email.'%');
  34. });
  35. }
  36. if(isset($status)){
  37. $query->whereStatus($status);
  38. }
  39. $view['subscribeList'] = $query->orderBy('id', 'desc')->paginate(20)->appends($request->except('page'));
  40. return Response::view('admin.subscribe.subscribeList', $view);
  41. }
  42. //订阅记录
  43. public function subscribeLog(Request $request) {
  44. $id = $request->input('id');
  45. $query = UserSubscribeLog::with('user:email');
  46. if(isset($id)){
  47. $query->whereSid($id);
  48. }
  49. $view['subscribeLog'] = $query->orderBy('id', 'desc')->paginate(20)->appends($request->except('page'));
  50. return Response::view('admin.subscribe.subscribeLog', $view);
  51. }
  52. // 订阅设备列表
  53. public function deviceList(Request $request) {
  54. $type = $request->input('type');
  55. $platform = $request->input('platform');
  56. $name = $request->input('name');
  57. $status = $request->input('status');
  58. $query = Device::query();
  59. if(isset($type)){
  60. $query->whereType($type);
  61. }
  62. if(isset($platform)){
  63. $query->wherePlatform($platform);
  64. }
  65. if(isset($name)){
  66. $query->where('name', 'like', '%'.$name.'%');
  67. }
  68. if(isset($status)){
  69. $query->whereStatus($status);
  70. }
  71. $view['deviceList'] = $query->paginate(20)->appends($request->except('page'));
  72. return Response::view('admin.subscribe.deviceList', $view);
  73. }
  74. // 设置用户的订阅的状态
  75. public function setSubscribeStatus(Request $request) {
  76. $id = $request->input('id');
  77. $status = $request->input('status', 0);
  78. if(empty($id)){
  79. return Response::json(['status' => 'fail', 'data' => '', 'message' => '操作异常']);
  80. }
  81. if($status){
  82. UserSubscribe::query()->whereId($id)->update(['status' => 1, 'ban_time' => 0, 'ban_desc' => '']);
  83. }else{
  84. UserSubscribe::query()->whereId($id)->update(['status' => 0, 'ban_time' => time(), 'ban_desc' => '后台手动封禁']);
  85. }
  86. return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
  87. }
  88. // 设置设备是否允许订阅的状态
  89. public function setDeviceStatus(Request $request) {
  90. $id = $request->input('id');
  91. $status = $request->input('status', 0);
  92. if(empty($id)){
  93. return Response::json(['status' => 'fail', 'data' => '', 'message' => '操作异常']);
  94. }
  95. Device::query()->whereId($id)->update(['status' => $status]);
  96. return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
  97. }
  98. }