This commit is contained in:
xxx 2023-08-27 10:05:18 +08:00
parent 54abd4ae6c
commit 30806bfdcf
93 changed files with 240 additions and 178 deletions

View File

@ -44,9 +44,6 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
<version>3.1.2</version> <version>3.1.2</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置devtools不会生效 -->
</configuration>
<executions> <executions>
<execution> <execution>
<goals> <goals>

View File

@ -20,11 +20,14 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
import xyz.playedu.common.config.UniqueNameGeneratorConfig; import xyz.playedu.common.config.UniqueNameGeneratorConfig;
@SpringBootApplication @SpringBootApplication
@EnableAsync @EnableAsync
@ComponentScan(basePackages = {"xyz.playedu"}, nameGenerator = UniqueNameGeneratorConfig.class) @ComponentScan(
basePackages = {"xyz.playedu"},
nameGenerator = UniqueNameGeneratorConfig.class)
@MapperScan("xyz.playedu.**.mapper") @MapperScan("xyz.playedu.**.mapper")
public class PlayeduApiApplication { public class PlayeduApiApplication {

View File

@ -25,6 +25,7 @@ import org.springframework.web.bind.MissingServletRequestParameterException;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import xyz.playedu.common.exception.LimitException; import xyz.playedu.common.exception.LimitException;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.exception.ServiceException; import xyz.playedu.common.exception.ServiceException;

View File

@ -24,12 +24,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import xyz.playedu.common.context.BCtx; import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.bus.BackendBus; import xyz.playedu.common.bus.BackendBus;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.annotation.BackendPermission; import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.domain.AdminLog; import xyz.playedu.common.domain.AdminLog;
import xyz.playedu.common.service.AdminLogService; import xyz.playedu.common.service.AdminLogService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;

View File

@ -21,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.request.backend.AdminRoleRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
@ -28,8 +30,6 @@ import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.domain.AdminPermission; import xyz.playedu.common.domain.AdminPermission;
import xyz.playedu.common.domain.AdminRole; import xyz.playedu.common.domain.AdminRole;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.AdminRoleRequest;
import xyz.playedu.common.service.AdminPermissionService; import xyz.playedu.common.service.AdminPermissionService;
import xyz.playedu.common.service.AdminRoleService; import xyz.playedu.common.service.AdminRoleService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;

View File

@ -22,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.request.backend.AdminUserRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
@ -29,8 +31,6 @@ import xyz.playedu.common.domain.AdminRole;
import xyz.playedu.common.domain.AdminUser; import xyz.playedu.common.domain.AdminUser;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.exception.ServiceException; import xyz.playedu.common.exception.ServiceException;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.AdminUserRequest;
import xyz.playedu.common.service.AdminRoleService; import xyz.playedu.common.service.AdminRoleService;
import xyz.playedu.common.service.AdminUserService; import xyz.playedu.common.service.AdminUserService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;

View File

@ -18,13 +18,13 @@ package xyz.playedu.api.controller.backend;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.request.backend.AppConfigRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.constant.SystemConstant; import xyz.playedu.common.constant.SystemConstant;
import xyz.playedu.common.domain.AppConfig; import xyz.playedu.common.domain.AppConfig;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.AppConfigRequest;
import xyz.playedu.common.service.AppConfigService; import xyz.playedu.common.service.AppConfigService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;

View File

@ -22,18 +22,18 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.request.backend.CourseAttachmentMultiRequest;
import xyz.playedu.api.request.backend.CourseAttachmentRequest;
import xyz.playedu.api.request.backend.CourseAttachmentSortRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.course.domain.CourseAttachment;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.CourseAttachmentMultiRequest;
import xyz.playedu.api.request.backend.CourseAttachmentRequest;
import xyz.playedu.api.request.backend.CourseAttachmentSortRequest;
import xyz.playedu.course.service.CourseAttachmentService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.course.domain.CourseAttachment;
import xyz.playedu.course.service.CourseAttachmentService;
import java.util.*; import java.util.*;

View File

@ -20,19 +20,19 @@ import org.springframework.context.ApplicationContext;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.context.BCtx; import xyz.playedu.api.event.CourseChapterDestroyEvent;
import xyz.playedu.api.request.backend.CourseChapterRequest;
import xyz.playedu.api.request.backend.CourseChapterSortRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.course.domain.CourseChapter; import xyz.playedu.common.context.BCtx;
import xyz.playedu.api.event.CourseChapterDestroyEvent;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.annotation.BackendPermission; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.api.request.backend.CourseChapterRequest; import xyz.playedu.course.domain.CourseChapter;
import xyz.playedu.api.request.backend.CourseChapterSortRequest;
import xyz.playedu.course.service.CourseChapterService; import xyz.playedu.course.service.CourseChapterService;
import xyz.playedu.course.service.CourseHourService; import xyz.playedu.course.service.CourseHourService;
import xyz.playedu.common.types.JsonResponse;
@RestController @RestController
@RequestMapping("/backend/v1/course/{courseId}/chapter") @RequestMapping("/backend/v1/course/{courseId}/chapter")

View File

@ -24,14 +24,14 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.context.BCtx; import xyz.playedu.api.event.CourseDestroyEvent;
import xyz.playedu.api.request.backend.CourseRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.api.event.CourseDestroyEvent; import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.CourseRequest;
import xyz.playedu.common.service.*; import xyz.playedu.common.service.*;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.types.paginate.CoursePaginateFiler; import xyz.playedu.common.types.paginate.CoursePaginateFiler;

View File

@ -23,24 +23,24 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.context.BCtx; import xyz.playedu.api.event.CourseHourCreatedEvent;
import xyz.playedu.api.event.CourseHourDestroyEvent;
import xyz.playedu.api.request.backend.CourseHourMultiRequest;
import xyz.playedu.api.request.backend.CourseHourRequest;
import xyz.playedu.api.request.backend.CourseHourSortRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.course.domain.CourseChapter; import xyz.playedu.common.context.BCtx;
import xyz.playedu.course.domain.CourseHour;
import xyz.playedu.api.event.CourseHourCreatedEvent;
import xyz.playedu.api.event.CourseHourDestroyEvent;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.CourseHourMultiRequest;
import xyz.playedu.api.request.backend.CourseHourRequest;
import xyz.playedu.api.request.backend.CourseHourSortRequest;
import xyz.playedu.course.service.CourseChapterService;
import xyz.playedu.course.service.CourseHourService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.types.SelectOption; import xyz.playedu.common.types.SelectOption;
import xyz.playedu.course.domain.CourseChapter;
import xyz.playedu.course.domain.CourseHour;
import xyz.playedu.course.service.CourseChapterService;
import xyz.playedu.course.service.CourseHourService;
import java.util.*; import java.util.*;

View File

@ -24,19 +24,19 @@ import org.springframework.context.ApplicationContext;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.event.UserCourseRecordDestroyEvent;
import xyz.playedu.api.request.backend.CourseUserDestroyRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.domain.User; import xyz.playedu.common.domain.User;
import xyz.playedu.course.domain.UserCourseRecord;
import xyz.playedu.api.event.UserCourseRecordDestroyEvent;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.CourseUserDestroyRequest;
import xyz.playedu.common.service.*; import xyz.playedu.common.service.*;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.types.mapper.UserCourseHourRecordUserFirstCreatedAtMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordUserFirstCreatedAtMapper;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserPaginateFilter; import xyz.playedu.common.types.paginate.UserPaginateFilter;
import xyz.playedu.course.domain.UserCourseRecord;
import xyz.playedu.course.service.CourseService; import xyz.playedu.course.service.CourseService;
import xyz.playedu.course.service.UserCourseHourRecordService; import xyz.playedu.course.service.UserCourseHourRecordService;
import xyz.playedu.course.service.UserCourseRecordService; import xyz.playedu.course.service.UserCourseRecordService;

View File

@ -25,9 +25,9 @@ import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.constant.SystemConstant; import xyz.playedu.common.constant.SystemConstant;
import xyz.playedu.common.domain.User; import xyz.playedu.common.domain.User;
import xyz.playedu.course.domain.UserLearnDurationStats;
import xyz.playedu.common.service.*; import xyz.playedu.common.service.*;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.course.domain.UserLearnDurationStats;
import xyz.playedu.course.service.CourseService; import xyz.playedu.course.service.CourseService;
import xyz.playedu.course.service.UserLearnDurationStatsService; import xyz.playedu.course.service.UserLearnDurationStatsService;
import xyz.playedu.resource.service.ResourceService; import xyz.playedu.resource.service.ResourceService;

View File

@ -23,28 +23,28 @@ import org.springframework.context.ApplicationContext;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.event.DepartmentDestroyEvent;
import xyz.playedu.api.request.backend.DepartmentParentRequest; import xyz.playedu.api.request.backend.DepartmentParentRequest;
import xyz.playedu.api.request.backend.DepartmentRequest; import xyz.playedu.api.request.backend.DepartmentRequest;
import xyz.playedu.api.request.backend.DepartmentSortRequest; import xyz.playedu.api.request.backend.DepartmentSortRequest;
import xyz.playedu.common.context.BCtx; import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.course.domain.Course; import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.domain.Department; import xyz.playedu.common.domain.Department;
import xyz.playedu.common.domain.User; import xyz.playedu.common.domain.User;
import xyz.playedu.course.domain.UserCourseRecord;
import xyz.playedu.api.event.DepartmentDestroyEvent;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.course.service.CourseDepartmentService;
import xyz.playedu.course.service.CourseService;
import xyz.playedu.common.service.DepartmentService; import xyz.playedu.common.service.DepartmentService;
import xyz.playedu.course.service.UserCourseRecordService;
import xyz.playedu.common.service.UserService; import xyz.playedu.common.service.UserService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserPaginateFilter; import xyz.playedu.common.types.paginate.UserPaginateFilter;
import xyz.playedu.course.domain.Course;
import xyz.playedu.course.domain.UserCourseRecord;
import xyz.playedu.course.service.CourseDepartmentService;
import xyz.playedu.course.service.CourseService;
import xyz.playedu.course.service.UserCourseRecordService;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;

View File

@ -20,17 +20,17 @@ import org.springframework.context.ApplicationContext;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.context.BCtx; import xyz.playedu.api.event.AdminUserLoginEvent;
import xyz.playedu.api.request.backend.LoginRequest;
import xyz.playedu.api.request.backend.PasswordChangeRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.bus.BackendBus; import xyz.playedu.common.bus.BackendBus;
import xyz.playedu.common.config.PlayEduConfig; import xyz.playedu.common.config.PlayEduConfig;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.domain.AdminUser; import xyz.playedu.common.domain.AdminUser;
import xyz.playedu.api.event.AdminUserLoginEvent;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.LoginRequest;
import xyz.playedu.api.request.backend.PasswordChangeRequest;
import xyz.playedu.common.service.AdminUserService; import xyz.playedu.common.service.AdminUserService;
import xyz.playedu.common.service.BackendAuthService; import xyz.playedu.common.service.BackendAuthService;
import xyz.playedu.common.service.RateLimiterService; import xyz.playedu.common.service.RateLimiterService;

View File

@ -20,25 +20,25 @@ import org.springframework.context.ApplicationContext;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.context.BCtx; import xyz.playedu.api.event.ResourceCategoryDestroyEvent;
import xyz.playedu.api.request.backend.ResourceCategoryParentRequest;
import xyz.playedu.api.request.backend.ResourceCategoryRequest;
import xyz.playedu.api.request.backend.ResourceCategorySortRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.domain.Category; import xyz.playedu.common.domain.Category;
import xyz.playedu.common.service.CategoryService;
import xyz.playedu.course.service.CourseCategoryService;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.api.event.ResourceCategoryDestroyEvent;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.annotation.BackendPermission; import xyz.playedu.common.service.CategoryService;
import xyz.playedu.api.request.backend.ResourceCategoryParentRequest; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.api.request.backend.ResourceCategoryRequest; import xyz.playedu.course.service.CourseCategoryService;
import xyz.playedu.api.request.backend.ResourceCategorySortRequest;
import xyz.playedu.course.service.CourseService; import xyz.playedu.course.service.CourseService;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.resource.service.ResourceCategoryService; import xyz.playedu.resource.service.ResourceCategoryService;
import xyz.playedu.resource.service.ResourceService; import xyz.playedu.resource.service.ResourceService;
import xyz.playedu.common.types.JsonResponse;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;

View File

@ -23,25 +23,25 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.context.BCtx; import xyz.playedu.api.request.backend.ResourceDestroyMultiRequest;
import xyz.playedu.api.request.backend.ResourceUpdateRequest;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.bus.BackendBus; import xyz.playedu.common.bus.BackendBus;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.domain.AdminUser; import xyz.playedu.common.domain.AdminUser;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.resource.domain.ResourceVideo;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.exception.ServiceException; import xyz.playedu.common.exception.ServiceException;
import xyz.playedu.api.request.backend.ResourceDestroyMultiRequest;
import xyz.playedu.api.request.backend.ResourceUpdateRequest;
import xyz.playedu.common.service.AdminUserService; import xyz.playedu.common.service.AdminUserService;
import xyz.playedu.common.service.MinioService; import xyz.playedu.common.service.MinioService;
import xyz.playedu.resource.service.ResourceService;
import xyz.playedu.resource.service.ResourceVideoService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.ResourcePaginateFilter; import xyz.playedu.common.types.paginate.ResourcePaginateFilter;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.resource.domain.ResourceVideo;
import xyz.playedu.resource.service.ResourceService;
import xyz.playedu.resource.service.ResourceVideoService;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;

View File

@ -21,10 +21,10 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.constant.ConfigConstant; import xyz.playedu.common.constant.ConfigConstant;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.util.RequestUtil; import xyz.playedu.common.util.RequestUtil;

View File

@ -23,17 +23,17 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import xyz.playedu.common.context.BCtx; import xyz.playedu.api.request.backend.UploadFileMergeRequest;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.resource.domain.Resource; import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.exception.ServiceException; import xyz.playedu.common.exception.ServiceException;
import xyz.playedu.api.request.backend.UploadFileMergeRequest;
import xyz.playedu.common.service.MinioService; import xyz.playedu.common.service.MinioService;
import xyz.playedu.resource.service.ResourceService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.util.HelperUtil; import xyz.playedu.common.util.HelperUtil;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.resource.service.ResourceService;
import xyz.playedu.resource.service.UploadService; import xyz.playedu.resource.service.UploadService;
import java.util.HashMap; import java.util.HashMap;

View File

@ -28,20 +28,20 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.context.BCtx; import xyz.playedu.api.event.UserCourseHourRecordDestroyEvent;
import xyz.playedu.api.event.UserCourseRecordDestroyEvent;
import xyz.playedu.api.event.UserDestroyEvent;
import xyz.playedu.api.request.backend.UserImportRequest;
import xyz.playedu.api.request.backend.UserRequest;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.annotation.Log; import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.constant.BusinessTypeConstant;
import xyz.playedu.common.constant.ConfigConstant; import xyz.playedu.common.constant.ConfigConstant;
import xyz.playedu.common.constant.SystemConstant; import xyz.playedu.common.constant.SystemConstant;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.domain.*; import xyz.playedu.common.domain.*;
import xyz.playedu.api.event.UserCourseHourRecordDestroyEvent;
import xyz.playedu.api.event.UserCourseRecordDestroyEvent;
import xyz.playedu.api.event.UserDestroyEvent;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.api.request.backend.UserImportRequest;
import xyz.playedu.api.request.backend.UserRequest;
import xyz.playedu.common.service.*; import xyz.playedu.common.service.*;
import xyz.playedu.common.service.UserDepartmentService; import xyz.playedu.common.service.UserDepartmentService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;

View File

@ -20,6 +20,7 @@ import lombok.SneakyThrows;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.context.FCtx; import xyz.playedu.common.context.FCtx;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.types.paginate.CoursePaginateFiler; import xyz.playedu.common.types.paginate.CoursePaginateFiler;

View File

@ -18,6 +18,7 @@ package xyz.playedu.api.controller.frontend;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.common.domain.Department; import xyz.playedu.common.domain.Department;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.service.DepartmentService; import xyz.playedu.common.service.DepartmentService;
@ -27,7 +28,6 @@ import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.course.domain.Course; import xyz.playedu.course.domain.Course;
import xyz.playedu.course.service.CourseService; import xyz.playedu.course.service.CourseService;
import java.util.HashMap; import java.util.HashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;

View File

@ -21,15 +21,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.event.UserCourseHourFinishedEvent; import xyz.playedu.api.event.UserCourseHourFinishedEvent;
import xyz.playedu.api.event.UserLearnCourseUpdateEvent; import xyz.playedu.api.event.UserLearnCourseUpdateEvent;
import xyz.playedu.course.bus.UserBus;
import xyz.playedu.course.caches.CourseCache;
import xyz.playedu.course.caches.UserCanSeeCourseCache;
import xyz.playedu.api.request.frontend.CourseHourRecordRequest; import xyz.playedu.api.request.frontend.CourseHourRecordRequest;
import xyz.playedu.common.context.FCtx; import xyz.playedu.common.context.FCtx;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.util.RedisDistributedLock; import xyz.playedu.common.util.RedisDistributedLock;
import xyz.playedu.course.bus.UserBus;
import xyz.playedu.course.caches.CourseCache;
import xyz.playedu.course.caches.UserCanSeeCourseCache;
import xyz.playedu.course.caches.UserLastLearnTimeCache; import xyz.playedu.course.caches.UserLastLearnTimeCache;
import xyz.playedu.course.domain.Course; import xyz.playedu.course.domain.Course;
import xyz.playedu.course.domain.CourseHour; import xyz.playedu.course.domain.CourseHour;
@ -40,7 +41,6 @@ import xyz.playedu.course.service.UserCourseHourRecordService;
import xyz.playedu.resource.domain.Resource; import xyz.playedu.resource.domain.Resource;
import xyz.playedu.resource.service.ResourceService; import xyz.playedu.resource.service.ResourceService;
import java.util.HashMap; import java.util.HashMap;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -136,10 +136,17 @@ public class HourController {
} }
try { try {
boolean isFinished = userCourseHourRecordService.storeOrUpdate( boolean isFinished =
FCtx.getId(), course.getId(), hour.getId(), duration, hour.getDuration()); userCourseHourRecordService.storeOrUpdate(
FCtx.getId(),
course.getId(),
hour.getId(),
duration,
hour.getDuration());
if (isFinished) { if (isFinished) {
ctx.publishEvent(new UserCourseHourFinishedEvent(this, FCtx.getId(), courseId, hour.getId())); ctx.publishEvent(
new UserCourseHourFinishedEvent(
this, FCtx.getId(), courseId, hour.getId()));
} }
} finally { } finally {
// 此处未考虑上面代码执行失败释放锁 // 此处未考虑上面代码执行失败释放锁

View File

@ -22,11 +22,12 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import xyz.playedu.api.event.UserLoginEvent; import xyz.playedu.api.event.UserLoginEvent;
import xyz.playedu.api.event.UserLogoutEvent; import xyz.playedu.api.event.UserLogoutEvent;
import xyz.playedu.api.request.frontend.LoginPasswordRequest; import xyz.playedu.api.request.frontend.LoginPasswordRequest;
import xyz.playedu.common.context.FCtx;
import xyz.playedu.common.config.PlayEduConfig; import xyz.playedu.common.config.PlayEduConfig;
import xyz.playedu.common.context.FCtx;
import xyz.playedu.common.domain.User; import xyz.playedu.common.domain.User;
import xyz.playedu.common.exception.LimitException; import xyz.playedu.common.exception.LimitException;
import xyz.playedu.common.service.FrontendAuthService; import xyz.playedu.common.service.FrontendAuthService;
@ -38,7 +39,6 @@ import xyz.playedu.common.util.IpUtil;
import xyz.playedu.common.util.RedisUtil; import xyz.playedu.common.util.RedisUtil;
import xyz.playedu.common.util.RequestUtil; import xyz.playedu.common.util.RequestUtil;
import java.util.HashMap; import java.util.HashMap;
@RestController @RestController

View File

@ -19,11 +19,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import xyz.playedu.common.constant.ConfigConstant; import xyz.playedu.common.constant.ConfigConstant;
import xyz.playedu.common.service.AppConfigService; import xyz.playedu.common.service.AppConfigService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@ -22,9 +22,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import xyz.playedu.api.request.frontend.ChangePasswordRequest; import xyz.playedu.api.request.frontend.ChangePasswordRequest;
import xyz.playedu.common.context.FCtx;
import xyz.playedu.common.constant.FrontendConstant; import xyz.playedu.common.constant.FrontendConstant;
import xyz.playedu.common.context.FCtx;
import xyz.playedu.common.domain.Department; import xyz.playedu.common.domain.Department;
import xyz.playedu.common.domain.User; import xyz.playedu.common.domain.User;
import xyz.playedu.common.domain.UserUploadImageLog; import xyz.playedu.common.domain.UserUploadImageLog;
@ -32,11 +33,11 @@ import xyz.playedu.common.exception.ServiceException;
import xyz.playedu.common.service.DepartmentService; import xyz.playedu.common.service.DepartmentService;
import xyz.playedu.common.service.UserService; import xyz.playedu.common.service.UserService;
import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.types.mapper.UserCourseHourRecordCourseCountMapper;
import xyz.playedu.common.util.PrivacyUtil; import xyz.playedu.common.util.PrivacyUtil;
import xyz.playedu.course.domain.*; import xyz.playedu.course.domain.*;
import xyz.playedu.course.service.*; import xyz.playedu.course.service.*;
import xyz.playedu.resource.service.UploadService; import xyz.playedu.resource.service.UploadService;
import xyz.playedu.common.types.mapper.UserCourseHourRecordCourseCountMapper;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;

View File

@ -21,8 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.domain.AdminUser;
import xyz.playedu.api.event.AdminUserLoginEvent; import xyz.playedu.api.event.AdminUserLoginEvent;
import xyz.playedu.common.domain.AdminUser;
import xyz.playedu.common.service.AdminUserService; import xyz.playedu.common.service.AdminUserService;
@Component @Component

View File

@ -21,10 +21,10 @@ import org.springframework.stereotype.Component;
import xyz.playedu.api.event.CourseDestroyEvent; import xyz.playedu.api.event.CourseDestroyEvent;
import xyz.playedu.course.service.CourseAttachmentService; import xyz.playedu.course.service.CourseAttachmentService;
import xyz.playedu.course.service.CourseCategoryService;
import xyz.playedu.course.service.CourseDepartmentService; import xyz.playedu.course.service.CourseDepartmentService;
import xyz.playedu.course.service.UserCourseHourRecordService; import xyz.playedu.course.service.UserCourseHourRecordService;
import xyz.playedu.course.service.UserCourseRecordService; import xyz.playedu.course.service.UserCourseRecordService;
import xyz.playedu.course.service.CourseCategoryService;
/** /**
* @Author 杭州白书科技有限公司 * @Author 杭州白书科技有限公司

View File

@ -18,8 +18,8 @@ package xyz.playedu.common.bus;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.domain.AdminRole; import xyz.playedu.common.domain.AdminRole;
import xyz.playedu.common.service.AdminPermissionService; import xyz.playedu.common.service.AdminPermissionService;
import xyz.playedu.common.service.AdminRoleService; import xyz.playedu.common.service.AdminRoleService;

View File

@ -16,6 +16,7 @@
package xyz.playedu.common.config; package xyz.playedu.common.config;
import lombok.Data; import lombok.Data;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

View File

@ -18,6 +18,7 @@ package xyz.playedu.common.config;
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

View File

@ -16,6 +16,7 @@
package xyz.playedu.common.config; package xyz.playedu.common.config;
import lombok.Data; import lombok.Data;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -19,6 +19,7 @@ import io.minio.CreateMultipartUploadResponse;
import io.minio.ListPartsResponse; import io.minio.ListPartsResponse;
import io.minio.MinioAsyncClient; import io.minio.MinioAsyncClient;
import io.minio.messages.Part; import io.minio.messages.Part;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import java.util.List; import java.util.List;

View File

@ -17,6 +17,7 @@ package xyz.playedu.common.config;
import cn.dev33.satoken.jwt.StpLogicJwtForSimple; import cn.dev33.satoken.jwt.StpLogicJwtForSimple;
import cn.dev33.satoken.stp.StpLogic; import cn.dev33.satoken.stp.StpLogic;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

View File

@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;

View File

@ -25,6 +25,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import xyz.playedu.common.bus.BackendBus; import xyz.playedu.common.bus.BackendBus;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;

View File

@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import xyz.playedu.common.bus.BackendBus; import xyz.playedu.common.bus.BackendBus;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;

View File

@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;

View File

@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;

View File

@ -16,16 +16,16 @@
package xyz.playedu.common.service; package xyz.playedu.common.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import xyz.playedu.common.domain.AdminLog;
import xyz.playedu.common.types.paginate.AdminLogPaginateFiler; import xyz.playedu.common.types.paginate.AdminLogPaginateFiler;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.domain.AdminLog;
/** /**
* @author tengteng * @author tengteng
* @description 针对表admin_logs的数据库操作Service * @description 针对表admin_logs的数据库操作Service
* @createDate 2023-02-17 15:40:31 * @createDate 2023-02-17 15:40:31
*/ */
public interface AdminLogService extends IService<AdminLog> { public interface AdminLogService extends IService<AdminLog> {
PaginationResult<AdminLog> paginate(int page, int size, AdminLogPaginateFiler filter); PaginationResult<AdminLog> paginate(int page, int size, AdminLogPaginateFiler filter);
} }

View File

@ -26,8 +26,8 @@ import xyz.playedu.common.domain.AdminRole;
import xyz.playedu.common.domain.AdminRolePermission; import xyz.playedu.common.domain.AdminRolePermission;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.mapper.AdminRoleMapper; import xyz.playedu.common.mapper.AdminRoleMapper;
import xyz.playedu.common.service.AdminRoleService;
import xyz.playedu.common.service.AdminRolePermissionService; import xyz.playedu.common.service.AdminRolePermissionService;
import xyz.playedu.common.service.AdminRoleService;
import xyz.playedu.common.service.AdminUserRoleService; import xyz.playedu.common.service.AdminUserRoleService;
import xyz.playedu.common.util.HelperUtil; import xyz.playedu.common.util.HelperUtil;

View File

@ -24,6 +24,7 @@ import xyz.playedu.common.domain.Category;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.mapper.CategoryMapper; import xyz.playedu.common.mapper.CategoryMapper;
import xyz.playedu.common.service.CategoryService; import xyz.playedu.common.service.CategoryService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -36,8 +37,7 @@ import java.util.stream.Collectors;
* @createDate 2023-02-23 09:50:18 * @createDate 2023-02-23 09:50:18
*/ */
@Service @Service
public class CategoryServiceImpl public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category>
extends ServiceImpl<CategoryMapper, Category>
implements CategoryService { implements CategoryService {
@Override @Override
@ -217,8 +217,7 @@ public class CategoryServiceImpl
@Override @Override
public Map<Integer, String> id2name() { public Map<Integer, String> id2name() {
return all().stream() return all().stream().collect(Collectors.toMap(Category::getId, Category::getName));
.collect(Collectors.toMap(Category::getId, Category::getName));
} }
@Override @Override

View File

@ -24,11 +24,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import xyz.playedu.common.config.PlayEduMinioClientConfig;
import xyz.playedu.common.exception.ServiceException; import xyz.playedu.common.exception.ServiceException;
import xyz.playedu.common.service.AppConfigService; import xyz.playedu.common.service.AppConfigService;
import xyz.playedu.common.service.MinioService; import xyz.playedu.common.service.MinioService;
import xyz.playedu.common.types.config.MinioConfig; import xyz.playedu.common.types.config.MinioConfig;
import xyz.playedu.common.config.PlayEduMinioClientConfig;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.InputStream; import java.io.InputStream;

View File

@ -29,8 +29,8 @@ import xyz.playedu.common.domain.UserDepartment;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.exception.ServiceException; import xyz.playedu.common.exception.ServiceException;
import xyz.playedu.common.mapper.UserMapper; import xyz.playedu.common.mapper.UserMapper;
import xyz.playedu.common.service.UserService;
import xyz.playedu.common.service.UserDepartmentService; import xyz.playedu.common.service.UserDepartmentService;
import xyz.playedu.common.service.UserService;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserPaginateFilter; import xyz.playedu.common.types.paginate.UserPaginateFilter;
import xyz.playedu.common.util.HelperUtil; import xyz.playedu.common.util.HelperUtil;

View File

@ -16,7 +16,9 @@
package xyz.playedu.common.service.impl; package xyz.playedu.common.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import xyz.playedu.common.domain.UserUploadImageLog; import xyz.playedu.common.domain.UserUploadImageLog;
import xyz.playedu.common.mapper.UserUploadImageLogMapper; import xyz.playedu.common.mapper.UserUploadImageLogMapper;
import xyz.playedu.common.service.UserUploadImageLogService; import xyz.playedu.common.service.UserUploadImageLogService;

View File

@ -17,6 +17,7 @@ package xyz.playedu.common.util;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
import java.io.*; import java.io.*;

View File

@ -18,7 +18,9 @@ package xyz.playedu.common.util;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.net.InetAddress; import java.net.InetAddress;

View File

@ -16,6 +16,7 @@
package xyz.playedu.common.util; package xyz.playedu.common.util;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.Cursor; import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
@ -23,6 +24,7 @@ import org.springframework.data.redis.core.ScanOptions;
import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import xyz.playedu.common.constant.SystemConstant; import xyz.playedu.common.constant.SystemConstant;
import java.util.*; import java.util.*;

View File

@ -17,7 +17,9 @@ package xyz.playedu.common.util;
import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgent;
import cn.hutool.http.useragent.UserAgentUtil; import cn.hutool.http.useragent.UserAgentUtil;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;

View File

@ -16,6 +16,7 @@
package xyz.playedu.common.util; package xyz.playedu.common.util;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import org.springframework.util.AntPathMatcher; import org.springframework.util.AntPathMatcher;
import java.util.*; import java.util.*;

View File

@ -18,6 +18,7 @@ package xyz.playedu.course.bus;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.domain.User; import xyz.playedu.common.domain.User;
import xyz.playedu.common.service.UserService; import xyz.playedu.common.service.UserService;
import xyz.playedu.course.domain.Course; import xyz.playedu.course.domain.Course;

View File

@ -17,12 +17,12 @@ package xyz.playedu.course.caches;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.util.RedisUtil; import xyz.playedu.common.util.RedisUtil;
import xyz.playedu.course.domain.Course; import xyz.playedu.course.domain.Course;
import xyz.playedu.course.service.CourseService; import xyz.playedu.course.service.CourseService;
/** /**
* @Author 杭州白书科技有限公司 * @Author 杭州白书科技有限公司
* *

View File

@ -16,8 +16,8 @@
package xyz.playedu.course.caches; package xyz.playedu.course.caches;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.util.RedisUtil;
import xyz.playedu.common.util.RedisUtil;
/** /**
* @Author 杭州白书科技有限公司 * @Author 杭州白书科技有限公司

View File

@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;

View File

@ -19,7 +19,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
/** /**
* @Author 杭州白书科技有限公司 * @Author 杭州白书科技有限公司
* *

View File

@ -19,8 +19,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import xyz.playedu.course.domain.CourseAttachmentDownloadLog;
import xyz.playedu.common.types.paginate.CourseAttachmentDownloadLogPaginateFiler; import xyz.playedu.common.types.paginate.CourseAttachmentDownloadLogPaginateFiler;
import xyz.playedu.course.domain.CourseAttachmentDownloadLog;
import java.util.List; import java.util.List;

View File

@ -19,8 +19,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import xyz.playedu.course.domain.Course;
import xyz.playedu.common.types.paginate.CoursePaginateFiler; import xyz.playedu.common.types.paginate.CoursePaginateFiler;
import xyz.playedu.course.domain.Course;
import java.util.List; import java.util.List;

View File

@ -19,11 +19,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import xyz.playedu.course.domain.UserCourseHourRecord;
import xyz.playedu.common.types.mapper.UserCourseHourRecordCourseCountMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordCourseCountMapper;
import xyz.playedu.common.types.mapper.UserCourseHourRecordUserCountMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordUserCountMapper;
import xyz.playedu.common.types.mapper.UserCourseHourRecordUserFirstCreatedAtMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordUserFirstCreatedAtMapper;
import xyz.playedu.common.types.paginate.UserCourseHourRecordPaginateFilter; import xyz.playedu.common.types.paginate.UserCourseHourRecordPaginateFilter;
import xyz.playedu.course.domain.UserCourseHourRecord;
import java.util.List; import java.util.List;

View File

@ -19,8 +19,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import xyz.playedu.course.domain.UserCourseRecord;
import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter; import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter;
import xyz.playedu.course.domain.UserCourseRecord;
import java.util.List; import java.util.List;

View File

@ -19,9 +19,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import xyz.playedu.course.domain.CourseAttachmentDownloadLog;
import xyz.playedu.common.types.paginate.CourseAttachmentDownloadLogPaginateFiler; import xyz.playedu.common.types.paginate.CourseAttachmentDownloadLogPaginateFiler;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.course.domain.CourseAttachmentDownloadLog;
@Service @Service
public interface CourseAttachmentDownloadLogService extends IService<CourseAttachmentDownloadLog> { public interface CourseAttachmentDownloadLogService extends IService<CourseAttachmentDownloadLog> {

View File

@ -17,8 +17,8 @@ package xyz.playedu.course.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import xyz.playedu.course.domain.CourseAttachment;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.course.domain.CourseAttachment;
import java.util.List; import java.util.List;

View File

@ -37,6 +37,4 @@ public interface CourseCategoryService extends IService<CourseCategory> {
List<Integer> getCategoryIdsByCourseId(Integer courseId); List<Integer> getCategoryIdsByCourseId(Integer courseId);
List<Integer> getCourseIdsByCategoryId(Integer id); List<Integer> getCourseIdsByCategoryId(Integer id);
} }

View File

@ -17,8 +17,8 @@ package xyz.playedu.course.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import xyz.playedu.course.domain.CourseChapter;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.course.domain.CourseChapter;
import java.util.List; import java.util.List;

View File

@ -17,8 +17,8 @@ package xyz.playedu.course.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import xyz.playedu.course.domain.CourseHour;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.course.domain.CourseHour;
import java.util.List; import java.util.List;

View File

@ -17,10 +17,10 @@ package xyz.playedu.course.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import xyz.playedu.course.domain.Course;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.types.paginate.CoursePaginateFiler; import xyz.playedu.common.types.paginate.CoursePaginateFiler;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.course.domain.Course;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -17,12 +17,12 @@ package xyz.playedu.course.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import xyz.playedu.course.domain.UserCourseHourRecord;
import xyz.playedu.common.types.mapper.UserCourseHourRecordCourseCountMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordCourseCountMapper;
import xyz.playedu.common.types.mapper.UserCourseHourRecordUserCountMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordUserCountMapper;
import xyz.playedu.common.types.mapper.UserCourseHourRecordUserFirstCreatedAtMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordUserFirstCreatedAtMapper;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserCourseHourRecordPaginateFilter; import xyz.playedu.common.types.paginate.UserCourseHourRecordPaginateFilter;
import xyz.playedu.course.domain.UserCourseHourRecord;
import java.util.List; import java.util.List;

View File

@ -17,9 +17,9 @@ package xyz.playedu.course.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import xyz.playedu.course.domain.UserCourseRecord;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter; import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter;
import xyz.playedu.course.domain.UserCourseRecord;
import java.util.List; import java.util.List;

View File

@ -19,11 +19,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import xyz.playedu.common.types.paginate.CourseAttachmentDownloadLogPaginateFiler;
import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.course.domain.CourseAttachmentDownloadLog; import xyz.playedu.course.domain.CourseAttachmentDownloadLog;
import xyz.playedu.course.mapper.CourseAttachmentDownloadLogMapper; import xyz.playedu.course.mapper.CourseAttachmentDownloadLogMapper;
import xyz.playedu.course.service.CourseAttachmentDownloadLogService; import xyz.playedu.course.service.CourseAttachmentDownloadLogService;
import xyz.playedu.common.types.paginate.CourseAttachmentDownloadLogPaginateFiler;
import xyz.playedu.common.types.paginate.PaginationResult;
@Service @Service
public class CourseAttachmentDownloadLogServiceImpl public class CourseAttachmentDownloadLogServiceImpl

View File

@ -19,8 +19,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import xyz.playedu.course.domain.CourseAttachment;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.course.domain.CourseAttachment;
import xyz.playedu.course.mapper.CourseAttachmentMapper; import xyz.playedu.course.mapper.CourseAttachmentMapper;
import xyz.playedu.course.service.CourseAttachmentService; import xyz.playedu.course.service.CourseAttachmentService;

View File

@ -31,8 +31,7 @@ import java.util.List;
* @createDate 2023-03-09 09:54:22 * @createDate 2023-03-09 09:54:22
*/ */
@Service @Service
public class CourseCategoryServiceImpl public class CourseCategoryServiceImpl extends ServiceImpl<CourseCategoryMapper, CourseCategory>
extends ServiceImpl<CourseCategoryMapper, CourseCategory>
implements CourseCategoryService { implements CourseCategoryService {
@Override @Override
@ -61,8 +60,7 @@ public class CourseCategoryServiceImpl
@Override @Override
public List<Integer> getCourseIdsByCategoryId(Integer id) { public List<Integer> getCourseIdsByCategoryId(Integer id) {
return list(query().getWrapper().eq("category_id", id)) return list(query().getWrapper().eq("category_id", id)).stream()
.stream()
.map(CourseCategory::getCourseId) .map(CourseCategory::getCourseId)
.toList(); .toList();
} }

View File

@ -19,8 +19,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import xyz.playedu.course.domain.CourseChapter;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.course.domain.CourseChapter;
import xyz.playedu.course.mapper.CourseChapterMapper; import xyz.playedu.course.mapper.CourseChapterMapper;
import xyz.playedu.course.service.CourseChapterService; import xyz.playedu.course.service.CourseChapterService;

View File

@ -55,8 +55,7 @@ public class CourseDepartmentServiceImpl
@Override @Override
public List<Integer> getCourseIdsByDepId(Integer depId) { public List<Integer> getCourseIdsByDepId(Integer depId) {
return list(query().getWrapper().eq("dep_id", depId)) return list(query().getWrapper().eq("dep_id", depId)).stream()
.stream()
.map(CourseDepartment::getCourseId) .map(CourseDepartment::getCourseId)
.toList(); .toList();
} }

View File

@ -19,8 +19,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import xyz.playedu.course.domain.CourseHour;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.course.domain.CourseHour;
import xyz.playedu.course.mapper.CourseHourMapper; import xyz.playedu.course.mapper.CourseHourMapper;
import xyz.playedu.course.service.CourseHourService; import xyz.playedu.course.service.CourseHourService;

View File

@ -21,16 +21,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import xyz.playedu.course.domain.Course;
import xyz.playedu.course.domain.CourseDepartment;
import xyz.playedu.course.domain.CourseCategory;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.course.mapper.CourseMapper;
import xyz.playedu.course.service.CourseDepartmentService;
import xyz.playedu.course.service.CourseService;
import xyz.playedu.course.service.CourseCategoryService;
import xyz.playedu.common.types.paginate.CoursePaginateFiler; import xyz.playedu.common.types.paginate.CoursePaginateFiler;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.course.domain.Course;
import xyz.playedu.course.domain.CourseCategory;
import xyz.playedu.course.domain.CourseDepartment;
import xyz.playedu.course.mapper.CourseMapper;
import xyz.playedu.course.service.CourseCategoryService;
import xyz.playedu.course.service.CourseDepartmentService;
import xyz.playedu.course.service.CourseService;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -271,8 +271,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
data.forEach( data.forEach(
(courseId, records) -> { (courseId, records) -> {
result.put( result.put(
courseId, courseId, records.stream().map(CourseCategory::getCategoryId).toList());
records.stream().map(CourseCategory::getCategoryId).toList());
}); });
return result; return result;
} }

View File

@ -19,14 +19,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import xyz.playedu.course.domain.UserCourseHourRecord;
import xyz.playedu.course.mapper.UserCourseHourRecordMapper;
import xyz.playedu.course.service.UserCourseHourRecordService;
import xyz.playedu.common.types.mapper.UserCourseHourRecordCourseCountMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordCourseCountMapper;
import xyz.playedu.common.types.mapper.UserCourseHourRecordUserCountMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordUserCountMapper;
import xyz.playedu.common.types.mapper.UserCourseHourRecordUserFirstCreatedAtMapper; import xyz.playedu.common.types.mapper.UserCourseHourRecordUserFirstCreatedAtMapper;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserCourseHourRecordPaginateFilter; import xyz.playedu.common.types.paginate.UserCourseHourRecordPaginateFilter;
import xyz.playedu.course.domain.UserCourseHourRecord;
import xyz.playedu.course.mapper.UserCourseHourRecordMapper;
import xyz.playedu.course.service.UserCourseHourRecordService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -19,11 +19,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter;
import xyz.playedu.course.domain.UserCourseRecord; import xyz.playedu.course.domain.UserCourseRecord;
import xyz.playedu.course.mapper.UserCourseRecordMapper; import xyz.playedu.course.mapper.UserCourseRecordMapper;
import xyz.playedu.course.service.UserCourseRecordService; import xyz.playedu.course.service.UserCourseRecordService;
import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;

View File

@ -19,8 +19,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.common.types.paginate.ResourcePaginateFilter; import xyz.playedu.common.types.paginate.ResourcePaginateFilter;
import xyz.playedu.resource.domain.Resource;
import java.util.List; import java.util.List;

View File

@ -17,10 +17,10 @@ package xyz.playedu.resource.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.common.exception.NotFoundException; import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.ResourcePaginateFilter; import xyz.playedu.common.types.paginate.ResourcePaginateFilter;
import xyz.playedu.resource.domain.Resource;
import java.util.List; import java.util.List;

View File

@ -17,10 +17,10 @@ package xyz.playedu.resource.service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.common.domain.UserUploadImageLog; import xyz.playedu.common.domain.UserUploadImageLog;
import xyz.playedu.common.exception.ServiceException; import xyz.playedu.common.exception.ServiceException;
import xyz.playedu.common.types.UploadFileInfo; import xyz.playedu.common.types.UploadFileInfo;
import xyz.playedu.resource.domain.Resource;
/** /**
* @Author 杭州白书科技有限公司 * @Author 杭州白书科技有限公司

View File

@ -21,16 +21,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.ResourcePaginateFilter;
import xyz.playedu.resource.domain.Resource; import xyz.playedu.resource.domain.Resource;
import xyz.playedu.resource.domain.ResourceCategory; import xyz.playedu.resource.domain.ResourceCategory;
import xyz.playedu.resource.domain.ResourceVideo; import xyz.playedu.resource.domain.ResourceVideo;
import xyz.playedu.common.exception.NotFoundException;
import xyz.playedu.resource.mapper.ResourceMapper; import xyz.playedu.resource.mapper.ResourceMapper;
import xyz.playedu.resource.service.ResourceCategoryService;
import xyz.playedu.resource.service.ResourceService; import xyz.playedu.resource.service.ResourceService;
import xyz.playedu.resource.service.ResourceVideoService; import xyz.playedu.resource.service.ResourceVideoService;
import xyz.playedu.resource.service.ResourceCategoryService;
import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.ResourcePaginateFilter;
import java.util.*; import java.util.*;

View File

@ -24,16 +24,16 @@ import org.springframework.web.multipart.MultipartFile;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.constant.FrontendConstant; import xyz.playedu.common.constant.FrontendConstant;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.common.domain.UserUploadImageLog; import xyz.playedu.common.domain.UserUploadImageLog;
import xyz.playedu.common.exception.ServiceException; import xyz.playedu.common.exception.ServiceException;
import xyz.playedu.common.service.MinioService; import xyz.playedu.common.service.MinioService;
import xyz.playedu.resource.service.ResourceService;
import xyz.playedu.resource.service.UploadService;
import xyz.playedu.common.service.UserUploadImageLogService; import xyz.playedu.common.service.UserUploadImageLogService;
import xyz.playedu.common.types.UploadFileInfo; import xyz.playedu.common.types.UploadFileInfo;
import xyz.playedu.common.util.Base64Util; import xyz.playedu.common.util.Base64Util;
import xyz.playedu.common.util.HelperUtil; import xyz.playedu.common.util.HelperUtil;
import xyz.playedu.resource.domain.Resource;
import xyz.playedu.resource.service.ResourceService;
import xyz.playedu.resource.service.UploadService;
import java.util.Date; import java.util.Date;

View File

@ -17,8 +17,11 @@ package xyz.playedu.system.aspectj;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.AfterThrowing;
@ -27,6 +30,8 @@ import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature; import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.annotation.Log;
import xyz.playedu.common.constant.SystemConstant; import xyz.playedu.common.constant.SystemConstant;
import xyz.playedu.common.domain.AdminLog; import xyz.playedu.common.domain.AdminLog;
import xyz.playedu.common.domain.AdminUser; import xyz.playedu.common.domain.AdminUser;
@ -36,7 +41,6 @@ import xyz.playedu.common.service.BackendAuthService;
import xyz.playedu.common.util.IpUtil; import xyz.playedu.common.util.IpUtil;
import xyz.playedu.common.util.RequestUtil; import xyz.playedu.common.util.RequestUtil;
import xyz.playedu.common.util.StringUtil; import xyz.playedu.common.util.StringUtil;
import xyz.playedu.common.annotation.Log;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Date; import java.util.Date;
@ -54,7 +58,8 @@ public class AdminLogAspect {
@Autowired private AdminLogService adminLogService; @Autowired private AdminLogService adminLogService;
/** 排除敏感属性字段 */ /** 排除敏感属性字段 */
public static final String EXCLUDE_PROPERTIES = "password,oldPassword,newPassword,confirmPassword,token"; public static final String EXCLUDE_PROPERTIES =
"password,oldPassword,newPassword,confirmPassword,token";
/** Controller层切点 注解拦截 */ /** Controller层切点 注解拦截 */
@Pointcut("@annotation(xyz.playedu.common.annotation.Log)") @Pointcut("@annotation(xyz.playedu.common.annotation.Log)")

View File

@ -16,6 +16,7 @@
package xyz.playedu.system.aspectj; package xyz.playedu.system.aspectj;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
@ -23,10 +24,11 @@ import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature; import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.bus.BackendBus;
import xyz.playedu.common.types.JsonResponse;
import xyz.playedu.common.annotation.BackendPermission; import xyz.playedu.common.annotation.BackendPermission;
import xyz.playedu.common.bus.BackendBus;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.types.JsonResponse;
import java.util.HashMap; import java.util.HashMap;
@ -43,8 +45,7 @@ public class BackendPermissionAspect {
@Around("doPointcut()") @Around("doPointcut()")
public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
MethodSignature signature = (MethodSignature) joinPoint.getSignature(); MethodSignature signature = (MethodSignature) joinPoint.getSignature();
BackendPermission middleware = BackendPermission middleware = signature.getMethod().getAnnotation(BackendPermission.class);
signature.getMethod().getAnnotation(BackendPermission.class);
Integer adminUserId = BCtx.getId(); Integer adminUserId = BCtx.getId();
HashMap<String, Boolean> permissions = backendBus.adminUserPermissions(adminUserId); HashMap<String, Boolean> permissions = backendBus.adminUserPermissions(adminUserId);
if (permissions.get(middleware.slug()) == null) { if (permissions.get(middleware.slug()) == null) {

View File

@ -20,9 +20,10 @@ import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature; import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.annotation.Lock;
import xyz.playedu.common.exception.LimitException; import xyz.playedu.common.exception.LimitException;
import xyz.playedu.common.util.RedisDistributedLock; import xyz.playedu.common.util.RedisDistributedLock;
import xyz.playedu.common.annotation.Lock;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;

View File

@ -20,6 +20,7 @@ import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.constant.BPermissionConstant; import xyz.playedu.common.constant.BPermissionConstant;
import xyz.playedu.common.domain.AdminPermission; import xyz.playedu.common.domain.AdminPermission;
import xyz.playedu.common.service.AdminPermissionService; import xyz.playedu.common.service.AdminPermissionService;

View File

@ -20,6 +20,7 @@ import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.domain.AdminRole; import xyz.playedu.common.domain.AdminRole;
import xyz.playedu.common.service.AdminRoleService; import xyz.playedu.common.service.AdminRoleService;

View File

@ -20,6 +20,7 @@ import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.constant.BackendConstant; import xyz.playedu.common.constant.BackendConstant;
import xyz.playedu.common.constant.ConfigConstant; import xyz.playedu.common.constant.ConfigConstant;
import xyz.playedu.common.domain.AppConfig; import xyz.playedu.common.domain.AppConfig;

View File

@ -20,6 +20,7 @@ import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import xyz.playedu.common.domain.AppConfig; import xyz.playedu.common.domain.AppConfig;
import xyz.playedu.common.service.AdminPermissionService; import xyz.playedu.common.service.AdminPermissionService;
import xyz.playedu.common.service.AppConfigService; import xyz.playedu.common.service.AppConfigService;

View File

@ -17,13 +17,16 @@ package xyz.playedu.system.interceptor;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.bus.BackendBus; import xyz.playedu.common.bus.BackendBus;
import xyz.playedu.common.config.PlayEduConfig; import xyz.playedu.common.config.PlayEduConfig;
import xyz.playedu.common.context.BCtx;
import xyz.playedu.common.domain.AdminUser; import xyz.playedu.common.domain.AdminUser;
import xyz.playedu.common.service.AdminUserService; import xyz.playedu.common.service.AdminUserService;
import xyz.playedu.common.service.AppConfigService; import xyz.playedu.common.service.AppConfigService;

View File

@ -17,13 +17,16 @@ package xyz.playedu.system.interceptor;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import xyz.playedu.common.context.FCtx;
import xyz.playedu.common.config.PlayEduConfig; import xyz.playedu.common.config.PlayEduConfig;
import xyz.playedu.common.constant.FrontendConstant; import xyz.playedu.common.constant.FrontendConstant;
import xyz.playedu.common.context.FCtx;
import xyz.playedu.common.domain.User; import xyz.playedu.common.domain.User;
import xyz.playedu.common.service.FrontendAuthService; import xyz.playedu.common.service.FrontendAuthService;
import xyz.playedu.common.service.RateLimiterService; import xyz.playedu.common.service.RateLimiterService;

View File

@ -16,7 +16,9 @@
package xyz.playedu.system.interceptor; package xyz.playedu.system.interceptor;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.CorsRegistry;

18
pom.xml
View File

@ -181,6 +181,24 @@
<encoding>UTF-8</encoding> <encoding>UTF-8</encoding>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>2.36.0</version>
<configuration>
<java>
<googleJavaFormat>
<version>1.16.0</version>
<style>AOSP</style>
<reflowLongStrings>true</reflowLongStrings>
</googleJavaFormat>
<licenseHeader>
<file>license-header.txt</file>
</licenseHeader>
</java>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
</project> </project>