tangyuanwang 14 часов назад
Родитель
Сommit
fa43b39a8e

+ 0 - 55
app/Http/Controllers/Manager/Process/LowPriceGoods.php

@@ -15,8 +15,6 @@ use App\Models\Manager\Process\LowPriceGoodsMember as LowPriceGoodsMemberModel;
 use App\Models\manager\Process\LowPriceGoodsRecord as LowPriceGoodsRecordModel;
 use Illuminate\Support\Facades\DB;
 use App\Models\Manager\Citys as CitysModel;
-use App\Jobs\Manager\Process\SubEmailJobs;
-use App\Jobs\Manager\Process\SubSmsJobs;
 
 /**
  * 违规处理-低价商品
@@ -813,59 +811,6 @@ class LowPriceGoods extends Controller
         return             json_send(['code' => 'success', 'msg' => '执行成功']);
     }
 
-    /**
-     * 执行订阅邮件推送
-     * @author    唐远望
-     * @version   1.0
-     * @date      2026-03-30
-     * 
-     */
-    public function subscribe_email_push(Request $request)
-    {
-        // 验证参数
-        $request->scene('data_cleaning')->validate();
-        $admin_company_id = request('admin_company_id', '0');
-        $company_id = request('access_token.company_id', '0');
-        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
-        // 权限判断
-        if ($is_admin != 1 && $company_id != 0) {
-        } else {
-            $company_id  = $admin_company_id;
-        }
-        $message_data = ['notice_type' => 'low_price_goods', 'company_id' => $company_id];
-        SubEmailJobs::dispatch($message_data);
-        // SubEmailJobs::dispatchSync($message_data);
-        // 告知结果
-        return             json_send(['code' => 'success', 'msg' => '执行成功']);
-    }
-
-    /**
-     * 执行订阅短信推送
-     * @author    唐远望
-     * @version   1.0
-     * @date      2026-03-30
-     * 
-     */
-    public function subscribe_sms_push(Request $request)
-    {
-        // 验证参数
-        $request->scene('data_cleaning')->validate();
-        $admin_company_id = request('admin_company_id', '0');
-        $company_id = request('access_token.company_id', '0');
-        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
-        // 权限判断
-        if ($is_admin != 1 && $company_id != 0) {
-        } else {
-            $company_id  = $admin_company_id;
-        }
-        $message_data = ['notice_type' => 'low_price_goods', 'company_id' => $company_id];
-        SubSmsJobs::dispatch($message_data);
-        // SubSmsJobs::dispatchSync($message_data);
-        // 告知结果
-        return             json_send(['code' => 'success', 'msg' => '执行成功']);
-    }
-
-
     /**
      * 处理买药中的业务
      * @author    唐远望

+ 0 - 56
app/Http/Controllers/Manager/Process/ViolationProduct.php

@@ -14,8 +14,6 @@ use PhpOffice\PhpSpreadsheet\IOFactory;
 use App\Models\Manager\Process\ViolationProductMember as ViolationProductMemberModel;
 use App\Models\Manager\Citys as CitysModel;
 use Illuminate\Support\Facades\DB;
-use App\Jobs\Manager\Process\SubEmailJobs;
-use App\Jobs\Manager\Process\SubSmsJobs;
 
 /**
  * 违规处理-违规商品
@@ -810,60 +808,6 @@ class ViolationProduct extends Controller
         return             json_send(['code' => 'success', 'msg' => '执行成功']);
     }
 
-    /**
-     * 执行订阅邮件推送
-     * @author    唐远望
-     * @version   1.0
-     * @date      2026-03-30
-     * 
-     */
-    public function subscribe_email_push(Request $request)
-    {
-        // 验证参数
-        $request->scene('data_cleaning')->validate();
-        $admin_company_id = request('admin_company_id', '0');
-        $company_id = request('access_token.company_id', '0');
-        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
-        // 权限判断
-        if ($is_admin != 1 && $company_id != 0) {
-        } else {
-            $company_id  = $admin_company_id;
-        }
-        $message_data = ['notice_type' => 'violation_product', 'company_id' => $company_id];
-        SubEmailJobs::dispatch($message_data);
-        // SubEmailJobs::dispatchSync($message_data);
-        // 告知结果
-        return             json_send(['code' => 'success', 'msg' => '执行成功']);
-    }
-
-
-    /**
-     * 执行订阅短信推送
-     * @author    唐远望
-     * @version   1.0
-     * @date      2026-03-30
-     * 
-     */
-    public function subscribe_sms_push(Request $request)
-    {
-        // 验证参数
-        $request->scene('data_cleaning')->validate();
-        $admin_company_id = request('admin_company_id', '0');
-        $company_id = request('access_token.company_id', '0');
-        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
-        // 权限判断
-        if ($is_admin != 1 && $company_id != 0) {
-        } else {
-            $company_id  = $admin_company_id;
-        }
-        $message_data = ['notice_type' => 'violation_product', 'company_id' => $company_id];
-        SubSmsJobs::dispatch($message_data);
-        // SubSmsJobs::dispatchSync($message_data);
-        // 告知结果
-        return             json_send(['code' => 'success', 'msg' => '执行成功']);
-    }
-
-
 
     /**
      * 下载导入模板

+ 0 - 220
app/Jobs/Manager/Process/SubEmailJobs.php

@@ -1,220 +0,0 @@
-<?php
-
-namespace App\Jobs\Manager\Process;
-
-use Illuminate\Bus\Queueable;
-use Illuminate\Contracts\Queue\ShouldBeUnique;
-use Illuminate\Contracts\Queue\ShouldQueue;
-use Illuminate\Foundation\Bus\Dispatchable;
-use Illuminate\Queue\InteractsWithQueue;
-use Illuminate\Queue\SerializesModels;
-use App\Facades\Servers\Logs\Log;
-use App\Servers\Email\VerifyCode as EmailVerifyCode;
-use App\Models\Manager\Process\LowPriceGoodsMember as LowPriceGoodsMemberModel;
-use App\Models\Manager\Process\LowPriceGoods as LowPriceGoodsModel;
-use App\Models\Manager\Process\ViolationProductMember as ViolationProductMemberModel;
-use App\Models\Manager\Process\ViolationProduct as ViolationProductModel;
-use Illuminate\Support\Carbon;
-use App\Models\Manager\Process\ViolationStore as ViolationStoreModel;
-use App\Models\Manager\Process\ViolationStoreMember as ViolationStoreMemberModel;
-
-
-/**
- * 订阅邮件通知
- * @author  唐远望
- * @version 1.0
- * @date  2026-03-30
- */
-class SubEmailJobs implements ShouldQueue
-{
-    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
-    protected $message_data;
-    /**
-     * Create a new job instance.
-     *
-     * @return void
-     */
-    public function __construct(array $message_data)
-    {
-        $this->message_data = $message_data;
-    }
-
-    /**
-     * Execute the job.
-     *
-     * @return void
-     */
-    public function handle()
-    {
-        try {
-            $notice_type = $this->message_data['notice_type'];
-            $company_id = $this->message_data['company_id'];
-            switch ($notice_type) {
-                case 'low_price_goods':
-                    $this->send_low_price_goods_notice($company_id);
-                    break;
-                case 'violation_product':
-                    $this->send_violation_product($company_id);
-                    break;
-                case 'violation_store':
-                    $this->send_violation_store($company_id);
-                    break;
-                default:
-                    break;
-            }
-        } catch (\Exception $e) {
-            Log::info('job_error', '订阅邮件通知推送队列失败', ['data' => $this->message_data, 'error' => $e->getMessage()]);
-        }
-    }
-
-    /**
-     * 邮件消息消息订阅推送(低价挂网)
-     * @author  唐远望
-     * @version 1.0
-     * @date  2026-03-04
-     */
-    private function send_low_price_goods_notice($company_id)
-    {
-        $EmailVerifyCode = new EmailVerifyCode();
-        $LowPriceGoodsMemberModel = new LowPriceGoodsMemberModel();
-        $LowPriceGoodsModel = new LowPriceGoodsModel();
-        //获取今日待处理的商品记录
-        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
-        $todayEnd = Carbon::today()->endOfDay()->getTimestamp(); // 今天结束时间 23:59:59
-        $lowprice_ids = $LowPriceGoodsModel->where([['insert_time', '>=', $todayStart], ['insert_time', '<=', $todayEnd], ['company_id', '=', $company_id]])->pluck('id')->toArray();
-        if (empty($lowprice_ids)) return true;
-        //获取开启了通知服务的用户
-        $usert_list = $LowPriceGoodsMemberModel
-            ->whereIn('lowprice_product_logid', $lowprice_ids)
-            ->join('personnel_employee', 'process_lowprice_product_member.employee_id', '=', 'personnel_employee.id')
-            ->where('personnel_employee.open_notice', 0)
-            ->where('personnel_employee.company_id', $company_id)
-            ->where([['personnel_employee.email', '!=', ''], ['personnel_employee.email', '!=', null]])
-            ->select(['process_lowprice_product_member.*', 'personnel_employee.email'])
-            ->get()->toArray();
-        if (empty($usert_list)) return true;
-        //按用户统计待处理的商品数量
-        $user_data = [];
-        foreach ($usert_list as $key => $value) {
-            $user_id = $value['employee_id'];
-            if (!isset($user_data[$user_id])) {
-                $user_data[$user_id]['employee_id'] = $user_id;
-                $user_data[$user_id]['email'] = $value['email'];
-                $user_data[$user_id]['log_ids'][] = $value['lowprice_product_logid'];
-            } else {
-                $user_data[$user_id]['log_ids'][] = $value['lowprice_product_logid'];
-            }
-        }
-        //发送邮件
-        foreach ($user_data as $key => $value) {
-            $email_to = $value['email'];
-            $totle_number = count($value['log_ids']);
-            $email_title = '低价挂网商品提醒';
-            $email_content = '今日待处理链接共' . $totle_number . '条,请及时登录智价云系统处理。';
-            $EmailVerifyCode->sendSmtpEmail($email_to, $email_title, $email_content);
-        }
-    }
-
-    /**
-     * 邮件消息消息订阅推送(禁止挂网)
-     * @author  唐远望
-     * @version 1.0
-     * @date  2026-03-04
-     */
-    private function send_violation_product($company_id)
-    {
-        $EmailVerifyCode = new EmailVerifyCode();
-        $ViolationProductMemberModel = new ViolationProductMemberModel();
-        $ViolationProductModel = new ViolationProductModel();
-        //获取今日待处理的商品记录
-        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
-        $todayEnd = Carbon::today()->endOfDay()->getTimestamp(); // 今天结束时间 23:59:59
-        $violation_price_ids = $ViolationProductModel->where([['insert_time', '>=', $todayStart], ['insert_time', '<=', $todayEnd], ['company_id', '=', $company_id]])->pluck('id')->toArray();
-        if (empty($violation_price_ids)) return true;
-        //获取开启了通知服务的用户
-        $usert_list = $ViolationProductMemberModel
-            ->whereIn('violation_product_logid', $violation_price_ids)
-            ->join('personnel_employee', 'process_violation_product_member.employee_id', '=', 'personnel_employee.id')
-            ->where('personnel_employee.open_notice', 0)
-            ->where('personnel_employee.company_id', $company_id)
-            ->where([['personnel_employee.email', '!=', ''], ['personnel_employee.email', '!=', null]])
-            ->select(['process_violation_product_member.*', 'personnel_employee.email'])
-            ->get()->toArray();
-        if (empty($usert_list)) return true;
-        //按用户统计待处理的商品数量
-        $user_data = [];
-        foreach ($usert_list as $key => $value) {
-            $user_id = $value['employee_id'];
-            if (!isset($user_data[$user_id])) {
-                $user_data[$user_id]['employee_id'] = $user_id;
-                $user_data[$user_id]['email'] = $value['email'];
-                $user_data[$user_id]['log_ids'][] = $value['violation_product_logid'];
-            } else {
-                $user_data[$user_id]['log_ids'][] = $value['violation_product_logid'];
-            }
-        }
-        //发送邮件
-        foreach ($user_data as $key => $value) {
-            $email_to = $value['email'];
-            $totle_number = count($value['log_ids']);
-            $email_title = '禁止挂网商品提醒';
-            $email_content = '今日待处理链接共' . $totle_number . '条,请及时登录智价云系统处理。';
-            $EmailVerifyCode->sendSmtpEmail($email_to, $email_title, $email_content);
-        }
-    }
-
-
-    /**
-     * 邮件消息消息订阅推送(禁止店铺)
-     * @author  唐远望
-     * @version 1.0
-     * @date  2026-03-04
-     */
-    private function send_violation_store($company_id){
-        $EmailVerifyCode = new EmailVerifyCode();
-        $ViolationStoreMemberModel = new ViolationStoreMemberModel();
-        $ViolationStoreModel = new ViolationStoreModel();
-        //获取今日待处理的店铺记录
-        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
-        $todayEnd = Carbon::today()->endOfDay()->getTimestamp(); // 今天结束时间 23:59:59
-        $violation_price_ids = $ViolationStoreModel->where([['insert_time', '>=', $todayStart], ['insert_time', '<=', $todayEnd], ['company_id', '=', $company_id]])->pluck('id')->toArray();
-        if (empty($violation_price_ids)) return true;
-        //获取开启了通知服务的用户
-        $usert_list = $ViolationStoreMemberModel
-            ->whereIn('violation_store_logid', $violation_price_ids)
-            ->join('personnel_employee', 'process_violation_store_member.employee_id', '=', 'personnel_employee.id')
-            ->where('personnel_employee.open_notice', 0)
-            ->where('personnel_employee.company_id', $company_id)
-            ->where([['personnel_employee.email', '!=', ''], ['personnel_employee.email', '!=', null]])
-            ->select(['process_violation_store_member.*', 'personnel_employee.email'])
-            ->get()->toArray();
-        if (empty($usert_list)) return true;
-        //按用户统计待处理的商品数量
-        $user_data = [];
-        foreach ($usert_list as $key => $value) {
-            $user_id = $value['employee_id'];
-            if (!isset($user_data[$user_id])) {
-                $user_data[$user_id]['employee_id'] = $user_id;
-                $user_data[$user_id]['email'] = $value['email'];
-                $user_data[$user_id]['log_ids'][] = $value['violation_store_logid'];
-            } else {
-                $user_data[$user_id]['log_ids'][] = $value['violation_store_logid'];
-            }
-        }
-        //发送邮件
-        foreach ($user_data as $key => $value) {
-            $email_to = $value['email'];
-            $totle_number = count($value['log_ids']);
-            $email_title = '禁止挂网店铺提醒';
-            $email_content = '今日待处理店铺共' . $totle_number . '条,请及时登录智价云系统处理。';
-            $EmailVerifyCode->sendSmtpEmail($email_to, $email_title, $email_content);
-        }
-    }
-
-
-
-    public function failed(\Throwable $exception)
-    {
-        Log::info('job_error', '订阅邮件通知推送队列完全失败', ['data' => $this->message_data, 'error' => $exception]);
-    }
-}

