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; + } + }