Files

191 lines
7.0 KiB
PHP

<?php
namespace app\api\controller;
use app\common\controller\Api;
use think\Db;
class Share extends Api
{
protected $noNeedLogin = ['getPoster','getArticle'];
// 无需鉴权的接口,*表示全部
protected $noNeedRight = ['*'];
protected $copywriting = [
'今天上了一节超棒的,学到了好多实用技能,感觉自己又变聪明了呢!',
'推荐一下最近学习的,老师讲得非常生动有趣,让我对这个领域有了更深入的认识。',
'刚刚完成了一门的学习,收获满满!不仅学到了知识,还结交了一群志同道合的小伙伴。',
'最近在家闲来无事,就开始学习一些。发现这种方式真的很适合我,可以自由安排时间和地点。',
'推荐一个非常好用的线上学习平台,里面有各种各样的课程可以选择。我已经在这里学到了好多东西啦!',
'最近在家闲来无事就开始学习一些,发现这种方式真的很省时省力。而且还可以边学边做,非常实用!',
'推荐一个非常好用的在线学习平台,里面有各种各样的课程可以选择。我已经在这里学到了好多东西啦!',
'最近在家闲来无事,就开始尝试一些网络课程。发现这种方式真的很适合我,可以自由安排时间和地点。',
'今天上了一节非常实用的远程培训课程,老师讲解得非常清晰明了,让我受益匪浅。',
'推荐一个在线学习平台,里面有很多免费的课程可以选择。我已经在这里学到了不少新知识。',
'最近开始尝试在线学习,发现这种方式比传统的课堂教育更加灵活和高效。',
'推荐一个在线教育平台,里面有很多优质的教育资源可以供大家使用。我已经在这里找到了很多适合自己的课程。',
'推荐一个在线学习平台,里面有很多实用的职业技能课程可以供大家选择。我已经在这里学到了很多新技能。'
];
/**
* 获取分享海报
* @return void
*/
public function getPoster(){
$type = input('type','');
$src = input('src','');
if(!$src){
$type = 'index';
}
if(!$this->auth->isLogin()){
$nickname = '用户';
// $avatar = file_get_contents(MODULE_URL.'/assets/img/avatar.png');
$userId = 0;
}else{
$nickname = $this->auth->nickname;
// $avatar = $this->auth->avatar;
$userId = $this->auth->id;
}
$params = \app\common\library\share\Links::getShareParams($type,$src,$userId);
$themes = input('themes','');
// if(strpos($avatar,"base64") !==false){
// if(\app\common\library\Platform::getSystemType() == 'single'){
// $avatar = file_get_contents(MODULE_URL.'/assets/img/avatar.png');
// }else{
// $avatar = file_get_contents(APP_PATH.'../public/assets/img/avatar.png');
// }
// }else{
// try{
// $avatar = file_get_contents(cdnurl($avatar));
// }catch(\Exception $e){
// $avatar = file_get_contents(APP_PATH.'../public/assets/img/avatar.png');
// }
// }
$avatar = file_get_contents(MODULE_URL.'/assets/img/avatar.png');
try{
switch (\app\common\library\Platform::getPlatform()){
case 'wxMiniProgram':
$data = \app\common\library\share\Links::getMpLink($type,$params);
$qrCode = \app\common\library\share\Qrsharecode::mkMpCode($data['link'],$data['params']);
break;
case 'dyMiniProgram':
$data = \app\common\library\share\Links::getMpLink($type,$params);
$qrCode = \app\common\library\share\Qrsharecode::mkDouyinMpCode($data['link'],$data['params']);
break;
default:
$link = \app\common\library\share\Links::getLink($type,$params);
$qrCode = \app\common\library\share\Qrsharecode::mkQrcode($link);
break;
}
}catch (\Exception $e){
$this->error("系统错误生成海报失败,请刷新重试");
}
if(!$qrCode){
$this->error("生成海报失败,请刷新重试");
}
$qrCode = base64_decode($qrCode);
$data = \app\common\library\share\Poster::mkPoster($nickname,$avatar,$qrCode,$themes);
if(!$data){
$this->error("生成海报失败,请刷新重试");
}
$this->success("获取成功","data:image/png;base64,".$data);
}
/**
* 获取分享图文
* @return void
*/
public function getArticle(){
$type = input('type','');
$src = input('src','');
if(!$src){
$type = 'page';
$src = 0;
}
if(!$this->auth->isLogin()){
$nickname = '用户';
$avatar = file_get_contents(MODULE_URL.'/assets/img/avatar.png');
$userId = 0;
}else{
$nickname = $this->auth->nickname;
$avatar = $this->auth->avatar;
$userId = $this->auth->id;
}
$data = [
'text'=>'',
'poster'=>[]
];
$params = \app\common\library\share\Links::getShareParams($type,$src,$userId);
if($type == 'goods'){
$courseModel = new \app\common\model\goods\Course();
$goods = $courseModel->getDetail($src);
if($goods){
$data['poster'] = [$goods['cover']];
}
}
$link = \app\common\library\share\Links::getLink($type,$params);
$copywriting = $this->copywriting[rand(0,(count($this->copywriting) -1 ))];
$data['text'] = "【🎉推荐】{$copywriting}\n【🔗链接】{$link}";
$this->success("获取成功",$data);
}
public function getQrcode(){
$type = input('type','');
$platform = input('platform','h5');
$id = input('id','');
if(!$this->auth->isLogin()){
$userId = 0;
}else{
$userId = $this->auth->id;
}
$params = \app\common\library\share\Links::getShareParams($type,$id,$userId,$platform == 'miniprogram' ? 'mp' : 'h5');
try{
if($platform == 'miniprogram'){
$data = \app\common\library\share\Links::getMpLink($type,$params);
$qrCode = \app\common\library\share\Qrsharecode::mkMpCode($data['link'],$data['params']);
}else{
$link = \app\common\library\share\Links::getLink($type,$params);
$qrCode = \app\common\library\share\Qrsharecode::mkQrcode($link);
}
}catch (\Exception $e){
$this->error("生成二维码失败,请刷新重试");
}
if(!$qrCode){
$this->error("生成二维码失败,请刷新重试");
}
$this->success("获取成功","data:image/png;base64,".$qrCode);
}
}