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 strtr() 函数使用说明
Nov 21 PHP
php cookis创建实现代码
Mar 16 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
php输出xml属性的方法
Mar 19 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 PHP
php中使用array_filter()函数过滤数组实例讲解
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
人大复印资料处理程序_补充篇
2006/10/09 PHP
为查询结果建立向后/向前按钮
2006/10/09 PHP
php旋转图片90度的方法
2013/11/07 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
python list转dict示例分享
2014/01/28 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
python 实现多线程下载视频的代码
2019/11/15 Python
python时间time模块处理大全
2020/10/25 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
医学生职业规划范文
2014/01/05 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
实习生工作证明范本
2014/09/14 职场文书
孔庙导游词
2015/02/04 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
2015学校年度工作总结
2015/05/11 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
创业计划书之校园超市
2019/09/12 职场文书