HEX
Server: Apache/2.4.59 (Debian)
System: Linux keymana 4.19.0-21-cloud-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64
User: lijunjie (1003)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/dk/wp-content/themes/food/Business/RankingBs.php
<?php

class RankingBs
{
    public $FoodActivityObj = null;
    public $FoodActivityPlayerObj = null;
    public $FoodActivityVoteObj = null;

    public function __construct()
    {
        $this->FoodActivityObj = new FoodActivityModel();
        $this->FoodActivityPlayerObj = new FoodActivityPlayerModel();
        $this->FoodActivityVoteObj = new FoodActivityVoteModel();
    }

    //投票
    public function UpdatePlayerScore($data, $debug = false)
    {
        $activity_id = $data['activity_id'];
        $user_id = $data['user_id'];
        $player_id = $data['player_id'];

        $outObj = new stdClass();

        $userVoteNum = $this->FoodActivityVoteObj->getCountActivityVote($this->FoodActivityVoteObj->tableName, 'activity_id', $activity_id, 'user_id', $user_id, 'player_id', $player_id, $debug);
        if ($userVoteNum >= 1) {
//            $outObj->rc = 7;
//            $outObj->msg = '用户在活动中已为该项目投票';
//            return $outObj;

            //比赛
            $res = $this->FoodActivityObj->reduceActivityScore($activity_id, $debug);

            //比赛记录
            $this->FoodActivityVoteObj->delFoodActivityVote($data, $debug);

            //比赛项目
            $player_score = $this->FoodActivityPlayerObj->getSingleCommon($this->FoodActivityPlayerObj->tableName, 'score', 'aid', $activity_id, 'id', $player_id, $debug);

            if ($player_score > 0) {
                $this->FoodActivityPlayerObj->reducePlayerScore($activity_id, $player_id, $debug);
            }
            $outObj->rc = ApiErrorDesc::SUCCESS[0];
            $outObj->msg = ApiErrorDesc::SUCCESS[1] . ' 减去投票成功';
        } else {
//            $outObj->rc = ApiErrorDesc::SUCCESS[0];
//            $outObj->msg = ApiErrorDesc::SUCCESS[1] . '用户可投票';

            //增加比赛投票
            $outObj = $this->addActivityVote($data, $debug);

        }

//        $userActivityVoteNum = $this->FoodActivityVoteObj->getCountCommon3($this->FoodActivityVoteObj->tableName, 'activity_id', $activity_id, 'user_id', $user_id, $debug);
//
//        if ($debug) {
//            echo '$userActivityVoteNum -> ' . $userActivityVoteNum . PHP_EOL;
//        }
//
//        if ($userActivityVoteNum < 10) {
//            $outObj = $this->addActivityVote($data, $debug);
//        } else {
//            $outObj->rc = 5;
//            $outObj->msg = '用户在活动中已投票10票';
//        }

        return $outObj;
    }

    /**
     * 檢測 是否已投票
     */
    public function CheckVote($data, $debug = false)
    {
        $activity_id = $data['activity_id'];
        $user_id = $data['user_id'];
        $player_id = $data['player_id'];

        $outObj = new stdClass();

        $userVoteNum = $this->FoodActivityVoteObj->getCountActivityVote($this->FoodActivityVoteObj->tableName, 'activity_id', $activity_id, 'user_id', $user_id, 'player_id', $player_id, $debug);
        if ($userVoteNum >= 1) {
            $outObj->rc = ApiErrorDesc::VOTE_HAD[0];
            $outObj->msg = ApiErrorDesc::VOTE_HAD[1];
        } else {
            $outObj->rc = ApiErrorDesc::VOTE_NO[0];
            $outObj->msg = ApiErrorDesc::VOTE_NO[1];
        }

        return $outObj;
    }

    /**
     * 增加比赛投票
     * @param $data
     * @param $debug
     * @return stdClass
     */
    public function addActivityVote($data, $debug = false)
    {
        $outObj = new stdClass();

        $activity_id = $data['activity_id'];
//        $user_id = $data['user_id'];
        $player_id = $data['player_id'];

        $playerNum = $this->FoodActivityPlayerObj->getCountCommon2($this->FoodActivityPlayerObj->tableName, 'aid', $activity_id, 'id', $player_id, $debug);

        if ($debug) {
            echo '$playerNum -> ' . $playerNum . PHP_EOL;
        }
        if ($playerNum == 0) {
            $outObj->rc = 6;
            $outObj->msg = '投票用户不存在';
        } else {
            //比赛
            $res = $this->FoodActivityObj->increaseActivityScore($activity_id, $debug);

            //比赛项目
            $res2 = $this->FoodActivityPlayerObj->increasePlayerScore($activity_id, $player_id, $debug);

            //投票记录
            $res3 = $this->FoodActivityVoteObj->setFoodActivityVote('add', $data, $debug);

            if ($res && $res2 && $res3) {
                $outObj->rc = ApiErrorDesc::SUCCESS[0];
                $outObj->msg = ApiErrorDesc::SUCCESS[1];
            } else {
                $outObj->rc = ApiErrorDesc::ERR_DONE[0];
                $outObj->msg = ApiErrorDesc::ERR_DONE[1];
            }
        }

        return $outObj;
    }

