转赠订单24未接收取消,后台设置、机器人检测转赠等

main
yanzai 10 months ago
parent d5aaf868ae
commit 9b8a2d6f17

@ -13,7 +13,7 @@ class CheckUpTypeController extends Controller
{
$openid = request('openid');
$user=DB::table('web_users')->where(['openid'=>$openid])->first();
$ids = [7,1,4];
$ids = [7,1,4,5];
$sortedIds = implode(',', array_map('intval', $ids));
$list=DB::table('checkup_type')->where(['status'=>1,'is_del'=>0])
->orderByRaw("FIELD(id, {$sortedIds})");

@ -6,6 +6,7 @@ use App\Http\Controllers\API\AspNetZhuanController;
use App\Http\Controllers\API\PEISApiController;
use App\Http\Controllers\Controller;
use App\Lib\Tools;
use App\Services\OrderService;
use App\Services\SanFangCodeService;
use DateTime;
use Illuminate\Http\Request;
@ -636,6 +637,13 @@ class OrderNewController extends Controller
return \Yz::echoError1('操作失败');
}
}
//取消转赠
public function CancelZhuanZeng(){
$order_id = request('order_id');
$s=new OrderService();
$status=$s->CancelZhuanZeng($order_id);
return \Yz::Return($status['status'],$status['msg'],['new_orderid'=>$order_id]);
}
public function item_check($hospital, $data)
{

@ -307,4 +307,35 @@ class OrderService
]);
return ['status'=>true,'msg'=>"退款成功"];
}
//取消转赠
public function CancelZhuanZeng($NewOrderid)
{
$newOrderInfo = DB::table('orders')->where(['id' => $NewOrderid])->first();
if (!$newOrderInfo) return ['status'=>false,'msg'=>"id:".$NewOrderid.",未找到有效订单"];
if ($newOrderInfo->status!== 2) return ['status'=>false,'msg'=>"id:".$NewOrderid."订单状态异常。当前状态:". $newOrderInfo->status];
if (!empty($newOrderInfo->person_id)) return ['status'=>false,'msg'=>"id:".$NewOrderid."已被接收,禁止取消:"];
if(strstr($newOrderInfo->from,"from")){
$from=explode("from",$newOrderInfo->from);
if(count($from)<>2) return ['status'=>false,'msg'=>"id:".$NewOrderid."接收转赠异常,无法取消"];
$oldOrderid=$from[1];
}else{
return ['status'=>false,'msg'=>"id:".$NewOrderid."非转赠订单,禁止取消"];
}
DB::beginTransaction();
$u_new=DB::table('orders')->where(['id' => $NewOrderid])->update([
'status' => 3
]);
$u_order=DB::table('orders')->where(['id' => $oldOrderid])->update([
'status' => 2,
'transfer_type'=>null,
'transfer_link'=>null,
]);
if ($u_new and $u_order) {
DB::commit();
return ['status'=>true,'msg'=>"取消转赠成功"];
}else{
DB::rollBack();
return ['status'=>false,'msg'=>"取消转赠失败"];
}
}
}

@ -109,6 +109,7 @@ Route::group(['middleware' => ['log'],'prefix' => 'api/Web'], function () {
Route::any('/TJPushInfo', 'App\Http\Controllers\API\Internal\SiXinPushController@PushInfo');//接收思信推送
Route::any('/TJCheck', 'App\Http\Controllers\API\Internal\OrderController@TJCheck')->middleware('log');//到检
Route::any('/OrderBatchCancel', 'App\Http\Controllers\API\H5\OrderController@BatchCancel');//批量取消
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('/PlanList', 'App\Http\Controllers\API\Internal\PlanController@PlanList')->middleware('log');//获取可用号源列表

@ -1,6 +1,6 @@
<template>
<div v-loading="loading">
<el-form label-width="120px" style="border: 1px solid #e9e9e9; border-radius: 5px;margin-top: 8px;">
<el-form label-width="150px" style="border: 1px solid #e9e9e9; border-radius: 5px;margin-top: 8px;">
<el-row style="padding: 20px;margin:10px ;">
<el-col :span="16">
站点信息
@ -47,14 +47,13 @@
</el-row>
<el-row style="padding:auto 20px;margin: auto 10px ;">
<el-col :span="8">
<el-form-item label="积分抵扣比例">
<el-input size="large" v-model="configInfo." placeholder="积分抵扣比例"
style=" margin: auto 20px;" />
<el-form-item label="H5价格筛选最大值">
<el-input size="large" v-model="configInfo.H5" placeholder="H5价格筛选最大值" style=" margin: auto 20px;" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="primary" size="large"
@click="saveInfo('积分抵扣比例')"> </el-button>
@click="saveInfo('H5价格筛选最大值')"> </el-button>
</el-col>
</el-row>
<el-row style="padding:auto 20px;margin: auto 10px ;">
@ -136,6 +135,10 @@
});
const saveInfo = (name) => {
if(name=='H5价格筛选最大值' && configInfo.value[name]%500!==0){
ElMessage.error('请输入500的倍数')
return false
}
let data={[name]:configInfo.value[name]}
loading.value=true
SaveConfigInfo({data:data}).then(res => {

@ -0,0 +1,44 @@
<?php
namespace Workerman\Lib;
use Workerman\Worker;
$bot_loop = new Worker();
$bot_loop->count = 1;
$bot_loop->name = 'ZhuanZengOrderCheck';
function ZhuanZengOrderCancel($order_id)
{
Tool::log('开始执行ZhuanZengOrderCancel任务', 2);
$url = Tool::ini('ZHUANZENG_CANCEL');
$res = Tool::post($url, [
'order_id' => $order_id,
]);
Tool::log(json_encode($res, JSON_UNESCAPED_UNICODE), 2);
}
function ZhuanZengOrderCheck()
{
$db = Db::get();
$zhuangzeng_check= $db->getRow("select * from orders where
source LIKE '%转赠%'
and status = 2
and (person_id IS NULL OR person_id = '')
and created_at < NOW() - INTERVAL 24 HOUR
", []);
if (!!$zhuangzeng_check) {
ZhuanZengOrderCancel($zhuangzeng_check['id']);
} else {
Tool::log('ZhuanZengOrderCheck未检测到任务');
}
}
$bot_loop->onWorkerStart = function () {
ZhuanZengOrderCheck();
Timer::add(10, function () {
ZhuanZengOrderCheck();
});
};

@ -29,6 +29,7 @@
for (let j = 0; j <= combo_info.value[i].items.length - 1; j++) {
let item_id = combo_info.value[i].items[j].id;
let existingItem = item_map.find(item => item.id === item_id);
if (!existingItem) {
item_map.push({
id: item_id,
@ -42,9 +43,25 @@
}
}
}
let data = item_map.filter(item => !same_item_show.value || item.value.some(v => v));
// let data = item_map.filter(item => !same_item_show.value || item.value.some(v => v));
let data = item_map.filter(item => {
// same_item_show.value false
if (!same_item_show.value) return true;
// item.value true false
const allTrue = item.value.every(v => v === true);
const allFalse = item.value.every(v => v === false);
// true false
if (allTrue || allFalse) {
return false;
}
//
return true;
});
console.log(data)
let group_map = [];
data.forEach(item => {
let group = group_map.find(g => g.group === item.group);

Loading…
Cancel
Save