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