BookInfo($bookID); if(empty($bookinfo)){ return true; } $rk = 0; $rknosee = 0; if($bookinfo['state'] == '-1'){ //入库书籍 $rk = 1; } if($bookinfo['state'] == '-1' && isset($bookinfo['cansee']) && $bookinfo['cansee'] == '0'){ //入库不可见 $rknosee = 1; } $redis = Redis::instance(); //通用规则屏蔽 开始 $redisKeyTy = 'BL:*'; if ($redis->exists($redisKeyTy)) { //存在通用规则 $endUserId = $redis->hget($redisKeyTy, $bookID); if (!empty($endUserId) && $endUserId < $userId) { return true; } } //通用规则屏蔽 结束 if(empty($agentId) && empty($channelId)){ //如果渠道商和代理商都为空,则从cookie里取代理商和渠道商id if(Cookie::has('agent_id')){ $agentId = Cookie::get('agent_id'); } if(Cookie::has('channel_id')){ $channelId = Cookie::get('channel_id'); } } if($agentId == $channelId){ $agentId = 0; } if(empty($agentId)){ //渠道商用户 $groupId = model('AuthGroupAccess')->getGroupId($channelId); $redisKey = 'BL:'.$channelId; if($groupId == 3){ $keyChannel = 'BL:'.$channelId.'*'; }else{ $adminExtend = model('AdminExtend')->getInfo($channelId); $keyChannel = 'BL:'.$adminExtend['create_by'].'*'; } if($redis->exists($redisKey)){ //判断存在不存在 $endUserId = $redis->hget($redisKey,$bookID); if(!empty($endUserId) && $endUserId < $userId){ return true; } if($rk){ //判断所有入库 $rkUserId = $redis->hget($redisKey,'-1'); if(!empty($rkUserId) && $rkUserId < $userId){ return true; } } if($rknosee){ //判断入库并不可见 $rknoseeUserId = $redis->hget($redisKey,'-2'); if(!empty($rknoseeUserId) && $rknoseeUserId<$userId){ return true; } } } if($redis->exists($keyChannel)){ //用渠道商的 $endUserId = $redis->hget($keyChannel, $bookID); if (!empty($endUserId) && $endUserId < $userId) { return true; } if ($rk) { //判断入库 $rkUserId = $redis->hget($keyChannel, '-1'); if (!empty($rkUserId) && $rkUserId < $userId) { return true; } } if ($rknosee) { $rknoseeUserId = $redis->hget($keyChannel, '-2'); if (!empty($rknoseeUserId) && $rknoseeUserId < $userId) { return true; } } } return false; }else{ //代理商用户 $redisKey = 'BL:'.$agentId; $keyChannel = 'BL:'.$channelId.'*'; if($redis->exists($redisKey)){ //判断存在不存在 $endUserId = $redis->hget($redisKey,$bookID); if(!empty($endUserId) && $endUserId < $userId){ return true; } if($rk){ //判断入库 $rkUserId = $redis->hget($redisKey,'-1'); if(!empty($rkUserId) && $rkUserId < $userId){ return true; } } if($rknosee){ $rknoseeUserId = $redis->hget($redisKey,'-2'); if(!empty($rknoseeUserId) && $rknoseeUserId<$userId){ return true; } } return false; } if($redis->exists($keyChannel)) { //用渠道商的 $endUserId = $redis->hget($keyChannel, $bookID); if (!empty($endUserId) && $endUserId < $userId) { return true; } if ($rk) { //判断入库 $rkUserId = $redis->hget($keyChannel, '-1'); if (!empty($rkUserId) && $rkUserId < $userId) { return true; } } if ($rknosee) { $rknoseeUserId = $redis->hget($keyChannel, '-2'); if (!empty($rknoseeUserId) && $rknoseeUserId < $userId) { return true; } } } return false; } return false; } /** * 后台限制书籍 * @param $agentId * @param $channelId * @param $bookID * @return bool */ public function backendHasLimit($agentId,$channelId,$bookID){ $bookinfo = model('Book')->BookInfo($bookID); if (!$bookinfo) { return true; } $rk = 0; $rknosee = 0; if($bookinfo['state'] == '-1'){ //入库书籍 $rk = 1; } if($bookinfo['state'] == '-1' && isset($bookinfo['cansee']) && $bookinfo['cansee'] == '0'){ //入库不可见 $rknosee = 1; } $redis = Redis::instance(); if(empty($agentId)){ //渠道商用户 $redisKey = 'BL:'.$channelId; $keyChannel = 'BL:'.$channelId.'*'; if($redis->exists($redisKey)){ //判断存在不存在 $endUserId = $redis->hget($redisKey,$bookID); if(!empty($endUserId)){ return true; } if($rk){ //判断入库 $rkUserId = $redis->hget($redisKey,'-1'); if(!empty($rkUserId)){ return true; } } if($rknosee){ $rknoseeUserId = $redis->hget($redisKey,'-2'); if(!empty($rknoseeUserId)){ return true; } } return false; }else { if ($redis->exists($keyChannel)) { //用渠道商的 $endUserId = $redis->hget($keyChannel, $bookID); if (!empty($endUserId)) { return true; } if ($rk) { //判断入库 $rkUserId = $redis->hget($keyChannel, '-1'); if (!empty($rkUserId)) { return true; } } if ($rknosee) { $rknoseeUserId = $redis->hget($keyChannel, '-2'); if (!empty($rknoseeUserId)) { return true; } } } } return false; }else{ //代理商用户 $redisKey = 'BL:'.$agentId; $keyChannel = 'BL:'.$channelId.'*'; if($redis->exists($redisKey)){ //判断存在不存在 $endUserId = $redis->hget($redisKey,$bookID); if(!empty($endUserId)){ return true; } if($rk){ //判断入库 $rkUserId = $redis->hget($redisKey,'-1'); if(!empty($rkUserId)){ return true; } } if($rknosee){ $rknoseeUserId = $redis->hget($redisKey,'-2'); if(!empty($rknoseeUserId)){ return true; } } return false; }else{ if($redis->exists($keyChannel)) { //用渠道商的 $endUserId = $redis->hget($keyChannel, $bookID); if (!empty($endUserId)) { return true; } if ($rk) { //判断入库 $rkUserId = $redis->hget($keyChannel, '-1'); if (!empty($rkUserId)) { return true; } } if ($rknosee) { $rknoseeUserId = $redis->hget($keyChannel, '-2'); if (!empty($rknoseeUserId)) { return true; } } } } return false; } return false; } }