You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

208 lines
6.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requests\EditUserPersonInput;
use App\Models\UserPerson;
use Illuminate\Http\Request;
use Login;
use Yo;
class UserPersonController extends Controller
{
public function group_search(Request $request)
{
Login::user();
$hospital = $request->post('hospital');
$phone = $request->post('phone');
$id_number = $request->post('id_number');
$cic = new ComboItemController();
$info = $cic->group_info($hospital, [
// "电话号码" => $phone,
"证件号码" => $id_number,
"预约Id" => null
]);
return Yo::echo([
'appointment_number' => $info['appointment_number']
]);
}
public function create(EditUserPersonInput $request)
{
Login::user();
$name = $request->post('name');
$id_number = $request->post('id_number');
$birthday = $request->post('birthday');
$sex = $request->post('sex');
$phone = $request->post('phone');
$relationship = $request->post('relationship');
$marriage = $request->post('marriage');
$default = $request->post('default');
$user_person_default_count = UserPerson::where('user', Login::$info->id)
->where('del', 2)->where('default', 1)->count();
if ($user_person_default_count == 0) $default = 1;
if ($default == 1) {
UserPerson::where('user', Login::$info->id)
->where('del', 2)->where('default', 1)->update(['default' => 2]);
}
$default = $user_person_default_count > 0 ? 2 : 1;
$user_person = new UserPerson();
$user_person->user = Login::$info->id;
$user_person->name = $name;
$user_person->id_number = $id_number;
$user_person->birthday = $birthday;
$user_person->sex = $sex;
$user_person->phone = $phone;
$user_person->relationship = $relationship;
$user_person->marriage = $marriage;
$user_person->default = $default;
$user_person->save();
return Yo::create_echo($user_person->id);
}
public function update(EditUserPersonInput $request)
{
Login::user();
$id = $request->post('id');
$name = $request->post('name');
$id_number = $request->post('id_number');
$birthday = $request->post('birthday');
$sex = $request->post('sex');
$phone = $request->post('phone');
$relationship = $request->post('relationship');
$marriage = $request->post('marriage');
$default = $request->post('default');
$user_person_default_count = UserPerson::where('user', Login::$info->id)
->where('del', 2)->where('default', 1)->count();
if ($user_person_default_count == 0) $default = 1;
if ($default == 1) {
UserPerson::where('user', Login::$info->id)
->where('del', 2)->where('default', 1)->update(['default' => 2]);
}
$user_person = UserPerson::where('id', $id)
->where('user', Login::$info->id)
->where('del', 2)
->first();
if (!$user_person) Yo::error_echo(100000, ['体检人']);
$user_person->name = $name;
$user_person->id_number = $id_number;
$user_person->birthday = $birthday;
$user_person->sex = $sex;
$user_person->phone = $phone;
$user_person->relationship = $relationship;
$user_person->marriage = $marriage;
$user_person->default = $default;
$user_person->save();
return Yo::update_echo($user_person->id);
}
public function delete(Request $request)
{
Login::user();
$id = $request->post('id');
$user_person = UserPerson::where('id', $id)
->where('user', Login::$info->id)
->where('del', 2)
->first();
if (!$user_person) Yo::error_echo(100000, ['体检人']);
$user_person->del = 1;
$user_person->save();
return Yo::delete_echo($user_person->id);
}
public function info(Request $request)
{
Login::user();
$id = $request->post('id');
$user_person = UserPerson::where('id', $id)
->where('user', Login::$info->id)
->where('del', 2)
->first();
if (!$user_person) $user_person = ['id' => 0];
return Yo::echo([
'info' => $user_person
]);
}
public function list()
{
Login::user();
$user_person_list = UserPerson::where('user', Login::$info->id)
->where('del', 2)
->orderBy('default')
->get();
return Yo::echo([
'list' => $user_person_list
]);
}
public function admin_update(EditUserPersonInput $request)
{
Login::admin([20]);
$id = $request->post('id');
$name = $request->post('name');
$id_number = $request->post('id_number');
$birthday = $request->post('birthday');
$sex = $request->post('sex');
$phone = $request->post('phone');
$relationship = $request->post('relationship');
$marriage = $request->post('marriage');
$default = $request->post('default');
$user_person_default_count = UserPerson::where('user', Login::$info->id)
->where('del', 2)->where('default', 1)->count();
if ($user_person_default_count == 0) $default = 1;
if ($default == 1) {
UserPerson::where('user', Login::$info->id)
->where('del', 2)->where('default', 1)->update(['default' => 2]);
}
$user_person = UserPerson::where('id', $id)
->where('del', 2)
->first();
if (!$user_person) Yo::error_echo(100000, ['体检人']);
$user_person->name = $name;
$user_person->id_number = $id_number;
$user_person->birthday = $birthday;
$user_person->sex = $sex;
$user_person->phone = $phone;
$user_person->relationship = $relationship;
$user_person->marriage = $marriage;
$user_person->default = $default;
$user_person->save();
return Yo::update_echo($user_person->id);
}
public function admin_list()
{
Login::admin([20]);
$search = request()->post('search');
$user_person_list = UserPerson::select('*')
->selectRaw("IFNULL((select nickname from users where users.id = user_people.user),'') as nickname")
->where(function ($query) use ($search) {
if ($search != '') $query->where('name', 'like', '%' . $search . '%')
->orWhere('id_number', 'like', '%' . $search . '%')
->orWhere('phone', 'like', '%' . $search . '%');
})
->where('del', 2)
->orderBy('id', 'desc')
->paginate(15);
return Yo::echo($user_person_list);
}
public function count()
{
Login::user();
$user_person_count = UserPerson::where('user', Login::$info->id)
->where('del', 2)
->count();
$user_person_default_count = UserPerson::where('user', Login::$info->id)
->where('default', 1)
->where('del', 2)
->count();
return Yo::echo([
'count' => $user_person_count,
'default' => $user_person_default_count,
]);
}
}