优化代码
parent
649a90ca0e
commit
d07ae5203f
|
@ -64,7 +64,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
|
||||||
|
|
||||||
// 若开启单点登录,则主动关闭之前登录的连接
|
// 若开启单点登录,则主动关闭之前登录的连接
|
||||||
if ($isOnline) {
|
if ($isOnline) {
|
||||||
// TODO 预留
|
// todo 预留
|
||||||
}
|
}
|
||||||
|
|
||||||
// 绑定fd与用户关系
|
// 绑定fd与用户关系
|
||||||
|
|
|
@ -102,35 +102,6 @@ abstract class BaseRepository
|
||||||
return $this->toPaginate($model, $fields, $page, $size);
|
return $this->toPaginate($model, $fields, $page, $size);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过 model 读取分页信息
|
|
||||||
*
|
|
||||||
* @param Builder $model 查询 Model
|
|
||||||
* @param array $fields 查询字段
|
|
||||||
* @param int $page 当前分页
|
|
||||||
* @param int $size 分页大小
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function toPaginate(Builder $model, array $fields = ['*'], int $page = 1, int $size = 15): array
|
|
||||||
{
|
|
||||||
$total = $model->count();
|
|
||||||
|
|
||||||
$data = [
|
|
||||||
'rows' => [],
|
|
||||||
'paginate' => [
|
|
||||||
'page' => $page,
|
|
||||||
'size' => $size,
|
|
||||||
'total' => $total,
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
if ($total > 0) {
|
|
||||||
$data['rows'] = $model->forPage($page, $size)->get($fields)->toArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据条件更新数据
|
* 根据条件更新数据
|
||||||
*
|
*
|
||||||
|
@ -176,6 +147,17 @@ abstract class BaseRepository
|
||||||
return $this->buildWhere($where)->update($data);
|
return $this->buildWhere($where)->update($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除数据
|
||||||
|
*
|
||||||
|
* @param array $where 删除的条件
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
final public function delete(array $where): array
|
||||||
|
{
|
||||||
|
return $this->buildWhere($where)->delete();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 打印查询 sql
|
* 打印查询 sql
|
||||||
*
|
*
|
||||||
|
@ -199,4 +181,33 @@ abstract class BaseRepository
|
||||||
{
|
{
|
||||||
return Db::select($query, $bindings, $useReadPdo);
|
return Db::select($query, $bindings, $useReadPdo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过 model 读取分页信息
|
||||||
|
*
|
||||||
|
* @param Builder $model 查询 Model
|
||||||
|
* @param array $fields 查询字段
|
||||||
|
* @param int $page 当前分页
|
||||||
|
* @param int $size 分页大小
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function toPaginate(Builder $model, array $fields = ['*'], int $page = 1, int $size = 15): array
|
||||||
|
{
|
||||||
|
$total = $model->count();
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'rows' => [],
|
||||||
|
'paginate' => [
|
||||||
|
'page' => $page,
|
||||||
|
'size' => $size,
|
||||||
|
'total' => $total,
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($total > 0) {
|
||||||
|
$data['rows'] = $model->forPage($page, $size)->get($fields)->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\Service;
|
namespace App\Service;
|
||||||
|
|
||||||
|
@ -17,9 +18,10 @@ class TalkListService
|
||||||
* @param int $user_id 用户ID
|
* @param int $user_id 用户ID
|
||||||
* @param int $receiver_id 接收者ID
|
* @param int $receiver_id 接收者ID
|
||||||
* @param int $talk_type 创建类型[1:私聊;2:群聊;]
|
* @param int $talk_type 创建类型[1:私聊;2:群聊;]
|
||||||
|
* @param bool $is_robot
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function create(int $user_id, int $receiver_id, int $talk_type, bool $is_robot = false)
|
public function create(int $user_id, int $receiver_id, int $talk_type, bool $is_robot = false): array
|
||||||
{
|
{
|
||||||
$result = TalkList::updateOrCreate([
|
$result = TalkList::updateOrCreate([
|
||||||
'talk_type' => $talk_type,
|
'talk_type' => $talk_type,
|
||||||
|
@ -49,7 +51,7 @@ class TalkListService
|
||||||
* @param bool $is_top 是否置顶(true:是 false:否)
|
* @param bool $is_top 是否置顶(true:是 false:否)
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function top(int $user_id, int $list_id, $is_top = true)
|
public function top(int $user_id, int $list_id, $is_top = true): bool
|
||||||
{
|
{
|
||||||
return (bool)TalkList::query()->where([
|
return (bool)TalkList::query()->where([
|
||||||
['id', '=', $list_id],
|
['id', '=', $list_id],
|
||||||
|
@ -67,7 +69,7 @@ class TalkListService
|
||||||
* @param int $list_id 会话列表ID
|
* @param int $list_id 会话列表ID
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function delete(int $user_id, int $list_id)
|
public function delete(int $user_id, int $list_id): bool
|
||||||
{
|
{
|
||||||
return (bool)TalkList::query()->where([
|
return (bool)TalkList::query()->where([
|
||||||
['id', '=', $list_id],
|
['id', '=', $list_id],
|
||||||
|
@ -86,7 +88,7 @@ class TalkListService
|
||||||
* @param int $talk_type 对话类型
|
* @param int $talk_type 对话类型
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function deleteByType(int $user_id, int $receiver_id, int $talk_type)
|
public function deleteByType(int $user_id, int $receiver_id, int $talk_type): bool
|
||||||
{
|
{
|
||||||
return (bool)TalkList::query()->where([
|
return (bool)TalkList::query()->where([
|
||||||
['user_id', '=', $user_id],
|
['user_id', '=', $user_id],
|
||||||
|
@ -104,7 +106,7 @@ class TalkListService
|
||||||
* @param int $user_id 用户ID
|
* @param int $user_id 用户ID
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getTalkList(int $user_id)
|
public function getTalkList(int $user_id): array
|
||||||
{
|
{
|
||||||
$filed = [
|
$filed = [
|
||||||
'list.id', 'list.talk_type', 'list.receiver_id', 'list.updated_at', 'list.is_disturb', 'list.is_top',
|
'list.id', 'list.talk_type', 'list.receiver_id', 'list.updated_at', 'list.is_disturb', 'list.is_top',
|
||||||
|
@ -168,7 +170,7 @@ class TalkListService
|
||||||
* @param int $is_disturb 是否免打扰[0:否;1:是;]
|
* @param int $is_disturb 是否免打扰[0:否;1:是;]
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function disturb(int $user_id, int $receiver_id, int $talk_type, int $is_disturb)
|
public function disturb(int $user_id, int $receiver_id, int $talk_type, int $is_disturb): bool
|
||||||
{
|
{
|
||||||
$result = TalkList::query()->where([
|
$result = TalkList::query()->where([
|
||||||
['user_id', '=', $user_id],
|
['user_id', '=', $user_id],
|
||||||
|
@ -194,7 +196,7 @@ class TalkListService
|
||||||
* @param int $talk_type 对话类型[1:私信;2:群聊;]
|
* @param int $talk_type 对话类型[1:私信;2:群聊;]
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function isDisturb(int $user_id, int $receiver_id, int $talk_type)
|
public function isDisturb(int $user_id, int $receiver_id, int $talk_type): bool
|
||||||
{
|
{
|
||||||
return (bool)TalkList::query()->where([
|
return (bool)TalkList::query()->where([
|
||||||
['user_id', '=', $user_id],
|
['user_id', '=', $user_id],
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
use App\Helper\Hash;
|
use App\Helper\HashHelper;
|
||||||
use Hyperf\Database\Seeders\Seeder;
|
use Hyperf\Database\Seeders\Seeder;
|
||||||
use App\Model\User;
|
use App\Model\User;
|
||||||
use App\Model\Article\ArticleClass;
|
use App\Model\Article\ArticleClass;
|
||||||
|
@ -27,7 +27,7 @@ class Initialize extends Seeder
|
||||||
for ($i = 0; $i < 9; $i++) {
|
for ($i = 0; $i < 9; $i++) {
|
||||||
$users[] = [
|
$users[] = [
|
||||||
'mobile' => '1879827205' . $i,
|
'mobile' => '1879827205' . $i,
|
||||||
'password' => Hash::make('admin123'),
|
'password' => HashHelper::make('admin123'),
|
||||||
'nickname' => 'test' . $i,
|
'nickname' => 'test' . $i,
|
||||||
'created_at' => date('Y-m-d H:i:s'),
|
'created_at' => date('Y-m-d H:i:s'),
|
||||||
'updated_at' => date('Y-m-d H:i:s')
|
'updated_at' => date('Y-m-d H:i:s')
|
||||||
|
|
Loading…
Reference in New Issue