public function download()
 {
     // 批量下载
     $config = C('UPLOAD_TYPE_CONFIG');
     $config['domain'] = '7xlf9w.com2.z0.glb.qiniucdn.com';
     $config['bucket'] = 'zjfq-contract';
     $qiniu = new \Common\Util\Qiniu($config);
     // 查询打包状态
     $pid = I('pid');
     if ($pid) {
         $ret = $qiniu->status($pid) or ajax_error('无法获取打包状态!');
         if ($ret['code'] == 1 || $ret['code'] == 2) {
             ajax_success();
         }
         if ($ret['code'] == 3) {
             ajax_error($ret['items'][0]['error']);
         } elseif ($ret['code'] == 0) {
             // 打包完成
             $row = M('loan_order_contract_download')->where(['qiniu_persistent_id' => $pid])->find();
             // 标识已下载
             M('loan_order_contract')->where(['order_id' => ['in', $row['order_ids']]])->save(['is_download' => 1, 'use_time' => time() - $row['created']]);
             // 标识所用时间
             M('loan_order_contract_download')->save(['id' => $row['id'], 'use_time' => time() - $row['created']]);
             // 返回下载地址
             $url = $qiniu->downLink($row['zip_file']);
             $url = $url . '?e=' . (time() + 60);
             $url .= '&token=' . $qiniu::sign($qiniu->sk, $qiniu->ak, $url);
             ajax_success($url);
         } else {
             system_warn('未知返回结果:' . print_r($ret, true));
             ajax_error('未知状态!');
         }
     }
     $ids = explode(',', I('get.ids')) or $this->error('参数错误!');
     $model = new \Loan\Model\OrderContractModel();
     if (count($ids) <= 1) {
         $id = $ids[0];
         $url = $model->pdfUrl(I('id')) or $this->error($model->getError());
         M('loan_order_contract')->save(['order_id' => $id, 'is_download' => 1]);
         header('Location: ' . $url);
         exit;
     }
     $orders = M('loan_order_contract')->where(['order_id' => ['in', $ids]])->field('order_id,url')->select() or $this->error('找不到此电子合同记录!');
     $urls = [];
     foreach ($orders as $key => $row) {
         $url = $row['url'] or $this->error('找不到订单的合同地址:' . $row['order_id']);
         $url = $url . '?e=' . (time() + 60);
         $urls[] = $url . '&token=' . $qiniu::sign($qiniu->sk, $qiniu->ak, $url);
     }
     $ret = $qiniu->mkzip($urls) or $this->error('无法请求七牛打包接口!');
     M('loan_order_contract_download')->add(['created' => time(), 'zip_file' => $ret['zip_file'], 'qiniu_persistent_id' => $ret['persistent_id'], 'order_ids' => implode(',', $ids), 'order_count' => count($ids)]);
     $this->success($ret['persistent_id']);
 }
Ejemplo n.º 2
0
 /**
  * 七牛图片添加水印
  * @param string $img_url 原图url
  * @param string $watermark_img_url 水印url, 默认为 'http://yszjdx.qiniudn.com/loan_shop_goods_2015121810_56736dba484d1.png'
  * @return string $url 添加水印后的图片url
  */
 static function qiniu_watermark($img_url, $watermark_img_url = null)
 {
     if (is_null($watermark_img_url)) {
         $watermark_img_url = 'http://yszjdx.qiniudn.com/loan_shop_goods_2015121810_56736dba484d1.png';
     }
     $img = self::qiniu_watermark_api($img_url, $watermark_img_url);
     $qiniu = new \Common\Util\Qiniu(C('UPLOAD_TYPE_CONFIG'));
     // get file name
     $path = parse_url($img_url)['path'];
     $start = strrpos($path, '/');
     if ($start !== false) {
         $path = substr($path, $start + 1);
     }
     $end = strrpos($path, '.');
     if ($end !== false) {
         $ext = substr($path, $end);
         $path = substr($path, 0, $end);
     }
     $file_name = $path . '_watermark_' . md5($img) . $ext;
     $qiniu->upload([], ['name' => 'file', 'fileName' => $file_name, 'fileBody' => $img]);
     return $qiniu->downlink($file_name);
 }