* @version : HUOSDK 7.0 */ namespace huomp\controller\share; use huo\controller\agent\AgentCache; use huo\controller\common\Base; use huo\controller\game\GameCache; use huo\controller\member\MemCache; use huo\controller\request\Device; use huolib\constant\OptionConst; use huolib\status\CommonStatus; use huomp\controller\agent\AgentState; use huomp\logic\share\ShareLogic; use huomp\model\game\GameMiniModel; class ShareOut extends Base { /** * 获取分享信息 * * @param int $mem_id * @param int $app_id * * @return array */ public function getAllShareInfo($mem_id, $app_id) { $_data['state'] = (new AgentState())->getCodeByMemApp($mem_id, $app_id); $_share_info = []; if (!empty($app_id)) { $_game_data = (new GameCache())->getInfoByAppId($app_id); $_share_data = !empty($_game_data['ext_info']['share_img']) ? $_game_data['ext_info']['share_img'] : []; foreach ($_share_data as $_k => $_v) { $_share['title'] = get_val($_v, 'title', ''); $_share['image'] = cmf_get_image_url( get_val($_v, 'url', '') ); $_share_info[] = $_share; } } if (empty($_share_info)) { $_share_setting = (new ShareLogic())->getShareSetting($app_id); $_share['title'] = $_share_setting[OptionConst::SETTING_SHARE_TITLE]; /* 分享名称 */ $_share['image'] = cmf_get_image_preview_url( $_share_setting[OptionConst::SETTING_SHARE_IMG_GAME] ); $_share_info[] = $_share; } $_data['shareinfo'] = $_share_info; $_code = CommonStatus::NO_ERROR; return $this->huoSuccess($_code, CommonStatus::getMsg($_code), $_data); } /** * 获取小程序分享信息 * * @param int $mem_id 玩家ID * @param int $app_id 应用ID * * @param string $path 分享路径 * @param Device $device 设备信息 * * @return array */ public function getShareInfo($mem_id, $app_id, $path, Device $device) { $_state = (new AgentState())->getCodeByMemApp($mem_id, $app_id); $_share_logic = new ShareLogic(); $_share_setting = $_share_logic->getShareSetting($app_id); $_title = $_share_setting[OptionConst::SETTING_SHARE_TITLE]; /* 分享名称 */ $_image = cmf_get_image_preview_url($_share_setting[OptionConst::SETTING_SHARE_IMG_GAME]); /* 分享群背景图 */ $_pyq_bg = cmf_get_image_preview_url($_share_setting[OptionConst::SETTING_SHARE_IMG_MP]); /* 朋友圈分享背景图 */ // $_mp_qr_arr = (new QrCodeOut())->getQrCode($mem_id, $app_id, $path);/* 小程序码 */ // if (CommonStatus::NO_ERROR != $_mp_qr_arr['code']) { // $_mp_qr = ''; // } else { // $_mp_qr = $_mp_qr_arr['data']['image']; // } $_mp_qr = ''; $_share_data['title'] = $_title; $_share_data['content'] = $_title; $_share_data['url'] = $path; //写入分享log $_rs = $_share_logic->insertShareLog($mem_id, $_share_data, $device); if (false == $_rs) { $_code = CommonStatus::INNER_ERROR; return $this->huoError($_code, CommonStatus::getMsg($_code)); } $_rdata['share_id'] = $_rs; $_rdata['title'] = $_title; $_rdata['image'] = $_image; $_rdata['mp_qr'] = $_mp_qr; $_rdata['pyq_bg'] = $_pyq_bg; $_rdata['state'] = $_state; $_code = CommonStatus::NO_ERROR; return $this->huoSuccess($_code, CommonStatus::getMsg($_code), $_rdata); } /** * @param int $share_id 分享ID * @param string $to_target 分享对象wx pyq * @param string $more 更多信息 * * @return array */ public function upShare($share_id, $to_target, $more = '') { $_rs = (new ShareLogic())->updateShareLog($share_id, $to_target, $more); if (false === $_rs) { $_code = CommonStatus::INNER_ERROR; return $this->huoError($_code, CommonStatus::getMsg($_code)); } $_code = CommonStatus::NO_ERROR; return $this->huoSuccess($_code, CommonStatus::getMsg($_code)); } /** * 获取分享落地页 * * @param string $state 分享者标记信息 * @param int $game_id 游戏id * * @return array */ public function getSharePage($state, $game_id) { $_parent_ag_id = (new AgentState())->getIdByCode($state); $_mem = [ 'mem_id' => 0, 'avatar' => '', 'username' => '', 'nickname' => '' ]; $_game = [ 'game_id' => 0, 'mini_app_id' => 0, 'gamename' => '', 'icon' => '', 'oneword' => '' ]; if (!empty($_parent_ag_id)) { $_ac_class = AgentCache::ins(); $_parent_agent_id = $_ac_class->getAgentIdByAgId($_parent_ag_id); $_parent_mem_id = $_ac_class->getMemIdByAgentId($_parent_agent_id); $_mem_data = MemCache::ins()->getInfoById($_parent_mem_id); if (!empty($_mem_data)) { $_mem = [ 'mem_id' => $_mem_data['id'], 'avatar' => $_mem_data['avatar'], 'username' => $_mem_data['username'], 'nickname' => $_mem_data['nickname'] ]; } } if (!empty($game_id)) { $_game_data = GameCache::ins()->getInfoByAppId($game_id); $_game_mini_data = (new GameMiniModel())->getDataByAppId($game_id); $_game = [ 'game_id' => $game_id, 'mini_app_id' => empty($_game_mini_data) ? '' : $_game_mini_data['mini_app_id'], 'gamename' => empty($_game_data) ? '' : $_game_data['name'], 'icon' => empty($_game_data) ? '' : cmf_get_image_preview_url($_game_data['icon']), 'oneword' => empty($_game_data) ? '' : $_game_data['publicity'], 'url' => empty($_game_data['gv']) ? '' : $_game_data['gv'][0]['package_url'] ]; } $_rdata = [ 'mem' => $_mem, 'game' => $_game ]; $_code = CommonStatus::NO_ERROR; return $this->huoSuccess($_code, CommonStatus::getMsg($_code), $_rdata); } /** * 获取分享规则图片 * * @param $app_id */ public function getShareRuleImg($app_id) { $_game_data = GameCache::ins()->getInfoByAppId($app_id); return empty($_game_data['ext_info']['share_rule_img']) ? '' : cmf_get_image_preview_url($_game_data['ext_info']['share_rule_img']); } }