no message
This commit is contained in:
parent
b25aa84139
commit
543bc5244f
@ -8,6 +8,7 @@ use App\Models\File;
|
||||
use App\Models\FileContent;
|
||||
use App\Models\FileUser;
|
||||
use App\Models\User;
|
||||
use App\Models\WebSocket;
|
||||
use App\Module\Base;
|
||||
use App\Module\Ihttp;
|
||||
use Arr;
|
||||
@ -123,6 +124,7 @@ class FileController extends AbstractController
|
||||
//
|
||||
$file->name = $name;
|
||||
$file->save();
|
||||
$file->pushMsg('update', $file);
|
||||
return Base::retSuccess('修改成功', $file);
|
||||
} else {
|
||||
// 添加
|
||||
@ -162,6 +164,7 @@ class FileController extends AbstractController
|
||||
$file->save();
|
||||
//
|
||||
$data = File::find($file->id);
|
||||
$data->pushMsg('add', $data);
|
||||
return Base::retSuccess('添加成功', $data);
|
||||
}
|
||||
}
|
||||
@ -201,6 +204,7 @@ class FileController extends AbstractController
|
||||
$file->save();
|
||||
//
|
||||
$data = File::find($file->id);
|
||||
$data->pushMsg('add', $data);
|
||||
return Base::retSuccess('复制成功', $data);
|
||||
}
|
||||
|
||||
@ -242,6 +246,7 @@ class FileController extends AbstractController
|
||||
//
|
||||
$file->pid = $pid;
|
||||
$file->save();
|
||||
$file->pushMsg('update', $file);
|
||||
return Base::retSuccess('操作成功', $file);
|
||||
}
|
||||
|
||||
@ -322,7 +327,7 @@ class FileController extends AbstractController
|
||||
//
|
||||
$file->size = $content->size;
|
||||
$file->save();
|
||||
$file->pushContentChange();
|
||||
$file->pushMsg('content');
|
||||
//
|
||||
return Base::retSuccess('保存成功', $content);
|
||||
}
|
||||
@ -365,6 +370,7 @@ class FileController extends AbstractController
|
||||
//
|
||||
$file->size = $content->size;
|
||||
$file->save();
|
||||
$file->pushMsg('update', $file);
|
||||
}
|
||||
}
|
||||
return ['error' => 0];
|
||||
@ -448,6 +454,7 @@ class FileController extends AbstractController
|
||||
$file->save();
|
||||
//
|
||||
$data = File::find($file->id);
|
||||
$data->pushMsg('add', $data);
|
||||
return Base::retSuccess($data['name'] . ' 上传成功', $data);
|
||||
});
|
||||
}
|
||||
@ -514,8 +521,15 @@ class FileController extends AbstractController
|
||||
//
|
||||
if ($action == 'unshare') {
|
||||
// 取消共享
|
||||
if ($file->share == 1) {
|
||||
$uids = WebSocket::select(['userid'])->pluck('userid')->toArray();
|
||||
} else {
|
||||
$uids = FileUser::whereFileId($file->id)->pluck('userid')->toArray();
|
||||
}
|
||||
$uids = array_values(array_diff($uids, [$user->userid]));
|
||||
//
|
||||
$file->setShare(0);
|
||||
return Base::retSuccess('取消成功', $file);
|
||||
$message = '取消成功';
|
||||
} else {
|
||||
// 设置共享
|
||||
if (!in_array($share, [1, 2])) {
|
||||
@ -539,12 +553,20 @@ class FileController extends AbstractController
|
||||
}
|
||||
}
|
||||
if (empty($array)) {
|
||||
FileUser::whereFileId($file->id)->delete();
|
||||
$builder = FileUser::whereFileId($file->id);
|
||||
} else {
|
||||
FileUser::whereFileId($file->id)->whereNotIn('userid', $array)->delete();
|
||||
$builder = FileUser::whereFileId($file->id)->whereNotIn('userid', $array);
|
||||
}
|
||||
$uids = (clone $builder)->pluck('userid')->toArray();
|
||||
$builder->delete();
|
||||
}
|
||||
return Base::retSuccess('设置成功', $file);
|
||||
$message = '设置成功';
|
||||
}
|
||||
//
|
||||
$file->pushMsg('update', $file);
|
||||
if (isset($uids)) {
|
||||
$file->pushMsg('delete', null, $uids);
|
||||
}
|
||||
return Base::retSuccess($message, $file);
|
||||
}
|
||||
}
|
||||
|
@ -148,11 +148,12 @@ class File extends AbstractModel
|
||||
{
|
||||
AbstractModel::transaction(function () {
|
||||
$this->delete();
|
||||
$this->pushMsg('delete');
|
||||
FileContent::whereFid($this->id)->delete();
|
||||
$list = self::wherePid($this->id)->get();
|
||||
if ($list->isNotEmpty()) {
|
||||
foreach ($list as $item) {
|
||||
$item->deleteFile();
|
||||
foreach ($list as $file) {
|
||||
$file->deleteFile();
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -160,29 +161,49 @@ class File extends AbstractModel
|
||||
}
|
||||
|
||||
/**
|
||||
* 推送内容发生变化消息
|
||||
* 推送消息
|
||||
* @param $action
|
||||
* @param File|null $data 发送内容,默认为[id]
|
||||
* @param array $userid 指定会员,默认为可查看文件的人
|
||||
*/
|
||||
public function pushContentChange()
|
||||
public function pushMsg($action, $data = null, $userid = null)
|
||||
{
|
||||
$userid = [$this->userid];
|
||||
if ($this->share == 1) {
|
||||
$userid = array_merge($userid, WebSocket::wherePath('file/content/' . $this->id)->pluck('userid')->toArray());
|
||||
} elseif ($this->share == 2) {
|
||||
$userid = array_merge($userid, FileUser::whereFileId($this->id)->pluck('userid')->toArray());
|
||||
if ($data === null) {
|
||||
$data = [
|
||||
'id' => $this->id
|
||||
];
|
||||
}
|
||||
//
|
||||
$userid = array_values(array_filter(array_unique($userid)));
|
||||
if ($userid === null) {
|
||||
$userid = [$this->userid];
|
||||
if ($this->share == 1) {
|
||||
$builder = WebSocket::select(['userid']);
|
||||
if ($action == 'content') {
|
||||
$builder->wherePath('file/content/' . $this->id);
|
||||
}
|
||||
$userid = array_merge($userid, $builder->pluck('userid')->toArray());
|
||||
} elseif ($this->share == 2) {
|
||||
$userid = array_merge($userid, FileUser::whereFileId($this->id)->pluck('userid')->toArray());
|
||||
}
|
||||
$userid = array_values(array_filter(array_unique($userid)));
|
||||
}
|
||||
if (empty($userid)) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
$msg = [
|
||||
'type' => 'file',
|
||||
'action' => $action,
|
||||
'data' => $data,
|
||||
];
|
||||
if ($action == 'content') {
|
||||
$msg['nickname'] = User::nickname();
|
||||
$msg['time'] = time();
|
||||
}
|
||||
$params = [
|
||||
'ignoreFd' => Request::header('fd'),
|
||||
'userid' => $userid,
|
||||
'msg' => [
|
||||
'type' => 'fileContentChange',
|
||||
'data' => [
|
||||
'id' => $this->id,
|
||||
'nickname' => User::nickname(),
|
||||
'time' => Base::time()
|
||||
],
|
||||
]
|
||||
'msg' => $msg
|
||||
];
|
||||
$task = new PushTask($params, false);
|
||||
Task::deliver($task);
|
||||
|
@ -121,21 +121,28 @@ export default {
|
||||
},
|
||||
|
||||
wsMsg: {
|
||||
handler({type, data}) {
|
||||
if (type == 'path') {
|
||||
if (data.path == 'file/content/' + this.fileId) {
|
||||
this.editUser = data.userids;
|
||||
}
|
||||
} else if (type == 'fileContentChange') {
|
||||
if (this.parentShow && data.id == this.fileId) {
|
||||
$A.modalConfirm({
|
||||
title: "更新提示",
|
||||
content: '团队成员(' + data.nickname + ')更新了内容,<br/>更新时间:' + $A.formatDate("Y-m-d H:i:s", data.time) + '。<br/><br/>点击【确定】加载最新内容。',
|
||||
onOk: () => {
|
||||
this.getContent();
|
||||
handler(info) {
|
||||
const {type, data} = info;
|
||||
switch (type) {
|
||||
case 'path':
|
||||
if (data.path == 'file/content/' + this.fileId) {
|
||||
this.editUser = data.userids;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'file':
|
||||
if (data.action == 'content') {
|
||||
if (this.parentShow && data.id == this.fileId) {
|
||||
$A.modalConfirm({
|
||||
title: "更新提示",
|
||||
content: '团队成员(' + info.nickname + ')更新了内容,<br/>更新时间:' + $A.formatDate("Y-m-d H:i:s", info.time) + '。<br/><br/>点击【确定】加载最新内容。',
|
||||
onOk: () => {
|
||||
this.getContent();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
|
18
resources/assets/js/store/actions.js
vendored
18
resources/assets/js/store/actions.js
vendored
@ -1587,6 +1587,24 @@ export default {
|
||||
}
|
||||
})(msgDetail);
|
||||
break;
|
||||
|
||||
/**
|
||||
* 文件消息
|
||||
*/
|
||||
case "file":
|
||||
(function (msg) {
|
||||
const {action, data} = msg;
|
||||
switch (action) {
|
||||
case 'add':
|
||||
case 'update':
|
||||
dispatch("saveFile", data);
|
||||
break;
|
||||
case 'delete':
|
||||
dispatch("forgetFile", data.id);
|
||||
break;
|
||||
}
|
||||
})(msgDetail);
|
||||
break;
|
||||
}
|
||||
break
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user