api\Gift::buy PHP Метод

buy() публичный метод

兑换礼物
Автор: Seven Du ([email protected])
public buy ( ) : array
Результат array
    public function buy()
    {
        list($id, $uid, $num, $addres, $say, $type) = Common::getInput(array('id', 'uid', 'num', 'addres', 'say', 'type'));
        list($name, $phone) = Common::getInput(array('name', 'phone'));
        /* # 参数过滤处理 */
        $id = intval($id);
        $uid = intval($uid);
        $num = intval($num);
        $type = intval($type);
        $addres = t($addres);
        $say = t($say);
        $name = t($name);
        $phone = t($phone);
        /* # 获取当前用户积分 */
        $score = model('Credit')->getUserCredit($this->mid);
        $score = $score['credit']['score']['value'];
        /* # 判断是否登陆 */
        if (!$this->mid) {
            return array('status' => 0, 'mesage' => '请先登录后再兑换');
            /* # 判断物品是否不存在 */
        } elseif (!$id || !($gift = GiftModel::getInstance()->getById($id))) {
            return array('status' => -1, 'mesage' => '兑换的该物品不存在');
            /* # 判断赠送的用户是否不存在 */
        } elseif (!$uid || !model('User')->hasUser($uid, true)) {
            return array('status' => -2, 'mesage' => '对不起,您赠送的用户不存在');
            /* # 判断是否赠送过了 */
        } elseif (LogModel::getInstance()->hasGive($id, $uid, $this->mid)) {
            return array('status' => -3, 'mesage' => '您已经赠送过给该用户,请勿重复赠送');
            /* # 判断积分是否充足 */
        } elseif ($gift['score'] > $score) {
            return array('status' => -4, 'mesage' => '您的积分余额不足,请先充值积分,或者做任务获得积分。');
            /* # 判断数量是否少于1 */
        } elseif ($num < 1) {
            return array('status' => -5, 'mesage' => '赠送数量不得少于1份');
            /* # 判断是否超出库存 */
        } elseif ($gift['stock'] < $num) {
            return array('status' => -7, 'mesage' => '数量超出库存数量:' . $gift['stock']);
            /* # 判断是否超出限购 */
        } elseif ($gift['max'] < $num && $gift['max']) {
            return array('status' => -6, 'mesage' => '数量超出限购数量:' . $gift['max']);
            /* # 判断是否缺少祝福语 */
        } elseif (!$say) {
            return array('status' => -8, 'mesage' => '请输入祝福语');
            /* # 判断真实姓名是否为空 */
        } elseif (!$name && $gift['cate'] == 2) {
            return array('status' => -12, 'mesage' => '用户真实姓名不能为空');
            /* # 判断是否输入了联系方式 */
        } elseif (!$phone && $gift['cate'] == 2) {
            return array('status' => -13, 'mesage' => '用户联系方式不能为空');
            /* # 判断是否输入了地址 */
        } elseif (!$addres && $gift['cate'] == 2) {
            return array('status' => -9, 'mesage' => '请输入正确的收货地址');
            /* # 判断是否是不允许的赠送类型 */
        } elseif (!in_array($type, array(1, 2, 3))) {
            return array('status' => -10, 'mesage' => '不允许的赠送类型,请在页面上正确的选择赠送类型');
            /* # 判断是否兑换失败 */
        } elseif (!LogModel::getInstance()->add($uid, $this->mid, $id, $type, $say, $num, $addres)) {
            return array('status' => -11, 'mesage' => LogModel::getInstance()->getError());
        }
        /* # 发送系统消息 */
        if ($gift['cate'] == 1) {
            $message = '礼物提示:' . getUserName($this->mid) . '送给了您' . $num . '份“' . $gift['name'] . '”,快<a href="' . U('Gift/Index/my', array('type' => '1')) . '">去看看</a>!';
            if ($type == 1) {
                $message = '礼物提示:您收到了' . $num . '份你们赠送的礼物“' . $gift['name'] . '”,快<a href="' . U('Gift/Index/my', array('type' => '1')) . '">去看看</a>!';
            }
        } else {
            $message = '礼物提示:' . getUserName($this->mid) . '送给了您' . $num . '份“' . $gift['name'] . '”,请等待快递发货通知!';
            if ($type == 1) {
                $message = '礼物提示:您收到了' . $num . '份你们赠送的礼物“' . $gift['name'] . '”,请等待快递发货通知!';
            }
        }
        LogModel::getInstance()->sendMessage($uid, $message);
        return array('status' => 1, 'mesage' => '恭喜您,成功的为您的好友送出了礼物!您可以去充值或者完成任务获得更多积分哦!');
    }