getIdentityInfo(); $resourceList = $this->getMyResource(); $haveBlock = []; foreach($resourceList as $resource) { $haveBlock[] = $resource['block']; } $haveBlock = array_unique($haveBlock); //设置默认打开页面 $defaultUrl = ''; foreach($resourceList as $resource) { if($resource['menu_type']==1&&!empty($resource['action'])) { $defaultUrl = $this->createRealUrl($resource['module'].'/'.$resource['controller'].'/'.$resource['action']); $defaultMenuName = Yii::t('resource',$resource['name']); $defaultHash = $resource['hash']; break; } } return $this->renderPartial('index',array('resourceList'=>$resourceList,'haveBlock'=>$haveBlock,'userInfo'=>$userInfo,'defaultUrl'=>$defaultUrl,'defaultMenuName'=>$defaultMenuName,'defaultHash'=>$defaultHash)); } //后台登录 public function actionLogin() { if($this->hasLogined()) { $this->showMessage(array('class'=>'success','message'=>'登录成功','url'=>$this->createRealUrl('admin/default/index'),'time'=>2000),1); } $model = new AdminLoginForm(); if($model->load(Yii::$app->request->post())){ if(!$model->validate()) { $this->showMessage(array('class'=>'error', 'message'=>$model->returnFirstError(),'time'=>2000)); } else { if(!$model->login()) { $this->showMessage(array('class'=>'error', 'message'=>$model->returnFirstError(),'time'=>2000)); } else { $this->showMessage(array('class'=>'success','message'=>'登录成功','url'=>$this->createRealUrl('admin/default/index'),'time'=>2000)); } } } else { return $this->renderPartial('login',array('model'=>$model)); } } //个人资料 public function actionMyinfo() { $model = Admin::findOne($this->admin_id); if($model->load(Yii::$app->request->post())){ //is_array($model->avatar) && $model->avatar && $model->avatar = implode(',', $model->avatar); if(!$model->validate()) { Yii::$app->session->setFlash('error',$model->returnFirstError()); } else { if($model->save()) { Attachment::relateAttachmentByTable($model->avatar,'admin','avatar',$this->admin_id); Yii::$app->session->setFlash('success','操作成功'); } else { Yii::$app->session->setFlash('error',$model->returnFirstError()); } } } return $this->render('myinfo',array('model'=>$model)); } //修改密码 public function actionChangepwd() { $admin = Admin::findOne($this->admin_id); $model = new ChangepwdForm(); if($model->load(Yii::$app->request->post())){ if(!$model->validate()) { Yii::$app->session->setFlash('error',$model->returnFirstError()); } else { if(password($model->original_pwd,$admin->encrypt) == $admin->user_pwd) { $pwd = password($model->new_pwd); $admin->user_pwd = $pwd['password']; $admin->encrypt = $pwd['encrypt']; if($admin->save()) { Yii::$app->session->setFlash('success','密码修改成功'); } else { Yii::$app->session->setFlash('error',$admin->returnFirstError()); } } else { Yii::$app->session->setFlash('error','当前密码不正确'); } } } return $this->render('changepwd',array('model'=>$model)); } //退出 public function actionLogout() { try { Cookie::deleteCookie(Yii::$app->params['adminCookieName']); $this->showMessage(array('class'=>'success','message'=>'您已安全退出','url'=>$this->createRealUrl('admin/default/login'),'time'=>2000)); } catch(\Exception $e) { throw new \Exception($e->getMessage(),500); } } //仪表盘 public function actionDashboard() { $timeList = getTimeList(1); $totalSalesMoney = ShoppingOrder::find()->where('status>0')->sum('total_price'); $docNum = DocReal::find()->where('is_delete=0')->count(); $orderNum = ShoppingOrder::find()->where('status>0')->count(); $userNum = User::find()->count(); //今日注册 $todayRegisterNum = User::find()->where("(register_time>=".$timeList['dayStart']." and register_time<=".$timeList['dayEnd'].")")->count(); //昨日注册 $predayRegisterNum = User::find()->where("(register_time>=".$timeList['predayStart']." and register_time<=".$timeList['predayEnd'].")")->count(); if($todayRegisterNum>$predayRegisterNum&&$predayRegisterNum>0) { $todayRegisterPercents = '+ '.number_format(((($todayRegisterNum-$predayRegisterNum)/$predayRegisterNum)*100),2).'%'; } else if($todayRegisterNum<$predayRegisterNum&&$predayRegisterNum>0) { $todayRegisterPercents = '- '.number_format(((($predayRegisterNum-$todayRegisterNum)/$predayRegisterNum)*100),2).'%'; } else { $todayRegisterPercents = '+ 0%'; } //今日上传 $todayUploadNum = Doc::find()->where("(create_time>=".$timeList['dayStart']." and create_time<=".$timeList['dayEnd'].")")->count(); $predayUploadNum = Doc::find()->where("(create_time>=".$timeList['predayStart']." and create_time<=".$timeList['predayEnd'].")")->count(); if($todayUploadNum>$predayUploadNum&&$predayUploadNum>0) { $todayUploadPercents = '+ '.number_format(((($todayUploadNum-$predayUploadNum)/$predayUploadNum)*100),2).'%'; } else if($todayUploadNum<$predayUploadNum&&$predayUploadNum>0) { $todayUploadPercents = '- '.number_format(((($predayUploadNum-$todayUploadNum)/$predayUploadNum)*100),2).'%'; } else { $todayUploadPercents = '+ 0%'; } //今日下载 $todayPayNum = DocPaylog::find()->where("(create_time>=".$timeList['dayStart']." and create_time<=".$timeList['dayEnd'].")")->count(); $predayPayNum = DocPaylog::find()->where("(create_time>=".$timeList['predayStart']." and create_time<=".$timeList['predayEnd'].")")->count(); if($todayPayNum>$predayPayNum&&$predayPayNum>0) { $todaypayPercents = '+ '.number_format(((($todayPayNum-$predayPayNum)/$predayPayNum)*100),2).'%'; } else if($todayPayNum<$predayPayNum&&$predayPayNum>0) { $todaypayPercents = '- '.number_format(((($predayPayNum-$todayPayNum)/$predayPayNum)*100),2).'%'; } else { $todaypayPercents = '+ 0%'; } //今日销售额 $todaySales = ShoppingOrder::find()->where("(create_time>=".$timeList['dayStart']." and create_time<=".$timeList['dayEnd'].") and status>0")->sum('total_price'); $predaySales = ShoppingOrder::find()->where("(create_time>=".$timeList['predayStart']." and create_time<=".$timeList['predayEnd'].") and status>0")->sum('total_price'); if($todaySales>$predaySales&&$predaySales>0) { $todaysalesPercents = '+ '.number_format(((($todaySales-$predaySales)/$predaySales)*100),2).'%'; } else if($todaySales<$predaySales&&$predaySales>0) { $todaysalesPercents = '- '.number_format(((($predaySales-$todaySales)/$predaySales)*100),2).'%'; } else { $todaysalesPercents = '+ 0%'; } //本月销售额 $monthSales = ShoppingOrder::find()->where("(create_time>=".$timeList['monthStart']." and create_time<=".$timeList['monthEnd'].") and status>0")->sum('total_price'); $premonthSales = ShoppingOrder::find()->where("(create_time>=".$timeList['premonthStart']." and create_time<=".$timeList['premonthEnd'].") and status>0")->sum('total_price'); if($monthSales>$premonthSales&&$premonthSales>0) { $monthsalesPercents = '+ '.number_format(((($monthSales-$premonthSales)/$premonthSales)*100),2).'%'; } else if($monthSales<$premonthSales&&$premonthSales>0) { $monthsalesPercents = '- '.number_format(((($premonthSales-$monthSales)/$premonthSales)*100),2).'%'; } else { $monthsalesPercents = '+ 0%'; } //本月提现金额 $monthWithdraw = UserWithdraw::find()->where("(process_time>=".$timeList['monthStart']." and process_time<=".$timeList['monthEnd'].") and process_result=1")->sum('real_money'); $premonthWithdraw = UserWithdraw::find()->where("(process_time>=".$timeList['premonthStart']." and process_time<=".$timeList['premonthEnd'].") and process_result=1")->sum('real_money'); if($monthWithdraw>$premonthWithdraw&&$premonthWithdraw>0) { $monthwithdrawPercents = '+ '.number_format(((($monthWithdraw-$premonthWithdraw)/$premonthWithdraw)*100),2).'%'; } else if($monthWithdraw<$premonthWithdraw&&$premonthWithdraw>0) { $monthwithdrawPercents = '- '.number_format(((($premonthWithdraw-$monthWithdraw)/$premonthWithdraw)*100),2).'%'; } else { $monthwithdrawPercents = '+ 0%'; } //获取月份数据 $monthList = getLastAllMonthByNumber(6,get_date(TIMESTAMP,'Y-m')); //获取当月详细销售数据和用户注册数据 $firstDate = get_date(TIMESTAMP,'Y-m-01'); $days = get_days($firstDate,2); if(is_array($days))foreach($days as $day) { $unitdayStart = str_to_time($day.' 00:00:00'); $unitdayEnd = str_to_time($day.' 23:59:59'); $daySalesNum = ShoppingOrder::find()->where("(create_time>=".$unitdayStart." and create_time<=".$unitdayEnd.") and status>0")->sum('total_price'); $dayRegisterNum = User::find()->where("(register_time>=".$unitdayStart." and register_time<=".$unitdayEnd.")")->count(); $dayLoginNum = UserLoginLog::find()->where("(login_time>=".$unitdayStart." and login_time<=".$unitdayEnd.")")->distinct('user_id')->count(); $dayVipNum = UserVipOrder::find()->where("(create_time>=".$unitdayStart." and create_time<=".$unitdayEnd.") and status=1")->count(); $daysData[] = array('date'=>$day,'salesnum'=>$daySalesNum,'registernum'=>$dayRegisterNum,'loginnum'=>$dayLoginNum,'vipnum'=>$dayVipNum); } //月度销售额数据 $monthCoinSales = ShoppingOrder::find()->where("(create_time>=".$timeList['monthStart']." and create_time<=".$timeList['monthEnd'].") and status>0 and pay_credit like 'coinrecharge%'")->sum('total_price'); $monthVipSales = ShoppingOrder::find()->where("(create_time>=".$timeList['monthStart']." and create_time<=".$timeList['monthEnd'].") and status>0 and pay_credit like 'buyvip%'")->sum('total_price'); $monthDocSales = ShoppingOrder::find()->where("(create_time>=".$timeList['monthStart']." and create_time<=".$timeList['monthEnd'].") and status>0 and pay_credit like 'buydoc%'")->sum('total_price'); $monthCouponSales = ShoppingOrder::find()->where("(create_time>=".$timeList['monthStart']." and create_time<=".$timeList['monthEnd'].") and status>0 and pay_credit like 'uservipcoupon%'")->sum('total_price'); $userInfo = $this->getIdentityInfo(); return $this->render('dashboard',array('userInfo'=>$userInfo,'docNum'=>$docNum,'orderNum'=>$orderNum,'userNum'=>$userNum,'totalSalesMoney'=>$totalSalesMoney,'todayRegisterNum'=>$todayRegisterNum,'todayRegisterPercents'=>$todayRegisterPercents,'todayUploadNum'=>$todayUploadNum,'todayUploadPercents'=>$todayUploadPercents,'todayPayNum'=>$todayPayNum,'todaypayPercents'=>$todaypayPercents,'todaySales'=>$todaySales,'todaysalesPercents'=>$todaysalesPercents,'monthSales'=>$monthSales,'premonthSales'=>$premonthSales,'monthsalesPercents'=>$monthsalesPercents,'monthList'=>$monthList,'daysData'=>$daysData,'monthCoinSales'=>floatval($monthCoinSales),'monthVipSales'=>floatval($monthVipSales),'monthDocSales'=>floatval($monthDocSales),'monthCouponSales'=>floatval($monthCouponSales),'monthWithdraw'=>$monthWithdraw,'monthwithdrawPercents'=>$monthwithdrawPercents)); } //新旧版之间的数据同步 public function actionSyndata() { $do = Yii::$app->request->get('do'); //文档同步 if($do=='doc') { $doc = Yii::$app->db2->createCommand("select * from wz_doc_real where is_rotate=0 and doc_type=1 order by id asc limit 1")->queryOne(); if(empty($doc)) { exit("导入完成"); } $cat = Yii::$app->db2->createCommand("select * from wz_category where cat_id=".$doc['cat_id']."")->queryOne(); if(empty($cat)) { Yii::$app->db2->createCommand("UPDATE wz_doc_real SET is_rotate=1 where id=".$doc['id'])->execute(); echo ""; exit; } $newCat = \app\modules\cms\models\Category::find()->where("cat_name='".$cat['cat_name']."'")->orderBy(['parent_id'=>SORT_DESC])->one(); if(empty($newCat)) { Yii::$app->db2->createCommand("UPDATE wz_doc_real SET is_rotate=1 where id=".$doc['id'])->execute(); echo ""; exit; } $parent_cat_ids = explode(",",$newCat->arr_parent_ids); $file = sys_auth($doc['file'],'DECODE',$doc['hash']); $fileUrl = 'https://www.gongwentang.com/upload/'.$file; $targetFile = UPLOAD_PATH.$file; dir_create(dirname($targetFile)); file_put_contents($targetFile,https_request($fileUrl)); if(file_exists($targetFile)) { $params = Yii::$app->params; //上传设置(判断是否采用全路径) $attConfigInfo = \app\modules\admin\models\Config::find()->where("name='attachment'")->one(); $attConfig = string2array($attConfigInfo->value); $ossConfigResult = \app\modules\admin\models\Config::find()->where("name='oss'")->one(); $ossConfig = string2array($ossConfigResult['value']); $filePath = str_replace(UPLOAD_PATH,'',$targetFile); $fileUrl = UPLOAD_URL.$filePath; if($params['oss']['OPEN_OSS']==1)//如果开启了云存储,初始化存储对象 { $oss = new \app\common\components\Oss(); $initResult = $oss->init($ossConfig['OPEN_INTERNAL']); if($initResult['error']==0) { $result = $oss->Upload($targetFile,$filePath); if($result['error']==0) { $fileUrl = $result['data']['url']; $filePath = $attConfig['absolute_url']?$result['data']['url']:$result['data']['path']; //写入附件表 $attachment = new \app\modules\admin\models\Attachment(); $attachment->file_name = $doc['title']; $attachment->file_path = $filePath; $attachment->file_size = $doc['size']; $attachment->file_ext = $doc['ext']; $attachment->hash = md5($filePath); $attachment->upload_time = $doc['create_time']; $attachment->upload_ip = MYIP; $attachment->md5 = $doc['md5']; $attachment->status = 1; $attachment->list_order = 0; $attachment->folder = Yii::$app->request->post('folder',''); if($attachment->save()) { $newDoc = new \app\modules\doc\models\Doc(); $mewdocData = new \app\modules\doc\models\DocData(); $newDoc->cat_id = $newCat['cat_id']; $newDoc->parent_cat_id = intval($parent_cat_ids[1]); $newDoc->root_cat_id = intval($parent_cat_ids[count($parent_cat_ids)-1]); if(!empty($newCat->arr_parent_ids)) { $newDoc->cat_ids = ",".join(",",array_reverse($parent_cat_ids)).","; } else { $newDoc->cat_ids = ",".$newCat['cat_id'].","; } $newDoc->doc_type = 1; $newDoc->title = $doc['title']; $newDoc->tags = $doc['tags']; $newDoc->md5 = $doc['md5']; $newDoc->ext = $doc['ext']; $newDoc->filesize = $doc['size']; $newDoc->vip_free = $doc['vip_free']; $newDoc->is_vip = $doc['is_vip']; $newDoc->coin_price = $doc['download_price']; $newDoc->views = $doc['views']; $newDoc->downs = $doc['downs']; $newDoc->status = 0; $newDoc->stars = 3; $newDoc->user_id = $doc['user_id']; $newDoc->user_name = $doc['user_name']; $newDoc->create_time = $doc['create_time']; $newDoc->update_time = $doc['update_time']; $newDoc->list_order = $doc['id']; $newDoc->ext_type_1 = $doc['ext_type1']; $newDoc->ext_type_2 = $doc['ext_type2']; $newDoc->ext_type_3 = $doc['ext_type3']; $newDoc->ext_type_4 = $doc['ext_type4']; $newDoc->ext_type_5 = $doc['ext_type5']; $newDoc->tags = initTags($newDoc); if($newDoc->save()) { $mewdocData->id = $newDoc->id; $mewdocData->file = $filePath; $mewdocData->content = ''; if($mewdocData->save()) { if($mewdocData->file) \app\modules\admin\models\Attachment::relateAttachmentByTable($mewdocData->file,$mewdocData->shortTableName(),'file',$newDoc->id); if($newDoc->tags)refreshTag($newDoc->tags,$newDoc->shortTableName(),$newDoc->id,$newDoc->user_id); @unlink($targetFile); Yii::$app->db2->createCommand("UPDATE wz_doc_real SET is_rotate=1 where id=".$doc['id'])->execute(); echo ""; exit; } } } } } } } } //自动审核 if($do=='audit') { $url = APP_URL.'index.php?r=doc/default/multiaudit'; $docList = Doc::find()->where("trans_status=1 and is_delete=0")->limit(1)->all(); if(empty($docList)) { exit('审核完毕'); } else { if(is_array($docList))foreach($docList as $doc) { $ids[] = $doc->id; } $params1 = join(',',$ids); $result = Yii::$app->runAction('doc/default/multiaudit',['params1'=>$params1]); if($result['error']==0) { //exit('导入成功'); echo ""; exit; } else { exit('出错了'); } } } //用户同步 if($do=='user') { $userInfo = Yii::$app->db2->createCommand("select * from wz_user as a left join wz_user_detail as b on a.user_id=b.user_id where a.have_message=0 order by a.user_id asc limit 1")->queryOne(); if(empty($userInfo)) { exit("导入完成"); } else { $userApplyCert = Yii::$app->db2->createCommand("select * from wz_user_apply_cert where user_id=".$userInfo['user_id']." order by id desc limit 1")->queryOne(); $userOpenAuth = Yii::$app->db2->createCommand("select * from wz_user_open_auth where user_id=".$userInfo['user_id']." order by id desc limit 1")->queryOne(); $user = User::findOne($userInfo['user_id']); if(empty($user))$user = new User(); $userDetail = UserDetail::findOne($userInfo['user_id']); if(empty($userDetail))$userDetail = new UserDetail(); $user->user_id = $userInfo['user_id']; $user->user_name = $userInfo['user_name']; $user->user_pwd = $userInfo['user_pwd']; $user->content_model_id = 1; $user->group_id = 1; $user->user_group_level = 1; $user->email = $userInfo['email']; $user->mobile = $userInfo['mobile']; $user->nick_name = $userInfo['nick_name']; $user->real_name = $userInfo['real_name']; $user->sex = $userInfo['sex']; $user->birthday = $userInfo['birthday']; $user->signature = $userInfo['signature']; $user->qq = $userInfo['qq']; $user->weixin = $userInfo['weixin']; $user->money = 0; $user->coin = 0; $user->coin_income = 0; $user->amount_coin_income = 0; $user->avatar = $userInfo['avatar']?$userInfo['avatar']:''; $user->request_from = 1; $user->register_time = $userInfo['register_time']; if($userInfo['cert_2'])$user->open_upload = 1; if($user->save()) { $userDetail->user_id = $userInfo['user_id']; if($userInfo['mobile'])$userDetail->cert_1 = 1; if($userInfo['email']) $userDetail->cert_2 = 1; if($userInfo['cert_2'])$userDetail->cert_3 = 1; $userDetail->doc_num = $userInfo['doc_num']; if($userDetail->save()) { if(!empty($userApplyCert)) { $certModel = UserApplyCert::find()->where("user_id=".$userInfo['user_id']." and process=1")->one(); if(empty($certModel))$certModel = new UserApplyCert(); $certModel->user_id = $userApplyCert['user_id']; $certModel->cert_type = 3; $certModel->cert_info = $userApplyCert['cert_info']; $certModel->process = $userApplyCert['process']; $certModel->process_result = $userApplyCert['process_result']; $certModel->process_time = $userApplyCert['process_time']; $certModel->create_time = $userApplyCert['create_time']; $certModel->save(); } if(!empty($userOpenAuth)) { $authModel = UserOpenAuth::find()->where("user_id=".$userInfo['user_id'])->one(); if(empty($authModel))$authModel = new UserOpenAuth(); $authModel->user_id = $userInfo['user_id']; $authModel->app = $userOpenAuth['app']; $authModel->app_uid = $userOpenAuth['app_uid']; $authModel->user_info = $userOpenAuth['user_info']; $authModel->hash = $userOpenAuth['hash']; $authModel->bind_time = $userOpenAuth['bind_time']; $authModel->app_unionname = $userOpenAuth['app']; $authModel->save(); } } Yii::$app->db2->createCommand("UPDATE wz_user SET have_message=1 where user_id=".$userInfo['user_id'])->execute(); echo ""; exit; } } } //订单同步 if($do=='order') { $vipInfo = Yii::$app->db2->createCommand("select * from wz_user_vip_order where status=1 order by order_id asc")->queryOne(); if(empty($vipInfo)) { exit("导入完成"); } //VIP类型 if($vipInfo['vip_type']==4)$vipInfo['vip_type']=1; if($vipInfo['vip_type']==3)$vipInfo['vip_type']=2; if($vipInfo['vip_type']==2)$vipInfo['vip_type']=3; if($vipInfo['vip_type']==1)$vipInfo['vip_type']=4; $userVipType = \app\modules\ucenter\models\UserVipType::findOne($vipInfo['vip_type']); //创建订单 $order = new ShoppingOrder(); $order->user_id = $vipInfo['user_id']; $order->order_sn = getUniOrderNo(); $order->pay_credit = 'buyvip_'.$vipInfo['vip_type']; $order->total_price = $vipInfo['money'];$vipInfo['money']; $order->discount_price = 0; $order->remark = '开通VIP-'.$userVipType->title; $order->order_type = 3; $order->status = 9; $order->pay_time = $vipInfo['create_time']; $order->request_from = REQUEST_FROM; $order->create_time = $vipInfo['create_time']; if($order->save()) { $userVipOrder = new UserVipOrder(); $userVipOrder->order_id = $order->order_id; $userVipOrder->user_id = $vipInfo['user_id']; $userVipOrder->vip_type = $vipInfo['vip_type']; $userVipOrder->money = $vipInfo['money']; $userVipOrder->days = $userVipType->days; $userVipOrder->settings = $userVipType->settings; $userVipOrder->expire_time = $vipInfo['expire_time']; $userVipOrder->create_time = $vipInfo['create_time']; $userVipOrder->status = 1; $userVipOrder->save(); Yii::$app->db2->createCommand("UPDATE wz_user_vip_order SET status=99 where order_id=".$vipInfo['order_id'])->execute(); echo ""; exit; } } //重置栏目 if($do=='cat') { $doc = DocReal::find()->where("sys_add=0 and doc_type=1")->limit(1)->one(); if(empty($doc)) { exit("更新完成"); } $catList = \app\modules\cms\models\Category::find()->where("content_model_id=4 and description!=''")->all(); foreach($catList as $cat) { $tags = explode(",",str_replace(array(",",","),array(",",","),$cat->description)); foreach($tags as $tag) { if(strpos($doc->title,$tag)!==false) { $currentCat = $cat; $parent_cat_ids = explode(",",$cat->arr_parent_ids); $doc->parent_cat_id = intval($parent_cat_ids[1]); $doc->root_cat_id = intval($parent_cat_ids[count($parent_cat_ids)-1]); $doc->cat_id = $cat->cat_id; if(!empty($cat->arr_parent_ids)) { $doc->cat_ids = ",".join(",",array_reverse($parent_cat_ids)).","; } else { $doc->cat_ids = ",".$doc->cat_id.","; } $doc->sys_add = 1; $doc->save(); echo ""; exit; } } } $doc->sys_add = 2; $doc->save(); echo ""; exit; } } //批量导入文档 public function actionMultiupload() { $folder = Yii::$app->request->get('folder','files');//定义源文档存放目录名称 $multiPath = APP_PATH.'multi'.DIRECTORY_SEPARATOR; $sourcePath = $multiPath.$folder.DIRECTORY_SEPARATOR; $bakPath = $multiPath.$folder.'_bak'.DIRECTORY_SEPARATOR; dir_create($bakPath); $path = $sourcePath; $dirTree = dir_tree($path); //如果有子目录,处理子目录 if(!empty($dirTree)) { $path = $dirTree[1]['dir']; $tag = $dirTree[1]['name']; $childPath = $path; } $url = get_url(); $fileList = get_filenamesbydir(rtrim($path,DIRECTORY_SEPARATOR)); //过滤文件 if(is_array($fileList))foreach($fileList as $file) { $arr = pathinfo($file); if($arr['extension']=='php')continue; if(in_array($arr['extension'],['wav','flv','url']))//有些文件要删除 { @unlink($file); continue; } else { $files[] = $file; } } $sourceFile = $files[0]; //没有待处理文档了 if(empty($sourceFile)){ if($dirTree&&$childPath) { dir_delete($childPath); echo ""; } exit("上传完成"); } if($this->doMultiUpload($sourceFile,$multiPath,$tag)) { unlink($sourceFile); echo ""; } else { $originalFilename = basename($sourceFile); copy($sourceFile,$bakPath.$originalFilename); unlink($sourceFile); echo ""; } } //执行批量导入 public function doMultiUpload($sourceFile,$multiPath,$tag) { //文件基本信息 $title = basename($sourceFile,'.'.fileext($sourceFile)); $filesize = filesize($sourceFile); $ext = fileext($sourceFile); $md5 = md5(file_get_contents($sourceFile)); //配置文件 require_once($multiPath.'config.php'); $parent_cat_ids = explode(",",$arr_parent_ids); $childPath = date('Y',TIMESTAMP).DIRECTORY_SEPARATOR.date('m',TIMESTAMP).DIRECTORY_SEPARATOR.date('d',TIMESTAMP).DIRECTORY_SEPARATOR; $targetPath = UPLOAD_PATH.$childPath; $fileName = get_unique_file_name($targetPath,$ext);//文件重命名 if (!is_dir($targetPath)) { dir_create($targetPath); } $targetFile = $targetPath . $fileName; if(copy($sourceFile,$targetFile)) { if(file_exists($targetFile)) { $md5 = md5(file_get_contents($targetFile)); $exist = DocReal::find()->where("md5='".$md5."'")->exists(); if($exist) { @unlink($targetFile); return true; } else { $params = Yii::$app->params; //上传设置(判断是否采用全路径) $attConfigInfo = \app\modules\admin\models\Config::find()->where("name='attachment'")->one(); $attConfig = string2array($attConfigInfo->value); $ossConfigResult = \app\modules\admin\models\Config::find()->where("name='oss'")->one(); $ossConfig = string2array($ossConfigResult['value']); $filePath = str_replace(UPLOAD_PATH,'',$targetFile); $fileUrl = UPLOAD_URL.$filePath; if($params['oss']['OPEN_OSS']==1)//如果开启了云存储,初始化存储对象 { $oss = new \app\common\components\Oss(); $initResult = $oss->init($ossConfig['OPEN_INTERNAL']); if($initResult['error']==0) { $result = $oss->Upload($targetFile,$filePath); if($result['error']==0) { $fileUrl = $result['data']['url']; $filePath = $attConfig['absolute_url']?$result['data']['url']:$result['data']['path']; } } } else { $filePath = $attConfig['absolute_url']?$fileUrl:$filePath; } //写入附件表 $attachment = new \app\modules\admin\models\Attachment(); $attachment->file_name = basename($sourceFile); $attachment->file_path = $filePath; $attachment->file_size = $filesize; $attachment->file_ext = $ext; $attachment->hash = md5($filePath); $attachment->upload_time = TIMESTAMP; $attachment->upload_ip = MYIP; $attachment->md5 = $md5; $attachment->status = 1; $attachment->list_order = 0; $attachment->folder = ''; if($attachment->save()) { $newDoc = new \app\modules\doc\models\Doc(); $newdocData = new \app\modules\doc\models\DocData(); $newDoc->cat_id = $cat_id; $newDoc->parent_cat_id = intval($parent_cat_ids[1]); $newDoc->root_cat_id = intval($parent_cat_ids[count($parent_cat_ids)-1]); if(!empty($arr_parent_ids)) { $newDoc->cat_ids = ",".join(",",array_reverse($parent_cat_ids)).","; } else { $newDoc->cat_ids = ",".$cat_id.","; } $newDoc->doc_type = 1; $newDoc->title = $title; $newDoc->tags = $tags; $newDoc->md5 = $md5; $newDoc->ext = $ext; $newDoc->filesize = $filesize; $newDoc->vip_free = $vip_free; $newDoc->is_vip = $is_vip; $newDoc->coin_price = $coin_price; $newDoc->views = 0; $newDoc->downs = 0; $newDoc->status = 0; $newDoc->stars = $stars; $newDoc->user_id = $user_id; $newDoc->user_name = $user_name; $newDoc->create_time = TIMESTAMP; $newDoc->update_time = TIMESTAMP; $newDoc->list_order = 0; $newDoc->ext_type_1 = $ext_type_1; $newDoc->ext_type_2 = $ext_type_2; $newDoc->ext_type_3 = $ext_type_3; $newDoc->ext_type_4 = $ext_type_4; $newDoc->ext_type_5 = $ext_type_5; $newDoc->tags = initTags($newDoc); if($newDoc->save()) { $newdocData->id = $newDoc->id; $newdocData->file = $filePath; $newdocData->content = ''; if($newdocData->save()) { if($newdocData->file) \app\modules\admin\models\Attachment::relateAttachmentByTable($newdocData->file,$newdocData->shortTableName(),'file',$newDoc->id); if($newDoc->tags)refreshTag($newDoc->tags,$newDoc->shortTableName(),$newDoc->id,$newDoc->user_id); if($params['oss']['OPEN_OSS']==1)@unlink($targetFile); return true; } else { echo $newdocData->returnFirstError(); exit; } } else { echo $newDoc->returnFirstError(); exit; } } } } } else { return false; } } }