fix(zy): 修复活动报名时间和状态逻辑

- 修复了活动报名时间判断逻辑,增加了对报名结束时间的判断
- 修改了活动报名状态的判断条件,提高了代码的可读性和准确性
- 优化了订单自动操作和支付后的处理流程,确保活动报名状态正确更新
- 新增了用户权限验证功能,确保只有管理员或裁判可以修改用户状态
This commit is contained in:
2025-05-31 21:22:44 +08:00
parent 2a1cec7909
commit 35725ffd2d
5 changed files with 76 additions and 28 deletions

View File

@@ -2,16 +2,18 @@
namespace addons\shopro\job;
use think\queue\Job;
use think\Log;
use think\Db;
use think\Log;
use think\queue\Job;
use think\Collection;
use think\exception\HttpResponseException;
use addons\shopro\exception\ShoproException;
use app\admin\model\zy\game\GameJoin;
use app\admin\model\shopro\order\Order;
use app\admin\model\shopro\order\OrderItem;
use addons\shopro\service\order\OrderOper;
use app\admin\model\shopro\order\Action;
use app\admin\model\zy\game\Participant;
use addons\shopro\service\order\OrderOper;
use think\exception\HttpResponseException;
use app\admin\model\shopro\order\OrderItem;
use addons\shopro\exception\ShoproException;
/**
* 订单自动操作
@@ -22,12 +24,13 @@ class OrderAutoOper extends BaseJob
/**
* 订单自动关闭
*/
public function autoClose(Job $job, $data){
public function autoClose(Job $job, $data)
{
if (check_env('yansongda', false)) {
set_addon_config('epay', ['version' => 'v3'], false);
\think\Hook::listen('epay_config_init');
}
try {
$order = $data['order'];
@@ -38,7 +41,12 @@ class OrderAutoOper extends BaseJob
Db::transaction(function () use ($order, $data) {
$orderOper = new OrderOper();
$order = $orderOper->close($order, null, 'system');
// zy体育报名处理(未支付,自动退坑)
$join = GameJoin::where('order_id', $data['order']['id'])->find();
if (!empty($join)) {
$join->save([' status' => -1]);
Participant::where('game_join_id', $join['id'])->update(['status' => -1]);
}
return $order;
});
}
@@ -67,7 +75,8 @@ class OrderAutoOper extends BaseJob
/**
* 订单自动确认收货
*/
public function autoConfirm(Job $job, $data) {
public function autoConfirm(Job $job, $data)
{
try {
$order = $data['order'];
$items = $data['items'];
@@ -80,7 +89,7 @@ class OrderAutoOper extends BaseJob
$order = Db::transaction(function () use ($order, $itemIds) {
$orderOper = new OrderOper();
$order = $orderOper->confirm($order, $itemIds, null, 'system');
return $order;
});
}
@@ -107,7 +116,8 @@ class OrderAutoOper extends BaseJob
public function autoComment(Job $job, $data) {
public function autoComment(Job $job, $data)
{
try {
$order = $data['order'];
$item = $data['item'];
@@ -123,7 +133,7 @@ class OrderAutoOper extends BaseJob
'item_id' => $item['id'],
'level' => 5,
];
// 评价一个订单商品
$order = $orderOper->comment($order, $comments, null, 'system');
@@ -152,4 +162,4 @@ class OrderAutoOper extends BaseJob
$job->delete();
}
}
}
}

View File

@@ -2,15 +2,18 @@
namespace addons\shopro\job;
use think\queue\Job;
use think\Db;
use think\exception\HttpResponseException;
use app\admin\model\shopro\order\Order;
use think\queue\Job;
use addons\shopro\service\StockSale;
use addons\shopro\controller\zy\Game;
use app\admin\model\shopro\user\User;
use app\admin\model\shopro\order\Invoice as OrderInvoice;
use app\admin\model\zy\game\GameJoin;
use app\admin\model\shopro\order\Order;
use app\admin\model\zy\game\Participant;
use addons\shopro\service\order\OrderOper;
use think\exception\HttpResponseException;
use addons\shopro\facade\Activity as ActivityFacade;
use app\admin\model\shopro\order\Invoice as OrderInvoice;
/**
* 订单自动操作
@@ -52,10 +55,13 @@ class OrderPaid extends BaseJob
// 将订单参与活动信息改为已支付
$orderOper = new OrderOper();
$orderOper->activityOrderPaid($order);
// 触发订单支付完成事件
$data = ['order' => $order, 'user' => $user];
\think\Hook::listen('order_paid_after', $data);
// zy体育报名处理
GameJoin::where('order_id', $order->id)->update(['status' => 1]);
});
}
@@ -96,6 +102,9 @@ class OrderPaid extends BaseJob
// 触发订单选择线下支付(货到付款)完成事件
$data = ['order' => $order, 'user' => $user];
\think\Hook::listen('order_offline_after', $data);
// zy体育报名处理
GameJoin::where('order_id', $order->id)->update(['status' => 1]);
});
}
@@ -110,4 +119,4 @@ class OrderPaid extends BaseJob
format_log_error($e, 'OrderPaid.offline');
}
}
}
}