You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
5.7 KiB
184 lines
5.7 KiB
<?php
|
|
namespace app\index\controller;
|
|
|
|
use app\enterprise\model\{File,Group,User};
|
|
use think\facade\View;
|
|
use app\manage\model\Config;
|
|
use app\Request;
|
|
|
|
class Index
|
|
{
|
|
|
|
public function index()
|
|
{
|
|
if (!file_exists(PACKAGE_PATH . "install.lock")) {
|
|
return redirect(url('index/install/index'));
|
|
}
|
|
// 自动跳转后无法注册
|
|
// if(request()->isMobile() && !env('app.demon_mode',false)){
|
|
// return redirect("/h5");
|
|
// }
|
|
return redirect("/index.html");
|
|
}
|
|
|
|
public function view()
|
|
{
|
|
$url=request()->param('src');
|
|
$suffix=explode('.',$url);
|
|
$ext=$suffix[count($suffix)-1];
|
|
return View::fetch('',[
|
|
'url' => $url,
|
|
'ext'=>$ext,
|
|
'name'=>lang('file.preview')
|
|
]);
|
|
}
|
|
|
|
// 头像生成
|
|
public function avatar()
|
|
{
|
|
circleAvatar(input('str'), input('s') ?: 80, input('uid'));die;
|
|
}
|
|
|
|
// 文件下载
|
|
public function download()
|
|
{
|
|
|
|
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
|
|
throw new \think\Exception(lang('file.browserDown'),400);
|
|
}
|
|
$param = request()->param();
|
|
$file_id = $param['file_id'] ?? 0;
|
|
if (!$file_id) {
|
|
throw new \think\Exception(lang('system.parameterError'), 502);
|
|
}
|
|
try {
|
|
$file_id = decryptIds($file_id);
|
|
} catch (\Exception $e) {
|
|
throw new \think\Exception($e->getMessage(), 400);
|
|
}
|
|
$file = File::find($file_id);
|
|
if (!$file) {
|
|
throw new \think\Exception(lang('file.exist'),404);
|
|
}
|
|
$file = $file->toArray();
|
|
// 兼容本地文件下载
|
|
$fileUrl=getDiskUrl();
|
|
if($fileUrl==getMainHost()){
|
|
$url=rtrim(public_path(),'/').$file['src'];
|
|
}else{
|
|
$url= getFileUrl($file['src']);
|
|
}
|
|
return \utils\File::download($url, $file['name'] . '.' . $file['ext'], $file['size'], $file['ext']);
|
|
}
|
|
|
|
// 扫码获取信息
|
|
public function scanQr(){
|
|
$param=request()->param();
|
|
$action=$param['action'] ?? '';
|
|
$token=$param['token'] ?? '';
|
|
$realToken=$param['realToken'] ?? '';
|
|
if(request()->isPost() && $action && $token && $realToken){
|
|
$actions=[
|
|
'g'=>'group',
|
|
'u'=>'user',
|
|
];
|
|
$a=$actions[$action] ?? '';
|
|
if(!$a){
|
|
return warning(lang('scan.failure'));
|
|
}
|
|
return $this->$a($param);
|
|
}else{
|
|
return $this->index();
|
|
}
|
|
}
|
|
|
|
protected function group($param)
|
|
{
|
|
$token=authcode(urldecode($param['realToken']),"DECODE", 'qr');
|
|
if(!$token){
|
|
return warning(lang('scan.failure'));
|
|
}
|
|
$groupInfo=explode('-',$token);
|
|
$uid=$groupInfo[0];
|
|
$group_id=$groupInfo[1];
|
|
$group=Group::find($group_id);
|
|
if($group){
|
|
$group=$group->toArray();
|
|
$group['avatar']=avatarUrl($group['avatar'],$group['name'],$group_id,120);
|
|
$group['invite_id']=$uid;
|
|
$group['id']='group-'.$group_id;
|
|
$group['action']='groupInfo';
|
|
return success('',$group);
|
|
}else{
|
|
return warning(lang('scan.failure'));
|
|
}
|
|
}
|
|
|
|
protected function user($param)
|
|
{
|
|
$id=decryptIds($param['token']);
|
|
if(!$id){
|
|
return warning(lang('scan.failure'));
|
|
}
|
|
$user=User::where(['user_id'=>$id])->field(User::$defaultField)->find();
|
|
if($user){
|
|
$user=$user->toArray();
|
|
$user['avatar']=avatarUrl($user['avatar'],$user['realname'],$user['user_id'],120);
|
|
$user['id']=$user['user_id'];
|
|
$user['action']='userInfo';
|
|
return success('',$user);
|
|
}else{
|
|
return warning(lang('scan.failure'));
|
|
}
|
|
}
|
|
|
|
// app下载页
|
|
public function downApp(){
|
|
// echo request()->domain(true);
|
|
$downAppUrl=env('app.downApp_url','');
|
|
if($downAppUrl){
|
|
return redirect($downAppUrl);
|
|
}
|
|
$config=Config::where('name','sysInfo')->value('value');
|
|
$andriod=getAppDowmUrl('andriod');
|
|
$winUrl=getAppDowmUrl('windows');
|
|
$macUrl=getAppDowmUrl('mac');
|
|
$client=[
|
|
'andriod_appid'=>env('app.andriod_appid',''),
|
|
'andriod_webclip'=>env('app.andriod_webclip','') ? : $andriod,
|
|
'ios_appid'=>env('app.ios_appid',''),
|
|
'ios_webclip'=>env('app.ios_webclip',''),
|
|
'win_webclip'=>env('app.win_webclip','') ? : $winUrl,
|
|
'mac_webclip'=>env('app.mac_webclip','') ? : $macUrl
|
|
];
|
|
$noUrl=false;
|
|
if(!$client['andriod_appid'] && !$client['andriod_webclip'] && !$client['ios_appid'] && !$client['ios_webclip']){
|
|
$noUrl=true;
|
|
}
|
|
View::assign('noUrl',$noUrl);
|
|
View::assign('client',$client);
|
|
View::assign('config',$config);
|
|
return View::fetch();
|
|
}
|
|
|
|
// 下载APP
|
|
public function downloadApp(){
|
|
|
|
$platform=request()->param('platform','windows');
|
|
$config=config('version.'.$platform);
|
|
$name=config('version.app_name');
|
|
if($platform=='andriod'){
|
|
$packageName=$name."_Setup_".$config['version'].".apk";
|
|
}elseif($platform=='mac'){
|
|
$packageName=$name."_Setup_".$config['version'].".dmg";
|
|
}else{
|
|
$packageName=$name."_Setup_".$config['version'].".exe";
|
|
}
|
|
$file=PACKAGE_PATH . $packageName;
|
|
if(is_file($file)){
|
|
return \utils\File::download($file, $packageName);
|
|
}else{
|
|
return shutdown(lang('file.exist'));
|
|
}
|
|
}
|
|
}
|
|
|