Browse Source

advertise

tusx 6 years ago
parent
commit
ff0bc42cd5

+ 79 - 4
app/Http/Controllers/Wap/Advertises/ShareController.php

@@ -4,26 +4,101 @@ namespace App\Http\Controllers\Wap\Advertises;
 
 use App\Http\Controllers\Wap\BaseController;
 
+use App\Modules\Book\Services\ChapterService;
 use App\Modules\Cpa\Services\AdvertiseService;
 use App\Modules\Cpa\Services\AdvertiseUsersService;
 use App\Modules\Book\Services\BookConfigService;
 use App\Modules\Cpa\Services\AdvertiseUserQueueService;
+use App\Modules\Cpa\Services\ShareBringUsersService;
+use App\Modules\Cpa\Services\ShareUsersService;
 use App\Modules\User\Services\ReadRecordService;
 use Illuminate\Http\Request;
 use Redis;
 use Hashids;
 use DB;
+use EasyWeChat\Foundation\Application;
+
 
 class ShareController extends BaseController
 {
-    public static function share(Request $request){
+    public function share(Request $request){
         $distribution_channel_id = $request->input('distribution_channel_id',0);
         $uid = $request->input('uid','');
-        $bid = $request->input('bid','');
-        if(empty($distribution_channel_id)||empty($uid)||empty($bid)) {
-            return response()->error();
+        $cid = $request->input('cid','');
+        $bid_encode = $request->input('bid','');
+        if(empty($distribution_channel_id)||empty($uid)||empty($bid_encode)) {
+            return response()->error('PARAM_EMPTY');
+        }
+        $bid =Hashids::decode($bid_encode)[0];
+        $book_info = BookConfigService::getBookById($bid);
+        if(!$book_info){
+            return response()->error('PARAM_ERROR');
         }
+        $chapter_info = ChapterService::getChapterById($book_info->first_cid);
+
+        $book_name = $book_info->name;
+
+        //加入用户分享记录
+        $share_user_info = ShareUsersService::addShareUsers(compact('bid','uid','cid','distribution_channel_id','book_name'));
+        $js_config = $this->getJSConfig();
+        $bid = $bid_encode;
+        $title = $book_info->book_name;
+        $desc = substr($chapter_info->content,0,20).'...';
+        //$link = env('PROTOCOL').'://site'.Hashids::encode($distribution_channel_id)._domain().'/reader?bid='.$bid;
+        $params =[
+            'uid'=>$uid,'bid'=>$bid,'distribution_channel_id'=>$distribution_channel_id,
+            'share_user_rec_id'=>$share_user_info->id,'timestamp'=>time()]
+        ;
+        $url_param_str = arr_to_url($params);
+        $sign = md5($url_param_str);
+        $link = env('PROTOCOL').'://'.env('share_domain').'/share/jump?'.$url_param_str;
+        $imgUrl=$book_info->cover;
 
         return view('wap.share',['params'=>compact('bid','book_name','uid','timestamp','my_sign')]);
     }
+
+    private function getJSConfig(){
+        $options = [
+            'debug'  => true,
+            'app_id' => env('JS_AppId'),
+            'secret' => env('JS_AppSecret'),
+            'token'  => 'easywechat',
+
+            'log' => [
+                'level' => 'debug',
+                'file'  => storage_path('logs/easyWecaht.log'), // XXX: 绝对路径!!!!
+            ],
+
+            //...
+        ];
+
+        $app = new Application($options);
+        $js = $app->js->config(array('onMenuShareQQ', 'onMenuShareWeibo'));
+
+        return $js;
+    }
+
+    public function jump(Request $request){
+        $distribution_channel_id = $request->input('distribution_channel_id',0);
+        $uid = $request->input('uid','');
+        $cid = $request->input('cid','');
+        $bid_encode = $request->input('bid','');
+        $share_user_rec_id = $request->input('share_user_rec_id','');
+        $timestamp = $request->input('timestamp','');
+        $sign = $request->input('sign','');
+        if(empty($distribution_channel_id)||empty($uid)||empty($cid)||empty($bid_encode)||empty($share_user_rec_id)||empty($sign)) {
+            return response()->error('PARAM_ERROR');
+        }
+
+        $sign_str = arr_to_url(compact('distribution_channel_id','uid','cid','bid_encode','share_user_rec_id','timestamp'));
+        $my_sign = md5($sign_str);
+        if($sign != $my_sign) {
+            return response()->error('PARAM_ERROR');
+        }
+        $bid = Hashids::decode($bid_encode)[0];
+        $buid = $this->uid;
+        $data = compact('uid','bid','cid','share_user_rec_id','buid');
+        ShareBringUsersService::addShareUsers($data);
+
+    }
 }

+ 16 - 0
app/Modules/ShareFree/Models/ShareBringUsers.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Modules\ShareFree\Models;
+
+use App\Modules\Book\Services\BookConfigService;
+use Illuminate\Database\Eloquent\Model;
+
+class ShareBringUsers extends Model
+{
+    protected $table = 'share_bring_users';
+    protected $fillable = ['id', 'uid', 'bid', 'cid','buid','is_subscribe', 'share_user_id'];
+
+    public static function addShareUsers($data) {
+        return self::create($data);
+    }
+}

+ 25 - 0
app/Modules/ShareFree/Models/ShareUsers.php

@@ -0,0 +1,25 @@
+<?php
+
+namespace App\Modules\ShareFree\Models;
+
+use App\Modules\Book\Services\BookConfigService;
+use Illuminate\Database\Eloquent\Model;
+
+class ShareUsers extends Model
+{
+    protected $table = 'share_users';
+    protected $fillable = ['id', 'uid', 'bid', 'distribution_channel_id', 'cid','book_name', 'status'];
+
+    public static function addShareUsers($data)
+    {
+        if(!isset($data['uid'])||!isset($data['bid'])) {
+            return false;
+        }
+        $rec = self::where('uid',$data['uid'])->where('bid',$data['bid'])->first();
+
+        if(!$rec) {
+            return self::create($data);
+        }
+        return false;
+    }
+}

+ 18 - 0
app/Modules/ShareFree/Services/ShareBringUsersService.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Modules\Cpa\Services;
+
+use App\Modules\Cpa\Models\Advertise;
+use App\Modules\ShareFree\Models\ShareBringUsers;
+use App\Modules\ShareFree\Models\ShareUsers;
+use App\Modules\Subscribe\Models\Order;
+use App\Modules\Trade\Services\OrderService;
+use DB;
+use Redis;
+
+class ShareBringUsersService
+{
+    public static function addShareUsers($data) {
+        return ShareBringUsers::addShareUsers($data);
+    }
+}

+ 17 - 0
app/Modules/ShareFree/Services/ShareUsersService.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace App\Modules\Cpa\Services;
+
+use App\Modules\Cpa\Models\Advertise;
+use App\Modules\ShareFree\Models\ShareUsers;
+use App\Modules\Subscribe\Models\Order;
+use App\Modules\Trade\Services\OrderService;
+use DB;
+use Redis;
+
+class ShareUsersService
+{
+    public static function addShareUsers($data) {
+        return ShareUsers::addShareUsers($data);
+    }
+}