Parcourir la source

各种bug修复,涉及资源,论坛,考试,公告通知,站内信,公用方法,统计等

honorfire il y a 5 mois
Parent
commit
c92b9b85bd
21 fichiers modifiés avec 130 ajouts et 42 suppressions
  1. 6 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceRecordController.java
  2. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ClassHourMapper.xml
  3. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseChapterKnowledgeMapper.xml
  4. 3 3
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseInfoMapper.xml
  5. 3 3
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/GradesMapper.xml
  6. 4 4
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/NoticeMapper.xml
  7. 5 3
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/StatisticsLearningProgressMapper.xml
  8. 4 3
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/StudyBehaviorProgressMapper.xml
  9. 28 5
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/UserReadMapper.xml
  10. 9 3
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/VideoAnalysisProgressMapper.xml
  11. 2 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/KeyWordEditParam.java
  12. 6 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/UserReadServiceImpl.java
  13. 2 2
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/ExamPaperMapper.xml
  14. 1 1
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/QuestionMapper.xml
  15. 3 3
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/TExamMapper.xml
  16. 7 3
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/QuestionServiceImpl.java
  17. 28 3
      snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/service/impl/ForumPostInfoServiceImpl.java
  18. 1 1
      snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/posttype/service/impl/ForumPostTypeServiceImpl.java
  19. 4 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/param/SysUserPageParam.java
  20. 2 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/result/SysUserMessageResult.java
  21. 10 2
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java

+ 6 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceRecordController.java

@@ -356,6 +356,12 @@ public class ResourceRecordController {
         }
         CourseAuditRecord courseAuditRecord = BeanUtil.toBean(courseAuditRecordEditParam, CourseAuditRecord.class);
         if(StringUtils.isNotEmpty(courseAuditRecordEditParam.getKeywordValue()))courseAuditRecord.setKeywordPinyin(StringUtils.deleteWhitespace(pinyinUtils.toPinyin(courseAuditRecordEditParam.getKeywordValue(),false)));
+        if(StringUtils.isEmpty(courseAuditRecordEditParam.getCollegeId()))courseAuditRecord.setCourseId("");
+        if(StringUtils.isEmpty(courseAuditRecordEditParam.getCollegeTwoId()))courseAuditRecord.setCollegeTwoId("");
+        if(StringUtils.isEmpty(courseAuditRecordEditParam.getCollegeThreeId()))courseAuditRecord.setCollegeThreeId("");
+        if(StringUtils.isEmpty(courseAuditRecordEditParam.getResourceType()))courseAuditRecord.setResourceType("");
+        if(StringUtils.isEmpty(courseAuditRecordEditParam.getResourceTwoType()))courseAuditRecord.setResourceTwoType("");
+        if(StringUtils.isEmpty(courseAuditRecordEditParam.getResourceThreeType()))courseAuditRecord.setResourceThreeType("");
         //如果过往状态是已发布,需要将状态恢复成待审核
         CourseAuditRecord oldCourseAuditRecord = courseAuditRecordService.queryEntity(courseAuditRecordEditParam.getId());
         if(StringUtils.isNotEmpty(oldCourseAuditRecord.getVerifyStatus()))if("2".equals(oldCourseAuditRecord.getVerifyStatus()))courseAuditRecord.setVerifyStatus("1");

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ClassHourMapper.xml

@@ -144,7 +144,7 @@
             IFNULL (cc.NAME,'') AS name,
             IFNULL (cc.CHAPTER_ID ,'') AS chapterId,
             IFNULL (cc.REMARK ,'') AS remark,
-            IFNULL (cc.CREATE_TIME,'') AS createTime,
+            IFNULL (TO_CHAR(cc.CREATE_TIME, 'YYYY-MM-DD HH24:MI:SS'),'') AS createTime,
             IFNULL (su.NAME,'') AS createUserName,
             IFNULL (rel0.name,'') AS coverImageName,
             IFNULL (rel0.url,'') AS coverImageUrl

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseChapterKnowledgeMapper.xml

@@ -6,7 +6,7 @@
 
               KNOWLEDGE_ID
           FROM
