浏览代码

增加是否有可领取任务接口

zqwang 2 年之前
父节点
当前提交
ed344c7bfa

+ 108 - 34
app/Http/Controllers/QuickApp/User/UserController.php

@@ -73,14 +73,14 @@ class UserController extends BaseController
      */
     public function index(Request $request)
     {
-        $package     = $request->header('x-package', '');
+        $package = $request->header('x-package', '');
         $data = $this->user_info;
         if (!$data->head_img) {
             $data->head_img = 'https://yueduyun.oss-cn-hangzhou.aliyuncs.com/xiaochengxu/img/defaulthead.png';
         }
         $home_page = 'index';
-        if(!empty($package)){
-            $home_page = QappPackage::where('package',$package)->value('home_page');
+        if (!empty($package)) {
+            $home_page = QappPackage::where('package', $package)->value('home_page');
         }
         //快应用首页默认展示
         $data['home_page'] = empty($home_page) ? 'index' : $home_page;
@@ -105,20 +105,20 @@ class UserController extends BaseController
         $data['pay_mode_default'] = 'weixin';
         $data['is_check'] = $data->distribution_channel_id == 9487 ? true : false;
         $user = (new QappUserService())->getQAppUserByUid($data['id']);
-        if(!$user || $user->status == 0){
-            \Log::info('user_log_off_user_info:uid:'.$user->uid);
+        if (!$user || $user->status == 0) {
+            \Log::info('user_log_off_user_info:uid:' . $user->uid);
             $data['balance'] = 0;
             $data['charge_balance'] = 0;
             $data['reward_balance'] = 0;
             $data['is_vip'] = 0;
             $data['vip_days'] = 0;
-        }else{
-            $send_order_id = !empty($this->send_order_id) ? $this->send_order_id :  !empty($user->send_order_id) ? $user->send_order_id : 0;
-            if($send_order_id){
+        } else {
+            $send_order_id = !empty($this->send_order_id) ? $this->send_order_id : !empty($user->send_order_id) ? $user->send_order_id : 0;
+            if ($send_order_id) {
                 $send_order = SendOrder::find($send_order_id);
-                if ($send_order){
-                    $book = Book::leftjoin('book_categories','book_categories.id','books.category_id')
-                        ->where('books.id',$send_order->book_id)
+                if ($send_order) {
+                    $book = Book::leftjoin('book_categories', 'book_categories.id', 'books.category_id')
+                        ->where('books.id', $send_order->book_id)
                         ->select('book_categories.pid')
                         ->first();
                     $data['book_sex'] = (isset($book->pid) && $book->pid == 2) ? 0 : 1;
@@ -126,7 +126,7 @@ class UserController extends BaseController
             }
         }
         // $data['is_check'] = !$this->phone;
-        \Log::info('user_info:'.$this->uid.' data:'.json_encode($data));
+        \Log::info('user_info:' . $this->uid . ' data:' . json_encode($data));
         return response()->success($data);
     }
 
@@ -371,7 +371,7 @@ class UserController extends BaseController
     public function getUserTaskReward(int $id)
     {
         $service = new UserTaskService($this->uid);
-        $result  = $service->getTaskReward($id);
+        $result = $service->getTaskReward($id);
         if ($result == 1) {
             return response()->success(['is_sign' => true]);
         } else if ($result == -1) {
@@ -386,21 +386,8 @@ class UserController extends BaseController
      */
     public function taskList()
     {
-        $service        = new UserTaskService($this->uid);
-        $new_user_tasks = $service->findNewUserTaskList();
-        $date_tasks     = $service->findDateUserTaskList();
-
-        // 琥珀阅读去除加桌任务
-        if ($this->distribution_channel_id == 14903 && $new_user_tasks){
-            foreach ($new_user_tasks as $key =>  $val){
-                if ($val['code'] == "add_desk"){
-                    unset($new_user_tasks[$key]);
-                }
-            }
-            unset($val);
-        }
-        $new_user_tasks = array_values($new_user_tasks->toArray());
-        return response()->success(compact('new_user_tasks', 'date_tasks'));
+        $list = $this->getTaskList();
+        return response()->success();
     }
 
     /**
@@ -409,10 +396,10 @@ class UserController extends BaseController
      */
     public function logOff()
     {
-        $service        = new QappUserService();
+        $service = new QappUserService();
         $res = $service->getLogOff($this->uid);
-        \Log::info('user_log_off:uid:'.$this->uid.' res:'.$res);
-        if($res){
+        \Log::info('user_log_off:uid:' . $this->uid . ' res:' . $res);
+        if ($res) {
             return response()->success();
         }
         return response()->error('QAPP_SYS_ERROR');
@@ -450,13 +437,100 @@ class UserController extends BaseController
      */
     private function get_sign_reward_list($distribution_channel_id)
     {
-        $list =   [30, 35, 40, 45, 50, 55, 60];
+        $list = [30, 35, 40, 45, 50, 55, 60];
 
         // 琥珀阅读签到奖励独立
-        if ($distribution_channel_id == 14903){
-            $list = [30,88,188,30,88,188,188];
+        if ($distribution_channel_id == 14903) {
+            $list = [30, 88, 188, 30, 88, 188, 188];
         }
 
         return $list;
     }
+
+    /**
+     * 是否有可领取的任务包括签到
+     * name: hasPendingTask
+     * date 2023/02/22 14:15
+     */
+    public function hasPendingTask()
+    {
+        $show = true;
+        try {
+            $service = new SignService($this->uid);
+            $has_sign_today = $service->hasSignToday();
+
+            if ($has_sign_today) {
+                // 签到找查看是否有可领取的任务
+                $show = $this->checkTask();
+            }
+        } catch (\Exception $exception) {
+            $show = true;
+        }
+        return response()->success(['has_pend_task' => $show]);
+    }
+
+    /**
+     * 是否有可以领取的任务
+     * name: checkTask
+     * @return bool
+     * date 2023/02/22 15:11
+     */
+    private function checkTask()
+    {
+       $list = $this->getTaskList();
+       $task = $list['new_user_tasks'] ?? [];
+       $show = $this->checkTaskItem($task);
+        if ($show){
+            return $show;
+        }
+        $task = $list['date_tasks'] ?? [];
+        return $this->checkTaskItem($task);
+    }
+
+    /**
+     * 获取任务列表
+     * name: getTaskList
+     * @return array
+     * date 2023/02/22 15:10
+     */
+    private function getTaskList()
+    {
+        $service = new UserTaskService($this->uid);
+        $new_user_tasks = $service->findNewUserTaskList();
+        $date_tasks = $service->findDateUserTaskList();
+
+        // 琥珀阅读去除加桌任务
+        if ($this->distribution_channel_id == 14903 && $new_user_tasks) {
+            foreach ($new_user_tasks as $key => $val) {
+                if ($val['code'] == "add_desk") {
+                    unset($new_user_tasks[$key]);
+                }
+            }
+            unset($val);
+        }
+        $new_user_tasks = array_values($new_user_tasks->toArray());
+
+        return compact('new_user_tasks', 'date_tasks');
+    }
+
+    /**
+     * 检测是否有可以领取项
+     * name: checkTaskItem
+     * @param $task
+     * @return bool
+     * date 2023/02/22 15:10
+     */
+    private function checkTaskItem($task)
+    {
+        $show = false;
+        foreach ($task as  $value){
+            if (isset($value['status']) && $value['status'] == 1){
+                $show = true;
+                break ;
+            }
+        }
+        return $show;
+    }
+
+
 }

+ 3 - 1
app/Http/Routes/QuickApp/QuickAppRoutes.php

@@ -161,8 +161,10 @@ Route::group(['domain' => env('QUICKAPP_DOMAIN'), 'namespace' => 'App\Http\Contr
         Route::get('recon_activity', 'Activity\ActivityController@channelCustomActivityRecom');
         // 派单替换书籍-- 设置开启替换书籍则显示替换书籍,否则则显示派单书籍
         Route::get('advReplaceBookInfo', 'SendOrder\AdReplaceBookController@getAdvReplaceBookInfo');
-
+        //ip屏蔽书籍替换
         Route::get('sendOrder/advShield', 'SendOrder\AdReplaceBookController@advShield');
+        //是否有待领取任务
+        Route::get('user/hasPendingTask', 'User\UserController@hasPendingTask');
     });
 
 

+ 7 - 0
app/Modules/User/Services/SignService.php

@@ -137,4 +137,11 @@ class SignService
     {
         return $this->reward_list[$sign_day % 7];
     }
+
+    public  function hasSignToday(){
+
+        $date = $this->getSignDate();
+        return $date == date('Y-m-d');
+    }
+
 }

+ 5 - 0
app/Modules/UserTask/Services/UserTaskService.php

@@ -163,4 +163,9 @@ class UserTaskService
             return $task;
         });
     }
+
+    public function hasPendingTask()
+    {
+        
+    }
 }

+ 5 - 1
resources/views/qapp/start.blade.php

@@ -340,6 +340,7 @@
             chapter_id: QYY.cid,
             send_order_id: QYY.send_order_id
         };
+        console.log(parmas);
         try {
             if(QYY.isWx){
                 appRouter(QYY.packName, "/" + QYY.entry, parmas);
@@ -360,6 +361,7 @@
     //URL唤醒快应用
     function routerAHap(data) {
         var parmas = $.param(data);
+        console.log("https://hapjs.org/app/" + QYY.packName + "/" + QYY.entry + "?" + parmas)
         var ohapa = document.createElement("a");
         ohapa.href = "https://hapjs.org/app/" + QYY.packName + "/" + QYY.entry + "?" + parmas;
         ohapa.setAttribute(
@@ -367,13 +369,15 @@
             "position: absolute;left: -1000rem;height: 1rem;width: 1rem;overflow: hidden"
         );
         document.body.appendChild(ohapa);
-        ohapa.click();
+        // ohapa.click();
 
     }
     //初始化
     function startDeep() {
+        console.log(1111111111);
         showH5Page();
         !QYY.isIos && openQyy();
+        console.log(222);
     }
     //华为h5流程
     var hwPage = {