chore: 添加静态资源文件和版本配置文件

添加大量图片、字体、音频等静态资源文件,包括用户界面图片、模板文件和安装界面素材
添加系统版本配置文件(.version)和常量定义文件(.constant)
更新供应商依赖文件,包括Symfony VarDumper组件和相关许可证文件
添加验证码配置文件(captcha.php)和.gitignore规则
This commit is contained in:
2026-03-06 20:14:23 +08:00
commit c9a98f342c
4485 changed files with 490986 additions and 0 deletions

565
app/model/user/User.php Normal file
View File

@@ -0,0 +1,565 @@
<?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\user;
use app\model\agent\AgentLevel;
use app\model\order\StoreOrder;
use app\model\user\level\SystemUserLevel;
use app\model\user\group\UserGroup;
use app\model\user\label\UserLabel;
use app\model\user\label\UserLabelRelation;
use app\model\user\UserExtend;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
use think\model\concern\SoftDelete;
/**
* Class User
* @package app\model\user
*/
class User extends BaseModel
{
use ModelTrait;
use SoftDelete;
/**
* @var string
*/
protected $pk = 'uid';
protected $name = 'user';
protected $insert = ['add_time', 'add_ip', 'last_time', 'last_ip'];
protected $hidden = [
'add_ip', 'account', 'clean_time', 'pwd'
];
protected $deleteTime = 'delete_time';
/**
* 自动转类型
* @var string[]
*/
// protected $type = [
// 'birthday' => 'int'
// ];
protected $updateTime = false;
// protected function getPhoneAttr($value)
// {
// return $value && app('request')->hasMacro('adminInfo') && app('request')->adminInfo()['level'] != 0 ? substr_replace($value, '****', 3, 4) : $value;
// }
/**
* 更新用户事件
* @param Model $user
*/
public static function onAfterUpdate($user)
{
event('user.update');
}
protected function setAddTimeAttr($value)
{
return time();
}
protected function setAddIpAttr($value)
{
return app('request')->ip();
}
protected function setLastTimeAttr($value)
{
return time();
}
protected function setLastIpAttr($value)
{
return app('request')->ip();
}
/**
* 自定义信息
* @param $value
* @param $data
* @return mixed
*/
protected function setExtendInfoAttr($value)
{
if ($value) {
return is_array($value) ? json_encode($value) : $value;
}
return '';
}
/**
* 自定义信息
* @param $value
* @param $data
* @return mixed
*/
protected function getExtendInfoAttr($value)
{
if ($value) {
return is_string($value) ? json_decode($value, true) : $value;
}
return [];
}
/**
* 自定义会员卡信息
* @param $value
* @param $data
* @return mixed
*/
protected function setLevelExtendInfoAttr($value)
{
if ($value) {
return is_array($value) ? json_encode($value) : $value;
}
return '';
}
/**
* 自定义会员卡信息
* @param $value
* @param $data
* @return mixed
*/
protected function getLevelExtendInfoAttr($value)
{
if ($value) {
return is_string($value) ? json_decode($value, true) : $value;
}
return [];
}
/**
* 链接会员登陆设置表
* @return \think\model\relation\HasOne
*/
public function systemUserLevel()
{
return $this->hasOne(SystemUserLevel::class, 'id', 'level');
}
/**
* 关联用户分组
* @return \think\model\relation\HasOne
*/
public function userGroup()
{
return $this->hasOne(UserGroup::class, 'id', 'group_id');
}
/**
* 关联自己
* @return \think\model\relation\HasOne
*/
public function spreadUser()
{
return $this->hasOne(self::class, 'uid', 'spread_uid');
}
/**
* 关联自己
* @return \think\model\relation\HasMany
*/
public function spreadCount()
{
return $this->hasMany(UserSpread::class, 'spread_uid', 'uid');
}
/**
* 关联用户标签关系
* @return \think\model\relation\HasMany
*/
public function LabelRelation()
{
return $this->hasMany(UserLabelRelation::class, 'uid', 'uid');
}
/**
* 关联用户标签
* @return \think\model\relation\HasManyThrough
*/
public function label()
{
return $this->hasManyThrough(UserLabel::class, UserLabelRelation::class, 'uid', 'id', 'uid', 'label_id');
}
/**
* 关联用户地址
* @return \think\model\relation\HasMany
*/
public function address()
{
return $this->hasMany(UserAddress::class, 'uid', 'uid');
}
/**
* 关联提现
* @return \think\model\relation\HasMany
*/
public function extract()
{
return $this->hasMany(UserExtract::class, 'uid', 'uid');
}
/**
* 关联订单
* @return User|\think\model\relation\HasMany
*/
public function order()
{
return $this->hasMany(StoreOrder::class, 'uid', 'uid');
}
/**
* 关联分销等级
* @return \think\model\relation\HasOne
*/
public function agentLevel()
{
return $this->hasOne(AgentLevel::class, 'id', 'agent_level')->where('is_del', 0)->where('status', 1);
}
/**
* 关联积分数据
* @return \think\model\relation\HasMany
*/
public function bill()
{
return $this->hasMany(UserBill::class, 'uid', 'uid');
}
/**
* 关联佣金数据
* @return \think\model\relation\HasMany
*/
public function brokerage()
{
return $this->hasMany(UserBrokerage::class, 'uid', 'uid');
}
/**
* 关联余额数据
* @return \think\model\relation\HasMany
*/
public function money()
{
return $this->hasMany(UserMoney::class, 'uid', 'uid');
}
/**
* 关联用户扩展数据
* @return \think\model\relation\HasMany
*/
public function userExtend()
{
return $this->hasMany(UserExtend::class, 'uid', 'uid')->where('is_del', 0);
}
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if (is_array($value))
$query->whereIn('uid', $value);
else
$query->where('uid', $value);
}
/**
* 账号搜索器
* @param Model $query
* @param $value
*/
public function searchAccountAttr($query, $value)
{
$query->where('account', $value);
}
/**
* 密码搜索器
* @param Model $query
* @param $value
*/
public function searchPwdAttr($query, $value)
{
$query->where('pwd', $value);
}
/**
* uid范围查询搜索器
* @param Model $query
* @param $value
*/
public function searchUidsAttr($query, $value)
{
$query->whereIn('uid', $value);
}
/**
* 模糊条件搜索器
* @param Model $query
* @param $value
*/
public function searchStoreLikeAttr($query, $value)
{
$query->where('uid|phone', 'LIKE', "%$value%");
}
/**
* 模糊条件搜索器
* @param Model $query
* @param $value
*/
public function searchLikeAttr($query, $value)
{
$query->where('account|nickname|phone|real_name|uid', 'LIKE', "%$value%");
}
/**
* 手机号搜索器
* @param Model $query
* @param $value
*/
public function searchPhoneAttr($query, $value)
{
if (is_array($value)) {
$query->whereIn('phone', $value);
} else {
$query->where('phone', $value);
}
}
/**
* 分组搜索器
* @param Model $query
* @param $value
*/
public function searchGroupIdAttr($query, $value)
{
$query->where('group_id', $value);
}
/**
* 是否推广人搜索器
* @param Model $query
* @param $value
*/
public function searchIsPromoterAttr($query, $value)
{
$query->where('is_promoter', $value);
}
/**
* 状态搜索器
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
$query->where('status', $value);
}
/**
* 会员等级搜索器
* @param Model $query
* @param $value
*/
public function searchLevelAttr($query, $value)
{
$query->where('level', $value);
}
/**
* 推广人uid搜索器
* @param Model $query
* @param $value
*/
public function searchSpreadUidAttr($query, $value)
{
if ($value !== '') {
if (is_array($value)) {
$query->whereIn('spread_uid', $value);
} else {
$query->where('spread_uid', $value);
}
}
}
/**
* 推广人uid不等于搜索器
* @param Model $query
* @param $value
*/
public function searchNotSpreadUidAttr($query, $value)
{
$query->where('spread_uid', '<>', $value);
}
/**
* 推广人时间搜索器
* @param Model $query
* @param $value
*/
public function searchSpreadTimeAttr($query, $value)
{
if ($value) {
if (is_array($value)) {
if (count($value) == 2) $query->whereBetween('spread_time', $value);
} else {
$query->where('spread_time', $value);
}
}
}
/**
* 用户类型搜索器
* @param Model $query
* @param $value
*/
public function searchUserTypeAttr($query, $value)
{
if ($value != '') $query->where('user_type', $value);
}
/**
* 购买次数搜索器
* @param Model $query
* @param $value
*/
public function searchPayCountAttr($query, $value)
{
if ($value !== '') {
if ($value == -1) {
$query->where('pay_count', '>', 0);
} else {
$query->where('pay_count', $value);
}
}
}
/**
* 用户推广资格
* @param Model $query
* @param $value
*/
public function searchSpreadOpenAttr($query, $value)
{
if ($value != '') $query->where('spread_open', $value);
}
public function searchNicknameAttr($query, $value)
{
$query->where('nickname', "like", "%" . $value . "%");
}
/**
* bar_code搜索器
* @param Model $query
* @param $value
*/
public function searchBarCodeAttr($query, $value)
{
if ($value != '') $query->where('bar_code', $value);
}
/**
* 根据分组类型属性搜索
*
* @param \Illuminate\Database\Eloquent\Builder $query 查询构造器实例
* @param string $value 分组类型属性值
* @return void
*/
public function searchDivisionTypeAttr($query, $value)
{
// 如果传入的分组类型属性值不为空,则添加查询条件
if ($value !== '') $query->where('division_type', $value);
}
public function searchDivisionStatusAttr($query, $value)
{
// 如果传入的分组类型属性值不为空,则添加查询条件
if ($value !== '') $query->where('division_status', $value);
}
/**
* 根据传入的值查询 is_del 属性是否为指定值
*
* @param \Illuminate\Database\Eloquent\Builder $query 查询构造器实例
* @param string $value 指定的值
* @return void
*/
public function searchIsDelAttr($query, $value)
{
// 如果传入的值不为空字符串,则添加 where 条件
if ($value !== '') $query->where('is_del', $value);
}
/**
* 根据部门ID查询条件添加到查询构造器中
*
* @param \Illuminate\Database\Eloquent\Builder $query 查询构造器实例
* @param mixed $value 部门ID值
* @return void
*/
public function searchDivisionIdAttr($query, $value)
{
// 如果传入的部门ID不为空字符串,则将其作为查询条件添加到查询构造器中
if ($value !== '') $query->where('division_id', $value);
}
/**
* 根据代理商ID查询条件添加到查询构造器中
*
* @param \Illuminate\Database\Eloquent\Builder $query 查询构造器实例
* @param string $value 代理商ID
* @return void
*/
public function searchAgentIdAttr($query, $value)
{
// 如果传入的代理商ID不为空字符串,则在查询构造器中添加代理商ID查询条件
if ($value !== '') $query->where('agent_id', $value);
}
/**
* 根据分组邀请属性查询
*
* @param \Illuminate\Database\Eloquent\Builder $query 查询构造器实例
* @param string $value 分组邀请属性值
* @return void
*/
public function searchDivisionInviteAttr($query, $value)
{
// 如果传入的分组邀请属性值不为空,则添加查询条件
if ($value !== '') $query->where('division_invite', $value);
}
public function searchDivisionNameAttr($query, $value)
{
if ($value !== '') $query->whereLike('division_name|uid', "%$value%");
}
}

