From 04102f7237efefa744090ed7c25f7b5d0807b679 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 05 Feb 2026 18:11:57 +0800
Subject: [PATCH] 完成运营中心提现和运营中心权限管理

---
 admin/app/job/event/OperationsOrder.php |   88 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/admin/app/job/event/OperationsOrder.php b/admin/app/job/event/OperationsOrder.php
new file mode 100644
index 0000000..e7391f4
--- /dev/null
+++ b/admin/app/job/event/OperationsOrder.php
@@ -0,0 +1,88 @@
+<?php
+
+namespace app\job\event;
+
+use think\facade\Cache;
+use app\job\model\plus\operations\Order as OperationsOrderModel;
+
+/**
+ * 运营中心订单事件管理
+ */
+class OperationsOrder
+{
+    // 模型
+    private $model;
+
+    /**
+     * 执行函数
+     */
+    public function handle()
+    {
+		try {
+            $this->model = new OperationsOrderModel();
+            $cacheKey = "task_space_OperationsOrder";
+			if (!Cache::has($cacheKey)) {
+             	$this->model->startTrans();
+                try {
+                    // 发放运营中心订单佣金
+                    $this->grantMoney();
+                    $this->model->commit();
+                } catch (\Exception $e) {
+                    $this->model->rollback();
+                }
+                Cache::set($cacheKey, time(), 60);
+            }
+        } catch (\Throwable $e) {
+            echo 'ERROR OperationsOrder: ' . $e->getMessage() . PHP_EOL;
+            log_write('OperationsOrder TASK : ' . '__ ' . $e->getMessage(), 'task');
+        }
+        return true;
+    }
+
+    /**
+     * 发放运营中心订单佣金
+     */
+    private function grantMoney()
+    {
+        // 获取未结算佣金的订单列表
+        $list = $this->model->getUnSettledList();
+        if ($list->isEmpty()) return false;
+        // 整理id集
+        $invalidIds = [];
+        $grantIds = [];
+        // 发放运营中心订单佣金
+        foreach ($list->toArray() as $item) {
+            // 已失效的订单
+            if ($item['order_master']['order_status']['value'] == 20) {
+                $invalidIds[] = $item['id'];
+            }
+            // 已完成的订单
+            if ($item['order_master']['order_status']['value'] == 30) {
+                $grantIds[] = $item['id'];
+                OperationsOrderModel::grantMoney($item['order_master'], $item['order_type']['value']);
+			}
+			
+        }
+		
+        // 标记已失效的订单
+        $this->model->setInvalid($invalidIds);
+
+        // 记录日志
+        $this->dologs('invalidIds', ['Ids' => $invalidIds]);
+        $this->dologs('grantMoney', ['Ids' => $grantIds]);
+        return true;
+    }
+
+    /**
+     * 记录日志
+     */
+    private function dologs($method, $params = [])
+    {
+        $value = 'behavior OperationsOrder --' . $method;
+        foreach ($params as $key => $val) {
+            $value .= ' --' . $key . ' ' . (is_array($val) ? json_encode($val) : $val);
+        }
+        return log_write($value, 'task');
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.9.2