diff --git a/app/Http/Admin/Services/CourseUser.php b/app/Http/Admin/Services/CourseUser.php
index 8090b079..8a1acce4 100644
--- a/app/Http/Admin/Services/CourseUser.php
+++ b/app/Http/Admin/Services/CourseUser.php
@@ -40,7 +40,7 @@ class CourseUser extends Service
$sourceType = CourseUserModel::SOURCE_MANUAL;
- return $this->assignUserCourse($course, $user, $expiryTime, $sourceType);
+ $this->assignUserCourse($course, $user, $expiryTime, $sourceType);
}
public function getUsers($id)
diff --git a/app/Http/Admin/Services/Resource.php b/app/Http/Admin/Services/Resource.php
index 439d4931..8dc64905 100644
--- a/app/Http/Admin/Services/Resource.php
+++ b/app/Http/Admin/Services/Resource.php
@@ -45,7 +45,7 @@ class Resource extends Service
$this->recountCourseResources($course);
- return $upload;
+ return $resource;
}
public function updateResource($id)
@@ -67,6 +67,8 @@ class Resource extends Service
$upload->update($data);
$resource->update();
+
+ return $resource;
}
public function deleteResource($id)
@@ -80,6 +82,8 @@ class Resource extends Service
$resource->delete();
$this->recountCourseResources($course);
+
+ return $resource;
}
protected function findOrFail($id)
diff --git a/app/Http/Admin/Services/User.php b/app/Http/Admin/Services/User.php
index 83037a04..4cfd9fb2 100644
--- a/app/Http/Admin/Services/User.php
+++ b/app/Http/Admin/Services/User.php
@@ -142,7 +142,7 @@ class User extends Service
$this->db->commit();
if ($adminRole > 0) {
- $this->updateAdminUserCount($adminRole);
+ $this->recountRoleUsers($adminRole);
}
$this->rebuildUserCache($user);
@@ -225,11 +225,11 @@ class User extends Service
}
if ($oldAdminRole > 0) {
- $this->updateAdminUserCount($oldAdminRole);
+ $this->recountRoleUsers($oldAdminRole);
}
if ($user->admin_role > 0) {
- $this->updateAdminUserCount($user->admin_role);
+ $this->recountRoleUsers($user->admin_role);
}
$this->rebuildUserCache($user);
@@ -341,7 +341,7 @@ class User extends Service
$apiAuth->logoutClients($user->id);
}
- protected function updateAdminUserCount($roleId)
+ protected function recountRoleUsers($roleId)
{
$roleRepo = new RoleRepo();
diff --git a/app/Http/Admin/Views/user/online.volt b/app/Http/Admin/Views/user/online.volt
index dd233556..fa73c10c 100644
--- a/app/Http/Admin/Views/user/online.volt
+++ b/app/Http/Admin/Views/user/online.volt
@@ -23,7 +23,7 @@
{{ client_type(item.client_type) }} |
{{ item.client_ip }} |
- {{ date('Y-m-d H:i',item.active_time) }} |
+ {{ date('Y-m-d H:i:s',item.active_time) }} |
{% endfor %}
diff --git a/app/Services/Logic/Chapter/ChapterInfo.php b/app/Services/Logic/Chapter/ChapterInfo.php
index 85209a9e..a5221e81 100644
--- a/app/Services/Logic/Chapter/ChapterInfo.php
+++ b/app/Services/Logic/Chapter/ChapterInfo.php
@@ -10,7 +10,6 @@ namespace App\Services\Logic\Chapter;
use App\Models\Chapter as ChapterModel;
use App\Models\ChapterUser as ChapterUserModel;
use App\Models\Course as CourseModel;
-use App\Models\CourseUser as CourseUserModel;
use App\Models\User as UserModel;
use App\Repos\ChapterLike as ChapterLikeRepo;
use App\Services\Logic\ChapterTrait;
@@ -94,15 +93,7 @@ class ChapterInfo extends LogicService
if (!$this->ownedCourse) return;
- $sourceType = CourseUserModel::SOURCE_FREE;
-
- if ($course->market_price > 0) {
- if ($course->vip_price == 0 && $user->vip == 1) {
- $sourceType = CourseUserModel::SOURCE_VIP;
- } else {
- $sourceType = CourseUserModel::SOURCE_TRIAL;
- }
- }
+ $sourceType = $this->getFreeSourceType($course, $user);
$courseUser = $this->createCourseUser($course, $user, 0, $sourceType);
@@ -199,7 +190,6 @@ class ChapterInfo extends LogicService
$parent->user_count += 1;
$parent->update();
-
}
}
diff --git a/app/Services/Logic/Course/CourseUserTrait.php b/app/Services/Logic/Course/CourseUserTrait.php
index 3ebb587b..b3a82810 100644
--- a/app/Services/Logic/Course/CourseUserTrait.php
+++ b/app/Services/Logic/Course/CourseUserTrait.php
@@ -50,7 +50,7 @@ trait CourseUserTrait
$this->ownedCourse = true;
- } elseif ($course->market_price > 0 && $course->vip_price == 0 && $user->vip == 1) {
+ } elseif ($course->vip_price == 0 && $user->vip == 1) {
$this->ownedCourse = true;
@@ -80,19 +80,22 @@ trait CourseUserTrait
protected function assignUserCourse(CourseModel $course, UserModel $user, int $expiryTime, int $sourceType)
{
+ if ($this->allowFreeAccess($course, $user)) return;
+
$courseUserRepo = new CourseUserRepo();
$relation = $courseUserRepo->findCourseUser($course->id, $user->id);
if (!$relation) {
- $relation = $this->createCourseUser($course, $user, $expiryTime, $sourceType);
+ $this->createCourseUser($course, $user, $expiryTime, $sourceType);
} else {
switch ($relation->source_type) {
case CourseUserModel::SOURCE_FREE:
case CourseUserModel::SOURCE_TRIAL:
+ case CourseUserModel::SOURCE_VIP:
$this->createCourseUser($course, $user, $expiryTime, $sourceType);
$this->deleteCourseUser($relation);
break;
@@ -113,8 +116,6 @@ trait CourseUserTrait
$this->recountCourseUsers($course);
$this->recountUserCourses($user);
-
- return $relation;
}
protected function createCourseUser(CourseModel $course, UserModel $user, int $expiryTime, int $sourceType)
@@ -160,4 +161,32 @@ trait CourseUserTrait
$user->update();
}
+ protected function allowFreeAccess(CourseModel $course, UserModel $user)
+ {
+ $result = false;
+
+ if ($course->market_price == 0) {
+ $result = true;
+ } elseif ($course->vip_price == 0 && $user->vip == 1) {
+ $result = true;
+ }
+
+ return $result;
+ }
+
+ protected function getFreeSourceType(CourseModel $course, UserModel $user)
+ {
+ $sourceType = CourseUserModel::SOURCE_FREE;
+
+ if ($course->market_price > 0) {
+ if ($course->vip_price == 0 && $user->vip == 1) {
+ $sourceType = CourseUserModel::SOURCE_VIP;
+ } else {
+ $sourceType = CourseUserModel::SOURCE_TRIAL;
+ }
+ }
+
+ return $sourceType;
+ }
+
}