Forráskód Böngészése

Merge remote-tracking branch 'origin/dev_v2.2.0' into dev_v2.2.0

wangliang 3 éve
szülő
commit
51281ae8af

+ 6 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCampusServiceImpl.java

@@ -78,8 +78,13 @@ public class BasicCampusServiceImpl extends ServiceImpl<BasicCampusMapper, Basic
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean removeBasicCampusById(Long id) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+
         UpdateWrapper<BasicCampus> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().set(BasicCampus::getEnable,false).eq(BasicCampus::getId,id);
+        updateWrapper.lambda().set(BasicCampus::getEnable,false)
+                .set(BasicCampus::getOrgId,sysUser.getId())
+                .set(BasicCampus::getUpdateId,sysUser.getUpdateId())
+                .eq(BasicCampus::getId,id);
         return this.update(updateWrapper);
     }
 }

+ 6 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicStudentServiceImpl.java

@@ -118,8 +118,13 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
         if (idList.size() == 0){
             throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
         }
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         UpdateWrapper<BasicStudent> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().set(BasicStudent::getEnable,false).in(BasicStudent::getId,idList);
+        updateWrapper.lambda()
+                .set(BasicStudent::getEnable,false)
+                .set(BasicStudent::getOrgId,sysUser.getOrgId())
+                .set(BasicStudent::getUpdateId,sysUser.getId())
+                .in(BasicStudent::getId,idList);
         return this.update(updateWrapper);
     }
 }

+ 13 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicCourse.java

@@ -32,6 +32,11 @@ public class BasicCourse extends BaseEntity implements Serializable {
     @TableField("org_id")
     private Long orgId;
 
+    @ApiModelProperty(value = "教研室id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField("teaching_room_id")
+    private Long teachingRoomId;
+
     /**
      * 课程编码
      */
@@ -88,4 +93,12 @@ public class BasicCourse extends BaseEntity implements Serializable {
     public void setEnable(Boolean enable) {
         this.enable = enable;
     }
+
+    public Long getTeachingRoomId() {
+        return teachingRoomId;
+    }
+
+    public void setTeachingRoomId(Long teachingRoomId) {
+        this.teachingRoomId = teachingRoomId;
+    }
 }

+ 12 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicUserCourse.java

@@ -45,6 +45,10 @@ public class BasicUserCourse extends BaseEntity implements Serializable {
     @TableField("course_id")
     private Long courseId;
 
+    @ApiModelProperty(value = "授课班级")
+    @TableField("clazz")
+    private String clazz;
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -80,4 +84,12 @@ public class BasicUserCourse extends BaseEntity implements Serializable {
     public void setCourseId(Long courseId) {
         this.courseId = courseId;
     }
+
+    public String getClazz() {
+        return clazz;
+    }
+
+    public void setClazz(String clazz) {
+        this.clazz = clazz;
+    }
 }

+ 11 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicUserCourseService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.entity.BasicUserCourse;
 import com.qmth.teachcloud.common.entity.SysUser;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户和课程关联表 服务类
@@ -17,4 +19,13 @@ public interface BasicUserCourseService extends IService<BasicUserCourse> {
     void removeByUserId(Long userId);
 
     void saveBatch(SysUser sysUser);
+
+    /**
+     * 根据课程id和班级集合更新'basic_user_course'表
+     * 逻辑:课程id查询出所有该课程相关记录并删除,添加和班级对应关系
+     * @param courseId 课程id
+     * @param clazzList 班级集合
+     * @param sysUser 执行人
+     */
+    void updateByCourseIdAndClazzList(Long courseId, List<String> clazzList,SysUser sysUser);
 }

+ 39 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.common.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -16,6 +17,7 @@ import com.qmth.teachcloud.common.enums.OrgCenterTypeEnum;
 import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import com.qmth.teachcloud.common.mapper.BasicCourseMapper;
 import com.qmth.teachcloud.common.service.BasicCourseService;
+import com.qmth.teachcloud.common.service.BasicUserCourseService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -46,6 +48,8 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     private TeachcloudCommonService teachcloudCommonService;
     @Resource
     private SysOrgService sysOrgService;
+    @Resource
+    private BasicUserCourseService basicUserCourseService;
 
 
 
@@ -146,24 +150,56 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
                 .eq(SysOrg::getType, OrgTypeEnum.TEACHING_ROOM)))){
             throw ExceptionResultEnum.ERROR.exception("所选教研室不存在");
         }