View File

@@ -0,0 +1,86 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\model;
/**
* Class UserAddress
* @package app\model\user
*/
class UserAddress extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_address';
protected $insert = ['add_time'];
protected $hidden = ['add_time', 'is_del'];
/**
* 更新之后事件
* @param model $model
*/
public static function onAfterUpdate(Model $model)
{
event('user.address.update');
}
protected function setAddTimeAttr()
{
return time();
}
/**
* 用户uid
* @param $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
$query->where('uid', $value);
}
/**
* 是否删除
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
$query->where('is_del', $value);
}
/**
* 是否默认地址
* @param Model $query
* @param $value
*/
public function searchIsDefaultAttr($query, $value)
{
$query->where('is_default', $value);
}
}

229
app/model/user/UserBill.php Normal file
View File

@@ -0,0 +1,229 @@
<?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\user;
use app\model\order\StoreOrder;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\model;
/**
* Class UserBill
* @package app\model\user
*/
class UserBill extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_bill';
protected $autoWriteTimestamp = 'int';
protected $createTime = 'add_time';
/**
* 添加时间修改器
* @return int
*/
public function setAddTimeAttr()
{
return time();
}
/**
* 添加时间获取器
* @param $value
* @return false|string
*/
public function getAddTimeAttr($value)
{
if (!empty($value)) {
if (is_string($value)) {
return $value;
} elseif (is_int($value)) {
return date('Y-m-d H:i:s', (int)$value);
}
}
return '';
}
/**
* 关联订单表
* @return UserBill|model\relation\HasOne
*/
public function order()
{
return $this->hasOne(StoreOrder::class, 'id', 'link_id')->field(['id', 'total_num'])->bind(['total_num']);
}
/**
* 关联用户
* @return model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid');
}
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if ($value !== '') {
if (is_array($value))
$query->whereIn('uid', $value);
else
$query->where('uid', $value);
}
}
/**
* 关联id
* @param Model $query
* @param $value
*/
public function searchLinkIdAttr($query, $value)
{
if (is_array($value))
$query->whereIn('link_id', $value);
else
$query->where('link_id', $value);
}
/**
* 支出|获得
* @param Model $query
* @param $value
*/
public function searchPmAttr($query, $value)
{
if ($value !== '') $query->where('pm', $value);
}
/**
* 种类 now_money:余额 integral:积分 exp:经验
* @param Model $query
* @param $value
*/
public function searchCategoryAttr($query, $value)
{
if (is_array($value))
$query->whereIn('category', $value);
else
$query->where('category', $value);
}
/**
* @param Model $query
* @param $value
*/
public function searchNotCategoryAttr($query, $value)
{
if (is_array($value))
$query->whereNotIn('category', $value);
else
$query->where('category', '<>', $value);
}
/**
* 类型
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if (is_array($value))
$query->whereIn('type', $value);
else
$query->where('type', $value);
}
/**
* @param Model $query
* @param $value
*/
public function searchNotTypeAttr($query, $value)
{
if (is_array($value))
$query->whereNotIn('type', $value);
else
$query->where('type', '<>', $value);
}
/**
* 状态 0:带确定 1:有效 -1:无效
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
$query->where('status', $value);
}
/**
* 是否收货 0:未收货 1:已收货
* @param Model $query
* @param $value
*/
public function searchTakeAttr($query, $value)
{
$query->where('take', $value);
}
/**
* 模糊搜索
* @param Model $query
* @param $value
*/
public function searchLikeAttr($query, $value)
{
$query->where(function ($query) use ($value) {
$query->where('id|uid|title', 'like', "%$value%")->whereOr('uid', 'in', function ($query) use ($value) {
$query->name('user')->whereLike('uid|account|nickname|phone', '%' . $value . '%')->field('uid')->select();
});
});
}
/**
* 时间
* @param Model $query
* @param $value
*/
public function searchAddTimeAttr($query, $value)
{
if (is_string($value)) $query->whereTime($query, $value);
if (is_array($value) && count($value) == 2) $query->whereTime('add_time', 'between', $value);
}
/**
* 积分冻结
* @param $query
* @param $value
*/
public function searchIsFrozenAttr($query, $value)
{
if ($value) $query->where('frozen_time', '>', time());
}
}

