Ver código fonte

修改拼团

dongxiaoqin 1 ano atrás
pai
commit
e94635bcea
1 arquivos alterados com 24 adições e 48 exclusões
  1. 24 48
      app/adminapi/logic/group_activity/GroupActivityLogic.php

+ 24 - 48
app/adminapi/logic/group_activity/GroupActivityLogic.php

@@ -15,17 +15,13 @@
 namespace app\adminapi\logic\group_activity;
 
 
+use think\Exception;
 use think\facade\Db;
+use think\facade\Log;
 use app\common\logic\BaseLogic;
+use app\common\service\wechat\WeChatMnpService;
 use app\common\model\group_activity\GroupActivity;
-use Endroid\QrCode\QrCode;
-use Endroid\QrCode\Logo\Logo;
-use Endroid\QrCode\Color\Color;
-use Endroid\QrCode\Writer\PngWriter;
-use Endroid\QrCode\Encoding\Encoding;
-use Endroid\QrCode\Label\Font\NotoSans;
-use Endroid\QrCode\Label\LabelAlignment;
-use Endroid\QrCode\ErrorCorrectionLevel;
+
 /**
  * 拼团活动逻辑
  * Class GroupActivityLogic
@@ -166,52 +162,32 @@ class GroupActivityLogic extends BaseLogic
      * 获取活动二维码
      * @return string|void
      */
-    public static function getQRCode($params,$url)
+    public static function getQRCode($params,$url='weixiu.kyjlkj.com')
     {
         try {
-            $savePath = './uploads/group_activity';
-            $file_name = $savePath.'/123456789'.$params['id'].'.png';
-
-            //判断二维码是否存在
-            if (file_exists($file_name)) {
-                return $url.'/'.$file_name;
+            $mnp_page = 'pages/web_view/group';
+            if(empty($params['mnp_page'])){
+                throw new Exception('路径错误');
             }
-
-            // 要生成二维码的 H5 链接
-            $h5Url = 'https://weixiuadmin.kyjlkj.com?id=' . $params['id'];
-
-            // 创建一个 PNG 写入器实例
-            $writer = new PngWriter();
-
-            // 创建二维码实例
-            $qrCode = QrCode::create($h5Url)
-                ->setEncoding(new Encoding('UTF-8'))
-                ->setErrorCorrectionLevel(ErrorCorrectionLevel::High)
-                ->setSize(300)
-                ->setMargin(10)
-                ->setForegroundColor(new Color(0, 0, 0))
-                ->setBackgroundColor(new Color(255, 255, 255));
-            // 添加文字标签
-            $label = \Endroid\QrCode\Label\Label::create('众盾闪修拼团活动')
-            ->setFont(new NotoSans(20))
-            ->setAlignment(LabelAlignment::Center);
-
-            // 添加 logo
-            $logoPath = './uploads/group_activity/logo.png'; 
-            $logo = Logo::create($logoPath)->setResizeToWidth(80);
-            // 生成二维码图像
-            $result = $writer->write($qrCode, $logo, $label);
-
-            // 定义保存二维码的文件路径
-            if(!is_dir($savePath)){
-                mkdir($savePath);
+            $scene_page = 'group';
+            Log::info('getQRCode:'.rawurlencode($scene_page));
+            $response = (new WeChatMnpService())->getUnlimitedQRCode(
+                'page='.$scene_page.'&id='.$params['id'],
+                $mnp_page,
+                env('miniprogram.mini_env_version', 'release'),
+                false
+            );
+            Log::info('getQRCode:'.json_encode([$response]));
+            $qrcode = $response->getContent();
+            if(!is_dir('./uploads/wx_qrcode/'.date('Ymd'))){
+                mkdir('./uploads/wx_qrcode/'.date('Ymd'));
             }
-            // 将二维码保存到本地文件
-            $result->saveToFile($file_name);
+            $file_name = 'uploads/wx_qrcode/'.date('Ymd').'/'.time().rand(1000,9999).'.png';
+            file_put_contents($file_name, $qrcode);
             return $url.'/'.$file_name;
         } catch (\Throwable $e) {
-            // 失败
-            echo $e->getMessage();
+            Log::info('getQRCode:'.$e->getMessage());
+            return '';
         }
     }
 }