瀏覽代碼

修改代码 测试支付

fuyu 5 年之前
父節點
當前提交
a670ce9c40
共有 2 個文件被更改,包括 62 次插入15 次删除
  1. 21 11
      application/inter/controller/Application.php
  2. 41 4
      application/inter/controller/Wechat.php

+ 21 - 11
application/inter/controller/Application.php

@@ -344,16 +344,22 @@ class Application extends Base
             $application_info['clin_diag'] = isset($param['clin_diag']) ? $param['clin_diag'] : '';
             if(isset($param['is_urgent']) && $param['is_urgent'] == 'true' ){
                 $application_info['is_urgent'] = 1;
-                $application_info['remote_doctor_id'] = '';
+                $remote_doctor_id = '';
                 $d_time = date('H:i',strtotime('+30 min'));
             }else{
                 $application_info['is_urgent'] = 0;
-                $application_info['remote_doctor_id'] = isset($param['remote_doctor_id']) ? $param['remote_doctor_id'] : '';
+                $remote_doctor_id = isset($param['remote_doctor_id']) ? $param['remote_doctor_id'] : '';
                 $d_time = date('H:i',strtotime('+1 hour'));
             }
+            if($remote_doctor_id === '') {
+                $manager = DB::table('')->where('institution_id',$application_info['remote_institution_id'])->where('is_admin', '1')->field('id')->find();
+                if(!empty($manager)) {
+                    $remote_doctor_id = $manager['id'];
+                }
+            }
             $application_info['application_desc'] = isset($param['description']) ? $param['description'] : '';
             $application_info['req_doctor_id'] = $doctor['id'];
-            $application_info['remote_doctor_id'] = isset($param['remote_doctor_id']) ? $param['remote_doctor_id'] : '';
+            $application_info['remote_doctor_id'] = $remote_doctor_id;
             $application_info['attachment'] = isset($param['attachment']) ? $param['attachment'] : '';
 //            $remote_application = DB::table('remote_application')->where('exam_id',$param['id'])->select();
             // 申请远程
@@ -372,7 +378,7 @@ class Application extends Base
                 $app_id = $application_info['id'];
             }
             $aid = $app_id;
-            $r_info = DB::table('report')->where('exam_id',$param['id'])->find();
+            $r_info = DB::table('report')->where('exam_id',$param['id'])->where('remote_application_id', $aid)->find();
             if(empty($r_info)){
                 $report['id'] = UUIDs::uuid16();
                 $report['exam_id'] = $param['id'];
@@ -399,14 +405,15 @@ class Application extends Base
                 }
                 $remote_institution_id = $application['remote_institution_id'];
                 $remote_doctor_id = $application['remote_doctor_id'];
+                $is_urgent = $application['is_urgent'];
                 $local_institution_id = $application['local_institution_id'];
                 $req_doctor_id = $application['req_doctor_id'];
                 if(empty($remote_institution_id)) {
                     return json_encode(['status'=>'fail','code'=>'2012','msg'=> '远程机构id为空']);
                 }
-                if(empty($remote_doctor_id)) {
-                    return json_encode(['status'=>'fail','code'=>'2013','msg'=> '远程医生id为空']);
-                }
+                // if(empty($remote_doctor_id)) {
+                //     return json_encode(['status'=>'fail','code'=>'2013','msg'=> '远程医生id为空']);
+                // }
                 if(empty($local_institution_id)) {
                     return json_encode(['status'=>'fail','code'=>'2014','msg'=> '本地机构id为空']);
                 }
@@ -435,7 +442,7 @@ class Application extends Base
                         }
                         if($contact['pay_type'] === 0) { //医院挂账
                             // $hospital_id, $super_hospital_id, $doctor_id, $super_doctor_id, $exam_class, $application_id, $order_money
-                            $res = $this->createHospitalOrder($local_institution_id, $remote_institution_id, $req_doctor_id, $remote_doctor_id, $exam_info['exam_class'], $application['id'], $cost['money']);
+                            $res = $this->createHospitalOrder($local_institution_id, $remote_institution_id, $req_doctor_id, $remote_doctor_id, $exam_info['exam_class'], $application['id'], $cost['money'], $is_urgent);
                             if($res !== true) {
                                 return $res;
                             }
@@ -445,7 +452,7 @@ class Application extends Base
                             // var_dump($wechatService);
                             // $push_res = WechatService::pushWechatOrder($param['id']);
                             $wechatService->pushWechatOrder($param['id']);
-                            $res = $this->createPatientsOrder($local_institution_id, $remote_institution_id, $req_doctor_id, $remote_doctor_id, $exam_info['exam_class'], $application['id'], $cost['money']);
+                            $res = $this->createPatientsOrder($local_institution_id, $remote_institution_id, $req_doctor_id, $remote_doctor_id, $exam_info['exam_class'], $application['id'], $cost['money'], $is_urgent);
                             return json_encode(['status'=>'ok','code'=>'0000']);
                         }
                     }
@@ -458,6 +465,7 @@ class Application extends Base
                         'doctor_id' => $req_doctor_id,
                         'application_id' => $application['id'],
                         'super_doctor_id' => $remote_doctor_id,
