Advertisement
Guest User

Untitled

a guest
Aug 5th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.56 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
  6. use Auth;
  7. use App\Dosen;
  8. use App\User;
  9. use App\Pesan;
  10. use Illuminate\Support\Facades\DB;
  11. use App\Percakapan;
  12. use App\Mahasiswa;
  13. class HomeController extends Controller
  14. {
  15. /**
  16. * Create a new controller instance.
  17. *
  18. * @return void
  19. */
  20. public function __construct()
  21. {
  22. $this->middleware('auth');
  23. }
  24.  
  25. /**
  26. * Show the application dashboard.
  27. *
  28. * @return \Illuminate\Http\Response
  29. */
  30. public function index()
  31. {
  32. return view('admin/index');
  33. }
  34.  
  35. public function profile(){
  36. $title = "Profil";
  37. $page = "";
  38.  
  39. $obj = Auth::user();
  40.  
  41. return view('profil/index',compact('title','page','obj'));
  42. }
  43. public function editProfile(){
  44. $title = "Profil";
  45. $page = "Edit";
  46. $obj = Auth::user();
  47. // echo "string";
  48. // echo Auth::user()->status;
  49. return view('profil/edit',compact('title','page','obj'));
  50. }
  51. public function updateProfile($param,Request $request){
  52.  
  53. $data = User::find($param);
  54. $id = $data->id_user;
  55. if (Auth::user()->status=='3' || Auth::user()->status=='1') {
  56. $dosen = Dosen::find($id);
  57. $dosen->nama = $request->nama;
  58.  
  59.  
  60.  
  61. $foto = $request->file;
  62.  
  63. if (!empty($foto)) {
  64. $ext = $foto->getClientOriginalExtension();
  65. $name = time().'.'.$ext;
  66. $foto->move(public_path('/uploads/'),$name);
  67. $data->foto = $name;
  68. $data->save();
  69. }
  70.  
  71.  
  72. if (Auth::user()->status=='1') {
  73.  
  74. if ($dosen->nip != $request->nip) {
  75. $data->username = $request->nip;
  76. $update = $data->save();
  77. }
  78. }
  79. if (Auth::user()->status=='3') {
  80. $data->username = $request->username;
  81. $update = $data->save();
  82.  
  83. }
  84.  
  85.  
  86. if (!empty($request->password)) {
  87. $data = User::find($param);
  88. $data->password = bcrypt($request->password);
  89. $update = $data->save();
  90. }
  91.  
  92.  
  93. $dosen->nip = $request->nip;
  94. $dosen->tgl_lahir= $request->tgl_lahir;
  95. $dosen->jenjang_pendidikan = $request->jenjang_pendidikan;
  96. $update = $dosen->save();
  97.  
  98.  
  99.  
  100. if ($update) {
  101. $request->session()->flash('success','Profil Berhasil Diubah');
  102. }
  103. else{
  104. $request->session()->flash('danger','Profil Gagal Diubah');
  105. }
  106.  
  107.  
  108. }
  109. if (Auth::user()->status=='2') {
  110.  
  111. $mahasiswa = Mahasiswa::find($id);
  112. $mahasiswa->nama = $request->nama;
  113. $data = User::find($param);
  114. if (!empty($request->password)) {
  115. $data->password = bcrypt($request->password);
  116. $update = $data->save();
  117. }
  118.  
  119. $foto = $request->file;
  120.  
  121. if (!empty($foto)) {
  122. $ext = $foto->getClientOriginalExtension();
  123. $name = time().'.'.$ext;
  124. $foto->move(public_path('/uploads/'),$name);
  125. $data->foto = $name;
  126. $data->save();
  127. }
  128.  
  129.  
  130. $mahasiswa->jenis_kelamin = $request->jenis_kelamin;
  131. $mahasiswa->alamat = $request->alamat;
  132. $update = $mahasiswa->save();
  133.  
  134.  
  135.  
  136. if ($update) {
  137. $request->session()->flash('success','Profil Berhasil Diubah');
  138. }
  139. else{
  140. $request->session()->flash('danger','Profil Gagal Diubah');
  141. }
  142.  
  143.  
  144. }
  145. if (Auth::user()->status=='0') {
  146.  
  147. // $user = User::find($id);
  148. // $user->username = $request->username;
  149. if (!empty($request->password)) {
  150. $data->password = bcrypt($request->password);
  151.  
  152. }
  153. $foto = $request->file;
  154. if (!empty($foto)) {
  155. $ext = $foto->getClientOriginalExtension();
  156. $name = time().'.'.$ext;
  157. $foto->move(public_path('/uploads/'),$name);
  158. $data->foto = $name;
  159. }
  160. $data->nama = $request->nama;
  161. $data->alamat = $request->alamat;
  162. $data->telp = $request->telp;
  163. $update = $data->save();
  164.  
  165.  
  166.  
  167. if ($update) {
  168. $request->session()->flash('success','Profil Berhasil Diubah');
  169. }
  170. else{
  171. $request->session()->flash('danger','Profil Gagal Diubah');
  172. }
  173.  
  174.  
  175. }
  176.  
  177. return redirect()->back();
  178. }
  179.  
  180. public function listMessage(){
  181. $title = "Pesan";
  182. $page ="";
  183.  
  184.  
  185.  
  186. $me = Auth::user()->username;
  187.  
  188.  
  189.  
  190.  
  191. $data = DB::select(DB::raw("SELECT * from pesans WHERE id_pengirim = '$me' or id_penerima='$me'"));
  192.  
  193.  
  194. foreach ($data as $d ) {
  195. # code...
  196.  
  197. if ($d->id_pengirim == $me) {
  198. # code...
  199. $opp = 'id_penerima';
  200. }
  201. else{
  202.  
  203. $opp = 'id_pengirim';
  204. }
  205.  
  206. $penerima = User::where('username',$d->$opp)->first();
  207.  
  208. if ($penerima->status == 0) {
  209. # code...
  210.  
  211. $status = 'Admin';
  212. $nama = $penerima->nama;
  213. }
  214. elseif ($penerima->status==1 || $penerima->status==3) {
  215. if ($penerima->status==1) {
  216. # code...
  217. $status = 'Admin';
  218.  
  219. }
  220. elseif ($penerima->status==3) {
  221. # code...
  222. $status = 'Kepala Prodi';
  223. $nama = "a";
  224. }
  225.  
  226. $nama = $penerima->dosen->nama;
  227. }
  228. elseif ($penerima->status==2) {
  229.  
  230. $status = 'Mahasiswa';
  231. $nama = $penerima->mahasiswa->nama;
  232. }
  233.  
  234.  
  235. $percakapan = Percakapan::where('id_pesan',$d->id)->orderBy('created_at','desc')->first();
  236. // print_r($percakapan->pesan);
  237. $array[] = [
  238. 'pengirim'=>$nama,
  239. 'username'=>$d->$opp,
  240. 'percakapan'=>$percakapan->pesan,
  241. 'waktu'=>$percakapan->created_at
  242. ];
  243. }
  244.  
  245. // print_r($array);
  246. return view('pesan/list',compact('title','page','array','data'));
  247. }
  248.  
  249. public function createMessage(Request $request){
  250. $title = "Pesan Baru";
  251. $page = "";
  252. $status = $request->status;
  253. if (!empty($status)) {
  254. # code...
  255.  
  256. if ($status == "mahasiswa") {
  257. $s = 2;
  258. }
  259. elseif ($status=="dosen") {
  260.  
  261. $s = 1;
  262. }
  263. elseif ($status=="admin") {
  264. # code...
  265. $s = 0;
  266. }
  267. elseif ($status=="kaprodi") {
  268. # code...
  269. $s = 3;
  270. }
  271. $data = User::where('status',$s)->get();
  272.  
  273. }
  274. return view('pesan/create',compact('title','page','data','s','status'));
  275. }
  276.  
  277. public function messageByUser($username,Request $request){
  278. $title = "Pesan";
  279. $page = "";
  280.  
  281. $pengirim = Auth::user()->username;
  282. $penerima = $username;
  283. $last_time = $request->last_time;
  284. $type = $request->type;
  285.  
  286.  
  287. $belumDibaca = Percakapan::where('id_penerima',Auth::user()->username)->where('id_pengirim',$username)->count();
  288.  
  289. if ($belumDibaca != 0) {
  290. Percakapan::where('id_penerima',Auth::user()->username)->where('id_pengirim',$username)->update(['status_dibaca'=>'1']);
  291. }
  292.  
  293.  
  294.  
  295. $flag = $type=="prev" ? '<':'>';
  296.  
  297.  
  298. $chatQuery = "SELECT * from pesans WHERE (id_pengirim = '$pengirim' AND id_penerima='$penerima') OR (id_pengirim = '$penerima' AND id_penerima='$pengirim')";
  299.  
  300. $count = count(DB::select(DB::raw($chatQuery)));
  301.  
  302.  
  303.  
  304.  
  305. $query = "select * from (SELECT * from percakapans WHERE ((id_pengirim = '$pengirim' AND id_penerima='$penerima') OR (id_pengirim = '$penerima' AND id_penerima='$pengirim'))";
  306.  
  307. // $query1 = "select * from (SELECT * from percakapans WHERE ((id_pengirim = '$pengirim' AND id_penerima='$penerima') OR (id_pengirim = '$penerima' AND id_penerima='$pengirim'))";
  308.  
  309.  
  310. if (empty($last_time)) {
  311. $query .= " ORDER by created_at DESC LIMIT 0,5 ) as a order by created_at asc";
  312.  
  313. // $query1 .= " ORDER by created_at DESC LIMIT 0,5 ) as a order by created_at asc limit 0,1";
  314.  
  315. }
  316. else{
  317. $query .= " AND created_at ".$flag." '".$last_time."' ORDER by created_at DESC ";
  318. if ($type=='prev') {
  319. $query .= "limit 0,5) as a order by created_at asc limit 0,5";
  320. }
  321. else{
  322. $query .= ") as a order by created_at asc limit 0,5 ";
  323. }
  324.  
  325. // $query1 .= " AND created_at < '".$last_time."' ORDER by created_at DESC limit 0,5 ) as a order by created_at asc limit 0,1";
  326. }
  327.  
  328.  
  329. $data = DB::select(DB::raw($query));
  330. // $last = DB::select(DB::raw($query1));
  331.  
  332. // $new = DB::select(DB::raw($query2));
  333.  
  334. // if (count($data)) {
  335. // # code...
  336. // }
  337.  
  338. if (count($data) !=0) {
  339. # code...
  340.  
  341. $last_time_btn= $data[0]->created_at;
  342. $new_time_btn= end($data)->created_at;
  343.  
  344.  
  345. $nextquery = "select * from (SELECT * from percakapans WHERE ((id_pengirim = '$pengirim' AND id_penerima='$penerima') OR (id_pengirim = '$penerima' AND id_penerima='$pengirim'))";
  346. $nextquery .= " AND created_at > '".$new_time_btn."' ORDER by created_at DESC ) as a order by created_at asc limit 0,5";
  347. $nextdata = DB::select(DB::raw($nextquery));
  348.  
  349. $prevquery = "select * from (SELECT * from percakapans WHERE ((id_pengirim = '$pengirim' AND id_penerima='$penerima') OR (id_pengirim = '$penerima' AND id_penerima='$pengirim'))";
  350. $prevquery .= " AND created_at < '".$last_time_btn."' ORDER by created_at DESC limit 0,5 ) as a order by created_at asc limit 0,5";
  351. $prevdata = DB::select(DB::raw($prevquery));
  352.  
  353.  
  354. // echo count($nextdata);
  355. if (!empty($last_time) && count($nextdata)==0) {
  356. # code...
  357.  
  358. return redirect('/pesan/u/'.$username);
  359. }
  360. if ( count($prevdata) != 0) {
  361. $status_btn = 1;
  362. }
  363. else{
  364.  
  365. $status_btn = 0;
  366. }
  367.  
  368.  
  369.  
  370. }
  371.  
  372.  
  373. // echo $query;
  374. // print_r($last);
  375.  
  376. // echo "SELECT * from percakapans WHERE (id_pengirim = '$pengirim' AND id_penerima='$penerima') OR (id_pengirim = '$penerima' AND id_penerima='$pengirim')";
  377.  
  378. // print_r($data);
  379. $array = [];
  380.  
  381. foreach ($data as $d ) {
  382. $pengirim = User::where('username',$d->id_pengirim)->first();
  383. $penerima = User::where('username',$d->id_penerima)->first();
  384.  
  385. $foto = Auth::user()->username == $d->id_pengirim ? (!empty(Auth::user()->foto) ? Auth::user()->foto : 'sender.png') : (!empty($pengirim->foto) ? $pengirim->foto : 'sender.png' );
  386.  
  387. if ($pengirim->status == 0) {
  388. # code...
  389.  
  390. $status = 'Admin';
  391. $nama = $pengirim->nama;
  392. }
  393. elseif ($pengirim->status==1 || $pengirim->status==3) {
  394. if ($pengirim->status==1) {
  395. # code...
  396. $status = 'Dosen';
  397. }
  398. elseif ($pengirim->status==3) {
  399. # code...
  400. $status = 'Kepala Prodi';
  401. }
  402.  
  403. $nama = $pengirim->dosen->nama;
  404. }
  405. elseif ($pengirim->status==2) {
  406.  
  407. $status = 'Mahasiswa';
  408. $nama = $pengirim->mahasiswa->nama;
  409. }
  410.  
  411.  
  412. if ($penerima->status == 0) {
  413. # code...
  414. $namapenerima = $penerima->nama;
  415. }
  416. elseif ($penerima->status==1 || $penerima->status==3) {
  417. $namapenerima = $penerima->dosen->nama;
  418. }
  419. elseif ($penerima->status==2) {
  420. $namapenerima = $penerima->mahasiswa->nama;
  421. }
  422.  
  423.  
  424. $array[] = [
  425. 'pengirim'=>$nama,
  426. 'username_pengirim'=>$d->id_pengirim,
  427. 'penerima'=>$namapenerima,
  428. 'foto_pengirim'=>$foto,
  429. 'status'=>$status,
  430. 'status_pesan'=>$d->status_dibaca,
  431. 'pesan'=>$d->pesan,
  432. 'tgl'=>$d->created_at
  433. ];
  434. }
  435. $obj = User::where('username',$username)->first();
  436.  
  437.  
  438.  
  439. return view('pesan/byUser',compact('title','page','username','data','array','obj','last_time','last_time_btn','new_time_btn','status_btn','count'));
  440. // print_r($array);
  441. }
  442. public function sendMessageByUser($username,Request $request){
  443. $pengirim = Auth::user()->username;
  444. $penerima = $username;
  445. $pesanText = $request->pesan;
  446.  
  447.  
  448. $data = DB::select(DB::raw("SELECT * from pesans WHERE (id_pengirim = '$pengirim' AND id_penerima='$penerima') OR (id_pengirim = '$penerima' AND id_penerima='$pengirim')"));
  449. // $data = Pesan::where([]);
  450.  
  451. $count = count($data);
  452. // echo $count;
  453.  
  454. // print_r($data);
  455. // echo "SELECT * from pesans WHERE (id_pengirim = '$pengirim' AND id_penerima='$penerima') OR (id_pengirim = '$penerima' AND id_penerima='$pengirim')";
  456. if ($count == 0) {
  457.  
  458. $pesan = new Pesan;
  459. $pesan->id_pengirim = $pengirim;
  460. $pesan->id_penerima = $penerima;
  461. $pesan->save();
  462.  
  463. $percakapan = new Percakapan;
  464. $percakapan->id_pesan = $pesan->id;
  465. $percakapan->id_penerima = $penerima;
  466. $percakapan->id_pengirim = $pengirim;
  467. $percakapan->pesan = $pesanText;
  468. $percakapan->status_dibaca=0;
  469. $percakapan->save();
  470.  
  471. }
  472. else{
  473.  
  474. $percakapan = new Percakapan;
  475. $percakapan->id_pesan = $data[0]->id;
  476. $percakapan->id_penerima = $penerima;
  477. $percakapan->id_pengirim = $pengirim;
  478. $percakapan->pesan = $pesanText;
  479. $percakapan->status_dibaca=0;
  480. $percakapan->save();
  481. }
  482.  
  483.  
  484. return redirect('pesan/u/'.$username);
  485.  
  486. }
  487.  
  488. public function bimbingan(){
  489. return view('bimbingan/index');
  490. }
  491. public function bimbinganCreate(){
  492. return view('bimbingan/create');
  493. }
  494. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement