new files

This commit is contained in:
panchengyong
2026-03-07 22:29:07 +08:00
parent cd7e80b502
commit 7acbf45ff7
12516 changed files with 1808447 additions and 194 deletions

View File

@@ -0,0 +1,207 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\model\community;
use app\services\community\CommunityRelevanceServices;
use app\services\user\UserServices;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 社区内容Model
* Class Community
* @package app\model\activity\seckill
*/
class Community extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'community';
/**
* 关联话题ID
* @param $value
* @return false|string
*/
protected function setTopicIdAttr($value)
{
if ($value) {
return is_array($value) ? implode(',', $value) : $value;
}
return '';
}
public function getAddTimeAttr($value)
{
return $value ? date('Y-m-d H:i', $value) : '';
}
public function getVerifyTimeAttr($value)
{
return $value ? date('Y-m-d H:i', $value) : '';
}
/**
* 关联话题ID
* @param $value
* @return mixed
*/
protected function getTopicIdAttr($value)
{
if ($value) {
return is_string($value) ? explode(',', $value) : $value;
}
return [];
}
public function product()
{
return $this->hasMany(CommunityRelevance::class,'left_id','id')->where('type',CommunityRelevanceServices::TYPE_COMMUNITY_PRODUCT);
}
public function topic()
{
return $this->hasMany(CommunityRelevance::class,'left_id','id')->where('type',CommunityRelevanceServices::TYPE_COMMUNITY_TOPIC);
}
public function relevance()
{
return $this->hasMany(CommunityRelevance::class,'left_id','id')->whereIn('type',[CommunityRelevanceServices::TYPE_COMMUNITY_PRODUCT,CommunityRelevanceServices::TYPE_COMMUNITY_TOPIC]);
}
/**
* 轮播图获取器
* @param $value
* @return array|mixed
*/
public function getSliderImageAttr($value)
{
return is_string($value) ? json_decode($value, true) : [];
}
public function searchIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('id', $value);
} else {
if ($value !== '') $query->where('id', $value);
}
}
/**
* 商户搜索器
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('type', $value);
} else {
if ($value !== '') $query->where('type', $value);
}
}
/**
* 关联门店ID、供应商ID搜索器
* @param Model $query
* @param $value
*/
public function searchRelationIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('relation_id', $value);
} else {
if ($value !== '') $query->where('relation_id', $value);
}
}
/**
* 内容类型搜索器
* @param Model $query
* @param $value
*/
public function searchContentTypeAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('content_type', $value);
} else {
if ($value !== '') $query->where('content_type', $value);
}
}
/**
* 推荐指数搜索器
* @param Model $query
* @param $value
* @param $data
*/
public function searchStarAttr($query, $value, $data)
{
if ($value !== '') $query->where('star', $value ?? 1);
}
/**
* 状态搜索器
* @param Model $query
* @param $value
* @param $data
*/
public function searchStatusAttr($query, $value, $data)
{
if ($value !== '') $query->where('status', $value ?? 1);
}
/**
* 推荐搜索器
* @param Model $query
* @param $value
* @param $data
*/
public function searchIsRecommendAttr($query, $value, $data)
{
if ($value !== '') $query->where('is_recommend', $value ?? 1);
}
/**
* 是否审核搜索器
* @param $query
* @param $value
*/
public function searchIsVerifyAttr($query, $value)
{
if ($value !== ''){
$query->where('is_verify', $value);
}
}
/**
* 是否删除搜索器
* @param Model $query
* @param $value
* @param $data
*/
public function searchIsDelAttr($query, $value, $data)
{
if ($value !== '') $query->where('is_del', $value ?? 0);
}
}

View File

@@ -0,0 +1,236 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\model\community;
use app\model\user\User;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 社区评价Model
* Class CommunityComment
* @package app\model\activity\video
*/
class CommunityComment extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'community_comment';
/**
* @var bool
*/
protected $autoWriteTimestamp = false;
public function getAddTimeAttr($value)
{
return $value ? date('Y-m-d H:i', $value) : '';
}
/**
* 一对一关联
* 社区内容评论关联社区内容
* @return \think\model\relation\HasOne
*/
public function community()
{
return $this->hasOne(Community::class, 'id', 'community_id');
}
/**
* 一对一关联
* 社区内容评论关联社区内容
* @return \think\model\relation\HasOne
*/
public function communityTitle()
{
return $this->hasOne(Community::class, 'id', 'community_id')->field('id,title')->bind(['title']);
}
/**
* 一对一关联
* 社区内容评论关联用户
* @return \think\model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid');
}
/**
* 一对一关联
* 社区内容评论关联用户
* @return \think\model\relation\HasOne
*/
public function userVip()
{
return $this->hasOne(User::class, 'uid', 'uid')->field('uid,avatar,nickname,is_money_level')->bind(['is_money_level']);
}
/**
* 管理回复
* @return \think\model\relation\HasOne
*/
public function reply()
{
return $this->hasOne(self::class, 'pid', 'id')->where('is_del', 0)->where('uid', 0);
}
/**
* 管理回复
* @return \think\model\relation\HasOne
*/
public function replyContent()
{
return $this->hasOne(self::class, 'pid', 'id')->field('id,pid,content')->where('is_del', 0)->where('uid', 0)->bind(['reply' => 'content']);
}
/**
* @return \think\model\relation\hasMany
*/
public function children()
{
return $this->hasMany(self::class, 'pid', 'id')->where('is_del', 0);
}
public function searchIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('id', $value);
} else {
if ($value !== '') $query->where('id', $value);
}
}
/**
* 搜索器
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('type', $value);
} else {
if ($value !== '') $query->where('type', $value);
}
}
/**
* 社区内容ID搜索器
* @param Model $query
* @param $value
*/
public function searchCommunityIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('community_id', $value);
} else {
if ($value) $query->where('community_id', $value);
}
}
/**
* UID搜索器
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('uid', $value);
} else {
if ($value !== '') $query->where('uid', $value);
}
}
/**
* is_reply搜索器
* @param Model $query
* @param $value
*/
public function searchIsReplyAttr($query, $value)
{
if ($value !== '') $query->where('is_reply', $value);
}
/**
* is_del搜索器
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') $query->where('is_del', $value);
}
/**
* 帖子评论
* @param $query
* @param $value
* @return void
* User: liusl
* DateTime: 2024/8/19 11:15
*/
public function searchReplyIdAttr($query, $value)
{
if (is_array($value)) {
$query->whereIn('reply_id', $value);
} else {
if ($value !== '') $query->where('reply_id', $value);
}
}
/**
* 评论回复
* @param $query
* @param $value
* @return void
* User: liusl
* DateTime: 2024/8/19 11:15
*/
public function searchCommentReplyIdAttr($query, $value)
{
if ($value !== '') $query->where('comment_reply_id', $value);
}
// /**
// * 是否审核
// * @param $query
// * @param $value
// * @return void
// * User: liusl
// * DateTime: 2024/8/19 11:16
// */
// public function searchIsVerifyAttr($query, $value)
// {
// if ($value !== '') $query->where('is_verify', $value);
// }
}

View File

@@ -0,0 +1,146 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\model\community;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* 社区记录Model
* Class CommunityRecord
* @package app\model\community
*/
class CommunityRecord extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'community_record';
/**
* 关联用户搜索器
* @param $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if ($value !== '') {
$query->where('uid', $value);
}
}
/**
* 关联用户搜索器
* @param $query
* @param $value
*/
public function searchRelationIdAttr($query, $value)
{
if ($value !== '') {
$query->where('relation_id', $value);
}
}
/**
* 类型搜索器
* @param $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if ($value !== '') {
$query->where('type', $value);
}
}
/**
* 关联帖子搜索器
* @param $query
* @param $value
*/
public function searchPostIdAttr($query, $value)
{
if ($value !== '') {
$query->where('post_id', $value);
}
}
/**
* 关联评论搜索器
* @param $query
* @param $value
*/
public function searchCommentIdAttr($query, $value)
{
if ($value !== '') {
$query->where('comment_id', $value);
}
}
/**
* 评论类型搜索器
* @param $query
* @param $value
*/
public function searchCommentTypeAttr($query, $value)
{
if ($value !== '') {
$query->where('comment_type', $value);
}
}
/**
* 内容搜索器
* @param $query
* @param $value
*/
public function searchContentAttr($query, $value)
{
if ($value !== '') {
$query->whereLike('content', "%{$value}%");
}
}
/**
* 是否已查看搜索器
* @param $query
* @param $value
*/
public function searchIsViewedAttr($query, $value)
{
if ($value !== '') {
$query->where('is_viewed', $value);
}
}
/**
* 添加时间搜索器
* @param $query
* @param $value
*/
public function searchAddTimeAttr($query, $value)
{
if ($value !== '') {
$query->where('add_time', $value);
}
}
}

View File

