123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- <?php
- namespace app\admin\controller\auth;
- use app\common\controller\Backend;
- use app\main\constants\AdminConstants;
- use app\main\constants\UserConstants;
- use app\main\service\AdminService;
- use app\main\service\ApiService;
- use app\main\service\FinancialService;
- use app\source\service\UserService;
- use think\db\Query;
- class UserDetailBase extends Backend
- {
- /**
- * @var \app\common\model\User User模型对象
- */
- protected $model = null;
- /**
- * @var \app\common\model\Orders
- */
- protected $orderModel = null;
- /**
- * @var \app\common\model\Consume
- */
- protected $consumeModel = null;
- /**
- * @var \app\common\model\UserRecentlyRead
- */
- protected $userRecentlyReadModel = null;
- /**
- * @var \app\common\model\Recharge
- */
- protected $rechargeModel = null;
- /**
- * @var \app\common\model\AdminConfig
- */
- protected $adminConfigModel = null;
- /**
- * @var \app\common\model\Admin
- */
- protected $adminModel = null;
- protected $ids, $type;
- public function _initialize()
- {
- parent::_initialize();
- $this->model = model('User');
- $this->orderModel = model('Orders');
- $this->consumeModel = model('consume');
- $this->userRecentlyReadModel = model('user_recently_read');
- $this->rechargeModel = model('recharge');
- $this->adminConfigModel = model('admin_config');
- $this->adminModel = model('admin');
- $this->campaignConsumeModel = model('CampaignConsume');
- $this->ids = $this->request->param("ids", 0);
- $this->type = $this->request->param("type", 1);
- if (!$this->request->isAjax()) {
- if (ApiService::instance()->checkApiOn()) {
- $user = UserService::instance()->getUserInfo($this->ids);
- } else {
- $user = $this->model->setConnect($this->ids)->where('id', $this->ids)->find();
- }
- // $uQuery = $this->model->setConnect($this->ids)->where('id', $this->ids);
- // 仅客服可以查看黑名单用户
- if(($this->group != AdminConstants::ADMIN_GROUP_ID_CUSTOMER_SERVICE && $user->is_black) || !$user->id){
- $this->error('用户不存在!');
- }
- $userInfo = $user->toArray();
- if($this->group != AdminConstants::ADMIN_GROUP_ID_CUSTOMER_SERVICE){
- $rechargeCountWhere = [
- 'user_id' => $this->ids,
- 'dd' => '0'
- ];
- }else{
- $rechargeCountWhere = ['user_id' => $this->ids];
- }
- //充值金额
- if($this->group == AdminConstants::ADMIN_GROUP_ID_CUSTOMER_SERVICE){
- $isUserVip = $userInfo['vip_endtime'] > time();
- $userInfo['is_user_vip'] = $isUserVip;
- if (empty($userInfo['is_user_vip'])) {
- $userInfo['vip_endtime'] = '-';
- } else {
- $userInfo['vip_endtime'] = date('Y-m-d H:i:s', $userInfo['vip_endtime']);
- }
- $userInfo['orderMoneySum'] = $this->orderModel->where([
- 'user_id' => $this->ids,
- 'state' => '1'
- ])->sum('money');
- }else{
- $rechargeVipWhere = ['user_id' => $this->ids ,'dd' => '0', 'type' => ['in', UserConstants::CHANNEL_VIP_TYPE]];
- $ddRechargObj = $this->rechargeModel->setConnect($this->ids)->where($rechargeVipWhere)->order('id', 'desc')->find();
- if($ddRechargObj){
- $ddVipEndTime = $ddRechargObj->channel_vip_starttime + $ddRechargObj->day * 24 * 60 * 60 + $ddRechargObj->hour * 60 * 60;
- if($ddVipEndTime){
- $userInfo['is_user_vip'] = $ddVipEndTime > time();
- if (empty($userInfo['is_user_vip'])) {
- $userInfo['vip_endtime'] = '-';
- } else {
- $userInfo['vip_endtime'] = date('Y-m-d H:i:s', $ddVipEndTime);
- }
- }else{
- $userInfo['is_user_vip'] = false;
- $userInfo['vip_endtime'] = '-';
- }
- }else{
- $userInfo['is_user_vip'] = false;
- $userInfo['vip_endtime'] = '-';
- }
- $userInfo['orderMoneySum'] = $this->orderModel->where([
- 'user_id' => $this->ids,
- 'state' => '1',
- 'deduct' => '0'
- ])->sum('money');
- }
- //书币总消费
- if ($this->group == AdminConstants::ADMIN_GROUP_ID_CUSTOMER_SERVICE) {
- $kandianFields = 'kandian+free_kandian';
- }else{
- $kandianFields = 'kandian-dd_kandian+free_kandian-dd_free_kandian';
- }
- $consumeInfo = $this->consumeModel->setConnect($this->ids)->where(['user_id' => $this->ids])->field('SUM('.$kandianFields.') as total_kandian')->find();
- $userInfo['consumeCurrencySum'] = $consumeInfo['total_kandian'];
- //阅读书籍量
- $userInfo['recentReadCount'] = $this->userRecentlyReadModel->setConnect($this->ids)->where(['user_id' => $this->ids])->count('id');
- //充值笔数
- $userInfo['rechargeCount'] = $this->rechargeModel->setConnect($this->ids)->where($rechargeCountWhere)
- ->where(function (Query $query){
- $query->where(function (Query $query){
- $query->where(['type'=>'1'])
- ->where('kandian', '>', 0);
- })->whereOr(['type' => '2']);
- })
- ->count('id');
- if ($this->group == AdminConstants::ADMIN_GROUP_ID_CUSTOMER_SERVICE) {
- //得到用户剩余免费书币
- $userInfo['free_kandian'] = FinancialService::instance()->getTotalFreeKandian($this->ids)->data;
- //过期免费书币
- $userInfo['old_free_kandian'] = FinancialService::instance()->getTotalRemainOldFreeKandian($this->ids)->data;
- $userInfo['kandian'] = FinancialService::instance()->getTotalKandian($this->ids)->data;
- } else {
- //得到用户剩余免费书币
- $userInfo['free_kandian'] = FinancialService::instance()->getTotalFreeKandian($this->ids, 0)->data;
- //过期免费书币
- $userInfo['old_free_kandian'] = FinancialService::instance()->getTotalRemainOldFreeKandian($this->ids, 0)->data;
- $userInfo['kandian'] = FinancialService::instance()->getTotalRemainKandian($this->ids, 0)->data;
- }
- $adminInfo = $this->adminConfigModel
- ->join('admin', 'admin.id = admin_config.admin_id')
- ->join('auth_group_access', 'auth_group_access.uid = admin.id')
- ->field(['admin_id','username', 'nickname', 'json', 'group_id', 'qrcode_image'])
- ->where(['admin.id' => $userInfo['channel_id']])->find();
- $userInfo['originalQrCode'] = sprintf('https://open.weixin.qq.com/qr/code?username=%s',
- $adminInfo['json']['authorizer_info']['user_name']);
- $userInfo['customQrCode'] = $adminInfo['qrcode_image'];
- if ($adminInfo['group_id'] == 3) {//用户隶属于渠道商
- $userInfo['channel_username'] = $adminInfo['username'];
- $userInfo['channel_nickname'] = $adminInfo['nickname'];
- $userInfo['agent_id'] = '-';
- $userInfo['agent_username'] = '-';
- } elseif ($adminInfo['group_id'] == 4) {//用户隶属于配号代理商
- $channelInfo = $this->adminModel->join('admin_extend', 'admin_extend.create_by = admin.id')
- ->field([
- 'admin.id',
- 'username',
- 'nickname'
- ])->where(['admin_extend.admin_id' => $userInfo['channel_id']])->find();
- $userInfo['channel_id'] = $channelInfo['id'];
- $userInfo['channel_username'] = $channelInfo['username'];
- $userInfo['channel_nickname'] = $channelInfo['nickname'];
- $userInfo['agent_id'] = $adminInfo['admin_id'];
- $userInfo['agent_username'] = $adminInfo['username'];
- } else {
- }
- if($adminInfo['group_id'] == 4){
- if($adminInfo['admin_id']){
- $site_url = getCurrentDomain($adminInfo['admin_id']);
- }else{
- $site_url = '';
- }
- }else{
- if($userInfo['channel_id']){
- $site_url = getCurrentDomain($userInfo['channel_id']);
- }else{
- $site_url = '';
- }
- }
- $normalAdmin = AdminService::instance()->getAdminExtendModel()
- ->join("admin a", 'a.id = admin_extend.create_by', "LEFT")
- ->where("admin_extend.admin_id", "=", $userInfo['channel_id'])
- ->field(["a.username", "a.nickname"])
- ->find();
- $userInfo['admin_username'] = $normalAdmin->getData("username");
- $userInfo['admin_nickname'] = $normalAdmin->getData("nickname");
- $this->assignconfig('id', $this->ids);
- $this->assignconfig('type', $this->type);
- $this->view->assign('site_url', $site_url);
- $this->view->assign('userInfo', $userInfo);
- $this->view->assign('id', $this->ids);
- $this->view->assign('type', $this->type);
- }
- }
- }
|