View File

@@ -0,0 +1,176 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use app\model\order\StoreOrder;
use think\model;
/**
* 用户佣金
* Class UserBrokerage
* @package app\model\user
*/
class UserBrokerage extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_brokerage';
/**
* 关联订单表
* @return UserBill|model\relation\HasOne
*/
public function order()
{
return $this->hasOne(StoreOrder::class, 'id', 'link_id')->field(['id', 'total_num'])->bind(['total_num']);
}
/**
* 关联用户
* @return model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid', false);
}
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if ($value !== '') {
if (is_array($value))
$query->whereIn('uid', $value);
else
$query->where('uid', $value);
}
}
/**
* 关联id
* @param Model $query
* @param $value
*/
public function searchLinkIdAttr($query, $value)
{
if (is_array($value))
$query->whereIn('link_id', $value);
else
$query->where('link_id', $value);
}
/**
* 支出|获得
* @param Model $query
* @param $value
*/
public function searchPmAttr($query, $value)
{
if ($value !== '') $query->where('pm', $value);
}
/**
* 类型
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if ($value !== '') {
if (is_array($value))
$query->whereIn('type', $value);
else
$query->where('type', $value);
}
}
/**
* @param Model $query
* @param $value
*/
public function searchNotTypeAttr($query, $value)
{
if ($value !== '') {
if (is_array($value))
$query->whereNotIn('type', $value);
else
$query->where('type', '<>', $value);
}
}
/**
* 状态 0:带确定 1:有效 -1:无效
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
$query->where('status', $value);
}
/**
* 是否收货 0:未收货 1:已收货
* @param Model $query
* @param $value
*/
public function searchTakeAttr($query, $value)
{
$query->where('take', $value);
}
/**
* 模糊搜索
* @param Model $query
* @param $value
*/
public function searchLikeAttr($query, $value)
{
if ($value !== '') {
$query->where(function ($query) use ($value) {
$query->where('uid|title', 'like', "%$value%")->whereOr('uid', 'in', function ($query) use ($value) {
$query->name('user')->whereLike('uid|account|nickname|phone', '%' . $value . '%')->field('uid')->select();
});
});
}
}
/**
* 时间
* @param Model $query
* @param $value
*/
public function searchAddTimeAttr($query, $value)
{
if (is_string($value)) $query->whereTime($query, $value);
if (is_array($value) && count($value) == 2) $query->whereTime('add_time', 'between', $value);
}
}

View File

@@ -0,0 +1,67 @@
<?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\user;
use crmeb\basic\BaseModel;
use think\Model;
/**
* 佣金冻结
* Class UserBrokerageFrozen
* @package app\model\user
*/
class UserBrokerageFrozen extends BaseModel
{
/**
* 设置主键
* @var string
*/
protected $pk = 'id';
/**
* 设置表名
* @var string
*/
protected $name = 'user_brokerage_frozen';
/**
* 用户id搜索器
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
$query->where('uid', $value);
}
/**
* 状态搜索器
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
$query->where('status', $value);
}
/**
* @param Model $query
* @param $value
*/
public function searchOrderIdAttr($query, $value)
{
$query->where('order_id', $value);
}
}

141
app/model/user/UserCard.php Normal file
View File

@@ -0,0 +1,141 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* 用户领取卡券
* Class UserCard
* @package app\model\user
*/
class UserCard extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_card';
/**
* 用户
* @return \think\model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid')->field('uid,nickname,avatar')->bind([
'nickname' => 'nickname',
'avatar' => 'avatar'
]);
}
/**
* uid
* @param $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if ($value !== '') $query->where('uid', $value);
}
/**
* wechat_card_id
* @param $query
* @param $value
*/
public function searchWechatCardIdAttr($query, $value)
{
if (in_array($value)) {
$query->whereIn('wechat_card_id', $value);
} else {
if ($value !== '') $query->where('wechat_card_id', $value);
}
}
/**
* card_id
* @param $query
* @param $value
*/
public function searchCardIdAttr($query, $value)
{
if ($value) $query->where('card_id', $value);
}
/**
* 门店ID
* @param $query
* @param $value
*/
public function searchStoreIdAttr($query, $value)
{
if ($value !== '') {
if ($value == -1) {//所有门店
$query->where('store_id', '>', 0);
} else {
$query->where('store_id', $value);
}
}
}
/**
* 门店店员ID
* @param $query
* @param $value
*/
public function searchStaffIdAttr($query, $value)
{
if ($value) $query->where('staff_id', $value);
}
/**
* openid
* @param $query
* @param $value
*/
public function searchOpenidAttr($query, $value)
{
if ($value) $query->where('openid', $value);
}
/**
* is_submit
* @param $query
* @param $value
*/
public function searchIsSubmitAttr($query, $value)
{
if ($value !== '') $query->where('is_submit', $value);
}
/**
* is_del
* @param $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') $query->where('is_del', $value);
}
}

View File

@@ -0,0 +1,75 @@
<?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\model\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* 用户扩展数据表模型
* Class UserExtend
* @package app\model\user
*/
class UserExtend extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_extend';
/**
* 关联用户表
* @return \think\model\relation\BelongsTo|\think\model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid');
}
/**
* uid搜索器
* @param $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if (is_array($value)) {
$query->whereIn('uid', $value);
} else {
$query->where('uid', $value);
}
}
/**
* 字段名搜索器
* @param $query
* @param $value
*/
public function searchFieldNameAttr($query, $value)
{
if (is_array($value)) {
$query->whereIn('field_name', $value);
} else {
$query->where('field_name', $value);
}
}
}

