src/main/java/com/mindskip/xzs/controller/admin/EducationController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/repository/SubjectMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/service/SubjectService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/vo/SubjectVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/DepartmentMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/SubjectMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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(); } 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); } 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); } 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); } 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); } } src/main/java/com/mindskip/xzs/vo/SubjectVO.java
@@ -13,4 +13,10 @@ private String subjectName; /** * 兼容 * */ private String name; } 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> 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">