CRMEB官方
2019-05-24 09:28:47
或者秒杀列表的方法>= 写反了,更改后 ,在正常的范围内能显示出来
秒杀时间段16:00-18:00持续2小时
开启的秒杀为16:20-16:40
理想效果即使在16:20后开启秒杀也能立马生效 而且时间过了16:40就结束
所以逻辑就是 自定义起始时间要大于等于起始时间段 自定义结束时间要小于等于结束时间段
且自定义结束时间要大于等于当前时间
更改如下(简单测试了几次,小伙伴可以多测试几次看看有没有问题)
app\ebapi\controller\SeckillApi下的方法public function seckill_list(){
$currentHour = strtotime(date('Y-m-d H:i'));
$data = UtilService::postMore([['time',0],['offset',0],['limit',20]]);
if(!$data['time']) return JsonService::fail('参数错误');
$timeInfo = GroupDataService::getDataNumber($data['time']);
$activityEndHour = bcadd((int)$timeInfo['time'],(int)$timeInfo['continued'],0);
$startTime = bcadd(strtotime(date('Y-m-d')),bcmul($timeInfo['time'],3600,0));
$stopTime = bcadd(strtotime(date('Y-m-d')),bcmul($activityEndHour,3600,0));
$seckillInfo = StoreSeckill::seckillList($currentHour,$startTime,$stopTime,$data['offset'],$data['limit']);
if(count($seckillInfo)){
foreach ($seckillInfo as $key=>&$item){
$percent = (int)bcmul(bcdiv($item['sales'],bcadd($item['stock'],$item['sales'],0),2),100,0);
$item['percent'] = $percent ? $percent : 10;
}
}
return JsonService::successful($seckillInfo);
}
app\ebapi\model\store\StoreSeckill下的 /* * 获取秒杀列表 * * */ public static function seckillList($currentHour,$startTime,$stopTime,$offset = 0,$limit = 20) { $list = StoreSeckill::where('is_del',0)->where('status',1)->where('start_time','>=',$startTime)->where('stop_time','>=',$currentHour)->where('stop_time','<=',$stopTime)->order('sort desc')->limit($offset,$limit)->select(); if($list) return $list->toArray(); else return []; }
CRMEB官方 最后编辑于2022-10-12 16:33:30
快捷回复
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}