瀏覽代碼

wesmiler 报恩寺项目提交

wesmiler 4 年之前
父節點
當前提交
da529e0b72

+ 4 - 0
app/Http/Controllers/Api/v1/CollectController.php

@@ -45,4 +45,8 @@ class CollectController extends BaseController
     public function collect(){
         return $this->service->collect($this->userId);
     }
+
+    public function book(){
+        return $this->buddhistService->save($this->userId);
+    }
 }

+ 26 - 0
app/Models/BuddhistCollectModel.php

@@ -0,0 +1,26 @@
+<?php
+// +----------------------------------------------------------------------
+// | Laravel框架 [ Laravel ]
+// +----------------------------------------------------------------------
+// | 版权所有 2017~2021 Laravel研发中心
+// +----------------------------------------------------------------------
+// | 官方网站: http://www.laravel.cn
+// +----------------------------------------------------------------------
+// | Author: wesmiler <12345678@qq.com>
+// +----------------------------------------------------------------------
+
+namespace App\Models;
+
+/**
+ * 佛经收藏管理-模型
+ * @author wesmiler
+ * @since 2020/11/11
+ * Class BuddhistCollectModel
+ * @package App\Models
+ */
+class BuddhistCollectModel extends BaseModel
+{
+    // 设置数据表
+    protected $table = 'buddhist_collect';
+
+}

+ 26 - 0
app/Models/MusicCollectModel.php

@@ -0,0 +1,26 @@
+<?php
+// +----------------------------------------------------------------------
+// | Laravel框架 [ Laravel ]
+// +----------------------------------------------------------------------
+// | 版权所有 2017~2021 Laravel研发中心
+// +----------------------------------------------------------------------
+// | 官方网站: http://www.laravel.cn
+// +----------------------------------------------------------------------
+// | Author: wesmiler <12345678@qq.com>
+// +----------------------------------------------------------------------
+
+namespace App\Models;
+
+/**
+ * 佛音收藏管理-模型
+ * @author wesmiler
+ * @since 2020/11/11
+ * Class MusicCollectModel
+ * @package App\Models
+ */
+class MusicCollectModel extends BaseModel
+{
+    // 设置数据表
+    protected $table = 'music_collect';
+
+}

+ 157 - 0
app/Services/BuddhistCollectService.php

