|
@@ -126,7 +126,80 @@ class ReadRecordController extends BaseController
|
|
return response()->collection(new ReadRecordTransformer(), array_to_object($res));
|
|
return response()->collection(new ReadRecordTransformer(), array_to_object($res));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /***
|
|
|
|
+ * 获取上次阅读记录
|
|
|
|
+ * name: lastReadRecord
|
|
|
|
+ * @param Request $request
|
|
|
|
+ * @return mixed
|
|
|
|
+ * date 2022/08/17 15:07
|
|
|
|
+ */
|
|
|
|
+ public function lastReadRecord(Request $request)
|
|
|
|
+ {
|
|
|
|
+ $res = ReadRecordService::getReadRecord($this->uid);
|
|
|
|
+ $package = $request->header('x-package', '');
|
|
|
|
+ //补充操作:如果该用户未订阅该下架的书籍则删除其阅读记录(书架不予显示)
|
|
|
|
+ //判断是否属于包年用户
|
|
|
|
+ $year_account = YearOrderService::getRecord($this->uid);
|
|
|
|
|
|
|
|
+ if ($res) {
|
|
|
|
+ $bids = array_column($res,'bid');
|
|
|
|
+ $channel_id = ($package === 'com.beidao.kuaiying.zsy') ? 7477 : 0;
|
|
|
|
+ $book = BookConfigService::getBooksByIds($bids, [], false);//下架图书最近阅读可看到
|
|
|
|
+ $book = array_column(($book->toArray()),null,'bid');
|
|
|
|
+ foreach ($res as &$value) {
|
|
|
|
+ $value['cover'] = '';
|
|
|
|
+ $value['last_chapter'] = 0;
|
|
|
|
+ $value['intro'] = '';
|
|
|
|
+ $value['status'] = '';
|
|
|
|
+ $value['size'] = 0;
|
|
|
|
+ $value['author'] = '';
|
|
|
|
+ if(isset($book[$value['bid']])){
|
|
|
|
+ $info = $book[$value['bid']];
|
|
|
|
+ $value['book_name'] = $info['book_name'];
|
|
|
|
+ $value['cover'] = $info['cover'];
|
|
|
|
+ $value['last_chapter'] = $info['last_chapter'];
|
|
|
|
+ $value['intro'] = $info['intro'];
|
|
|
|
+ $value['status'] = $info['status'];
|
|
|
|
+ $value['size'] = $info['size'];
|
|
|
|
+ $value['author'] = $info['author'];
|
|
|
|
+ if($channel_id === 7477){
|
|
|
|
+ $hidden = getHiddenCp();
|
|
|
|
+ }else{
|
|
|
|
+ $hidden = array_merge(getHiddenCp(),['lianshang']);
|
|
|
|
+ }
|
|
|
|
+ if((!$year_account && !in_array( $info['is_on_shelf'],[1,2])) || in_array( $info['cp_source'],$hidden)){
|
|
|
|
+ //获取书籍充值类型
|
|
|
|
+ $charge_type = $info['charge_type'];
|
|
|
|
+ if($charge_type == 'BOOK'){
|
|
|
|
+ //是否购买过该书,购买过则不删除
|
|
|
|
+ $result = BookOrderService::getRecordByuidBid($this->uid, $info['bid']);
|
|
|
|
+ }elseif($charge_type == 'CHAPTER'){
|
|
|
|
+ //是否购买过该书章节,购买过则不删除
|
|
|
|
+ $result = ChapterOrderService::checkBookIsOrdered($this->uid,$info['bid']);
|
|
|
|
+ }else{
|
|
|
|
+ $result = false;
|
|
|
|
+ }
|
|
|
|
+ if (!$result) {
|
|
|
|
+ unset($value);
|
|
|
|
+ ReadRecordService::delReadRecordStatic($this->uid,[$info['bid']]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ unset($value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ unset($value);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ usort($res, function ($a, $b) {
|
|
|
|
+ if ($a['time'] >= $b['time']) return -1;
|
|
|
|
+ return 1;
|
|
|
|
+ });
|
|
|
|
+ if (count($res) > 0){
|
|
|
|
+ return response()->success((new ReadRecordTransformer())->transform(array_to_object($res[0])));
|
|
|
|
+ }
|
|
|
|
+ return response()->success();
|
|
|
|
+ }
|
|
/**
|
|
/**
|
|
* @apiVersion 1.0.0
|
|
* @apiVersion 1.0.0
|
|
* @apiDescription 添加阅读记录
|
|
* @apiDescription 添加阅读记录
|