public function add_comment()
 {
     $record = RegisterRecord::find(Input::get('record_id'));
     if (!isset($record)) {
         return Response::json(array('error_code' => 2, 'message' => '无该记录'));
     }
     $user_id = RegisterAccount::find($record->account_id)->user_id;
     if ($user_id != Session::get('user.id')) {
         return Response::json(array('error_code' => 3, 'message' => '无效记录'));
     }
     if (!Input::has('content')) {
         return Response::json(array('error_code' => 4, 'message' => '请输入评价'));
     }
     $old_comment = $record->comment()->get();
     if (isset($old_comment)) {
         return Response::json(array('error_code' => 5, 'message' => '已评论'));
     }
     $comment = new Comment();
     $comment->record_id = $record->id;
     $comment->content = Input::get('content');
     if (!$comment->save()) {
         return Response::json(array('error_code' => 1, 'message' => '添加失败'));
     }
     return Response::json(array('error_code' => 0, 'message' => '添加成功'));
 }
 public function run()
 {
     DB::table('register_accounts')->delete();
     RegisterAccount::create(array('name' => '阿登', 'age' => 22, 'weight' => 60, 'gender' => 1, 'blood_type' => 'A型', 'type' => '老年人', 'phone' => '13511112222', 'id_card' => '441111199311112222', 'emergency_name' => '壁鸿', 'emergency_phone' => '13522223333', 'user_id' => 4));
     RegisterAccount::create(array('name' => '黄裕源', 'age' => 22, 'weight' => 62, 'gender' => 1, 'blood_type' => 'O型', 'type' => '帅哥', 'phone' => '13580501456', 'id_card' => '440923199302065413', 'emergency_name' => '黄裕源', 'emergency_phone' => '13580501456', 'user_id' => 3));
     RegisterAccount::create(array('name' => '胡琳', 'age' => 22, 'weight' => 60, 'gender' => 1, 'blood_type' => 'B型', 'type' => '小伙子', 'phone' => '13511222222', 'id_card' => '442222199311112222', 'emergency_name' => '壁鸿', 'emergency_phone' => '13522333333', 'user_id' => 2));
     RegisterAccount::create(array('name' => '嘉丽', 'age' => 22, 'weight' => 60, 'gender' => 1, 'blood_type' => 'AB型', 'type' => '美女', 'phone' => '13511111122', 'id_card' => '443333199311112222', 'emergency_name' => '壁鸿', 'emergency_phone' => '13522222233', 'user_id' => 1));
 }
 public function wxpay_app()
 {
     $period_id = Input::get('period_id');
     $period = Period::find($period_id);
     // 判断时间段有效性
     if (!isset($period)) {
         return Response::json(array('error_code' => 2, 'message' => '无该时间段,请重新选择'));
     }
     if ($period->current >= $period->total) {
         return Response::json(array('error_code' => 3, 'message' => '已满人,请重新选择'));
     }
     $schedule = $period->schedule;
     $doctor = $schedule->doctor;
     $user_id = Session::get('user.id');
     // 选择指定挂号账户
     if (Input::has('account_id')) {
         $account_id = Input::get('account_id');
         $account = RegisterAccount::find($account_id);
         if (!isset($account)) {
             return Response::json(array('error_code' => 4, 'message' => '不存在该挂号账户'));
         }
         if ($account->user_id != $user_id) {
             return Response::json(array('error_code' => 5, 'message' => '无效账户'));
         }
     } else {
         $account = RegisterAccount::where('user_id', $user_id)->first();
         if (!isset($account)) {
             return Response::json(array('error_code' => 6, 'message' => '请先申请挂号账户'));
         }
         $account_id = $account->id;
     }
     $user_id = Session::get('user.id');
     $attach = array('period_id' => (int) Input::get('period_id'), 'account_id' => $account_id);
     try {
         $period = Period::find(Input::get('period_id'));
         $schedule = $period->schedule;
         $doctor = $schedule->doctor;
         $order = $this->create_order($user_id, 'APP', json_encode($attach), (int) ($doctor->register_fee * 100));
         $para = array('appid' => $order['appid'], 'partnerid' => WxPayConfig::MCHID, 'prepayid' => $order['prepay_id'], 'package' => 'Sign=WXPay', 'noncestr' => WxPayApi::getNonceStr(), 'timestamp' => time());
         $wxpay_result = new WxPayResults();
         $wxpay_result->FromArray($para);
         $wxpay_result->SetSign();
         $package = $wxpay_result->GetValues();
     } catch (Exception $e) {
         return Response::json(array('error_code' => 1, 'message' => $e->getMessage()));
     }
     return Response::json(array('error_code' => 0, 'package' => $package));
 }
 public function delete_account()
 {
     if (Input::has('account_id')) {
         $account = RegisterAccount::find(Input::get('account_id'));
         if (!isset($account)) {
             return Response::json(array('error_code' => 2, 'message' => '不存在该账户'));
         }
         if ($account->user_id != Session::get('user.id')) {
             return Response::json(array('error_code' => 3, 'message' => '无效账户'));
         }
     } else {
         $account = RegisterAccount::where('user_id', Session::get('user.id'))->first();
         if (!isset($account)) {
             return Response::json(array('error_code' => 4, 'message' => '无挂号账户'));
         }
     }
     if (!$account->delete()) {
         return Response::json(array('error_code' => 1, 'message' => '删除失败'));
     }
     return Response::json(array('error_code' => 0, 'message' => '删除成功'));
 }
 public function insert_records()
 {
     $periods = Period::all();
     $accounts = RegisterAccount::all();
     $peirod_num = $periods->count();
     $account_num = $accounts->count();
     for ($i = 0; $i < 2000; ++$i) {
         $record = new RegisterRecord();
         $account = $accounts[rand(0, $account_num - 1)];
         $period = $periods[rand(0, $peirod_num - 1)];
         $dt = rand(0, 99) < 90 ? $this->get_random_datetime() : date('Y-m-d H:i:s');
         $record->created_at = $dt;
         $record->start = date('Y-m-d H:i:s', strtotime($dt) + 3600);
         if (rand(0, 1)) {
             $record->return_date = $this->get_random_date();
         }
         $record->status = rand(0, 1);
         $record->fee = 1.0;
         if (rand(0, 1)) {
             $record->advice = "abcd1234";
         }
         $record->account_id = $account->id;
         $record->user_id = $account->user_id;
         $record->period_id = $period->id;
         $record->doctor_id = $period->schedule->doctor_id;
         $period->current += 1;
         $period->save();
         $record->save();
         $message = new Message();
         $message->from_uid = $record->user_id;
         $message->to_uid = $record->doctor->user->id;
         $message->content = $record->user->real_name . '挂号';
         $message->timestamp = strtotime($dt);
         $message->status = 3;
         $message->save();
     }
 }
 public function user_center()
 {
     $register_account = RegisterAccount::where('user_id', Session::get('user.id'))->first();
     return View::make('user.center', array('account' => $register_account));
 }
 public function add_return_date()
 {
     $record = RegisterRecord::find(Input::get('record_id'));
     // 是否存在该记录
     if (!isset($record)) {
         return Response::json(array('error_code' => 2, 'message' => '不存在该挂号记录'));
     }
     $register_account = RegisterAccount::find($record->account_id);
     // 检查该就诊记录是否该用户的
     if ($register_account->user_id != Session::get('user.id')) {
         return Response::json(array('error_code' => 3, 'message' => '无法修改该挂号'));
     }
     // 检查就诊状态
     /*
     if ( !(int)($record->status) ){
         return Response::json(array( 'error_code' => 4, 'message' => '尚未就诊' ));
     }
     */
     $record->return_date = Input::get('date');
     if (!$record->save()) {
         return Response::json(array('error_code' => 1, 'message' => '设置失败'));
     }
     return Response::json(array('error_code' => 0, 'message' => '设置成功'));
 }