From 32ec64370ad5af7df86d59acdc134e697d936db2 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 23 九月 2024 20:41:11 +0800
Subject: [PATCH] 课目管理
---
src/main/resources/mapper/DepartmentMapper.xml | 22 +++++-
src/main/java/com/mindskip/xzs/service/SubjectService.java | 10 +++
src/main/resources/mapper/SubjectMapper.xml | 17 +++++
src/main/java/com/mindskip/xzs/controller/admin/EducationController.java | 50 +++++++++++++++-
src/main/java/com/mindskip/xzs/repository/SubjectMapper.java | 8 ++
src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java | 9 +++
src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java | 16 +++++
src/main/java/com/mindskip/xzs/vo/SubjectVO.java | 6 ++
8 files changed, 125 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/EducationController.java b/src/main/java/com/mindskip/xzs/controller/admin/EducationController.java
index bd18ee5..3ecde91 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/EducationController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/EducationController.java
@@ -1,6 +1,8 @@
package com.mindskip.xzs.controller.admin;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.base.BaseApiController;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.ExamPaperSubject;
@@ -12,11 +14,14 @@
import com.mindskip.xzs.domain.vo.SubjectDeptVO;
import com.mindskip.xzs.repository.DepartmentMapper;
import com.mindskip.xzs.repository.SubjectDeptMapper;
+import com.mindskip.xzs.repository.SubjectMapper;
import com.mindskip.xzs.service.*;
import com.mindskip.xzs.viewmodel.admin.education.SubjectEditRequestVM;
import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM;
import com.mindskip.xzs.vo.SubjectVO;
import lombok.RequiredArgsConstructor;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -32,6 +37,7 @@
public class EducationController extends BaseApiController {
private final SubjectService subjectService;
+ private final SubjectMapper subjectMapper;
private final SubjectDeptMapper subjectDeptMapper;
private final QuestionSubjectService questionSubjectService;
private final ExamPaperSubjectService examPaperSubjectService;
@@ -52,9 +58,34 @@
return subjectService.add(form);
}
+ @PostMapping("/subject/save")
+ public RestResponse<Object> save(@RequestBody @Validated Subject form) {
+
+ form.setDeleted(Boolean.FALSE);
+ try {
+ subjectMapper.insert(form);
+ } catch (Exception e) {
+ return RestResponse.fail(500, "璇剧洰鍚嶄笉鑳介噸澶�");
+ }
+ return RestResponse.ok();
+ }
+
@PostMapping("/subject/edit")
public RestResponse<Object> edit(@RequestBody @Validated EditSubjectForm form) {
subjectService.edit(form);
+ return RestResponse.ok();
+ }
+
+ @PostMapping("/subject/edit1")
+ @Transactional(rollbackFor = Exception.class)
+ public RestResponse<Object> edit1(@RequestBody Subject form) {
+ form.setDeleted(Boolean.FALSE);
+
+ try {
+ subjectService.updateById(form);
+ } catch (Exception e) {
+ return RestResponse.fail(500, "璇剧洰鍚嶄笉鑳介噸澶�");
+ }
return RestResponse.ok();
}
@@ -62,6 +93,14 @@
public RestResponse<List<Subject>> listByDeptId(@PathVariable("deptId") Integer deptId) {
List<Subject> subjects = subjectService.listByDeptId(deptId);
return RestResponse.ok(subjects);
+ }
+
+ @RequestMapping(value = "/subject/page1", method = RequestMethod.POST)
+ public RestResponse<Object> page(@RequestBody SubjectPageRequestVM model) {
+
+ PageInfo<SubjectVO> page = PageHelper.startPage(model.getPageIndex(), model.getPageSize(), "id desc").doSelectPageInfo(() ->
+ departmentMapper.page1(model));
+ return RestResponse.ok(page);
}
@RequestMapping(value = "/subject/page", method = RequestMethod.POST)
@@ -140,16 +179,17 @@
}
+ @Transactional(rollbackFor = Exception.class)
@RequestMapping(value = "/subject/delete/{id}", method = RequestMethod.POST)
public RestResponse delete(@PathVariable Integer id) {
- Subject subject = subjectService.selectById(id);
- subject.setDeleted(true);
- subjectService.updateByIdFilter(subject);
+ subjectService.deleteById(id);
questionSubjectService.removeSubjectId(id);
Integer[] ids = examPaperSubjectService.getBySubjectId(id)
.stream().map(ExamPaperSubject::getExamPaperId).toArray(Integer[]::new);
- examPaperService.removeByIds(ids);
- examPaperDepartmentService.removeByExamPaperIds(ids);
+ if (ids.length > 0) {
+ examPaperService.removeByIds(ids);
+ examPaperDepartmentService.removeByExamPaperIds(ids);
+ }
examPaperSubjectService.removeBySubjectId(id);
return RestResponse.ok();
}
diff --git a/src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java b/src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java
index ead08a8..4d42187 100644
--- a/src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java
@@ -3,6 +3,8 @@
import com.mindskip.xzs.domain.Department;
import com.mindskip.xzs.domain.vo.CascaderDataVO;
import com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM;
+import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM;
+import com.mindskip.xzs.vo.SubjectVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -63,4 +65,11 @@
* @return
*/
List<CascaderDataVO> getLevelDeptList(@Param("level") Integer level);
+
+ /**
+ * 绠$悊鍒嗛〉
+ *
+ * @return
+ */
+ List<SubjectVO> page1(@Param("query") SubjectPageRequestVM model);
}
diff --git a/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java b/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java
index f9909a7..bd374bd 100644
--- a/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/SubjectMapper.java
@@ -33,4 +33,12 @@
* @return
*/
List<Subject> listByDeptId(@Param("deptId") Integer deptId);
+
+ /**
+ * 鍚嶇О鎼滅储
+ *
+ * @param name
+ * @return
+ */
+ Subject selectByName(@Param("id") Integer id, @Param("name") String name);
}
diff --git a/src/main/java/com/mindskip/xzs/service/SubjectService.java b/src/main/java/com/mindskip/xzs/service/SubjectService.java
index 85753ee..7d29f5d 100644
--- a/src/main/java/com/mindskip/xzs/service/SubjectService.java
+++ b/src/main/java/com/mindskip/xzs/service/SubjectService.java
@@ -44,4 +44,14 @@
* @param form
*/
void edit(EditSubjectForm form);
+
+ /**
+ * 鍚嶇О鏌ユ壘
+ *
+ *
+ * @param id
+ * @param name
+ * @return
+ */
+ Boolean selectByName(Integer id,String name);
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java
index 26791e9..e7c9c58 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java
@@ -21,6 +21,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
@Service
@@ -98,7 +99,7 @@
try {
subjectMapper.insert(subject);
} catch (Exception e) {
- return RestResponse.fail(500, "绉戠洰鍚嶄笉鑳介噸澶�");
+ return RestResponse.fail(500, "璇剧洰鍚嶄笉鑳介噸澶�");
}
SubjectDept subjectDept = new SubjectDept();
@@ -127,4 +128,17 @@
}
}
}
+
+ /**
+ * 妫�鏌ュ悕绉版槸鍚﹀瓨鍦�
+ *
+ * @param id
+ * @param name
+ * @return
+ */
+ @Override
+ public Boolean selectByName(Integer id, String name) {
+ Subject subject = subjectMapper.selectByName(id,name);
+ return Objects.nonNull(subject);
+ }
}
diff --git a/src/main/java/com/mindskip/xzs/vo/SubjectVO.java b/src/main/java/com/mindskip/xzs/vo/SubjectVO.java
index 5b22752..e004ec5 100644
--- a/src/main/java/com/mindskip/xzs/vo/SubjectVO.java
+++ b/src/main/java/com/mindskip/xzs/vo/SubjectVO.java
@@ -13,4 +13,10 @@
private String subjectName;
+ /**
+ * 鍏煎
+ *
+ */
+ private String name;
+
}
diff --git a/src/main/resources/mapper/DepartmentMapper.xml b/src/main/resources/mapper/DepartmentMapper.xml
index a698ca9..6270696 100644
--- a/src/main/resources/mapper/DepartmentMapper.xml
+++ b/src/main/resources/mapper/DepartmentMapper.xml
@@ -145,10 +145,10 @@
<select id="getChilds" resultType="integer">
WITH RECURSIVE temp_table AS (
SELECT
- id, name, parent_id,special,level FROM t_department WHERE id in <foreach collection="deptIds" open="(" item="deptId" close=")" separator=",">#{deptId}</foreach>
+ id, name, parent_id,special,level FROM t_department WHERE id in <foreach collection="deptIds" open="(" item="deptId" close=")" separator=",">#{deptId}</foreach> AND deleted = 0
UNION ALL
SELECT
- so.id, so.name, so.parent_id, so.special, so.level FROM t_department so INNER JOIN temp_table tb ON so.parent_id = tb.id
+ so.id, so.name, so.parent_id, so.special, so.level FROM t_department so INNER JOIN temp_table tb ON so.parent_id = tb.id AND so.deleted = 0
)
SELECT
DISTINCT id
@@ -159,10 +159,10 @@
<select id="getFather" resultType="integer">
WITH RECURSIVE temp_table AS (
SELECT
- id, name, parent_id,special,level FROM t_department WHERE id = #{deptId}
+ id, name, parent_id,special,level FROM t_department WHERE id = #{deptId} AND deleted = 0
UNION ALL
SELECT
- so.id, so.name, so.parent_id, so.special, so.level FROM t_department so INNER JOIN temp_table tb ON so.id = tb.parent_id
+ so.id, so.name, so.parent_id, so.special, so.level FROM t_department so INNER JOIN temp_table tb ON so.id = tb.parent_id AND so.deleted = 0
)
SELECT
DISTINCT id
@@ -171,7 +171,19 @@
</select>
<select id="getLevelDeptList" resultType="com.mindskip.xzs.domain.vo.CascaderDataVO">
- SELECT id as value, name as label, parent_id, special, level FROM t_department WHERE level = #{level}
+ SELECT id as value, name as label, parent_id, special, level FROM t_department WHERE level = #{level} AND deleted = 0
+ </select>
+
+ <select id="page1" resultType="com.mindskip.xzs.vo.SubjectVO">
+ SELECT
+ id, name
+ FROM
+ t_subject
+ WHERE
+ deleted = 0
+ <if test="query.name != null and query.name != ''">
+ AND name like concat('%', #{query.name} , '%')
+ </if>
</select>
</mapper>
diff --git a/src/main/resources/mapper/SubjectMapper.xml b/src/main/resources/mapper/SubjectMapper.xml
index e7d4ac5..7c75ea3 100644
--- a/src/main/resources/mapper/SubjectMapper.xml
+++ b/src/main/resources/mapper/SubjectMapper.xml
@@ -25,9 +25,9 @@
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.mindskip.xzs.domain.Subject" useGeneratedKeys="true" keyProperty="id">
- insert into t_subject (id, name, level,
+ insert into t_subject (name, level,
level_name, item_order, deleted)
- values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{level,jdbcType=INTEGER},
+ values (#{name,jdbcType=VARCHAR}, #{level,jdbcType=INTEGER},
#{levelName,jdbcType=VARCHAR}, #{itemOrder,jdbcType=INTEGER}, #{deleted,jdbcType=BIT})
</insert>
<insert id="insertSelective" parameterType="com.mindskip.xzs.domain.Subject" useGeneratedKeys="true"
@@ -135,6 +135,19 @@
where ts.deleted = 0
</select>
+ <select id="selectByName" resultType="com.mindskip.xzs.domain.Subject">
+ SELECT
+ name
+ FROM
+ t_subject
+ WHERE
+ name = #{name} AND deleted = 0
+ <if test="id != null">
+ AND id != #{id}
+ </if>
+ limit 1
+ </select>
+
<select id="page" resultMap="BaseResultMap"
parameterType="com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM">
--
Gitblit v1.8.0