/** * 根据标签更新联系人 * @param int $group_id 用户名 * @param int $id 联系人ID * @param string $tag_name 标签名 可用字段recycle、favorite * @param string $tag_value 标签值 * @return array 成功的联系人ID数组 */ public function update_by_tag($group_id, $ids, $tag_name, $tag_value) { $list = $this->get($group_id); $contact_ids = array_keys($list); $need_update_ids = $used_ids = array(); foreach ($ids as $id) { if (in_array($id, $contact_ids)) { if ($list[$id][$tag_name . 'd'] != $tag_value) { $need_update_ids[] = $id; } $used_ids[] = $id; } } if (!empty($need_update_ids)) { $this->group_contact_mapper->update_by_tags($need_update_ids, $tag_name, $tag_value); $this->clear_cache($group_id, $need_update_ids); } return $used_ids; }