/** * 新增联系人 * @param $contact Contact 联系人对象 * @param $force bool 是否强制新增 * @return int FAIL 新增失败 SUCCESS 新增成功 MERGE_SUCCESS 合并成功 */ public function add(Contact $contact, $force = FALSE) { if ($force) { //修改前保存快照 if ($this->save_snapshot($contact->get_user_id()) and $this->contact_mapper->insert($contact)) { return SUCCESS; } return FAIL; } else { $is_append = FALSE; $new_contact = $this->_merge_duplicate_contact($contact, $is_append); if ($new_contact === FALSE) { if ($this->save_snapshot($contact->get_user_id()) and $this->contact_mapper->insert($contact)) { return SUCCESS; } return FAIL; } else { // 当完全相同时不更新修改时间 if ($is_append == FALSE) { $contact->set_id($new_contact->get_id())->set_modified_at($new_contact->get_modified_at())->set_tels($new_contact->get_tels()); return NO_MODIFY_MERGE_SUCCESS; } else { if ($this->save_snapshot($contact->get_user_id())) { $status = $this->contact_mapper->update($new_contact, 'overwrite'); if ($status == SUCCESS) { $contact->set_id($new_contact->get_id())->set_modified_at($new_contact->get_modified_at())->set_tels($new_contact->get_tels()); return MERGE_SUCCESS; } } return FAIL; } } } }
/** * 新增联系人 * @param Contact $contact 联系人对象 * @param int $force 是否强制新增 */ public function add(Group_Contact $contact, $force = 0) { if ($force) { $this->group_contact_mapper->insert($contact); return TRUE; } else { //查重 $new_contact = $this->_find_duplicate($contact); if ($new_contact === FALSE) { $this->group_contact_mapper->insert($contact); return SUCCESS; } else { $new_contact->set_modified_at($contact->get_modified_at()); $status = $this->group_contact_mapper->update($contact->get_group_id(), $new_contact, 'overwrite'); return $status; } return FALSE; } }