bugs fix callback
This commit is contained in:
@@ -74,7 +74,7 @@ class ChatController extends Controller
|
|||||||
public function listChannel(Request $request){
|
public function listChannel(Request $request){
|
||||||
// Validasi request jika diperlukan
|
// Validasi request jika diperlukan
|
||||||
$channel = Channel::where('member_id',$request->user_id)->get()->toArray();
|
$channel = Channel::where('member_id',$request->user_id)->get()->toArray();
|
||||||
|
|
||||||
if (!$channel) {
|
if (!$channel) {
|
||||||
$dataChannel = Channel::where('doctor_id',$request->user_id)->get()->toArray();
|
$dataChannel = Channel::where('doctor_id',$request->user_id)->get()->toArray();
|
||||||
$data = [];
|
$data = [];
|
||||||
@@ -86,11 +86,11 @@ class ChatController extends Controller
|
|||||||
->first();
|
->first();
|
||||||
$urlAvatarDefault = $user->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
|
$urlAvatarDefault = $user->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
|
||||||
$avatarMember = $user->detail->sImage ?? $urlAvatarDefault;
|
$avatarMember = $user->detail->sImage ?? $urlAvatarDefault;
|
||||||
|
|
||||||
$arr['id'] = $d['id'];
|
$arr['id'] = $d['id'];
|
||||||
$arr['avatar'] = $avatarMember;
|
$arr['avatar'] = $avatarMember;
|
||||||
$arr['name'] = $user->sFirstName .' '.$user->sLastName;
|
$arr['name'] = $user->sFirstName .' '.$user->sLastName;
|
||||||
$arr['last_message'] = $lastMessage;
|
$arr['last_message'] = $lastMessage;
|
||||||
|
|
||||||
array_push($data, $arr);
|
array_push($data, $arr);
|
||||||
}
|
}
|
||||||
@@ -101,14 +101,14 @@ class ChatController extends Controller
|
|||||||
|
|
||||||
return response()->json(['message' => 'Get List Channel successfully', 'channel' => $channel]);
|
return response()->json(['message' => 'Get List Channel successfully', 'channel' => $channel]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sendMessage(Request $request)
|
public function sendMessage(Request $request)
|
||||||
{
|
{
|
||||||
// Validasi request jika diperlukan
|
// Validasi request jika diperlukan
|
||||||
$validatedData = $request->validate([
|
$validatedData = $request->validate([
|
||||||
'user_id' => 'required'
|
'user_id' => 'required'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Ambil data dari request
|
// Ambil data dari request
|
||||||
$message = Message::create([
|
$message = Message::create([
|
||||||
'content' => $request->message,
|
'content' => $request->message,
|
||||||
@@ -142,7 +142,7 @@ class ChatController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
// Berikan respons yang sesuai ke klien
|
// Berikan respons yang sesuai ke klien
|
||||||
|
|
||||||
$channel = Channel::where('id',$request->channel_id)->first();
|
$channel = Channel::where('id',$request->channel_id)->first();
|
||||||
if($channel->member_id == $request->user_id){
|
if($channel->member_id == $request->user_id){
|
||||||
// Get nama dokter
|
// Get nama dokter
|
||||||
@@ -151,13 +151,13 @@ class ChatController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
// Get nama pasien
|
// Get nama pasien
|
||||||
$person = User::where('nID', $channel->member_id)->first();
|
$person = User::where('nID', $channel->member_id)->first();
|
||||||
$name = $person->sFirstName . ' ' . $person->sLastName;
|
$name = $person->sFirstName . ' ' . $person->sLastName;
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatMessageSent::dispatch($message);
|
ChatMessageSent::dispatch($message);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'Message sent successfully',
|
'message' => 'Message sent successfully',
|
||||||
'data' => [
|
'data' => [
|
||||||
'header' => $name,
|
'header' => $name,
|
||||||
]
|
]
|
||||||
@@ -169,8 +169,8 @@ class ChatController extends Controller
|
|||||||
// Buat instance Pusher dengan konfigurasi yang sesuai
|
// Buat instance Pusher dengan konfigurasi yang sesuai
|
||||||
$channel = Channel::where('id',$request->channel_id)->first();
|
$channel = Channel::where('id',$request->channel_id)->first();
|
||||||
$livechat = Livechat::where([
|
$livechat = Livechat::where([
|
||||||
'doctor_id' => $channel->doctor_id,
|
'doctor_id' => $channel->doctor_id,
|
||||||
'patient_id' => $channel->member_id,
|
'patient_id' => $channel->member_id,
|
||||||
])->latest('created_at')->first();
|
])->latest('created_at')->first();
|
||||||
|
|
||||||
if($channel->member_id == $request->user_id){
|
if($channel->member_id == $request->user_id){
|
||||||
@@ -181,37 +181,61 @@ class ChatController extends Controller
|
|||||||
$age = '';
|
$age = '';
|
||||||
$gender = '';
|
$gender = '';
|
||||||
$question = '';
|
$question = '';
|
||||||
|
|
||||||
$consultationStart = $livechat->start_date;
|
$consultationStart = $livechat->start_date;
|
||||||
$consultationEnd = $livechat->end_date;
|
$consultationEnd = $livechat->end_date;
|
||||||
$work = '';
|
$work = '';
|
||||||
|
$weight = '-';
|
||||||
|
$height = '-';
|
||||||
$address = '';
|
$address = '';
|
||||||
|
$maritalStatus = '';
|
||||||
} else {
|
} else {
|
||||||
// Get nama pasien
|
// Get nama pasien
|
||||||
$user = User::where('nID', $channel->member_id)->with('detail')->first();
|
$user = User::where('nID', $channel->member_id)->with('detail')->first();
|
||||||
$name = $user->sFirstName . ' ' . $user->sLastName;
|
$name = $user->sFirstName . ' ' . $user->sLastName;
|
||||||
$urlAvatarDefault = $user->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
|
$gender = null;
|
||||||
$avatar = $user->detail->sImage ?? $urlAvatarDefault;
|
if ($user->detail) {
|
||||||
$gender = DB::connection('oldlms')->table('tm_jenis_kelamin')->where('nID', $user->detail->nIDJenisKelamin)->first('sJenisKelamin');
|
$urlAvatarDefault = $user->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
|
||||||
if ($gender){
|
$avatar = $user->detail->sImage ?? $urlAvatarDefault;
|
||||||
$gender = $gender->sJenisKelamin;
|
$gender = DB::connection('oldlms')->table('tm_jenis_kelamin')->where('nID', $user->detail->nIDJenisKelamin)->first('sJenisKelamin');
|
||||||
|
$age = Helper::calculateAge($user->detail->dTanggalLahir);
|
||||||
|
if ($gender){
|
||||||
|
$gender = $gender->sJenisKelamin;
|
||||||
|
}
|
||||||
|
$work = DB::connection('oldlms')->table('tm_pekerjaan')->where('nID', $user->detail->nIDPekerjaan)->first('sPekerjaan');
|
||||||
|
|
||||||
|
if($work){
|
||||||
|
$work = $work->sPekerjaan;
|
||||||
|
}
|
||||||
|
$maritalStatus = DB::connection('oldlms')->table('tm_status_pernikahan')->where('nID', $user->detail->sMartialStatus)->first('sStatusPernikahan');
|
||||||
|
if($maritalStatus){
|
||||||
|
$maritalStatus = $maritalStatus->sStatusPernikahan;
|
||||||
|
}
|
||||||
|
|
||||||
|
$weight = $user->detail->sWeight;
|
||||||
|
$height = $user->detail->sWeight;
|
||||||
|
} else {
|
||||||
|
$avatar = 'https://linksehat.dev/assets/img/users/male-avatar.png';
|
||||||
|
$age = '-';
|
||||||
|
$work = '-';
|
||||||
|
$maritalStatus = '-';
|
||||||
|
$weight = '-';
|
||||||
|
$height = '-';
|
||||||
|
|
||||||
}
|
}
|
||||||
$age = Helper::calculateAge($user->detail->dTanggalLahir);
|
|
||||||
$question = $livechat->descriptions;
|
$question = $livechat->descriptions;
|
||||||
$consultationStart = $livechat->start_date;
|
$consultationStart = $livechat->start_date;
|
||||||
$consultationEnd = $livechat->end_date;
|
$consultationEnd = $livechat->end_date;
|
||||||
$work = DB::connection('oldlms')->table('tm_pekerjaan')->where('nID', $user->detail->nIDPekerjaan)->first('sPekerjaan');
|
|
||||||
|
|
||||||
if($work){
|
|
||||||
$work = $work->sPekerjaan;
|
|
||||||
}
|
|
||||||
$address = DB::connection('oldlms')->table('tm_users_address')->where('nIDUser', $user->nID)->first('sAlamat');
|
$address = DB::connection('oldlms')->table('tm_users_address')->where('nIDUser', $user->nID)->first('sAlamat');
|
||||||
if($address){
|
if($address){
|
||||||
$address = $address->sAlamat;
|
$address = $address->sAlamat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ini Untul Chat
|
// Ini Untul Chat
|
||||||
$perPage = $request->input('per_page', 10); // Default 10 pesan per halaman
|
$perPage = $request->input('per_page', 10); // Default 10 pesan per halaman
|
||||||
$page = $request->input('page', 1); // Default halaman 1
|
$page = $request->input('page', 1); // Default halaman 1
|
||||||
@@ -220,7 +244,7 @@ class ChatController extends Controller
|
|||||||
->where('type', '!=', 'trigger')
|
->where('type', '!=', 'trigger')
|
||||||
->orderBy('created_at', 'desc') // Urutkan berdasarkan created_at secara descending
|
->orderBy('created_at', 'desc') // Urutkan berdasarkan created_at secara descending
|
||||||
->paginate($perPage, ['*'], 'page', $page);
|
->paginate($perPage, ['*'], 'page', $page);
|
||||||
|
|
||||||
// Data Consultation Summary
|
// Data Consultation Summary
|
||||||
$consultationSummary = [
|
$consultationSummary = [
|
||||||
'subject' => $livechat->subject,
|
'subject' => $livechat->subject,
|
||||||
@@ -240,12 +264,22 @@ class ChatController extends Controller
|
|||||||
'header' => $name,
|
'header' => $name,
|
||||||
'avatar' => $avatar,
|
'avatar' => $avatar,
|
||||||
'gender' => $gender,
|
'gender' => $gender,
|
||||||
|
'marital_status' => $maritalStatus,
|
||||||
'age' => $age,
|
'age' => $age,
|
||||||
|
'weight' => $weight,
|
||||||
|
'height' => $height,
|
||||||
'question' => $question,
|
'question' => $question,
|
||||||
|
'diseases' => [],
|
||||||
|
'medications' => [],
|
||||||
|
'allergy' => [],
|
||||||
|
'family_history' => [],
|
||||||
'start' => $consultationStart,
|
'start' => $consultationStart,
|
||||||
'end' => $consultationEnd,
|
'end' => $consultationEnd,
|
||||||
'work' => $work,
|
'work' => $work,
|
||||||
'address' => $address,
|
'address' => $address,
|
||||||
|
'consultation_id' => $livechat->id,
|
||||||
|
'consultation_status' => Helper::getStatusLivechat($livechat->status),
|
||||||
|
'health_sertificate' => $healthSertificate,
|
||||||
'chat' => $data->items(),
|
'chat' => $data->items(),
|
||||||
'pagination' => [
|
'pagination' => [
|
||||||
'total' => $data->total(),
|
'total' => $data->total(),
|
||||||
@@ -256,8 +290,7 @@ class ChatController extends Controller
|
|||||||
'to' => $data->lastItem(),
|
'to' => $data->lastItem(),
|
||||||
],
|
],
|
||||||
'summary' => $consultationSummary,
|
'summary' => $consultationSummary,
|
||||||
'livechat_id' => $livechat->id,
|
|
||||||
'health_sertificate' => $healthSertificate,
|
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@@ -278,7 +311,7 @@ class ChatController extends Controller
|
|||||||
])->latest('created_at')->first();
|
])->latest('created_at')->first();
|
||||||
|
|
||||||
$user = User::where('nID', $livechat->patient_id)->with('detail')->first();
|
$user = User::where('nID', $livechat->patient_id)->with('detail')->first();
|
||||||
$name = $user->sFirstName . ' ' . $user->sLastName;
|
$name = $user->sFirstName . ' ' . $user->sLastName;
|
||||||
$age = Helper::calculateAge($user->detail->dTanggalLahir);
|
$age = Helper::calculateAge($user->detail->dTanggalLahir);
|
||||||
|
|
||||||
$person = Person::where('id', $livechat->doctor_id)->first();
|
$person = Person::where('id', $livechat->doctor_id)->first();
|
||||||
@@ -294,7 +327,7 @@ class ChatController extends Controller
|
|||||||
}
|
}
|
||||||
// Memuat view pdf_view.php ke dalam variabel
|
// Memuat view pdf_view.php ke dalam variabel
|
||||||
$calculateDate = Helper::calculateDateDifference($livechat->health_certificate_start, $livechat->health_certificate_end);
|
$calculateDate = Helper::calculateDateDifference($livechat->health_certificate_start, $livechat->health_certificate_end);
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'age' => $age,
|
'age' => $age,
|
||||||
|
|||||||
@@ -44,8 +44,12 @@ class ChatDoctorController extends Controller
|
|||||||
if($chat) {
|
if($chat) {
|
||||||
foreach($chat as $c){
|
foreach($chat as $c){
|
||||||
$patient = UserLMS::where('nID',$c->patient_id)->with('detail')->first();
|
$patient = UserLMS::where('nID',$c->patient_id)->with('detail')->first();
|
||||||
$urlAvatarDefault = $patient->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
|
if ( $patient->detail) {
|
||||||
$avatarMember = $patient->detail->sImage ?? $urlAvatarDefault;
|
$urlAvatarDefault = $patient->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
|
||||||
|
$avatarMember = $patient->detail->sImage ?? $urlAvatarDefault;
|
||||||
|
} else {
|
||||||
|
$avatarMember = 'https://linksehat.dev/assets/img/users/male-avatar.png';
|
||||||
|
}
|
||||||
$arr['id'] = $c->id;
|
$arr['id'] = $c->id;
|
||||||
$arr['patient_id'] = $patient->nID;
|
$arr['patient_id'] = $patient->nID;
|
||||||
$arr['avatar'] = $avatarMember;
|
$arr['avatar'] = $avatarMember;
|
||||||
@@ -68,11 +72,11 @@ class ChatDoctorController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
$avatarMember = 'https://linksehat.dev/assets/img/users/male-avatar.png';
|
$avatarMember = 'https://linksehat.dev/assets/img/users/male-avatar.png';
|
||||||
}
|
}
|
||||||
|
|
||||||
$arr['id'] = $d['id'];
|
$arr['id'] = $d['id'];
|
||||||
$arr['avatar'] = $avatarMember;
|
$arr['avatar'] = $avatarMember;
|
||||||
$arr['name'] = $user->sFirstName .' '.$user->sLastName;
|
$arr['name'] = $user->sFirstName .' '.$user->sLastName;
|
||||||
$arr['last_message'] = $lastMessage;
|
$arr['last_message'] = $lastMessage;
|
||||||
|
|
||||||
array_push($dataOnGoing, $arr);
|
array_push($dataOnGoing, $arr);
|
||||||
}
|
}
|
||||||
@@ -119,7 +123,7 @@ class ChatDoctorController extends Controller
|
|||||||
}
|
}
|
||||||
return ApiResponse::apiResponse("Success", $data, trans('Message.success'), 200);
|
return ApiResponse::apiResponse("Success", $data, trans('Message.success'), 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function declineChat(Request $request)
|
public function declineChat(Request $request)
|
||||||
{
|
{
|
||||||
$livechat = Livechat::find($request->id);
|
$livechat = Livechat::find($request->id);
|
||||||
@@ -166,7 +170,6 @@ class ChatDoctorController extends Controller
|
|||||||
|
|
||||||
public function summaryChat(Request $request)
|
public function summaryChat(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
$livechat = Livechat::find($request->id);
|
$livechat = Livechat::find($request->id);
|
||||||
if ($livechat) {
|
if ($livechat) {
|
||||||
// Memperbarui atribut model
|
// Memperbarui atribut model
|
||||||
|
|||||||
@@ -291,10 +291,9 @@ class DuitkuController extends Controller
|
|||||||
// Update status pembayaran
|
// Update status pembayaran
|
||||||
$livechat->payment_method = $notif->paymentCode;
|
$livechat->payment_method = $notif->paymentCode;
|
||||||
$livechat->status = 5; // success payment
|
$livechat->status = 5; // success payment
|
||||||
$livechat->save();
|
|
||||||
|
|
||||||
// Update start chat
|
// Update start chat
|
||||||
$livechat->start_date = date('Y-m-d H:i:s');
|
$livechat->start_date = date('Y-m-d H:i:s');
|
||||||
|
$livechat->save();
|
||||||
// Buat dan simpan data channel ke dalam tabel
|
// Buat dan simpan data channel ke dalam tabel
|
||||||
$channel = Channel::updateOrCreate([
|
$channel = Channel::updateOrCreate([
|
||||||
'name' => $livechat->patient_id .'_' . $request->doctor_id,
|
'name' => $livechat->patient_id .'_' . $request->doctor_id,
|
||||||
@@ -332,7 +331,7 @@ class DuitkuController extends Controller
|
|||||||
|
|
||||||
// Berikan respons yang sesuai ke klien
|
// Berikan respons yang sesuai ke klien
|
||||||
return response()->json(['message' => 'Channel created successfully', 'channel' => $channel]);
|
return response()->json(['message' => 'Channel created successfully', 'channel' => $channel]);
|
||||||
|
|
||||||
} else if ($notif->resultCode == "01") {
|
} else if ($notif->resultCode == "01") {
|
||||||
// Action Failed
|
// Action Failed
|
||||||
$livechat = Livechat::where('uuid', $notif->merchantOrderId)->first();
|
$livechat = Livechat::where('uuid', $notif->merchantOrderId)->first();
|
||||||
|
|||||||
@@ -477,7 +477,7 @@ class Helper
|
|||||||
public static function calculateAge($date_brith_day){
|
public static function calculateAge($date_brith_day){
|
||||||
// Konversi tanggal lahir ke dalam format UNIX timestamp
|
// Konversi tanggal lahir ke dalam format UNIX timestamp
|
||||||
$dob = strtotime($date_brith_day);
|
$dob = strtotime($date_brith_day);
|
||||||
|
|
||||||
// Hitung umur berdasarkan tanggal lahir
|
// Hitung umur berdasarkan tanggal lahir
|
||||||
$umur = date('Y') - date('Y', $dob);
|
$umur = date('Y') - date('Y', $dob);
|
||||||
|
|
||||||
@@ -498,5 +498,34 @@ class Helper
|
|||||||
return $start->diffInDays($end) + 1;
|
return $start->diffInDays($end) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getStatusLivechat($status) {
|
||||||
|
switch ($status) {
|
||||||
|
case 1:
|
||||||
|
return 'Requested'; // Clearer status name
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return 'Accepted';
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
return 'Declined';
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
return 'Waiting Payment';
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
return 'Payment Successful';
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
return 'Chat Ended';
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
return 'Payment Failed';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 'Unknown Status'; // Handle unknown statuses
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user