客服接单,随机平均分配订单的模块设计

发布于 2015-12-29 19:58:07

   /客服组/
   $kf_arr=array(
       0=>array('kf_id'=>'01','task_num'=>10),
       1=>array('kf_id'=>'02','task_num'=>30),
       1=>array('kf_id'=>'03','task_num'=>15),
    );
    foreach ($kf_arr as $k=>$v){
      $new\_arr\[$v['task_num']][]=$v;//按接单量进行分组
      $k\_arr\[\]=$v['task_num'];
    }
    $min\_key=min($k_arr);//订单量最少的分组索引key
    $max\_key=max($k_arr);
   $ensure\_count=count($new_arr[$min_key])-1;//统计接单数最少有多少个
   $random\_key=rand(0, $ensure_count);//在接单最少组里生成随机key
   $kf\_info=$new_arr[$min\_key\]\[$random_key];//待分配客服信息
   $kf\_id=$kf_info['uid'];
   $max\_min\_diff=$max_key-$min_key;
if($max_min_diff==0){
    $kf\_data\['v1'\]=++$kf_info['v1'];
}else{
    $kf\_data\['v1'\]=$new_arr[$max_key][0]['v1'];
}
$user\_groups\_m\_obj->where('ug\_id = '.$kf_info['ug_id'])->save($kf_data);
return $kf_id;

0 条评论

发布
问题