-              ONLINEEDU.COURSE_CHAPTER_KNOWLEDGE
+              COURSE_CHAPTER_KNOWLEDGE
           WHERE
               COURSE_ID = #{courseId}
             AND CHAPTER_ID = #{chapterId}

+ 3 - 3
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseInfoMapper.xml

@@ -23,7 +23,7 @@
         IFNULL(ma.major_name,'') AS majorIdName,
         IFNULL(ci.PUTAWAY_STATUS,'') as putawayStatus,
         IFNULL(( SELECT dd1.DICT_LABEL FROM (SELECT d1.DICT_LABEL,d1.DICT_VALUE  FROM  DEV_DICT d1 WHERE PARENT_ID = (SELECT d2.ID  FROM  DEV_DICT d2 WHERE d2.DICT_VALUE='COURSE_PUTAWAY_STATUS') )dd1 WHERE dd1.DICT_VALUE = TRIM(ci.PUTAWAY_STATUS) ),'') AS putawayStatusName,
-        IFNULL(ci.PUBLISH_TIME,'') as publishTime,
+        IFNULL(TO_CHAR(ci.PUBLISH_TIME, 'YYYY-MM-DD HH24:MI:SS'),'') as publishTime,
         IFNULL(ci.TIME_LIMIT_TYPE,'') as timeLimitType,
         IFNULL(ci.START_TIME,'') as startTime,
         IFNULL(ci.END_TIME,'') as endTime,
@@ -94,7 +94,7 @@
         IFNULL(ma.major_name,'') AS majorIdName,
         IFNULL(ci.PUTAWAY_STATUS,'') as putawayStatus,
         IFNULL(( SELECT dd1.DICT_LABEL FROM (SELECT d1.DICT_LABEL,d1.DICT_VALUE  FROM  DEV_DICT d1 WHERE PARENT_ID = (SELECT d2.ID  FROM  DEV_DICT d2 WHERE d2.DICT_VALUE='COURSE_PUTAWAY_STATUS') )dd1 WHERE dd1.DICT_VALUE = TRIM(ci.PUTAWAY_STATUS) ),'') AS putawayStatusName,
-        IFNULL(ci.PUBLISH_TIME,'') as publishTime,
+        IFNULL(TO_CHAR(ci.PUBLISH_TIME, 'YYYY-MM-DD HH24:MI:SS'),'') as publishTime,
         IFNULL(ci.COVER_IMAGE_ID,'') as coverImageId,
         IFNULL(CAST(df.DOWNLOAD_PATH AS VARCHAR),'') AS coverImagePath,
         IFNULL(ci.TIME_LIMIT_TYPE,'') as timeLimitType,
@@ -194,7 +194,7 @@
             IFNULL(su.NAME,'') AS teacherIdName,
             IFNULL(ci.MAJOR_ID,'') AS majorId,
             IFNULL(ma.major_name,'') AS majorIdName,
-            IFNULL(ci.PUBLISH_TIME,'') as publishTime,
+            IFNULL(TO_CHAR(ci.PUBLISH_TIME, 'YYYY-MM-DD HH24:MI:SS'),'') as publishTime,
             IFNULL(ci.COVER_IMAGE_ID,'') as coverImageId,
             IFNULL (CAST(df.DOWNLOAD_PATH AS VARCHAR),'') AS coverImagePath,
             IFNULL(ci.TIME_LIMIT_TYPE,'') as timeLimitType,

+ 3 - 3
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/GradesMapper.xml

@@ -16,7 +16,7 @@
             b."major_name" majoreName,
             c.name collegeName
         FROM
-            ONLINEEDU."grades" a
+            "grades" a
         LEFT JOIN "major" b ON a.MAJOR_ID =b."id"
         LEFT JOIN SYS_ORG   c ON c.id=b."college_id"
         <where>
@@ -56,7 +56,7 @@
             b."major_name" majoreName,
             c.name collegeName
         FROM
