文档

  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));
}

严谨的程序案例Api的更多相关文章

  1. 支付平台程序,支付程序,网络pos程序,api接口程序,锋锐支付平台程序开发领导者!

    支付平台程序,支付程序,网络pos程序,api接口程序,锋锐支付平台程序开发领导者! 锋锐支付平台程序(www.100freenet.com)隶属于盐城市沐良商贸有限公司(沈阳杰速网络科技有限公司旗下 ...

  2. AppCache 离线存储 应用程序缓存 API 及注意事项

    使用ApplicationCache接口实现离线缓存 原文:http://www.mb5u.com/HTML5/html5_96464.html 推荐:html5 application cache遇 ...

  3. 微信小程序通过api接口将json数据展现到小程序示例

    这篇文章主要介绍了微信小程序通过api接口将json数据展现到小程序示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧实现知乎客户端的一个重要知识前提就是,要知道怎么通过 ...

  4. Atitit。激活某个程序的api attilax总结

    Atitit.激活某个程序的api attilax总结 1. 设置当前某窗口为当前窗口,有几个步骤要做:1.得到窗口句柄FindWindow2.切换键盘输入焦点AttachThreadInput3.显 ...

  5. 小程序常用API介绍

    小程序常用API接口  wx.request https网络请求 wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 method:"GET&qu ...

  6. 图解微信小程序---调用API操作步骤

    图解微信小程序---调用API操作步骤 什么是API API(Application Programming Interface,应用程序编程接口:是一些预先定义的函数,目的是提供应用程序与开发人员基 ...

  7. 把微信小程序异步API转为Promise,简化异步编程

    把微信小程序异步API转化为Promise.用Promise处理异步操作有多方便,谁用谁知道. 微信官方没有给出Promise API来处理异步操作,而官方API异步的又非常多,这使得多异步编程会层层 ...

  8. 快要C语言考试了,大学生们收好这些经典程序案例,包你考试过关!

    距离考试越来越近 编程大佬早已饥渴难耐 电脑小白还在瑟瑟发抖 但是不要怕! 来看看这些经典程序案例 包你考试过关! [程序1] 有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多 ...

  9. 微信小程序 HTTP API

    微信小程序 HTTP API promise API https://www.npmtrends.com/node-fetch-vs-got-vs-axios-vs-superagent node-f ...

随机推荐

  1. python中的mysql操作

    一. 数据库在自动化测试中的应用 存测试数据 有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到,测试的时候就从数据库中读取出来.这点是非常重要的! 存测试结果 二. python中的数 ...

  2. UVA 1626 区间dp、打印路径

    uva 紫书例题,这个区间dp最容易错的应该是(S)这种匹配情况,如果不是题目中给了提示我就忽略了,只想着左右分割忘记了这种特殊的例子. dp[i][j]=MIN{dp[i+1][j-1] | if( ...

  3. Vue2基于Axios Ajax Vuex的Loading组件

    1. 定义根state:ajaxIsLoading2. 在Axios拦截器中commit不同的状态实现状态切换3. 组件中通过getter获取ajaxIsLoading状态 Axios 拦截器配置 i ...

  4. 在SQL Server中快速删除重复记录

     在SQL Server中快速删除重复记录 2006-07-17 21:53:15 分类: SQL Server 开发人员的噩梦——删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询 ...

  5. LeetCode OJ:Best Time to Buy and Sell Stock II(股票买入卖出最佳实际II)

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  6. PenMount Touch显示鼠标指针驱动安装

    /******************************************************************************* * PenMount Touch显示鼠 ...

  7. onsubmit对表单的拦截

    今天遇到一个问题:在对同name 的input 表单时 判断其值是否有效 用了each判断 当初错误的做法: function check_goods() { var regs = /^\d+$/; ...

  8. 【解题报告】[动态规划]-PID69 / 过河卒

    原题地址:http://www.rqnoj.cn/problem/69 解题思路: 用DP[i][j]表示到达(i,j)点的路径数,则 DP[0][0]=1 DP[i][j]=DP[i-1][j]+D ...

  9. Java集合总结之Collection整体框架

    前段时间一直在忙一个物联网的项目,所以Java的学习一直搁置,从今天开始继续学习!望大家多提宝贵意见! java.util包中包含了一些在Java 2中新增加的最令人兴奋的增强功能:类集.一个类集(c ...

  10. RbbitMQ基础知识

    MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间 ...