SubscribeController.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Components\Helpers;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\UserSubscribe;
  6. use App\Models\UserSubscribeLog;
  7. use Illuminate\Http\JsonResponse;
  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. public function __construct() {
  20. self::$systemConfig = Helpers::systemConfig();
  21. }
  22. // 订阅码列表
  23. public function subscribeList(Request $request): \Illuminate\Http\Response {
  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', static 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->latest()->paginate(20)->appends($request->except('page'));
  40. return Response::view('admin.subscribe.subscribeList', $view);
  41. }
  42. //订阅记录
  43. public function subscribeLog(Request $request): \Illuminate\Http\Response {
  44. $id = $request->input('id');
  45. $query = UserSubscribeLog::with('user:email');
  46. if(isset($id)){
  47. $query->whereSid($id);
  48. }
  49. $view['subscribeLog'] = $query->latest()->paginate(20)->appends($request->except('page'));
  50. return Response::view('admin.subscribe.subscribeLog', $view);
  51. }
  52. // 设置用户的订阅的状态
  53. public function setSubscribeStatus(Request $request): JsonResponse {
  54. $id = $request->input('id');
  55. $status = $request->input('status', 0);
  56. if(empty($id)){
  57. return Response::json(['status' => 'fail', 'message' => '操作异常']);
  58. }
  59. if($status){
  60. UserSubscribe::query()->whereId($id)->update(['status' => 1, 'ban_time' => 0, 'ban_desc' => '']);
  61. }else{
  62. UserSubscribe::query()->whereId($id)->update(['status' => 0, 'ban_time' => time(), 'ban_desc' => '后台手动封禁']);
  63. }
  64. return Response::json(['status' => 'success', 'message' => '操作成功']);
  65. }
  66. }