new files
This commit is contained in:
134
pro_v3.5.1/app/dao/community/CommunityCommentDao.php
Normal file
134
pro_v3.5.1/app/dao/community/CommunityCommentDao.php
Normal file
@@ -0,0 +1,134 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\dao\community;
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\community\CommunityComment;
|
||||
use crmeb\basic\BaseModel;
|
||||
|
||||
/**
|
||||
* 社区评论
|
||||
* Class CommunityCommentDao
|
||||
* @package app\dao\community
|
||||
*/
|
||||
class CommunityCommentDao extends BaseDao
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return CommunityComment::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $where
|
||||
* @param bool $search
|
||||
* @return BaseModel
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public function search(array $where = [], bool $search = false)
|
||||
{
|
||||
$keyword = $where['keyword'] ?? '';
|
||||
$fieldKey = $where['field_key'] ?? '';
|
||||
$fieldKey = in_array($fieldKey, ['user', 'community', 'comment', 'id']) ? $fieldKey : '';
|
||||
/** field_key
|
||||
* user
|
||||
* community
|
||||
* comment
|
||||
* id
|
||||
*/
|
||||
return parent::search($where, $search)
|
||||
->when(isset($where['author_uid']), function ($query) use ($where) {
|
||||
if ($where['author_uid'] == 0) {
|
||||
$query->where('is_show', 1);
|
||||
}
|
||||
|
||||
})
|
||||
->when($keyword !== '' && $fieldKey !== '', function ($query) use ($fieldKey, $keyword) {
|
||||
switch ($fieldKey) {
|
||||
case 'user':
|
||||
$query->whereIn('uid', function ($query) use ($keyword) {
|
||||
$query->name('user')->whereLike('nickname', '%' . $keyword . '%')->field('uid');
|
||||
});
|
||||
break;
|
||||
case 'community':
|
||||
$query->whereIn('community_id', function ($query) use ($keyword) {
|
||||
$query->name('community')->whereLike('title|content', '%' . $keyword . '%')->field('id');
|
||||
});
|
||||
break;
|
||||
case 'comment':
|
||||
$query->whereLike('content', '%' . $keyword . '%');
|
||||
break;
|
||||
case 'id':
|
||||
$query->where('id', $keyword);
|
||||
}
|
||||
|
||||
})->when(isset($where['is_verify']) && $where['is_verify'] !== '', function ($query) use ($where) {
|
||||
if (isset($where['author_uid'])) {
|
||||
$query->where(function ($query) use ($where) {
|
||||
if ($where['author_uid'] == 0) {
|
||||
$query->where('is_verify', 1);
|
||||
} else {
|
||||
$query->where(function ($query) use ($where) {
|
||||
// 条件一:uid 等于 author_uid,且 is_verify 为 0 或 1
|
||||
$query->where('uid', $where['author_uid'])
|
||||
->whereIn('is_verify', [0, 1]);
|
||||
})->whereOr(function ($query) use ($where) {
|
||||
// 条件二:uid 不等于 author_uid,且 is_verify 为 1
|
||||
$query->where('uid', '<>', $where['author_uid'])
|
||||
->where('is_verify', 1);
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$query->where('is_verify', $where['is_verify']);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取评论数量
|
||||
* @param array $where 查询条件
|
||||
* @return int
|
||||
*/
|
||||
public function count($where = []): int
|
||||
{
|
||||
return $this->search($where)->count();
|
||||
}
|
||||
|
||||
/**
|
||||
* 评论列表
|
||||
* @param array $where
|
||||
* @param string $field
|
||||
* @param array $with
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getList(array $where, string $field = '*', array $with = [], int $page = 0, int $limit = 0, $order = 'add_time DESC')
|
||||
{
|
||||
return $this->search($where)->field($field)
|
||||
->when($with, function ($query) use ($with) {
|
||||
$query->with($with);
|
||||
})->when($page != 0 && $limit != 0, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->order($order)->select()->toArray();
|
||||
}
|
||||
|
||||
}
|
||||
135
pro_v3.5.1/app/dao/community/CommunityDao.php
Normal file
135
pro_v3.5.1/app/dao/community/CommunityDao.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\dao\community;
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\community\Community;
|
||||
use app\services\community\CommunityRelevanceServices;
|
||||
use crmeb\basic\BaseModel;
|
||||
|
||||
/**
|
||||
* 社区
|
||||
* Class CommunityDao
|
||||
* @package app\dao\community
|
||||
*/
|
||||
class CommunityDao extends BaseDao
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return Community::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $where
|
||||
* @param bool $search
|
||||
* @return BaseModel
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public function search(array $where = [], bool $search = false)
|
||||
{
|
||||
return parent::search($where, $search)
|
||||
->when(isset($where['keyword']) && $where['keyword'], function ($query) use ($where) {
|
||||
$query->where(function ($query) use ($where) {
|
||||
$query->whereLike('title|id', "%{$where['keyword']}%");
|
||||
});
|
||||
// ->whereOr(function ($query) use ($where) {
|
||||
// //商品
|
||||
// $query->whereIn('id', function ($product) use ($where) {
|
||||
// $product->name('community_relevance')->where('type', CommunityRelevanceServices::TYPE_COMMUNITY_PRODUCT)->whereIn('right_id',
|
||||
// function ($q) use ($where) {
|
||||
// $q->name('store_product')->whereLike('store_name|keyword', "%{$where['keyword']}%")->field('id');
|
||||
// }
|
||||
// )->field('left_id');
|
||||
// });
|
||||
// })->whereOr(function ($query) use ($where) {
|
||||
// //用户
|
||||
// $query->whereIn('relation_id', function ($user) use ($where) {
|
||||
// $user->name('user')->whereLike('nickname', "%{$where['keyword']}%")->field('uid');
|
||||
// });
|
||||
// });
|
||||
})
|
||||
->when(isset($where['topic_id']) && $where['topic_id'], function ($query) use ($where) {
|
||||
$topicIds = is_array($where['topic_id']) ? $where['topic_id'] : [$where['topic_id']];
|
||||
$query->whereIn('id', function ($topic) use ($topicIds) {
|
||||
$topic->name('community_relevance')->where('type', CommunityRelevanceServices::TYPE_COMMUNITY_TOPIC)->whereIn('right_id', $topicIds)->field('left_id');
|
||||
});
|
||||
})
|
||||
->when(isset($where['product_id']) && $where['product_id'], function ($query) use ($where) {
|
||||
$productIds = is_array($where['product_id']) ? $where['product_id'] : [$where['product_id']];
|
||||
$query->whereIn('id', function ($product) use ($productIds) {
|
||||
$product->name('community_relevance')->where('type', CommunityRelevanceServices::TYPE_COMMUNITY_PRODUCT)->whereIn('right_id', $productIds)->field('left_id');
|
||||
});
|
||||
})
|
||||
->when(isset($where['is_follow']) && $where['is_follow'], function ($query) use ($where) {
|
||||
$query->whereIn('relation_id', function ($product) use ($where) {
|
||||
$product->name('community_relevance')->where('type', CommunityRelevanceServices::TYPE_COMMUNITY_INTEREST)->where('left_id', $where['is_follow'])->field('right_id');
|
||||
});
|
||||
})
|
||||
// ->when(isset($where['order_by_id']) && $where['order_by_id'], function ($query) use ($where) {
|
||||
// $query->where('id', 'in', $where['order_by_id'])->orderField('id', $where['order_by_id']);
|
||||
// })
|
||||
->when(isset($where['notId']), function ($query) use ($where) {
|
||||
$query->where('id', '<>', $where['notId']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 社区列表
|
||||
* @param array $where
|
||||
* @param string $field
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @param string $order
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getList(array $where, string $field = '*', int $page = 0, int $limit = 0, array $with = [], string $order = 'sort desc,id desc')
|
||||
{
|
||||
return $this->search($where)->field($field)
|
||||
->when($with, function ($query) use ($with) {
|
||||
$query->with($with);
|
||||
})
|
||||
->when($page != 0 && $limit != 0, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->when($order, function ($query) use ($order) {
|
||||
if ($order == 'rand') {
|
||||
$query->orderRand();
|
||||
} else if ($order) {
|
||||
$query->order($order);
|
||||
} else {
|
||||
$query->order('sort desc,id desc');
|
||||
}
|
||||
})->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $where
|
||||
* @param string $field
|
||||
* @param int $limit
|
||||
* @return array
|
||||
* @throws \ReflectionException
|
||||
* User: liusl
|
||||
* DateTime: 2024/8/27 10:40
|
||||
*/
|
||||
public function getIdColumn(array $where, string $field, int $limit = 5): array
|
||||
{
|
||||
return $this->search($where)->limit($limit)->column($field);
|
||||
}
|
||||
}
|
||||
35
pro_v3.5.1/app/dao/community/CommunityRecordDao.php
Normal file
35
pro_v3.5.1/app/dao/community/CommunityRecordDao.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\dao\community;
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\community\CommunityRecord;
|
||||
|
||||
/**
|
||||
* 社区记录
|
||||
* Class CommunityRecordDao
|
||||
* @package app\dao\community
|
||||
*/
|
||||
class CommunityRecordDao extends BaseDao
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return CommunityRecord::class;
|
||||
}
|
||||
|
||||
}
|
||||
221
pro_v3.5.1/app/dao/community/CommunityRelevanceDao.php
Normal file
221
pro_v3.5.1/app/dao/community/CommunityRelevanceDao.php
Normal file
@@ -0,0 +1,221 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\dao\community;
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\community\CommunityRelevance;
|
||||
use app\services\community\CommunityRelevanceServices;
|
||||
use crmeb\basic\BaseModel;
|
||||
use think\exception\ValidateException;
|
||||
|
||||
/**
|
||||
* 社区关联
|
||||
* Class CommunityTopicDao
|
||||
* @package app\dao\community
|
||||
*/
|
||||
class CommunityRelevanceDao extends BaseDao
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return CommunityRelevance::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $where
|
||||
* @param bool $search
|
||||
* @return BaseModel
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public function search(array $where = [], bool $search = false)
|
||||
{
|
||||
return parent::search($where, $search);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关联社区列表查询
|
||||
* @param array $where 查询条件
|
||||
* @param int $page 页码
|
||||
* @param int $limit 每页数量
|
||||
* @param string $condition 关联条件字段
|
||||
* @param string $order 排序
|
||||
* @return array
|
||||
*/
|
||||
public function joinCommunityList(array $where = [], $page = 0, $limit = 0, $condition = 'right_id', $order = 'r.id DESC')
|
||||
{
|
||||
return $this->joinCommunity($where, $condition)
|
||||
->field('r.*,c.id as c_id,c.type as c_type,c.title,c.image,c.relation_id,c.content_type,c.like_num,c.slider_image')
|
||||
->when($limit, function ($query) use ($page, $limit) {
|
||||
if ($page) {
|
||||
$query->page($page, $limit);
|
||||
} else {
|
||||
$query->limit($limit);
|
||||
}
|
||||
})
|
||||
->order($order)
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 关联社区查询
|
||||
* @param array $where 查询条件
|
||||
* @param string $condition 关联条件字段
|
||||
* @return \think\db\BaseQuery
|
||||
*/
|
||||
public function joinCommunity(array $where = [], $condition = 'right_id')
|
||||
{
|
||||
return $this->getModel()->alias('r')
|
||||
->join('community c', "r.{$condition}=c.id")
|
||||
->when(isset($where['keyword']) && $where['keyword'], function ($query) use ($where) {
|
||||
$query->where(function ($query) use ($where) {
|
||||
$query->whereLike('c.title|c.content', "%{$where['keyword']}%");
|
||||
})->whereOr(function ($query) use ($where) {
|
||||
//商品
|
||||
$query->whereIn('c.id', function ($product) use ($where) {
|
||||
$productIds = name('product')->where('store_name|keyword', "%{$where['keyword']}%")->column('id');
|
||||
$product->name('community_relevance')->where('type', CommunityRelevanceServices::TYPE_COMMUNITY_PRODUCT)->whereIn('right_id', $productIds)->field('left_id');
|
||||
});
|
||||
})->whereOr(function ($query) use ($where) {
|
||||
//用户
|
||||
$query->whereIn('c.relation_id', function ($user) use ($where) {
|
||||
$user->name('user')->where('nickname', "%{$where['keyword']}%")->field('uid');
|
||||
});
|
||||
});
|
||||
})
|
||||
->where('c.is_verify', 1)->where('c.is_del', 0)->where('c.status', 1)
|
||||
//用户
|
||||
->when(isset($where['uid']) && $where['uid'], function ($query) use ($where) {
|
||||
$query->where('r.left_id', $where['uid'])->where('r.type', CommunityRelevanceServices::TYPE_COMMUNITY_LIKE);
|
||||
})
|
||||
//商品
|
||||
->when(isset($where['product_id']) && $where['product_id'], function ($query) use ($where) {
|
||||
$query->where('r.right_id', $where['product_id'])->where('r.type', CommunityRelevanceServices::TYPE_COMMUNITY_PRODUCT);
|
||||
})
|
||||
//话题
|
||||
->when(isset($where['topic_id']) && $where['topic_id'], function ($query) use ($where) {
|
||||
$query->where('r.right_id', $where['topic_id'])->where('r.type', CommunityRelevanceServices::TYPE_COMMUNITY_TOPIC);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
* @param int $leftId
|
||||
* @param int $rightId
|
||||
* @param string $type
|
||||
* @param bool $check
|
||||
* @return bool
|
||||
* User: liusl
|
||||
* DateTime: 2024/8/7 14:41
|
||||
*/
|
||||
public function create(int $leftId, int $rightId, string $type, bool $check = false)
|
||||
{
|
||||
if ($check && $this->checkHas($leftId, $rightId, $type)) {
|
||||
return false;
|
||||
}
|
||||
$data = [
|
||||
'left_id' => $leftId,
|
||||
'right_id' => $rightId,
|
||||
'type' => $type,
|
||||
];
|
||||
|
||||
try {
|
||||
$this->save($data);
|
||||
return true;
|
||||
} catch (\Exception $exception) {
|
||||
throw new ValidateException('创建失败');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测是否存在
|
||||
* @param int $leftId
|
||||
* @param int $rightId
|
||||
* @param string $type
|
||||
* @return mixed
|
||||
* User: liusl
|
||||
* DateTime: 2024/8/7 14:42
|
||||
*/
|
||||
public function checkHas(int $leftId, int $rightId, string $type)
|
||||
{
|
||||
return $this->search([
|
||||
'left_id' => $leftId,
|
||||
'right_id' => $rightId,
|
||||
'type' => $type,
|
||||
])->find();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据左键批量删除
|
||||
* @param $leftId
|
||||
* @param $type
|
||||
* @return mixed
|
||||
* User: liusl
|
||||
* DateTime: 2024/8/7 14:43
|
||||
*/
|
||||
public function batchDelete($leftId, $type)
|
||||
{
|
||||
return $this->search([
|
||||
'left_id' => $leftId,
|
||||
'type' => $type,
|
||||
])->delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件删除
|
||||
* @param int $leftId
|
||||
* @param int $rightId
|
||||
* @param string $type
|
||||
* @return mixed
|
||||
* User: liusl
|
||||
* DateTime: 2024/8/13 14:22
|
||||
*/
|
||||
public function destory(int $leftId, int $rightId, string $type)
|
||||
{
|
||||
return $this->search([
|
||||
'left_id' => $leftId,
|
||||
'right_id' => $rightId,
|
||||
'type' => $type,
|
||||
])->delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量插入
|
||||
* @param int $leftId
|
||||
* @param array $rightId
|
||||
* @param string $type
|
||||
* @return void
|
||||
* User: liusl
|
||||
* DateTime: 2024/8/7 14:44
|
||||
*/
|
||||
public function createMany(int $leftId, array $rightId, string $type)
|
||||
{
|
||||
if (!empty($rightId)) {
|
||||
$res = [];
|
||||
foreach ($rightId as $value) {
|
||||
$res[] = [
|
||||
'left_id' => $leftId,
|
||||
'right_id' => $value,
|
||||
'type' => $type,
|
||||
];
|
||||
}
|
||||
if (count($res) > 0) {
|
||||
$this->saveAll($res);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
59
pro_v3.5.1/app/dao/community/CommunityTopicDao.php
Normal file
59
pro_v3.5.1/app/dao/community/CommunityTopicDao.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\dao\community;
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\community\CommunityTopic;
|
||||
use crmeb\basic\BaseModel;
|
||||
|
||||
/**
|
||||
* 社区话题
|
||||
* Class CommunityTopicDao
|
||||
* @package app\dao\community
|
||||
*/
|
||||
class CommunityTopicDao extends BaseDao
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return CommunityTopic::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* 话题列表
|
||||
* @param array $where
|
||||
* @param string $field
|
||||
* @param array $with
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getList(array $where, string $field = '*', array $with = [], int $page = 0, int $limit = 0)
|
||||
{
|
||||
return $this->search($where)->field($field)
|
||||
->when($with, function ($query) use ($with) {
|
||||
$query->with($with);
|
||||
})->when($page != 0, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->order('sort desc,id desc')->select()->toArray();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
102
pro_v3.5.1/app/dao/community/CommunityUserDao.php
Normal file
102
pro_v3.5.1/app/dao/community/CommunityUserDao.php
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\dao\community;
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\community\CommunityUser;
|
||||
use crmeb\basic\BaseModel;
|
||||
|
||||
/**
|
||||
* 社区用户
|
||||
* Class CommunityUserDao
|
||||
* @package app\dao\community
|
||||
*/
|
||||
class CommunityUserDao extends BaseDao
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return CommunityUser::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $where
|
||||
* @param bool $search
|
||||
* @return BaseModel
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public function search(array $where = [], bool $search = false)
|
||||
{
|
||||
return parent::search($where, $search)->when(isset($where['name']) && $where['name'], function ($query) use ($where) {
|
||||
$query->whereLike('id|nickname', '%' . $where['name'] . '%');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param array $where
|
||||
* @param string $field
|
||||
* @param array $with
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getList(array $where, string $field = '*', array $with = [], int $page = 0, int $limit = 0, string $order = 'id DESC')
|
||||
{
|
||||
return $this->search($where)->field($field)
|
||||
->when($with, function ($query) use ($with) {
|
||||
$query->with($with);
|
||||
})
|
||||
->when(isset($where['is_community_num']), function ($query) {
|
||||
$query->where('community_num', '>', 0);
|
||||
})
|
||||
->when($page != 0 && $limit != 0, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->order($order)->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
* @param int $uid
|
||||
* @return array|mixed
|
||||
* @throws \ReflectionException
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* User: liusl
|
||||
* DateTime: 2024/8/26 15:44
|
||||
*/
|
||||
public function getUserInfo(int $uid)
|
||||
{
|
||||
|
||||
$where = [
|
||||
'is_del' => 0
|
||||
];
|
||||
if ($uid == 0) {
|
||||
$where['type'] = 0;
|
||||
$where['uid'] = 0;
|
||||
} else {
|
||||
$where['type'] = 2;
|
||||
$where['relation_id'] = $uid;
|
||||
}
|
||||
return $this->search($where)->find();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user