浏览代码

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

wangliang 3 年之前
父节点
当前提交
49f3088f7e

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

@@ -47,9 +47,10 @@ public interface SysUserService extends IService<SysUser> {
      * 根据外键查找教师信息
      * @param schoolId 学校id
      * @param teacherName 教师名称
+     * @param teacherCode 教师编号
      * @return 学院数据
      */
-    SysUser findByForeignKey(Long schoolId, String teacherName);
+    SysUser findByForeignKey(Long schoolId, String teacherName,String teacherCode);
 
     /**
      * 临时-不鉴权保存用户 (默认创建用户角色为该学校管理员)

+ 13 - 11
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -242,13 +242,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public SysUser findByForeignKey(Long schoolId, String teacherName) {
+    public SysUser findByForeignKey(Long schoolId, String teacherName, String teacherCode) {
         List<SysUser> tbSchoolTeacherList = this.list(new QueryWrapper<SysUser>().lambda()
-                .eq(SysUser::getSchoolId,schoolId)
-                .eq(SysUser::getRealName,teacherName));
-        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType,RoleTypeEnum.TEACHER));
+                .eq(SysUser::getSchoolId, schoolId)
+                .eq(SysUser::getRealName, teacherName)
+                .eq(SysUser::getLoginName,teacherCode));
+        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType, RoleTypeEnum.TEACHER));
 //        tbSchoolTeacherList = tbSchoolTeacherList.stream().filter(e -> Arrays.asList(e.getRoleIds()).contains(sysRole.getId())).collect(Collectors.toList());
-        if (tbSchoolTeacherList.size() != 1){
+        if (tbSchoolTeacherList.size() != 1) {
             throw ExceptionResultEnum.ERROR.exception("教师基础数据信息异常");
         }
         return tbSchoolTeacherList.get(0);
@@ -264,7 +265,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         boolean isSuccess = true;
         try {
             Long schoolId = Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild()) ? Long.valueOf(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString()) : null;
-            if (schoolId == null){
+            if (schoolId == null) {
                 schoolId = userSaveParams.getSchoolId();
             }
             SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
@@ -315,7 +316,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     commonService.removeUserInfo(sysUser.getId());
                 }
                 //如果修改了机构或手机号,需更新用户缓存
-                if (Objects.nonNull(dbUser.getOrgId())){
+                if (Objects.nonNull(dbUser.getOrgId())) {
                     if (containsQuestionTeacher || dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
                             || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber())) {
                         cacheService.updateUserCache(sysUser.getId());
@@ -355,6 +356,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     /**
      * 临时保存用户不鉴权
+     *
      * @param userSaveParams 用户参数
      * @return 结果
      */
@@ -362,11 +364,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         boolean isSuccess = true;
         try {
             Long schoolId = Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild()) ? Long.valueOf(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString()) : null;
-            if (schoolId == null){
+            if (schoolId == null) {
                 schoolId = userSaveParams.getSchoolId();
             }
-            List<SysUser> requestUserList = this.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId,schoolId).like(SysUser::getLoginName,"admin"));
-            if (requestUserList.size() == 0){
+            List<SysUser> requestUserList = this.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).like(SysUser::getLoginName, "admin"));
+            if (requestUserList.size() == 0) {
                 throw ExceptionResultEnum.ERROR.exception("该学校没有内置的学校管理员");
             }
             SysUser requestUser = requestUserList.get(0);
@@ -417,7 +419,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     commonService.removeUserInfo(sysUser.getId());
                 }
                 //如果修改了机构或手机号,需更新用户缓存
