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 和 MySQL 开发的 8 个技巧
Jan 02 PHP
用php将任何格式视频转为flv的代码
Sep 03 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
主流PHP框架的优缺点对比分析
Dec 25 PHP
PHP 魔术变量和魔术函数详解
Feb 25 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
基于laravel belongsTo使用详解
Oct 18 PHP
PHP tp5中使用原生sql查询代码实例
Oct 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
jQuery 全选效果实现代码
2009/03/23 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
把pandas转换int型为str型的方法
2019/01/29 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
python3 使用traceback定位异常实例
2020/03/09 Python
python 通过文件夹导入包的操作
2020/06/01 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
英国景点门票网站:attractiontix
2019/08/27 全球购物
应聘文员自荐信范文
2014/03/11 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
美术指导助理求职信
2014/04/20 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电