123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- <?php
- namespace app\index\controller;
- use app\common\controller\Frontend;
- use app\common\library\Redis;
- use app\common\library\WeChatObject;
- use app\common\service\ActiveShareService;
- use app\common\service\ShareService;
- use app\main\constants\CacheConstants;
- use app\main\constants\RechargeConstants;
- use app\main\constants\UrlConstants;
- use app\main\helper\ArrayHelper;
- use app\main\service\AdminService;
- use app\main\service\BuyMoreService;
- use app\main\service\ExportFansService;
- use app\main\service\LogService;
- use app\main\service\UrlService;
- use app\main\service\UserService;
- use think\Config;
- use think\Cookie;
- use think\Request;
- use function fast\array_get;
- class Share extends Frontend
- {
- protected $layout = '';
- public function _initialize()
- {
- parent::_initialize();
- }
- /**
- * 活动入口页
- * @return string
- * @throws \think\Exception
- */
- public function index()
- {
- if (UserService::instance()->getRunTimeObject()->urlType == UrlConstants::REFERRAL_GROUND_PAGE_SPREAD) { //如果业务域名就跳转;
- $userInfo = UserService::instance()->getUserInfo();
- $adminConfig = AdminService::instance()->getAdminConfigModel()->getAdminInfoAll($userInfo->channel_id);
- $shareHost = Config::get('site.share_domain') . '/index/share/index?';
- if (strstr('http', $shareHost) === false) {
- $shareHost = 'http://' . $shareHost;
- }
- $params['from'] = 'wechat';
- $params['share_type'] = $this->request->get('type');
- $params['admin_id'] = $adminConfig['admin_id'];
- $params['channel_id'] = $userInfo->channel_id;
- $params['user_id'] = $userInfo->id;
- $shareHost .= http_build_query($params);
- $this->redirect($shareHost);
- }
- $userInfo = UserService::instance()->getUserInfo();
- $isOpenShare = Config::get('site.is_open_share');
- $channels = Config::get('site.share_channels');
- // echo $channels;
- // echo $userInfo->channel_id;exit;
- if ($isOpenShare && $channels != -1) {
- $channels = explode(',', $channels);
- $userChannel = explode(',', $userInfo->channel_id);
- $isHave = array_intersect($channels, $userChannel);
- if (empty($channels) || !$isHave) {
- $isOpenShare = 0;
- }
- }
- $toUrl = getCurrentDomain($userInfo->channel_id, '/index/user/recent');
- //获得分享内容
- $content = ActiveShareService::instance()->getShareContent($userInfo->channel_id, $userInfo->id);
- //获得分享统计
- $data = ShareService::instance()->getShareUserList($userInfo->id, 0, 6, $userInfo->nickname);
- $data['pageNum'] = 0;
- $data['lenNum'] = 6;
- //弹幕
- $barrage = ShareService::instance()->getShareBarrage($userInfo->id);
- // ShareService::instance()->attentionUser(60053,['nickname'=>'nihao','avatar'=>44544]);
- // ShareService::instance()->updateUserSourceTime($userInfo->id,60052);
- // $re = ShareService::instance()->ClickShareLink($userInfo->id,60052,1111111);
- // dump($re);exit;
- $this->assign('share_rules', Config::get('site.share_rules'));
- $this->assign('log_host', Config::get('site.loghost')); //设置打点域名
- $this->assign('content', str_replace("'", "\"", $content));
- $this->assign('barrage', $barrage);
- $this->assign('is_open_share', $isOpenShare);
- $this->assign('to_url', $toUrl);
- // dump($data)
- $this->assign('data', $data);
- return $this->view->fetch();
- }
- public function exportfans()
- {
- $user = UserService::instance()->getUserInfo();
- $channel_id = $user->channel_id;
- $fans = ExportFansService::instance()->checkFansSignToExport($channel_id, $user->id)->data;
- if ($fans) {
- $this->assign('fans', $fans);
- $adminConfig = AdminService::instance()->getAdminConfigModel()->getAdminInfoAll($user->channel_id);
- $this->assign('adminconfig', $adminConfig);
- return $this->view->fetch();
- } else {
- $this->redirect(getCurrentDomain($channel_id, '/index/user/recent'));
- }
- }
- //引导落地页
- public function leadpage($id)
- {
- if (empty($id) || !intval($id)) {
- $this->error('链接不存在');
- die;
- }
- $data = model("ExportFans")->getOne($id);
- if (!$data || !isset($data['lead_img']) || empty($data['lead_img'])) {
- $this->error('链接不存在');
- die;
- }
- $this->view->assign('data', $data);
- return $this->fetch();
- }
- //引导落地页
- public function landpage($id, $type)
- {
- $admininfo = model('AdminConfig')->getAdminInfoAll($this->urlChannelId);
- $wechat = new WeChatObject($admininfo);
- $officialAccount = $wechat->getOfficialAccount();
- //使用原始url生成签名
- $url = Request::instance()->url(true);
- $url = preg_replace('/:\d+$/', '', trim($url)); //去除 :端口 结束的
- $url = preg_replace('/:\d+\//', '/', trim($url)); //去除 :端口/
- $officialAccount->jssdk->setUrl($url);
- $json = $officialAccount->jssdk->buildConfig(['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareQZone'], false, false, true);
- $this->assign('wxjson', $json);
- if (empty($id) || !intval($id)) {
- $this->error('链接不存在');
- die;
- }
- $data = model("ExportFans")->getOne($id);
- if (!$data) {
- $this->error('链接不存在');
- die;
- }
- if ($type == 'sign') {
- $lead_field = 'lead_img';
- } else {
- $lead_field = $type . '_lead_img';
- }
- $row = [
- 'id' => $data['id'],
- 'lead_img' => ArrayHelper::array_get($data, $lead_field),
- 'share_icon' => ArrayHelper::array_get($data, 'share_icon'),
- 'title' => ArrayHelper::array_get($data, 'lead_title'),
- 'share_title' => ArrayHelper::array_get($data, 'share_title'),
- 'share_desc' => ArrayHelper::array_get($data, 'share_desc'),
- 'share_url' => ArrayHelper::array_get($data, 'share_url'),
- ];
- $this->view->assign('data', $row);
- return $this->fetch();
- }
- public function addkandian($id)
- {
- $user = UserService::instance()->getUserInfo();
- $export = ExportFansService::instance()->getExportFansModel()->getOne($id);
- if (!$export) {
- $this->error('活动已结束', '', '下次再来获取书币哦');
- }
- //书币赠送次数超限
- $cache = CacheConstants::getExportFansGiveKandianCount($user->id);
- if (Redis::instance()->get($cache) >= $export['share_times']) {
- $this->error('当日获取书币次数已满', '', '下次再来获取书币哦');
- }
- $cookie = Cookie::get('once');
- if (!$cookie) {
- $success = rand(0, 1);
- if ($success == 1) {
- BuyMoreService::instance()->addFreeKandian($user->id, $export['share_free_kandian'], 0, 3, RechargeConstants::RECHARGE_TYPE_ACTIVITY);
- Redis::instance()->incr($cache);
- Redis::instance()->expire($cache, 86400);
- Cookie::delete('once');
- $this->success('恭喜您获得<span style="color: red;">' . $export['share_free_kandian'] . '书币</span>', '', '请到<a href="/index/recharge/record">个人中心>充值记录</a>查看');
- } else {
- Cookie::set('once', 1);
- $this->error('您本次分享未获得书币', '', '下次分享必定获取书币');
- }
- } else {
- BuyMoreService::instance()->addFreeKandian($user->id, $export['share_free_kandian'], 0, 3, RechargeConstants::RECHARGE_TYPE_ACTIVITY);
- Redis::instance()->incr($cache);
- Redis::instance()->expire($cache, 86400);
- Cookie::delete('once');
- $this->success('恭喜您获得<span style="color: red;">' . $export['share_free_kandian'] . '书币</span>', '', '请到<a href="/index/recharge/record">个人中心>充值记录</a>查看');
- }
- }
- }
|