Browse Source

字典管理:数据更新操作时数据权限不变

caozixuan 3 years ago
parent
commit
11954b9a1c

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

@@ -218,7 +218,6 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
             basicStudent.setPhoneNumber(phoneNumber);
             basicStudent.setCampusId(campusId);
             basicStudent.setClazz(clazz);
-            basicStudent.setOrgId(sysUser.getOrgId());
             basicStudent.setSchoolId(schoolId);
 
             // 保存
@@ -227,6 +226,7 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
                 // 获取分布式id
                 id = SystemConstant.getDbUuid();
                 basicStudent.setId(id);
+                basicStudent.setOrgId(sysUser.getOrgId());
                 basicStudent.setCreateId(sysUser.getId());
             } else {
                 // id不为空 -> 更新

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicUserCourseService.java

@@ -26,8 +26,9 @@ public interface BasicUserCourseService extends IService<BasicUserCourse> {
      * @param courseId 课程id
      * @param clazzList 班级集合
      * @param sysUser 执行人
+     * @param orgId 机构权限id
      */
-    void updateByCourseIdAndClazzList(Long courseId, List<String> clazzList,SysUser sysUser);
+    void updateByCourseIdAndClazzList(Long courseId, List<String> clazzList,SysUser sysUser,Long orgId);
 
     List<BasicUserCourse> listBySchoolIdAndCourseCode(Long schoolId, String courseCode);
 }

+ 0 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCampusServiceImpl.java

@@ -69,7 +69,6 @@ public class BasicCampusServiceImpl extends ServiceImpl<BasicCampusMapper, Basic
             UpdateWrapper<BasicCampus> updateWrapper = new UpdateWrapper<>();
             updateWrapper.lambda()
                     .set(BasicCampus::getCampusName,campusName)
-                    .set(BasicCampus::getOrgId,orgId)
                     .set(BasicCampus::getSchoolId,schoolId)
                     .set(BasicCampus::getUpdateId,sysUser.getId())
                     .eq(BasicCampus::getId,campusId);

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

@@ -240,7 +240,7 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
             basicCourse.setCode(courseCode);
             basicCourse.setTeachingRoomId(teachingRoomId);
             basicCourse.setSchoolId(schoolId);
-            basicCourse.setOrgId(sysUser.getOrgId());
+            Long orgId;
 
             if (!SystemConstant.longNotNull(id)){
                 // 没有id -》新增
@@ -248,19 +248,21 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
                 basicCourse.setId(id);
                 basicCourse.setCreateId(sysUser.getId());
                 basicCourse.setEnable(true);
+                orgId = sysUser.getOrgId();
+                basicCourse.setOrgId(orgId);
             }else {
                 // 有id -》 更新
                 BasicCourse old = this.getById(id);
                 if (Objects.isNull(old) || old.getEnable().equals(false)){
                     throw ExceptionResultEnum.ERROR.exception("课程主键不存在或被禁用");
                 }
+                orgId = old.getOrgId();
                 basicCourse.setId(id);
                 basicCourse.setUpdateId(sysUser.getId());
-                basicCourse.setOrgId(sysUser.getOrgId());
             }
 
             // 根据课程id和授课班级集合更新'basic_user_course'表
-            basicUserCourseService.updateByCourseIdAndClazzList(id,clazzList,sysUser);
+            basicUserCourseService.updateByCourseIdAndClazzList(id,clazzList,sysUser,orgId);
 
             basicCourseList.add(basicCourse);
         }

+ 7 - 36
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicUserCourseServiceImpl.java

@@ -51,50 +51,21 @@ public class BasicUserCourseServiceImpl extends ServiceImpl<BasicUserCourseMappe
 
     @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);
+    public void updateByCourseIdAndClazzList(Long courseId, List<String> clazzList, SysUser sysUser, Long orgId) {
         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);
+        // 删除原有的全部
+        this.remove(new QueryWrapper<BasicUserCourse>().lambda().eq(BasicUserCourse::getCourseId,courseId).gt(BasicUserCourse::getId,0));
 
         // 新增
-        for (String addClazz : willAddClazz) {
+        for (String clazz : clazzList) {
             BasicUserCourse basicUserCourse = new BasicUserCourse();
             basicUserCourse.setId(SystemConstant.getDbUuid());
             basicUserCourse.setSchoolId(sysUser.getSchoolId());
-            basicUserCourse.setOrgId(sysUser.getOrgId());
+            basicUserCourse.setOrgId(orgId);
             basicUserCourse.setCourseId(courseId);
-            basicUserCourse.setClazz(addClazz);
-            basicUserCourse.setCreateId(sysUser.getId());
+            basicUserCourse.setClazz(clazz);
+            basicUserCourse.setUpdateId(sysUser.getId());
             willAddList.add(basicUserCourse);
         }
         this.saveBatch(willAddList);