-                if (Objects.nonNull(dbUser.getOrgId())){
+                if (Objects.nonNull(dbUser.getOrgId())) {
                     if (containsQuestionTeacher || dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
                             || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber())) {
                         cacheService.updateUserCache(sysUser.getId());

+ 2 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -509,7 +509,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
             for (String dimensionCode : knowledgeDimensionSort) {
                 String dimensionName;
                 List<String> nameTwoList = dimensionDataSource.stream()
-                        .filter(e -> dimensionCode.equals(e.getCodeSecond()))
+                        .filter(e -> dimensionCode.equals(e.getCodeSecond()) && "知识".equals(e.getDimensionType()))
                         .map(TBDimension::getNameSecond).collect(Collectors.toList());
                 if (nameTwoList.size() < 1) {
                     List<String> tmpList = dimensionDataSource.stream()
@@ -533,7 +533,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
                         .map(TBDimension::getNameSecond).collect(Collectors.toList());
                 if (nameTwoList.size() < 1) {
                     List<String> tmpList = dimensionDataSource.stream()
-                            .filter(e -> dimensionCode.equals(e.getCodePrimary()))
+                            .filter(e -> dimensionCode.equals(e.getCodePrimary()) && "能力".equals(e.getDimensionType()))
                             .map(TBDimension::getNamePrimary).collect(Collectors.toList());
                     if (tmpList.size() == 0) {
                         continue;

+ 9 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/BasicDatasourceController.java

@@ -526,6 +526,8 @@ public class BasicDatasourceController {
                     return Stream.of(map);
                 }).distinct().collect(Collectors.toList());
 
+        Map<String,String> teacherUserMap = new HashMap<>();
+
         for (Map<String, String> teacherPackage : teacherList) {
 
             String teacherInfo = teacherPackage.get("teacherInfo");
@@ -590,6 +592,9 @@ public class BasicDatasourceController {
                 }
                 orgId = sysOrgList.get(0).getId();
             }
+            if (!teacherUserMap.containsKey(teacherName)){
+                teacherUserMap.put(teacherName,teacherCode);
+            }
 
             TBSchoolTeacherDto tbSchoolTeacherDto = new TBSchoolTeacherDto();
             tbSchoolTeacherDto.setSchoolId(schoolId);
@@ -635,6 +640,9 @@ public class BasicDatasourceController {
             Map<String, String> teacherMap = this.disposeTeacherInfo(teacher);
             String teacherName = teacherMap.get("teacherName");
             String teacherCode = teacherMap.get("teacherCode");
+            if (!SystemConstant.strNotNull(teacherCode)){
+                teacherCode = teacherUserMap.get(teacherName);
+            }
             // 缺考状态 2 -> 缺考 ; 3 -> 违纪
             int status = (int) map.get(ExamCloudDataEnum.STATUS.getName()); //学生考试状态
             String totalScore = String.valueOf(map.get(ExamCloudDataEnum.TOTAL_SCORE.getName())); //考生总分
@@ -695,7 +703,7 @@ public class BasicDatasourceController {
                 // 获取关联的基础表主键
                 SysOrg tbSchoolCollege = sysOrgService.findByForeignKey(schoolId, college, college);
                 TBSchoolClazz tbSchoolClazz = tbSchoolClazzService.findByForeignKey(schoolId, className, className);
-                SysUser tbSchoolTeacher = sysUserService.findByForeignKey(schoolId, teacherName);
+                SysUser tbSchoolTeacher = sysUserService.findByForeignKey(schoolId, teacherName,teacherCode);
 
                 TBExamStudent tbExamStudent = new TBExamStudent();
                 Long examStudentId = SystemConstant.getDbUuid();

+ 137 - 0
teachcloud-report/src/main/resources/application-demo.properties

@@ -0,0 +1,137 @@
+server.port=8810
+#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
+server.tomcat.threads.max=2500
+#tomcat\u6700\u5927\u8FDE\u63A5\u6570
+server.tomcat.max-connections=2500
+#tomcat\u7684URI\u7F16\u7801
+server.tomcat.uri-encoding=UTF-8
+
+#\u9879\u76EE\u540D\u79F0
+spring.application.name=teachcloud-report-demo
+
+#\u6570\u636E\u6E90\u914D\u7F6E
+db.host=192.168.10.83
+db.port=3307
+db.name=teachcloud_report_demo
+db.username=teachcloud_report_test
+db.password=teachcloud_report_test
+
+#redis\u6570\u636E\u6E90\u914D\u7F6E
+com.qmth.redis.host=${db.host}
+com.qmth.redis.db=14
+com.qmth.redis.port=6379
+com.qmth.redis.password=123456
+
+#mysql\u914D\u7F6E
+com.qmth.mysql.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
+com.qmth.mysql.username=${db.username}
+com.qmth.mysql.password=${db.password}
+com.qmth.mysql.min-idle=40
+com.qmth.mysql.max-pool-size=200
+com.qmth.mysql.log-level=debug
+
+#\u963F\u91CC\u4E91OSS\u914D\u7F6E
+aliyun.oss.name=oss-cn-shenzhen.aliyuncs.com
+aliyun.oss.endpoint=http://${aliyun.oss.name}
+aliyun.oss.accessKeyId=LTAI4Fi8jVRYT49QBXU9x5QX
+aliyun.oss.accessKeySecret=97aBLBfkQR5mzCiQa82yWLAH57eUd8
+aliyun.oss.bucket=teachcloud-test
+aliyun.oss.url=http://${aliyun.oss.bucket}.${aliyun.oss.name}
+
+#\u7CFB\u7EDF\u914D\u7F6E
+sys.config.oss=true
+sys.config.attachmentType=.xlsx,.xls,.doc,.docx,.pdf,.jpg,.jpeg,.png,.html,.zip,.mp3,.wav,.dll,.exe,.ftl
+sys.config.attachmentLength=100
+sys.config.attachmentSize=200
+sys.config.serverUpload=
+sys.config.fileHost=192.168.10.136:8005
+sys.config.serverHost=192.168.10.136:8005
+#sys.config.accessKey=274f823e5f59410f8b3bb6edcd8e2b6e
+#sys.config.accessSecret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
+sys.config.accessKey=
+sys.config.accessSecret=
+sys.config.adminLogoUrl=http://qmth-test.oss-cn-shenzhen.aliyuncs.com/frontend/wx_logo.png
+#sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
+#sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
+#sys.config.autoCreatePdfResetMaxCount=5
+sys.config.threadPoolCoreSize=1
+sys.config.customThreadPoolCoreSize=true
+sys.config.analyzeThreadPoolCoreSize=false
+sys.config.sessionActive=1h
+sys.config.reportUrl=http://192.168.10.136:7005/#/student-report/
+sys.config.loginAuthenUrl=http://192.168.10.136:7005/#/login-authen/
+spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
+
+org.center.url=https://solar.qmth.com.cn
+org.center.orgQueryApi=/api/open/org/query
+
+#com.qmth.api.uri-prefix=/aaa
+#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
+com.qmth.api.metrics-endpoint=/metrics-count
+com.qmth.api.global-auth=true
+#com.qmth.api.global-strict=false
+#com.qmth.api.global-rate-limit=1/5s
+
+#token\u8D85\u65F6\u914D\u7F6E
+com.qmth.auth.time-max-ahead=1m
+com.qmth.auth.time-max-delay=5m
+
+#\u7F13\u5B58\u65F6\u95F4
+com.qmth.cache.expire-after-write=8h
+
+#\u65E5\u671F\u683C\u5F0F\u5316
+spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
+spring.jackson.time-zone=GMT+8
+
+#api\u524D\u7F00
+prefix.url.common=admin/common
+prefix.url.sys=admin/sys
+prefix.url.basic=admin/basic
+prefix.url.exam=admin/exam
+prefix.url.data=admin/data
+prefix.url.reportWuda=report/wuda/open
+prefix.url.reportSchool=report/school
+prefix.url.reportCourse=report/course
+prefix.url.reportExamStudent=report/exam_student
+prefix.url.datasource=report/datasource
+prefix.url.analyze=report/analyze
+
+#\u65E5\u5FD7\u914D\u7F6E
+com.qmth.logging.root-level=info
+com.qmth.logging.file-path=./logs/teachcloud-report.log
+
+#\u5F15\u5165task\u914D\u7F6E\u6587\u4EF6
+spring.profiles.include=task
+
+sms.config.smsNormalCode=52jy
+sms.config.codeExpiredTime=2
+sms.config.codeSendInterval=60
+#aliyun SMS key
+sms.config.aliyunSMSKey=LTAI4Fi8jVRYT49QBXU9x5QX
+#aliyun SMS secret
+sms.config.aliyunSMSSecret=97aBLBfkQR5mzCiQa82yWLAH57eUd8
+sms.config.aliyunSMSSignName=\u9038\u6559\u4E91
+sms.config.aliyunSMSTplCode=SMS_147416565
+sms.config.aliyunSMSAuditPassCode=SMS_216425141
+sms.config.aliyunSMSAuditNotPassCode=SMS_216275156
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSExamTaskCreatedCode=SMS_217436292
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSExamTaskWillExpireCode=SMS_217436295
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSExamTaskOverdueCode=SMS_217426313
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAllocationWillExpireCode=SMS_217406305
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAllocationOverdueCode=SMS_217406308
+#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAuditCreatedCode=SMS_217436298
+#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\u07B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAuditReviewCode=SMS_217416269
+#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAuditWillExpireCode=SMS_217436302
+#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAuditOverdueCode=SMS_217416271
+
+yun.mark.url=https://www.markingcloud.com
+yun.mark.studentScoreApi=/api/exam/student/score