From 68fefae774d0683333879fd3493f31c5180b4b7e Mon Sep 17 00:00:00 2001 From: liwentao Date: Sun, 10 May 2026 18:26:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=9B=A2=E8=AF=BE=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=BF=81=E7=A7=BB=E8=87=B3gym-GroupCourse?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.mvn/wrapper/maven-wrapper.properties | 3 + gym-manage-api/gym-groupCourse/pom.xml | 81 +++++++++++++++++++ .../converter/GroupCourseConverter.java | 16 ++-- .../groupcourse}/dao/GroupCourseDao.java | 8 +- .../groupcourse}/domain/GroupCourse.java | 12 +-- .../entity/GroupCourseEntity.java | 10 +-- .../handler}/GroupCourseHandler.java | 22 +++-- .../repository/IGroupCourseRepository.java | 5 +- .../impl}/GroupCourseRepository.java | 19 +++-- .../service/IGroupCourseService.java | 5 +- .../service/impl/GroupCourseService.java | 19 ++--- .../src/main/resources/application.yaml | 3 + .../GymGroupCourseApplicationTests.java | 13 +++ gym-manage-api/manage-app/pom.xml | 11 +++ .../gym/manage/app/ManageApplication.java | 4 +- .../gym/manage/app/config/SystemRouter.java | 43 +++++----- .../db/entity/GroupCourseBookingEntity.java | 75 ----------------- gym-manage-api/pom.xml | 1 + 18 files changed, 186 insertions(+), 164 deletions(-) create mode 100644 gym-manage-api/gym-groupCourse/.mvn/wrapper/maven-wrapper.properties create mode 100644 gym-manage-api/gym-groupCourse/pom.xml rename gym-manage-api/{manage-db/src/main/java/cn/novalon/gym/manage/db => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse}/converter/GroupCourseConverter.java (81%) rename gym-manage-api/{manage-db/src/main/java/cn/novalon/gym/manage/db => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse}/dao/GroupCourseDao.java (69%) rename gym-manage-api/{manage-sys/src/main/java/cn/novalon/gym/manage/sys/core => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse}/domain/GroupCourse.java (93%) rename gym-manage-api/{manage-db/src/main/java/cn/novalon/gym/manage/db => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse}/entity/GroupCourseEntity.java (95%) rename gym-manage-api/{manage-sys/src/main/java/cn/novalon/gym/manage/sys/handler/groupCourse => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/handler}/GroupCourseHandler.java (67%) rename gym-manage-api/{manage-sys/src/main/java/cn/novalon/gym/manage/sys/core => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse}/repository/IGroupCourseRepository.java (77%) rename gym-manage-api/{manage-db/src/main/java/cn/novalon/gym/manage/db/repository => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/repository/impl}/GroupCourseRepository.java (77%) rename gym-manage-api/{manage-sys/src/main/java/cn/novalon/gym/manage/sys/core => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse}/service/IGroupCourseService.java (68%) rename gym-manage-api/{manage-sys/src/main/java/cn/novalon/gym/manage/sys/core => gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse}/service/impl/GroupCourseService.java (63%) create mode 100644 gym-manage-api/gym-groupCourse/src/main/resources/application.yaml create mode 100644 gym-manage-api/gym-groupCourse/src/test/java/cn/novalon/gym/manage/groupcourse/GymGroupCourseApplicationTests.java delete mode 100644 gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/entity/GroupCourseBookingEntity.java diff --git a/gym-manage-api/gym-groupCourse/.mvn/wrapper/maven-wrapper.properties b/gym-manage-api/gym-groupCourse/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..5291372 --- /dev/null +++ b/gym-manage-api/gym-groupCourse/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,3 @@ +wrapperVersion=3.3.4 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.15/apache-maven-3.9.15-bin.zip diff --git a/gym-manage-api/gym-groupCourse/pom.xml b/gym-manage-api/gym-groupCourse/pom.xml new file mode 100644 index 0000000..3fc53bb --- /dev/null +++ b/gym-manage-api/gym-groupCourse/pom.xml @@ -0,0 +1,81 @@ + + + 4.0.0 + + cn.novalon.gym.manage + gym-manage-api + 1.0.0 + ../pom.xml + + cn.novalon.gym.manage + gym-groupCourse + 1.0.0 + gym-groupCourse + Group Course Management Module + + + + + + + + + + + + + + + 21 + + + + cn.novalon.gym.manage + manage-common + ${project.version} + + + cn.novalon.gym.manage + manage-db + ${project.version} + + + org.springframework.boot + spring-boot-starter-webflux + + + org.springframework.boot + spring-boot-starter-data-r2dbc + + + org.springframework.boot + spring-boot-starter-validation + + + org.springdoc + springdoc-openapi-starter-webflux-ui + + + org.springframework.boot + spring-boot-starter-test + test + + + io.swagger.core.v3 + swagger-annotations-jakarta + 2.2.43 + compile + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/converter/GroupCourseConverter.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/converter/GroupCourseConverter.java similarity index 81% rename from gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/converter/GroupCourseConverter.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/converter/GroupCourseConverter.java index 87b66ad..34e66c4 100644 --- a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/converter/GroupCourseConverter.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/converter/GroupCourseConverter.java @@ -1,11 +1,9 @@ -package cn.novalon.gym.manage.db.converter;/* - * @author:liwentao - * @date:2026/4/26-04-26-13:18 - */ + +package cn.novalon.gym.manage.groupcourse.converter; import cn.hutool.core.bean.BeanUtil; -import cn.novalon.gym.manage.db.entity.GroupCourseEntity; -import cn.novalon.gym.manage.sys.core.domain.GroupCourse; +import cn.novalon.gym.manage.groupcourse.domain.GroupCourse; +import cn.novalon.gym.manage.groupcourse.entity.GroupCourseEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -44,11 +42,11 @@ public class GroupCourseConverter { .collect(Collectors.toList()); } - public List toEntityList(List groupCourses){ - if (groupCourses == null) { + public List toEntityList(List domains){ + if (domains == null) { return null; } - return groupCourses.stream() + return domains.stream() .map(this::toEntity) .collect(Collectors.toList()); } diff --git a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/dao/GroupCourseDao.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/dao/GroupCourseDao.java similarity index 69% rename from gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/dao/GroupCourseDao.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/dao/GroupCourseDao.java index 0855162..688e2a6 100644 --- a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/dao/GroupCourseDao.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/dao/GroupCourseDao.java @@ -1,7 +1,7 @@ -package cn.novalon.gym.manage.db.dao; -import cn.novalon.gym.manage.db.entity.GroupCourseEntity; -import cn.novalon.gym.manage.db.entity.SysUserEntity; +package cn.novalon.gym.manage.groupcourse.dao; + +import cn.novalon.gym.manage.groupcourse.entity.GroupCourseEntity; import org.springframework.data.domain.Sort; import org.springframework.data.r2dbc.repository.R2dbcRepository; import org.springframework.stereotype.Repository; @@ -9,7 +9,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @Repository -public interface GroupCourseDao extends R2dbcRepository { +public interface GroupCourseDao extends R2dbcRepository { Mono findByIdIsAndDeletedAtIsNull(Long id); diff --git a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/domain/GroupCourse.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/domain/GroupCourse.java similarity index 93% rename from gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/domain/GroupCourse.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/domain/GroupCourse.java index 11b9949..ca40da8 100644 --- a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/domain/GroupCourse.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/domain/GroupCourse.java @@ -1,15 +1,11 @@ -package cn.novalon.gym.manage.sys.core.domain; -/** - * @author:liwentao - * @date:2026/4/26-04-26-13:20 - */ +package cn.novalon.gym.manage.groupcourse.domain; + +import cn.novalon.gym.manage.sys.core.domain.BaseDomain; import io.swagger.v3.oas.annotations.media.Schema; -import org.springframework.data.relational.core.mapping.Column; import java.time.LocalDateTime; -import java.util.Date; -@Schema(description = "") + public class GroupCourse extends BaseDomain{ //课程名称 diff --git a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/entity/GroupCourseEntity.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/entity/GroupCourseEntity.java similarity index 95% rename from gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/entity/GroupCourseEntity.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/entity/GroupCourseEntity.java index 67cc612..9ab5328 100644 --- a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/entity/GroupCourseEntity.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/entity/GroupCourseEntity.java @@ -1,15 +1,11 @@ -package cn.novalon.gym.manage.db.entity; -/** - * @author:liwentao - * @date:2026/4/25-04-25-17:34 - * 团课表 - */ +package cn.novalon.gym.manage.groupcourse.entity; + +import cn.novalon.gym.manage.db.entity.BaseEntity; import org.springframework.data.relational.core.mapping.Column; import org.springframework.data.relational.core.mapping.Table; import java.time.LocalDateTime; -import java.util.Date; @Table("group_course") public class GroupCourseEntity extends BaseEntity { diff --git a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/handler/groupCourse/GroupCourseHandler.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/handler/GroupCourseHandler.java similarity index 67% rename from gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/handler/groupCourse/GroupCourseHandler.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/handler/GroupCourseHandler.java index b439351..920786f 100644 --- a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/handler/groupCourse/GroupCourseHandler.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/handler/GroupCourseHandler.java @@ -1,7 +1,8 @@ -package cn.novalon.gym.manage.sys.handler.groupCourse; -import cn.novalon.gym.manage.sys.core.domain.GroupCourse; -import cn.novalon.gym.manage.sys.core.service.IGroupCourseService; +package cn.novalon.gym.manage.groupcourse.handler; + +import cn.novalon.gym.manage.groupcourse.domain.GroupCourse; +import cn.novalon.gym.manage.groupcourse.service.IGroupCourseService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Validator; @@ -10,31 +11,28 @@ import org.springframework.web.reactive.function.server.ServerRequest; import org.springframework.web.reactive.function.server.ServerResponse; import reactor.core.publisher.Mono; -/** - * @author:liwentao - * @date:2026/4/26-04-26-14:30 - */ @Component @Tag(name="团课管理",description = "团课相关操作") public class GroupCourseHandler { private final IGroupCourseService groupCourseService; private final Validator validator; - public GroupCourseHandler(IGroupCourseService groupCourseService,Validator validator){ + + public GroupCourseHandler(IGroupCourseService groupCourseService, Validator validator){ this.groupCourseService = groupCourseService; this.validator = validator; } - @Operation(summary = "获取所有用户", description = "获取系统中所有用户列表") + @Operation(summary = "获取所有团课", description = "获取系统中所有团课列表") public Mono getAllGroupCourse(ServerRequest request){ boolean includeDeleted = Boolean.valueOf(request.queryParam("includeDeleted").orElse("false")); return ServerResponse.ok() .body(groupCourseService.findAll(includeDeleted), GroupCourse.class); } + @Operation(summary = "根据ID获取团课", description = "根据ID获取团课详情") public Mono getGroupCourseById(ServerRequest request){ Long id = Long.valueOf(request.pathVariable("id")); - return groupCourseService.findById(id) - .flatMap(groupCourse -> ServerResponse.ok().bodyValue(groupCourse)) - .switchIfEmpty(ServerResponse.notFound().build()); + return ServerResponse.ok() + .body(groupCourseService.findById(id), GroupCourse.class); } } diff --git a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/repository/IGroupCourseRepository.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/repository/IGroupCourseRepository.java similarity index 77% rename from gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/repository/IGroupCourseRepository.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/repository/IGroupCourseRepository.java index 2d020d4..4ade673 100644 --- a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/repository/IGroupCourseRepository.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/repository/IGroupCourseRepository.java @@ -1,6 +1,7 @@ -package cn.novalon.gym.manage.sys.core.repository; -import cn.novalon.gym.manage.sys.core.domain.GroupCourse; +package cn.novalon.gym.manage.groupcourse.repository; + +import cn.novalon.gym.manage.groupcourse.domain.GroupCourse; import org.springframework.data.domain.Sort; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; diff --git a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/repository/GroupCourseRepository.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/repository/impl/GroupCourseRepository.java similarity index 77% rename from gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/repository/GroupCourseRepository.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/repository/impl/GroupCourseRepository.java index d4846b9..5c11325 100644 --- a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/repository/GroupCourseRepository.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/repository/impl/GroupCourseRepository.java @@ -1,26 +1,23 @@ -package cn.novalon.gym.manage.db.repository; -import cn.novalon.gym.manage.db.converter.GroupCourseConverter; -import cn.novalon.gym.manage.db.dao.GroupCourseDao; -import cn.novalon.gym.manage.sys.core.domain.GroupCourse; -import cn.novalon.gym.manage.sys.core.repository.IGroupCourseRepository; +package cn.novalon.gym.manage.groupcourse.repository.impl; + +import cn.novalon.gym.manage.groupcourse.converter.GroupCourseConverter; +import cn.novalon.gym.manage.groupcourse.dao.GroupCourseDao; +import cn.novalon.gym.manage.groupcourse.domain.GroupCourse; +import cn.novalon.gym.manage.groupcourse.repository.IGroupCourseRepository; import org.springframework.data.domain.Sort; import org.springframework.data.r2dbc.core.R2dbcEntityTemplate; import org.springframework.stereotype.Repository; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -/** - * @author:liwentao - * @date:2026/4/26-04-26-14:16 - */ @Repository public class GroupCourseRepository implements IGroupCourseRepository { private final GroupCourseDao groupCourseDao; private final GroupCourseConverter groupCourseConverter; private final R2dbcEntityTemplate r2dbcEntityTemplate; - public GroupCourseRepository(GroupCourseDao groupCourseDao,GroupCourseConverter groupCourseConverter, + public GroupCourseRepository(GroupCourseDao groupCourseDao, GroupCourseConverter groupCourseConverter, R2dbcEntityTemplate r2dbcEntityTemplate){ this.groupCourseDao = groupCourseDao; this.groupCourseConverter = groupCourseConverter; @@ -39,6 +36,7 @@ public class GroupCourseRepository implements IGroupCourseRepository { .map(groupCourseConverter::toDomain); } + @Override public Flux findAll(Sort sort) { return groupCourseDao.findAll(sort) .map(groupCourseConverter::toDomain); @@ -50,6 +48,7 @@ public class GroupCourseRepository implements IGroupCourseRepository { .map(groupCourseConverter::toDomain); } + @Override public Flux findByDeletedAtIsNull(Sort sort) { return groupCourseDao.findAllByDeletedAtIsNull(sort) .map(groupCourseConverter::toDomain); diff --git a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/service/IGroupCourseService.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/IGroupCourseService.java similarity index 68% rename from gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/service/IGroupCourseService.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/IGroupCourseService.java index 28efd2e..d43b396 100644 --- a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/service/IGroupCourseService.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/IGroupCourseService.java @@ -1,6 +1,7 @@ -package cn.novalon.gym.manage.sys.core.service; -import cn.novalon.gym.manage.sys.core.domain.GroupCourse; +package cn.novalon.gym.manage.groupcourse.service; + +import cn.novalon.gym.manage.groupcourse.domain.GroupCourse; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; diff --git a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/service/impl/GroupCourseService.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/impl/GroupCourseService.java similarity index 63% rename from gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/service/impl/GroupCourseService.java rename to gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/impl/GroupCourseService.java index 2b1fcbf..6e409e3 100644 --- a/gym-manage-api/manage-sys/src/main/java/cn/novalon/gym/manage/sys/core/service/impl/GroupCourseService.java +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/impl/GroupCourseService.java @@ -1,24 +1,19 @@ -package cn.novalon.gym.manage.sys.core.service.impl; -import cn.novalon.gym.manage.sys.audit.service.IAuditLogService; -import cn.novalon.gym.manage.sys.core.domain.GroupCourse; -import cn.novalon.gym.manage.sys.core.repository.IGroupCourseRepository; -import cn.novalon.gym.manage.sys.core.service.IGroupCourseService; +package cn.novalon.gym.manage.groupcourse.service.impl; + +import cn.novalon.gym.manage.groupcourse.domain.GroupCourse; +import cn.novalon.gym.manage.groupcourse.repository.IGroupCourseRepository; +import cn.novalon.gym.manage.groupcourse.service.IGroupCourseService; import org.springframework.stereotype.Service; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -/** - * @author:liwentao - * @date:2026/4/26-04-26-14:12 - */ @Service public class GroupCourseService implements IGroupCourseService { private final IGroupCourseRepository groupCourseRepository; - private final IAuditLogService auditLogService; - public GroupCourseService(IGroupCourseRepository groupCourseRepository, IAuditLogService auditLogService){ + + public GroupCourseService(IGroupCourseRepository groupCourseRepository){ this.groupCourseRepository = groupCourseRepository; - this.auditLogService = auditLogService; } @Override diff --git a/gym-manage-api/gym-groupCourse/src/main/resources/application.yaml b/gym-manage-api/gym-groupCourse/src/main/resources/application.yaml new file mode 100644 index 0000000..2d60330 --- /dev/null +++ b/gym-manage-api/gym-groupCourse/src/main/resources/application.yaml @@ -0,0 +1,3 @@ +spring: + application: + name: gym-groupCourse diff --git a/gym-manage-api/gym-groupCourse/src/test/java/cn/novalon/gym/manage/groupcourse/GymGroupCourseApplicationTests.java b/gym-manage-api/gym-groupCourse/src/test/java/cn/novalon/gym/manage/groupcourse/GymGroupCourseApplicationTests.java new file mode 100644 index 0000000..b0d48f8 --- /dev/null +++ b/gym-manage-api/gym-groupCourse/src/test/java/cn/novalon/gym/manage/groupcourse/GymGroupCourseApplicationTests.java @@ -0,0 +1,13 @@ +package cn.novalon.gym.manage.groupcourse; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class GymGroupCourseApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/gym-manage-api/manage-app/pom.xml b/gym-manage-api/manage-app/pom.xml index 45fcc60..0d33560 100644 --- a/gym-manage-api/manage-app/pom.xml +++ b/gym-manage-api/manage-app/pom.xml @@ -18,6 +18,11 @@ Application module for Novalon Manage API + + cn.novalon.gym.manage + gym-groupCourse + ${project.version} + cn.novalon.gym.manage manage-sys @@ -133,6 +138,12 @@ org.springdoc springdoc-openapi-starter-webflux-ui + + cn.novalon.gym.manage + gym-groupCourse + 1.0.0 + compile + diff --git a/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/ManageApplication.java b/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/ManageApplication.java index f74c2f7..aa3c01f 100644 --- a/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/ManageApplication.java +++ b/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/ManageApplication.java @@ -15,10 +15,10 @@ import org.springframework.web.server.WebFilter; import java.util.List; -@SpringBootApplication(scanBasePackages = "cn.novalon.gym.manage", exclude = { +@SpringBootApplication(scanBasePackages = {"cn.novalon.gym.manage", "cn.novalon.gym.manage.groupcourse"}, exclude = { ReactiveUserDetailsServiceAutoConfiguration.class }) @EnableR2dbcRepositories(basePackages = { "cn.novalon.gym.manage.db.dao", - "cn.novalon.gym.manage.sys.audit.repository" }) + "cn.novalon.gym.manage.sys.audit.repository", "cn.novalon.gym.manage.groupcourse.dao" }) public class ManageApplication { private static final Logger logger = LoggerFactory.getLogger(ManageApplication.class); diff --git a/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/config/SystemRouter.java b/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/config/SystemRouter.java index 98c3859..185540b 100644 --- a/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/config/SystemRouter.java +++ b/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/config/SystemRouter.java @@ -1,11 +1,12 @@ package cn.novalon.gym.manage.app.config; +import cn.novalon.gym.manage.groupcourse.handler.GroupCourseHandler; import cn.novalon.gym.manage.sys.handler.auth.SysAuthHandler; import cn.novalon.gym.manage.sys.handler.auth.PasswordDiagnosticHandler; import cn.novalon.gym.manage.sys.handler.config.SysConfigHandler; import cn.novalon.gym.manage.sys.handler.dictionary.DictionaryHandler; import cn.novalon.gym.manage.sys.handler.dict.SysDictHandler; -import cn.novalon.gym.manage.sys.handler.groupCourse.GroupCourseHandler; + import cn.novalon.gym.manage.sys.handler.log.SysLogHandler; import cn.novalon.gym.manage.sys.handler.log.OperationLogHandler; import cn.novalon.gym.manage.sys.handler.menu.MenuHandler; @@ -25,19 +26,19 @@ import static org.springframework.web.reactive.function.server.RouterFunctions.r /** * 系统路由配置类 - * + * * 文件定义:配置WebFlux函数式路由,将HTTP请求映射到对应的Handler方法 * 涉及业务:用户、角色、字典、菜单、公告、文件等所有RESTful API路由 * 算法:使用RouterFunctions.route()构建函数式路由规则 - * + * * @author 张翔 * @date 2026-03-13 */ @Configuration public class SystemRouter { - @Bean public RouterFunction systemRoutes( + GroupCourseHandler groupCourseHandler, DictionaryHandler dictionaryHandler, SysUserHandler userHandler, MenuHandler menuHandler, @@ -52,13 +53,12 @@ public class SystemRouter { SysUserMessageHandler messageHandler, SysFileHandler fileHandler, SysPermissionHandler permissionHandler, - PasswordDiagnosticHandler passwordDiagnosticHandler, - GroupCourseHandler groupCourseHandler) { - + PasswordDiagnosticHandler passwordDiagnosticHandler) { + return route() // ========== 诊断路由 ========== .GET("/api/diagnostic/password", passwordDiagnosticHandler::diagnose) - + // ========== 字典路由 ========== .GET("/api/dictionaries", dictionaryHandler::getAllDictionaries) .GET("/api/dictionaries/{id}", dictionaryHandler::getDictionaryById) @@ -67,7 +67,7 @@ public class SystemRouter { .POST("/api/dictionaries", dictionaryHandler::createDictionary) .PUT("/api/dictionaries/{id}", dictionaryHandler::updateDictionary) .DELETE("/api/dictionaries/{id}", dictionaryHandler::deleteDictionary) - + // ========== 用户路由 ========== .GET("/api/users", userHandler::getAllUsers) .GET("/api/users/page", userHandler::getUsersByPage) @@ -86,7 +86,7 @@ public class SystemRouter { .POST("/api/users/{id}/action/restore", userHandler::restoreUser) .GET("/api/users/{id}/roles", userHandler::getUserRoles) .POST("/api/users/{id}/roles", userHandler::assignRoles) - + // ========== 菜单路由 ========== .GET("/api/menus", menuHandler::getAllMenus) .GET("/api/menus/tree", menuHandler::getMenuTree) @@ -94,7 +94,7 @@ public class SystemRouter { .POST("/api/menus", menuHandler::createMenu) .PUT("/api/menus/{id}", menuHandler::updateMenu) .DELETE("/api/menus/{id}", menuHandler::deleteMenu) - + // ========== 角色路由 ========== .GET("/api/roles", roleHandler::getAllRoles) .GET("/api/roles/page", roleHandler::getRolesByPage) @@ -108,7 +108,7 @@ public class SystemRouter { .POST("/api/roles/{id}/restore", roleHandler::restoreRole) .GET("/api/roles/{id}/permissions", permissionHandler::getPermissionsByRoleId) .POST("/api/roles/{id}/permissions", permissionHandler::assignPermissionsToRole) - + // ========== 配置路由 ========== .GET("/api/config", configHandler::getAllConfigs) .GET("/api/config/{id}", configHandler::getConfigById) @@ -116,7 +116,7 @@ public class SystemRouter { .POST("/api/config", configHandler::createConfig) .PUT("/api/config/{id}", configHandler::updateConfig) .DELETE("/api/config/{id}", configHandler::deleteConfig) - + // ========== 日志路由 ========== .GET("/api/logs/login", logHandler::getAllLoginLogs) .GET("/api/logs/login/page", logHandler::getLoginLogsByPage) @@ -136,15 +136,15 @@ public class SystemRouter { .GET("/api/logs/operation/count", operationLogHandler::getOperationLogCount) .GET("/api/logs/operation/{id}", operationLogHandler::getOperationLogById) .POST("/api/logs/operation", operationLogHandler::createOperationLog) - + // ========== 认证路由 ========== .POST("/api/auth/login", authHandler::login) .POST("/api/auth/register", authHandler::register) .POST("/api/auth/logout", authHandler::logout) - + // ========== 统计路由 ========== .GET("/api/stats/overview", statsHandler::getOverview) - + // ========== 数据字典路由 ========== .GET("/api/dict/types", dictHandler::getAllDictTypes) .GET("/api/dict/types/{id}", dictHandler::getDictTypeById) @@ -158,7 +158,7 @@ public class SystemRouter { .POST("/api/dict/data", dictHandler::createDictData) .PUT("/api/dict/data/{id}", dictHandler::updateDictData) .DELETE("/api/dict/data/{id}", dictHandler::deleteDictData) - + // ========== 公告路由 ========== .GET("/api/notices", noticeHandler::getAllNotices) .GET("/api/notices/{id}", noticeHandler::getNoticeById) @@ -166,7 +166,7 @@ public class SystemRouter { .POST("/api/notices", noticeHandler::createNotice) .PUT("/api/notices/{id}", noticeHandler::updateNotice) .DELETE("/api/notices/{id}", noticeHandler::deleteNotice) - + // ========== 消息路由 ========== .GET("/api/messages/user/{userId}", messageHandler::getMessagesByUser) .GET("/api/messages/user/{userId}/unread", messageHandler::getUnreadCount) @@ -174,7 +174,7 @@ public class SystemRouter { .POST("/api/messages", messageHandler::createMessage) .PUT("/api/messages/{id}/read", messageHandler::markAsRead) .DELETE("/api/messages/{id}", messageHandler::deleteMessage) - + // ========== 文件路由 ========== .GET("/api/files", fileHandler::getAllFiles) .GET("/api/files/{id}", fileHandler::getFileById) @@ -184,7 +184,7 @@ public class SystemRouter { .GET("/api/files/{id}/preview", fileHandler::previewFile) .GET("/api/files/preview/{fileName}", fileHandler::previewFileByName) .DELETE("/api/files/{id}", fileHandler::deleteFile) - + // ========== 权限路由 ========== .GET("/api/permissions", permissionHandler::getAllPermissions) .GET("/api/permissions/{id}", permissionHandler::getPermissionById) @@ -197,7 +197,8 @@ public class SystemRouter { // ========== 团课路由 ========== .GET("/api/groupCourse", groupCourseHandler::getAllGroupCourse) - + .GET("/api/groupCourse/{id}", groupCourseHandler::getGroupCourseById) + .build(); } } diff --git a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/entity/GroupCourseBookingEntity.java b/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/entity/GroupCourseBookingEntity.java deleted file mode 100644 index f414735..0000000 --- a/gym-manage-api/manage-db/src/main/java/cn/novalon/gym/manage/db/entity/GroupCourseBookingEntity.java +++ /dev/null @@ -1,75 +0,0 @@ -package cn.novalon.gym.manage.db.entity; - -import org.springframework.data.relational.core.mapping.Column; -import org.springframework.data.relational.core.mapping.Table; - -import java.util.Date; - -/** - * @author:liwentao - * @date:2026/4/25-04-25-17:50 - * 团课预约记录表 - */ - -@Table("group_course_booking") -public class GroupCourseBookingEntity extends BaseEntity { - - //团课id - @Column("course_id") - private Long courseId; - - //用户id - @Column("user_id") - private Long userId; - - //预约时间 - @Column("booking_time") - private Date bookingTime; - - //状态:0-已预约,1-已取消,2-已出席,3-缺席 - @Column("status") - private Long status; - //取消时间 - @Column("cancel_time") - private Date cancelTime; - - public Long getCourseId() { - return courseId; - } - - public void setCourseId(Long courseId) { - this.courseId = courseId; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public Date getBookingTime() { - return bookingTime; - } - - public void setBookingTime(Date bookingTime) { - this.bookingTime = bookingTime; - } - - public Long getStatus() { - return status; - } - - public void setStatus(Long status) { - this.status = status; - } - - public Date getCancelTime() { - return cancelTime; - } - - public void setCancelTime(Date cancelTime) { - this.cancelTime = cancelTime; - } -} diff --git a/gym-manage-api/pom.xml b/gym-manage-api/pom.xml index aec5848..ff13cbc 100644 --- a/gym-manage-api/pom.xml +++ b/gym-manage-api/pom.xml @@ -42,6 +42,7 @@ manage-audit manage-notify manage-file + gym-groupCourse