first commit

This commit is contained in:
云泽网
2025-07-27 21:42:34 +08:00
commit c1cce5ccb4
2779 changed files with 340042 additions and 0 deletions
@@ -0,0 +1,209 @@
<?php
// +----------------------------------------------------------------------
// | likeshop100%开源免费商用商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用,保留版权即可
// | 商业版本务必购买商业授权,以免引起法律纠纷
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | gitee下载:https://gitee.com/likeshop_gitee
// | github下载:https://github.com/likeshop-github
// | 访问官网:https://www.likeshop.cn
// | 访问社区:https://home.likeshop.cn
// | 访问手册:http://doc.likeshop.cn
// | 微信公众号:likeshop技术社区
// | likeshop团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshopTeam
// +----------------------------------------------------------------------
namespace app\admin\logic;
use app\common\server\UrlServer;
use app\common\server\WeChatServer;
use EasyWeChat\Factory;
use Exception;
class LiveRoomLogic
{
/**
* @notes 获取assessToken
* @return mixed
* @throws @\EasyWeChat\Kernel\Exceptions\HttpException
* @throws @\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws @\EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws @\Psr\SimpleCache\InvalidArgumentException
* @author 张无忌
* @date 2021/10/13 11:36
*/
public static function getAccessToken()
{
$config = WeChatServer::getMnpConfig();
$app = Factory::miniProgram($config);
return $app->access_token->getToken()['access_token'];
}
/**
* @notes 获取直播间列表
* @param $get
* @return array|string
* @author 张无忌
* @date 2021/9/13 15:54
*/
public static function lists($get)
{
try {
$config = WeChatServer::getMnpConfig();
$app = Factory::miniProgram($config);
$result = $app->live->getRooms($get['page'] - 1, $get['limit']);
if ($result['errcode'] != 0) {
return $result['errcode'] . '' . $result['errmsg'];
}
$liveStatus = [101 => '直播中', 102 => '未开始', 103 => '已结束', 104 => '禁播', 105 => '暂停', 106 => '异常', 107 => '已过期'];
$data = [];
foreach ($result['room_info'] as $item) {
$data[] = [
'name' => $item['name'],
'roomid' => $item['roomid'],
'cover_img' => $item['cover_img'],
'anchor_name' => $item['anchor_name'],
'live_status' => $liveStatus[$item['live_status']],
'goods' => count($item['goods']),
'start_time' => date('Y-m-d H:i:s', $item['start_time']),
'end_time' => date('Y-m-d H:i:s', $item['end_time'])
];
}
return ['count' => $result['total'], 'lists' => $data];
} catch (Exception $e) {
return $e->getMessage();
}
}
/**
* @notes 创建直播间
* @param $post
* @return bool|string
* @throws @\EasyWeChat\Kernel\Exceptions\HttpException
* @throws @\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws @\EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws @\EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws @\Psr\SimpleCache\InvalidArgumentException
* @author 张无忌
* @date 2021/9/14 15:49
*/
public static function add($post)
{
$config = WeChatServer::getMnpConfig();
$app = Factory::miniProgram($config);
$access_token = $app->access_token->getToken()['access_token'];
$startTime = strtotime($post['startTime']);
$endTime = strtotime($post['endTime']);
if (($startTime - time()) <= 610) {
return '开播时间需要在当前时间的10分钟后';
}
if (($endTime - $startTime) <= (30 * 60)) {
return '播时间和结束时间间隔不得短于30分钟';
}
if (empty($post['coverImg'])) {
return '请上传封面图';
}
if (empty($post['shareImg'])) {
return '请上传分享图';
}
if (empty($post['feedsImg'])) {
return '请上传背景图';
}
$data = [
'name' => $post['name'],
'coverImg' => $post['coverImg'],
'startTime' => strtotime($post['startTime']),
'endTime' => strtotime($post['endTime']),
'anchorName' => $post['anchorName'],
'anchorWechat' => $post['anchorWechat'],
'subAnchorWechat' => $post['subAnchorWechat'] ?? '',
'createrWechat' => $post['anchorWechat'],
'shareImg' => $post['shareImg'],
'feedsImg' => $post['feedsImg'],
'type' => intval($post['type']),
'isFeedsPublic' => empty($post['isFeedsPublic']) ? 0 : 1,
'closeLike' => empty($post['closeLike']) ? 1 : 0,
'closeGoods' => empty($post['closeGoods']) ? 1 : 0,
'closeComment' => empty($post['closeComment']) ? 1 : 0,
'closeReplay' => empty($post['closeReplay']) ? 1 : 0,
'closeShare' => empty($post['closeShare']) ? 1 : 0,
'closeKf' => empty($post['closeKf']) ? 1 : 0,
];
$url = 'https://api.weixin.qq.com/wxaapi/broadcast/room/create?access_token='.$access_token;
$result = curl_post($url, $data);
$result = json_decode($result, true);
if ($result['errcode'] != 0) {
return $result['errcode'] . '' . $result['errmsg'];
}
return true;
}
/**
* @notes 删除直播间
* @param $id
* @return bool|string
* @throws @\EasyWeChat\Kernel\Exceptions\HttpException
* @throws @\EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws @\EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws @\EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws @\Psr\SimpleCache\InvalidArgumentException
* @author 张无忌
* @date 2021/9/14 16:00
*/
public static function del($id)
{
$config = WeChatServer::getMnpConfig();
$app = Factory::miniProgram($config);
$access_token = $app->access_token->getToken()['access_token'];
$url = 'https://api.weixin.qq.com/wxaapi/broadcast/room/deleteroom?access_token='.$access_token;
$result = curl_post($url, ['id'=>intval($id)]);
$result = json_decode($result, true);
if ($result['errcode'] != 0) {
return $result['errcode'] . '' . $result['errmsg'];
}
return true;
}
/**
* @notes 上传临时素材图片
* @param $url
* @return array|string
* @throws @\GuzzleHttp\Exception\GuzzleException
* @author 张无忌
* @date 2021/9/13 17:34
*/
public static function upload($url)
{
try {
$config = WeChatServer::getMnpConfig();
$app = Factory::miniProgram($config);
$path = env('root_path').'public/uploads/temp/'.$url;
$result = $app->media->uploadImage($path);
return ['media_id'=>$result['media_id'], 'url'=>UrlServer::getFileUrl('uploads/temp/'.$url)];
}catch (Exception $e) {
return $e->getMessage();
}
}
}