    /**
     * @param $data
     * @return stdClass
     */
    public function getFoodActivityPlayerInfoByPage($where, $data, $debug = false)
    {
        $infoCount = $this->FoodActivityPlayerObj->getCountByPage($where, $data, $debug);
        if ($debug) {
            echo '$infoCount ' . $infoCount;
        }

        $outputArr = [];
        if ($infoCount > 0) {
            $infoArr = $this->FoodActivityPlayerObj->getInfoByPage($where, $data, $debug);
//            print_r($infoArr);

            $outputArr = $this->outputFoodActivityPlayerFunc($infoArr, $data, $debug);
        }

        $outObj = new stdClass();
        if ($infoCount == 0) {
            $outObj->rc = ApiErrorDesc::ERR_NODATA[0];
            $outObj->msg = ApiErrorDesc::ERR_NODATA[1];
        } else {
            $outObj->rc = ApiErrorDesc::SUCCESS[0];
            $outObj->msg = ApiErrorDesc::SUCCESS[1];
        }

        $outObj->total = strval($infoCount);
        $outObj->pageNum = strval($where['pageNum']);
        $outObj->pageSize = strval($where['pageSize']);
        $outObj->dataList = $outputArr;

        return $outObj;
    }

    /**
     * 文章输出
     * @param $infoArr
     * @param  $data
     * @param false $debug
     */
    public function outputFoodActivityPlayerFunc($infoArr, $data, $debug = false)
    {
        if ($debug) {
            print_r($infoArr);
        }

        $outputArr = [];
        foreach ($infoArr as $item) {
//            print_r($item);

            $user_id = $item->user_id;
            $wp_user_avatar_id = '0';
            $wp_user_display_name = '';
            $wp_user_avatar_url = '';

            if ($user_id > 0) {
                $wp_user_display_name = get_user_meta($user_id, 'wp_user_display_name', true);
                $wp_user_avatar_id = get_user_meta($user_id, 'wp_user_avatar_id', true);
                $wp_user_avatar_url = get_user_meta($user_id, 'wp_user_avatar_url', true);


                if ($wp_user_display_name == '') {
                    $thisUser = get_userdata(intval($user_id));
//                    print_r($thisUser);

                    $display_name = '';
                    if(isset($thisUser->display_name)){
                        $wp_user_display_name = $display_name = $thisUser->display_name;
                    }

                    if ($display_name == '') {
                        $wp_user_display_name = $thisUser->user_login;
                    }
                }

            }

            $item->wp_user_avatar_id = $wp_user_avatar_id;
            $item->wp_user_display_name = $wp_user_display_name;
            $item->wp_user_avatar_url = $wp_user_avatar_url == '' ? 'http://dk.smart1space.site/wp-content/themes/food/food-app/img/user.png' : $wp_user_avatar_url;

            $outputArr[] = $item;

//            $itemArr = array(
//                'id' => $item->id,
//                'post_id' => $item->id,
//                'post' => $item,
//
//                'cat' => $item->cat,
//
//                'author' => $item->author,
//                'teacher_info' => $tang_teacher_arr[$item->author],
//
//                'title' => $item->title,
//                'content' => $item->content,
//
//                'img1' => $img1,
//                'img1_url' => $img1_url,
//
//                'post_money' => $post_money,
//                'post_set_money' => $post_money,
//                'original_price' => $original_price,
//
//                'bought' => $bought,
//
//                'status' => $item->status,
//                'mtime' => $item->mtime, // H:i:s
//
//            );

        }

        return $outputArr;
    }


    /**
     * 活动
     * @param $data
     * @return stdClass
     */
    public function getActivityListInfoByPage($where, $data, $debug = false)
    {
        $infoCount = $this->FoodActivityObj->getCountByPage($where, $data, $debug);
        if ($debug) {
            echo '$infoCount ' . $infoCount;
        }

        $outputArr = [];
        if ($infoCount > 0) {
            $infoArr = $this->FoodActivityObj->getInfoByPage($where, $data, $debug);
//            print_r($infoArr);

            $outputArr = $this->outputActivityFunc($infoArr, $data, $debug);
        }

        $outObj = new stdClass();
        if ($infoCount == 0) {
            $outObj->rc = ApiErrorDesc::ERR_NODATA[0];
            $outObj->msg = ApiErrorDesc::ERR_NODATA[1];
        } else {
            $outObj->rc = ApiErrorDesc::SUCCESS[0];
            $outObj->msg = ApiErrorDesc::SUCCESS[1];
        }

        $outObj->total = strval($infoCount);
        $outObj->pageNum = strval($where['pageNum']);
        $outObj->pageSize = strval($where['pageSize']);
        $outObj->dataList = $outputArr;

        return $outObj;
    }

