* @version : HuoMp 1.0 */ namespace huomp\logic\share; use huo\controller\game\GameCache; use huo\controller\request\Device; use huo\controller\wap\Option; use huo\model\common\CommonModel; use huo\model\posts\ShareLogModel; use huolib\constant\OptionConst; class ShareLogic extends CommonModel { public function __construct() { parent::__construct(); } /** * 插入分享log * * @param $mem_id * @param $share_data * * @param Device $device * * @return bool|mixed */ public function insertShareLog($mem_id, $share_data, Device $device) { $_share_data = $share_data; $_data = $device->toArray(); $_data['mem_id'] = $mem_id; $_data['create_time'] = time(); $_data['title'] = isset($_share_data['title']) ? $_share_data['title'] : ''; $_data['content'] = isset($_share_data['content']) ? $_share_data['content'] : ''; $_data['url'] = isset($_share_data['url']) ? $_share_data['url'] : ''; $_data['to_target'] = isset($_share_data['to_target']) ? $_share_data['to_target'] : ''; $_data['table_name'] = isset($_share_data['table_name']) ? $_share_data['table_name'] : ''; $_data['object_id'] = isset($_share_data['object_id']) ? $_share_data['object_id'] : ''; return (new ShareLogModel())->insertLog($_data); } /** * 更新分享log * * @param int $share_id * @param string $to_target * @param string $more * * @return bool|mixed */ public function updateShareLog($share_id, $to_target, $more) { $_map['id'] = $share_id; $_data['to_target'] = $to_target; $_data['more'] = $more; return (new ShareLogModel())->where($_map)->update($_data); } /** * 获取分享配置 * return array * * @param int $app_id * * @return array|string */ public function getShareSetting($app_id = 0) { $_setting_name = OptionConst::SETTING_SHARE_IMG; $_option_value = [ OptionConst::SETTING_SHARE_TITLE => '', OptionConst::SETTING_SHARE_IMG_GAME => '', OptionConst::SETTING_SHARE_IMG_MP => '' ]; $_m = new Option(); $_item = $_m->getOptionData($_setting_name, 1, true, json_encode($_option_value)); if (!empty($_item['option_value'])) { $_item['option_value'] = json_decode($_item['option_value'], true); } $_option_value[OptionConst::SETTING_SHARE_TITLE] = empty($_item['option_value'][OptionConst::SETTING_SHARE_TITLE]) ? '' : $_item['option_value'][OptionConst::SETTING_SHARE_TITLE]; if (!empty($_item['option_value'][OptionConst::SETTING_SHARE_IMG_GAME])) { $_share_img_game = $_item['option_value'][OptionConst::SETTING_SHARE_IMG_GAME]; $_key = array_rand($_share_img_game, 1); $_option_value[OptionConst::SETTING_SHARE_IMG_GAME] = $_share_img_game[$_key]; } if (!empty($_item['option_value'][OptionConst::SETTING_SHARE_IMG_MP])) { $_share_img_mp = $_item['option_value'][OptionConst::SETTING_SHARE_IMG_MP]; $_key = array_rand($_share_img_mp, 1); $_option_value[OptionConst::SETTING_SHARE_IMG_MP] = $_share_img_mp[$_key]; } 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'] : []; if (!empty($_share_data)) { if (false === is_array($_share_data)) { $_share_data = (array)$_share_data; } $_key = array_rand($_share_data, 1); if (false != is_array($_share_data[$_key])) { $_option_value[OptionConst::SETTING_SHARE_TITLE] = get_val($_share_data[$_key], 'title', ''); $_option_value[OptionConst::SETTING_SHARE_IMG_GAME] = cmf_get_image_url( get_val($_share_data[$_key], 'url', '') ); } } } return $_option_value; } }