mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-07-21 23:46:39 +08:00
优化CourseUserTrait等
This commit is contained in:
parent
98cc8da285
commit
978b77a184
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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();
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
<tr>
|
||||
<td>{{ client_type(item.client_type) }}</td>
|
||||
<td><a href="javascript:" class="kg-ip2region" title="查看位置" data-ip="{{ item.client_ip }}">{{ item.client_ip }}</a></td>
|
||||
<td>{{ date('Y-m-d H:i',item.active_time) }}</td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.active_time) }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
@ -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();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user