+        // 校验班级
         List<String> clazzList = basicCourseParams.getClazzList();
+        if (clazzList.size() != clazzList.stream().distinct().count()){
+            throw ExceptionResultEnum.ERROR.exception("输入的班级重复");
+        }
 
         //基础数据组装
         BasicCourse basicCourse = new BasicCourse();
-
+        basicCourse.setName(courseName);
+        basicCourse.setCode(courseCode);
+        basicCourse.setTeachingRoomId(teachingRoomId);
+        basicCourse.setSchoolId(schoolId);
 
         if (!SystemConstant.longNotNull(id)){
             // 没有id -》新增
+            id = SystemConstant.getDbUuid();
+            basicCourse.setId(id);
+            basicCourse.setCreateId(sysUser.getId());
+            basicCourse.setEnable(true);
         }else {
             // 有id -》 更新
+            basicCourse.setId(id);
+            basicCourse.setUpdateId(sysUser.getId());
+            basicCourse.setOrgId(sysUser.getOrgId());
         }
 
-        return null;
+        // 根据课程id和授课班级集合更新'basic_user_course'表
+        basicUserCourseService.updateByCourseIdAndClazzList(id,clazzList,sysUser);
+
+        // 新增或更新基础课程表
+        this.saveOrUpdate(basicCourse);
+
+        return id;
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean removeBasicCourseBatch(List<Long> idList) {
-        return null;
+        if (idList.size() == 0){
+            throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
+        }
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+
+        UpdateWrapper<BasicCourse> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda()
+                .set(BasicCourse::getEnable,false)
+                .in(BasicCourse::getId,idList)
+                .set(BasicCourse::getOrgId,sysUser.getOrgId())
+                .set(BasicCourse::getUpdateId,sysUser.getId());
+
+        return this.update(updateWrapper);
     }
 }

+ 56 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicUserCourseServiceImpl.java

@@ -1,15 +1,20 @@
 package com.qmth.teachcloud.common.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicUserCourse;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.mapper.BasicUserCourseMapper;
 import com.qmth.teachcloud.common.service.BasicUserCourseService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -43,4 +48,55 @@ public class BasicUserCourseServiceImpl extends ServiceImpl<BasicUserCourseMappe
         }
         this.saveBatch(list);
     }
+
+    @Transactional
+    @Override
+    public void updateByCourseIdAndClazzList(Long courseId, List<String> clazzList, SysUser sysUser) {
+        List<BasicUserCourse> basicUserCourseList = this.list(new QueryWrapper<BasicUserCourse>().lambda()
+                .eq(BasicUserCourse::getCourseId, courseId));
+
+        // 寻找要删除的目标(1.班级不为空 2.老班级不被新班级集合包含)
+        List<BasicUserCourse> willUpdateList = new ArrayList<>();
+        List<Long> willDeleteIdList = new ArrayList<>();
+        List<String> willAddClazz = new ArrayList<>(clazzList);
+        List<BasicUserCourse> willAddList = new ArrayList<>();
+
+        for (BasicUserCourse old : basicUserCourseList) {
+            String clazz = old.getClazz();
+            Long id = old.getId();
+            if (SystemConstant.strNotNull(clazz)){
+                if (clazzList.contains(clazz)){
+                    // 要更新时间的旧关系
+                    old.setOrgId(sysUser.getOrgId());
+                    old.setUpdateId(sysUser.getUpdateId());
+                    willUpdateList.add(old);
+                    willAddClazz.remove(clazz);
+                }else {
+                    // 要被删除的旧关系
+                    willDeleteIdList.add(id);
+                }
+            }
+        }
+
+        // 删掉全部
+        if (willDeleteIdList.size() > 0) {
+            this.removeByIds(willDeleteIdList);
+        }
+
+        // 更新
+        this.updateBatchById(willUpdateList);
+
+        // 新增
+        for (String addClazz : willAddClazz) {
+            BasicUserCourse basicUserCourse = new BasicUserCourse();
+            basicUserCourse.setId(SystemConstant.getDbUuid());
+            basicUserCourse.setSchoolId(sysUser.getSchoolId());
+            basicUserCourse.setOrgId(sysUser.getOrgId());
+            basicUserCourse.setCourseId(courseId);
+            basicUserCourse.setClazz(addClazz);
+            basicUserCourse.setCreateId(sysUser.getId());
+            willAddList.add(basicUserCourse);
+        }
+        this.saveBatch(willAddList);
+    }
 }