Files
huangjingfen/pro_v3.5.1/app/services/user/UserExtendServices.php
panchengyong c1e74d8e68 chore(php): 统一 ScottPan 文件头与注释域名替换
- 按 docs/renew-code-comment.md 将 PHP 文件头改为带边框的 Author 注释\n- 注释中的 crmeb.com 替换为 uj345.cn(代码字符串中的外链未改)\n- 新增 docs/renew-code-comment.md 说明

Made-with: Cursor
2026-03-29 11:22:58 +08:00

154 lines
4.3 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | Author: ScottPan Team
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\services\user;
use app\dao\user\UserCardDao;
use app\dao\user\UserExtendDao;
use app\services\BaseServices;
use crmeb\exceptions\AdminException;
use crmeb\services\FormBuilder as Form;
use think\annotation\Inject;
use think\facade\Route as Url;
/**
* 用户扩展数据服务
* Class UserExtendServices
* @package app\services\user
* @mixin UserExtendDao
*/
class UserExtendServices extends BaseServices
{
/**
* @var UserExtendDao
*/
#[Inject]
protected UserExtendDao $dao;
/**
* 获取用户扩展数据列表
* @param array $where
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getList(array $where = []): array
{
[$page, $limit] = $this->getPageValue();
$list = $this->dao->getList($where, '*', $page, $limit);
$count = $this->dao->count($where);
return compact('list', 'count');
}
/**
* 获取用户扩展数据
* @param int $uid
* @param string $fieldName
* @return string
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getUserExtendValue(int $uid, string $fieldName): string
{
$data = $this->dao->getUserFieldData($uid, $fieldName);
return $data ? $data['field_value'] : '';
}
/**
* 获取用户所有扩展数据
* @param int $uid
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getUserAllExtendData(int $uid): array
{
return $this->dao->getUserExtendDataKeyValue($uid);
}
/**
* 设置用户扩展数据
* @param int $uid
* @param string $fieldName
* @param string $fieldValue
* @param string $remark
* @return bool
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function setUserExtendData(int $uid, string $fieldName, string $fieldValue, string $remark = ''): bool
{
if (!$uid || !$fieldName) {
throw new AdminException('参数错误');
}
return $this->dao->setUserExtendData($uid, $fieldName, $fieldValue, $remark) !== false;
}
/**
* 批量设置用户扩展数据
* @param int $uid
* @param array $extendData
* @return bool
*/
public function setBatchUserExtendData(int $uid, array $extendData): bool
{
if (!$uid || empty($extendData)) {
throw new AdminException('参数错误');
}
return $this->dao->setBatchUserExtendData($uid, $extendData);
}
/**
* 删除用户扩展数据
* @param int $uid
* @param string $fieldName
* @return bool
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function deleteUserExtendData(int $uid, string $fieldName = ''): bool
{
if (!$uid) {
throw new AdminException('参数错误');
}
return $this->dao->deleteUserExtendData($uid, $fieldName);
}
/**
* 保存扩展数据
* @param array $data
* @return bool
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function save(array $data): bool
{
if (!isset($data['uid']) || !isset($data['field_name']) || !isset($data['field_value'])) {
throw new AdminException('参数错误');
}
return $this->dao->setUserExtendData(
(int)$data['uid'],
$data['field_name'],
$data['field_value'],
) !== false;
}
}