wugg 4 months ago
parent
commit
8248784f62

+ 2 - 1
app/event.php

@@ -16,7 +16,8 @@ return [
         "PlatCat"=>[app\admin\listener\PlatCat::class],
         "copyCompany"=>[\app\listener\CopyCompany::class],
         "updateSupplierGood"=>[app\admin\listener\updateSupplierGood::class],
-        "report_code"=>[app\cxinv\listener\ReportCode::class]
+        "report_code"=>[app\cxinv\listener\ReportCode::class],
+        "voucher"=>[app\youzan\listener\Voucher::class],
     ],
 
     'subscribe' => [

+ 0 - 41
app/youzan/command/UpdatePromod.php

@@ -1,41 +0,0 @@
-<?php
-declare (strict_types = 1);
-
-namespace app\youzan\command;
-
-use app\common\facade\Youzan;
-use app\youzan\model\Promocode;use think\console\Command;
-use think\console\Input;
-use think\console\input\Argument;
-use think\console\input\Option;
-use think\console\Output;use think\facade\Cache;
-
-class UpdatePromod extends Command
-{
-    protected function configure()
-    {
-        // 指令配置
-        $this->setName('updatepromod')
-            ->setDescription('the updatepromod command');
-    }
-
-    protected function execute(Input $input, Output $output)
-    {
-        // 指令输出
-        $param = Cache::get("voucher_list_params");
-        if(!empty($param)){
-            Cache::delete('voucher_list_params');
-            $data = Youzan::getData('promocode_query',$param,'3.0.1');
-            if ($data['code'] != '200') {
-              $output->writeln(json_encode($data, JSON_UNESCAPED_UNICODE));
-            }
-            if (!empty($data['data'])) (new Promocode)->saveAll(array_map(function ($item){
-                $item['activity']['start_time'] = date('Y-m-d H:i:s', $item['activity']['start_time'] / 1000);
-                $item['activity']['end_time'] = date('Y-m-d H:i:s', $item['activity']['end_time'] / 1000);
-                $item['activity']['created_at'] = date('Y-m-d H:i:s', $item['activity']['created_at'] / 1000);
-                return $item['activity'];
-            }, $data['data']));
-        }
-        $output->writeln('updatepromod');
-    }
-}

+ 5 - 1
app/youzan/controller/Voucher.php

@@ -53,6 +53,10 @@ class Voucher extends Base{
                     	'timeline_status'=>0,
                     	'page_size'=>200
                 	]);
-        Cache::set('voucher_list_params',$params);
+        $bool = Cache::get("voucher_list_params");
+        if($bool) return error('一小时内只能刷新一次');
+        Cache::set('voucher_list_params',$params,3600);
+        event('voucher',$params);
+        return success('稍后刷新页面');
     }
 }

+ 29 - 0
app/youzan/listener/Voucher.php

@@ -0,0 +1,29 @@
+<?php
+declare (strict_types = 1);
+
+namespace app\youzan\listener;
+
+use app\common\facade\Youzan;use app\youzan\model\Promocode;
+class Voucher
+{
+    /**
+     * 事件监听处理
+     *
+     * @return mixed
+     */
+    public function handle($event)
+    {
+        if(!empty($event)){
+              $data = Youzan::getData('promocode_query',$event,'3.0.1');
+            if ($data['code'] != '200') throw new \Exception($data['message']);
+              if (!empty($data['data']))array_map(function ($item){
+                $item['activity']['start_time'] = date('Y-m-d H:i:s', $item['activity']['start_time'] / 1000);
+                $item['activity']['end_time'] = date('Y-m-d H:i:s', $item['activity']['end_time'] / 1000);
+                $item['activity']['created_at'] = date('Y-m-d H:i:s', $item['activity']['created_at'] / 1000);
+                $promocode = Promocode::where('id', $item['activity']['id'])->findOrEmpty();
+                if($promocode->isEmpty())  $promocode->insert($item['activity']);
+                else $promocode->save($item['activity']);
+            }, $data['data']);
+        }
+    }
+}

+ 0 - 1
config/console.php

@@ -12,6 +12,5 @@ return [
     	"goodcatcheck"=>\app\command\GoodCatCheck::class,
     	"checkinvoice"=>\app\cxinv\command\CheckInvoice::class,
     	"checktrade"=>\app\cxinv\command\CheckTrade::class,
-
     ],
 ];