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