no message

This commit is contained in:
kuaifan 2022-06-27 20:30:01 +08:00
parent 58856c6620
commit 688fcd3c77
16 changed files with 110 additions and 46 deletions

View File

@ -99,7 +99,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/one 02. 获取单个会话信息
* @api {get} api/dialog/one 03. 获取单个会话信息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -130,7 +130,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/user 03. 获取会话成员
* @api {get} api/dialog/user 04. 获取会话成员
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -175,7 +175,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/open/user 04. 打开会话
* @api {get} api/dialog/open/user 05. 打开会话
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -206,7 +206,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/lists 05. 获取消息列表
* @api {get} api/dialog/msg/lists 06. 获取消息列表
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -214,6 +214,69 @@ class DialogController extends AbstractController
* @apiName msg__lists
*
* @apiParam {Number} dialog_id 对话ID
* @apiParam {String} [position_id] 定位消息ID填写时page无效
*
* @apiParam {Number} [page] 当前页,默认:1
* @apiParam {Number} [pagesize] 每页显示数量,默认:50,最大:100
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function msg__lists()
{
$user = User::auth();
//
$dialog_id = intval(Request::input('dialog_id'));
$position_id = intval(Request::input('position_id'));
//
$dialog = WebSocketDialog::checkDialog($dialog_id);
//
$builder = WebSocketDialogMsg::select([
'web_socket_dialog_msgs.*',
'read.mention',
'read.read_at',
])->leftJoin('web_socket_dialog_msg_reads as read', function ($leftJoin) use ($user) {
$leftJoin
->on('read.userid', '=', DB::raw($user->userid))
->on('read.msg_id', '=', 'web_socket_dialog_msgs.id');
})->where('web_socket_dialog_msgs.dialog_id', $dialog_id)->orderByDesc('web_socket_dialog_msgs.id');
//
$perPage = Base::getPaginate(100, 50);
if ($position_id > 0) {
$position_count = $builder->clone()->where('web_socket_dialog_msgs.id', '>=', $position_id)->count();
$list = $builder->paginate($perPage, [], 'page', ceil($position_count / $perPage));
} else {
$list = $builder->paginate($perPage);
}
//
if ($dialog->type == 'group' && $dialog->group_type == 'task') {
$user->task_dialog_id = $dialog->id;
$user->save();
}
// 去掉标记未读
$isMarkDialogUser = WebSocketDialogUser::whereDialogId($dialog->id)->whereUserid($user->userid)->whereMarkUnread(1)->first();
if ($isMarkDialogUser) {
$isMarkDialogUser->mark_unread = 0;
$isMarkDialogUser->save();
}
//
$data = $list->toArray();
if ($list->currentPage() === 1) {
$data['dialog'] = $dialog->formatData($user->userid);
}
return Base::retSuccess('success', $data);
}
/**
* @api {get} api/dialog/msg/list 07. 获取消息列表(新)
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup dialog
* @apiName msg__list
*
* @apiParam {Number} dialog_id 对话ID
* @apiParam {String} [position_id] 此消息ID前后的数据优先级1
* @apiParam {Number} [prev_id] 此消息ID之前的数据优先级2
* @apiParam {Number} [next_id] 此消息ID之后的数据优先级3
@ -224,8 +287,9 @@ class DialogController extends AbstractController
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function msg__lists()
public function msg__list()
{
Base::checkClientVersion('0.18.12');
$user = User::auth();
//
$dialog_id = intval(Request::input('dialog_id'));
@ -298,7 +362,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/unread 07. 获取未读消息数量
* @api {get} api/dialog/msg/unread 08. 获取未读消息数量
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -331,7 +395,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/sendtext 08. 发送消息
* @api {post} api/dialog/msg/sendtext 09. 发送消息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -404,7 +468,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/sendrecord 09. 发送语音
* @api {post} api/dialog/msg/sendrecord 10. 发送语音
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -453,7 +517,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/sendfile 10. 文件上传
* @api {post} api/dialog/msg/sendfile 11. 文件上传
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -539,7 +603,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/readlist 11. 获取消息阅读情况
* @api {get} api/dialog/msg/readlist 12. 获取消息阅读情况
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -568,7 +632,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/detail 12. 消息详情
* @api {get} api/dialog/msg/detail 13. 消息详情
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -616,7 +680,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/download 13. 文件下载
* @api {get} api/dialog/msg/download 14. 文件下载
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -656,7 +720,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/withdraw 14. 聊天消息撤回
* @api {get} api/dialog/msg/withdraw 15. 聊天消息撤回
*
* @apiDescription 消息撤回限制24小时内需要token身份
* @apiVersion 1.0.0
@ -682,7 +746,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/mark 15. 消息标记操作
* @api {get} api/dialog/msg/mark 16. 消息标记操作
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -734,7 +798,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/forward 16. 转发消息给
* @api {get} api/dialog/msg/forward 17. 转发消息给
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -769,7 +833,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/emoji 17. emoji回复
* @api {get} api/dialog/msg/emoji 18. emoji回复
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -805,7 +869,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/top 18. 会话置顶
* @api {get} api/dialog/top 19. 会话置顶
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -835,7 +899,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/add 19. 新增群组
* @api {get} api/dialog/group/add 20. 新增群组
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -887,7 +951,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/edit 20. 修改群组
* @api {get} api/dialog/group/edit 21. 修改群组
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -926,7 +990,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/adduser 21. 添加群成员
* @api {get} api/dialog/group/adduser 22. 添加群成员
*
* @apiDescription 需要token身份
* - 有群主时:只有群主可以邀请
@ -962,7 +1026,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/deluser 22. 移出(退出)群成员
* @api {get} api/dialog/group/deluser 23. 移出(退出)群成员
*
* @apiDescription 需要token身份
* - 只有群主、邀请人可以踢人
@ -1006,7 +1070,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/disband 23. 解散群组
* @api {get} api/dialog/group/disband 24. 解散群组
*
* @apiDescription 需要token身份
* - 只有群主且是个人类型群可以解散

View File

@ -107,7 +107,7 @@ class Base
public static function checkClientVersion($min)
{
if (version_compare(Base::getClientVersion(), $min, '<')) {
throw new ApiException('当前版本 (v' . Base::getClientVersion() . ') 过低');
throw new ApiException('当前版本 (v' . Base::getClientVersion() . ') 过低,最低版本要求 (v' . $min . ')。');
}
}

View File

@ -1,6 +1,6 @@
{
"name": "DooTask",
"version": "0.18.1",
"version": "0.18.12",
"description": "DooTask is task management system.",
"scripts": {
"start": "./cmd dev",

File diff suppressed because one or more lines are too long

2
public/js/app.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
f252c016b432380a
e40297e47dd78dda

View File

@ -130,7 +130,7 @@
<script>
import WCircle from "../../../components/WCircle";
import {mapState} from "vuex";
import {mapGetters, mapState} from "vuex";
import {Store} from "le5le-store";
import longpress from "../../../directives/longpress";
import {textMsgFormat, msgSimpleDesc} from "../../../functions/utils";
@ -180,13 +180,13 @@ export default {
computed: {
...mapState(['loads', 'audioPlaying', 'windowActive']),
...mapGetters(['isLoad']),
isLoading() {
if (!this.msgData.created_at) {
return true;
}
const load = this.loads.find(({key}) => key === `msg-${this.msgData.id}`);
return load && load.num > 0
return this.isLoad(`msg-${this.msgData.id}`)
},
viewClass() {

View File

@ -9,7 +9,7 @@
</template>
<script>
import {mapState} from "vuex";
import {mapGetters, mapState} from "vuex";
export default {
name: "TaskMenu",
@ -51,13 +51,13 @@ export default {
},
computed: {
...mapState(['loads', 'taskFlows']),
...mapGetters(['isLoad']),
loadIng() {
if (this.loadStatus) {
return true;
}
const load = this.loads.find(({key}) => key === `task-${this.task.id}`);
return load && load.num > 0
return this.isLoad(`task-${this.task.id}`)
},
},
methods: {

View File

@ -71,7 +71,7 @@
</template>
<script>
import {mapState} from "vuex";
import {mapGetters, mapState} from "vuex";
export default {
name: "TaskOperation",
@ -97,13 +97,13 @@ export default {
},
computed: {
...mapState(['loads', 'taskOperation', 'taskColorList', 'taskFlows', 'taskFlowItems']),
...mapGetters(['isLoad']),
loadIng() {
if (this.loadStatus) {
return true;
}
const load = this.loads.find(({key}) => key === `task-${this.task.id}`);
return load && load.num > 0
return this.isLoad(`task-${this.task.id}`)
},
flow() {

View File

@ -2203,7 +2203,7 @@ export default {
dispatch("setLoad", loadKey)
//
dispatch("call", {
url: 'dialog/msg/lists',
url: 'dialog/msg/list',
data,
complete: _ => dispatch("cancelLoad", loadKey)
}).then(result => {