PHP实现的同步推荐操作API接口案例分析


Posted in PHP onNovember 30, 2016

本文实例分析了PHP实现的同步推荐操作API接口。分享给大家供大家参考,具体如下:

文档

1. 功能

同步推荐关系

2. 接口方法

syncRelation

3. 参数描述

OriginalUsername 查询的用户用户名
RecommandUsername 推荐人用户名

4. 返回值

status 1成功 9 失败

5. 备注

Status=1 原用户不存在,关系未建立
Status=2 推荐用户不存在,关系未建立
Status=3 原用户存在,并且没有推荐人,推荐用户也存在,成功建立关系
Status=4 原用户存在,而且已经有了推荐人,推荐人是传递的推荐用户,关系不再重建
Status=5 原用户存在,而且已经有了推荐人,推荐人不是传递的推荐用户,关系重新建立,原推荐人是XXX
Status=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来处理多个提交任务
Oct 09 PHP
基于php split()函数的用法详解
Jun 05 PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 PHP
Destoon实现多表查询示例
Aug 21 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
PHP实现文件下载【实例分享】
Apr 28 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
php实现简易计算器
Aug 28 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 #PHP
PHP获取指定日期是星期几的实现方法
Nov 30 #PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 #PHP
详解PHP处理密码的几种方式
Nov 30 #PHP
php+js实现百度地图多点标注的方法
Nov 30 #PHP
php 运算符与表达式详细介绍
Nov 30 #PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 #PHP
You might like
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
php实现留言板功能
2017/03/05 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
Ajax基础知识详解
2017/02/17 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
浅谈django model postgres的json字段编码问题
2018/01/05 Python
python实现拓扑排序的基本教程
2018/03/11 Python
python 显示数组全部元素的方法
2018/04/19 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
浅析Python四种数据类型
2018/09/26 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
Python集合操作方法详解
2020/02/09 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
python 如何停止一个死循环的线程
2020/11/24 Python
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
印度在线购物网站:Paytmmall
2019/07/24 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
医学专业职业生涯规划范文
2014/02/05 职场文书
机械专业技术员求职信
2014/06/14 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
代办社保委托书范文
2014/10/06 职场文书
医院护士工作检讨书
2014/10/26 职场文书
学校证明范文
2015/06/24 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书