<?php namespace App\Http\Controllers\QuickApp\User; use Illuminate\Http\Request; use App\Http\Controllers\QuickApp\BaseController; use Redis; use App\Modules\Book\Services\UserShelfBooksService; use App\Modules\Book\Services\ChapterService; use App\Http\Controllers\QuickApp\User\Transformers\UserShelfBooksTransformer; use App\Modules\User\Services\ReadRecordService; use Hashids; use Log; class UserShelfBooksController extends BaseController { /** * @apiDefine UserShelfBooks 书架 */ /** * @apiVersion 1.0.0 * @apiDescription 获取书架 * @api {get} userShelfBooks 获取书架 * @apiParam {String} [token] token * @apiHeader {String} [Authorization] token 两个token任选其一 * @apiGroup UserShelfBooks * @apiName getChapter * @apiSuccess {int} code 状态码 * @apiSuccess {String} msg 信息 * @apiSuccess {object} data 结果集 * @apiSuccess {Int} data.id 编号 * @apiSuccess {String} data.distribution_channel_id 分销 * @apiSuccess {Int} data.uid uid * @apiSuccess {Int} data.bid bid * @apiSuccess {Int} data.book_name 书名 * @apiSuccess {Int} data.cover 封面 * @apiSuccess {Int} data.last_cid 最后章节id * @apiSuccess {String} data.last_chapter 最新章节 * @apiSuccess {String} data.last_chapter 最近阅读章节 * @apiSuccess {String} data.recent_cid 最近阅读章节id * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { * code: 0, * msg: "", * data: { * [ * { * id: 6, * uid: 4, * distribution_channel_id: 1, * bid: 1, * book_name: "京华烟云", * cover: "https://leyue-bucket.oss-cn-hangzhou.aliyuncs.com/ycsd_cover/covermiddle/0/1.jpg", * updated_at: 1511783068, * last_cid: 4, * recent_cid:5, * last_chapter:"最新 第122章 大事不妙", * recent_reading_chapter:"最近阅读:第5章 又来?" * * }, * { * id: 7, * uid: 4, * distribution_channel_id: 1, * bid: 1, * book_name: "我来好好爱你", * cover: "https://leyue-bucket.oss-cn-hangzhou.aliyuncs.com/ycsd_cover/covermiddle/0/11.jpg", * updated_at: 1511783068, * last_cid: 4, * recent_cid:5, * last_chapter:"最新 第2556章 又来了个张老三", * recent_reading_chapter:"最近阅读:第2551章 又来了个猪八戒" * } * ] * } */ public function index(Request $request){ $res = UserShelfBooksService::getUserShelfBooksListByUid($this->uid); if($res->isEmpty()){ return response()->success(); } $record = ReadRecordService::getReadRecord($this->uid); // $record=array([ // 'bid'=>1, // 'time'=>3, // 'cid'=>1, // ],[ // 'bid'=>2, // 'time'=>3, // 'cid'=>4, // ]); foreach ($res as &$v){ $bid=$v['bid']; $last_cid = $v['last_cid']; $last_chapter = ChapterService::getChapterNameByID($last_cid,$bid); $v['last_chapter']="最后章节:{$last_chapter['name']}"; foreach ($record as $val){ if($v['bid'] == $val['bid']){ $v['updated_at'] = $val['time']; $recent_reading_cid = $val['cid']; $v['recent_cid'] = $recent_reading_cid; $recent_reading_chapter = ChapterService::getChapterNameById($recent_reading_cid,$bid); $v['recent_reading_chapter'] = "最近阅读:{$recent_reading_chapter['name']}"; break; } } } return response()->collection(new UserShelfBooksTransformer(),$res); } /** * @apiVersion 1.0.0 * @apiDescription 添加书架 * @api {post} userShelfBooks 添加书架 * @apiParam {String} [token] token * @apiHeader {String} [Authorization] token 两个token任选其一 * @apiGroup UserShelfBooks * @apiName addShelf * @apiParam {int} bid bid * @apiSuccess {int} code 状态码 * @apiSuccess {String} msg 信息 * @apiSuccess {object} data 结果集 * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { * code: 0, * msg: "", * data: {} */ public function addShelf(Request $request){ $param = $request->except('_url'); if(checkParam($param,['bid'])){ return response()->error('LACK_PARAM'); } $param['uid'] = $this->uid; $param['bid'] = Hashids::decode($param['bid'])[0]; $param['distribution_channel_id'] = $this->distribution_channel_id; $res = null; try{ $res = UserShelfBooksService::create($param); }catch (\Exception $e){ return response()->error('QAPP_PARAM_ERROR'); } if($res){ return response()->success($res); } return response()->error('QAPP_SYS_ERROR'); } /** * @apiVersion 1.0.0 * @apiDescription 删除书架 * @api {get} userShelfBooks/delete 删除书架 * @apiParam {String} [token] token * @apiHeader {String} [Authorization] token 两个token任选其一 * @apiGroup UserShelfBooks * @apiName delShelf * @apiParam {int} bid bid * @apiSuccess {int} code 状态码 * @apiSuccess {String} msg 信息 * @apiSuccess {object} data 结果集 * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { * code: 0, * msg: "", * data: {} */ public function delShelf(Request $request){ $bid = $request->input('bid'); if(empty($bid)) return response()->error('LACK_PARAM'); $param['uid'] = $this->uid; $param['bid'] = Hashids::decode($bid)[0]; $res = UserShelfBooksService::del($this->uid,$param['bid']); if($res){ return response()->success(); } return response()->error('QAPP_SYS_ERROR'); } /** * @apiVersion 1.0.0 * @apiDescription 是否在书架上 * @api {get} userShelfBooks/isonshelf 是否在书架上 * @apiParam {String} [token] token * @apiHeader {String} [Authorization] token 两个token任选其一 * @apiGroup UserShelfBooks * @apiName isOnshelf * @apiParam {int} bid bid * @apiSuccess {int} code 状态码 * @apiSuccess {String} msg 信息 * @apiSuccess {object} data 结果集 * @apiSuccess {Int} data.is_on 是否在书架上(0|1) * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { * code: 0, * msg: "", * data: { * is_on:0 * } */ public function isOnshelf(Request $request){ $bid = $request->input('bid'); if(!$bid) return response()->error('LACK_PARAM'); $bid = Hashids::decode($bid)[0]; $res = UserShelfBooksService::getUserShelfBooksListByUidAndBid($this->uid,$bid); if($res){ $data['is_on'] = 1; }else{ $data['is_on'] = 0; } return response()->success($data); } }