From 3303fef314b45020d8ea62a908d887060d695b3f Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 03 七月 2024 09:39:32 +0800 Subject: [PATCH] 教学资源增加班级 --- src/main/resources/mapper/EducationResourceMapper.xml | 52 +++++++++++------ src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java | 18 +++++ src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java | 2 src/main/java/com/ycl/jxkg/controller/student/EducationResourceController.java | 28 +++++++++ src/main/java/com/ycl/jxkg/service/EducationResourceService.java | 2 src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 11 ++- src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java | 5 + src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java | 12 ++++ src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java | 2 9 files changed, 106 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/student/EducationResourceController.java b/src/main/java/com/ycl/jxkg/controller/student/EducationResourceController.java new file mode 100644 index 0000000..03af53a --- /dev/null +++ b/src/main/java/com/ycl/jxkg/controller/student/EducationResourceController.java @@ -0,0 +1,28 @@ +package com.ycl.jxkg.controller.student; + +import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO; +import com.ycl.jxkg.service.EducationResourceService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * @author锛歺p + * @date锛�2024/5/16 10:58 + */ +@RestController("StudentEducationResourceController") +@RequiredArgsConstructor +@RequestMapping(value = "/api/student/education/resource") +public class EducationResourceController { + + private final EducationResourceService service; + + @GetMapping("/page") + public Result page(EducationResourceVO query) { + return service.studentPage(query); + } +} diff --git a/src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java b/src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java index 153170b..5585083 100644 --- a/src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java +++ b/src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java @@ -23,12 +23,17 @@ /** 鎵�灞炲绉� */ private Integer subjectId; + /** 鐝骇 */ + private Integer classId; + /** 涓婚绠�浠� */ private String introduction; /** 闄勪欢 */ private String attachment; + private Integer createUser; + private Date createTime; private Date updateTime; diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java index 18f4f6e..12ee9c9 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java +++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java @@ -1,6 +1,7 @@ package com.ycl.jxkg.domain.vo.admin.education; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.models.auth.In; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -34,7 +35,16 @@ @NotNull(message = "璇烽�夋嫨瀛︾") private Integer subjectId; + /** 瀛︾鍚� */ private String typeName; + + /** 鐝骇 */ + @NotNull(message = "璇烽�夋嫨鐝骇") + private Integer classId; + /** 瀛︾敓绔垎椤垫煡璇㈡潯浠� */ + private List<Integer> classIds; + /** 鐝骇鍚� */ + private String className; /** 涓婚 */ @NotBlank(message = "璇疯緭鍏ヤ富棰樼畝浠�") @@ -44,6 +54,8 @@ private List<UploadFile> attachment; private String attachmentString; + private Integer createUser; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; diff --git a/src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java b/src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java index 9882ec6..04bb20c 100644 --- a/src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java +++ b/src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java @@ -23,5 +23,5 @@ List<EducationResourceVO> page(@Param("query") EducationResourceVO query); - List<EducationResourceVO> byType(@Param("query") StudentOnlineVO query); + List<EducationResourceVO> studentPage(@Param("query") EducationResourceVO query); } diff --git a/src/main/java/com/ycl/jxkg/service/EducationResourceService.java b/src/main/java/com/ycl/jxkg/service/EducationResourceService.java index 749d0ac..304f10c 100644 --- a/src/main/java/com/ycl/jxkg/service/EducationResourceService.java +++ b/src/main/java/com/ycl/jxkg/service/EducationResourceService.java @@ -29,7 +29,7 @@ * @param query * @return */ - Result byType(StudentOnlineVO query); + Result studentPage(EducationResourceVO query); /** * 瀛︿範绫诲瀷list diff --git a/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java index 97380a9..374f718 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java @@ -4,10 +4,12 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.context.WebContext; import com.ycl.jxkg.domain.entity.EducationResource; import com.ycl.jxkg.domain.entity.Subject; import com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO; import com.ycl.jxkg.domain.vo.student.education.StudentOnlineVO; +import com.ycl.jxkg.mapper.ClassesUserMapper; import com.ycl.jxkg.mapper.EducationResourceMapper; import com.ycl.jxkg.mapper.SubjectMapper; import com.ycl.jxkg.service.EducationResourceService; @@ -16,6 +18,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; @@ -30,6 +33,8 @@ private final EducationResourceMapper mapper; private final SubjectMapper subjectMapper; + private final WebContext webContext; + private final ClassesUserMapper classesUserMapper; @Override public Result add(EducationResourceVO form) { @@ -41,6 +46,7 @@ } educationResource.setCreateTime(new Date()); educationResource.setUpdateTime(new Date()); + educationResource.setCreateUser(webContext.getCurrentUser().getId()); mapper.add(educationResource); return Result.ok("娣诲姞鎴愬姛"); } @@ -80,9 +86,17 @@ } @Override - public Result byType(StudentOnlineVO query) { + public Result studentPage(EducationResourceVO query) { + Integer id = webContext.getCurrentUser().getId(); + List<Integer> classes = classesUserMapper.getClassesByUserId(id); + if (CollectionUtils.isEmpty(classes)) { + //瀛︾敓娌℃湁鐝骇 + List<EducationResourceVO> list = new ArrayList<>(); + return Result.ok(list).put("total", 0); + } + query.setClassIds(classes); PageInfo<EducationResourceVO> page = PageHelper.startPage(query.getPageNum(), query.getPageSize()).doSelectPageInfo(() -> - mapper.byType(query)); + mapper.studentPage(query)); page.getList().stream().forEach(item -> { item.setContentUrl(JSON.parseObject(item.getContentUrlString(), EducationResourceVO.UploadFile.class)); item.setAttachment(JSON.parseArray(item.getAttachmentString(), EducationResourceVO.UploadFile.class)); diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java index 928969f..3b72bc8 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java @@ -176,6 +176,7 @@ @Override public Result updateExamPaper(ExamPaperForm form) { + //TODO锛氶獙璇佹槸鍚︽槸璇曞嵎鍒涘缓浜� ExamPaper examPaper = ExamPaperForm.getEntityByForm(form, null); examPaper.setScore(new BigDecimal(form.getScore())); //闅忔満璇曞嵎 @@ -198,6 +199,7 @@ @Override public PageInfo<ExamResponseVO> page(ExamPaperPageRequestVO requestVM) { + //TODO: 鏁版嵁鏉冮檺 PageInfo<ExamPaper> page = PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() -> examPaperMapper.page(requestVM)); PageInfo<ExamResponseVO> pageVO = PageInfoHelper.copyMap(page, e -> { diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java index b5cec94..fe1d8e5 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java @@ -2,6 +2,7 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; @@ -470,9 +471,6 @@ // 鐜板湪鍙渶瑕佷繚瀛樺埌涓�寮犱复鏃惰〃 // 璇ユ帴鍙f槸涓诲姩鎻愪氦锛屾墍浠ョ姸鎬侀兘璁剧疆涓哄畬鎴愶紝浠ヤ究鍚庣画鑰佸笀闃呭嵎 saveTempExam(submitData, ExamSubmitTempStatusEnum.finish); - - //TODO:鑰冭瘯鐘舵�佽瀹氫负缁撴潫 - return Result.ok(); } @@ -845,6 +843,13 @@ examPaperScoreMapper.updateById(examPaperScore); } else { examPaperScoreMapper.insert(examPaperScore); + //淇敼鑰冭瘯閲岃瘯鍗风姸鎬佷负宸查槄鍗� + ExamSubmitTemp userExam = new LambdaQueryChainWrapper<>(examSubmitTempMapper) + .eq(ExamSubmitTemp::getExamId, examPaperMark.getExamId()) + .eq(ExamSubmitTemp::getUserId, examPaperMark.getUserId()) + .one(); + userExam.setMarkPaperStatus(ExamSubmitTempStatusEnum.finish); + examSubmitTempMapper.updateById(userExam); } return Result.ok(); } diff --git a/src/main/resources/mapper/EducationResourceMapper.xml b/src/main/resources/mapper/EducationResourceMapper.xml index bd383cc..cb750e2 100644 --- a/src/main/resources/mapper/EducationResourceMapper.xml +++ b/src/main/resources/mapper/EducationResourceMapper.xml @@ -14,43 +14,56 @@ ter.create_time, ter.update_time, ter.attachment as attachmentString, - ts.name as typeName + ts.name as typeName, + ter.class_id, + tc.class_name FROM t_education_resource ter INNER JOIN t_subject ts ON ts.id = ter.subject_id + INNER JOIN t_classes tc ON tc.id = ter.class_id <where> AND ter.deleted = 0 <if test="query.introduction != null and query.introduction != ''"> - AND ter.introduction like concat('%', #{query.subject}, '%') + AND ter.introduction like concat('%', #{query.introduction}, '%') </if> <if test="query.subjectId != null"> - AND ts.id = #{query.subjectId} + AND ter.subject_id = #{query.subjectId} + </if> + <if test="query.classId != null"> + AND ter.class_id = #{query.classId} </if> </where> ORDER BY ter.create_time DESC </select> - <select id="byType" resultType="com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO"> + <select id="studentPage" resultType="com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO"> SELECT - ter.id, - ter.content_type, - ter.content_url as contentUrlString, - ter.subject_id, - ter.introduction, - ter.create_time, - ter.update_time, - ter.attachment as attachmentString + ter.id, + ter.content_type, + ter.content_url as contentUrlString, + ter.subject_id, + ter.introduction, + ter.create_time, + ter.update_time, + ter.attachment as attachmentString, + ts.name as typeName, + ter.class_id, + tc.class_name FROM - t_education_resource ter - INNER JOIN t_subject ts ON ts.id = ter.subject_id + t_education_resource ter + INNER JOIN t_subject ts ON ts.id = ter.subject_id + INNER JOIN t_classes tc ON tc.id = ter.class_id <where> - AND ter.deleted = 0 + AND ter.deleted = 0 and ter.class_id in + <foreach collection="query.classIds" item="classId" separator="," open="(" close=")"> + #{classId} + </foreach> <if test="query.introduction != null and query.introduction != ''"> - AND ter.introduction like concat('%', #{query.subject}, '%') + AND ter.introduction like concat('%', #{query.introduction}, '%') </if> <if test="query.subjectId != null"> - AND ts.id = #{query.subjectId} + AND ter.subject_id = #{query.subjectId} </if> </where> ORDER BY @@ -59,8 +72,8 @@ <insert id="add" keyColumn="id" useGeneratedKeys="true"> INSERT INTO t_education_resource(content_type, content_url, subject_id, introduction, create_time, update_time, - attachment) - value (#{form.contentType}, #{form.contentUrl}, #{form.subjectId}, #{form.introduction}, #{form.createTime}, #{form.updateTime}, #{form.attachment}) + attachment,create_user,class_id) + value (#{form.contentType}, #{form.contentUrl}, #{form.subjectId}, #{form.introduction}, #{form.createTime}, #{form.updateTime}, #{form.attachment},#{form.createUser},#{form.classId}) </insert> <update id="update"> @@ -70,6 +83,7 @@ <if test="form.contentType != null and form.contentType != ''">content_type = #{form.contentType},</if> <if test="form.contentUrl != null and form.contentUrl != ''">content_url = #{form.contentUrl},</if> <if test="form.subjectId != null">subject_id = #{form.subjectId},</if> + <if test="form.classId != null">class_id = #{form.classId},</if> <if test="form.introduction != null and form.introduction != ''">introduction = #{form.introduction},</if> <if test="form.updateTime != null">update_time = #{form.updateTime},</if> attachment = #{form.attachment} -- Gitblit v1.8.0