cqp 1 неделя назад
Родитель
Сommit
dfe3e971ae

+ 16 - 25
app/Http/Controllers/Api/EnterpriseWechatController.php

@@ -2,7 +2,9 @@
 
 namespace App\Http\Controllers\Api;
 
-use EasyWeChat\Factory;
+use App\Jobs\WxProcessDataJob;
+use App\Model\EnterpriseRecord;
+use App\Service\EnterpriseWechatService;
 use Illuminate\Support\Facades\Http;
 use Illuminate\Support\Facades\Log;
 
@@ -13,15 +15,8 @@ class EnterpriseWechatController extends BaseController
      */
     public function serve()
     {
-        $config = [
-            'corp_id'  => 'ww83d8e358fe7f71b7',
-            'agent_id' => 1000007, // 自建应用的 AgentId
-            'secret'   => '5kJcYML2kJ_ojLQ-1KuzXo_rsMs2T74M6RjQmJ5uG6A',
-            'token'    => 'U0GQ5SI5RkOh5DA9wI',
-            'aes_key'  => 'Ces99dugJYEGSgBfCFUg43lI1e1TGWh7HRSmboUiS5N',
-        ];
-
-        $app = Factory::work($config);
+        $service = new EnterpriseWechatService();
+        $app = $service->getApp();
 
         // 1. 定义收到数据后的逻辑
         $app->server->push(function ($message) use ($app) {
@@ -33,22 +28,18 @@ class EnterpriseWechatController extends BaseController
                 $status = (int)$info['SpStatus']; // 强制转为整数防止类型判断坑
                 $spNo = $info['SpNo'];
 
-                if ($status === 2) {
-                    // 【核心:二次查询】拿着单号去获取单据里的详细内容(请假天数、理由等)
-
-                    $detail = $app->oa->approvalDetail($spNo);
-                    Log::channel('apiLog')->info('企业微信结果', ['msg' => $detail]);
-                    // 情况 A:最终通过
-                    // 此时应该调用 $app->oa->approvalDetail($spNo) 获取详情并同步到你的数据库
-//                    \Log::info("审批单 [{$spNo}] 最终通过,准备发放福利/记录考勤");
-
-                } elseif ($status === 3) {
-                    // 情况 B:最终驳回
-                    // 此时你可能需要更新本地单据状态为“已作废”
-//                    \Log::info("审批单 [{$spNo}] 被驳回,流程结束");
+                // 仅在状态为 2 (通过) 或 3 (驳回) 时存入数据库
+                if ($status === 2 || $status === 3) {
+                    $array = [
+                        'sp_no'       => $spNo,
+                        'template_id' => $templateId,
+                        'sp_status'   => $status,
+                        'crt_time'  => now(),
+                    ];
+                    $count = EnterpriseRecord::insertOrIgnore($array);
+
+                    if($count > 0 && $status == 2) WxProcessDataJob::dispatch($array)->onQueue(EnterpriseRecord::$job);
                 }
-
-                // 其他状态(如 1-审批中)直接忽略,不处理任何业务
             }
         });
 

+ 0 - 19
app/Model/EmployeeFoursShop.php

@@ -1,19 +0,0 @@
-<?php
-
-namespace App\Model;
-
-use Illuminate\Database\Eloquent\Model;
-
-/**
- * 人员绑定的四s店
- * Class Unit
- * @package App\Models
- */
-class EmployeeFoursShop extends Model
-{
-    protected $table = "employee_fours_shop"; //指定表
-    const CREATED_AT = null;
-    const UPDATED_AT = null;
-    protected $dateFormat = 'U';
-
-}

+ 0 - 63
app/Model/EmployeeIndex.php

@@ -1,63 +0,0 @@
-<?php
-
-namespace App\Model;
-
-class EmployeeIndex extends UseScopeBaseModel
-{
-    protected $guarded = [];
-    protected $table = "employee_index"; //指定表
-    const CREATED_AT = 'crt_time';
-    const UPDATED_AT = 'upd_time';
-    const employee_column = 'employee_id';
-    protected $dateFormat = 'U';
-
-    //指标类型
-    const TYPE_ONE = 1;
-    const TYPE_TWO = 2;
-    const TYPE_THREE = 3;
-    const TYPE_FOUR = 4;
-    const TYPE_FIVE = 5;
-    const TYPE_SIX = 6;
-    const TYPE_SEVEN = 7;
-    const TYPE_EIGHT = 8;
-    const TYPE_NINE = 9;
-    const TYPE_TEN = 10;
-    const TYPE_EVE = 11;
-    const TYPE_TWL = 12;
-
-    public static $type_name = [
-        Self::TYPE_ONE => '预支分红比例',
-        Self::TYPE_TWO => '月度指标金额',
-        Self::TYPE_THREE => '季度指标金额',
-        Self::TYPE_FOUR => '指标比例',
-        Self::TYPE_FIVE => '分红比例',
-        Self::TYPE_SIX => '基本工资',
-        Self::TYPE_SEVEN => '退损比例',
-        Self::TYPE_EIGHT => '销售奖金',
-        Self::TYPE_NINE => '其他补贴1',
-        Self::TYPE_TEN => '其他补贴2',
-        Self::TYPE_EVE => '其他补贴3',
-        Self::TYPE_TWL => '销售工资',
-    ];
-
-    public static $positive = [
-        Self::TYPE_ONE => '预支分红比例',
-        Self::TYPE_TWO => '月度指标金额',
-        Self::TYPE_THREE => '季度指标金额',
-        Self::TYPE_FOUR => '指标比例',
-        Self::TYPE_FIVE => '分红比例',
-        Self::TYPE_SIX => '基本工资',
-        Self::TYPE_SEVEN => '退损比例',
-        Self::TYPE_EIGHT => '销售奖金',
-    ];
-
-    public static $positive_2 = [
-        Self::TYPE_TWL => '销售工资',
-    ];
-
-    public static $null = [
-        Self::TYPE_NINE => '其他补贴1',
-        Self::TYPE_TEN => '其他补贴2',
-        Self::TYPE_EVE => '其他补贴3',
-    ];
-}

+ 4 - 8
app/Model/Header_ext_sub.php → app/Model/EnterpriseRecord.php

@@ -4,16 +4,12 @@ namespace App\Model;
 
 use Illuminate\Database\Eloquent\Model;
 
-/**
- *
- * Class Unit
- * @package App\Models
- */
-class Header_ext_sub extends Model
+class EnterpriseRecord extends Model
 {
-    protected $table = "header_ext_sub"; //指定表
+    protected $guarded = [];
+    protected $table = "enterprise_record"; //指定表
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
-
+    public static $job = "xky_wx_u8";
 }

+ 0 - 19
app/Model/ErrorTable.php

@@ -1,19 +0,0 @@
-<?php
-
-namespace App\Model;
-
-use Illuminate\Database\Eloquent\Model;
-
-
-class ErrorTable extends Model
-{
-    protected $table = "error_table"; //指定表
-    const CREATED_AT = 'crt_time';
-    const UPDATED_AT = 'upd_time';
-    protected $dateFormat = 'U';
-
-    public static $type = [
-        1 => '采购单同步',
-        2 => '销售订单(合同同步)',
-    ];
-}

+ 0 - 19
app/Model/Header_ext.php

@@ -1,19 +0,0 @@
-<?php
-
-namespace App\Model;
-
-use Illuminate\Database\Eloquent\Model;
-
-/**
- *
- * Class Unit
- * @package App\Models
- */
-class Header_ext extends Model
-{
-    protected $table = "header_ext"; //指定表
-    const CREATED_AT = 'crt_time';
-    const UPDATED_AT = 'upd_time';
-    protected $dateFormat = 'U';
-
-}

+ 0 - 11
app/Model/InOutRecord.php

@@ -1,11 +0,0 @@
-<?php
-
-namespace App\Model;
-
-class InOutRecord extends UseScopeBaseModel
-{
-    protected $table = "in_out_record"; //指定表
-    const CREATED_AT = null;
-    const UPDATED_AT = null;
-    protected $dateFormat = 'U';
-}

+ 0 - 38
app/Model/U8Job.php

@@ -1,38 +0,0 @@
-<?php
-
-namespace App\Model;
-
-use Illuminate\Database\Eloquent\Model;
-
-
-class U8Job extends Model
-{
-    protected $table = "u8_job"; //指定表
-    const CREATED_AT = 'crt_time';
-    const UPDATED_AT = 'upd_time';
-    protected $dateFormat = 'U';
-
-    const success = 1;
-    const failed = 2;
-
-    const one = 1;
-    const two = 2;
-    const three = 3;
-    public static $type = [
-        self::one,
-        self::two,
-    ];
-    public static $type_title = [
-        self::one => '采购单同步',
-        self::two => '销售订单(合同同步)',
-    ];
-
-    const job1 = 't9u8_purchase';
-    const job2 = 't9u8_sales';
-    const job3 = 't9u8_stock';
-    public static $job = [
-        self::one => self::job1,
-        self::two => self::job2,
-        self::three => self::job3,
-    ];
-}

+ 39 - 0
app/Service/EnterpriseWechatService.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Service;
+
+use EasyWeChat\Factory;
+use Exception;
+
+class EnterpriseWechatService
+{
+    private $app;
+
+    public function __construct()
+    {
+        $config = config('enterprise_wechat.work');
+
+        if (empty($config['corp_id']) || empty($config['agent_id']) || empty($config['secret']) || empty($config['token']) || empty($config['aes_key'])) {
+            throw new Exception("企业微信配置缺失,请检查 .env 文件");
+        }
+
+        // 构造 EasyWeChat 实例
+        $this->app = Factory::work($config);
+    }
+
+    /**
+     * 获取 EasyWeChat 应用实例
+     */
+    public function getApp()
+    {
+        return $this->app;
+    }
+
+    /**
+     * 快捷获取 OA (审批) 实例
+     */
+    public function getOA()
+    {
+        return $this->app->oa;
+    }
+}

+ 13 - 0
config/enterprise_wechat.php

@@ -0,0 +1,13 @@
+<?php
+
+// config/wechat.php
+return [
+    'work' => [
+        'corp_id'  => env('WEWORK_CORP_ID'),
+        'agent_id' => env('WEWORK_AGENT_ID'),
+        'secret'   => env('WEWORK_SECRET'),
+        'token'    => env('WEWORK_TOKEN'),
+        'aes_key'  => env('WEWORK_AES_KEY'),
+    ],
+];
+

+ 0 - 127
config/oa.php

@@ -1,127 +0,0 @@
-<?php
-
-return [
-    [
-        'menu_id' => 37,
-        'menu_title' => '订单合同',
-        'children' => [
-            [
-                'key' => 'sales_order_type_title',
-                'title' => '产品类型',
-            ],
-            [
-                'key' => 'model_type_title',
-                'title' => '销售类型',
-            ],
-            [
-                'key' => 'order_number',
-                'title' => '订单合同编号',
-            ],
-            [
-                'key' => 'plat_type_title',
-                'title' => '平台类型',
-            ],
-            [
-                'key' => 'install_position_title',
-                'title' => '安装地点',
-            ],
-            [
-                'key' => 'selling_price',
-                'title' => '含精品售价',
-            ],
-            [
-                'key' => 'vin_no',
-                'title' => '车架号',
-            ],
-            [
-                'key' => 'order_type_title',
-                'title' => '订单类型',
-            ],
-            [
-                'key' => 'customer_title',
-                'title' => '客户名称',
-            ],
-            [
-                'key' => 'sign_time',
-                'title' => '签订日期',
-            ],
-            [
-                'key' => 'product_total',
-                'title' => '产品合计',
-            ],
-            [
-                'key' => 'rate',
-                'title' => '整单扣除率',
-            ],
-            [
-                'key' => 'crt_name',
-                'title' => '创建人',
-            ],
-            [
-                'key' => 'crt_time',
-                'title' => '创建时间',
-            ],
-            [
-                'key' => 'mark',
-                'title' => '备注',
-            ],
-            [
-                'key' => 'construction_time',
-                'title' => '施工日期',
-            ],
-            [
-                'key' => 'handover_time',
-                'title' => '交车日期',
-            ],
-            [
-                'key' => 'other_fee',
-                'title' => '其它费用',
-            ],
-            [
-                'key' => 'discount_fee',
-                'title' => '优惠金额',
-            ],
-            [
-                'key' => 'contract_fee',
-                'title' => '合同金额',
-            ],
-            [
-                'key' => 'pay_way_title',
-                'title' => '付款类型',
-            ],
-//            [
-//                'key' => 'car_type',
-//                'title' => '车型',
-//            ],
-//            [
-//                'key' => 'year',
-//                'title' => '年份',
-//            ],
-//            [
-//                'key' => 'mileage',
-//                'title' => '表显里程',
-//            ],
-//            [
-//                'key' => 'color',
-//                'title' => '外观内饰颜色',
-//            ],
-//            [
-//                'key' => 'original_set',
-//                'title' => '原装配置',
-//            ],
-//            [
-//                'key' => 'processing',
-//                'title' => '自有后加装产品',
-//            ],
-            [
-                'key' => 'state_title',
-                'title' => '单据状态',
-            ],
-            [
-                'key' => 'dispatch_company',
-                'title' => '派遣门店',
-            ],
-        ]
-    ],
-];
-