View File

@@ -0,0 +1,137 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\model;
/**
* Class UserExtract
* @package app\model\user
*/
class UserExtract extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_extract';
//审核中
const AUDIT_STATUS = 0;
//未通过
const FAIL_STATUS = -1;
//已提现
const SUCCESS_STATUS = 1;
/**
* 状态
* @var string[]
*/
protected static $status = [
-1 => '未通过',
0 => '审核中',
1 => '已提现'
];
/**
* 关联user
* @return model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid');
}
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if (is_array($value))
$query->whereIn('uid', $value);
else
$query->where('uid', $value);
}
/**
* ID
* @param $query
* @param $value
* @return void
* User: liusl
* DateTime: 2024/1/9 15:50
*/
public function searchIdAttr($query, $value)
{
if (is_array($value))
$query->whereIn('id', $value);
else
$query->where('id', $value);
}
/**
* 提现方式
* @param Model $query
* @param $value
*/
public function searchExtractTypeAttr($query, $value)
{
if ($value != '') $query->where('extract_type', $value);
}
/**
* 审核状态
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
if (is_array($value)) {
if ($value) {
$query->whereIn('status', $value);
}
} else {
if ($value !== '') {
$query->where('status', $value);
}
}
}
/**
* 模糊搜索
* @param Model $query
* @param $value
*/
public function searchLikeAttr($query, $value)
{
if ($value) {
$query->where(function ($query) use ($value) {
$query->where('real_name|id|bank_code|alipay_code', 'LIKE', "%$value%")->whereOr('uid', 'in', function ($query) use ($value) {
$query->name('user')->whereLike('nickname', '%' . $value . '%')->field('uid')->select();
});
});
}
}
}

View File

@@ -0,0 +1,76 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
class UserFriends extends BaseModel
{
use ModelTrait;
/**
* 表明
* @var string
*/
protected $name = 'user_friends';
/**
* 主键
* @var string
*/
protected $pk = 'id';
/**
*
* @return \think\model\relation\HasOne
*/
public function level()
{
return $this->hasOne(User::class, 'uid', 'uid')->field(['uid', 'level'])->bind([
'level' => 'level'
]);
}
/**
* @return \think\model\relation\HasOne
*/
public function nickname()
{
return $this->hasOne(User::class, 'uid', 'uid')->field(['uid', 'nickname'])->bind([
'nickname' => 'nickname'
]);
}
/**
* uid搜索器
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
$query->where('uid', $value);
}
/**
* 修改添加时间
* @param $value
* @return false|string
*/
public function getAddTimeAttr($value)
{
return date('Y-m-d H:i:s', $value);
}
}

View File

@@ -0,0 +1,99 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* Class UserInvoice
* @package app\model\live
*/
class UserInvoice extends BaseModel
{
use ModelTrait;
protected $pk = 'id';
protected $name = 'user_invoice';
protected $autoWriteTimestamp = 'int';
protected $createTime = 'add_time';
protected function setAddTimeAttr()
{
return time();
}
/**
* 添加时间获取器
* @param $value
* @return false|string
*/
public function getAddTimeAttr($value)
{
if (!empty($value)) {
return date('Y-m-d H:i:s', (int)$value);
}
return '';
}
/**
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if ($value !== '') $query->where('uid', $value);
}
/**
* @param Model $query
* @param $value
*/
public function searchHeaderTypeAttr($query, $value)
{
if ($value !== '') $query->where('header_type', $value);
}
/**
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if ($value !== '') $query->where('type', $value);
}
/**
* @param Model $query
* @param $value
*/
public function searchIsDefaultAttr($query, $value)
{
if ($value !== '') $query->whereLike('is_default', $value);
}
/**
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') $query->where('is_del', $value);
}
}

View File

@@ -0,0 +1,167 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use app\model\order\StoreOrder;
use think\model;
/**
* 用户余额
* Class UserMoney
* @package app\model\user
*/
class UserMoney extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_money';
/**
* 关联订单表
* @return UserBill|model\relation\HasOne
*/
public function order()
{
return $this->hasOne(StoreOrder::class, 'id', 'link_id')->field(['id', 'total_num'])->bind(['total_num']);
}
/**
* 关联用户
* @return model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid');
}
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if ($value !== '') {
if (is_array($value))
$query->whereIn('uid', $value);
else
$query->where('uid', $value);
}
}
/**
* 关联id
* @param Model $query
* @param $value
*/
public function searchLinkIdAttr($query, $value)
{
if (is_array($value))
$query->whereIn('link_id', $value);
else
$query->where('link_id', $value);
}
/**
* 支出|获得
* @param Model $query
* @param $value
*/
public function searchPmAttr($query, $value)
{
if ($value !== '') $query->where('pm', $value);
}
/**
* 类型
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if (is_array($value))
$query->whereIn('type', $value);
else
$query->where('type', $value);
}
/**
* @param Model $query
* @param $value
*/
public function searchNotTypeAttr($query, $value)
{
if (is_array($value))
$query->whereNotIn('type', $value);
else
$query->where('type', '<>', $value);
}
/**
* 状态 0:带确定 1:有效 -1:无效
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
$query->where('status', $value);
}
/**
* 是否收货 0:未收货 1:已收货
* @param Model $query
* @param $value
*/
public function searchTakeAttr($query, $value)
{
$query->where('take', $value);
}
/**
* 模糊搜索
* @param Model $query
* @param $value
*/
public function searchLikeAttr($query, $value)
{
$query->where(function ($query) use ($value) {
$query->where('uid|title', 'like', "%$value%")->whereOr('uid', 'in', function ($query) use ($value) {
$query->name('user')->whereLike('uid|account|nickname|phone', '%' . $value . '%')->field('uid')->select();
});
});
}
/**
* 时间
* @param Model $query
* @param $value
*/
public function searchAddTimeAttr($query, $value)
{
if (is_string($value)) $query->whereTime($query, $value);
if (is_array($value) && count($value) == 2) $query->whereTime('add_time', 'between', $value);
}
}

