步骤1
$url='http://localhost/lvshi/index.php/Api/Order/dd/id/'.$id.'.html';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//将curl_exec()获取的信息以文件流的形式返回,不直接输出。
注意顺序调用
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
//不用等待返回值需要加这个
curl_exec($ch);
dump(curl_error($ch)); //查出错
curl_close($ch);
//需要做团购是。只需要判断是否是团长,如果是团长就调用这个,这个会请求另外一个方法,只停留一秒然后立马返回小程序需要的数据,
//而另外一个方法会一直等待到点后计算团购是否成功。
步骤2
public function dd(){
ini_set('max_execution_time','0');
//设置脚本执行时间
$id=I("get.id");
//获取orderid,必须要在之前获取,如果之后获取,会获取不到
file_put_contents('1.txt',5555,FILE_APPEND);
//写日志,代替dump
$time=50;
//成团剩余秒数 需要自己计算传值过来
sleep($time);
/沉睡秒数
//一下为业务逻辑
$result=M('order')->where(['id'=>$id])->find();
if($result){
M('order')->where(['id'=>$id])->save(['status'=>60]);
}else{
M("order")->add(['id'=>$id]);
}
}
以上步骤为开发环境可以但是生产环境不行
一下
为生产环境遐想
前提:
1 一个团购商品可以同时多个开团。
2 3天为团购时间,到达3人即可为团购成功
3 当前团购达成,当前团队关闭(假如3天为团购时间,到达3人即可为团购成功,当3天内达成3人。就关闭当前团购队伍,去发货(团购成功))
一 当用户一进去选择一个团购的商品进行开团。我们会标识这个用户为团长,并且得到关闭团购的时间戳(即当前时间戳33600*24),并且设置统一状态"s"为0 type1(团购通道开启中);
当拼团成功,即在时间内完成3人购买,就改变S为1拼团成功 type 2 (团购通道关闭)
当拼团失败时。
我们有计划任务,妹分钟都执行一个方法。 此方法会拿当前时间对比关闭团购的时间戳,如果大于就会把所有的订单其中。S= 的改状态为3(3为拼团失败),并且关闭团购通道。同时退款