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 static function create_record($pay_record, $message)
 {
     try {
         DB::beginTransaction();
         $pay_record->time_end = $message['time_end'];
         $pay_record->result_code = $message['result_code'];
         $pay_record->open_id = $message['openid'];
         $pay_record->transaction_id = $message['transaction_id'];
         // 查询相应时间段
         $attach_parse = json_decode($pay_record->attach, true);
         $account_id = $attach_parse['account_id'];
         $period_id = $attach_parse['period_id'];
         $period = Period::find($period_id);
         // 判断 result_code
         if ($message['result_code'] == 'FAIL') {
             $pay_record->error_code = $message['err_code'];
             $pay_record->error_message = $message['err_code_des'];
             $pay_record->status = 'FAIL';
         } else {
             // 创建挂号记录
             $schedule = $period->schedule;
             $doctor = $schedule->doctor;
             $period->current += 1;
             $period->save();
             $new_record = new RegisterRecord();
             $new_record['status'] = 0;
             $new_record['fee'] = $doctor->register_fee;
             //                $new_record['start']        = date( 'Y-m-d H:i:s' );
             $new_record['period_id'] = $period->id;
             $new_record['doctor_id'] = $doctor->id;
             $new_record['account_id'] = $account_id;
             $new_record['user_id'] = $pay_record->user_id;
             $new_record->save();
             $message = new Message();
             $message->from_uid = $user_id;
             $message->to_uid = $doctor->user->id;
             $message->content = $account->user->real_name . '挂号';
             $message->timestamp = time();
             $message->status = 3;
             $message->save();
             $pay_record->record_id = $new_record->id;
             $pay_record->status = 'SUCCESS';
         }
         $pay_record->save();
         DB::commit();
     } catch (Exception $e) {
         Log::info('Error in create record: ' . $e->getMessage());
         DB::rollback();
         return false;
     }
     return ture;
 }