he2802 3 years ago
parent
commit
f4da414701

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/CourseSubjectQueryBo.java

@@ -70,4 +70,7 @@ public class CourseSubjectQueryBo extends BaseEntity {
 	/** 排序 */
 	@ApiModelProperty("排序")
 	private Integer sort;
+
+	@ApiModelProperty("项目id")
+	private Long[] courseSubjectProjects;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/MajorQueryBo.java

@@ -72,4 +72,8 @@ public class MajorQueryBo extends BaseEntity {
 	/** 排序 */
 	@ApiModelProperty("排序")
 	private Integer sort;
+
+	/** 绑定项目id集合 */
+	@ApiModelProperty("绑定项目id集合")
+	private Long[] majorProjects;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseSubjectMapper.java

@@ -23,4 +23,6 @@ public interface CourseSubjectMapper extends BaseMapper<CourseSubject> {
     Collection<CourseSubjectVo> queryList(CourseSubjectQueryBo bo);
 
     List<CourseProjectTypeVo> queryProject(Long id);
+
+    Integer countNum(CourseSubjectQueryBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/MajorMapper.java

@@ -21,4 +21,6 @@ public interface MajorMapper extends BaseMapper<Major> {
     List<CourseProjectTypeVo> selectProject(CourseProjectTypeQueryBo courseProjectTypeQueryBo);
 
     Collection<Major> queryList(MajorQueryBo bo);
+
+    Integer countNum(MajorQueryBo bo);
 }

+ 6 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSubjectServiceImpl.java

@@ -95,9 +95,9 @@ public class CourseSubjectServiceImpl extends ServiceImpl<CourseSubjectMapper, C
         status.add(1);
         status.add(0);
         courseSubjectQueryBo.setStatus(status);
-        Collection<CourseSubjectVo> courseSubjectVos = baseMapper.queryList(courseSubjectQueryBo);
-        if (CollectionUtils.isNotEmpty(courseSubjectVos)){
-            throw new RuntimeException("重复科目名称");
+        courseSubjectQueryBo.setCourseSubjectProjects(bo.getCourseSubjectProjects());
+        if (baseMapper.countNum(courseSubjectQueryBo)>0){
+            throw new RuntimeException("该科目下已存在重复科目名称");
         }
         CourseSubject add = BeanUtil.toBean(bo, CourseSubject.class);
         validEntityBeforeSave(add);
@@ -127,9 +127,9 @@ public class CourseSubjectServiceImpl extends ServiceImpl<CourseSubjectMapper, C
             List<Integer> status = new ArrayList<>();
             status.add(1);
             courseSubjectQuery.setStatus(status);
-            Collection<CourseSubjectVo> courseSubjectVo = baseMapper.queryList(courseSubjectQuery);
-            if (CollectionUtils.isNotEmpty(courseSubjectVo)){
-                throw new RuntimeException("重复科目名称");
+            courseSubjectQueryBo.setCourseSubjectProjects(bo.getCourseSubjectProjects());
+            if (baseMapper.countNum(courseSubjectQueryBo)>0){
+                throw new RuntimeException("该科目下已存在重复科目名称");
             }
         }
         CourseSubject update = BeanUtil.toBean(bo, CourseSubject.class);

+ 11 - 24
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/MajorServiceImpl.java

@@ -103,15 +103,11 @@ public class MajorServiceImpl extends ServiceImpl<MajorMapper, Major> implements
     @Override
     public Boolean insertByAddBo(MajorAddBo bo) {
         //判断新增名字是否重复
-        LambdaQueryWrapper<Major> lqw = Wrappers.lambdaQuery();
-        List<Integer> status = new ArrayList<>();
-        status.add(1);
-        status.add(0);
-        lqw.eq(StrUtil.isNotBlank(bo.getCategoryName()), Major::getCategoryName, bo.getCategoryName());
-        lqw.in( Major::getStatus, status);
-        List<Major> list = this.list(lqw);
-        if (CollectionUtils.isNotEmpty(list)){
-            throw new IllegalArgumentException("专业名称重复");
+        MajorQueryBo queryBo = new MajorQueryBo();
+        queryBo.setMajorProjects(bo.getMajorProjects());
+        queryBo.setCategoryName(bo.getCategoryName());
+        if (baseMapper.countNum(queryBo)>0){
+            throw new IllegalArgumentException("该科目下已存在专业名称重复");
         }
 
         Major add = BeanUtil.toBean(bo, Major.class);
@@ -134,21 +130,12 @@ public class MajorServiceImpl extends ServiceImpl<MajorMapper, Major> implements
     public Boolean updateByEditBo(MajorEditBo bo) {
 
         //修改判断名字是否重复
-        LambdaQueryWrapper<Major> lqwMajor = Wrappers.lambdaQuery();
-        lqwMajor.eq(StrUtil.isNotBlank(bo.getCategoryName()), Major::getCategoryName, bo.getCategoryName());
-        lqwMajor.eq(bo.getId()!= null, Major::getId, bo.getId());
-        List<Major> list = this.list(lqwMajor);
-        if (CollectionUtils.isEmpty(list)){
-            lqwMajor.clear();
-            lqwMajor.eq(StrUtil.isNotBlank(bo.getCategoryName()), Major::getCategoryName, bo.getCategoryName());
-            List<Integer> status = new ArrayList<>();
-            status.add(1);
-            status.add(0);
-            lqwMajor.in(bo.getStatus() != null, Major::getStatus, status);
-            List<Major> list1 = this.list(lqwMajor);
-            if (CollectionUtils.isNotEmpty(list1)){
-                throw new IllegalArgumentException("专业名称重复");
-            }
+        MajorQueryBo queryBo = new MajorQueryBo();
+        queryBo.setMajorProjects(bo.getMajorProjects());
+        queryBo.setCategoryName(bo.getCategoryName());
+        queryBo.setId(bo.getId());
+        if (baseMapper.countNum(queryBo)>0){
+            throw new IllegalArgumentException("该科目下已存在专业名称重复");
         }
 
         Major update = BeanUtil.toBean(bo, Major.class);

+ 20 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseSubjectMapper.xml

@@ -109,4 +109,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
             j.subject_id=#{id}
     </select>
+
+    <select id="countNum" parameterType="com.zhongzheng.modules.course.bo.CourseSubjectQueryBo"  resultType="Integer">
+        SELECT
+        count(*)
+        FROM
+        course_subject cs
+        LEFT JOIN course_subject_project csp ON cs.id = csp.subject_id
+        WHERE
+        cs.`status` != -1 and
+        cs.subject_name = #{subjectName}
+        <if test="courseSubjectProjects != null and courseSubjectProjects.size()!=0 ">
+            AND csp.project_id in
+            <foreach collection="courseSubjectProjects" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="id != null and id!='' ">
+            and cs.id != #{id}
+        </if>
+    </select>
 </mapper>

+ 19 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/MajorMapper.xml

@@ -84,4 +84,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by m.sort
     </select>
 
+    <select id="countNum" parameterType="com.zhongzheng.modules.course.bo.MajorQueryBo"  resultType="Integer">
+        SELECT
+        count(*)
+        FROM
+        major m
+        LEFT JOIN major_project mp ON m.id = mp.major_id
+        WHERE
+        m.`status` != -1 and
+        m.category_name = #{categoryName}
+        <if test="majorProjects != null and majorProjects.size()!=0 ">
+            AND mp.project_id in
+            <foreach collection="majorProjects" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="id != null and id!='' ">
+            and m.id != #{id}
+        </if>
+    </select>
 </mapper>