自动取消和支付查询 排除线下体检预约

main
yanzai 4 months ago
parent 1d2fed76f6
commit edafd5af85

@ -1411,8 +1411,9 @@ class OrderController extends Controller
$WaitingPaymentTime = config('app.globals.WaitingPaymentTime');//支付等待時間 $WaitingPaymentTime = config('app.globals.WaitingPaymentTime');//支付等待時間
$orderInfos = DB::table('orders') $orderInfos = DB::table('orders')
->where(['status' => 1]) ->where(['status' => 1])
->where('source', 'not like', '%线下体检预约%') ->whereRaw("COALESCE(source, '') NOT LIKE '%线下体检预约%'")
->get(); ->get();
$ids=[];
foreach ($orderInfos as $k => $orderInfo) { foreach ($orderInfos as $k => $orderInfo) {
$person = DB::table('web_user_person')->where(['id' => $orderInfo->person_id])->first(); $person = DB::table('web_user_person')->where(['id' => $orderInfo->person_id])->first();
$datetime = new DateTime($orderInfo->created_at); $datetime = new DateTime($orderInfo->created_at);
@ -1421,9 +1422,10 @@ class OrderController extends Controller
if (time() > $orderInfo->end_time) { if (time() > $orderInfo->end_time) {
$do = new OrderService(); $do = new OrderService();
$do->Cancel($orderInfo); $do->Cancel($orderInfo);
$ids[]=$orderInfo->id;
} }
} }
return \Yz::Return(true, "批量处理完成", []); return \Yz::Return(true, "批量取消订单处理完成", ['orderids'=>$ids]);
} }
public function create_appointment($hospital, $data) public function create_appointment($hospital, $data)