View File

@@ -0,0 +1,172 @@
<?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\user;
use app\model\store\SystemStoreStaff;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\model;
/**
* Class UserRecharge
* @package app\model\user
*/
class UserRecharge extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_recharge';
protected $insert = ['add_time'];
protected function setAddTimeAttr()
{
return time();
}
/**
* 关联user
* @return model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid', false)->bind([
'nickname' => 'nickname',
'avatar' => 'avatar',
'phone' => 'phone',
'now_money' => 'now_money',
'integral' => 'integral',
'delete_time' => 'delete_time'
]);
}
/**
* @return model\relation\HasOne
*/
public function staff()
{
return $this->hasOne(SystemStoreStaff::class, 'id', 'staff_id')
->field(['id', 'uid', 'store_id', 'staff_name'])
->bind([
'staff_uid' => 'uid',
'staff_store_id' => 'store_id',
'staff_name' => 'staff_name'
]);
}
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if (is_array($value))
$query->whereIn('uid', $value);
else
$query->where('uid', $value);
}
/**
* 门店ID
* @param $query
* @param $value
*/
public function searchStoreIdAttr($query, $value)
{
if ($value !== '') {
if ($value == -1) {//所有门店
$query->where('store_id', '>', 0);
} else {
$query->where('store_id', $value);
}
}
}
/**
* 门店店员ID
* @param $query
* @param $value
*/
public function searchStaffIdAttr($query, $value)
{
if ($value) $query->where('staff_id', $value);
}
/**
* 订单号
* @param Model $query
* @param $value
*/
public function searchOrderIdAttr($query, $value)
{
$query->where('order_id', $value);
}
/**
* 充值类型
* @param Model $query
* @param $value
*/
public function searchRechargeTypeAttr($query, $value)
{
$query->where('recharge_type', $value);
}
/**退款金额
* @param $query
* @param $value
*/
public function searchRefundPriceAttr($query, $value)
{
$query->where('refund_price', $value);
}
/**
* 是否支付
* @param Model $query
* @param $value
*/
public function searchPaidAttr($query, $value)
{
if ($value !== '') $query->where('paid', $value);
}
/**
* 模糊搜索
* @param Model $query
* @param $value
*/
public function searchLikeAttr($query, $value)
{
$query->where(function ($query) use ($value) {
$query->whereLike('uid|order_id', "%" . $value . "%")->whereOr('uid', 'in', function ($query) use ($value) {
$query->name('user')->whereLike('nickname|real_name|phone', "%" . $value . "%")->field('uid')->select();
});
});
}
public function searchChannelTypeAttr($query, $value)
{
if ($value !== '') $query->where('channel_type', $value);
}
}

View File

@@ -0,0 +1,109 @@
<?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\user;
use app\model\activity\video\Community;
use app\model\product\product\StoreProduct;
use crmeb\traits\ModelTrait;
use crmeb\basic\BaseModel;
use think\Model;
/**
* 用户点赞、收藏、分享(商品、短视频)model
* Class UserRelation
* @package app\model\product\product
*/
class UserRelation extends BaseModel
{
use ModelTrait;
/**
* 模型名称
* @var string
*/
protected $name = 'user_relation';
/**
* 关联商品
* @return \think\model\relation\HasOne
*/
public function product()
{
return $this->hasOne(StoreProduct::class, 'id', 'relation_id');
}
/**
* 关联视频
* @return \think\model\relation\HasOne
*/
public function video()
{
return $this->hasOne(Community::class, 'id', 'relation_id');
}
/**
* 用户搜索器
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
$query->where('uid', $value);
}
/**
* 关联搜索器
* @param Model $query
* @param $value
*/
public function searchRelationIdAttr($query, $value)
{
if ($value) {
if (is_array($value)) {
$query->whereIn('relation_id', $value);
} else {
$query->where('relation_id', $value);
}
}
}
/**
* 类型搜索器
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if ($value) {
if (is_array($value)) {
$query->whereIn('type', $value);
} else {
$query->where('type', $value);
}
}
}
/**
* 商品类型搜索器
* @param Model $query
* @param $value
*/
public function searchCategoryAttr($query, $value)
{
if ($value) {
if (is_array($value)) {
$query->whereIn('category', $value);
} else {
$query->where('category', $value);
}
}
}
}

View File

@@ -0,0 +1,78 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* Class UserSearch
* @package app\model\user
*/
class UserSearch extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_search';
/**
* 获取搜索结果
* @param $value
* @return array|mixed
*/
public function getResultAttr($value)
{
return json_decode($value, true) ?? [];
}
/**
* UID搜索器
* @param \think\db\Query $query 查询对象
* @param mixed $value 搜索值
*/
public function searchUidAttr($query, $value)
{
if ($value !== '') $query->where('uid', $value);
}
/**
* 关键词搜索器
* @param \think\db\Query $query 查询对象
* @param mixed $value 搜索值
*/
public function searchKeywordAttr($query, $value)
{
if ($value !== '') $query->where('keyword', $value);
}
/**
* 是否删除搜索器
* @param \think\db\Query $query 查询对象
* @param mixed $value 搜索值
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') $query->where('is_del', $value);
}
}

View File

@@ -0,0 +1,77 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\model;
/**
* Class UserSign
* @package app\model\user
*/
class UserSign extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_sign';
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if (is_array($value))
$query->whereIn('uid', $value);
else
$query->where('uid', $value);
}
/**
* id
* @param Model $query
* @param $value
*/
public function searchIdAttr($query, $value)
{
if (is_array($value))
$query->whereIn('id', implode(',', $value));
else
$query->where('id', $value);
}
/**
* 时间
* @param Model $query
* @param $value
*/
public function searchAddTimeAttr($query, $value)
{
if (is_string($value)) $query->whereTime('add_time', $value);
if (is_array($value) && count($value) == 2) $query->whereTime('add_time', 'BETWEEN', $value);
}
}

View File

