>  기사  >  백엔드 개발  >  PHP로 구현한 동기 추천 연산 API 인터페이스 사례에 대한 자세한 설명

PHP로 구현한 동기 추천 연산 API 인터페이스 사례에 대한 자세한 설명

墨辰丷
墨辰丷원래의
2018-05-30 09:59:501827검색

이 글에서는 주로 PHP에서 구현된 동기 권장 작업 API 인터페이스 사례를 소개합니다. 구체적인 예를 기반으로 동기 권장 작업의 구체적인 기능, 인터페이스, 메서드, 매개변수 및 관련 사용 기술을 분석합니다. 이번 글

PHP로 구현한 동기식 권장 연산 API 인터페이스를 분석했습니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

동기화된 추천 관계

2. 인터페이스 방법

syncRelation

3. OriginalUsername 쿼리 사용자 Username

RecommandUsername 추천자 사용자 이름

4. 반환 값

status 1 성공 9 실패


5. 비고

Status=1 원래 사용자가 존재하지 않으며 관계가 설정되지 않았습니다.

Status= 2 추천 사용자가 존재하지 않고, 관계가 성립되지 않습니다

Status=3 원래 사용자가 존재하며, 추천인이 없고, 추천 사용자도 존재하여 관계가 성립되었습니다

Status=4 원래 사용자가 존재하며, 거기에 추천인은 이미 추천인입니다. 추천인은 전달된 추천 사용자입니다. 관계는 더 이상 재구축되지 않습니다.

Status=5 원래 사용자가 존재하며 이미 추천인이 전달되었습니다. 관계가 재설정되었습니다. 원래 추천자는 XXXStatus=9 쿼리가 실패하고 작업이 비정상이었습니다

코드:



protected function _initialize() {
  parent::_initialize();
  $this->outData = array('status'=>0,'msg'=>'','info'=>array());//输出参数
}
// 同步推荐关系
public function syncRelation() {
  $memberModel = D('Member');
  $memberInviteeModel = D('Member_invitee');
  $OriginalUsername = $this->_request('OriginalUsername','trim'); // 被推荐人号码
  $RecommandUsername= $this->_request('RecommandUsername','trim'); // 推荐人号码
  if ($OriginalUsername == $RecommandUsername) {
   $this->outData['status'] = '9';
   $this->outData['msg'] = '参数有误';
   $this->printOut();
  }
  $o_member = $memberModel->getMemberByTel($OriginalUsername);
  if (empty($o_member)) {
   $this->outData['status'] = '1';
   $this->outData['msg'] = '原用户'.$OriginalUsername.'不存在,关系未建立';
   $this->printOut();
  }
  $o_wxinfo = $memberModel->getWxinfo($o_member['id']);
  $r_member = $memberModel->getMemberByTel($RecommandUsername);
  if (empty($r_member)) {
   $this->outData['status'] = '2';
   $this->outData['msg'] = '推荐用户'.$RecommandUsername.'不存在,关系未建立';
   $this->printOut();
  }
  $r_wxinfo = $memberModel->getWxinfo($r_member['id']);
  // 查询原用户是否存在推荐关系
  $o_member_invitee = $memberInviteeModel->getInviteeWxuserMember($o_wxinfo['id'],$o_member['id']);
  if (empty($o_member_invitee)) { // 不存在推荐人
   $r = $memberInviteeModel->setRelationship($r_member['id'],$o_member['id'],$o_wxinfo['id']);
   if ($r !== FALSE) {
    $this->outData['status'] = '3';
    $this->outData['msg'] = '原用户'.$OriginalUsername.'存在,并且没有推荐人,推荐用户'.$RecommandUsername.'也存在,成功建立关系';
    $this->printOut();
   } else {
    $this->outData['status'] = '9';
    $this->outData['msg'] = '查询失败,操作异常';
    $this->printOut();
   }
  }
  if ($o_member_invitee['member_id'] == $r_member['id']) {
   $this->outData['status'] = '4';
   $this->outData['msg'] = '原用户'.$OriginalUsername.'存在,而且已经有了推荐人,推荐人'.$RecommandUsername.'是传递的推荐用户,关系不再重建';
   $this->printOut();
  }
  // 获取原推荐人信息
  $o_member_inviter = $memberModel->getMemberById($o_member_invitee['member_id']);
  // 修改原有推荐关系
  $o_member_invitee['member_id'] = $r_member['id'];
  $r = $memberInviteeModel->where(array('id'=>$o_member_invitee['id']))->save($o_member_invitee);
  if ($r !== FALSE) {
   $this->outData['status'] = '5';
   $this->outData['msg'] = '原用户'.$OriginalUsername.'存在,而且已经有了推荐人,推荐人不是传递的推荐用户,关系重新建立,新推荐人'.$RecommandUsername.',原推荐人是'.$o_member_inviter['tel'];
   $this->printOut();
  } else {
   $this->outData['status'] = '9';
   $this->outData['msg'] = '查询失败,操作异常';
   $this->printOut();
  }
}
protected function printOut() {
  exit(json_encode($this->outData));
}



위 내용은 이 글의 전체 내용이므로 모든 분들의 학습에 도움이 되길 바랍니다.

관련 권장사항:

php


php트랜잭션 롤백 구현 방법

php에 대한 자세한 설명 exec() 함수를 사용하세요 PDO 메서드에서 쿼리 실행 후 영향을 받는 행 수를 구현합니다

위 내용은 PHP로 구현한 동기 추천 연산 API 인터페이스 사례에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.