# 团购 **Repository Path**: github-28450670/TuanGou ## Basic Information - **Project Name**: 团购 - **Description**: php团购 - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-01-31 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 步骤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人。就关闭当前团购队伍,去发货(团购成功)) 一 当用户一进去选择一个团购的商品进行开团。我们会标识这个用户为团长,并且得到关闭团购的时间戳(即当前时间戳*3*3600*24),并且设置统一状态"s"为0 type1(团购通道开启中); 当拼团成功,即在时间内完成3人购买,就改变S为1拼团成功 type 2 (团购通道关闭) 当拼团失败时。 我们有计划任务,妹分钟都执行一个方法。 此方法会拿当前时间对比关闭团购的时间戳,如果大于就会把所有的订单其中。S= 的改状态为3(3为拼团失败),并且关闭团购通道。同时退款