-            ONLINEEDU."grades" a
+            "grades" a
                 LEFT JOIN "major" b ON a.MAJOR_ID =b."id"
                 LEFT JOIN SYS_ORG   c ON c.id=b."college_id"
         where a."grades_id"=#{gradesId}
@@ -77,7 +77,7 @@
             b."major_name" majoreName,
             c.name collegeName
         FROM
-            ONLINEEDU."grades" a
+            "grades" a
         LEFT JOIN "major" b ON a.MAJOR_ID =b."id"
         LEFT JOIN SYS_ORG   c ON c.id=b."college_id"
         where  a."MAJOR_ID" = #{majorId} and a."COLLEGE_ID"= #{collegeId}

+ 4 - 4
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/NoticeMapper.xml

@@ -16,7 +16,7 @@
             a.NOTICE_STATUS noticeStatus,
             b.name publishUserName
         FROM
-            ONLINEEDU."notice" a
+            "notice" a
         LEFT JOIN sys_user b ON  a.PUBLISH_USER = b.id
         <where>
             <if test="noticePageParam.title!=null">
@@ -54,7 +54,7 @@
           WHEN (SELECT count(1) FROM USER_READ c WHERE a.NOTICE_ID = c.MAIN_ID AND c.USER_ID = #{noticePageParam.userId}) > 0
         THEN true  ELSE false  END AS isRead
         FROM
-        ONLINEEDU."notice" a
+        "notice" a
         LEFT JOIN sys_user b ON  a.PUBLISH_USER = b.id
         <where>
             <if test="noticePageParam.title!=null">
@@ -89,7 +89,7 @@
                 WHEN (SELECT count(1) FROM USER_READ c WHERE a.NOTICE_ID = c.MAIN_ID AND c.USER_ID = #{userId}) > 0
                     THEN true  ELSE false  END AS isRead
         FROM
-            ONLINEEDU."notice" a
+            "notice" a
         LEFT JOIN sys_user b ON  a.PUBLISH_USER = b.id
         where a.NOTICE_ID=#{noticeId}
     </select>
@@ -109,7 +109,7 @@
             a.NOTICE_STATUS noticeStatus,
             b.name publishUserName
         FROM
-            ONLINEEDU."notice" a left JOIN sys_user b ON  a.PUBLISH_USER = b.id
+            "notice" a left JOIN sys_user b ON  a.PUBLISH_USER = b.id
         where a.NOTICE_ID=#{noticeId}
     </select>
 

+ 5 - 3
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/StatisticsLearningProgressMapper.xml

@@ -126,6 +126,7 @@
         <if test="param.courseId!=null and param.courseId != ''">
             and ci.COURSE_ID=#{param.courseId}
         </if>
+        ORDER BY ci.CREATE_TIME desc
     </select>
 
     <select id="getCourseOpenStuNum" resultType="java.lang.String">
@@ -220,12 +221,13 @@
         from(
             SELECT
                 stu.ID AS userId,
-                cc.ID AS chapterId,
+                cch.ID AS hourId,
                 ci.COURSE_ID AS courseId
             FROM COURSE_INFO ci
             LEFT JOIN COURSE_OPEN cop ON ci.COURSE_ID =cop.COURSE_ID AND cop.DELETE_FLAG='NOT_DELETE'
             LEFT JOIN SYS_USER stu ON stu.GRADES_ID =cop.GRADES_ID AND stu.DELETE_FLAG='NOT_DELETE'
             LEFT JOIN COURSE_CHAPTER cc ON ci.COURSE_ID =cc.COURSE_ID AND cc.DELETE_FLAG ='NOT_DELETE'
+            LEFT JOIN COURSE_CLASSHOUR cch ON cc.ID=cch.CHAPTER_ID AND cch.DELETE_FLAG ='NOT_DELETE'
             WHERE ci.DELETE_FLAG ='NOT_DELETE'
             AND cc.ID IS NOT NULL
             AND ci.COURSE_ID IS NOT NULL
@@ -233,7 +235,7 @@
             <if test="courseId!=null and courseId != ''">
                 and ci.COURSE_ID=#{courseId}
             </if>
-            GROUP BY stu.ID,cc.ID,ci.COURSE_ID
+            GROUP BY stu.ID,cch.ID,ci.COURSE_ID
         )t1
         JOIN (
             select
@@ -244,7 +246,7 @@
             from FORUM_POST_REPLY as reply
             left join FORUM_CHAPTER_DISCUSSION as chapter on reply.POST_ID = chapter.POST_ID
             where 1=1
-        )t2 ON t1.chapterId=t2.chapterId AND t1.userId=t2.userId
+        )t2 ON t1.hourId=t2.chapterId AND t1.userId=t2.userId
         WHERE 1=1
     </select>
 

+ 4 - 3
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/StudyBehaviorProgressMapper.xml

@@ -1243,12 +1243,13 @@
             from(
                 SELECT
                     stu.ID AS userId,
-                    cc.ID AS chapterId,
+                    cch.ID AS hourId,
                     ci.COURSE_ID AS courseId
                 FROM COURSE_INFO ci
                 LEFT JOIN COURSE_OPEN cop ON ci.COURSE_ID =cop.COURSE_ID AND cop.DELETE_FLAG='NOT_DELETE'
                 LEFT JOIN SYS_USER stu ON stu.GRADES_ID =cop.GRADES_ID AND stu.DELETE_FLAG='NOT_DELETE'
                 LEFT JOIN COURSE_CHAPTER cc ON ci.COURSE_ID =cc.COURSE_ID AND cc.DELETE_FLAG ='NOT_DELETE'
+                LEFT JOIN COURSE_CLASSHOUR cch ON cc.ID=cch.CHAPTER_ID AND cch.DELETE_FLAG ='NOT_DELETE'
                 WHERE ci.DELETE_FLAG ='NOT_DELETE'
                 AND cc.ID IS NOT NULL
                 AND ci.COURSE_ID IS NOT NULL
@@ -1265,7 +1266,7 @@
                         #{item}
                     </foreach>
                 </if>
-                GROUP BY stu.ID,cc.ID,ci.COURSE_ID
+                GROUP BY stu.ID,cch.ID,ci.COURSE_ID
             )t1
             JOIN (
                 select
@@ -1283,7 +1284,7 @@
                         #{item}
                     </foreach>
                 </if>
-            )t2 ON t1.chapterId=t2.chapterId AND t1.userId=t2.userId
+            )t2 ON t1.hourId=t2.chapterId AND t1.userId=t2.userId
             WHERE 1=1
             GROUP BY t1.courseId,t1.userId
         )finalThree ON finalThree.userId=userCourse.userId AND finalThree.courseId=userCourse.courseId

