<?php namespace app\api\controller; use app\common\controller\Api; use think\Db; use wxpay; use addons\epay\library\Service; /** * 支付回调 */ class Notify extends Api { protected $noNeedLogin = ['*']; protected $noNeedRight = ['*']; // 支付回调 public function notify() { // require_once($_SERVER['DOCUMENT_ROOT'] . "/Plugins/WxPay/WxPay.php"); $wxPay = new wxpay\WxPay(); //验证是否是微信发送 $flag = $wxPay->WxPayNotifyCheck(); // error_log(print_r($flag, 1), 3, 'post.txt'); // LL($flag,'./log1.txt'); //验证成功 if ($flag['status']) { if ($flag['data']['return_code'] == 'SUCCESS' && $flag['data']['result_code'] == 'SUCCESS') { $total_fee = trim($flag['data']['total_fee']) / 100; //支付的金额, 单位:分转成元 $order_sn = trim($flag['data']['out_trade_no']);//商家订单号 $PayResult = Db::name('rechar_order'); $where['order_no'] = $order_sn; $order_info = $PayResult->where($where)->find(); if ($order_info['money'] != $total_fee) { $r_arr['return_code'] = 'FAIL'; $r_arr['return_msg'] = '回调失败'; echo $wxPay->arrayToXml($r_arr); die; } if ($order_info['status'] == 1) { $r_arr['return_code'] = 'SUCCESS'; $r_arr['return_msg'] = '回调成功'; echo $wxPay->arrayToXml($r_arr); die; } //构建支付订单处理结果信息 $_data['transaction_id'] = trim($flag['data']['transaction_id']); //微信交易凭证 $_data['status'] = 1; $_data['updatetime'] = time(); //支付订单类型 if ($order_info['purpose'] == 1) { //查询订单 $active_order = Db::name('game_people')->find($order_info['relation_id']); //开启事务 Db::startTrans(); //修改报名状态 $active_order_rs = Db::name('game_people')->where(['id' => $order_info['relation_id'], 'status' => 0])->setField(['status' => 1, 'updatetime' => time()]); //活动标题 $active_title = Db::name('game')->where(['id' => $active_order['game_id']])->value('name'); //发送消息 $data = [ 'user_id' => $order_info['user_id'], 'type' => 1, 'title' => '比赛通知', 'content' => '您已成功报名' . $active_title . '比赛', 'createtime' => time() ]; $sys_rs = Db::name('sys_msg')->insertGetId($data); if ($active_order_rs && $sys_rs) { Db::commit(); } else { Db::rollback(); $_data['pay_status'] = 1; //回调状态: 1=支付订单回调失败,2=充值回调失败,3=开通会员回调失败 } } $PayResult->where($where)->setField($_data); $r_arr['return_code'] = 'SUCCESS'; $r_arr['return_msg'] = '回调成功'; echo $wxPay->arrayToXml($r_arr); die; } } $r_arr['return_code'] = 'FAIL'; $r_arr['return_msg'] = '回调失败'; echo $wxPay->arrayToXml($r_arr); file_put_contents('wx_pay_error_logs.txt', date('Y-m-d H:i:s').'支付失败!'.json_encode($flag), FILE_APPEND); die; } /** * 支付回调 */ public function notify1() { $paytype = $this->request->param('paytype'); $pay = Service::checkNotify($paytype); // Log::record("=======================", 'info'); // Log::record("pay:", 'info'); // Log::record($pay, 'info'); // Log::record("=======================", 'info'); if (!$pay) { echo '签名错误'; return; } $data = $pay->verify(); $time = time(); try { $payamount = $paytype == 'alipay' ? $data['total_amount'] : $data['total_fee'] / 100; $out_trade_no = $data['out_trade_no']; Db::startTrans(); try{ $orderModel = new \app\common\model\RecharOrder(); $userModel = new \app\common\model\User(); $orderInfo = $orderModel->where(["order_no"=>$out_trade_no])->find(); $userInfo = $userModel->where(["id"=>$orderInfo["user_id"]])->find(); $res1 = false; $res2 = false; $res3 = false; if($orderInfo['status'] == 0) { // 修改订单状态 $res1 = $orderModel->update(["status"=>1,"updatetime"=>$time],["order_no"=>$out_trade_no, 'status' => 0]); // 充值后 switch($orderInfo['purpose']) { case 1: // 修改用户为已缴纳认证费 $userInfo->recharge_auth = 1; $res2 = $userInfo->save(); $res3 = true; break; case 2: // 添加有眼缘记录--单次付费 $data = []; $data['user_id'] = $userInfo->id; $data['fate_user_id'] = $orderInfo->fate_user_id; if(!\app\common\model\UserFate::where($data)->find()) { $data['createtime'] = $time; $res2 = \app\common\model\UserFate::insert($data); } else { $res2 = true; } // 返利 $preuser_id = $userInfo->pre_user_id; if($userInfo->vip_duetime < $time) { $memo = '用户充值获得收益!'; $profit = $payamount * config('site.userProfitRate') * 0.01; } else { $memo = '会员充值获得收益!'; $profit = $payamount * config('site.vipProfitRate') * 0.01; } if($profit>=0.01 && $preuser_id > 0) { $res3 = \app\common\model\User::profit($profit,$preuser_id,$memo); } else { $res3 = true; } break; case 3: // 获取vip配置信息 $vip_config_id = $orderInfo['vip_config_id']; $vipConfigInfo = \app\admin\model\vip\Config::where(['id'=>$vip_config_id])->find(); // 计算vip到期时间 if($userInfo->vip_duetime < $time) { $duetime = strtotime ( '+'.intval($vipConfigInfo['time']).' month' ); } else { $duetime = strtotime ( '+'.intval($vipConfigInfo['time']).' month',$userInfo->vip_duetime); } // 修改用户为vip if($userInfo->vip_duetime <= time()) { $userInfo->view_count = $vipConfigInfo->give_times; // 今日剩余次数 $userInfo->view_date = date('Y-m-d'); // 次数最后更新日期 } $userInfo->vip_duetime = $duetime; $res2 = $userInfo->save(); // 添加查看次数 $data = []; $data['user_id'] = $userInfo->id; $data['end_date'] = date("Y-m-d",$duetime); $data['times'] = $vipConfigInfo->give_times; $data['createtime'] = time(); $res3 = \app\common\model\GiveFateLog::insert($data); break; case 4: // 获取钻石配置信息 $vip_config_id = $orderInfo['vip_config_id']; $vipConfigInfo = Db::name('diamond')->where(['id'=>$vip_config_id])->find(); //修改用户钻石余额 $diamond = $userInfo['diamond'] + $vipConfigInfo['number']; $res2 = Db::name('user')->where(['id' => $userInfo['id'], 'diamond' => $userInfo['diamond']])->setField('diamond', $diamond); // 添加钻石明细 $diamond_log = Db::name('user_diamond_log')->where(['user_id' => $userInfo['id']])->order('id', 'desc')->find(); if (!$diamond_log && $userInfo['diamond'] > 0) { $res3 = false; break; } if ($diamond_log && $diamond_log['after'] != $userInfo['diamond']) { $res3 = false; break; } $data = []; $data['user_id'] = $userInfo['id']; $data['diamond'] = $vipConfigInfo['number']; $data['before'] = $userInfo['diamond']; $data['after'] = $diamond; $data['memo'] = '充值'; $data['createtime'] = time(); $res3 = Db::name('user_diamond_log')->insertGetId($data); break; } } if($res1 && $res2 !== false && $res3) { Db::commit(); } else { Db::rollback(); } }catch (ValidateException $e) { Db::rollback(); $this->error($e->getMessage()); } catch (PDOException $e) { Db::rollback(); $this->error($e->getMessage()); } catch (Exception $e) { Db::rollback(); $this->error($e->getMessage()); } //你可以在此编写订单逻辑 } catch (Exception $e) { } echo $pay->success(); } //自动取消超时未支付的活动订单 public function cancelorder() { set_time_limit(0); $where = array( 'status' => 0, 'createtime' => ['lt', time() - 1920], //32分钟之前 ); $active_order = Db::name('active_order'); $list = $active_order->where($where)->limit(200)->select(); if (!$list) { echo 'mei shu ju'; die; } $active_people = Db::name('active_people'); $active_people_modify = Db::name('active_people_modify'); $active = Db::name('active'); foreach ($list as &$v) { //开启事务 Db::startTrans(); //修改订单信息 $rs = $active_order->where(['id' => $v['id'], 'status' => 0])->setField('status', 3); if (!$rs) { Db::rollback(); continue; } //修改活动人员 $rt = $active_people->where(['order_id' => $v['id'], 'status' => 0])->setField(['status' => 3, 'modifystatus' => 0]); if (!$rt) { Db::rollback(); continue; } //修改活动人员修改记录 $res = $active_people_modify->where(['order_id' => $v['id'], 'status' => 0])->setField('status', 2); if ($res === false) { Db::rollback(); continue; } //减少活动已报名人数 $active_info = $active->find($v['active_id']); $currentperson = $active_info['currentperson'] - $v['number']; $active_rs = $active->where(['id' => $v['active_id'], 'currentperson' => $active_info['currentperson']])->setField('currentperson', $currentperson); if (!$active_rs) { Db::rollback(); continue; } Db::commit(); } echo 'wan bi'; die; } //消息推送 我报名参加活动的前一天会提前推送消息,时间 地点 及一些提醒 public function sysmsg() { set_time_limit(0); $where = array( 'starttime' => ['elt', time() + 86400], //活动开始前一天 'msgstatus' => 0, 'status' => ['neq', 3] ); $active = Db::name('active'); $list = $active->where($where)->limit(200)->select(); if (!$list) { echo 'mei shu ju'; die; } $active_order = Db::name('active_order'); $sys_msg = Db::name('sys_msg'); //系统消息 $data['type'] = 1; $data['title'] = '活动通知'; $data['createtime'] = time(); foreach ($list as &$v) { //修改活动消息通知状态 $active->where(['id' => $v['id']])->setField('msgstatus', 1); //发送通知 $data['content'] = '您报名的' . $v['title'] . '活动即将开始,请规划好您的时间。活动集合时间:' . date('Y-m-d H:i', $v['collectiontime']) . ',活动集合地点:' . $v['collectionplace']; //查询报名用户id $user_ids = $active_order->where(['active_id' => $v['id'], 'status' => 1])->column('user_id'); if ($user_ids) { foreach ($user_ids as &$va) { $data['user_id'] = $va; $sys_msg->insertGetId($data); } } } echo 'wan bi'; die; } //每年1月1重置免费次数 public function resetfreenumber() { set_time_limit(0); //每年开始时间 $time = strtotime(date('Y-1-1 0:0:0', time())); $where = array( 'freenumbertime' => ['lt', $time] ); $user = Db::name('user'); $list = $user->where($where)->limit(200)->select(); if (!$list) { echo 'mei shu ju'; die; } $vip = Db::name('vip'); foreach ($list as &$v) { $free = $vip->find($v['growthlevel']); $user->where(['id' => $v['id'], 'freenumber' => $v['freenumber']])->setField(['freenumber' => $free['free'], 'freenumbertime' => time()]); } echo 'wan bi'; die; } //自动结束已完成订单 public function finishorder() { set_time_limit(0); $where = array( 'status' => 1, 'endtime' => ['lt', time()] ); $active = Db::name('active'); $list = $active->where($where)->limit(100)->select(); if (!$list) { echo 'mei shu ju'; die; } $active_order = Db::name('active_order'); $active_people = Db::name('active_people'); $active_people_modify = Db::name('active_people_modify'); $active_refund = Db::name('active_refund'); foreach ($list as &$v) { //开启事务 Db::startTrans(); //活动结束 $active_rs = $active->where(['id' => $v['id'], 'status' => 1])->setField(['status' => 2, 'updatetime' => time()]); if (!$active_rs) { Db::rollback(); continue; } //修改活动订单状态 $order_rs = $active_order->where(['active_id' => $v['id'], 'status' => 1])->setField(['status' => 2, 'updatetime' => time()]); if ($order_rs === false) { Db::rollback(); continue; } //修改活动人员状态 $people_rs = $active_people->where(['active_id' => $v['id'], 'status' => 1])->setField(['status' => 2, 'modifystatus' => 0, 'updatetime' => time()]); if ($people_rs === false) { Db::rollback(); continue; } //修改活动人员信息修改表 $people_modify_rs = $active_people_modify->where(['active_id' => $v['id'], 'status' => 0])->setField(['status' => 2, 'updatetime' => time()]); if ($people_modify_rs === false) { Db::rollback(); continue; } //修改活动申请取消表 $refund_rs = $active_refund->where(['active_id' => $v['id'], 'status' => 0])->setField(['status' => 2, 'updatetime' => time()]); if ($refund_rs === false) { Db::rollback(); continue; } Db::commit(); } echo 'wan bi'; die; } //自动取消未成行订单 public function cancelminpeopleorder() { set_time_limit(0); $where = array( 'status' => 0, 'signupendtime' => ['lt', time()] ); $active = Db::name('active'); $list = $active->where($where)->limit(100)->select(); if (!$list) { echo 'mei shu ju'; die; } $active_order = Db::name('active_order'); $active_people = Db::name('active_people'); $active_people_modify = Db::name('active_people_modify'); $active_refund = Db::name('active_refund'); $user_coupon = Db::name('user_coupon'); //用户优惠券表 $sys_msg = Db::name('sys_msg'); //消息通知 foreach ($list as &$v) { //开启事务 Db::startTrans(); //活动结束 $active_rs = $active->where(['id' => $v['id'], 'status' => 0])->setField(['status' => 3, 'updatetime' => time()]); if (!$active_rs) { Db::rollback(); continue; } //修改活动人员状态 $people_rs = $active_people->where(['active_id' => $v['id'], 'status' => 1])->setField(['status' => 3, 'modifystatus' => 0, 'updatetime' => time()]); if ($people_rs === false) { Db::rollback(); continue; } //修改活动人员信息修改表 $people_modify_rs = $active_people_modify->where(['active_id' => $v['id'], 'status' => 0])->setField(['status' => 2, 'updatetime' => time()]); if ($people_modify_rs === false) { Db::rollback(); continue; } //修改活动申请取消表 $refund_rs = $active_refund->where(['active_id' => $v['id'], 'status' => 0])->setField(['status' => 2, 'updatetime' => time()]); if ($refund_rs === false) { Db::rollback(); continue; } //查询活动订单 $active_order_list = $active_order->where(['active_id' => $v['id'], 'status' => 1])->select(); if ($active_order_list) { //活动订单修改信息 $order_data['status'] = 3; //状态:0=待付款,1=待出行,2=已完成,3=已取消 $order_data['updatetime'] = time(); foreach ($active_order_list as &$vv) { //退还支付金额 if ($vv['price'] > 0) { $order_data['refundstatus'] = 1; //退款状态:0=无需退款,1=退款成功,2=退款失败 $order_data['refundprice'] = $vv['price'];//退款金额 $order_data['refundtime'] = time(); if ($vv['paytype'] == 0) { //余额支付, 退回余额 $rs = create_log($vv['price'], '活动取消返还', $vv['user_id'], 3, $vv['id']); if ($rs != 1) { $order_data['refundstatus'] = 2; } } elseif ($vv['paytype'] == 1) { //微信支付, 退回微信 //扣除用户成长值 $paygrowth = (int)config('site.paygrowth'); //每消费1元赠送成长值数量, 1元=?成长值 $balance = floor($paygrowth * $vv['price']); if ($balance > 0) { $paygrowth_rs = create_growth_log(-$balance, '活动取消扣除', $vv['user_id'], 4, $vv['id']); } //退款单号 $order_data['refund_no'] = $vv['order_sn']; //调用微信退款 $wxData['transaction_id'] = $vv['transaction_id']; $wxData['out_refund_no'] = $order_data['refund_no']; $wxData['total_fee'] = (int)($vv['price'] * 100);//1 微信支付 单位为分 $wxData['refund_fee'] = (int)($vv['price'] * 100);//1 微信支付 单位为分 $wxData['refund_desc'] = '活动取消返还'; // require_once("Plugins/WxPay/WxPay.php"); $wxPay = new wxpay\WxPay(config('wxchatpay')); $back = $wxPay->WxPayRefund($wxData); if($back['return_code'] != 'SUCCESS' || $back['result_code'] != 'SUCCESS') { $order_data['refundstatus'] = 2; } } } //修改活动订单状态 $order_rs = $active_order->where(['id' => $vv['id'], 'status' => 1])->setField($order_data); if ($order_rs === false) { Db::rollback(); continue; } //上级优惠券设为过期 $user_coupon->where(['active_id' => $vv['id'], 'status' => 0])->setField('endtime', time() - 1); //发送消息 $data = [ 'user_id' => $vv['user_id'], 'type' => 1, 'title' => '活动通知', 'content' => '您报名的' . $v['title'] . '活动已取消', 'createtime' => time() ]; $sys_msg->insertGetId($data); } } Db::commit(); } echo 'wan bi'; die; } //自动上架活动 public function showactive() { set_time_limit(0); $time = time(); $where = array( 'showstatus' => 0, 'is_autoshow' => 1, 'showtime' => ['elt', $time] ); $active = Db::name('active'); $list = $active->where($where)->limit(200)->select(); if (!$list) { echo 'mei shu ju'; die; } foreach ($list as &$v) { $active->where(['id' => $v['id'], 'showstatus' => 0])->setField(['showstatus' => 1]); } echo 'wan bi'; die; } //视频转码 public function transcode() { set_time_limit(0); $where = array( 'transcode_status' => 0 ); $hu_video = Db::name('video'); $list = $hu_video->where($where)->limit(50)->select(); if (!$list) { echo 'mei shu ju'; die; } $url = 'http://api.trans.gitv.tv/upload'; $data['cp_id'] = config('cp_id'); $data['media_type'] = 'mp4'; foreach ($list as &$v) { $data['uri'] = urlencode(config('upload.cdnurl') . $v['videofile']); $data['file_name'] = urlencode($v['title']); $request_url = $url . '?' . http_build_query($data); $rs = file_get_contents($request_url); if (!$rs) { continue; } $rs = json_decode($rs); if ($rs['code'] == 'A000000') { $hu_video->where(['id' => $v['id'], 'transcode_status' => 0])->setField(['transcode_status' => 1, 'task_id' => $rs['task_id']]); } } echo 'wan bi'; die; } //视频转码回执 public function transcodecallback() { $cp_id = input('cp_id', 0, 'intval'); $file_url = input('file_url', '', 'trim'); $task_id = input('task_id', '', 'trim'); if ($cp_id != config('cp_id')) { $this->error('错误1'); } $info = Db::name('video')->where(['task_id' => $task_id])->find(); if (!$info) { $this->error('错误2'); } if ($info['transcode_status'] != 1) { $this->success('已完成'); } $file_url = urldecode($file_url); $rs = Db::name('video')->where(['id' => $info['id'], 'transcode_status' => 1])->setField(['transcode_status' => 2, 'file_url' => $file_url]); if (!$rs) { $this->error('失败'); } $this->success('成功'); } //视频注入 public function inject() { set_time_limit(0); $where = array( 'transcode_status' => 2, 'inject_status' => 0 ); $hu_video = Db::name('video'); $list = $hu_video->where($where)->limit(50)->select(); if (!$list) { echo 'mei shu ju'; die; } $url = 'http://api.gs.gitv.tv/upload'; $data['cp_id'] = config('cp_id'); $data['bit_id'] = 5; $data['file_type'] = 'm3u8'; foreach ($list as &$v) { $data['album_id'] = (string)$v['id']; $data['video_id'] = (string)$v['id']; $data['uri'] = $v['file_url']; $rs = httpRequest($url, 'POST', $data); if (!$rs) { continue; } $rs = json_decode($rs); if ($rs['code'] == 'A000000') { $hu_video->where(['id' => $v['id'], 'inject_status' => 0])->setField(['inject_status' => 1]); } } echo 'wan bi'; die; } //视频注入回执 public function injectcallback() { $cp_id = input('cp_id', 0, 'intval'); $album_id = input('album_id', '', 'trim'); //专辑 ID $video_id = input('video_id', '', 'trim'); //剧集 ID $code = input('code', '', 'trim'); //状态码 if ($cp_id != config('cp_id')) { $this->error('错误1'); } $info = Db::name('video')->where(['id' => $video_id])->find(); if (!$info) { $this->error('错误2'); } if ($info['inject_status'] != 1) { $this->success('已完成'); } if ($code == 'A000000') { $inject_status = 2; } else { $inject_status = 3; } $rs = Db::name('video')->where(['id' => $info['id'], 'inject_status' => 1])->setField(['inject_status' => $inject_status]); if (!$rs) { $this->error('失败'); } $this->success('成功'); } //视频注入结果查询 public function injectquery() { set_time_limit(0); $time = strtotime(date('Y-m-d', time())); $where = array( 'inject_status' => 1, // 'updatetime' => ['egt', $time] ); $hu_video = Db::name('video'); // $list = $hu_video->where($where)->count('id'); $list = $hu_video->where($where)->limit(50)->select(); if (!$list) { echo 'mei shu ju'; die; } /*$starttime = date('Ymd000000', time()); $endtime = date('Ymd235959', time()); // $url = 'http://'.config('inject_ip').':'.config('inject_port').'/injectResult/v1/queryAdd?cspId=' . config('cspid') . '&startTime='.$starttime.'&endTime='.$endtime; $url = 'http://jscp.agency.gitv.tv/injectResult/v1/queryAdd?cspId=' . config('cspid') . '&startTime='.$starttime.'&endTime='.$endtime; $header = [ 'Content-Type: application/json' ]; $rs = httpRequest($url, 'POST', [], $header); if (!$rs) { echo 'cuo wu1'; die; } $list = json_decode($rs, true); if ($list['code'] != 'A000000') { echo 'cuo wu2'; die; } foreach ($list['data'] as &$v) { if ($v['taskStatus'] == 2) { $hu_video->where(['id' => $v['cpTvId'], 'inject_status' => 1])->setField(['inject_status' => 2]); } }*/ $header = [ 'Content-Type: application/json' ]; //生成ftp文件 $content = [ 'cpPrvdName' => '健康e家', 'cpPrvCode' => '41000144', 'cpPrvType' => '1006', 'ChnName' => '健康', 'ChnCode' => '1000020', 'actors' => '无', 'directors' => '无', 'contentYear' => date('Y'), 'tags' => '', 'contentTime' => date('Y-m-d H:i:s'), 'formatType' => '超清' ]; //增量接口 $insert_url = 'http://test.meta.unso.gitv.tv/sendMeta'; $method = 'POST'; foreach ($list as &$v) { //查询华为注入结果 $url = 'http://jscp.agency.gitv.tv/injectResult/v1/queryTv?cspId=' . config('cspid') . '&cpAlbumId=' . $v['id'] . '&cpTvId=' . $v['id']; $rs = httpRequest($url, 'GET', [], $header); if (!$rs) { continue; } $rs = json_decode($rs, true); if ($rs['code'] != 'A000000') { continue; } $data = $rs['data'][0]; if ($data['taskStatus'] == 2) { /*//生成ftp文件 $content['contentId'] = $v['movieid']; $content['extraContentID'] = $v['movieid']; $content['content'] = $v['title']; $content['intent'] = [ 'action' => 'com.huxiu.heh.tv.ui.splash.SplashActivity', 'package' => 'com.huxiu.heh.tv', 'component' => [ 'pkg' => 'com.huxiu.heh.tv', 'cls' => 'com.huxiu.heh.tv.ui.splash.SplashActivity' ], 'extras' => [ // 'cmd' => '', // 'from' => '', // 'media_id' => '' 'type_id' => $v['video_type_id'], 'id' => $v['id'] ] ]; $content['isEffective'] = $v['status']; $content['pic'] = one_domain_image($v['image']); $content['isPaid'] = $v['is_pay']; $content = json_encode($content, 320); $filename = 'shipin_'.date('Ymd').'_'.date('His').'_increment'.'.json'; error_log(print_r($content, 1) . PHP_EOL, 3, './jiankang/' . $filename); //调用增量注入接口 $postfields = [ 'priKey' => config('cspid'), 'data' => [$content] ]; $rt = httpRequest($insert_url, $method, $postfields, $header); if (!$rt) { continue; } $rt = json_decode($rt, true); if ($rt['code'] != 'A000000') { continue; }*/ //查询中兴注入结果 $url2 = 'http://jscp.agency.gitv.tv/injectResult/v1/queryTv?cspId=' . config('cspid_zx') . '&cpAlbumId=' . $v['id'] . '&cpTvId=' . $v['id']; $rs2 = httpRequest($url2, 'GET', [], $header); if (!$rs2) { continue; } $rs2 = json_decode($rs2, true); if ($rs2['code'] != 'A000000') { continue; } $data2 = $rs2['data'][0]; if ($data2['taskStatus'] == 2) { $hu_video->where(['id' => $v['id'], 'inject_status' => 1])->setField(['inject_status' => 2, 'seriesid' => $data['seriesId'], 'programid' => $data['programId'], 'movieid' => $data['movieId']]); } elseif ($data2['taskStatus'] == -1 || $data2['taskStatus'] == -3 || $data2['taskStatus'] == -4) { $hu_video->where(['id' => $v['id'], 'inject_status' => 1])->setField(['inject_status' => 3, 'seriesid' => $data['seriesId'], 'programid' => $data['programId'], 'movieid' => $data['movieId']]); } } elseif ($data['taskStatus'] == -1 || $data['taskStatus'] == -3 || $data['taskStatus'] == -4) { $hu_video->where(['id' => $v['id'], 'inject_status' => 1])->setField(['inject_status' => 3, 'seriesid' => $data['seriesId'], 'programid' => $data['programId'], 'movieid' => $data['movieId']]); } } echo 'wan bi'; die; } //视频统一搜索生成ftp文件 public function videosearch() { set_time_limit(0); // $time = strtotime(date('Y-m-d', time())); $where = array( 'inject_status' => 2, 'search_status' => 0, // 'updatetime' => ['egt', $time] ); $hu_video = Db::name('video'); $list = $hu_video->where($where)->limit(50)->select(); if (!$list) { echo 'mei shu ju'; die; } $header = [ 'Content-Type: application/json' ]; //生成ftp文件 $data_content = [ 'cpPrvdName' => '健康e家', 'cpPrvCode' => '41000144', 'cpPrvType' => '1006', 'ChnName' => '健康', 'ChnCode' => '1000020', 'actors' => '无', 'directors' => '无', 'contentYear' => date('Y'), 'tags' => '', 'contentTime' => date('Y-m-d H:i:s'), 'formatType' => '超清' ]; //增量接口 $insert_url = 'http://test.meta.unso.gitv.tv/sendMeta'; $method = 'POST'; foreach ($list as &$v) { //生成ftp文件 $content = $data_content; $content['contentId'] = $v['movieid']; $content['extraContentID'] = $v['movieid']; $content['content'] = $v['title']; $intent = json_encode([ 'action' => 'com.huxiu.heh.tv.ui.splash.SplashActivity', 'package' => 'com.huxiu.heh.tv', 'component' => [ 'pkg' => 'com.huxiu.heh.tv', 'cls' => 'com.huxiu.heh.tv.ui.splash.SplashActivity' ], 'extras' => [ // 'cmd' => '', // 'from' => '', // 'media_id' => '' 'type_id' => $v['video_type_id'], 'id' => $v['id'] ] ], 320); $content['intent'] = "$intent"; $content['isEffective'] = $v['status']; $content['pic'] = one_domain_image($v['image']); $content['isPaid'] = $v['is_pay']; $content = json_encode($content, 320); $filename = 'shipin_'.date('Ymd').'_'.date('His').'_increment'.'.json'; error_log(print_r($content, 1) . PHP_EOL, 3, './jiankang/' . $filename); //调用增量注入接口 /*$postfields = [ 'priKey' => config('cspid'), 'data' => [$content] ]; $rt = httpRequest($insert_url, $method, $postfields, $header); if (!$rt) { continue; } $rt = json_decode($rt, true); if ($rt['code'] != 'A000000') { continue; }*/ $hu_video->where(['id' => $v['id'], 'search_status' => 0])->setField(['search_status' => 1]); } echo 'wan bi'; die; } //订购关系同步地址 public function ordersync() { $data = file_get_contents('php://input'); file_put_contents('chen_tui.txt', $data, FILE_APPEND); if (!$data) { $this->error('参数缺失'); } $jsonxml = json_encode(simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA)); $data = json_decode($jsonxml, true); if (!$data) { $this->error('参数缺失'); } $phoneNumber = $data['orderRelationSyncRequest']['phoneNumber']; //手机号 $apppId = $data['orderRelationSyncRequest']['apppId']; //订购的HDC业务产品编码 if ($apppId != config('product_code')) { echo 'meiyou'; exit; } //用户增值产品包当前订购快照 $content = [ 'UserID' => $phoneNumber, 'prod_code' => $apppId, 'prod_name' => '月包会员', 'eff_time' => date('Y-m-d H:i:s', time()), 'exp_time' => date('Y-m-d H:i:s', time() + 30 * 86400), 'price' => 2900 ]; $content = join(json_decode('"\u0001"', true), $content); $filename = date('Ymd').'_'.config('data_cp_id').'_userefforderdata_1.dat'; $check_filename = date('Ymd').'_'.config('data_cp_id').'_userefforderdata_1.chk'; error_log(print_r($content, 1) . PHP_EOL, 3, './dashuju/' . $filename); error_log('', 3, './dashuju/' . $check_filename); $finish_filename = date('Ymd') . '_' . config('data_cp_id') . '_userefforderdata.finish'; error_log('', 3, './dashuju/' . $finish_filename); //用户增值产品包订购行为数据 $user_id = Db::name('user')->where(['mobile' => $phoneNumber])->value('id'); $order_info = Db::name('rechar_order')->where(['user_id' => $user_id, 'purpose' => 3, 'pay_type' => 'zhuowang', 'status' => 1])->order('id desc')->find(); $content = [ 'orderid' => $order_info['order_no'], 'order_time' => date('Y-m-d H:i:s', time()), 'order_type' => 1, 'UserID' => $phoneNumber, 'prod_code' => $apppId, 'prod_name' => '月包会员', 'eff_time' => date('Y-m-d H:i:s', time()), 'exp_time' => date('Y-m-d H:i:s', time() + 30 * 86400), 'csource' => 99, 'trace_id' => '', 'price' => 2900, 'paytype' => 0, 'cpid' => config('data_cp_id'), 'albumid' => '', 'albumname' => '' ]; $content = join(json_decode('"\u0001"', true), $content); $filename = date('Ymd').'_'.config('data_cp_id').'_userorderdata_1.dat'; $check_filename = date('Ymd').'_'.config('data_cp_id').'_userorderdata_1.chk'; error_log(print_r($content, 1) . PHP_EOL, 3, './dashuju/' . $filename); error_log('', 3, './dashuju/' . $check_filename); $finish_filename = date('Ymd') . '_' . config('data_cp_id') . '_userorderdata.finish'; error_log('', 3, './dashuju/' . $finish_filename); } //(补漏)视频注入中兴 public function injectzx() { set_time_limit(0); $hu_video = Db::name('video'); $list = $hu_video->where(['id' => 107])->limit(50)->select(); if (!$list) { echo 'mei shu ju'; die; } $cspid = config('cspid_zx'); $url = 'http://jscp.agency.gitv.tv/epgDataSync/v1/' . $cspid . '/'; foreach ($list as &$params) { //内容同步 $videofile = $params['videofile']; $videofile = explode('/', $videofile); $video_url = $videofile[3]; $data = [ // 'cspId' => $cspid, 'cpAlbumId' => $params['id'], 'albumName' => $params['title'], 'tvSets' => 1, 'updateToSet' => 1, 'isPurchase' => $params['is_pay'], 'isEffective' => $params['status'], 'isOnline' => $params['status'], 'albumTypes' => '健康', 'picBox' => config('upload.cdnurl') . $params['image'], 'albumUpdateTime' => date('YmdHis', time()), 'albumCreateTime' => date('YmdHis', time()), 'tvlist' => [ [ 'cpAlbumId' => $params['id'], 'cpTvId' => $params['id'], 'tvName' => $params['title'], 'tvIsEffective' => $params['status'], 'tvIsOnline' => $params['status'], 'isPurchase' => $params['is_pay'], 'playOrder' => 1, 'tvUrl' => 'ftp://'.config('ftp_user').':'.config('ftp_pwd').'@'.config('ftp_ip').':'.config('ftp_port').'/inject/'.$video_url ] ] ]; $data = json_encode($data, 320); $header = [ 'Content-Type: application/json' ]; $rs = httpRequest($url, 'POST', $data, $header); if ($rs) { $rs = json_decode($rs, true); if ($rs['code'] != 'A000000') { continue; } } } echo 'wan bi'; die; } //(补漏)删除注入中兴视频 public function delinjectzx() { set_time_limit(0); $hu_video = Db::name('video'); $list = $hu_video->where(['id' => 107])->limit(1)->order('id')->select(); if (!$list) { echo 'mei shu ju'; die; } $cspid = config('cspid_zx'); $url = 'http://jscp.agency.gitv.tv/epgDeleteSync/v1/' . $cspid . '/'; foreach ($list as &$params) { //内容同步 $videofile = $params['videofile']; $videofile = explode('/', $videofile); $video_url = $videofile[3]; $data = [ // 'cspId' => $cspid, 'cpAlbumId' => $params['id'], 'albumName' => $params['title'], 'tvSets' => 1, 'updateToSet' => 1, 'isPurchase' => $params['is_pay'], 'isEffective' => 0, 'isOnline' => 2, 'albumTypes' => '健康', 'picBox' => config('upload.cdnurl') . $params['image'], 'albumUpdateTime' => date('YmdHis', time()), // 'albumCreateTime' => date('YmdHis', time()), 'tvlist' => [ [ 'cpAlbumId' => $params['id'], 'cpTvId' => $params['id'], 'tvName' => $params['title'], 'tvIsEffective' => 0, 'tvIsOnline' => 2, 'isPurchase' => $params['is_pay'], 'playOrder' => 1, 'tvUrl' => 'ftp://'.config('ftp_user').':'.config('ftp_pwd').'@'.config('ftp_ip').':'.config('ftp_port').'/inject/'.$video_url ] ] ]; $data = json_encode($data, 320); $header = [ 'Content-Type: application/json' ]; $rs = httpRequest($url, 'POST', $data, $header); if ($rs) { $rs = json_decode($rs, true); if ($rs['code'] != 'A000000') { continue; } } } echo 'wan bi'; die; } //媒资数据专辑粒度 public function mediadataalbum() { $hu_video = Db::name('video'); $list = $hu_video->where(['inject_status' => 2, 'mediaalbum_status' => 0])->order('id')->select(); if (!$list) { echo 'mei shu ju'; die; } foreach ($list as $key => &$param) { $content = [ 'Updatetype' => 1, 'cpid' => config('data_cp_id'), 'channelid' => '1000035', 'albumid' => $param['id'], 'albumname' => $param['title'], 'albumnum' => 1, 'tag' => '', 'onlinetime' => '', 'bref' => '', 'onebref' => '', 'cornersign' => $param['is_pay'], 'director' => '', 'actor' => '', 'year' => '', 'area' => '', 'language' => '', 'score' => '', 'picurl' => config('upload.cdnurl') . $param['image'], 'picurl_v' => '', 'gotourl' => json_encode([ 'action' => 'com.huxiu.heh.tv.ui.splash.SplashActivity', 'package' => 'com.huxiu.heh.tv', 'component' => [ 'pkg' => 'com.huxiu.heh.tv', 'cls' => 'com.huxiu.heh.tv.ui.splash.SplashActivity' ], 'extras' => [ // 'cmd' => '', // 'from' => '', // 'media_id' => '' 'type_id' => $param['video_type_id'], 'id' => $param['id'] ] ], 320), 'is_politics' => '', 'second_type' => '' ]; $content = join(json_decode('"\u0001"', true), $content); $filename = date('Ymd').'_'.config('data_cp_id').'_albumsdata_1.dat'; $check_filename = date('Ymd').'_'.config('data_cp_id').'_albumsdata_1.chk'; error_log(print_r($content, 1) . PHP_EOL, 3, './dashuju/' . $filename); error_log('', 3, './dashuju/' . $check_filename); if ($key == count($list) - 1) { $finish_filename = date('Ymd') . '_' . config('data_cp_id') . '_albumsdata.finish'; error_log('', 3, './dashuju/' . $finish_filename); } $hu_video->where(['id' => $param['id'], 'mediaalbum_status' => 0])->setField('mediaalbum_status', 1); } echo 'wan bi'; } //媒资数据节目/内容粒度 public function mediadatavideo() { $hu_video = Db::name('video'); $list = $hu_video->where(['inject_status' => 2, 'mediavideo_status' => 0])->order('id')->select(); if (!$list) { echo 'mei shu ju'; die; } foreach ($list as $key => &$param) { $content = [ 'Updatetype' => 1, 'cpid' => config('data_cp_id'), 'channelid' => '1000035', 'albumid' => $param['id'], 'albumname' => $param['title'], 'videoid' => $param['id'], 'videoname' => $param['title'], 'videonum' => 1, 'Contenttype' => 1, 'duration' => '', 'quality' => '' ]; $content = join(json_decode('"\u0001"', true), $content); $filename = date('Ymd').'_'.config('data_cp_id').'_videosdata_1.dat'; $check_filename = date('Ymd').'_'.config('data_cp_id').'_videosdata_1.chk'; error_log(print_r($content, 1) . PHP_EOL, 3, './dashuju/' . $filename); error_log('', 3, './dashuju/' . $check_filename); if ($key == count($list) - 1) { $finish_filename = date('Ymd') . '_' . config('data_cp_id') . '_videosdata.finish'; error_log('', 3, './dashuju/' . $finish_filename); } $hu_video->where(['id' => $param['id'], 'mediavideo_status' => 0])->setField('mediavideo_status', 1); } } //产品包 public function product() { $content = [ 'prod_code' => config('product_code'), 'prod_name' => '月包会员', 'prod_type' => 0, 'cpid' => config('data_cp_id') ]; $content = join(json_decode('"\u0001"', true), $content); $filename = date('Ymd').'_'.config('data_cp_id').'_productsdata_1.dat'; $check_filename = date('Ymd').'_'.config('data_cp_id').'_productsdata_1.chk'; error_log(print_r($content, 1) . PHP_EOL, 3, './dashuju/' . $filename); error_log('', 3, './dashuju/' . $check_filename); $finish_filename = date('Ymd') . '_' . config('data_cp_id') . '_productsdata.finish'; error_log('', 3, './dashuju/' . $finish_filename); //连接ftp $host = config('data_ftp_ip'); $port = config('data_ftp_port'); $username = config('data_ftp_user'); $password = config('data_ftp_pwd'); $conn = ftp_connect($host, $port) or die("Could not connect"); //登录 ftp_login($conn,$username,$password); //开启被动模式 ftp_pasv($conn, true); //利用ftp创建目录 /*$path = "home/2021-12-08"; $this->make_directory($conn,$path); //利用ftp选择进入目录 ftp_chdir($conn,$path);*/ //开始上传 ftp_put(ftp链接,服务器地址,本地地址,上传模式); if(ftp_put($conn,$filename,'./dashuju/' . $filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$check_filename,'./dashuju/' . $check_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$finish_filename,'./dashuju/' . $finish_filename,FTP_BINARY)){ //上传成功 } ftp_close($conn); //注意上传端的ftp权限设置 echo 'wanbi'; } //产品包和媒资所属关系 public function productmediarelation() { $hu_video = Db::name('video'); $list = $hu_video->where(['inject_status' => 2, 'productmedia_status' => 0])->order('id')->select(); if (!$list) { echo 'mei shu ju'; die; } foreach ($list as $key => &$param) { $content = [ 'Updatetype' => 1, 'prod_code' => config('product_code'), 'cpid' => config('data_cp_id'), 'albumid' => $param['id'] ]; $content = join(json_decode('"\u0001"', true), $content); $filename = date('Ymd').'_'.config('data_cp_id').'_productalbumdata_1.dat'; $check_filename = date('Ymd').'_'.config('data_cp_id').'_productalbumdata_1.chk'; error_log(print_r($content, 1) . PHP_EOL, 3, './dashuju/' . $filename); error_log('', 3, './dashuju/' . $check_filename); if ($key == count($list) - 1) { $finish_filename = date('Ymd') . '_' . config('data_cp_id') . '_productalbumdata.finish'; error_log('', 3, './dashuju/' . $finish_filename); } $hu_video->where(['id' => $param['id'], 'productmedia_status' => 0])->setField('productmedia_status', 1); } } //用户观看行为数据文件上传到卓望ftp(每小时第10分钟提供) public function uploadpayftp() { set_time_limit(0); $host = config('pay_ftp_ip'); $port = config('pay_ftp_port'); $username = config('pay_ftp_user'); $password = config('pay_ftp_pwd'); $filename = date('YmdH', time() - 3600).'_'.config('cp_id').'_userviewdata_1.dat'; $check_filename = date('YmdH', time() - 3600).'_'.config('cp_id').'_userviewdata_1.chk'; //判断文件是否存在, 不存在则创建 if (!file_exists('./dashuju/' . $filename)) { @touch('./dashuju/' . $filename); } if (!file_exists('./dashuju/' . $check_filename)) { @touch('./dashuju/' . $check_filename); } //连接ftp $conn = ftp_connect($host, $port) or die("Could not connect"); //登录 ftp_login($conn,$username,$password); //开启被动模式 ftp_pasv($conn, true); //利用ftp创建目录 /*$path = "home/2021-12-08"; $this->make_directory($conn,$path); //利用ftp选择进入目录 ftp_chdir($conn,$path);*/ //开始上传 ftp_put(ftp链接,服务器地址,本地地址,上传模式); if(ftp_put($conn,$filename,'./dashuju/' . $filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$check_filename,'./dashuju/' . $check_filename,FTP_BINARY)){ //上传成功 } ftp_close($conn); //注意上传端的ftp权限设置 echo 'wanbi'; } //大数据文件上传到大数据ftp(每天一点提供) public function uploaddataftp() { set_time_limit(0); $host = config('data_ftp_ip'); $port = config('data_ftp_port'); $username = config('data_ftp_user'); $password = config('data_ftp_pwd'); $time = date('Ymd', time() - 86400); // 专辑粒度媒资 $albumsdata_filename = $time.'_'.config('data_cp_id').'_albumsdata_1.dat'; $albumsdata_check_filename = $time.'_'.config('data_cp_id').'_albumsdata_1.chk'; $albumsdata_finish_filename = $time.'_'.config('data_cp_id').'_albumsdata_1.finish'; // 节目/内容粒度媒资 $videosdata_filename = $time.'_'.config('data_cp_id').'_videosdata_1.dat'; $videosdata_check_filename = $time.'_'.config('data_cp_id').'_videosdata_1.chk'; $videosdata_finish_filename = $time.'_'.config('data_cp_id').'_videosdata_1.finish'; // 产品包和媒资所属关系 $productalbumdata_filename = $time.'_'.config('data_cp_id').'_productalbumdata_1.dat'; $productalbumdata_check_filename = $time.'_'.config('data_cp_id').'_productalbumdata_1.chk'; $productalbumdata_finish_filename = $time.'_'.config('data_cp_id').'_productalbumdata_1.finish'; // 用户增值产品包当前订购快照 $userefforderdata_filename = $time.'_'.config('data_cp_id').'_userefforderdata_1.dat'; $userefforderdata_check_filename = $time.'_'.config('data_cp_id').'_userefforderdata_1.chk'; $userefforderdata_finish_filename = $time.'_'.config('data_cp_id').'_userefforderdata_1.finish'; // 用户增值产品包订购行为 $userorderdata_filename = $time.'_'.config('data_cp_id').'_userorderdata_1.dat'; $userorderdata_check_filename = $time.'_'.config('data_cp_id').'_userorderdata_1.chk'; $userorderdata_finish_filename = $time.'_'.config('data_cp_id').'_userorderdata_1.finish'; // 用户观看行为 $userplaydata_filename = $time.'_'.config('data_cp_id').'_userplaydata_1.dat'; $userplaydata_check_filename = $time.'_'.config('data_cp_id').'_userplaydata_1.chk'; $userplaydata_finish_filename = $time.'_'.config('data_cp_id').'_userplaydata_1.finish'; // 用户收藏行为 $userfavdata_filename = $time.'_'.config('data_cp_id').'_userfavdata_1.dat'; $userfavdata_check_filename = $time.'_'.config('data_cp_id').'_userfavdata_1.chk'; $userfavdata_finish_filename = $time.'_'.config('data_cp_id').'_userfavdata_1.finish'; //判断文件是否存在, 不存在则创建 if (!file_exists('./dashuju/' . $albumsdata_filename)) { @touch('./dashuju/' . $albumsdata_filename); } if (!file_exists('./dashuju/' . $albumsdata_check_filename)) { @touch('./dashuju/' . $albumsdata_check_filename); } if (!file_exists('./dashuju/' . $albumsdata_finish_filename)) { @touch('./dashuju/' . $albumsdata_finish_filename); } if (!file_exists('./dashuju/' . $videosdata_filename)) { @touch('./dashuju/' . $videosdata_filename); } if (!file_exists('./dashuju/' . $videosdata_check_filename)) { @touch('./dashuju/' . $videosdata_check_filename); } if (!file_exists('./dashuju/' . $videosdata_finish_filename)) { @touch('./dashuju/' . $videosdata_finish_filename); } if (!file_exists('./dashuju/' . $productalbumdata_filename)) { @touch('./dashuju/' . $productalbumdata_filename); } if (!file_exists('./dashuju/' . $productalbumdata_check_filename)) { @touch('./dashuju/' . $productalbumdata_check_filename); } if (!file_exists('./dashuju/' . $productalbumdata_finish_filename)) { @touch('./dashuju/' . $productalbumdata_finish_filename); } if (!file_exists('./dashuju/' . $userefforderdata_filename)) { @touch('./dashuju/' . $userefforderdata_filename); } if (!file_exists('./dashuju/' . $userefforderdata_check_filename)) { @touch('./dashuju/' . $userefforderdata_check_filename); } if (!file_exists('./dashuju/' . $userefforderdata_finish_filename)) { @touch('./dashuju/' . $userefforderdata_finish_filename); } if (!file_exists('./dashuju/' . $userorderdata_filename)) { @touch('./dashuju/' . $userorderdata_filename); } if (!file_exists('./dashuju/' . $userorderdata_check_filename)) { @touch('./dashuju/' . $userorderdata_check_filename); } if (!file_exists('./dashuju/' . $userorderdata_finish_filename)) { @touch('./dashuju/' . $userorderdata_finish_filename); } if (!file_exists('./dashuju/' . $userplaydata_filename)) { @touch('./dashuju/' . $userplaydata_filename); } if (!file_exists('./dashuju/' . $userplaydata_check_filename)) { @touch('./dashuju/' . $userplaydata_check_filename); } if (!file_exists('./dashuju/' . $userplaydata_finish_filename)) { @touch('./dashuju/' . $userplaydata_finish_filename); } if (!file_exists('./dashuju/' . $userfavdata_filename)) { @touch('./dashuju/' . $userfavdata_filename); } if (!file_exists('./dashuju/' . $userfavdata_check_filename)) { @touch('./dashuju/' . $userfavdata_check_filename); } if (!file_exists('./dashuju/' . $userfavdata_finish_filename)) { @touch('./dashuju/' . $userfavdata_finish_filename); } //连接ftp $conn = ftp_connect($host, $port) or die("Could not connect"); //登录 ftp_login($conn,$username,$password); //开启被动模式 ftp_pasv($conn, true); //利用ftp创建目录 /*$path = "home/2021-12-08"; $this->make_directory($conn,$path); //利用ftp选择进入目录 ftp_chdir($conn,$path);*/ //开始上传 ftp_put(ftp链接,服务器地址,本地地址,上传模式); if(ftp_put($conn,$albumsdata_filename,'./dashuju/' . $albumsdata_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$albumsdata_check_filename,'./dashuju/' . $albumsdata_check_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$albumsdata_finish_filename,'./dashuju/' . $albumsdata_finish_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$videosdata_filename,'./dashuju/' . $videosdata_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$videosdata_check_filename,'./dashuju/' . $videosdata_check_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$videosdata_finish_filename,'./dashuju/' . $videosdata_finish_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$productalbumdata_filename,'./dashuju/' . $productalbumdata_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$productalbumdata_check_filename,'./dashuju/' . $productalbumdata_check_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$productalbumdata_finish_filename,'./dashuju/' . $productalbumdata_finish_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userefforderdata_filename,'./dashuju/' . $userefforderdata_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userefforderdata_check_filename,'./dashuju/' . $userefforderdata_check_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userefforderdata_finish_filename,'./dashuju/' . $userefforderdata_finish_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userorderdata_filename,'./dashuju/' . $userorderdata_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userorderdata_check_filename,'./dashuju/' . $userorderdata_check_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userorderdata_finish_filename,'./dashuju/' . $userorderdata_finish_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userplaydata_filename,'./dashuju/' . $userplaydata_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userplaydata_check_filename,'./dashuju/' . $userplaydata_check_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userplaydata_finish_filename,'./dashuju/' . $userplaydata_finish_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userfavdata_filename,'./dashuju/' . $userfavdata_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userfavdata_check_filename,'./dashuju/' . $userfavdata_check_filename,FTP_BINARY)){ //上传成功 } if(ftp_put($conn,$userfavdata_finish_filename,'./dashuju/' . $userfavdata_finish_filename,FTP_BINARY)){ //上传成功 } ftp_close($conn); //注意上传端的ftp权限设置 echo 'wanbi'; } public function make_directory($ftp_stream, $dir){ // if directory already exists or can be immediately created return true if ($this->ftp_is_dir($ftp_stream, $dir) || @ftp_mkdir($ftp_stream, $dir)) return true; // otherwise recursively try to make the directory if (!$this->make_directory($ftp_stream, dirname($dir))) return false; // final step to create the directory return ftp_mkdir($ftp_stream, $dir); } public function ftp_is_dir($ftp_stream, $dir){ // get current directory $original_directory = ftp_pwd($ftp_stream); // test if you can change directory to $dir // suppress errors in case $dir is not a file or not a directory if ( @ftp_chdir( $ftp_stream, $dir ) ) { // If it is a directory, then change the directory back to the original directory ftp_chdir( $ftp_stream, $original_directory ); return true; } else { return false; } } }