whereBetween('created_at',['2021-04-26 22:00:00','2021-04-30 00:00:00'])->whereNull('store_id')->pluck('id'); $data=Express::whereIn('order_id',$order_ids)->where('is_gift',0)->get(); $type_1=['order_num'=>0,'num'=>0,'size'=>[],'order_size'=>[],'goods_name'=>'']; $type_2=['order_num'=>0,'num'=>0,'size'=>[],'order_size'=>[],'goods_name'=>'']; $type_3=['order_num'=>0,'num'=>0,'size'=>[],'order_size'=>[],'goods_name'=>'']; foreach ($data as $k=>$v){ $arr=explode('+',$v->note); foreach ($arr as $ka=>$va){ $arrs=explode(':',$va); if (mb_substr($arrs[0],0,1)=='女'){ $sex='女款-'; $str_count=substr_count(mb_substr($arrs[0],1),'X'); if ($str_count>=2){ $size=$str_count.'XL'; }else{ $size=mb_substr($arrs[0],1); } }else{ $sex='男款-'; $str_count=substr_count($arrs[0],'X'); if ($str_count>=2){ $size=$str_count.'XL'; }else{ $size=$arrs[0]; } } if (mb_strlen($arrs[1])<4){ if (mb_substr($arrs[1],-1)=='精'){ $num=mb_substr($arrs[1],0,-1); if (isset($type_1['size'][$sex.$size])){ $type_1['size'][$sex.$size]+=$num; }else{ $type_1['size'][$sex.$size]=$num; } $type_1['num']+=$num; }elseif (mb_substr($arrs[1],-1)=='简'){ $num=mb_substr($arrs[1],0,-1); if (isset($type_2['size'][$sex.$size])){ $type_2['size'][$sex.$size]+=$num; }else{ $type_2['size'][$sex.$size]=$num; } $type_2['num']+=$num; }elseif (mb_substr($arrs[1],-1)=='老'){ $num=mb_substr($arrs[1],0,-1); if (isset($type_3['size'][$sex.$size])){ $type_3['size'][$sex.$size]+=$num; }else{ $type_3['size'][$sex.$size]=$num; } $type_3['num']+=$num; } }else{ $arrr=[ ['type'=>mb_substr($arrs[1],1,1),'num'=>mb_substr($arrs[1],0,1)], ['type'=>mb_substr($arrs[1],3,1),'num'=>mb_substr($arrs[1],2,1)] ]; foreach ($arrr as $kes=>$vas){ if ($vas['type']=='简'){ if (isset($type_2['size'][$sex.$size])){ $type_2['size'][$sex.$size]+=$vas['num']; }else{ $type_2['size'][$sex.$size]=$vas['num']; } $type_2['num']+=$vas['num']; }else{ if (isset($type_3['size'][$sex.$size])){ $type_3['size'][$sex.$size]+=$vas['num']; }else{ $type_3['size'][$sex.$size]=$vas['num']; } $type_3['num']+=$vas['num']; } } } } } $size_type1=[]; $size_type2=[]; $size_type3=[]; $datas=Orderdetail::whereIn('order_id',$order_ids)->groupBy('goods_name')->get(); foreach ($datas as $k=>$v){ $type=[]; $re=Orderdetail::whereIn('order_id',$order_ids)->where('goods_name',$v->goods_name)->groupBy('goods_id')->get(); foreach ($re as $ke=>$va){ $num=Orderdetail::whereIn('order_id',$order_ids)->where('goods_id',$va->goods_id)->groupBy('goods_id')->sum('num'); $str_count=substr_count($va->goods_size,'X'); if ($str_count>=2){ $size=mb_substr($va->goods_size,0,3).$str_count.'XL'; }else{ $size=$va->goods_size; } $type[$size]=['num'=>$num,'name'=>$v->goods_name,'goods_id'=>$v->goods_id]; } if (substr_count($v->goods_name,'精')){ $size_type1=$type; } if (substr_count($v->goods_name,'简')){ $size_type2=$type; } if (substr_count($v->goods_name,'老')){ $size_type3=$type; } // dump($v->goods_name.'==='.$v->goods_size.'==='.$num); } // dump($size_type1); // dump($size_type2); // dump($size_type3); $all=[]; foreach ($type_1['size'] as $k=>$v){ if (isset($size_type1[$k])){ $type_1['order_num']+=$size_type1[$k]['num']; $type_1['order_size'][$k]=$size_type1[$k]['num']; $type_1['goods_name']=$size_type1[$k]['name']; $all[0]['num']=$type_1['num']; $all[0]['order_num']=$type_1['order_num']; $all[0]['list'][]=['size'=>$k,'num'=>$v,'order_num'=>$size_type1[$k]['num']]; $all[0]['title']=$size_type1[$k]['name']; $all[0]['price']=Goodtest::where('id',$size_type1[$k]['goods_id'])->value('money'); } } foreach ($type_2['size'] as $k=>$v){ if (isset($size_type2[$k])){ $type_2['order_num']+=$size_type2[$k]['num']; $type_2['order_size'][$k]=$size_type2[$k]['num']; $type_2['goods_name']=$size_type2[$k]['name']; $all[1]['num']=$type_2['num']; $all[1]['order_num']=$type_2['order_num']; $all[1]['list'][]=['size'=>$k,'num'=>$v,'order_num'=>$size_type2[$k]['num']]; $all[1]['title']=$size_type2[$k]['name']; $all[1]['price']=Goodtest::where('id',$size_type2[$k]['goods_id'])->value('money'); } } foreach ($type_3['size'] as $k=>$v){ if (isset($size_type3[$k])){ $type_3['order_num']+=$size_type3[$k]['num']; $type_3['order_size'][$k]=$size_type3[$k]['num']; $type_3['goods_name']=$size_type3[$k]['name']; $all[2]['num']=$type_3['num']; $all[2]['title']=$size_type3[$k]['name']; $all[2]['order_num']=$type_3['order_num']; $all[2]['list'][]=['size'=>$k,'num'=>$v,'order_num'=>$size_type3[$k]['num']]; $all[2]['price']=Goodtest::where('id',$size_type3[$k]['goods_id'])->value('money'); } } return $this->success($all); } }