wesmiler 4 лет назад
Родитель
Сommit
81100a7705
3 измененных файлов с 45 добавлено и 3 удалено
  1. 8 0
      app/Http/Controllers/ActivityController.php
  2. 36 2
      app/Services/ActivityService.php
  3. 1 1
      routes/api.php

+ 8 - 0
app/Http/Controllers/ActivityController.php

@@ -33,4 +33,12 @@ class ActivityController extends Backend
         parent::__construct();
         $this->service = new ActivityService();
     }
+
+    /**
+     * 活动列表
+     * @return array
+     */
+    public function lists(){
+        return $this->service->getDataList();
+    }
 }

+ 36 - 2
app/Services/ActivityService.php

@@ -60,10 +60,44 @@ class ActivityService extends BaseService
      * @since 2020/11/11
      * @author wesmiler
      */
-    public function getList()
+    public function getDataList()
     {
         $params = request()->all();
-        return parent::getList();
+        $page = isset($params['pageSize']) ? intval($params['pageSize']) : PAGE;
+        $pageSize = isset($params['pageSize']) ? intval($params['pageSize']) : PERPAGE;
+
+        $dataList = $this->model::from('activity as a')
+            ->where(function ($query) use ($params) {
+                $query->where('a.mark', 1);
+                $query->where('a.status',1);
+            })
+            ->select(['a.id', 'a.address', 'a.price', 'a.thumb', 'a.type', 'a.title', 'a.create_time', 'a.update_time', 'a.description', 'a.status', 'a.publish_start','a.publish_end'])
+            ->orderBy('a.sort', 'desc')
+            ->paginate($pageSize);
+
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            foreach ($dataList['data'] as &$item) {
+                $item['thumb'] = $item['thumb'] ? get_image_url($item['thumb']) : '';
+                $item['create_time'] = $item['create_time'] ? datetime($item['create_time'],'Y-m-d H:i:s') : '';
+
+                $publishStart = isset($item['publish_start']) && $item['publish_start']? date('m月d日', strtotime($item['publish_start'])) : '';
+                $publishEnd = isset($item['publish_end']) && $item['publish_end']? date('m月d日', strtotime($item['publish_end'])) : '';
+                $item['publish_at'] = $publishStart==$publishEnd? $publishStart : ($publishStart && $publishEnd>$publishStart? $publishStart.'-'.$publishEnd : '');
+                $item['publish_at_text'] = $item['publish_start'] && $item['publish_end']? $item['publish_start'].'至'.$item['publish_end'] : '';
+                $bookNum = ActivityBooksModel::where(['aid'=> $item['id'],'status'=> 1])->count('id');
+                $item['count'] = intval($bookNum);
+            }
+            unset($item);
+        }
+
+        return [
+            'code' => 0,
+            'success'=> true,
+            'msg' => '操作成功',
+            'count' => isset($dataList['total']) ? $dataList['total'] : 0,
+            'data' => isset($dataList['data']) ? $dataList['data'] : 0,
+        ];
     }
 
     /**

+ 1 - 1
routes/api.php

@@ -36,7 +36,7 @@ Route::post('/siyuan/info', [\App\Http\Controllers\Api\v1\SiyuanController::clas
 
 
 // 寺院活动
-Route::post('/activity/list', [\App\Http\Controllers\Api\v1\ActivityController::class, 'index']);
+Route::post('/activity/list', [\App\Http\Controllers\Api\v1\ActivityController::class, 'lists']);
 Route::post('/activity/info', [\App\Http\Controllers\Api\v1\ActivityController::class, 'info']);
 Route::post('/activity/books', [\App\Http\Controllers\Api\v1\ActivityController::class, 'books']);