api.AddUser.php 2.22 KB
<?php
    /**
     *  增加用户,对于程序设计,走的是修改逻辑
     */

    include "Common/JsonResponse.php";
    include "Common/mysqlHelper.php";
    include "Common/WechatHelper.php";
    include "Common/Encrypter.php";

    // 验证注册通道
    isStopSign();
    // 头像,姓名必填
    if (!isset($_POST['realname']) || !isset($_POST['mediaId'])) {
        JsonResponse::error('姓名或照片不能为空');
    }

    // 登录验证,验证cookie是否有openid,没有前端走微信openid获取流程
    if (!isset($_COOKIE['openid'])) {
        JsonResponse::error('进入姿势不对?');
    }

    // 姓名唯一
    $realname = $_POST['realname'];
    $mysql = new mysqlHelper();
    $data = $mysql->fetch("SELECT id FROM user WHERE realname = ?", [ $realname ]);
    if (!isset($data)) {
        JsonResponse::error('姓名不存在');
    }
    // 获取头像数据,从微信临时素材图片中。
    $wechat = new WechatHelper();
    $img = $wechat->getMedia($_POST['mediaId']);
    
    // 保存图片
    $filename = time() . rand(1000,9999) . ".jpg";
    $tarfilename = "/party/upload/" .$filename;
    $dir = str_replace('\\','/',realpath(dirname(__FILE__).'/'));
    $dir = rtrim($dir, '/party/phpapi/');
    $fp = fopen($dir . $tarfilename, "w");
    fwrite($fp, $img);
    fclose($fp);

    // 组装新增用户需要的数据
    $params[] = 'http://' . $_SERVER['SERVER_NAME'] . $tarfilename;
    // 这里openid解密
    $enctypt = new Encrypter();
    $params[] = $enctypt->decrypt($_COOKIE['openid']);
    $params[] = $_POST['realname'];
    $time = time();

    // pdo保存数据
    $updateSql = "UPDATE user SET headimg = ?, `status` = 1,`openid` = 1, created = {$time} WHERE realname = ?;";
    $rowCount = $mysql->update($updateSql, $params);
    if ($rowCount) {
        JsonResponse::result([]);
    } else {
        JsonResponse::error('签到失败');
    }

    // 验证签到通道是否关闭
    function isStopSign()
    {
        $mysql = new mysqlHelper();

        $data = $mysql->fetch("SELECT `value` FROM `setting` WHERE `key` = 'isStopSign' AND  `value` = 1");
        if ($data) {
            JsonResponse::error("注册通道已经关闭,自己人联系颖慧");
        }
    }