严谨的程序案例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));
    }

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5735367.html,如需转载请自行联系原作者
相关文章
|
7月前
|
监控 前端开发 JavaScript
实战篇:商品API接口在跨平台销售中的有效运用与案例解析
随着电子商务的蓬勃发展,企业为了扩大市场覆盖面,经常需要在多个在线平台上展示和销售产品。然而,手工管理多个平台的库存、价格、商品描述等信息既耗时又容易出错。商品API接口在这一背景下显得尤为重要,它能够帮助企业在不同的销售平台之间实现商品信息的高效同步和管理。本文将通过具体的淘宝API接口使用案例,展示如何在跨平台销售中有效利用商品API接口,以及如何通过代码实现数据的统一管理。
|
7月前
|
API
GEE案例分析——利用sentinel-3数据计算空气污染指数(Air Pollution Index,简称API)
GEE案例分析——利用sentinel-3数据计算空气污染指数(Air Pollution Index,简称API)
213 0
|
1月前
|
JSON BI API
商城上货API接口的实战案例
在商城上货过程中,API接口扮演着至关重要的角色。以下是对商城上货API接口的实战分析,涵盖其主要功能、类型、安全性以及实战案例等方面。
|
1月前
|
XML 数据可视化 API
商品详情数据实战案例,API接口系列
淘宝商品详情数据在电商领域具有广泛的应用价值,而淘宝商品详情API接口则为开发者提供了获取这些数据的重要途径。通过合理利用这些接口和数据,可以提升业务效率、优化用户体验,为电商行业的发展注入新的活力。
|
7月前
|
SQL Java 程序员
Java 8中的Stream API:简介与实用案例
【5月更文挑战第23天】本文将深入探讨Java 8中的Stream API,这是一种能够极大提升Java程序员生产力的新特性。我们将从基础概念开始,然后通过一些实用的案例来展示如何使用Stream API进行数据处理和操作。无论你是Java的初学者还是经验丰富的开发者,本文都将为你提供有价值的信息。
|
4月前
|
存储 Linux API
Linux源码阅读笔记08-进程调度API系统调用案例分析
Linux源码阅读笔记08-进程调度API系统调用案例分析
|
4月前
|
JSON 数据管理 关系型数据库
【Dataphin V3.9】颠覆你的数据管理体验!API数据源接入与集成优化,如何让企业轻松驾驭海量异构数据,实现数据价值最大化?全面解析、实战案例、专业指导,带你解锁数据整合新技能!
【8月更文挑战第15天】随着大数据技术的发展,企业对数据处理的需求不断增长。Dataphin V3.9 版本提供更灵活的数据源接入和高效 API 集成能力,支持 MySQL、Oracle、Hive 等多种数据源,增强 RESTful 和 SOAP API 支持,简化外部数据服务集成。例如,可轻松从 RESTful API 获取销售数据并存储分析。此外,Dataphin V3.9 还提供数据同步工具和丰富的数据治理功能,确保数据质量和一致性,助力企业最大化数据价值。
222 1
|
4月前
|
开发者
告别繁琐代码,JSF标签库带你走进高效开发的新时代!
【8月更文挑战第31天】JSF(JavaServer Faces)标准标签库为页面开发提供了大量组件标签,如`<h:inputText>`、`<h:dataTable>`等,简化代码、提升效率并确保稳定性。本文通过示例展示如何使用这些标签实现常见功能,如创建登录表单和展示数据列表,帮助开发者更高效地进行Web应用开发。
47 0
|
4月前
|
UED 存储 自然语言处理
【语言无界·体验无疆】解锁Vaadin应用全球化秘籍:从代码到文化,让你的应用畅游世界每一个角落!
【8月更文挑战第31天】《国际化与本地化实战:构建多语言支持的Vaadin应用》详细介绍了如何使用Vaadin框架实现应用的国际化和本地化,提升用户体验和市场竞争力。文章涵盖资源文件的创建与管理、消息绑定与动态加载、日期和数字格式化及文化敏感性处理等方面,通过具体示例代码和最佳实践,帮助开发者构建适应不同语言和地区设置的Vaadin应用。通过这些步骤,您的应用将更加灵活,满足全球用户需求。
62 0
|
4月前
|
API 数据库 UED
全面解析构建高性能API的秘诀:运用Entity Framework Core与异步编程提升Web应用响应速度及并发处理能力的详细指南与实践案例
【8月更文挑战第31天】本文详细介绍了如何利用 Entity Framework Core (EF Core)的异步编程特性构建高性能 API。通过创建基于 EF Core 的 .NET Core Web API 项目,配置数据库上下文,并定义领域模型,文章展示了如何使用异步方法进行数据查询、加载相关实体及事务处理。具体代码示例涵盖了 GET、POST、PUT 和 DELETE 操作,全面展示了 EF Core 异步编程的优势,有助于提升 API 的响应速度和处理能力。
59 0