'require' ]; protected $message = [ 'item.require' => '请选择秒杀商品', ]; public function sceneAdd(){ $this->append('item','checkAdd'); } public function sceneEdit(){ $this->append('item','checkEdit'); } public function checkEdit($value,$rule,$data){ $goods_ids = array_unique(array_column($value,'goods_id')); $goods = Goods::where(['del'=>0])->column('id'); $goods_item = GoodsItem::where(['goods_id'=>$goods_ids])->column('price,spec_value_str','id'); foreach ($value as $item){ if(!in_array($item['goods_id'],$goods)){ return '商品ID:'.$item['goods_id'].'已下架'; } $goods_price = $goods_item[$item['item_id']]['price'] ?? 0; //验证商品价格 if($item['activity_price'] > $goods_price){ return '商品规格:'.$goods_item[$item['item_id']]['spec_value_str'] .'的秒杀价格高于原价'; } } return true; } public function checkAdd($value,$rule,$data){ $goods_ids = array_unique(array_column($value,'goods_id')); $goods = Goods::where(['del'=>0])->column('id'); $goods_item = GoodsItem::where(['goods_id'=>$goods_ids])->column('price,spec_value_str','id'); foreach($value as $item) { if(!in_array($item['goods_id'],$goods)){ return '商品ID:'.$item['goods_id'].'已下架'; } $goods_price = $goods_item[$item['item_id']]['price'] ?? 0; //验证商品价格 if($item['price'] > $goods_price){ return '商品规格:'.$goods_item[$item['item_id']]['spec_value_str'] .'的秒杀价格高于原价'; } // 获取当前商品参与过哪些日期及哪些时段的秒杀 $GroupbuyGoods = GroupbuyGoods::where(['del'=>1, 'goods_id'=>$item['goods_id']]) ->field('id') ->group('goods_id')->select()->toArray(); if(!empty($GroupbuyGoods)){ return '当前商品已经参加抢购活动'; } } return true; } }