@@ -0,0 +1,122 @@
<?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\user;
use app\model\system\admin\SystemAdmin;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\model;
/**
* Class UserSpread
* @package app\model\user
*/
class UserSpread extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_spread';
/**
* 用户
* @return model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid')->field('uid,nickname,avatar')->bind([
'nickname' => 'nickname',
'avatar' => 'avatar'
]);
}
/**
* 推荐人
* @return model\relation\HasOne
*/
public function spreadUser()
{
return $this->hasOne(User::class, 'uid', 'spread_uid')->field('uid,nickname,avatar')->bind([
'nickname' => 'nickname',
'avatar' => 'avatar'
]);
}
/**
* 管理员姓名
* @return model\relation\HasOne
*/
public function admin()
{
return $this->hasOne(SystemAdmin::class, 'id', 'admin_id')->field('id,real_name')->bind([
'real_name' => 'real_name'
]);
}
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if (is_array($value))
$query->whereIn('uid', $value);
else
$query->where('uid', $value);
}
/**
* 门店ID
* @param $query
* @param $value
*/
public function searchStoreIdAttr($query, $value)
{
if ($value) $query->where('store_id', $value);
}
/**
* 门店店员ID
* @param $query
* @param $value
*/
public function searchStaffIdAttr($query, $value)
{
if ($value) $query->where('staff_id', $value);
}
/**
* 推广人uid
* @param Model $query
* @param $value
*/
public function searchSpreadUidAttr($query, $value)
{
if (is_array($value))
$query->whereIn('spread_uid', $value);
else
$query->where('spread_uid', $value);
}
}

View File

@@ -0,0 +1,68 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\model;
/**
* Class UserTaskFinish
* @package app\model\user
*/
class UserTaskFinish extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_task_finish';
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
$query->where('uid', $value);
}
/**
* 任务id
* @param Model $query
* @param $value
*/
public function searchTaskIdAttr($query, $value)
{
$query->where('task_id', $value);
}
/**
* 状态
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
$query->where('status', $value);
}
}

View File

@@ -0,0 +1,46 @@
<?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\user;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* Class UserVisit
* @package app\model\user
*/
class UserVisit extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_visit';
/**
* 访问来源搜索器
* @param $query
* @param $value
*/
public function searchChannelTypeAttr($query, $value)
{
if ($value != '') $query->where('channel_type', $value);
}
}

View File

@@ -0,0 +1,261 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\model\user\channel;
use app\model\user\User;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 采购商模型
* Class ChannelMerchant
* @package app\model\user\channel
*/
class ChannelMerchant extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'channel_merchant';
/**
* 审核状态
* @var array
*/
public static $verifyStatusConfig = [
0 => '待审核',
1 => '审核通过',
2 => '审核未通过'
];
/**
* 关联用户
* @return \think\model\relation\HasOne
*/
public function user()
{
return $this->hasOne(User::class, 'uid', 'uid');
}
/**
* 审核状态获取器
* @param $value
* @return string
*/
public function getVerifyStatusNameAttr($value, $data)
{
return self::$verifyStatusConfig[$data['verify_status']] ?? '';
}
/**
* 地区获取器
* @param $value
* @return array
*/
public function getProvinceAttr($value)
{
return $value ? explode(',', $value) : [];
}
public function getProvinceIdsAttr($value)
{
return $value ? explode(',', $value) : [];
}
/**
* 地区修改器
* @param $value
* @return string
*/
public function setProvinceAttr($value)
{
if (is_array($value)) {
return implode(',', $value);
}
return $value;
}
public function setProvinceIdsAttr($value)
{
if (is_array($value)) {
return implode(',', $value);
}
return $value;
}
/**
* 资质照片获取器
* @param $value
* @return array
*/
public function getCertificateAttr($value)
{
return $value ? explode(',', $value) : [];
}
/**
* 资质照片修改器
* @param $value
* @return string
*/
public function setCertificateAttr($value)
{
if (is_array($value)) {
return implode(',', $value);
}
return $value;
}
/**
* 添加时间获取器
* @param $value
* @return false|string
*/
public function getAddTimeAttr($value)
{
return $value ? date('Y-m-d H:i:s', $value) : '';
}
/**
* 审核时间获取器
* @param $value
* @return false|string
*/
public function getVerifyTimeAttr($value)
{
return $value ? date('Y-m-d H:i:s', $value) : '';
}
/**
* 采购商名称搜索器
* @param Model $query
* @param $value
*/
public function searchChannelNameAttr($query, $value)
{
if ($value !== '') {
$query->whereLike('channel_name', '%' . $value . '%');
}
}
/**
* 联系人搜索器
* @param Model $query
* @param $value
*/
public function searchRealNameAttr($query, $value)
{
if ($value !== '') {
$query->whereLike('real_name', '%' . $value . '%');
}
}
public function searchUidAttr($query, $value)
{
if ($value !== '') {
$query->where('uid', $value);
}
}
/**
* 联系电话搜索器
* @param Model $query
* @param $value
*/
public function searchPhoneAttr($query, $value)
{
if ($value !== '') {
$query->whereLike('phone', '%' . $value . '%');
}
}
/**
* 审核状态搜索器
* @param Model $query
* @param $value
*/
public function searchVerifyStatusAttr($query, $value)
{
if ($value !== '') {
if (is_array($value)) {
$query->whereIn('verify_status', $value);
} else {
$query->where('verify_status', $value);
}
}
}
/**
* 状态搜索器
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
if ($value !== '') {
$query->where('status', $value);
}
}
/**
* 采购商身份搜索器
* @param Model $query
* @param $value
*/
public function searchChannelTypeAttr($query, $value)
{
if ($value !== '') {
$query->where('channel_type', $value);
}
}
/**
* 添加时间范围搜索器
* @param Model $query
* @param $value
*/
public function searchAddTimeAttr($query, $value)
{
if ($value && is_array($value) && count($value) == 2) {
$query->whereBetween('add_time', [strtotime($value[0]), strtotime($value[1])]);
}
}
/**
* 软删除搜索器
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') {
$query->where('is_del', $value);
}
}
public function searchIsAdminAttr($query, $value)
{
if ($value !== '') {
$query->where('is_admin', $value);
}
}
}

View File

@@ -0,0 +1,112 @@
<?php
declare (strict_types=1);
namespace app\model\user\channel;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 采购商身份模型
* Class ChannelMerchantIdentity
* @package app\model\user\channel
*/
class ChannelMerchantIdentity extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'channel_merchant_identity';
/**
* 添加时间获取器
* @param $value
* @return false|string
*/
public function getAddTimeAttr($value)
{
return $value ? date('Y-m-d H:i:s', $value) : '';
}
public function searchIdAttr($query, $value)
{
if ($value !== '') {
if (is_array($value)) {
$query->whereIn('id', $value);
} else {
$query->where('id', $value);
}
}
}
/**
* 关键词搜索器
* @param Model $query
* @param $value
*/
public function searchKeywordAttr($query, $value)
{
if ($value) {
$query->where('name', 'like', '%' . $value . '%');
}
}
/**
* 显示状态搜索器
* @param Model $query
* @param $value
*/
public function searchIsShowAttr($query, $value)
{
if ($value !== '') {
$query->where('is_show', $value);
}
}
/**
* 删除状态搜索器
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') {
$query->where('is_del', $value);
}
}
/**
* 等级搜索器
* @param Model $query
* @param $value
*/
public function searchLevelAttr($query, $value)
{
if ($value !== '') {
$query->where('level', $value);
}
}
/**
* 折扣搜索器
* @param Model $query
* @param $value
*/
public function searchDiscountAttr($query, $value)
{
if ($value !== '') {
$query->where('discount', $value);
}
}
}

