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\FileContent;
|
||||||
use App\Models\FileUser;
|
use App\Models\FileUser;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Models\WebSocket;
|
||||||
use App\Module\Base;
|
use App\Module\Base;
|
||||||
use App\Module\Ihttp;
|
use App\Module\Ihttp;
|
||||||
use Arr;
|
use Arr;
|
||||||
@ -123,6 +124,7 @@ class FileController extends AbstractController
|
|||||||
//
|
//
|
||||||
$file->name = $name;
|
$file->name = $name;
|
||||||
$file->save();
|
$file->save();
|
||||||
|
$file->pushMsg('update', $file);
|
||||||
return Base::retSuccess('修改成功', $file);
|
return Base::retSuccess('修改成功', $file);
|
||||||
} else {
|
} else {
|
||||||
// 添加
|
// 添加
|
||||||
@ -162,6 +164,7 @@ class FileController extends AbstractController
|
|||||||
$file->save();
|
$file->save();
|
||||||
//
|
//
|
||||||
$data = File::find($file->id);
|
$data = File::find($file->id);
|
||||||
|
$data->pushMsg('add', $data);
|
||||||
return Base::retSuccess('添加成功', $data);
|
return Base::retSuccess('添加成功', $data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -201,6 +204,7 @@ class FileController extends AbstractController
|
|||||||
$file->save();
|
$file->save();
|
||||||
//
|
//
|
||||||
$data = File::find($file->id);
|
$data = File::find($file->id);
|
||||||
|
$data->pushMsg('add', $data);
|
||||||
return Base::retSuccess('复制成功', $data);
|
return Base::retSuccess('复制成功', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,6 +246,7 @@ class FileController extends AbstractController
|
|||||||
//
|
//
|
||||||
$file->pid = $pid;
|
$file->pid = $pid;
|
||||||
$file->save();
|
$file->save();
|
||||||
|
$file->pushMsg('update', $file);
|
||||||
return Base::retSuccess('操作成功', $file);
|
return Base::retSuccess('操作成功', $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,7 +327,7 @@ class FileController extends AbstractController
|
|||||||
//
|
//
|
||||||
$file->size = $content->size;
|
$file->size = $content->size;
|
||||||
$file->save();
|
$file->save();
|
||||||
$file->pushContentChange();
|
$file->pushMsg('content');
|
||||||
//
|
//
|
||||||
return Base::retSuccess('保存成功', $content);
|
return Base::retSuccess('保存成功', $content);
|
||||||
}
|
}
|
||||||
@ -365,6 +370,7 @@ class FileController extends AbstractController
|
|||||||
//
|
//
|
||||||
$file->size = $content->size;
|
$file->size = $content->size;
|
||||||
$file->save();
|
$file->save();
|
||||||
|
$file->pushMsg('update', $file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ['error' => 0];
|
return ['error' => 0];
|
||||||
@ -448,6 +454,7 @@ class FileController extends AbstractController
|
|||||||
$file->save();
|
$file->save();
|
||||||
//
|
//
|
||||||
$data = File::find($file->id);
|
$data = File::find($file->id);
|
||||||
|
$data->pushMsg('add', $data);
|
||||||
return Base::retSuccess($data['name'] . ' 上传成功', $data);
|
return Base::retSuccess($data['name'] . ' 上传成功', $data);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -514,8 +521,15 @@ class FileController extends AbstractController
|
|||||||
//
|
//
|
||||||
if ($action == 'unshare') {
|
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);
|
$file->setShare(0);
|
||||||
return Base::retSuccess('取消成功', $file);
|
$message = '取消成功';
|
||||||
} else {
|
} else {
|
||||||
// 设置共享
|
// 设置共享
|
||||||
if (!in_array($share, [1, 2])) {
|
if (!in_array($share, [1, 2])) {
|
||||||
@ -539,12 +553,20 @@ class FileController extends AbstractController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (empty($array)) {
|
if (empty($array)) {
|
||||||
FileUser::whereFileId($file->id)->delete();
|
$builder = FileUser::whereFileId($file->id);
|
||||||
} else {
|
} 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 () {
|
AbstractModel::transaction(function () {
|
||||||
$this->delete();
|
$this->delete();
|
||||||
|
$this->pushMsg('delete');
|
||||||
FileContent::whereFid($this->id)->delete();
|
FileContent::whereFid($this->id)->delete();
|
||||||
$list = self::wherePid($this->id)->get();
|
$list = self::wherePid($this->id)->get();
|
||||||
if ($list->isNotEmpty()) {
|
if ($list->isNotEmpty()) {
|
||||||
foreach ($list as $item) {
|
foreach ($list as $file) {
|
||||||
$item->deleteFile();
|
$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)
|
||||||
{
|
{
|
||||||
|
if ($data === null) {
|
||||||
|
$data = [
|
||||||
|
'id' => $this->id
|
||||||
|
];
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if ($userid === null) {
|
||||||
$userid = [$this->userid];
|
$userid = [$this->userid];
|
||||||
if ($this->share == 1) {
|
if ($this->share == 1) {
|
||||||
$userid = array_merge($userid, WebSocket::wherePath('file/content/' . $this->id)->pluck('userid')->toArray());
|
$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) {
|
} elseif ($this->share == 2) {
|
||||||
$userid = array_merge($userid, FileUser::whereFileId($this->id)->pluck('userid')->toArray());
|
$userid = array_merge($userid, FileUser::whereFileId($this->id)->pluck('userid')->toArray());
|
||||||
}
|
}
|
||||||
//
|
|
||||||
$userid = array_values(array_filter(array_unique($userid)));
|
$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 = [
|
$params = [
|
||||||
'ignoreFd' => Request::header('fd'),
|
'ignoreFd' => Request::header('fd'),
|
||||||
'userid' => $userid,
|
'userid' => $userid,
|
||||||
'msg' => [
|
'msg' => $msg
|
||||||
'type' => 'fileContentChange',
|
|
||||||
'data' => [
|
|
||||||
'id' => $this->id,
|
|
||||||
'nickname' => User::nickname(),
|
|
||||||
'time' => Base::time()
|
|
||||||
],
|
|
||||||
]
|
|
||||||
];
|
];
|
||||||
$task = new PushTask($params, false);
|
$task = new PushTask($params, false);
|
||||||
Task::deliver($task);
|
Task::deliver($task);
|
||||||
|
@ -121,22 +121,29 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
wsMsg: {
|
wsMsg: {
|
||||||
handler({type, data}) {
|
handler(info) {
|
||||||
if (type == 'path') {
|
const {type, data} = info;
|
||||||
|
switch (type) {
|
||||||
|
case 'path':
|
||||||
if (data.path == 'file/content/' + this.fileId) {
|
if (data.path == 'file/content/' + this.fileId) {
|
||||||
this.editUser = data.userids;
|
this.editUser = data.userids;
|
||||||
}
|
}
|
||||||
} else if (type == 'fileContentChange') {
|
break;
|
||||||
|
|
||||||
|
case 'file':
|
||||||
|
if (data.action == 'content') {
|
||||||
if (this.parentShow && data.id == this.fileId) {
|
if (this.parentShow && data.id == this.fileId) {
|
||||||
$A.modalConfirm({
|
$A.modalConfirm({
|
||||||
title: "更新提示",
|
title: "更新提示",
|
||||||
content: '团队成员(' + data.nickname + ')更新了内容,<br/>更新时间:' + $A.formatDate("Y-m-d H:i:s", data.time) + '。<br/><br/>点击【确定】加载最新内容。',
|
content: '团队成员(' + info.nickname + ')更新了内容,<br/>更新时间:' + $A.formatDate("Y-m-d H:i:s", info.time) + '。<br/><br/>点击【确定】加载最新内容。',
|
||||||
onOk: () => {
|
onOk: () => {
|
||||||
this.getContent();
|
this.getContent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
deep: true,
|
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);
|
})(msgDetail);
|
||||||
break;
|
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
|
break
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user