+ 28 - 5
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/UserReadMapper.xml

@@ -19,10 +19,33 @@
 
     <select id="getNoticeCount" resultType="java.util.Map">
         SELECT
-            count(DISTINCT a.NOTICE_ID)-count(DISTINCT b.ID) AS unreadCount
-        FROM
-            notice a
-        LEFT JOIN user_read b ON a.NOTICE_ID=b.MAIN_ID AND b.USER_ID =#{userId}  AND b.FUNC_TYPE='2'
-        where a.NOTICE_STATUS=1 and a.DELETE_FLAG='NOT_DELETE'
+            collectCount.allCount -collectCount.alreadyCount AS unreadCount
+        from(
+            SELECT
+                (
+                    SELECT
+                        count(noe.NOTICE_ID)
+                    FROM "notice" noe
+                    WHERE noe.DELETE_FLAG='NOT_DELETE'
+                    <if test="typelist !=null and typelist.size()>0">
+                        and noe.PLATFORM in
+                        <foreach collection="typelist" close=")" index="index" item="item" open="(" separator=",">
+                            #{item}
+                        </foreach>
+                    </if>
+                    AND noe.NOTICE_STATUS=1
+                ) AS allCount,
+                (
+                    SELECT
+                       count(ur.USER_ID)
+                    FROM USER_READ ur
+                    JOIN "notice" n ON n.NOTICE_ID = ur.MAIN_ID AND n.DELETE_FLAG='NOT_DELETE'
+                    WHERE ur.DELETE_FLAG ='NOT_DELETE'
+                    AND n.NOTICE_STATUS=1
+                    AND ur.USER_ID=#{userId}
+                    AND ur.FUNC_TYPE =2
+                ) AS alreadyCount
+            FROM DUAL
+        )AS collectCount
     </select>
 </mapper>

