如何将如下重复的代码进行优化处理? 是不是要写一个函数,然后在必要的地方调用? if(count($s_dept))
{
foreach($s_dept AS $k=>$dept_seq)
{
$user_seqs = array();
$um = Cl::get('UserManager');
$um['page'] = 1;
$um['listsize'] = 500;
$um['where'] = array("fk_dept_seq=".$dept_seq);
$um->load();
if($um['total'] > 0)
{
foreach($um['lists'] AS $list)
{
array_push($user_seqs, $list['user_seq']);
}
}
$lm = Cl::get('LunchManager');
$lm['page'] = 1;
$lm['listsize'] = 1000;
$where = array('lunch_date=\''.$date.'\'');
if(count($user_seqs) > 0)
{
array_push($where, 'fk_user_seq IN('.implode(',',$user_seqs).')');
}
$lm['where'] = $where;
$lm['order'] = array('user_login_id ASC');
$lm->load();
if($lm['total'] > 0)
{
foreach($lm['lists'] AS $list)
{
$data[$k][$list['lunch_type_name']]['total'] += 1;
$data[$k][$list['lunch_type_name']]['lists'][] = array( 'lunch_seq' => $list['lunch_seq'],
'fk_user_seq' => $list['fk_user_seq'],
'lunch_date' => $list['lunch_date'],
'lunch_type' => $list['lunch_type'],
'lunch_closed' => $list['lunch_closed'],
'lunch_insert_time' => $list['lunch_insert_time'] > 0 ? date('Y-m-d') : '-',
'user_login_id' => $list['user_login_id'],
'user_name' => $list['user_name'],
'lunch_check_time' => $list['lunch_check_time'] > 0 ? date('Y-m-d H:i:s',$list['lunch_check_time']) : '-',
);
}
}
}
}
else
{
$user_seqs = array();
$um = Cl::get('UserManager');
$um['page'] = 1;
$um['listsize'] = 500;
$um->load();
if($um['total'] > 0)
{
foreach($um['lists'] AS $list)
{
array_push($user_seqs, $list['user_seq']);
}
}
$lm = Cl::get('LunchManager');
$lm['page'] = 1;
$lm['listsize'] = 1000;
$where = array('lunch_date=\''.$date.'\'');
if(count($user_seqs) > 0)
{
array_push($where, 'fk_user_seq IN('.implode(',',$user_seqs).')');
}
$lm['where'] = $where;
$lm['order'] = array('user_login_id ASC');
$lm->load();
if($lm['total'] > 0)
{
foreach($lm['lists'] AS $list)
{
$data['所有部门'][$list['lunch_type_name']]['total'] += 1;
$data['所有部门'][$list['lunch_type_name']]['lists'][] = array( 'lunch_seq' => $list['lunch_seq'],
'fk_user_seq' => $list['fk_user_seq'],
'lunch_date' => $list['lunch_date'],
'lunch_type' => $list['lunch_type'],
'lunch_type_name' => $list['lunch_type_name'],
'lunch_closed' => $list['lunch_closed'],
'lunch_insert_time' => $list['lunch_insert_time'] > 0 ? date('Y-m-d') : '-',
'user_login_id' => $list['user_login_id'],
'user_name' => $list['user_name'],
'lunch_check_time' => $list['lunch_check_time'] > 0 ? date('Y-m-d H:i:s',$list['lunch_check_time']) : '-',
);
}
}
}
{
foreach($s_dept AS $k=>$dept_seq)
{
$user_seqs = array();
$um = Cl::get('UserManager');
$um['page'] = 1;
$um['listsize'] = 500;
$um['where'] = array("fk_dept_seq=".$dept_seq);
$um->load();
if($um['total'] > 0)
{
foreach($um['lists'] AS $list)
{
array_push($user_seqs, $list['user_seq']);
}
}
$lm = Cl::get('LunchManager');
$lm['page'] = 1;
$lm['listsize'] = 1000;
$where = array('lunch_date=\''.$date.'\'');
if(count($user_seqs) > 0)
{
array_push($where, 'fk_user_seq IN('.implode(',',$user_seqs).')');
}
$lm['where'] = $where;
$lm['order'] = array('user_login_id ASC');
$lm->load();
if($lm['total'] > 0)
{
foreach($lm['lists'] AS $list)
{
$data[$k][$list['lunch_type_name']]['total'] += 1;
$data[$k][$list['lunch_type_name']]['lists'][] = array( 'lunch_seq' => $list['lunch_seq'],
'fk_user_seq' => $list['fk_user_seq'],
'lunch_date' => $list['lunch_date'],
'lunch_type' => $list['lunch_type'],
'lunch_closed' => $list['lunch_closed'],
'lunch_insert_time' => $list['lunch_insert_time'] > 0 ? date('Y-m-d') : '-',
'user_login_id' => $list['user_login_id'],
'user_name' => $list['user_name'],
'lunch_check_time' => $list['lunch_check_time'] > 0 ? date('Y-m-d H:i:s',$list['lunch_check_time']) : '-',
);
}
}
}
}
else
{
$user_seqs = array();
$um = Cl::get('UserManager');
$um['page'] = 1;
$um['listsize'] = 500;
$um->load();
if($um['total'] > 0)
{
foreach($um['lists'] AS $list)
{
array_push($user_seqs, $list['user_seq']);
}
}
$lm = Cl::get('LunchManager');
$lm['page'] = 1;
$lm['listsize'] = 1000;
$where = array('lunch_date=\''.$date.'\'');
if(count($user_seqs) > 0)
{
array_push($where, 'fk_user_seq IN('.implode(',',$user_seqs).')');
}
$lm['where'] = $where;
$lm['order'] = array('user_login_id ASC');
$lm->load();
if($lm['total'] > 0)
{
foreach($lm['lists'] AS $list)
{
$data['所有部门'][$list['lunch_type_name']]['total'] += 1;
$data['所有部门'][$list['lunch_type_name']]['lists'][] = array( 'lunch_seq' => $list['lunch_seq'],
'fk_user_seq' => $list['fk_user_seq'],
'lunch_date' => $list['lunch_date'],
'lunch_type' => $list['lunch_type'],
'lunch_type_name' => $list['lunch_type_name'],
'lunch_closed' => $list['lunch_closed'],
'lunch_insert_time' => $list['lunch_insert_time'] > 0 ? date('Y-m-d') : '-',
'user_login_id' => $list['user_login_id'],
'user_name' => $list['user_name'],
'lunch_check_time' => $list['lunch_check_time'] > 0 ? date('Y-m-d H:i:s',$list['lunch_check_time']) : '-',
);
}
}
}
if(count($s_dept))
{
foreach($s_dept AS $key=>$dept_seq)
{
$user_seqs = getUserSeqs($dept_seq);
$newData = getUserLunchData($date, $user_seqs);
$data = mergeLunchData($key,$data,$newData);
}
}
else
{
$user_seqs = getUserSeqs();
$newData = getUserLunchData($date, $user_seqs);
$data = mergeLunchData('all',$data,$newData);
}function loadList($name,$params){
$um = Cl::get($name);
foreach($params as $k=>$v){
$um[$k]=$v;
}
$um->load();
if($um['total'] > 0){
return $um['lists'];
}else{
return array();
}
}function getUserSeqs($dept_seq=false){
$params['page'] = 1;
$params['listsize'] = 500;
if($dept_seq){
$params['where'] = array("fk_dept_seq=".$dept_seq);
}
$lists=loadList('UserManager',$params);
$user_seqs=array();
foreach($lists AS $list)
{
array_push($user_seqs, $list['user_seq']);
}
return $user_seqs;
}function getUserLunchData($date, $user_seqs){
$params['page'] = 1;
$params['listsize'] = 1000;
$where = array('lunch_date=\''.$date.'\'');
array_push($where, 'fk_user_seq IN('.implode(',',$user_seqs).')'); // *
$params['where'] = $where;
$params['order'] = array('user_login_id ASC');
$lists=loadList('LunchManager',$params);
foreach($lists AS $list)
{
$list['lunch_insert_time'] = $list['lunch_insert_time'] > 0 ? date('Y-m-d') : '-';
$list['lunch_check_time'] = $list['lunch_check_time'] > 0 ? date('Y-m-d H:i:s',$list['lunch_check_time']) : '-';
$data[$list['lunch_type_name']]['total'] += 1;
$data[$list['lunch_type_name']]['lists'][] = $list;
}
return $data;
}function mergeLunchData($key, $data, $newData){
foreach($newData as $lunchType=>$value ){
$data[$key][$lunchType]['total'] += $value['total'];
$data[$key][$lunchType]['lists'] = array_merge($data[$key][$lunchType]['lists'], $value['lists']);
}
return $data;
}