@@ -0,0 +1,157 @@
+<?php
+// +----------------------------------------------------------------------
+// | Laravel框架 [ Laravel ]
+// +----------------------------------------------------------------------
+// | 版权所有 2017~2021 Laravel研发中心
+// +----------------------------------------------------------------------
+// | 官方网站: http://www.laravel.cn
+// +----------------------------------------------------------------------
+// | Author: wesmiler <12345678@qq.com>
+// +----------------------------------------------------------------------
+
+namespace App\Services;
+
+use App\Models\BuddhistCollectModel;
+
+/**
+ * 佛音歌单管理-服务类
+ * @author wesmiler
+ * @since 2020/11/11
+ * Class BuddhistCollectService
+ * @package App\Services
+ */
+class BuddhistCollectService extends BaseService
+{
+    /**
+     * 构造函数
+     * @author wesmiler
+     * @since 2020/11/11
+     * MusicCollectService constructor.
+     */
+    public function __construct()
+    {
+        $this->model = new BuddhistCollectModel();
+    }
+
+    /**
+     * 获取列表
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function getList()
+    {
+        $params = request()->all();
+
+        return parent::getList();
+    }
+
+    /**
+     * 获取列表
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function getDataList($params)
+    {
+        $page = isset($params['pageSize']) ? intval($params['pageSize']) : PAGE;
+        $pageSize = isset($params['pageSize']) ? intval($params['pageSize']) : PERPAGE;
+
+        $dataList = $this->model::from('buddhist_collect as a')
+            ->leftJoin('buddhist_cates as bc', 'bc.id', '=', 'a.cate_id')
+            ->leftJoin('buddhists as b', 'b.id', '=', 'a.source_id')
+            ->where(function ($query) use ($params) {
+                $query->where(['a.mark'=>1,'a.status'=> 1]);
+
+                $userId = isset($params['user_id']) ? intval($params['user_id']) : 0;
+                if ($userId > 0) {
+                    $query->where('a.user_id', $userId);
+                }
+            })
+            ->select(['a.id', 'a.source_id', 'b.title','b.thumb','bc.name as cate_name','b.view_num', 'a.user_id', 'a.status', 'a.create_time', 'a.update_time'])
+            ->orderBy('a.create_time', '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') : '';
+            }
+            unset($item);
+        }
+
+        return [
+            'code' => 0,
+            'success'=> true,
+            'msg' => '操作成功',
+            'count' => isset($dataList['total']) ? $dataList['total'] : 0,
+            'data' => isset($dataList['data']) ? $dataList['data'] : 0,
+        ];
+    }
+
+
+    /**
+     * 添加或编辑
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function edit()
+    {
+        $data = request()->all();
+        $data['update_time'] = time();
+        return parent::edit($data); // TODO: Change the autogenerated stub
+    }
+
+    /**
+     * 添加或编辑
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function save($userId)
+    {
+
+        $params = request()->all();
+        $id = isset($params['id'])? $params['id'] : 0;
+        $status = isset($params['status'])? $params['status'] : 1;
+        if($id<=0){
+            return message('参数错误', false);
+        }
+
+        if(!in_array($status, [1,2])){
+            return message('参数错误', false);
+        }
+
+        $info = $this->model::where(['user_id'=> $userId, 'source_id'=> $id])->select(['id','status'])->first();
+        if($info && $info->status == 1 && $status == 1){
+            return message("您已收藏过", false);
+        }else if($info && $info->status == 2 && $status == 2){
+            return message("您已取消收藏", false);
+        }else if(!$info && $status == 2){
+            return message("您未收藏过", false);
+        }
+
+        // 处理
+        if($info){
+            $info->status = $status;
+            $info->create_time = time();
+            if($info->save()){
+                return message($status == 1? "收藏成功":"取消收藏成功", true);
+            }
+        }else{
+            $data = [
+                'user_id'=> $userId,
+                'source_id'=> $id,
+                'create_time'=> time(),
+                'status'=> 1,
+            ];
+            if($this->model::insertGetId($data)){
+                return message("收藏成功", true);
+            }
+        }
+
+        return message('操作失败', false);
+    }
+}

+ 9 - 0
app/Services/BuddhistService.php

@@ -11,6 +11,7 @@
 
 namespace App\Services;
 
+use App\Models\BuddhistCollectModel;
 use App\Models\BuddhistModel;
 
 /**
@@ -269,6 +270,14 @@ class BuddhistService extends BaseService
 
             $pageNum = BuddhistPagesService::make()->getCount($info['id']);
             $item['pageNum'] = intval($pageNum);
+
+            // 是否收藏
+            $info['is_collect'] = 0;
+            if($userId){
+                if(BuddhistCollectModel::where(['user_id'=> $userId,'source_id'=> $id,'mark'=> 1,'status'=> 1])->value('id')){
+                    $info['is_collect'] = 1;
+                }
+            }
         }
         return message(MESSAGE_OK, true, $info);
     }

+ 108 - 0
app/Services/MusicCollectService.php

@@ -0,0 +1,108 @@
+<?php
+// +----------------------------------------------------------------------
+// | Laravel框架 [ Laravel ]
+// +----------------------------------------------------------------------
+// | 版权所有 2017~2021 Laravel研发中心
+// +----------------------------------------------------------------------
+// | 官方网站: http://www.laravel.cn
+// +----------------------------------------------------------------------
+// | Author: wesmiler <12345678@qq.com>
+// +----------------------------------------------------------------------
+
+namespace App\Services;
+
+use App\Models\MusicCollectModel;
+
+/**
+ * 佛音歌单管理-服务类
+ * @author wesmiler
+ * @since 2020/11/11
+ * Class MusicCollectService
+ * @package App\Services
+ */
+class MusicCollectService extends BaseService
+{
+    /**
+     * 构造函数
+     * @author wesmiler
+     * @since 2020/11/11
+     * MusicCollectService constructor.
+     */
+    public function __construct()
+    {
+        $this->model = new MusicCollectModel();
+    }
+
+    /**
+     * 获取列表
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function getList()
+    {
+        $params = request()->all();
+
+        return parent::getList();
+    }
+
+    /**
+     * 获取列表
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function getDataList($params)
+    {
+        $page = isset($params['pageSize']) ? intval($params['pageSize']) : PAGE;
+        $pageSize = isset($params['pageSize']) ? intval($params['pageSize']) : PERPAGE;
+
+        $dataList = $this->model::from('music_collect as a')
+            ->leftJoin('member as m', 'm.id', '=', 'a.user_id')
+            ->leftJoin('music as ms', 'ms.id', '=', 'a.source_id')
+            ->where(function ($query) use ($params) {
+                $query->where(['a.mark'=>1,'a.status'=> 1]);
+
+                $userId = isset($params['user_id']) ? intval($params['user_id']) : 0;
+                if ($userId > 0) {
+                    $query->where('a.user_id', $userId);
+                }
+            })
+            ->select(['a.id', 'a.source_id', 'ms.title','ms.file_url','ms.author','ms.play_num', 'a.user_id', 'm.nickname', 'm.avatar', 'ms.thumb', 'a.status', 'a.create_time', 'a.update_time'])
+            ->orderBy('a.create_time', 'desc')
+            ->paginate($pageSize);
+
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            foreach ($dataList['data'] as &$item) {
+                $item['thumb'] = $item['thumb'] ? get_image_url($item['thumb']) : '';
+                $item['file_url'] = $item['file_url'] ? get_file_url($item['file_url']) : '';
+                $item['create_time'] = $item['create_time'] ? datetime($item['create_time'],'Y-m-d H:i:s') : '';
+            }
+            unset($item);
+        }
+
+        return [
+            'code' => 0,
+            'success'=> true,
+            'msg' => '操作成功',
+            'count' => isset($dataList['total']) ? $dataList['total'] : 0,
+            'data' => isset($dataList['data']) ? $dataList['data'] : 0,
+        ];
+    }
+
+
+    /**
+     * 添加或编辑
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function edit()
+    {
+        $data = request()->all();
+        $data['update_time'] = time();
+        return parent::edit($data); // TODO: Change the autogenerated stub
+    }
+
+}

+ 55 - 0
app/Services/MusicService.php

@@ -97,6 +97,61 @@ class MusicService extends BaseService
     }
 
     /**
+     * 获取列表
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function getDataList($params)
+    {
+        $page = isset($params['pageSize']) ? intval($params['pageSize']) : PAGE;
+        $pageSize = isset($params['pageSize']) ? intval($params['pageSize']) : PERPAGE;
+
+        $dataList = $this->model::from('musics as m')
+            ->leftJoin('music_sheets as ms', 'm.sheet_id', '=', 'ms.id')
+            ->where(function ($query) use ($params) {
+                $query->where(['m.mark'=>1,'a.status'=> 1]);
+
+                $title = isset($params['title']) ? trim($params['title']) : '';
+                if (!empty($title)) {
+                    $query->where('m.title', 'like', "%{$title}%");
+                }
+
+                $sheetId = isset($params['sheet_id']) ? intval($params['sheet_id']) : 0;
+                if ($sheetId > 0) {
+                    $query->where('m.sheet_id', $sheetId);
+                }
+
+                $isRecommand = isset($params['is_recommand']) ? intval($params['is_recommand']) : 0;
+                if ($isRecommand > 0) {
+                    $query->where('m.is_recommand', $isRecommand);
+                }
+
+            })
+            ->select(['m.id', 'm.sheet_id', 'ms.name as sheet_name', 'm.title', 'm.author', 'm.is_recommand', 'm.play_num', 'm.thumb', 'm.file_url', 'm.status', 'm.create_time', 'm.update_time', 'm.description', 'm.sort'])
+            ->orderBy('m.update_time', 'desc')
+            ->paginate($pageSize);
+
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            foreach ($dataList['data'] as &$item) {
+                $item['thumb'] = $item['thumb'] ? get_image_url($item['thumb']) : '';
+                $item['file_url'] = $item['file_url'] ? get_file_url($item['file_url']) : '';
+                $item['create_time'] = $item['create_time'] ? datetime($item['create_time'],'Y-m-d H:i:s') : '';
+            }
+            unset($item);
+        }
+
+        return [
+            'code' => 0,
+            'success'=> true,
+            'msg' => '操作成功',
+            'count' => isset($dataList['total']) ? $dataList['total'] : 0,
+            'data' => isset($dataList['data']) ? $dataList['data'] : 0,
+        ];
+    }
+
+    /**
      * 添加或编辑
      * @return array
      * @since 2020/11/11