    /**
     * 活动输出
     * @param $infoArr
     * @param  $data
     * @param false $debug
     */
    public function outputActivityFunc($infoArr, $data, $debug = false)
    {
        if ($debug) {
            print_r($infoArr);
        }

        $outputArr = [];
        foreach ($infoArr as $item) {
            $outputArr[] = $item;

//            $itemArr = array(
//                'id' => $item->id,
//                'post_id' => $item->id,
//                'post' => $item,

//
//                'status' => $item->status,
//                'mtime' => $item->mtime, // H:i:s
//
//            );

        }

        return $outputArr;
    }


    /**
     * 设置活动
     * @param $action
     * @param $data
     * @param $debug
     * @return stdClass
     */
    public function setActivity($action, $data, $debug = false)
    {
        $outObj = new stdClass();
        $outObj->rc = ApiErrorDesc::ERR_DONE[0];
        $outObj->msg = ApiErrorDesc::ERR_DONE[1];

        $res = false;
        if ($action == 'add' || ($action == 'update')) {
            $res = $this->FoodActivityObj->setFoodActivity($action, $data, $debug);
            if ($action == 'add') {
                $outObj->id = $res;
            }
        } elseif ($action == 'del') {
            $resCount = $this->FoodActivityObj->getCountCommon($this->FoodActivityObj->tableName, 'id', $data['id'], '1', '1', $debug);
            if ($resCount > 0) {
                $res = $this->FoodActivityObj->setFoodActivity('del', $data, $debug);
            }
        }

        if ($res) {
            $outObj->rc = ApiErrorDesc::SUCCESS[0];
            $outObj->msg = ApiErrorDesc::SUCCESS[1];
        }
        return $outObj;
    }


    /**
     * 设置活动
     * @param $action
     * @param $data
     * @param $debug
     * @return stdClass
     */
    public function setActivityPlayer($action, $data, $debug = false)
    {
        $outObj = new stdClass();
        $outObj->rc = ApiErrorDesc::ERR_DONE[0];
        $outObj->msg = ApiErrorDesc::ERR_DONE[1];

        $res = false;
        if ($action == 'add') {
            $refRes = $this->getActivityPlayerRef($data['aid'], $debug);
            $data['ref'] = '0001';
            if ($refRes->rc == ApiErrorDesc::SUCCESS[0]) {
                $data['ref'] = $refRes->ref;
            }

            $res = $this->FoodActivityPlayerObj->setFoodActivityPlayer($action, $data, $debug);
            $outObj->id = $res;
        } elseif ($action == 'update') {
            $res = $this->FoodActivityPlayerObj->setFoodActivityPlayer($action, $data, $debug);
        } elseif ($action == 'del') {
            $resCount = $this->FoodActivityPlayerObj->getCountCommon($this->FoodActivityPlayerObj->tableName, 'id', $data['id'], '1', '1', $debug);
            if ($resCount > 0) {
                $res = $this->FoodActivityPlayerObj->setFoodActivityPlayer('del', $data, $debug);
            }
        }

        if ($res) {
            $outObj->rc = ApiErrorDesc::SUCCESS[0];
            $outObj->msg = ApiErrorDesc::SUCCESS[1];
        }
        return $outObj;
    }


    /**
     * 获取活动用户 编号
     * @param $aid
     * @param $debug
     * @return stdClass
     */
    public function getActivityPlayerRef($aid, $debug = false)
    {
        $outObj = new stdClass();
        $outObj->rc = ApiErrorDesc::ERR_PARAMS[0];
        $outObj->msg = ApiErrorDesc::ERR_PARAMS[1];
        $outObj->ref = '0000';

        $resCount = $this->FoodActivityObj->getCountCommon($this->FoodActivityObj->tableName, 'id', $aid, '1', '1', $debug);
//        echo '$resCount -> ' . $resCount . PHP_EOL;
        if ($resCount == 0) {
            $outObj->rc = ApiErrorDesc::ERR_PARAMS[0];
            $outObj->msg = '活动不存在';

            return $outObj;
        }

        $resCount = $this->FoodActivityPlayerObj->getCountCommon($this->FoodActivityPlayerObj->tableName, 'aid', $aid, '1', '1', $debug);
//        $resCount = 1021;
        $resCount = $resCount + 1;
//        echo '$resCount -> ' . $resCount;
        if (strlen($resCount) == 0) {
            $resCount = '0001';
        } elseif (strlen($resCount) == 1) {
            if ($resCount < 10) {
                $resCount = '000' . $resCount;
            } else {
                $resCount = '00' . $resCount;
            }
        } elseif (strlen($resCount) == 2) {
            if ($resCount < 100) {
                $resCount = '00' . $resCount;
            } else {
                $resCount = '0' . $resCount;
            }
        } elseif (strlen($resCount) == 3) {
            if ($resCount < 1000) {
                $resCount = '0' . $resCount;
            }
        }
        $outObj->rc = ApiErrorDesc::SUCCESS[0];
        $outObj->msg = ApiErrorDesc::SUCCESS[1];
        $outObj->ref = $resCount;
//        print_r($outObj);
        return $outObj;
    }


}