|
@@ -2,6 +2,8 @@
|
|
|
|
|
|
namespace App\Http\Controllers\QuickApp\Book;
|
|
|
|
|
|
+use App\Libs\Utils;
|
|
|
+use App\Modules\Book\Services\BookAuditService;
|
|
|
use App\Modules\RecommendBook\Services\RecommendService;
|
|
|
use App\Modules\Book\Services\RecoBannerService;
|
|
|
use Illuminate\Http\Request;
|
|
@@ -22,7 +24,7 @@ class BookController extends BaseController
|
|
|
{
|
|
|
public function index(Request $request, $bid)
|
|
|
{
|
|
|
- $bid = BookService::decodeBidStatic($bid);
|
|
|
+ $bid = BookService::decodeBidStatic($bid);
|
|
|
$book_info = BookConfigService::getBookById($bid);
|
|
|
if (!$book_info) {
|
|
|
return response()->error('QAPP_SYS_ERROR');
|
|
@@ -30,18 +32,18 @@ class BookController extends BaseController
|
|
|
if (!in_array($book_info->is_on_shelf, [2])) {
|
|
|
return response()->error('QAPP_OFF_SHELF');
|
|
|
}
|
|
|
- $is_on_shelf = UserShelfBooksService::getUserShelfBooksListByUidAndBid($this->uid, $bid);
|
|
|
+ $is_on_shelf = UserShelfBooksService::getUserShelfBooksListByUidAndBid($this->uid, $bid);
|
|
|
$book_info['is_on_user_shelf'] = 0;
|
|
|
|
|
|
if ($is_on_shelf) {
|
|
|
$book_info['is_on_user_shelf'] = 1;
|
|
|
}
|
|
|
- $last_chapter = ChapterService::getChapterNameById($book_info['last_cid'], $bid);
|
|
|
+ $last_chapter = ChapterService::getChapterNameById($book_info['last_cid'], $bid);
|
|
|
$book_info['last_chapter_is_vip'] = $last_chapter['is_vip'];
|
|
|
- $book_info['is_need_charge'] = $this->isNeedCharge($bid, $last_chapter, $book_info);
|
|
|
- $record = ReadRecordService::getBookReadRecordStatic($this->uid, $bid);
|
|
|
+ $book_info['is_need_charge'] = $this->isNeedCharge($bid, $last_chapter, $book_info);
|
|
|
+ $record = ReadRecordService::getBookReadRecordStatic($this->uid, $bid);
|
|
|
if ($record) {
|
|
|
- $book_info['record_chapter_id'] = $record['record_chapter_id'];
|
|
|
+ $book_info['record_chapter_id'] = $record['record_chapter_id'];
|
|
|
$book_info['record_chapter_name'] = $record['record_chapter_name'];
|
|
|
}
|
|
|
return response()->item(new BookTransformer(), $book_info);
|
|
@@ -69,7 +71,7 @@ class BookController extends BaseController
|
|
|
//章节订购记录
|
|
|
$chapterOrder = new ChapterOrderService();
|
|
|
|
|
|
- if ($chapterOrder->checkIsOrdered($uid, $bid, $chapter_id)) return true;
|
|
|
+ if ($chapterOrder->checkIsOrdered($uid, $bid, $chapter_id)) return true;
|
|
|
|
|
|
return false;
|
|
|
}
|
|
@@ -114,7 +116,7 @@ class BookController extends BaseController
|
|
|
return $this->isBookNeedCharge($bid, $price);
|
|
|
default:
|
|
|
$price = $last_chapter->is_vip ? $this->getPrice($book_info, $last_chapter->size) : 0;
|
|
|
- return $last_chapter->is_vip ? $this->isChapterNeedCharge($bid, $last_chapter->id, $price) : false;
|
|
|
+ return $last_chapter->is_vip ? $this->isChapterNeedCharge($bid, $last_chapter->id, $price) : false;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -128,7 +130,7 @@ class BookController extends BaseController
|
|
|
{
|
|
|
if ($book_info->charge_type == 'BOOK')
|
|
|
return $book_info->price * 100;
|
|
|
- return ceil($chapter_size / 100);
|
|
|
+ return ceil($chapter_size / 100);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -136,17 +138,27 @@ class BookController extends BaseController
|
|
|
*/
|
|
|
public function getBookLists(Request $request, $sex)
|
|
|
{
|
|
|
+ // 获取基本数据
|
|
|
+ $package = $request->header('x-package', '');
|
|
|
+ $brand = strtolower($request->header('x-nbrand', ''));
|
|
|
+ $codeVersion = $request->header('x-codeversion', '');
|
|
|
+
|
|
|
+ // 根据包名、平台、版本号判断是否审核
|
|
|
+ if (Utils::checkIsAudit($package, $brand, $codeVersion)) {
|
|
|
+ $result = BookAuditService::getHomeBooksData($sex);
|
|
|
+ return response()->success($result);
|
|
|
+ }
|
|
|
|
|
|
if ($sex == 'male') {
|
|
|
- $channel = 1;
|
|
|
+ $channel = 1;
|
|
|
$reco_banner_type = ['MALE', 'PUBLIC'];
|
|
|
} else {
|
|
|
$reco_banner_type = ['FEMALE', 'PUBLIC'];
|
|
|
- $channel = 2;
|
|
|
+ $channel = 2;
|
|
|
}
|
|
|
$books = (new RecoBannerService)->getByType($reco_banner_type, 2);
|
|
|
$books->transform(function ($item) {
|
|
|
- $result = $this->getBidCidFromUrl($item->redirect_url);
|
|
|
+ $result = $this->getBidCidFromUrl($item->redirect_url);
|
|
|
$item->bid = $result['bid'];
|
|
|
$item->cid = $result['cid'];
|
|
|
if ($result['cid']) {
|
|
@@ -156,19 +168,11 @@ class BookController extends BaseController
|
|
|
}
|
|
|
return $item;
|
|
|
});
|
|
|
- $package = $request->header('x-package', '');
|
|
|
- $checkOpen = env('CHECK_OPEN', false);
|
|
|
- if ($checkOpen && $package === 'com.juyu.kuaiying.rmyq') {
|
|
|
- $hotBids = config('home.hot.' . $sex);
|
|
|
- $liveBids = config('home.live.' . $sex);
|
|
|
- $recomBids = config('home.recom.' . $sex);
|
|
|
- $newBids = config('home.new_recom.' . $sex);
|
|
|
- } else {
|
|
|
- $hotBids = RecommendService::getRecommendIdsStatic($channel, 'hot');
|
|
|
- $liveBids = RecommendService::getRecommendIdsStatic($channel, 'live');
|
|
|
- $recomBids = RecommendService::getRecommendIdsStatic($channel, 'recom');
|
|
|
- $newBids = RecommendService::getRecommendIdsStatic($channel, 'new_recom');
|
|
|
- }
|
|
|
+
|
|
|
+ $hotBids = RecommendService::getRecommendIdsStatic($channel, 'hot');
|
|
|
+ $liveBids = RecommendService::getRecommendIdsStatic($channel, 'live');
|
|
|
+ $recomBids = RecommendService::getRecommendIdsStatic($channel, 'recom');
|
|
|
+ $newBids = RecommendService::getRecommendIdsStatic($channel, 'new_recom');
|
|
|
|
|
|
$result = [
|
|
|
['type' => 'reco_banner', 'lable' => '首页banner', 'books' => $books],
|
|
@@ -198,10 +202,10 @@ class BookController extends BaseController
|
|
|
|
|
|
public function library(Request $request)
|
|
|
{
|
|
|
- $where = [];
|
|
|
- $order = [];
|
|
|
+ $where = [];
|
|
|
+ $order = [];
|
|
|
$where['is_on_shelf'] = [2];
|
|
|
- $category_id = $request->input('category_id');
|
|
|
+ $category_id = $request->input('category_id');
|
|
|
if ($category_id) {
|
|
|
if ($category_id == 1) {
|
|
|
$where['channel_name'] = '男频';
|
|
@@ -217,8 +221,8 @@ class BookController extends BaseController
|
|
|
BookConfigService::saveUserSearchLog($key, $uid);
|
|
|
}
|
|
|
$where['key'] = $key;
|
|
|
- $order_field = $request->input('order_field');
|
|
|
- $order_seq = $request->input('order_seq');
|
|
|
+ $order_field = $request->input('order_field');
|
|
|
+ $order_seq = $request->input('order_seq');
|
|
|
if ($order_field != '' && in_array($order_field, ['recommend_index', 'click_count', 'update', 'size', 'create'])) {
|
|
|
if ($order_field == 'update') {
|
|
|
$order = ['book_configs.updated_at', 'desc'];
|
|
@@ -235,12 +239,21 @@ class BookController extends BaseController
|
|
|
$order = [$order_field, 'desc'];
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 审核状态默认值
|
|
|
+ $package = $request->header('x-package', '');
|
|
|
+ $brand = strtolower($request->header('x-nbrand', ''));
|
|
|
+ $codeVersion = $request->header('x-codeversion', '');
|
|
|
+ if ($order_field === 'recommend_index' && Utils::checkIsAudit($package, $brand, $codeVersion)) {
|
|
|
+ $order = ['id', 'desc'];
|
|
|
+ }
|
|
|
+
|
|
|
$status = $request->input('status');
|
|
|
if ($status != '') {
|
|
|
$where['status'] = $status;
|
|
|
}
|
|
|
$page_size = $request->input('page_size', 15);
|
|
|
- $books = BookConfigService::getBooks($where, $order, $page_size);
|
|
|
+ $books = BookConfigService::getBooks($where, $order, $page_size);
|
|
|
return response()->pagination(new BookTransformer, $books);
|
|
|
}
|
|
|
|
|
@@ -253,14 +266,14 @@ class BookController extends BaseController
|
|
|
public function similarRecom(Request $request)
|
|
|
{
|
|
|
$category_id = $request->input('category_id');
|
|
|
- $bid = $request->input('bid');
|
|
|
+ $bid = $request->input('bid');
|
|
|
if (empty($bid) || empty($category_id)) {
|
|
|
return response()->error('PARAM_ERROR');
|
|
|
}
|
|
|
- $bid = BookService::decodeBidStatic($bid);
|
|
|
+ $bid = BookService::decodeBidStatic($bid);
|
|
|
$where = ['category_id' => $category_id, 'is_on_shelf' => [2]];
|
|
|
$books = BookConfigService::getBooks($where, [], 4);
|
|
|
- $data = [];
|
|
|
+ $data = [];
|
|
|
foreach ($books as $v) {
|
|
|
if ($v->bid != $bid && count($data) < 3) {
|
|
|
$data[] = $v;
|
|
@@ -275,21 +288,21 @@ class BookController extends BaseController
|
|
|
if (empty($bid)) {
|
|
|
return response()->error('PARAM_ERROR');
|
|
|
}
|
|
|
- $bid = BookService::decodeBidStatic($bid);
|
|
|
- $book_info = BookConfigService::getBookById($bid);
|
|
|
- $res = BookConfigService::getRecommendBooks($bid, $book_info->channel_name);
|
|
|
+ $bid = BookService::decodeBidStatic($bid);
|
|
|
+ $book_info = BookConfigService::getBookById($bid);
|
|
|
+ $res = BookConfigService::getRecommendBooks($bid, $book_info->channel_name);
|
|
|
$urge_status = 0;
|
|
|
if ($book_info->status == 0 && !BookUrgeUpdateService::isHadUrged($this->uid, $bid)) {
|
|
|
$urge_status = 1;
|
|
|
}
|
|
|
$recommend_result = collectionTransform(new BookTransformer(), $res);
|
|
|
- $book_status = [
|
|
|
- 'status' => $book_info->status,
|
|
|
+ $book_status = [
|
|
|
+ 'status' => $book_info->status,
|
|
|
'urge_status' => $urge_status
|
|
|
];
|
|
|
- $data = [
|
|
|
+ $data = [
|
|
|
'recommend_result' => $recommend_result,
|
|
|
- 'book_status' => $book_status
|
|
|
+ 'book_status' => $book_status
|
|
|
];
|
|
|
return response()->success($data);
|
|
|
}
|
|
@@ -313,9 +326,9 @@ class BookController extends BaseController
|
|
|
public function recommen()
|
|
|
{
|
|
|
$reco_banner_type = ['FEMALE', 'PUBLIC'];
|
|
|
- $books = (new RecoBannerService)->getByType($reco_banner_type, 2);
|
|
|
+ $books = (new RecoBannerService)->getByType($reco_banner_type, 2);
|
|
|
$books->transform(function ($item) {
|
|
|
- $result = $this->getBidCidFromUrl($item->redirect_url);
|
|
|
+ $result = $this->getBidCidFromUrl($item->redirect_url);
|
|
|
$item->bid = $result['bid'];
|
|
|
$item->cid = $result['cid'];
|
|
|
if ($result['cid']) {
|