From 992d94775942cf42cdfe4f075130fd668999a84b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=98=8A?= <948387529@qq.com> Date: Mon, 24 Nov 2025 00:30:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E6=95=99=E6=9D=90=E6=8C=87?= =?UTF-8?q?=E6=B4=BE=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/jc/TextbookController.java | 55 ++++++++++- .../jc/domain/dto/TextbookRequestDTO.java | 92 +++++++++++++++++++ .../service/IBookDepartmentUserService.java | 1 + .../impl/BookDepartmentUserServiceImpl.java | 5 + 4 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 app/api/playedu-course/src/main/java/xyz/playedu/jc/domain/dto/TextbookRequestDTO.java diff --git a/app/api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/jc/TextbookController.java b/app/api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/jc/TextbookController.java index 9788ae0..6c593a3 100644 --- a/app/api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/jc/TextbookController.java +++ b/app/api/playedu-api/src/main/java/xyz/playedu/api/controller/backend/jc/TextbookController.java @@ -1,15 +1,25 @@ package xyz.playedu.api.controller.backend.jc; +import cn.hutool.core.util.ObjectUtil; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import xyz.playedu.common.annotation.Log; import xyz.playedu.common.constant.BusinessTypeConstant; import xyz.playedu.common.types.JsonResponse; import xyz.playedu.common.types.paginate.PaginationResult; +import xyz.playedu.common.util.StringUtil; +import xyz.playedu.course.constants.CourseConstant; +import xyz.playedu.course.domain.CourseDepartmentUser; +import xyz.playedu.jc.domain.BookDepartmentUser; import xyz.playedu.jc.domain.Textbook; +import xyz.playedu.jc.domain.dto.TextbookRequestDTO; +import xyz.playedu.jc.service.IBookDepartmentUserService; import xyz.playedu.jc.service.ITextbookService; import xyz.playedu.knowledge.domain.KnowledgeMessages; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -23,6 +33,9 @@ public class TextbookController { @Autowired private ITextbookService textbookService; + @Autowired + private IBookDepartmentUserService bookDepartmentUserService; + @GetMapping("/index") public JsonResponse index(@RequestParam HashMap params) { @@ -47,9 +60,49 @@ public class TextbookController { return JsonResponse.data(one); } + @PostMapping - public JsonResponse create(@RequestBody Textbook textbook) { + public JsonResponse create(@RequestBody TextbookRequestDTO textbookReq) { +// textbookService.save(textbook); + Textbook textbook = new Textbook(); + BeanUtils.copyProperties(textbook, textbookReq); textbookService.save(textbook); + + Integer textbookId = textbook.getId(); + Integer[] depIds = textbookReq.getDepIds(); + Integer[] userIds = textbookReq.getUserIds(); + Integer[] groupIds = textbookReq.getGroupIds(); + List departmentUserList = new ArrayList<>(); + if (StringUtil.isNotEmpty(depIds)) { + for (Integer depId : depIds) { + BookDepartmentUser bookDepartmentUser = new BookDepartmentUser(); + bookDepartmentUser.setBookId(textbookId); + bookDepartmentUser.setRangeId(depId); + bookDepartmentUser.setType(CourseConstant.COURSE_TYPE_DEP); + departmentUserList.add(bookDepartmentUser); + } + } + if (StringUtil.isNotEmpty(userIds)) { + for (Integer userId : userIds) { + BookDepartmentUser bookDepartmentUser = new BookDepartmentUser(); + bookDepartmentUser.setBookId(textbookId); + bookDepartmentUser.setRangeId(userId); + bookDepartmentUser.setType(CourseConstant.COURSE_TYPE_USER); + departmentUserList.add(bookDepartmentUser); + } + } + if (StringUtil.isNotEmpty(groupIds)) { + for (Integer groupId : groupIds) { + BookDepartmentUser bookDepartmentUser = new BookDepartmentUser(); + bookDepartmentUser.setBookId(textbookId); + bookDepartmentUser.setRangeId(groupId); + bookDepartmentUser.setType(CourseConstant.COURSE_TYPE_GROUP); + departmentUserList.add(bookDepartmentUser); + } + } + bookDepartmentUserService.removeByBookId(textbookId); + bookDepartmentUserService.saveBatch(departmentUserList); + return JsonResponse.success(); } diff --git a/app/api/playedu-course/src/main/java/xyz/playedu/jc/domain/dto/TextbookRequestDTO.java b/app/api/playedu-course/src/main/java/xyz/playedu/jc/domain/dto/TextbookRequestDTO.java new file mode 100644 index 0000000..ba06344 --- /dev/null +++ b/app/api/playedu-course/src/main/java/xyz/playedu/jc/domain/dto/TextbookRequestDTO.java @@ -0,0 +1,92 @@ +package xyz.playedu.jc.domain.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.Date; + +/** + * 教材主表 + * 对应表:jc_textbook + */ +@Data +public class TextbookRequestDTO { + + @TableId(type = IdType.AUTO) + private Integer id; + + /** 教材名称 */ + @TableField("title") + private String title; + + /** 封面地址 */ + @TableField("thumb") + private String thumb; + + /** 简介 */ + @TableField("short_desc") + private String shortDesc; + + /** 学科专业信息 */ + @TableField("major") + private String major; + + /** 作者 */ + @TableField("author") + private String author; + + /** ISBN 或教材编号 */ + @TableField("isbn") + private String isbn; + + /** 章节总数(最小层级总节点数) */ + @TableField("chapter_num") + private String chapterNum; + /** 出版社 */ + @TableField("publish_unit") + private String publishUnit; + + /** 发布时间 */ + @TableField("publish_time") + private Date publishTime; + + /** 创建人 */ + @TableField("creator") + private String creator; + + /** 更新人 */ + @TableField("updater") + private String updater; + + @TableField("create_time") + private Date createTime; + + @TableField("update_time") + private Date updateTime; + + @TableField("tenant_id") + private String tenantId; + + + @JsonProperty("dep_ids") + private Integer[] depIds; + + @JsonProperty("user_ids") + private Integer[] userIds; + + @JsonProperty("group_ids") + private Integer[] groupIds; + + @NotNull(message = "category_ids参数为空") + @JsonProperty("category_ids") + private Integer[] categoryIds; + + @JsonProperty("teacher_ids") + private Integer[] teacherIds; + +} \ No newline at end of file diff --git a/app/api/playedu-course/src/main/java/xyz/playedu/jc/service/IBookDepartmentUserService.java b/app/api/playedu-course/src/main/java/xyz/playedu/jc/service/IBookDepartmentUserService.java index b793077..991b070 100644 --- a/app/api/playedu-course/src/main/java/xyz/playedu/jc/service/IBookDepartmentUserService.java +++ b/app/api/playedu-course/src/main/java/xyz/playedu/jc/service/IBookDepartmentUserService.java @@ -4,4 +4,5 @@ import com.baomidou.mybatisplus.extension.service.IService; import xyz.playedu.jc.domain.BookDepartmentUser; public interface IBookDepartmentUserService extends IService { + void removeByBookId(Integer bookId); } \ No newline at end of file diff --git a/app/api/playedu-course/src/main/java/xyz/playedu/jc/service/impl/BookDepartmentUserServiceImpl.java b/app/api/playedu-course/src/main/java/xyz/playedu/jc/service/impl/BookDepartmentUserServiceImpl.java index cb26278..59da17f 100644 --- a/app/api/playedu-course/src/main/java/xyz/playedu/jc/service/impl/BookDepartmentUserServiceImpl.java +++ b/app/api/playedu-course/src/main/java/xyz/playedu/jc/service/impl/BookDepartmentUserServiceImpl.java @@ -10,4 +10,9 @@ import xyz.playedu.jc.service.IBookDepartmentUserService; public class BookDepartmentUserServiceImpl extends ServiceImpl implements IBookDepartmentUserService { + + @Override + public void removeByBookId(Integer bookId) { + remove(query().getWrapper().eq("book_id", bookId)); + } } \ No newline at end of file