refactor(shopro): 优化订单处理逻辑
- 修改活动报名状态更新逻辑,根据报名人数和限制人数比较确定状态 - 移除不必要的模型引用,简化代码结构 - 调整订单自动处理和支付逻辑,提高代码可读性 - 重构订单监听器,优化体育活动报名相关操作
This commit is contained in:
@@ -222,7 +222,7 @@ class Activity extends Base
|
|||||||
'game_id' => $game['id'],
|
'game_id' => $game['id'],
|
||||||
'signin' => 0,
|
'signin' => 0,
|
||||||
'order' => $order,
|
'order' => $order,
|
||||||
'status' => 1,
|
'status' => ($order > $game['limit_num']) ? 0 : 1, //超过报名人数为候补
|
||||||
];
|
];
|
||||||
if ($u['gender'] == 0) {
|
if ($u['gender'] == 0) {
|
||||||
$gender['woman'] += 1;
|
$gender['woman'] += 1;
|
||||||
|
|||||||
@@ -2,19 +2,16 @@
|
|||||||
|
|
||||||
namespace addons\shopro\job;
|
namespace addons\shopro\job;
|
||||||
|
|
||||||
use think;
|
|
||||||
use think\Db;
|
|
||||||
use think\Log;
|
|
||||||
use think\queue\Job;
|
use think\queue\Job;
|
||||||
|
use think\Log;
|
||||||
|
use think\Db;
|
||||||
use think\Collection;
|
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 think\exception\HttpResponseException;
|
||||||
use app\admin\model\shopro\order\OrderItem;
|
|
||||||
use addons\shopro\exception\ShoproException;
|
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,8 +22,7 @@ class OrderAutoOper extends BaseJob
|
|||||||
/**
|
/**
|
||||||
* 订单自动关闭
|
* 订单自动关闭
|
||||||
*/
|
*/
|
||||||
public function autoClose(Job $job, $data)
|
public function autoClose(Job $job, $data){
|
||||||
{
|
|
||||||
if (check_env('yansongda', false)) {
|
if (check_env('yansongda', false)) {
|
||||||
set_addon_config('epay', ['version' => 'v3'], false);
|
set_addon_config('epay', ['version' => 'v3'], false);
|
||||||
\think\Hook::listen('epay_config_init');
|
\think\Hook::listen('epay_config_init');
|
||||||
@@ -43,12 +39,6 @@ class OrderAutoOper extends BaseJob
|
|||||||
$orderOper = new OrderOper();
|
$orderOper = new OrderOper();
|
||||||
$order = $orderOper->close($order, null, 'system');
|
$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;
|
return $order;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -77,8 +67,7 @@ class OrderAutoOper extends BaseJob
|
|||||||
/**
|
/**
|
||||||
* 订单自动确认收货
|
* 订单自动确认收货
|
||||||
*/
|
*/
|
||||||
public function autoConfirm(Job $job, $data)
|
public function autoConfirm(Job $job, $data) {
|
||||||
{
|
|
||||||
try {
|
try {
|
||||||
$order = $data['order'];
|
$order = $data['order'];
|
||||||
$items = $data['items'];
|
$items = $data['items'];
|
||||||
@@ -118,8 +107,7 @@ class OrderAutoOper extends BaseJob
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function autoComment(Job $job, $data)
|
public function autoComment(Job $job, $data) {
|
||||||
{
|
|
||||||
try {
|
try {
|
||||||
$order = $data['order'];
|
$order = $data['order'];
|
||||||
$item = $data['item'];
|
$item = $data['item'];
|
||||||
|
|||||||
@@ -2,18 +2,15 @@
|
|||||||
|
|
||||||
namespace addons\shopro\job;
|
namespace addons\shopro\job;
|
||||||
|
|
||||||
use think\Db;
|
|
||||||
use think\queue\Job;
|
use think\queue\Job;
|
||||||
use addons\shopro\service\StockSale;
|
use think\Db;
|
||||||
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\exception\HttpResponseException;
|
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 app\admin\model\shopro\order\Invoice as OrderInvoice;
|
||||||
|
use addons\shopro\service\order\OrderOper;
|
||||||
|
use addons\shopro\facade\Activity as ActivityFacade;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单自动操作
|
* 订单自动操作
|
||||||
@@ -59,9 +56,6 @@ class OrderPaid extends BaseJob
|
|||||||
// 触发订单支付完成事件
|
// 触发订单支付完成事件
|
||||||
$data = ['order' => $order, 'user' => $user];
|
$data = ['order' => $order, 'user' => $user];
|
||||||
\think\Hook::listen('order_paid_after', $data);
|
\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];
|
$data = ['order' => $order, 'user' => $user];
|
||||||
\think\Hook::listen('order_offline_after', $data);
|
\think\Hook::listen('order_offline_after', $data);
|
||||||
|
|
||||||
// zy体育报名处理
|
|
||||||
GameJoin::where('order_id', $order->id)->update(['status' => 1]);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,30 +2,32 @@
|
|||||||
|
|
||||||
namespace addons\shopro\listener;
|
namespace addons\shopro\listener;
|
||||||
|
|
||||||
use addons\shopro\library\notify\Notify;
|
use addons\shopro\facade\Wechat;
|
||||||
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 app\admin\model\shopro\Cart;
|
use app\admin\model\shopro\Cart;
|
||||||
use app\admin\model\shopro\user\Coupon;
|
use app\admin\model\shopro\Admin;
|
||||||
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\Config;
|
use app\admin\model\shopro\Config;
|
||||||
|
use addons\shopro\library\Pipeline;
|
||||||
use addons\shopro\service\StockSale;
|
use addons\shopro\service\StockSale;
|
||||||
use addons\shopro\traits\CouponSend;
|
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 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\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\service\order\OrderDispatch;
|
||||||
use addons\shopro\library\activity\traits\GiveGift;
|
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\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;
|
use addons\shopro\library\easywechatPlus\WechatMiniProgramShop;
|
||||||
|
|
||||||
class Order
|
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');
|
$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;
|
return $order;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user