/** * 移动回收站联系人到联系人 * @param int $user_id 用户ID * @param array $ids 联系人ID * @return array 结果数组 */ public function move_recycle_to_contact($user_id, $ids) { $contact_ids = $this->contact_mapper->get_valid_recycled_ids($user_id, $ids); $recovered_ids = $statuses = array(); $now = api::get_now_time(); foreach ($ids as $id) { if (in_array($id, $contact_ids)) { $recovered_ids[] = (int) $id; $statuses[$id] = array('status' => 200, 'id' => (int) $id, 'modified_at' => $now); } else { $statuses[$id] = array('status' => 404, 'id' => (int) $id, 'modified_at' => 0); } } if (!empty($recovered_ids)) { //修改前保存快照 if ($this->save_snapshot($user_id)) { $added_ids = $this->contact_mapper->move_recycle_to_contact($user_id, $recovered_ids, $this->get_source_name()); if ($added_ids) { $this->prepare_task($user_id, $added_ids, array(), array(), $recovered_ids); } else { foreach ($recovered_ids as $id) { $statuses[$id]['status'] = 500; } } } else { foreach ($recovered_ids as $id) { $statuses[$id]['status'] = 500; } } } return array_values($statuses); }