refactor(shopro): 优化订单处理逻辑
- 修改活动报名状态更新逻辑,根据报名人数和限制人数比较确定状态 - 移除不必要的模型引用,简化代码结构 - 调整订单自动处理和支付逻辑,提高代码可读性 - 重构订单监听器,优化体育活动报名相关操作
This commit is contained in:
@@ -222,7 +222,7 @@ class Activity extends Base
|
||||
'game_id' => $game['id'],
|
||||
'signin' => 0,
|
||||
'order' => $order,
|
||||
'status' => 1,
|
||||
'status' => ($order > $game['limit_num']) ? 0 : 1, //超过报名人数为候补
|
||||
];
|
||||
if ($u['gender'] == 0) {
|
||||
$gender['woman'] += 1;
|
||||
|
||||
@@ -2,19 +2,16 @@
|
||||
|
||||
namespace addons\shopro\job;
|
||||
|
||||
use think;
|
||||
use think\Db;
|
||||
use think\Log;
|
||||
use think\queue\Job;
|
||||
use think\Log;
|
||||
use think\Db;
|
||||
use think\Collection;
|
||||
use app\admin\model\zy\game\GameJoin;
|
||||
use app\admin\model\shopro\order\Order;
|
||||
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;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 订单自动操作
|
||||
@@ -25,13 +22,12 @@ 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'];
|
||||
|
||||
@@ -43,12 +39,6 @@ class OrderAutoOper extends BaseJob
|
||||
$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;
|
||||
});
|
||||
}
|
||||
@@ -77,8 +67,7 @@ class OrderAutoOper extends BaseJob
|
||||
/**
|
||||
* 订单自动确认收货
|
||||
*/
|
||||
public function autoConfirm(Job $job, $data)
|
||||
{
|
||||
public function autoConfirm(Job $job, $data) {
|
||||
try {
|
||||
$order = $data['order'];
|
||||
$items = $data['items'];
|
||||
@@ -91,7 +80,7 @@ class OrderAutoOper extends BaseJob
|
||||
$order = Db::transaction(function () use ($order, $itemIds) {
|
||||
$orderOper = new OrderOper();
|
||||
$order = $orderOper->confirm($order, $itemIds, null, 'system');
|
||||
|
||||
|
||||
return $order;
|
||||
});
|
||||
}
|
||||
@@ -118,8 +107,7 @@ class OrderAutoOper extends BaseJob
|
||||
|
||||
|
||||
|
||||
public function autoComment(Job $job, $data)
|
||||
{
|
||||
public function autoComment(Job $job, $data) {
|
||||
try {
|
||||
$order = $data['order'];
|
||||
$item = $data['item'];
|
||||
@@ -135,7 +123,7 @@ class OrderAutoOper extends BaseJob
|
||||
'item_id' => $item['id'],
|
||||
'level' => 5,
|
||||
];
|
||||
|
||||
|
||||
// 评价一个订单商品
|
||||
$order = $orderOper->comment($order, $comments, null, 'system');
|
||||
|
||||
@@ -164,4 +152,4 @@ class OrderAutoOper extends BaseJob
|
||||
$job->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,18 +2,15 @@
|
||||
|
||||
namespace addons\shopro\job;
|
||||
|
||||
use think\Db;
|
||||
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\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\Db;
|
||||
use think\exception\HttpResponseException;
|
||||
use addons\shopro\facade\Activity as ActivityFacade;
|
||||
use app\admin\model\shopro\order\Order;
|
||||
use addons\shopro\service\StockSale;
|
||||
use app\admin\model\shopro\user\User;
|
||||
use app\admin\model\shopro\order\Invoice as OrderInvoice;
|
||||
use addons\shopro\service\order\OrderOper;
|
||||
use addons\shopro\facade\Activity as ActivityFacade;
|
||||
|
||||
/**
|
||||
* 订单自动操作
|
||||
@@ -55,13 +52,10 @@ 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]);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -102,9 +96,6 @@ 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]);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -119,4 +110,4 @@ class OrderPaid extends BaseJob
|
||||
format_log_error($e, 'OrderPaid.offline');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,30 +2,32 @@
|
||||
|
||||
namespace addons\shopro\listener;
|
||||
|
||||
use addons\shopro\library\notify\Notify;
|
||||
use addons\shopro\library\Pipeline;
|
||||
use addons\shopro\service\order\OrderThrough;
|
||||
use app\admin\model\shopro\user\User;
|
||||
use app\admin\model\shopro\Admin;
|
||||
use addons\shopro\facade\Wechat;
|
||||
use app\admin\model\shopro\Cart;
|
||||
use app\admin\model\shopro\user\Coupon;
|
||||
use app\admin\model\shopro\order\Order as OrderModel;
|
||||
use app\admin\model\shopro\order\OrderItem;
|
||||
use app\admin\model\shopro\order\Invoice as OrderInvoiceModel;
|
||||
use app\admin\model\shopro\order\Express as OrderExpressModel;
|
||||
use app\admin\model\shopro\order\Action;
|
||||
use app\admin\model\shopro\order\Invoice;
|
||||
use app\admin\model\shopro\Admin;
|
||||
use app\admin\model\shopro\Config;
|
||||
use addons\shopro\library\Pipeline;
|
||||
use addons\shopro\service\StockSale;
|
||||
use addons\shopro\traits\CouponSend;
|
||||
use addons\shopro\service\order\OrderRefund;
|
||||
use app\admin\model\shopro\user\User;
|
||||
use app\admin\model\zy\game\GameJoin;
|
||||
use addons\shopro\service\pay\PayOper;
|
||||
use app\admin\model\shopro\user\Coupon;
|
||||
use addons\shopro\library\notify\Notify;
|
||||
use app\admin\model\shopro\order\Action;
|
||||
use app\admin\model\zy\game\Participant;
|
||||
use app\admin\model\shopro\order\Invoice;
|
||||
use addons\shopro\service\order\OrderOper;
|
||||
use addons\shopro\service\user\User as UserService;
|
||||
use app\admin\model\shopro\order\OrderItem;
|
||||
use addons\shopro\service\order\OrderRefund;
|
||||
use addons\shopro\service\order\OrderThrough;
|
||||
use addons\shopro\service\order\OrderDispatch;
|
||||
use addons\shopro\library\activity\traits\GiveGift;
|
||||
use addons\shopro\service\user\User as UserService;
|
||||
use addons\shopro\facade\Activity as ActivityFacade;
|
||||
use addons\shopro\facade\Wechat;
|
||||
use app\admin\model\shopro\order\Order as OrderModel;
|
||||
use app\admin\model\shopro\order\Express as OrderExpressModel;
|
||||
use app\admin\model\shopro\order\Invoice as OrderInvoiceModel;
|
||||
use addons\shopro\library\easywechatPlus\WechatMiniProgramShop;
|
||||
|
||||
class Order
|
||||
@@ -252,6 +254,9 @@ class Order
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
// zy体育报名处理
|
||||
GameJoin::where('order_id', $order->id)->update(['status' => 1]);
|
||||
}
|
||||
|
||||
|
||||
@@ -599,6 +604,13 @@ class Order
|
||||
// 将开票信息取消
|
||||
$this->cancelInvoice($order, 'invalid');
|
||||
|
||||
// zy体育报名处理(未支付,自动退坑)
|
||||
$join = GameJoin::where('order_id', $order->id)->find();
|
||||
if (!empty($join)) {
|
||||
$join->save(['status' => -1]);
|
||||
Participant::where('game_join_id', $join['id'])->update(['status' => -1]);
|
||||
}
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user