+ 46 - 47
app/Jobs/Manager/Process/SubSmsJobs.php → app/Jobs/Manager/Process/SubNoticeJobs.php

@@ -17,18 +17,20 @@ use App\Models\Manager\Process\ViolationStore as ViolationStoreModel;
 use App\Models\Manager\Process\ViolationStoreMember as ViolationStoreMemberModel;
 use Illuminate\Support\Carbon;
 use App\Facades\Servers\Sms\VerifyCode as Sms;
+use App\Servers\Email\VerifyCode as EmailVerifyCode;
 
 
 /**
- * 订阅短信通知
+ * 订阅通知
  * @author  唐远望
  * @version 1.0
  * @date  2026-03-30
  */
-class SubSmsJobs implements ShouldQueue
+class SubNoticeJobs implements ShouldQueue
 {
     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
     protected $message_data;
+    protected $user_data;
     /**
      * Create a new job instance.
      *
@@ -47,20 +49,24 @@ class SubSmsJobs implements ShouldQueue
     public function handle()
     {
         try {
-            $notice_type = $this->message_data['notice_type'];
+            $EmailVerifyCode = new EmailVerifyCode();
+            $sms_tpl_id =  config('verifycode.aliyun_process_lowprice_product.sms_tpl');
             $company_id = $this->message_data['company_id'];
-            switch ($notice_type) {
-                case 'low_price_goods':
-                    $this->send_low_price_goods_notice($company_id);
-                    break;
-                case 'violation_product':
-                    $this->send_violation_product($company_id);
-                    break;
-                case 'violation_store':
-                    $this->send_violation_store($company_id);
-                    break;
-                default:
-                    break;
+            $action_one = $this->send_low_price_goods_notice($company_id);
+            $action_two = $this->send_violation_product($company_id);
+            $action_three = $this->send_violation_store($company_id);
+            if ($action_one && $action_two && $action_three) {
+                foreach ($this->user_data as $key => $value) {
+                    $mobile = $value['mobile'];
+                    $email_to = $value['email'];
+                    $number1 = count($this->user_data[$key]['lowprice_product_logids']);
+                    $number2 = count($this->user_data[$key]['violation_product_logids']);
+                    $number3 = count($this->user_data[$key]['violation_store_logids']);
+                    Sms::sendContent($mobile, ['number1' => $number1, 'number2' => $number2, 'number3' => $number3], $sms_tpl_id);
+                    $email_title = '智价云违规数据通知提醒';
+                    $email_content = "智价云提醒、本次低价挂网商品共" . $number1 . "条、禁止挂网商品共" . $number2 . "条、禁止挂网店铺共" . $number3 . "条";
+                    $EmailVerifyCode->sendSmtpEmail($email_to, $email_title, $email_content);
+                }
             }
         } catch (\Exception $e) {
             Log::info('job_error', '订阅短信通知推送队列失败', ['data' => $this->message_data, 'error' => $e->getMessage()]);
@@ -93,24 +99,17 @@ class SubSmsJobs implements ShouldQueue
             ->get()->toArray();
         if (empty($usert_list)) return true;
         //按用户统计待处理的商品数量
-        $user_data = [];
         foreach ($usert_list as $key => $value) {
             $user_id = $value['employee_id'];
             if (!isset($user_data[$user_id])) {
-                $user_data[$user_id]['employee_id'] = $user_id;
-                $user_data[$user_id]['mobile'] = $value['mobile'];
-                $user_data[$user_id]['log_ids'][] = $value['lowprice_product_logid'];
+                $this->user_data[$user_id]['employee_id'] = $user_id;
+                $this->user_data[$user_id]['mobile'] = $value['mobile'];
+                $this->user_data[$user_id]['lowprice_product_logids'][] = $value['lowprice_product_logid'];
             } else {
-                $user_data[$user_id]['log_ids'][] = $value['lowprice_product_logid'];
+                $this->user_data[$user_id]['lowprice_product_logids'][] = $value['lowprice_product_logid'];
             }
         }
-        $sms_tpl_id =  config('verifycode.aliyun_process_lowprice_product.sms_tpl');
-        //发送短信
-        foreach ($user_data as $key => $value) {
-            $phone = $value['mobile'];
-            $totle_number = count($value['log_ids']);
-            Sms::sendContent($phone, ['totle_number' => $totle_number], $sms_tpl_id);
-        }
+        return true;
     }
 
     /**
@@ -139,33 +138,27 @@ class SubSmsJobs implements ShouldQueue
             ->get()->toArray();
         if (empty($usert_list)) return true;
         //按用户统计待处理的商品数量
-        $user_data = [];
         foreach ($usert_list as $key => $value) {
             $user_id = $value['employee_id'];
             if (!isset($user_data[$user_id])) {
-                $user_data[$user_id]['employee_id'] = $user_id;
-                $user_data[$user_id]['mobile'] = $value['mobile'];
-                $user_data[$user_id]['log_ids'][] = $value['violation_product_logid'];
+                $this->user_data[$user_id]['employee_id'] = $user_id;
+                $this->user_data[$user_id]['mobile'] = $value['mobile'];
+                $this->user_data[$user_id]['violation_product_logids'][] = $value['violation_product_logid'];
             } else {
-                $user_data[$user_id]['log_ids'][] = $value['violation_product_logid'];
+                $this->user_data[$user_id]['violation_product_logids'][] = $value['violation_product_logid'];
             }
         }
-        $sms_tpl_id =  config('verifycode.aliyun_process_violation_product.sms_tpl');
-        //发送短信
-        foreach ($user_data as $key => $value) {
-            $phone = $value['mobile'];
-            $totle_number = count($value['log_ids']);
-            Sms::sendContent($phone, ['totle_number' => $totle_number], $sms_tpl_id);
-        }
+        return true;
     }
-    
+
     /**
      * 短信消息消息订阅推送(禁止店铺)
      * @author  唐远望
      * @version 1.0
      * @date  2026-03-04
      */
-    private function send_violation_store($company_id){
+    private function send_violation_store($company_id)
+    {
         $ViolationStoreMemberModel = new ViolationStoreMemberModel();
         $ViolationStoreModel = new ViolationStoreModel();
         //获取今日待处理的店铺记录
@@ -195,13 +188,19 @@ class SubSmsJobs implements ShouldQueue
                 $user_data[$user_id]['log_ids'][] = $value['violation_store_logid'];
             }
         }
-        $sms_tpl_id =  config('verifycode.aliyun_process_violation_store.sms_tpl');
-        //发送短信
-        foreach ($user_data as $key => $value) {
-            $phone = $value['mobile'];
-            $totle_number = count($value['log_ids']);
-            Sms::sendContent($phone, ['totle_number' => $totle_number], $sms_tpl_id);
+
+        //按用户统计待处理的商品数量
+        foreach ($usert_list as $key => $value) {
+            $user_id = $value['employee_id'];
+            if (!isset($user_data[$user_id])) {
+                $this->user_data[$user_id]['employee_id'] = $user_id;
+                $this->user_data[$user_id]['mobile'] = $value['mobile'];
+                $this->user_data[$user_id]['violation_store_logids'][] = $value['violation_store_logid'];
+            } else {
+                $this->user_data[$user_id]['violation_store_logids'][] = $value['violation_store_logid'];
+            }
         }
+        return true;
     }
 
 

+ 0 - 8
routes/manager.php

@@ -223,10 +223,6 @@ Route::any('process/low_price_goods/set_processing_status', [App\Http\Controller
 Route::any('process/low_price_goods/delete', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'delete']);
 // 违规处理-低价挂网商品-执行数据清洗
 Route::any('process/low_price_goods/data_cleaning', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'data_cleaning']);
-// 违规处理-低价挂网商品-执行订阅邮件推送
-Route::any('process/low_price_goods/subscribe_email_push', [App\Http\Controllers\Manager\Process\LowPriceGoods::class,'subscribe_email_push']);
-// 违规处理-低价挂网商品-执行订阅短信推送
-Route::any('process/low_price_goods/subscribe_sms_push', [App\Http\Controllers\Manager\Process\LowPriceGoods::class,'subscribe_sms_push']);
 // 违规处理-低价挂网商品-导出Excel
 Route::any('process/low_price_goods/export_excel', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'export_excel']);
 // 违规处理-低价挂网商品-处理买药中的业务
@@ -254,10 +250,6 @@ Route::any('process/violation_goods/set_processing_status', [App\Http\Controller
 Route::any('process/violation_goods/delete', [App\Http\Controllers\Manager\Process\ViolationProduct::class, 'delete']);
 // 违规处理-禁止挂网商品-执行数据清洗
 Route::any('process/violation_goods/data_cleaning', [App\Http\Controllers\Manager\Process\ViolationProduct::class, 'data_cleaning']);
-// 违规处理-禁止挂网商品-执行订阅邮件推送
-Route::any('process/violation_goods/subscribe_email_push', [App\Http\Controllers\Manager\Process\ViolationProduct::class,'subscribe_email_push']);
-// 违规处理-禁止挂网商品-执行订阅短信推送
-Route::any('process/violation_goods/subscribe_sms_push', [App\Http\Controllers\Manager\Process\ViolationProduct::class,'subscribe_sms_push']);
 // 违规处理-禁止挂网商品-导出Excel
 Route::any('process/violation_goods/export_excel', [App\Http\Controllers\Manager\Process\ViolationProduct::class, 'export_excel']);
 // 违规处理-低价挂网商品-下载导入模板