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 相关文章推荐
JpGraph php柱状图使用介绍
Aug 23 PHP
PHP实现下载功能的代码
Sep 29 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
php抽奖小程序的实现代码
Jun 18 PHP
php 如何获取数组第一个值
Aug 06 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
PHP简单实现数字分页功能示例
Aug 24 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 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 REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
python list转dict示例分享
2014/01/28 Python
Python中的TCP socket写法示例
2018/05/11 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
python异步存储数据详解
2019/03/19 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
python 6行代码制作月历生成器
2020/09/18 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
工商学院毕业生个人自我评价
2013/09/19 职场文书
积极分子思想汇报
2014/01/04 职场文书
音乐教学案例
2014/01/30 职场文书
捐款倡议书
2014/04/14 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
先进个人主要事迹范文
2015/11/04 职场文书