YinliuManageController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace Modules\Yinliu\Http\Controllers;
  3. use Catch\Base\CatchController;
  4. use Illuminate\Foundation\Validation\ValidatesRequests;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\DB;
  7. use Modules\Yinliu\Models\YinliuGzhConfigModel;
  8. /**
  9. * 引流管理
  10. */
  11. class YinliuManageController extends CatchController
  12. {
  13. use ValidatesRequests;
  14. /**
  15. * 列表
  16. * @param Request $request
  17. */
  18. public function list(Request $request) {
  19. $gzhId = $request->input('gzh_id');
  20. $gzhIsEnabled = $request->input('gzh_is_enabled');
  21. $result = DB::table('yinliu_gzh_config as a')
  22. ->leftJoin('wechat_authorization_infos as b', 'a.gzh_id','=', 'b.id')
  23. ->when($gzhId, function ($query, $gzhId){
  24. return $query->where('a.gzh_id', $gzhId);
  25. })->when($gzhIsEnabled, function ($query, $gzhIsEnabled) {
  26. return $query->where('b.is_enabled', $gzhIsEnabled);
  27. })
  28. ->where([
  29. 'a.uid' => $this->getLoginUserId(),
  30. 'a.is_enabled' => 1,
  31. ])->select('a.*', 'b.nick_name as gzh_nick_name', 'b.is_enabled as gzh_is_enabled')
  32. ->orderBy('a.id','desc')
  33. ->paginate($request->input('limit', 20));
  34. foreach ($result as $item) {
  35. $item->focus_type_str = 1 == $item->focus_type ? '公众号引流' : '';
  36. $item->link_type_str = 1 == $item->link_type ? '关注链接' : '关注二维码';
  37. }
  38. return $result;
  39. }
  40. /**
  41. * 添加
  42. * @param Request $request
  43. */
  44. public function save(Request $request) {
  45. $this->validate($request, [
  46. 'focus_type' => 'required|in:1',
  47. 'gzh_id' => 'required',
  48. // 播放页弹窗设置:1-强制关注,2-引导关注,3-不关注
  49. 'pop_type' => 'required|in:1,2,3',
  50. // pop_type == 2 时,弹窗设置:1-仅设置剧集弹窗,2-设置剧集及后每集弹窗
  51. 'pop_type_sub' => 'required_if:pop_type,2|in:1,2',
  52. 'link_type' => 'required|in:1,2',
  53. 'link_url' => 'required',
  54. ]);
  55. $data = $request->only('focus_type', 'gzh_id', 'pop_type', 'link_type', 'link_url');
  56. if(2 != $data['pop_type']) {
  57. $data['pop_type_sub'] = 0;
  58. }
  59. $uid = $this->getLoginUserId();
  60. if($request->input('id')) {
  61. YinliuGzhConfigModel::where([
  62. 'id' => $request->input('id'),
  63. 'uid' => $uid
  64. ])->update($data);
  65. } else {
  66. $data['uid'] = $uid;
  67. YinliuGzhConfigModel::create($data);
  68. }
  69. return 'ok';
  70. }
  71. /**
  72. * 删除
  73. * @param Request $request
  74. */
  75. public function delete(Request $request) {
  76. $this->validate($request, [
  77. 'id' => 'required'
  78. ]);
  79. YinliuGzhConfigModel::where([
  80. 'id' => $request->input('id'),
  81. 'uid' => $this->getLoginUserId()
  82. ])->update([
  83. 'is_enabled' => 0
  84. ]);
  85. return 'ok';
  86. }
  87. }