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 相关文章推荐
基于文本的搜索
Oct 09 PHP
谈谈新手如何学习PHP
Dec 14 PHP
一个数据采集类
Feb 14 PHP
PHP 变量的定义方法
Jan 26 PHP
关于php mvc开发模式的感想
Jun 28 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
PHP根据IP判断地区名信息的示例代码
Mar 03 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
PHPstorm快捷键(分享)
Jul 17 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
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
php array_map()函数实例用法
2021/03/03 PHP
JQuery之拖拽插件实现代码
2011/04/14 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
Python 返回汉字的汉语拼音
2009/02/27 Python
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
Python的time模块中的常用方法整理
2015/06/18 Python
python数组过滤实现方法
2015/07/27 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
python实现决策树
2017/12/21 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
总经理司机岗位职责
2014/02/06 职场文书
寄语学生的话
2014/04/10 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
文艺委员竞选稿
2015/11/19 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android