| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- <?php
- namespace app\backend\modules\setting\controllers;
- use app\common\components\BaseController;
- use app\common\facades\Setting;
- use app\common\helpers\Url;
- use app\platform\modules\application\models\CoreAttach;
- use app\backend\modules\upload\models\CoreAttach as WQCoreAttach;
- use app\platform\modules\application\models\CoreAttachTags;
- use app\platform\modules\system\models\SystemSetting;
- class MediaController extends BaseController
- {
- private $coreAttchment;
- public function preAction()
- {
- parent::preAction(); // TODO: Change the autogenerated stub
- if (config('app.framework') == 'platform') {
- $this->coreAttchment = new CoreAttach();
- }else{
- $this->coreAttchment = new WQCoreAttach();
- }
- }
- public function index()
- {
- return view('setting.media.index')->render();
- }
- public function tags(){
- $sourceType = request()->source_type;
- if (!$sourceType) {
- return $this->successJson('获取失败');
- }
- $list = CoreAttachTags::uniacid()->with(['hasManySource' => function($query){
- $query->uniacid();
- if (\YunShop::app()->isfounder !== true)
- {
- $query->where('uid', \YunShop::app()->uid);
- }
- }])->where('source_type',$sourceType)->orderBy('sort', 'desc')->get()->toArray();
- $allCount = $this->coreAttchment->uniacid()->where('type',$sourceType);
- $unCount = $this->coreAttchment->uniacid()->where('type',$sourceType)->where(function($query){
- $query->where('tag_id', 0)->orWhere('tag_id', null);
- });
- if (\YunShop::app()->isfounder !== true)
- {
- $allCount = $allCount->where('uid', \YunShop::app()->uid);
- $unCount = $unCount->where('uid', \YunShop::app()->uid);
- }
- $allCount = $allCount->count();
- $unCount = $unCount->count();
- foreach ($list as &$item)
- {
- $item['source_count'] = count($item['has_many_source']);
- unset($item['has_many_source']);
- }
- array_unshift($list,
- ['id' => '', 'title' => '全部', 'source_type' => $sourceType, 'tag_type' => 1, 'source_count' => $allCount],
- ['id' => 0, 'title' => '未分组', 'source_type' => $sourceType, 'tag_type' => 1, 'source_count' => $unCount]
- );
- return $this->successJson('成功',$list);
- }
- public function source(){
- $sourceType = request()->source_type;
- $tagId = request()->tag_id;
- $pageSize = request()->pageSize;
- $date = request()->date;
- if (!$sourceType) {
- return $this->successJson('获取失败');
- }
- $list = $this->coreAttchment->uniacid()
- ->where('type', $sourceType)
- ->search($date);
- if (\YunShop::app()->isfounder !== true)
- {
- $list->where('uid', \YunShop::app()->uid);
- }
- if (is_numeric($tagId))
- {
- if ($tagId == 0)
- {
- $list = $list->where(function($query)use($tagId){
- $query->where('tag_id', $tagId)->orWhere('tag_id', null);
- });
- }
- else
- {
- $list->where('tag_id', $tagId);
- }
- }
- if (config('app.framework') == 'platform') {
- $list = $list->orderBy('created_at', 'desc');
- }else{
- $list = $list->orderBy('createtime', 'desc');
- }
- $list = $list->paginate($pageSize);
- foreach($list as &$item){
- $item->attachment = yz_tomedia($item->attachment);
- }
- return $this->successJson('成功', $list);
- }
- public function addTag(){
- $title = request()->title;
- $sourceType = request()->source_type;
- $tagType = 2;
- $result = CoreAttachTags::create([
- 'source_type' => $sourceType,
- 'tag_type' => $tagType,
- 'title' => $title,
- 'uniacid' => \YunShop::app()->uniacid,
- ]);
- if ($result)
- {
- return $this->successJson('成功');
- }
- else
- {
- return $this->errorJson('失败');
- }
- }
- //批量删除 所有资源类型通用
- public function batchDelete(){
- $ids = request()->ids;
- $tags = request()->tags;
- $date = request()->date;
- $sourceType = request()->source_type;
- if(!$sourceType || (!$ids && !$tags && !$date)){
- return $this->errorJson('缺少参数');
- }
- $model = $this->coreAttchment->uniacid()->where('type', $sourceType);
- if (!empty($ids))
- {
- $model = $model->whereIn('id', $ids);
- }
- if (!empty($tags))
- {
- $model = $model->whereIn('tag_id', $tags);
- }
- if (!empty($date))
- {
- switch($date){
- case 'all':
- break;
- case 'year':
- $model = $model->whereBetween(
- 'created_at',
- [
- time(),
- time()-86400*365
- ]
- );
- break;
- case 'half_year':
- $model = $model->whereBetween(
- 'created_at',
- [
- time(),
- time()-86400*365/2
- ]
- );
- break;
- case 'three_month':
- $model = $model->whereBetween(
- 'created_at',
- [
- time(),
- time()-86400*90
- ]
- );
- break;
- case 'month':
- $model = $model->whereBetween(
- 'created_at',
- [
- time(),
- time()-86400*30
- ]
- );
- break;
- }
- }
- $remote = SystemSetting::settingLoad('remote', 'system_remote');
- $core_attach = $model->get();
- foreach ($core_attach as $attach)
- {
- if ($attach['upload_type']) {
- $remote_url = '';
- if ($remote['type'] == 2) {
- $remote_url = $remote['alioss']['url'];
- }
- if ($remote['type'] == 4) {
- $remote_url = $remote['cos']['url'];
- }
- if ($remote_url && strexists($attach['attachment'], $remote_url)) {
- $str_len = strlen($remote_url);
- $attach['attachment'] = substr($attach['attachment'], $str_len+1);
- }
- if (config('app.framework') == 'platform')
- {
- $status = file_remote_delete($attach['attachment'], $attach['upload_type'], $remote);
- }
- else
- {
- $status = file_remote_delete($attach['attachment']);
- }
- } else {
- $status = file_delete($attach['attachment']);
- }
- $attach->delete();
- }
- return $this->successJson('删除成功');
- }
- public function batchMove(){
- $ids = request()->ids;
- $tagId = request()->tag_id;
- if(!$ids || !is_numeric($tagId)){
- return $this->errorJson('缺少参数');
- }
- $result = $this->coreAttchment->uniacid()->whereIn('id', $ids)->update(['tag_id' => $tagId]);
- if ($result)
- {
- return $this->successJson('成功');
- }
- else
- {
- return $this->errorJson('失败');
- }
- }
- public function rename(){
- $id = request()->id;
- $filename = request()->filename;
- if(!$id || !$filename){
- return $this->errorJson('缺少参数');
- }
- $result = $this->coreAttchment->uniacid()->where('id', $id)->update(['filename' => $filename]);
- if ($result)
- {
- return $this->successJson('成功');
- }
- else
- {
- return $this->errorJson('失败');
- }
- }
- public function renameTag(){
- $id = request()->id;
- $title = request()->title;
- if(!$id || !$title){
- return $this->errorJson('缺少参数');
- }
- $result = CoreAttachTags::uniacid()->where('id', $id)->update(['title' => $title]);
- if ($result)
- {
- return $this->successJson('成功');
- }
- else
- {
- return $this->errorJson('失败');
- }
- }
- public function deleteTag(){
- $id = request()->id;
- $status = request()->moveOrDelete;
- if(!$id){
- return $this->errorJson('缺少参数');
- }
- $result = CoreAttachTags::uniacid()->where('id', $id)->delete();
- if ($status == 1)
- {
- $this->coreAttchment->uniacid()->where('tag_id', $id)->update(['tag_id' => 0]);
- }
- else if ($status == 2)
- {
- $this->coreAttchment->uniacid()->where('tag_id', $id)->delete();
- }
- if ($result)
- {
- return $this->successJson('成功');
- }
- else
- {
- return $this->errorJson('失败');
- }
- }
- public function sortTag(){
- $id = request()->id;
- $sort = request()->sort;
- if(!$id){
- return $this->errorJson('缺少参数');
- }
- $result = CoreAttachTags::uniacid()->where('id', $id)->update(['sort' => $sort]);
- if ($result)
- {
- return $this->successJson('成功');
- }
- else
- {
- return $this->errorJson('失败');
- }
- }
- }
|