View File

@@ -0,0 +1,37 @@
<?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\user\group;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* 用户分组
* Class UserGroup
* @package app\model\user\group
*/
class UserGroup extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_group';
}

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\user\label;
use app\model\other\Category;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 用户标签
* Class UserLabel
* @package app\model\user\label
*/
class UserLabel extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_label';
public function category()
{
return $this->hasOne(Category::class, 'id', 'label_cate')->bind(['cate_name' => 'name']);
}
/**
* 标签分类
* @param \think\Model $query
* @param $value
*/
public function searchLabelCateAttr($query, $value)
{
if ($value !== '') {
if (is_array($value)) {
$query->whereIn('label_cate', $value);
} else {
$query->where('label_cate', $value);
}
}
}
/**
* type搜索器
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if ($value) $query->where('type', $value);
}
public function searchLabelNameAttr($query, $value)
{
if ($value !== '') {
$query->whereLike('label_name', "%{$value}%");
}
}
public function searchStatusAttr($query, $value)
{
if ($value !== '') $query->where('status', $value);
}
public function searchLabelTypeAttr($query, $value)
{
if ($value !== '') $query->where('label_type', $value);
}
/**
* store_id搜索器
* @param Model $query
* @param $value
*/
public function searchStoreIdAttr($query, $value)
{
if ($value !== '') $query->where('store_id', $value);
}
/**
* ids搜索器
* @param Model $query
* @param $value
*/
public function searchIdsAttr($query, $value)
{
if ($value !== '') {
if (is_array($value)) {
$query->whereIn('id', $value);
} else {
$query->where('id', $value);
}
}
}
/**
* @param $query
* @param $value
*/
public function searchNotTagIdAttr($query, $value)
{
$query->where(function ($query) {
$query->whereNull('tag_id')->whereOr('tag_id', '');
});
}
}

View File

@@ -0,0 +1,74 @@
<?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\user\label;
use crmeb\basic\BaseModel;
use think\Model;
/**
* 标签分类
* Class UserLabelCate
* @package app\model\user\label
*/
class UserLabelCate extends BaseModel
{
/**
* 表名
* @var string
*/
protected $name = 'user_label_cate';
/**
* 主键
* @var string
*/
protected $pk = 'id';
/**
* @param Model $query
* @param $value
*/
public function searchNameAttr($query, $value)
{
$query->whereLike('name', '%' . $value . '%');
}
/**
* 一对多关联
* @return \think\model\relation\HasMany
*/
public function label()
{
return $this->hasMany(UserLabel::class, 'label_cate', 'id');
}
/**
* type搜索器
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if ($value) $query->where('type', $value);
}
/**
* store_id搜索器
* @param Model $query
* @param $value
*/
public function searchStoreIdAttr($query, $value)
{
if ($value) $query->where('store_id', $value);
}
}

View File

@@ -0,0 +1,139 @@
<?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\user\label;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 标签规则关联表
* Class UserLabelExtend
* @package app\model\user\label
*/
class UserLabelExtend extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_label_extend';
/**
* label_id搜索器
* @param Model $query
* @param $value
*/
public function searchLabelIdAttr($query, $value)
{
if ($value !== '') $query->where('label_id', $value);
}
/**
* rule_type搜索器
* @param Model $query
* @param $value
*/
public function searchRuleTypeAttr($query, $value)
{
if ($value !== '') $query->where('rule_type', $value);
}
/**
* sub_type搜索器
* @param Model $query
* @param $value
*/
public function searchSubTypeAttr($query, $value)
{
if ($value !== '') $query->where('sub_type', $value);
}
/**
* balance_type搜索器
* @param Model $query
* @param $value
*/
public function searchBalanceTypeAttr($query, $value)
{
if ($value !== '') $query->where('balance_type', $value);
}
/**
* operation_type搜索器
* @param Model $query
* @param $value
*/
public function searchOperationTypeAttr($query, $value)
{
if ($value !== '') $query->where('operation_type', $value);
}
/**
* time_dimension搜索器
* @param Model $query
* @param $value
*/
public function searchTimeDimensionAttr($query, $value)
{
if ($value !== '') $query->where('time_dimension', $value);
}
/**
* specify_dimension搜索器
* @param Model $query
* @param $value
*/
public function searchSpecifyDimensionAttr($query, $value)
{
if ($value !== '') $query->where('specify_dimension', $value);
}
/**
* customer_identity搜索器
* @param Model $query
* @param $value
*/
public function searchCustomerIdentityAttr($query, $value)
{
if ($value !== '') $query->where('customer_identity', $value);
}
/**
* ids搜索器
* @param Model $query
* @param $value
*/
public function searchIdsAttr($query, $value)
{
if ($value) $query->whereIn('id', $value);
}
/**
* 关联标签
* @return \think\model\relation\HasOne
*/
public function label()
{
return $this->hasOne(UserLabel::class, 'id', 'label_id')->bind([
'label_name' => 'label_name'
]);
}
}

View File

@@ -0,0 +1,107 @@
<?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\user\label;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 标签规则扩展表
* Class UserLabelExtendRelation
* @package app\model\user\label
*/
class UserLabelExtendRelation extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_label_extend_relation';
/**
* type搜索器
* @param Model $query
* @param $value
*/
public function searchTypeAttr($query, $value)
{
if ($value !== '') $query->where('type', $value);
}
/**
* left_id搜索器
* @param Model $query
* @param $value
*/
public function searchLeftIdAttr($query, $value)
{
if ($value !== '') $query->where('left_id', $value);
}
/**
* right_id搜索器
* @param Model $query
* @param $value
*/
public function searchRightIdAttr($query, $value)
{
if ($value !== '') $query->where('right_id', $value);
}
/**
* ids搜索器
* @param Model $query
* @param $value
*/
public function searchIdsAttr($query, $value)
{
if ($value) $query->whereIn('id', $value);
}
/**
* left_ids搜索器
* @param Model $query
* @param $value
*/
public function searchLeftIdsAttr($query, $value)
{
if ($value) $query->whereIn('left_id', $value);
}
/**
* right_ids搜索器
* @param Model $query
* @param $value
*/
public function searchRightIdsAttr($query, $value)
{
if ($value) $query->whereIn('right_id', $value);
}
/**
* 关联标签扩展
* @return \think\model\relation\HasOne
*/
public function labelExtend()
{
return $this->hasOne(UserLabelExtend::class, 'id', 'left_id');
}
}

