Exemplo n.º 1
0
 /**
  * 新增联系人
  * @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;
             }
         }
     }
 }
Exemplo n.º 2
0
 /**
  * 新增联系人
  * @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;
     }
 }