+ 9 - 3
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/VideoAnalysisProgressMapper.xml

@@ -1290,7 +1290,10 @@
         LEFT JOIN(
             SELECT
                 z1.hourId AS hourId,
-                LPAD(FLOOR(z1.allStayTime / 3600000), 5, '0') || ':' ||
+                CASE
+                WHEN FLOOR(z1.allStayTime / 3600000) = 0 THEN '0'
+                ELSE REGEXP_REPLACE(LPAD(FLOOR(z1.allStayTime / 3600000), 5, '0'), '^0+', '')
+                END || ':' ||
                 LPAD(FLOOR((z1.allStayTime % 3600000) / 60000), 2, '0') || ':' ||
                 LPAD(FLOOR((z1.allStayTime % 60000) / 1000), 2, '0') AS allStayTime
             FROM (
@@ -1749,7 +1752,10 @@
         LEFT JOIN(
             SELECT
                 tt1.hourId AS hourId,
-                LPAD(FLOOR(tt1.avgStayTime / 3600000), 5, '0') || ':' ||
+                CASE
+                WHEN FLOOR(tt1.avgStayTime / 3600000) = 0 THEN '0'
+                ELSE REGEXP_REPLACE(LPAD(FLOOR(tt1.avgStayTime / 3600000), 5, '0'), '^0+', '')
+                END || ':' ||
                 LPAD(FLOOR((tt1.avgStayTime % 3600000) / 60000), 2, '0') || ':' ||
                 LPAD(FLOOR((tt1.avgStayTime % 60000) / 1000), 2, '0') AS avgStayTime
             FROM(
@@ -2139,7 +2145,7 @@
                 <if test="endTime!=null and endTime != ''">
                     and reply.CREATE_TIME &lt;=#{endTime}
                 </if>
-            )t2 ON t1.chapterId=t2.chapterId AND t1.userId=t2.userId
+            )t2 ON t1.hourId=t2.chapterId AND t1.userId=t2.userId
             WHERE 1=1
             GROUP BY t1.hourId
         )finalNine ON classhour.hourId =finalNine.hourId

+ 2 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/KeyWordEditParam.java

@@ -16,6 +16,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
 /**
@@ -35,6 +36,7 @@ public class KeyWordEditParam {
 
     /** 名称 */
     @ApiModelProperty(value = "名称", position = 2)
+    @NotBlank(message = "名称不能为空")
     private String wordName;
 
 

+ 6 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/UserReadServiceImpl.java

@@ -34,6 +34,7 @@ import vip.xiaonuo.disk.param.userread.UserReadPageParam;
 import vip.xiaonuo.disk.service.UserReadService;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -132,7 +133,11 @@ public class UserReadServiceImpl extends ServiceImpl<UserReadMapper, UserRead> i
     public Map<String,Object> getCount(Map param){
         Map result=new HashMap();
         if("1".equals(param.get("funcType"))) result=userReadMapper.getDevMessageCount(param);
-        if("2".equals(param.get("funcType"))) result=userReadMapper.getNoticeCount(param);
+        if("2".equals(param.get("funcType"))) {
+            List<String> typelist = Arrays.asList("1","2","3");
+            param.put("typelist",typelist);
+            result=userReadMapper.getNoticeCount(param);
+        }
         return result;
     }
 

+ 2 - 2
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/ExamPaperMapper.xml

@@ -429,8 +429,8 @@
     LEFT JOIN COURSE_INFO ci ON ch.COURSE_ID = ci.COURSE_ID
     LEFT JOIN COURSE_OPEN co ON ch.course_id = co.COURSE_ID
     LEFT JOIN SYS_USER su ON su.GRADES_ID = co.GRADES_ID
-    WHERE
-      tep.paper_type = #{bo.paperType}
+    WHERE tep.deleted=0
+      and tep.paper_type = #{bo.paperType}
       AND su.ID = #{bo.userId}
       AND tepa.status=2
   </select>

+ 1 - 1
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/QuestionMapper.xml

@@ -319,7 +319,7 @@
       SEMESTER_ID,
       COURSE_ID
     FROM
-      ONLINEEDU."t_question"
+      "t_question"
     where id=#{questionId}
   </select>
 

+ 3 - 3
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/TExamMapper.xml

@@ -22,7 +22,7 @@
            c.name semesterName,
            a.course_id courseId
        FROM
-           ONLINEEDU.T_EXAM a
+           T_EXAM a
        LEFT JOIN  SEMESTER c ON a.SEMESTER_ID =c.ID
     <where>
        <if test="tExamPageParam.examName != null and tExamPageParam.examName != ''">
@@ -72,7 +72,7 @@
         NVL(d.status, 0) AS status,
         d.id answerId
         FROM
-        ONLINEEDU.T_EXAM a
+        T_EXAM a
         LEFT JOIN  SEMESTER c ON a.SEMESTER_ID =c.ID
         LEFT JOIN t_exam_paper_answer d ON d.exam_paper_id = a.PAPER_ID AND d.create_user = #{tExamPageParam.userId}
         <where>
@@ -115,7 +115,7 @@
             a.course_id courseId,
             a.gradesids gradesids
         FROM
-            ONLINEEDU.T_EXAM a
+            T_EXAM a
         LEFT JOIN  SEMESTER c ON a.SEMESTER_ID =c.ID
         where a.ID=#{id}
     </select>

+ 7 - 3
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/QuestionServiceImpl.java

@@ -270,7 +270,9 @@ public class QuestionServiceImpl extends BaseServiceImpl<Question> implements Qu
             JSONObject jsonObject=(JSONObject)checkResult.getData();
             if (jsonObject.getIntValue("questionErrorCount") !=0 || jsonObject.getJSONArray("questionOKList").isEmpty()) {
                 // 有错误的数据返回检查结果
-                return CommonResult.data(jsonObject.getJSONObject("data"));
+//                return CommonResult.data(jsonObject.getJSONObject("data"));
+//                return CommonResult.data(jsonObject.getJSONArray("errorQuestionList"));
+                return CommonResult.error("请检查xlsx数据文件!!!");
             }else{
                 // 无错误执行导入
                 List<QuestionExcel> questionOKList = jsonObject.getJSONArray("questionOKList").toJavaList(QuestionExcel.class);
@@ -278,8 +280,9 @@ public class QuestionServiceImpl extends BaseServiceImpl<Question> implements Qu
             }
         } catch (Exception e) {
             e.printStackTrace();
+            return CommonResult.error("请检查xlsx数据文件!!!");
         }
