Fix incorrect caching of notification list

- readed=N 조건을 붙이지 않은 알림 목록 조회 요청도 캐싱되는 문제 수정
- "내 알림 목록" 화면에서는 레이아웃 등 다른 곳에서 불러오는 알림도
  getMyDispNotifyList로 처리되는 문제 수정
This commit is contained in:
Kijin Sung 2020-10-16 14:29:46 +09:00
parent 33077da47c
commit 4bab8c4961
2 changed files with 9 additions and 11 deletions

View file

@ -167,7 +167,7 @@ class ncenterliteModel extends ncenterlite
return $output; return $output;
} }
function getMyNotifyList($member_srl=null, $page=1, $readed='N') function getMyNotifyList($member_srl = null, $page = 1, $readed = 'N', $disp = false)
{ {
if(!$member_srl && !Context::get('is_logged')) if(!$member_srl && !Context::get('is_logged'))
{ {
@ -179,8 +179,7 @@ class ncenterliteModel extends ncenterlite
$member_srl = Context::get('logged_info')->member_srl; $member_srl = Context::get('logged_info')->member_srl;
} }
$act = Context::get('act'); if($disp)
if($act=='dispNcenterliteNotifyList')
{ {
$output = $this->getMyDispNotifyList($member_srl); $output = $this->getMyDispNotifyList($member_srl);
} }
@ -241,7 +240,7 @@ class ncenterliteModel extends ncenterlite
$this->add('useProfileImage', $memberConfig->profile_image); $this->add('useProfileImage', $memberConfig->profile_image);
} }
function _getMyNotifyList($member_srl=null, $page=1, $readed='N') function _getMyNotifyList($member_srl = null, $page = 1, $readed = 'N')
{ {
$oNcenterliteController = getController('ncenterlite'); $oNcenterliteController = getController('ncenterlite');
@ -257,7 +256,7 @@ class ncenterliteModel extends ncenterlite
$cache_key = sprintf('ncenterlite:notify_list:%d', $member_srl); $cache_key = sprintf('ncenterlite:notify_list:%d', $member_srl);
if ($page <= 1) if ($page <= 1 && $readed == 'N')
{ {
$output = Rhymix\Framework\Cache::get($cache_key); $output = Rhymix\Framework\Cache::get($cache_key);
if($output !== null) if($output !== null)
@ -267,7 +266,7 @@ class ncenterliteModel extends ncenterlite
} }
$flag_path = \RX_BASEDIR . 'files/cache/ncenterlite/new_notify/' . getNumberingPath($member_srl) . $member_srl . '.php'; $flag_path = \RX_BASEDIR . 'files/cache/ncenterlite/new_notify/' . getNumberingPath($member_srl) . $member_srl . '.php';
if(FileHandler::exists($flag_path) && $page <= 1) if($page <= 1 && $readed == 'N' && FileHandler::exists($flag_path))
{ {
$deleteFlagPath = \RX_BASEDIR . 'files/cache/ncenterlite/new_notify/delete_date.php'; $deleteFlagPath = \RX_BASEDIR . 'files/cache/ncenterlite/new_notify/delete_date.php';
@ -307,14 +306,14 @@ class ncenterliteModel extends ncenterlite
if (Rhymix\Framework\Cache::getDriverName() !== 'dummy') if (Rhymix\Framework\Cache::getDriverName() !== 'dummy')
{ {
if($page <= 1) if($page <= 1 && $readed == 'N')
{ {
Rhymix\Framework\Cache::set($cache_key, $output); Rhymix\Framework\Cache::set($cache_key, $output);
} }
} }
else else
{ {
if($page <= 1) if($page <= 1 && $readed == 'N')
{ {
$oNcenterliteController->updateFlagFile($member_srl, $output); $oNcenterliteController->updateFlagFile($member_srl, $output);
} }
@ -332,7 +331,7 @@ class ncenterliteModel extends ncenterlite
} }
$args = new stdClass(); $args = new stdClass();
$args->page = Context::get('page'); $args->page = max(1, intval(Context::get('page')));
$args->list_count = '20'; $args->list_count = '20';
$args->page_count = '10'; $args->page_count = '10';
$args->member_srl = $member_srl; $args->member_srl = $member_srl;
@ -390,7 +389,6 @@ class ncenterliteModel extends ncenterlite
elseif (Rhymix\Framework\Cache::getDriverName() !== 'dummy') elseif (Rhymix\Framework\Cache::getDriverName() !== 'dummy')
{ {
$output = $this->_getMyNotifyList($member_srl); $output = $this->_getMyNotifyList($member_srl);
Rhymix\Framework\Cache::set($cache_key, $output);
return $output->total_count; return $output->total_count;
} }

View file

@ -28,7 +28,7 @@ class ncenterliteView extends ncenterlite
{ {
$oNcenterliteModel = getModel('ncenterlite'); $oNcenterliteModel = getModel('ncenterlite');
$output = $oNcenterliteModel->getMyNotifyList(); $output = $oNcenterliteModel->getMyNotifyList($this->user->member_srl, 1, null, true);
Context::set('total_count', $output->page_navigation->total_count); Context::set('total_count', $output->page_navigation->total_count);
Context::set('total_page', $output->page_navigation->total_page); Context::set('total_page', $output->page_navigation->total_page);