247 lines
9.3 KiB
PHP
247 lines
9.3 KiB
PHP
<?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\model\LiveGoods;
|
|
use app\common\server\UrlServer;
|
|
use app\common\server\WeChatServer;
|
|
use EasyWeChat\Factory;
|
|
use Exception;
|
|
use think\facade\Cache;
|
|
|
|
/**
|
|
* 直播商品逻辑层
|
|
* Class LiveGoodsLogic
|
|
* @package app\admin\logic
|
|
*/
|
|
class LiveGoodsLogic
|
|
{
|
|
/**
|
|
* @notes 获取直播商品列表
|
|
* @param $get
|
|
* @return array|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 heshihu
|
|
* @date 2021/9/17 11:43
|
|
*/
|
|
public static function Lists($get)
|
|
{
|
|
try {
|
|
$config = WeChatServer::getMnpConfig();
|
|
$app = Factory::miniProgram($config);
|
|
$access_token = $app->access_token->getToken()['access_token'];
|
|
$goods_url = '&status=' . $get['type'] . '&limit=' . $get['limit'] . '&offset=' . ($get['page'] - 1);
|
|
$url = 'https://api.weixin.qq.com/wxaapi/broadcast/goods/getapproved?access_token=' . $access_token . $goods_url;
|
|
$result = curl_get($url);
|
|
$result = json_decode($result, true);
|
|
if ($result['errcode'] != 0) {
|
|
return ['count' => 0, 'lists' => []];
|
|
}
|
|
$goodsStatus = [0 => '未审核', 1 => '审核中', 2 => '审核通过', 3 => '审核驳回'];
|
|
|
|
|
|
foreach ($result['goods'] as &$goods) {
|
|
// 获取商品信息
|
|
$goods['goods_status_desc'] = $goodsStatus[$get['type']];
|
|
}
|
|
|
|
return ['count' => $result['total'], 'lists' => $result['goods']];
|
|
}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 heshihu
|
|
* @date 2021/9/17 15:28
|
|
*/
|
|
public static function add($post)
|
|
{
|
|
$config = WeChatServer::getMnpConfig();
|
|
$app = Factory::miniProgram($config);
|
|
$access_token = $app->access_token->getToken()['access_token'];
|
|
|
|
$price = 0;
|
|
$price2 = 0;
|
|
switch ($post['use_price_type']) {
|
|
case 1:
|
|
$price = $post['price'];
|
|
break;
|
|
case 2:
|
|
$price = $post['section_price_start'];
|
|
$price2 = $post['section_price_end'];
|
|
break;
|
|
case 3:
|
|
$price = $post['discount_price_start'];
|
|
$price2 = $post['discount_price_end'];
|
|
break;
|
|
}
|
|
|
|
$data['goodsInfo'] = [
|
|
'coverImgUrl' => $post['feedsImg'],
|
|
'name' => $post['goods_name'],
|
|
'priceType' => $post['use_price_type'],
|
|
'price' => $price,
|
|
'price2' => $price2,
|
|
'url' => $post['url'],
|
|
];
|
|
|
|
$url = 'https://api.weixin.qq.com/wxaapi/broadcast/goods/add?access_token=' . $access_token;
|
|
$result = curl_post($url, $data);
|
|
$result = json_decode($result, true);
|
|
if ($result['errcode'] != 0) {
|
|
return self::getLiveGoodsError($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 heshihu
|
|
* @date 2021/9/17 18:39
|
|
*/
|
|
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/goods/delete?access_token=' . $access_token;
|
|
$result = curl_post($url, ['goodsId' => intval($id)]);
|
|
$result = json_decode($result, true);
|
|
if ($result['errcode'] != 0) {
|
|
return self::getLiveGoodsError($result['errcode'], $result['errmsg']);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 获取商品的信息与审核状态
|
|
* @param $goods_ids
|
|
* @return mixed|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 heshihu
|
|
* @date 2021/9/17 17:42
|
|
*/
|
|
// public static function goodsInfo($goods_ids)
|
|
// {
|
|
// $config = WeChatServer::getMnpConfig();
|
|
// $app = Factory::miniProgram($config);
|
|
// $access_token = $app->access_token->getToken(true)['access_token'];
|
|
//
|
|
// $url = 'https://api.weixin.qq.com/wxa/business/getgoodswarehouse?access_token=' . $access_token;
|
|
// $result = curl_post($url, ['goods_ids' => $goods_ids]);
|
|
// $result = json_decode($result, true);
|
|
// if ($result['errcode'] != 0) {
|
|
// return '';
|
|
// }
|
|
// return $result;
|
|
// }
|
|
|
|
public static function addUploadImage($goods_image)
|
|
{
|
|
try {
|
|
$config = WeChatServer::getMnpConfig();
|
|
$app = Factory::miniProgram($config);
|
|
$path = env('root_path') . 'public/' . strrchr($goods_image, 'uploads');
|
|
if (!file_exists($path)) {
|
|
return '商品封面不存在,请上传商品封面';
|
|
}
|
|
|
|
// 裁剪图片尺寸,避免图片太大导致上传失败
|
|
// 打开图片文件
|
|
$image = \think\Image::open($path);
|
|
// 定义上传文件目录
|
|
$dir = './uploads/goods/';
|
|
// 判断文件目录是否存在
|
|
if (!is_dir($dir)) {
|
|
// 创建文件目录
|
|
if (!mkdir($dir, 0777, true)) {
|
|
return '请给uploads目录开启777权限';
|
|
}
|
|
}
|
|
// 定义新图片名称
|
|
$new_image = 'livegoods' . time() . '.png';
|
|
$image->thumb(300, 300)->save('./uploads/goods/' . $new_image);
|
|
// 获取完整的新文件路径
|
|
$new_path = env('root_path') . 'public/uploads/goods/' . $new_image;
|
|
$result = $app->media->uploadImage($new_path);
|
|
|
|
return ['media_id' => $result['media_id'], 'url' => UrlServer::getFileUrl('uploads/goods/' . $new_image)];
|
|
} catch (Exception $e) {
|
|
return $e->getMessage();
|
|
}
|
|
}
|
|
|
|
public static function getLiveGoodsError($code, $errmsg){
|
|
$error_msg = [
|
|
-1 => '系统错误',
|
|
1003 => '商品id不存在',
|
|
47001 => '参格式不符合规范',
|
|
200002 => '入参错误',
|
|
300001 => '禁止创建/更新商品',
|
|
300002 => '名称长度不符合规则',
|
|
300003 => '价格输入不合规',
|
|
300004 => '商品名称存在违规违法内容',
|
|
300005 => '商品封面图片存在违规违法内容',
|
|
300006 => '图片上传失败',
|
|
300007 => '线上小程序版本不存在该链接',
|
|
300008 => '添加商品失败',
|
|
300009 => '商品审核撤回失败',
|
|
300010 => '商品审核状态不对',
|
|
300011 => '操作非法',
|
|
300012 => '没有提审额度(每天500次提审额度)',
|
|
300013 => '提审失败',
|
|
300014 => '审核中,无法删除',
|
|
300017 => '商品未提审',
|
|
300018 => '商品封面图片尺寸过大',
|
|
300021 => '商品添加成功,审核失败'
|
|
];
|
|
if(!isset($error_msg[$code])){
|
|
return $errmsg;
|
|
}
|
|
return $error_msg[$code];
|
|
}
|
|
} |