@@ -0,0 +1,127 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\model\community;
use app\model\product\product\StoreProduct;
use app\model\user\User;
use app\services\community\CommunityRelevanceServices;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 社区关联Model
* Class CommunityTopic
* @package app\model\community
*/
class CommunityRelevance extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'community_relevance';
public function product()
{
$where = ['is_show' => 1, 'is_del' => 0, 'is_verify' => 1];
return $this->hasOne(StoreProduct::class, 'id', 'right_id')->where($where)->field('id,price,store_name,image,stock');
}
public function topic()
{
$where = ['is_del' => 0, 'status' => 1];
return $this->hasOne(CommunityTopic::class, 'id', 'right_id')->where($where)->field('id,name');
}
public function community()
{
return $this->hasOne(Community::class, 'id', 'right_id');
}
public function communityUser()
{
return $this->hasOne(CommunityUser::class, 'relation_id', 'right_id');
}
public function communityFans()
{
return $this->hasOne(CommunityUser::class, 'relation_id', 'left_id');
}
/**
* 搜索器
* @param Model $query
* @param $value
*/
public function searchLeftIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) {
$query->whereIn('left_id', $value);
}
} else {
if ($value !== '') {
$query->where('left_id', $value);
}
}
}
/**
* 搜索器
* @param $query
* @param $value
* @return void
* User: liusl
* DateTime: 2024/8/7 11:13
*/
public function searchRightIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) {
$query->whereIn('right_id', $value);
}
} else {
if ($value !== '') {
$query->where('right_id', $value);
}
}
}
/**
* 搜索器
* @param $query
* @param $value
* @return void
* User: liusl
* DateTime: 2024/8/7 11:13
*/
public function searchTypeAttr($query, $value)
{
if (is_array($value)) {
if ($value) {
$query->whereIn('type', $value);
}
} else {
if ($value !== '') {
$query->where('type', $value);
}
}
}
}

View File

@@ -0,0 +1,118 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\model\community;
use app\model\user\User;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 社区话题Model
* Class CommunityTopic
* @package app\model\community
*/
class CommunityTopic extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'community_topic';
/**
* @var bool
*/
protected $autoWriteTimestamp = false;
public function searchIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('id', $value);
} else {
if ($value !== '') $query->where('id', $value);
}
}
/**
* 商户搜索器
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('type', $value);
} else {
if ($value !== '') $query->where('type', $value);
}
}
/**
* 关联门店ID、供应商ID搜索器
* @param Model $query
* @param $value
*/
public function searchRelationIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('relation_id', $value);
} else {
if ($value !== '') $query->where('relation_id', $value);
}
}
/**
* status搜索器
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
if ($value !== '') $query->where('status', $value);
}
/**
* is_recommend搜索器
* @param Model $query
* @param $value
*/
public function searchIsRecommendAttr($query, $value)
{
if ($value !== '') $query->where('is_recommend', $value);
}
/**
* is_del搜索器
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') $query->where('is_del', $value);
}
public function searchNameAttr($query, $value)
{
if ($value !== '') {
$query->whereLike('name', "%{$value}%");
}
}
}

View File

@@ -0,0 +1,133 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\model\community;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 社区用户Model
* Class CommunityUser
* @package app\model\community
*/
class CommunityUser extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'community_user';
/**
* @var bool
*/
protected $autoWriteTimestamp = false;
protected $insert = ['add_time'];
protected function setAddTimeAttr()
{
return time();
}
/**
* 用户关联帖子
* @return \think\model\relation\HasMany
* User: liusl
* DateTime: 2024/8/26 15:44
*/
public function community()
{
$where = [
'status' => 1,
'is_del' => 0,
'is_verify'=>1
];
return $this->hasMany(Community::class, 'relation_id', 'relation_id')->where($where)->field('id,content_type,image,relation_id');
}
/**
* 商户搜索器
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('type', $value);
} else {
if ($value !== '') $query->where('type', $value);
}
}
/**
* 关联门店ID、供应商ID搜索器
* @param Model $query
* @param $value
*/
public function searchRelationIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereIn('relation_id', $value);
} else {
if ($value !== '') $query->where('relation_id', $value);
}
}
/**
* status搜索器
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
if ($value !== '') $query->where('status', $value);
}
/**
* is_del搜索器
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') $query->where('is_del', $value);
}
/**
* 用户ID搜索器
* @param $query
* @param $value
* @return void
* User: liusl
* DateTime: 2024/8/26 15:44
*/
public function searchNotRelationIdAttr($query, $value)
{
if (is_array($value)) {
if ($value) $query->whereNotIn('relation_id', $value);
} else {
if ($value !== '') $query->where('relation_id', '<>', $value);
}
}
}