@ -118,7 +118,7 @@ Route::group(['middleware' => ['log'],'prefix' => 'api/Web'], function () {
Route::any('/TJPushInfo', 'App\Http\Controllers\API\Internal\SiXinPushController@PushInfo');//接收思信推送 Route::any('/TJPushInfo', 'App\Http\Controllers\API\Internal\SiXinPushController@PushInfo');//接收思信推送
Route::any('/TJCheck', 'App\Http\Controllers\API\Internal\OrderController@TJCheck')->middleware('log');//到检通知 Route::any('/TJCheck', 'App\Http\Controllers\API\Internal\OrderController@TJCheck')->middleware('log');//到检通知
Route::any('/OfflineOrderPush', 'App\Http\Controllers\API\Internal\OrderController@OfflineOrderPush')->middleware('log');//线下预约完后,推送过来订单 Route::any('/OfflineOrderPush', 'App\Http\Controllers\API\Internal\OrderController@OfflineOrderPush')->middleware('log');//线下预约完后,推送过来订单
Route::any('/OrderBatchCancel', 'App\Http\Controllers\API\H5\OrderController@BatchCancel');//批量取消 Route::any('/OrderBatchCancel', 'App\Http\Controllers\API\H5\OrderController@BatchCancel')->middleware('log');//批量取消
Route::any('/CancelZhuanZeng', 'App\Http\Controllers\API\H5\OrderNewController@CancelZhuanZeng')->middleware('log');//取消转赠 Route::any('/CancelZhuanZeng', 'App\Http\Controllers\API\H5\OrderNewController@CancelZhuanZeng')->middleware('log');//取消转赠
Route::any('/GetH5Order', 'App\Http\Controllers\API\Internal\OrderController@GetH5Order')->middleware('log');//获取已经预约未到检订单 Route::any('/GetH5Order', 'App\Http\Controllers\API\Internal\OrderController@GetH5Order')->middleware('log');//获取已经预约未到检订单
@ -129,7 +129,7 @@ Route::any('/GetFenZhenInfo', 'App\Http\Controllers\API\Internal\FenZhenControll
Route::any('/GetHzidAndGhzid', 'App\Http\Controllers\API\Internal\PersonController@GetHzidAndGhzid');//获取用户hzid和GHzid Route::any('/GetHzidAndGhzid', 'App\Http\Controllers\API\Internal\PersonController@GetHzidAndGhzid');//获取用户hzid和GHzid
Route::any('GetZhuanZhenInfo', 'App\Http\Controllers\API\Web\OrderController@export')->middleware('log');//导出医生预约订单 Route::any('GetZhuanZhenInfo', 'App\Http\Controllers\API\Web\OrderController@export')->middleware('log');//导出医生预约订单
Route::post('/RoundPayCheck', 'App\Http\Controllers\API\H5\OrderController@RoundPayCheck');//轮询支付检查 Route::post('/RoundPayCheck', 'App\Http\Controllers\API\H5\OrderController@RoundPayCheck')->middleware('log');//轮询支付检查
Route::post('/Day1WXSend', 'App\Http\Controllers\API\H5\OrderController@Day1WXSend')->middleware('log');//提前1天微信通知 Route::post('/Day1WXSend', 'App\Http\Controllers\API\H5\OrderController@Day1WXSend')->middleware('log');//提前1天微信通知
Route::post('/AutoRefund', 'App\Http\Controllers\API\H5\PayController@AutoRefund')->middleware('log');//对外退款接口 Route::post('/AutoRefund', 'App\Http\Controllers\API\H5\PayController@AutoRefund')->middleware('log');//对外退款接口
Route::post('/OfflineOrderCheck', 'App\Http\Controllers\API\H5\OrderNewController@OfflineOrderCheck')->middleware('log');//检测线下预约推送订单,该通知通知,该取消取消 Route::post('/OfflineOrderCheck', 'App\Http\Controllers\API\H5\OrderNewController@OfflineOrderCheck')->middleware('log');//检测线下预约推送订单,该通知通知,该取消取消

@ -9,7 +9,7 @@ $bot_loop->count = 1;
$bot_loop->name = 'OrderCancel'; $bot_loop->name = 'OrderCancel';
function OrderCancel() function OrderCancel()
{ {
Tool::log('开始执行任务', 2); Tool::log('开始ordercancel执行任务', 2);
$url = Tool::ini('ORDER_CANCEL'); $url = Tool::ini('ORDER_CANCEL');
$res = Tool::post($url); $res = Tool::post($url);
Tool::log(json_encode($res, JSON_UNESCAPED_UNICODE), 2); Tool::log(json_encode($res, JSON_UNESCAPED_UNICODE), 2);
@ -18,14 +18,14 @@ function OrderCancel()
function OrderCancelFunc() function OrderCancelFunc()
{ {
$db = Db::get(); $db = Db::get();
$order_cancel_count = $db->getRow("select count(1) as c from orders where status = ? and created_at < ? and source not like ?", [ $order_cancel_count = $db->getRow("select count(1) as c from orders where status = ? and created_at < ? and (source IS NULL or source not like ?)", [
1, 1,
date('Y-m-d H:i:s', time() - 60 * 20),'%线下体检预约%' date('Y-m-d H:i:s', time() - 60 * 20),'%线下体检预约%'
]); ]);
if ($order_cancel_count['c'] > 0) { if ($order_cancel_count['c'] > 0) {
OrderCancel(); OrderCancel();
} else { } else {
Tool::log('未检测到任务'); Tool::log('ordercancel未检测到任务');
} }
} }

@ -20,8 +20,8 @@ function PayCheck($order_number)
function PayCheckFunc() function PayCheckFunc()
{ {
$db = Db::get(); $db = Db::get();
$pay_check = $db->getRow("select * from orders where status = ? and order_number is not null order by paycheck_time asc", [ $pay_check = $db->getRow("select * from orders where status = ? and order_number is not null and (source IS NULL or source not like ?) order by paycheck_time asc", [
1, 1,'%线下体检预约%'
]); ]);
if (!!$pay_check and strtotime($pay_check['paycheck_time'])<strtotime($pay_check['created_at']) + 60) { if (!!$pay_check and strtotime($pay_check['paycheck_time'])<strtotime($pay_check['created_at']) + 60) {
Db2::u($db, 'orders', [ Db2::u($db, 'orders', [

Loading…
Cancel
Save