+                        'is_urgent' => $is_urgent,
                         'order_money' => 0,
                         'pay_type' => self::PAY_TYPE['HOSPITAL'],
                         'pay_way' => self::PAY_WAY['HOSPITAL'],
@@ -494,7 +502,7 @@ class Application extends Base
         }
     }
 
-    private function createHospitalOrder($hospital_id, $super_hospital_id, $doctor_id, $super_doctor_id, $exam_class, $application_id, $order_money) {
+    private function createHospitalOrder($hospital_id, $super_hospital_id, $doctor_id, $super_doctor_id, $exam_class, $application_id, $order_money, $is_urgent = 0) {
         DB::startTrans();
         $pay_type = self::PAY_TYPE['HOSPITAL'];
         $pay_way = self::PAY_TYPE['HOSPITAL'];
@@ -535,6 +543,7 @@ class Application extends Base
                 'super_hospital_id' => $super_hospital_id,
                 'exam_class' => $exam_class,
                 'doctor_id' => $doctor_id,
+                'is_urgent' => $is_urgent,
                 'application_id' => $application_id,
                 'super_doctor_id' => $super_doctor_id,
                 'order_money' => $order_money,
@@ -560,7 +569,7 @@ class Application extends Base
         }
         return json_encode(['status'=>'fail','code'=>'2018','远程诊断发起失败']);
     }
-    private function createPatientsOrder($hospital_id, $super_hospital_id, $doctor_id, $super_doctor_id, $exam_class, $application_id, $order_money) {
+    private function createPatientsOrder($hospital_id, $super_hospital_id, $doctor_id, $super_doctor_id, $exam_class, $application_id, $order_money, $is_urgent = 0) {
         $pay_type = self::PAY_TYPE['PATIENT'];
         $pay_way = self::PAY_WAY['WECHAT'];
         DB::startTrans();
@@ -586,6 +595,7 @@ class Application extends Base
                 'doctor_id' => $doctor_id,
                 'application_id' => $application_id,
                 'super_doctor_id' => $super_doctor_id,
+                'is_urgent' => $is_urgent,
                 'order_money' => $order_money,
                 'pay_type' => $pay_type,
                 'pay_way' => $pay_way,

+ 41 - 4
application/inter/controller/Wechat.php

@@ -16,23 +16,60 @@ class Wechat extends Base {
     }
     public function  wechatCallback() {
         // $param = $_REQUEST['param'];
-        Log::record('微信支付回调');
-        Log::record('xml');
+        Log::record('-----微信支付回调----开始----');
+
+        Log::record('-----微信支付返回----xml----');
         $xml = file_get_contents("php://input");
         Log::record($xml);
-        Log::record('data');
+        Log::record('-----xml转数组--------');
         $data = (array)simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); //将微信返回的XML 转换成数组
         Log::record($data);
         $out_trade_no = $data['out_trade_no'];
         $data['timestamp'] = time();
+        Log::record('-----添加流水记录----');
+        Log::record($data);
         Db::table("wechat_pay_log")->insert($data);
+
+        Log::record('-----获取订单信息-----');
         $order = Db::table("remote_order")->where("id", $out_trade_no)->field("id, status")->find();
+        Log::record($order);
         if($order && $order['status'] === 1) {
             $order['status'] = 2;
+            $d = $order['super_doctor_id'];
+            $aid = $order['application_id'];
             // todo 消息通知
+            Log::record('-----更新订单状态-----');
             Db::table("remote_order")->where("id", $out_trade_no)->update($order);
+            $r_info = DB::table('report')->where('exam_id',$order['exam_id'])->where('remote_application_id', $aid)->find();
+            $t = '收到一条远程诊断申请';
+            $ins = DB::table('institution')->where('id',$order['hospital_id'])->field('name')->find();
+            $doctor = DB::table('doctor')->where('id',$order['doctor_id'])->field('realname')->find();
+            $c = $ins['name'].$doctor['realname'].'医师向您发起一条远程诊断申请';
+            $type = '1';
+            $url = Message::url(null, $order['exam_id'],1,$order['exam_class'],$r_info['id'],$aid);
+            Log::record('-----系统内消息通知-----');
+            Message::insert($t,$c,$d,$type,$url,1,$aid);
+                //保存  申请
+            if(empty($d)) {
+                Log::record('---微信支付回调---结束---没有远程医生');
+                return;
+            }
+            $dinfo = DB::table('doctors')->where('id',$d)->find();
+            $d_phone = $dinfo['phone'];
+            $d_name = $dinfo['realname'];
+            if($order['is_urgent'] === 1) {
+                $d_time = date('H:i',strtotime('+30 min'));
+            } else {
+                $d_time = date('H:i',strtotime('+1 hour'));
+            }
+            if($dinfo['institution_id'] == '22100003' || $dinfo['send_sms'] == 1){ //魏庙
+                Log::record('-----短信通知-----');
+                $repsone = send_message::sendSms2Apply($d_phone,$d_time,$d_name);
+            }
         }
-        Log::record('微信支付回调');
+        Log::record('---微信支付回调---结束---');
+
+
         // $order_id = $param['order_id'];
         // $remote_order = DB::table('remote_order')->where('id', $order_id)->find();
         // if(!$remote_order) {