123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- /**
- * Created by PhpStorm.
- * User: lytian
- * Date: 2019/4/26
- * Time: 10:25
- */
- namespace app\clientwebapi\controller;
- use app\common\controller\ClientWebApi;
- use app\common\library\Redis;
- use app\main\constants\ErrorCodeConstants;
- use app\main\service\BookService;
- use app\main\service\ClientAppService;
- use app\main\service\UserService;
- use app\main\service\WebUserService;
- class User extends ClientWebApi
- {
- public function _initialize()
- {
- parent::_initialize();
- }
- /**
- * 充值记录
- */
- public function record()
- {
- if ($this->isLogin) {
- $userId = $this->userInfo['id'];
- $pageNo = $this->request->post('pageNo');
- $pageSize = intval($this->request->post('pagesize'));
- $startNo = ($pageNo-1)*$pageSize;
- $recharge = model('Recharge')->setConnect($userId)->where('user_id',$userId)->order('createtime','desc')->limit($startNo,$pageSize)->select();
- if(!$recharge){
- $recharge = [];
- }
- $data = [];
- foreach($recharge as $key=>$val){
- $data[$key] = is_array($val)?$val:$val->toArray();
- if($val['type']=='1' || $val['type']=='3' || $val['type']=='5'){ //书币
- $data[$key]['showItem'] = '';
- if(intval($val['kandian']) == 0){ //免费书币
- if(intval($val['free_kandian'])>0){
- $data[$key]['showItem'] = '+'.$val['free_kandian'].'书币'; //int转string
- $data[$key]['endDate'] = Date('Y-m-d',$val['free_endtime']); //书币失效日期
- }else{
- $data[$key]['showItem'] = $val['free_kandian'].'书币'; //int转string
- $data[$key]['endDate'] = '永久'; //书币失效日期
- }
- if($val['type']==1){
- $data[$key]['type_text'] = '充值赠送书币';
- }
- }else{ //永久书币
- if(intval($val['kandian'])>0){
- $data[$key]['showItem'] = '+'.$val['kandian'].'书币'; //int转string
- }else{
- $data[$key]['showItem'] = $val['kandian'].'书币'; //int转string
- }
- $data[$key]['endDate'] = '永久'; //书币失效日期
- }
- }else{ //vip
- $data[$key]['showItem'] = '';
- if(intval($val['day']) > 0 || intval($val['hour'])>0){ //加vip时长
- if(intval($val['day'])>0){
- $data[$key]['showItem'] = '+'.$val['day'].'天';
- if(intval($val['hour']) > 0){
- $data[$key]['showItem'] = $data[$key]['showItem'].$val['hour'].'小时';
- }
- }else{
- $data[$key]['showItem'] ='+'.$val['hour'].'小时';
- }
- }else{ //减少vip时长
- if(intval($val['day']) <0){
- $data[$key]['showItem'] = $val['day'].'天';
- if(intval($val['hour'])<0){
- $data[$key]['showItem']= $data[$key]['showItem'].abs($val['hour']).'小时';
- }
- }else{
- if(intval($val['hour']) < 0){
- $data[$key]['showItem'] = $val['hour'].'小时';
- }
- }
- }
- //$data[$key]['endDate'] = '永久';
- $days = $val['day'];
- //$data[$key]['endDate'] = '永久';
- if($val['vip_starttime']){
- $data[$key]['endDate'] = date('Y-m-d H:i:s', strtotime("+$days day", $val['vip_starttime']));
- }else{
- $data[$key]['endDate'] = '-';
- }
- }
- }
- return json($data);
- }
- return json([]);
- }
- /**
- *ajax请求最近阅读记录
- */
- public function getReadRecently(){
- if($this->request->isAjax()){
- $userInfo = WebUserService::instance()->getUserInfo()->toArray();
- $pageSize = $this->request->param('pageSize') ?? 10;
- $updatetime = $this->request->param('updatetime') ?? 0;
- $rencently = model('UserRecentlyRead')->getRecentlyRead($updatetime,$pageSize,$userInfo['id']);
- if ($rencently['totalNum'] > 0) {
- if (isset($rencently['data']) && $rencently['data']) {
- foreach ($rencently['data'] as $key => $val) {
- $book = model('Book')->BookInfo($val['book_id']);
- $appBookInfo = ClientAppService::instance()->userReadBooksInfo([$book['id'] => $book['last_chapter_id']])->data;
- $rencently['data'][$key]['book_json'] = json_encode(current($appBookInfo['bookList']),
- JSON_UNESCAPED_UNICODE);
- }
- }
- return json($rencently);
- } else {
- return json(['data' => []]);
- }
- }
- }
- /**
- * ajax删除阅读记录
- */
- public function delRecently(){
- if($this->request->isAjax()){
- $userInfo = WebUserService::instance()->getUserInfo()->toArray();
- $userId = $userInfo['id'];
- $urKey = BookService::instance()->getUserRecentlyRead()->getURKey($userId);
- $recentIds = input('bookIds');
- $recentArr = \GuzzleHttp\json_decode($recentIds,true);
- $aRecentIds = [];
- $aBookIds = [];
- foreach ($recentArr as $key => $val) {
- $ids = explode('_', $val);
- $aRecentIds[] = $ids[0];
- $aBookIds[] = $ids[1];
- }
- $removeRes = BookService::instance()->removeRecentlyRead($aRecentIds, $aBookIds);
- $redis = Redis::instance();
- $recentCount = $redis->zcard($urKey); // 返回元素个数
- $res = [];
- $res['totalNum'] = $recentCount;
- $res['err'] = $removeRes->code == ErrorCodeConstants::SUCCESS ? 1 : 0;
- return json($res);
- }
- }
- }
|