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

View File

@@ -0,0 +1,60 @@
<?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\services\user;
use app\services\BaseServices;
use app\dao\user\UserVisitDao;
use think\annotation\Inject;
use think\facade\Log;
/**
*
* Class UserVisitServices
* @package app\services\user
* @mixin UserVisitDao
*/
class UserVisitServices extends BaseServices
{
/**
* @var UserVisitDao
*/
#[Inject]
protected UserVisitDao $dao;
/**
* 登录后记录访问记录
* @param array|object $user
* @return mixed
*/
public function loginSaveVisit($user)
{
try {
$data = [
'url' => '/pages/index/index',
'uid' => $user['uid'] ?? 0,
'ip' => request()->ip(),
'add_time' => time(),
'province' => $user['province'] ?? '',
'channel_type' => $user['user_type'] ?? 'h5'
];
if (!$data['uid']) {
return false;
}
return $this->dao->save($data);
} catch (\Throwable $e) {
Log::error('登录记录访问日志错误,错误原因:' . $e->getMessage());
}
}
}