-        return CommonResult.data(result);
+//        return CommonResult.data(result);
     }
 
     /**
@@ -455,8 +458,9 @@ public class QuestionServiceImpl extends BaseServiceImpl<Question> implements Qu
         } catch (Exception e) {
             System.err.println("checkExcelData 检查导入的Excel文件失败!!!");
             e.printStackTrace();
+            return CommonResult.error("请检查xlsx数据文件!!!");
         }
-        return CommonResult.data(result);
+//        return CommonResult.data(result);
     }
 
 

+ 28 - 3
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/service/impl/ForumPostInfoServiceImpl.java

@@ -201,7 +201,10 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
             // 设置用户
             SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
             forumPostInfo.setUserId(loginUser.getId());
-            // 过滤敏感词
+            // 过滤敏感词(标题)
+            String titleIsIllegal = filterSensitiveWordsTitle(forumPostInfoAddParam.getPostTitle());
+            if("1".equals(titleIsIllegal))return CommonResult.error("帖子标题含有敏感词");
+            // 过滤敏感词(内容)
             String postContent = filterSensitiveWords(forumPostInfoAddParam.getPostContent(), loginUser, uuid);
             forumPostInfo.setPostContent(postContent);
             // 存储基础表
@@ -235,7 +238,26 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
     }
 
     /**
-     * 过滤发帖中的敏感词
+     * 过滤发帖中的敏感词(标题)
+     *
+     */
+    public String filterSensitiveWordsTitle(String title) {
+        String isIllegal="0";
+        List<ForumSensitivity> forumSensitivities = forumSensitivityMapper.selectList(new QueryWrapper<>());
+        if (forumSensitivities.size() > 0) {
+            // 过滤敏感词
+            for (ForumSensitivity forumSensitivity : forumSensitivities) {
+                // 过滤逻辑
+                if (title.contains(forumSensitivity.getSensitivityWord())) {
+                    isIllegal="1";
+                }
+            }
+        }
+        return isIllegal;
+    }
+
+    /**
+     * 过滤发帖中的敏感词(内容)
      *
      * @param postContent 帖子内容
      */
