/** * 批量分组 * @param int $user_id 用户ID * @param array $category_ids 分组名 * @param array $ids 联系人ID * @return array */ public function set_contact_category($user_id, $category_ids, $ids) { $category_list = $this->contact_mapper->get_contact_category_list($user_id); $add_ids = $delete_ids = array(); foreach ($ids as $id) { $category_list[$id] = isset($category_list[$id]) ? $category_list[$id] : array(); if ($add = array_diff($category_ids, $category_list[$id])) { $add_ids[$id] = $add; } if ($delete = array_diff($category_list[$id], $category_ids)) { $delete_ids[$id] = $delete; } } $ids = array_unique(array_merge(array_keys($add_ids), array_keys($delete_ids))); if ($ids and $this->contact_model->save_snapshot($user_id)) { $this->contact_mapper->set_contact_category($user_id, $add_ids, $delete_ids); if ($this->contact_model->update_contact_modified($user_id, $ids)) { return $ids; } } return array(); }