| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | <?php/** * AgentGameLogic.php  UTF-8 * huosdk_mini_program * * @date    : 2018/9/6 14:12 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : chenbingling <cbl@huosdk.com> * @version : HUOSDK 8.0 */namespace huomp\logic\agent;use huo\logic\member\CpLogic;use huo\model\agent\AgentGameModel;use huo\model\game\GameModel;use huo\model\rate\GameRateModel;use huo\model\user\UserModel;use huolib\constant\CommonConst;use huolib\constant\GameConst;use huomp\model\common\CommonModel;class AgentGameLogic extends CommonModel {    /**     * @param array $param     *     * @return array     */    protected function getWhere($param = []) {        $_map = [];        if (!empty($param['start_time']) && !empty($param['end_time'])) {            $_map['agent_game_model.create_time']                = [                'between',                [                    strtotime($param['start_time']),                    CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])                ]            ];        } elseif (!empty($param['start_time'])) {            $_map['agent_game_model.create_time'] = ['egt', strtotime($param['start_time'])];        } elseif (!empty($param['end_time'])) {            $_map['agent_game_model.create_time'] = ['elt',                                                     CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])];        }        if (!empty($param['role_id'])) {            $_role_ids = [$param['role_id']];            if (is_array($param['role_id'])) {                $_role_ids = $param['role_id'];            }            $_agent_ids = (new UserModel())->getIdsByRoleId($_role_ids);            $_map['agent_id'] = ['in', $_agent_ids];        }        if (!empty($param['agent_id'])) {            $_map['agent_id'] = $param['agent_id'];        }        if (!empty($param['parent_id'])) {            $_map['parent_id'] = $param['parent_id'];        }        if (!empty($param['sub_agent_id'])) {            $_map['agent_id'] = $param['sub_agent_id'];        }        if (!empty($param['agent_name'])) {            $_agent_id = (new UserModel())->getIdByName($param['agent_name']);            $_map['agent_id'] = $_agent_id;        }        if (!empty($param['classify'])) {            $_map['classify'] = $param['classify'];        }        if (!empty($param['game_id'])) {            $_map['app_id'] = $param['game_id'];        }        if (!empty($param['promote_switch'])) {            $_map['game.promote_switch'] = $param['promote_switch'];        }        if (!empty($param['app_id'])) {            $_map['app_id'] = $param['app_id'];        }        if (!empty($param['status'])) {            $_map['agent_game_model.status'] = $param['status'];        }        $_map['agent_game_model.is_delete'] = CommonConst::CONST_NOT_DELETE;        return $_map;    }    /**     * 获取游戏渠道列表     *     * @param array  $where     * @param string $page     * @param string $order     *     * @return mixed     * @throws \think\db\exception\DataNotFoundException     * @throws \think\db\exception\ModelNotFoundException     * @throws \think\exception\DbException     */    public function getAgentGames($where = [], $page = '1,10', $order = '-create_time') {        $_map = $this->getWhere($where);        $_map['game.status'] = GameConst::GAME_STATUS_ON;        $_ag_model = new AgentGameModel();        $_count = $_ag_model->with('game')->where($_map)->count();        if (empty($_count)) {            $_rdata['count'] = 0;            $_rdata['list'] = [];            return $_rdata;        }        $_field = 'classify as classify_label';        $_order = $this->orderFilter($order);        $_games = $_ag_model            ->with('rate,gamerate,agent,game,gamemini')            ->field($_field)            ->where($_map)            ->order($_order)            ->page($page)            ->select();        if (is_object($_games)) {            $_games = $_games->toArray();        }        $_list = [];        $_game_model = new GameModel();        $_gr_model = new GameRateModel();        foreach ($_games as $_k => $_v) {            $_data = [];            $_data['ag_id'] = $_v['id'];            $_data['agent_id'] = $_v['agent_id'];            $_data['game_id'] = isset($_v['game']['id']) ? $_v['game']['id'] : 0;            $_data['gamename'] = isset($_v['game']['name']) ? $_v['game']['name'] : '';            $_data['mini_id'] = !empty($_v['gamemini']['mini_app_id']) ? $_v['gamemini']['mini_app_id'] : '';            $_data['agent_name'] = isset($_v['agent']['user_login']) ? $_v['agent']['user_login']: '';            $_data['agent_nicename'] = isset($_v['agent']['user_nicename']) ? $_v['agent']['user_nicename']: '';            $_data['cp'] = '';            if (!empty($_v['game']['cp_id'])) {                $_data['cp'] = (new CpLogic())->getCpNameById($_v['game']['cp_id']);            }            $_data['role_id'] = isset($_v['agent']['role_id']) ? $_v['agent']['role_id'] : 0;            $_data['icon'] = isset($_v['game']['icon']) ? $_v['game']['icon'] : '';            $_data['type'] = isset($_v['game']['type']) ? $_v['game']['type'] : '';            $_data['tags'] = isset($_v['game']['tags']) ? $_v['game']['tags'] : '';            $_data['gift_cnt'] = 0;            $_data['package_name'] = isset($_v['game']['package_name']) ? $_v['game']['package_name'] : '';            $_data['oneword'] = isset($_v['game']['oneword']) ? $_v['game']['oneword'] : '';            $_data['runtime'] = isset($_v['game']['runtime']) ? $_v['game']['runtime'] : '';            $_data['agent_rate'] = isset($_v['rate']['agent_rate']) ? $_v['rate']['agent_rate'] : 1;            $_data['agent_rebate'] = isset($_v['rate']['agent_rebate']) ? $_v['rate']['agent_rebate'] : 0;            $_data['benefit_type'] = isset($_v['gamerate']['benefit_type']) ? $_v['gamerate']['benefit_type'] : 0;            $_data['benefit_type_text'] = $_gr_model->getBenefitTypeTextAttr($_data['benefit_type']);            $_data['promote_switch'] = isset($_v['game']['promote_switch']) ? $_v['game']['promote_switch']                : GameConst::GAME_PROMOTE_SWITCH_NO;            $_data['sub_agent_rate'] = isset($_v['rate']['sub_agent_rate']) ? $_v['rate']['sub_agent_rate'] : 1;            $_data['sub_agent_rebate'] = isset($_v['rate']['sub_agent_rebate']) ? $_v['rate']['sub_agent_rebate'] : 0;            $_data['first_mem_rate'] = isset($_v['rate']['first_mem_rate']) ? $_v['rate']['first_mem_rate'] : 1;            $_data['first_mem_rebate'] = isset($_v['rate']['first_mem_rebate']) ? $_v['rate']['first_mem_rebate'] : 0;            $_data['mem_rate'] = isset($_v['rate']['mem_rate']) ? $_v['rate']['mem_rate'] : 1;            $_data['mem_rebate'] = isset($_v['rate']['mem_rebate']) ? $_v['rate']['mem_rebate'] : 0;            $_data['mem_agent_reward'] = isset($_v['rate']['mem_agent_reward']) ? $_v['rate']['mem_agent_reward'] : 0;            $_data['mem_reward'] = isset($_v['rate']['mem_reward']) ? $_v['rate']['mem_reward'] : 0;            $_data['status'] = $_v['status'];            $_data['promote_switch_label'] = $_game_model->getAgPsLabel($_data['status']);            $_data['create_time'] = $_v['create_time'];            $_list[] = $_data;        }        if (empty($_games)) {            $_list = null;        }        $_rdata['count'] = $_count;        $_rdata['list'] = $_list;        return $_rdata;    }}
 |