Преглед изворни кода

Merge remote-tracking branch 'origin/dev_v3.3.1' into dev_v3.3.1

wangliang пре 1 година
родитељ
комит
792cb52577

+ 8 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TeachCourseService.java

@@ -186,4 +186,12 @@ public interface TeachCourseService extends IService<TeachCourse> {
      * @param requestUser      登录人
      */
     void assignClazz(AssignClazzParam assignClazzParam, SysUser requestUser);
+
+    /**
+     * 查询教师绑定课程关系
+     *
+     * @param userId 教师id
+     * @return 课程集合
+     */
+    List<DictionaryResult> findTeacherCourseInfo(Long userId);
 }

+ 12 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SsoServiceImpl.java

@@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.boot.tools.signature.SignatureEntity;
 import com.qmth.boot.tools.signature.SignatureType;
+import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.service.SsoService;
+import com.qmth.distributed.print.business.service.TeachCourseService;
 import com.qmth.teachcloud.common.bean.params.OpenParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
@@ -17,7 +19,6 @@ import com.qmth.teachcloud.common.util.JacksonUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -32,8 +33,8 @@ import java.util.*;
 public class SsoServiceImpl implements SsoService {
     private final static Logger log = LoggerFactory.getLogger(SsoServiceImpl.class);
 
-    @Autowired
-    private SysUserService sysUserService;
+    @Resource
+    SysUserService sysUserService;
 
     @Resource
     CommonCacheService commonCacheService;
@@ -47,6 +48,9 @@ public class SsoServiceImpl implements SsoService {
     @Resource
     SysUserRoleService sysUserRoleService;
 
+    @Resource
+    TeachCourseService teachCourseService;
+
     @Override
     public Map<String, Object> markerLoginInfo() {
         try {
@@ -255,10 +259,15 @@ public class SsoServiceImpl implements SsoService {
             stringJoiner = stringJoiner.add(SystemConstant.GET_SYMBOL).add(SystemConstant.PARAMS).add(SystemConstant.GET_EQUAL).add(JacksonUtil.parseJson(openParams));
             map.computeIfAbsent(SystemConstant.PARAMS, v -> JacksonUtil.parseJson(openParams));
         }
+        Long userId = sysUser.getId();
+        List<DictionaryResult> dictionaryResultList = teachCourseService.findTeacherCourseInfo(userId);
+
+
         map.computeIfAbsent("loginName", v -> loginName);
         map.computeIfAbsent("realName", v -> realName);
         map.computeIfAbsent("role", v -> role);
         map.computeIfAbsent("returnUrl", v -> returnUrl);
+        map.computeIfAbsent("course", v -> dictionaryResultList);
         map.put("redirectUrl", stringJoiner.toString());
         return map;
     }

+ 26 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -27,10 +27,7 @@ import com.qmth.teachcloud.common.entity.SysRole;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
-import com.qmth.teachcloud.common.service.BasicCourseService;
-import com.qmth.teachcloud.common.service.SysOrgService;
-import com.qmth.teachcloud.common.service.SysRoleService;
-import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.BeanUtils;
@@ -88,6 +85,9 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
     @Resource
     private TeachStudentService teachStudentService;
 
+    @Resource
+    private SysUserRoleService sysUserRoleService;
+
     @Override
     public IPage<TeachCourseResult> teachCoursePage(Long examId, String courseName, int pageNumber, int pageSize, Long userId) {
         courseName = SystemConstant.translateSpecificSign(courseName);
@@ -581,4 +581,26 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
             teachClazzService.save(teachClazz);
         }
     }
+
+    @Override
+    public List<DictionaryResult> findTeacherCourseInfo(Long userId) {
+        SysUser sysUser = sysUserService.getById(userId);
+        if (Objects.isNull(sysUser)) {
+            throw ExceptionResultEnum.ERROR.exception("用户不存在");
+        }
+        List<SysRole> roleList = sysUserRoleService.listRoleByUserId(userId);
+        if (!roleList.stream().map(SysRole::getType).collect(Collectors.toList())
+                .contains(RoleTypeEnum.SCHOOL_TEACHER)) {
+            throw ExceptionResultEnum.ERROR.exception("该用户不包含学校教师角色");
+        }
+        List<String> courseCodeList = this.list(
+                new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getUserId, userId)).stream().map(TeachCourse::getCourseCode).distinct().collect(Collectors.toList());
+        return courseCodeList.stream().flatMap(e -> {
+            BasicCourse basicCourse = basicCourseService.findByCourseCode(e, sysUser.getSchoolId());
+            DictionaryResult dictionaryResult = new DictionaryResult();
+            dictionaryResult.setCode(basicCourse.getCode());
+            dictionaryResult.setName(basicCourse.getName());
+            return Stream.of(dictionaryResult);
+        }).collect(Collectors.toList());
+    }
 }