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获取金书网的书名的实现代码
Jun 11 PHP
关于IIS php调用com组件的权限问题
Jan 11 PHP
PHP 观察者模式的实现代码
May 10 PHP
phpQuery让php处理html代码像jQuery一样方便
Jan 06 PHP
php一个解析字符串排列数组的方法
May 12 PHP
php制作的简单验证码识别代码
Jan 26 PHP
php cookie工作原理与实例详解
Jul 18 PHP
php实现查询功能(数据访问)
May 23 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
Dec 31 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
js实现文字滚动效果
2016/03/03 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
Python基于Tkinter实现的记事本实例
2015/06/17 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
python 美化输出信息的实例
2018/10/15 Python
Python内置函数及功能简介汇总
2020/10/13 Python
五种Python转义表示法
2020/11/27 Python
计算机专业应届毕业生自荐信
2013/09/26 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
公司与个人合作协议书
2016/03/19 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
AJAX实现省市县三级联动效果
2021/10/16 Javascript
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers