mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-23 19:37:23 +08:00
fix addMeta deadine
This commit is contained in:
@@ -278,11 +278,6 @@ class UserProfile extends ViewRecord
|
|||||||
->action(function ($data) {
|
->action(function ($data) {
|
||||||
$rep = $this->getRep();
|
$rep = $this->getRep();
|
||||||
try {
|
try {
|
||||||
if (!empty($data['duration'])) {
|
|
||||||
$data['deadline'] = now()->addDays($data['duration']);
|
|
||||||
} else {
|
|
||||||
$data['deadline'] = null;
|
|
||||||
}
|
|
||||||
$rep->addMeta($this->record, $data, $data);
|
$rep->addMeta($this->record, $data, $data);
|
||||||
$this->notify('success', 'Success!');
|
$this->notify('success', 'Success!');
|
||||||
$this->emitSelf(self::EVENT_RECORD_UPDATED, $this->record->id);
|
$this->emitSelf(self::EVENT_RECORD_UPDATED, $this->record->id);
|
||||||
|
|||||||
@@ -467,23 +467,41 @@ class UserRepository extends BaseRepository
|
|||||||
$user = $this->getUser($user);
|
$user = $this->getUser($user);
|
||||||
$metaKey = $metaData['meta_key'];
|
$metaKey = $metaData['meta_key'];
|
||||||
$allowMultiple = UserMeta::$metaKeys[$metaKey]['multiple'];
|
$allowMultiple = UserMeta::$metaKeys[$metaKey]['multiple'];
|
||||||
|
$log = "user: {$user->id}, metaKey: $metaKey, allowMultiple: $allowMultiple";
|
||||||
if ($allowMultiple) {
|
if ($allowMultiple) {
|
||||||
//Allow multiple, just insert
|
//Allow multiple, just insert
|
||||||
$result = $user->metas()->create($metaData);
|
$result = $user->metas()->create($metaData);
|
||||||
|
$log .= ", allowMultiple, just insert";
|
||||||
} else {
|
} else {
|
||||||
$metaExists = $user->metas()->where('meta_key', $metaKey)->first();
|
$metaExists = $user->metas()->where('meta_key', $metaKey)->first();
|
||||||
|
$log .= ", metaExists: " . ($metaExists->id ?? '');
|
||||||
if (!$metaExists) {
|
if (!$metaExists) {
|
||||||
$result = $user->metas()->create($metaData);
|
$result = $user->metas()->create($metaData);
|
||||||
|
$log .= ", meta not exists, just create";
|
||||||
} else {
|
} else {
|
||||||
if (empty($keyExistsUpdates)) {
|
$log .= ", meta exists";
|
||||||
$keyExistsUpdates = ['updated_at' => now()];
|
$keyExistsUpdates['updated_at'] = now();
|
||||||
|
if (!empty($keyExistsUpdates['duration'])) {
|
||||||
|
$log .= ", has duration: {$keyExistsUpdates['duration']}";
|
||||||
|
if ($metaExists->deadline && $metaExists->deadline->gte(now())) {
|
||||||
|
$log .= ", not expire";
|
||||||
|
$keyExistsUpdates['deadline'] = $metaExists->deadline->addDays($keyExistsUpdates['duration']);
|
||||||
|
} else {
|
||||||
|
$log .= ", expired or not set";
|
||||||
|
$keyExistsUpdates['deadline'] = now()->addDays($keyExistsUpdates['duration']);
|
||||||
|
}
|
||||||
|
unset($keyExistsUpdates['duration']);
|
||||||
|
} else {
|
||||||
|
$keyExistsUpdates['deadline'] = null;
|
||||||
}
|
}
|
||||||
|
$log .= ", update: " . json_encode($keyExistsUpdates);
|
||||||
$result = $metaExists->update($keyExistsUpdates);
|
$result = $metaExists->update($keyExistsUpdates);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($result) {
|
if ($result) {
|
||||||
clear_user_cache($user->id, $user->passkey);
|
clear_user_cache($user->id, $user->passkey);
|
||||||
}
|
}
|
||||||
|
do_log($log);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
defined('VERSION_NUMBER') || define('VERSION_NUMBER', '1.7.29');
|
defined('VERSION_NUMBER') || define('VERSION_NUMBER', '1.7.29');
|
||||||
defined('RELEASE_DATE') || define('RELEASE_DATE', '2022-10-09');
|
defined('RELEASE_DATE') || define('RELEASE_DATE', '2022-10-10');
|
||||||
defined('IN_TRACKER') || define('IN_TRACKER', false);
|
defined('IN_TRACKER') || define('IN_TRACKER', false);
|
||||||
defined('PROJECTNAME') || define("PROJECTNAME","NexusPHP");
|
defined('PROJECTNAME') || define("PROJECTNAME","NexusPHP");
|
||||||
defined('NEXUSPHPURL') || define("NEXUSPHPURL","https://nexusphp.org");
|
defined('NEXUSPHPURL') || define("NEXUSPHPURL","https://nexusphp.org");
|
||||||
|
|||||||
Reference in New Issue
Block a user