where(['id' => $person_id, 'is_del' => 0])->first(); if (!$person) return ['status' => false, 'msg' => '体检人不存在']; $return_data = [ 'code_num' => '', 'price' => 0, 'combo_id' => 0, 'status' => 0, ]; if ($qudao_type == 1) { $code = DB::table('transfer_code')->where(['sanfang_qudao' => 1, 'code' => $code, 'status' => 1, 'is_del' => 0])->first(); if (!$code) return ['status' => false, 'msg' => '此转赠码不可用']; $return_data['code_num'] = $code->code; $return_data['price'] = $code->price; $return_data['combo_id'] = $code->combo_id; $return_data['status'] = $code->status; return ['status' => true, 'data' => $return_data]; } if ($qudao_type == 3) { $service = new ZhongKangService(); $res = $service->GetHexiaoCode($code, $person->name, $person->id_number); if ($res['status'] == true && $res['data']['status'] == 1) { $return_data['code_num'] = $res['data']['code_num']; $return_data['price'] = $res['data']['price'] / 100; $return_data['combo_id'] = $res['data']['combo_id']; $return_data['status'] = $res['data']['status']; //查询本地库是否有记录,进行相应的更新 $db_zk_code = DB::table('transfer_code')->where(['sanfang_qudao' => 3, 'code' => $code, 'is_del' => 0])->first(); if (!!$db_zk_code && $db_zk_code->status <> $res['data']['status']) { return ['status' => false, 'msg' => '此转赠码状态不正确,暂不可用(中康)']; } if (!$db_zk_code) { $data = [ 'code' => $code, 'price' => $res['data']['price'] / 100, 'combo_id' => $res['data']['combo_id'], 'sanfang_qudao' => 3, 'status' => 1, ]; $u = DB::table('transfer_code')->insert($data); } return ['status' => true, 'data' => $return_data]; } else { return ['status' => false, 'msg' => '此转赠码不可用(中康)']; } } } //核销三方code public function HeXiaoSanFangCode($qudao_type, $code, $orderid) { $orderinfo = DB::table('orders')->where(['id' => $orderid])->first(); $sanfang_status = false; $u = false; if ($qudao_type == 1) {//H5转赠码 $sanfang_status=true; } if ($qudao_type == 2) { //有赞 } if ($qudao_type == 3) { //中康 $service = new ZhongKangService(); $res = $service->HandleTransferCode(1, $code, $orderinfo->name, $orderinfo->id_number); if ($res['status'] == true) { $sanfang_status=true; } else { return ['status' => false,'msg' => $res['msg']]; } } if($sanfang_status) { $data = [ 'status' => 2, 'pay_order_id' => $orderid, ]; $u = DB::table('transfer_code')->where(['sanfang_qudao' => $qudao_type, 'code' => $code, 'status' => 1, 'is_del' => 0])->update($data); $data2 = [ 'qudao_type' => $qudao_type, 'code' => $code, ]; DB::table('orders')->where(['id' => $orderid])->update(['sanfang_code' => json_encode($data2, JSON_UNESCAPED_UNICODE)]); if ($u) { return ['status' => true, 'msg' => '操作成功']; } else { return ['status' => false, 'msg' => '核销失败']; } }else{ return ['status' => false,'msg' => '三方code核销失败']; } } //撤销核销 public function CancelSanFangCode($qudao_type, $code, $orderid) { $orderinfo = DB::table('orders')->where(['id' => $orderid])->first(); $sanfang_status = false; $u = false; if ($qudao_type == 1) {//H5转赠码 $sanfang_status=true; } if ($qudao_type == 3) { //中康 $service = new ZhongKangService(); $res = $service->HandleTransferCode(2, $code, $orderinfo->name, $orderinfo->id_number); if ($res['status'] == true) { $sanfang_status=true; } else { return ['status' => false,'msg' => $res['msg']]; } } if($sanfang_status) { $data = [ 'status' => 1, 'pay_order_id' => null, ]; $u = DB::table('transfer_code')->where(['code' => $code, 'status' => 2, 'is_del' => 0])->update($data); if ($u) { return ['status' => true, 'msg' => '操作成功']; } else { return ['status' => false, 'msg' => '撤销失败']; } }else{ return ['status' => false,'msg' => '三方code撤销失败']; } } }