123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- <?php
- /**
- * Created by PhpStorm.
- * User: lytian
- * Date: 2019/4/25
- * Time: 18:23
- */
- namespace app\clientweb\controller;
- use app\common\controller\ClientWeb;
- use app\common\service\ClientuserService;
- use app\main\constants\ClientWebConstants;
- use app\main\service\ClientAppService;
- use app\main\service\FinancialService;
- use app\main\service\LogService;
- use app\main\service\RankService;
- use app\main\service\UserService;
- class User extends ClientWeb
- {
- protected $layout = '';
- /**
- * 我的账户
- */
- public function account()
- {
- if ($this->isLogin) {
- $this->assign('user', $this->userInfo);
- $kandian_fee = FinancialService::instance()->getTotalFreeKandian($this->userInfo['id'])->data;
- $kandian_permanent = FinancialService::instance()->getTotalKandian($this->userInfo['id'])->data;
- $kandian = $kandian_fee + $kandian_permanent;
- $flag = 1;
- $this->view->assign('sex', $this->userInfo['sex'] ? $this->userInfo['sex'] : '1');
- $this->assign('flag', $flag);
- $this->assign('kandian', $kandian);
- $this->assign('kandian_permanent', $kandian_permanent);
- $this->assign('kandian_fee', $kandian_fee);
- } else {
- //跳转到登陆页
- $this->redirect('clientweb/clientweb/bindphone/register', ['action' => 1]);
- }
- $this->view->assign('title', '我的账户');
- return $this->view->fetch();
- }
- /**
- *
- * 充值记录
- */
- public function record()
- {
- if ($this->isLogin) {
- $userId = $this->userInfo['id'];
- //渲染第一页
- $recharge = model('Recharge')->setConnect($userId)->where('user_id',$userId)->order('createtime','desc')->limit(0,20)->select();
- if(!$recharge){
- $recharge = [];
- }
- $data = [];
- foreach($recharge as $key=>$val){
- $data[$key] = is_array($val)?$val:$val->toArray();
- $data[$key]['showItem'] = '';
- if($val['type']=='1' || $val['type']=='3' || $val['type']=='5'){ //书币
- 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
- 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'].'小时';
- }
- }
- }
- $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'] = '-';
- }
- }
- }
- //dump($data);die;
- $this->assign('res',$data);
- return $this->view->fetch();
- } else {
- //跳转到登陆页
- $this->redirect('clientweb/clientweb/bindphone/register', ['action' => 1]);
- }
- }
- //阅读记录
- public function recent(){
- if(!$this->isLogin){
- $this->redirect('Bindphone/register', ['action' => ClientWebConstants::REDIRECT_ACTION_MY_READ_LOG]);
- }
- //已支付用户
- $res = model('UserRecentlyRead')->getRecentlyRead(0, 10, $this->userInfo['id']);
- if(isset($res['data']) && $res['data']){
- foreach($res['data'] as $key => $val){
- $book = model('Book')->BookInfo($val['book_id']);
- $appBookInfo = ClientAppService::instance()->userReadBooksInfo([$book['id'] => $book['last_chapter_id']])->data;
- $res['data'][$key]['book_json'] = json_encode(current($appBookInfo['bookList']),JSON_UNESCAPED_UNICODE);
- }
- }
- //获取用户性别信息
- if($this->sex == 2){
- $sex_type = 'girl';
- }else{
- $sex_type = 'body';
- }
- $this->view->assign('rencently', $res['data']);
- $this->view->assign('totalNum',$res['totalNum']);
- $this->view->assign('sex', $this->userInfo['sex'] ? $this->userInfo['sex'] : '1');
- $this->view->assign('ranklist',RankService::instance()->ranklist($sex_type));
- $this->view->assign('type', 'recently');
- $this->view->assign('avatar', $this->userInfo['avatar'] ?: cdnurl('/assets/img/frontend/icon/nav_icon_4.png'));
- $this->view->assign('isVip', $this->userInfo['vip_endtime'] > time());
- return $this->view->fetch();
- }
- /**
- * APP连续签到
- * APP连续签到跟微信端连续签到接收到的参数和返回的值不一样,需要开发处理
- */
- public function signPersist()
- {
- //获取用户UID
- $head_common_json = $this->request->header('common');
- $head_common = json_decode($head_common_json, true);
- $uid = $head_common['uid'] ?? 0;
- $isTodaySign = 0;
- LogService::info(' [ signPersist ] [ HeadCommon ][ uid ]' . $uid);
- $continue_days = 0;
- $days_arr = [
- 1 => '一',
- 2 => '二',
- 3 => '三',
- 4 => '四',
- 5 => '五',
- 6 => '六',
- 7 => '七',
- ];
- $userdata_json = json_encode(array());
- if ($uid) {
- // 判断今天是否已经签到?
- $signTodayData = model('Sign')->setConnect($uid)->userSignToday();
- if(empty($signTodayData)){
- // 如果没有签到,执行签到,返回连续签到天数,签到状态(今天已签到)
- $data = model('Sign')->setConnect($uid)->UserSignContinuous();
- $continue_days = $data[3];
- }else{
- $isTodaySign = 1;
- // 如果已经签到,返回连续签到天数,签到状态(今天已签到)
- $continue_days = $signTodayData['days'];
- }
- $userdata = ClientuserService::instance()->getUserInfoByUid($uid);
- $userdata = ClientuserService::instance()->packageUserInfo($userdata);
- $userdata_json = json_encode(camelizeArr($userdata));
- }
- LogService::info(' [ signPersist ] [ userdata_json ]' . $userdata_json);
- $continue_days = ($continue_days % 7) == 0 ? 7 : ($continue_days % 7);
- $this->assign('userdata_json', $userdata_json);
- $this->assign('isTodaySign', $isTodaySign);
- $this->assign('basenum', 30);
- $this->assign('total_days', 7);
- $this->assign('days_arr', $days_arr);
- $this->assign('continue_days', $continue_days);
- return $this->view->fetch();
- }
- /**
- * 如何获取微信动态码CODE
- */
- public function codeShow(){
- return $this->view->fetch();
- }
- }
|