@@ -274,7 +296,10 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
         if (!dataPost.getUserId().equals(loginUser.getId())) {
             return CommonResult.error("帖子不是自己的,无法编辑");
         }
-        // 过滤敏感词
+        // 确认标题是否有敏感词,有直接拦截(标题)
+        String titleIsIllegal = filterSensitiveWordsTitle(forumPostInfoEditParam.getPostTitle());
+        if("1".equals(titleIsIllegal))return CommonResult.error("帖子标题含有敏感词");
+        // 过滤敏感词(内容)
         String postContent = filterSensitiveWords(forumPostInfoEditParam.getPostContent(), loginUser, forumPostInfoEditParam.getPostId());
         forumPostInfoEditParam.setPostContent(postContent);
         // 更新帖子信息

+ 1 - 1
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/posttype/service/impl/ForumPostTypeServiceImpl.java

@@ -52,7 +52,7 @@ public class ForumPostTypeServiceImpl extends ServiceImpl<ForumPostTypeMapper, F
             queryWrapper.orderBy(true, forumPostTypePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
                     StrUtil.toUnderlineCase(forumPostTypePageParam.getSortField()));
         } else {
-            queryWrapper.lambda().orderByAsc(ForumPostType::getTypeId);
+            queryWrapper.lambda().orderByDesc(ForumPostType::getCreateTime);
         }
         return this.page(CommonPageRequest.defaultPage(), queryWrapper);
     }

+ 4 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/param/SysUserPageParam.java

@@ -80,4 +80,8 @@ public class SysUserPageParam {
     @ApiModelProperty(value = "教育身份", position = 7)
     private String eduIdentity;
 
+    /** 是否按名字排序 */
+    @ApiModelProperty(value = "是否按名字排序", position = 7)
+    private String isOrderByName;
+
 }

+ 2 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/result/SysUserMessageResult.java

@@ -12,6 +12,7 @@
  */
 package vip.xiaonuo.sys.modular.user.result;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
@@ -54,6 +55,7 @@ public class SysUserMessageResult {
 
     /** 创建时间 */
     @ApiModelProperty(value = "创建时间", position = 7)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /** 创建人 */

+ 10 - 2
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java

@@ -335,10 +335,18 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             queryWrapper.lambda().like(SysUser::getStudentNum, sysUserPageParam.getStudentNum());
         }
         if (ObjectUtil.isNotEmpty(sysUserPageParam.getEduIdentity())) {
-            queryWrapper.lambda().like(SysUser::getEduIdentity, sysUserPageParam.getEduIdentity());
+            queryWrapper.lambda().eq(SysUser::getEduIdentity, sysUserPageParam.getEduIdentity());
+        }
+
+        if (ObjectUtil.isNotEmpty(sysUserPageParam.getIsOrderByName())) {
+            if("1".equals(sysUserPageParam.getIsOrderByName()))
+            {
+                queryWrapper.last("order by NLSSORT(name, 'NLS_SORT = SCHINESE_PINYIN_M')");
+            }
+        }else{
+            queryWrapper.lambda().orderByAsc(SysUser::getSortCode);
         }
 
-        queryWrapper.lambda().orderByAsc(SysUser::getSortCode);
         List<SysUser> jsonList =  this.list(queryWrapper);
         return jsonList;
     }