diff --git a/src/app/entity/models/ListInstanceModelAbstract.php b/src/app/entity/models/ListInstanceModelAbstract.php index b02aa570060d614485b78e5ad21ec60e68b7fd2b..6be940b44331f5a6d58e378c53f39796637750dd 100644 --- a/src/app/entity/models/ListInstanceModelAbstract.php +++ b/src/app/entity/models/ListInstanceModelAbstract.php @@ -138,14 +138,15 @@ abstract class ListInstanceModelAbstract public static function update(array $aArgs) { - ValidatorModel::notEmpty($aArgs, ['set', 'where', 'data']); - ValidatorModel::arrayType($aArgs, ['set', 'where', 'data']); + ValidatorModel::notEmpty($aArgs, ['where', 'data']); + ValidatorModel::arrayType($aArgs, ['set', 'postSet', 'where', 'data']); DatabaseModel::update([ - 'table' => 'listinstance', - 'set' => $aArgs['set'], - 'where' => $aArgs['where'], - 'data' => $aArgs['data'] + 'table' => 'listinstance', + 'set' => $aArgs['set'], + 'postSet' => $aArgs['postSet'], + 'where' => $aArgs['where'], + 'data' => $aArgs['data'] ]); return true; diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php index a37945eb27c2f61a042cb453a823e6bf6d0531ba..7aeea0c588e859c89333442bb194b71267f1a756 100755 --- a/src/app/resource/controllers/ResController.php +++ b/src/app/resource/controllers/ResController.php @@ -23,6 +23,7 @@ use Convert\models\AdrModel; use Docserver\models\DocserverModel; use Docserver\models\DocserverTypeModel; use Docserver\models\ResDocserverModel; +use Entity\models\ListInstanceModel; use Group\controllers\GroupController; use Group\models\GroupModel; use Group\models\ServiceModel; @@ -368,6 +369,11 @@ class ResController $response->write($fileContent); $response = $response->withAddedHeader('Content-Disposition', "inline; filename=maarch.{$pathInfo['extension']}"); + ListInstanceModel::update([ + 'postSet' => ['viewed' => 'viewed + 1'], + 'where' => ['item_id = ?', 'item_mode = ?', 'res_id = ?'], + 'data' => [$GLOBALS['userId'], 'cc', $aArgs['resId']] + ]); HistoryController::add([ 'tableName' => 'res_letterbox', 'recordId' => $aArgs['resId'], diff --git a/src/core/models/DatabaseModel.php b/src/core/models/DatabaseModel.php index c2fc643306548507a851fafc809ea74be6228900..ed14f7a35c6974deef789652c857bd5b28446409 100755 --- a/src/core/models/DatabaseModel.php +++ b/src/core/models/DatabaseModel.php @@ -195,9 +195,9 @@ class DatabaseModel */ public static function update(array $args) { - ValidatorModel::notEmpty($args, ['table', 'set', 'where']); + ValidatorModel::notEmpty($args, ['table', 'where']); ValidatorModel::stringType($args, ['table']); - ValidatorModel::arrayType($args, ['set', 'where']); + ValidatorModel::arrayType($args, ['set', 'where', 'postSet']); if (empty($args['data'])) { $args['data'] = []; @@ -206,12 +206,19 @@ class DatabaseModel $querySet = []; $dataSet = []; - foreach ($args['set'] as $key => $value) { - if ($value == 'SYSDATE' || $value == 'CURRENT_TIMESTAMP') { + if (!empty($args['set'])) { + foreach ($args['set'] as $key => $value) { + if ($value == 'SYSDATE' || $value == 'CURRENT_TIMESTAMP') { + $querySet[] = "{$key} = {$value}"; + } else { + $querySet[] = "{$key} = ?"; + $dataSet[] = $value; + } + } + } + if (!empty($args['postSet'])) { + foreach ($args['postSet'] as $key => $value) { $querySet[] = "{$key} = {$value}"; - } else { - $querySet[] = "{$key} = ?"; - $dataSet[] = $value; } } $args['data'] = array_merge($dataSet, $args['data']);