View File

@@ -0,0 +1,72 @@
<?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\user\label;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 用户关联标签
* Class UserLabelRelation
* @package app\model\user\label
*/
class UserLabelRelation extends BaseModel
{
use ModelTrait;
/**
* 模型名称
* @var string
*/
protected $name = 'user_label_relation';
/**
* @return \think\model\relation\HasOne
*/
public function label()
{
return $this->hasOne(UserLabel::class, 'id', 'label_id')->bind([
'label_name' => 'label_name',
'label_type' => 'label_type',
]);
}
/**
* uid搜索器
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
if($value !== ''){
if(is_array($value)){
$query->whereIn('uid', $value);
}else{
$query->where('uid', $value);
}
}
}
/**
* 门店id搜索器
* @param $query
* @param $value
*/
public function searchStoreIdAttr($query, $value)
{
if ($value !== '') {
$query->where('store_id', $value);
}
}
}

View File

@@ -0,0 +1,89 @@
<?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\user\level;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* 系统等级设置模型
* Class SystemUserLevel
* @package app\model\user\level
*/
class SystemUserLevel extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'system_user_level';
/**
* 时间获取器
* @param $value
* @return false|string
*/
public function getAddTimeAttr($value)
{
return date('Y-m-d H:i:s', (int)$value);
}
/**
* 优惠比例获取器
* @param $value
* @return int
*/
public function getDiscountAttr($value)
{
return (int)$value;
}
/**
* 是否展示
* @param \think\Model $query
* @param $value
*/
public function searchIsShowAttr($query, $value)
{
$query->where('is_show',$value);
}
/**
* 是否删除搜索器
* @param Model $query
* @param $value
* @param $data
*/
public function searchIsDelAttr($query, $value)
{
$query->where('is_del', $value ?? 0);
}
/**
* @param Model $query
* @param $value
*/
public function searchTitleAttr($query, $value)
{
$query->where('title','LIKE', "%$value%");
}
}

View File

@@ -0,0 +1,37 @@
<?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\user\level;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* 用户等级任务
* Class SystemUserTask
* @package app\model\user\level
*/
class SystemUserTask extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'system_user_task';
}

View File

@@ -0,0 +1,108 @@
<?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\user\level;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\model;
/**
* 用户等级
* Class UserLevel
* @package app\model\user\level
*/
class UserLevel extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'user_level';
public function levelInfo()
{
return $this->hasOne(SystemUserLevel::class, 'id', 'level_id')->where('is_del', 0);
}
public function levelDiscount()
{
return $this->hasOne(SystemUserLevel::class, 'id', 'level_id')->where('is_del', 0)->field('id,discount')->bind(['discount_num' => 'discount']);
}
/**
* 用户uid
* @param Model $query
* @param $value
*/
public function searchUidAttr($query, $value)
{
$query->where('uid', $value);
}
/**
* 是否永久
* @param Model $query
* @param $value
*/
public function searchIsForeverAttr($query, $value)
{
$query->where('is_forever', $value);
}
/**
* 过期时间
* @param Model $query
* @param $value
*/
public function searchValidTimeAttr($query, $value)
{
$query->where('valid_time', '>', $value);
}
/**
* 状态
* @param Model $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
$query->where('status', $value);
}
/**
* 是否通知
* @param Model $query
* @param $value
*/
public function searchRemindAttr($query, $value)
{
$query->where('remind', $value);
}
/**
* 是否删除
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
$query->where('is_del', $value);
}
}

View File

@@ -0,0 +1,119 @@
<?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\user\member;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* Class MemberCard
* @package app\model\user\member
*/
class MemberCard extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'member_card';
protected $insert = ['add_time', 'update_time'];
protected $hidden = ['update_time'];
protected $updateTime = false;
/**
* 卡号搜索器
* @param Model $query
* @param $value
*/
public function searchCardNumberAttr($query, $value)
{
if ($value) {
$query->whereLike('card_number', '%' . $value . '%');
}
}
/**
* 用户uid搜索器
* @param Model $query
* @param $value
*/
public function searchUseUidAttr($query, $value)
{
if (is_array($value)) {
$query->whereIn('use_uid', $value);
} else {
$query->where('use_uid', $value);
}
}
/**
* 手机号搜索器
* @param Model $query
* @param $value
*/
public function searchPhoneAttr($query, $value)
{
if ($value) {
$query->whereIn('use_uid', function ($query) use ($value) {
$query->name('user')->whereLike('phone', $value . '%')->field('uid')->select();
});
}
}
/**
* 批次id搜索器
* @param Model $query
* @param $value
*/
public function searchBatchCardIdAttr($query, $value)
{
$query->where('card_batch_id', $value);
}
/**
* 用户use_time搜索器
* @param Model $query
* @param $value
*/
public function searchUseTimeAttr($query, $value)
{
if ($value > 0) {
$query->where('use_time', '>', 0);
}
if ($value == 0) {
$query->where('use_time', 0);
}
}
public function searchIsStatusAttr($query, $value)
{
if ($value) {
$query->where('status', $value);
}
}
}

View File

@@ -0,0 +1,66 @@
<?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\user\member;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* Class MemberCardBatch
* @package app\model\user\member
*/
class MemberCardBatch extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'member_card_batch';
protected $insert = ['add_time'];
protected $hidden = ['update_time'];
protected $updateTime = false;
/**
* 卡批次名称搜索器
* @param Model $query
* @param $value
*/
public function searchTitleAttr($query, $value)
{
if ($value !== '') {
$query->where('title', $value);
}
}
/**
* 格式化数据
* @param $value
* @return array|mixed
*/
public function getQrcodeAttr($value)
{
$value = $value ? json_decode($value, true) : [];
return is_array($value) ? $value : [];
}
}

View File

@@ -0,0 +1,61 @@
<?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\user\member;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
/**
* Class MemberRight
* @package app\model\user\member
*/
class MemberRight extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'member_right';
/**
* 状态搜索器
* @param $query
* @param $value
*/
public function searchStatusAttr($query, $value)
{
if ($value) {
$query->where('status', $value);
}
}
/**
* 状态搜索器
* @param $query
* @param $value
*/
public function searchRightTypeAttr($query, $value)
{
if ($value) {
$query->where('right_type', $value);
}
}
}

View File

@@ -0,0 +1,47 @@
<?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\user\member;
use crmeb\basic\BaseModel;
use crmeb\traits\ModelTrait;
use think\Model;
/**
* Class MemberShip
* @package app\model\user\member
*/
class MemberShip extends BaseModel
{
use ModelTrait;
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'member_ship';
/**
* @param Model $query
* @param $value
*/
public function searchIsDelAttr($query, $value)
{
if ($value !== '') $query->where('is_del', $value);
}
}