Pārlūkot izejas kodu

bug修复,涉及统计,开课,资源等

honorfire 5 mēneši atpakaļ
vecāks
revīzija
1b24dd3700

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

@@ -92,10 +92,13 @@
             COURSE_OPEN a
                 LEFT JOIN COURSE_INFO b ON
                 a.COURSE_ID = b.COURSE_ID
-        WHERE
-            a.SEMESTER_ID = #{semesterId} AND  b.PUTAWAY_STATUS=1 and a.DELETE_FLAG ='NOT_DELETE'
-        ORDER BY
-            a.id
+        WHERE a.DELETE_FLAG ='NOT_DELETE'
+        <if test="semesterId !=null and semesterId != ''">
+            and a.SEMESTER_ID = #{semesterId}
+        </if>
+          AND  b.PUTAWAY_STATUS=1
+        GROUP BY a.COURSE_ID,b.COURSE_NAME
+
     </select>
   <select id="selectAccount" resultType="string">
       SELECT

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

@@ -8,8 +8,9 @@
             ci.COURSE_NAME AS courseName,
             IFNULL(t1.openStuNum,0) AS openStuNum,
             IFNULL(t2.viewCount,0) AS viewCount,
-            IFNULL(t3.stayTime,0) AS stayTime,
-            IFNULL(t4.teachMaterialsNum,0) AS teachMaterialsNum
+            IFNULL(t3.stayTime,'0h00m00s') AS stayTime,
+            IFNULL(t4.teachMaterialsNum,0) AS teachMaterialsNum,
+            IFNULL(t5.paperSubmitNum,0) AS paperSubmitNum
         FROM COURSE_INFO ci
         LEFT JOIN (
             SELECT
@@ -41,16 +42,48 @@
             </if>
             GROUP BY ci.COURSE_ID
         )t2 ON ci.COURSE_ID =t2.courseId
+        LEFT JOIN (
+            SELECT
+                z1.courseId AS courseId,
+                CASE
+                WHEN FLOOR(z1.stayTime / 3600000) = 0 THEN '0'
+                ELSE REGEXP_REPLACE(LPAD(FLOOR(z1.stayTime / 3600000), 5, '0'), '^0+', '')
+                END || 'h' ||
+                IFNULL(LPAD(FLOOR((z1.stayTime % 3600000) / 60000), 2, '0'),'00') || 'm' ||
+                IFNULL(LPAD(FLOOR((z1.stayTime % 60000) / 1000), 2, '0'),'00') || 's' AS stayTime
+            FROM (
+                SELECT
+                    cc.COURSE_ID AS courseId,
+                    sum(csb.STAY_TIME) AS stayTime
+                FROM COURSE_STUDENT_BURIALPOINT csb
+                LEFT JOIN COURSE_CLASSHOUR cch ON cch.ID=csb.HOUR_ID AND cch.DELETE_FLAG ='NOT_DELETE'
+                LEFT JOIN COURSE_CHAPTER cc ON cc.ID=cch.CHAPTER_ID AND cc.DELETE_FLAG ='NOT_DELETE'
+                LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID =cc.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
+                WHERE csb.DELETE_FLAG ='NOT_DELETE'
+                AND csb.FUNC_TYPE='1'
+                AND csb.TYPE='1'
+                <if test="param.courseId!=null and param.courseId != ''">
+                    and ci.COURSE_ID=#{param.courseId}
+                </if>
+                <if test="param.startTime!=null and param.startTime != ''">
+                    and csb.CREATE_TIME &gt;=#{param.startTime}
+                </if>
+                <if test="param.endTime!=null and param.endTime != ''">
+                    and csb.CREATE_TIME &lt;=#{param.endTime}
+                </if>
+                GROUP BY cc.COURSE_ID
+            )z1
+        )t3 ON ci.COURSE_ID =t3.courseId
          LEFT JOIN (
             SELECT
             cc.COURSE_ID AS courseId,
-            sum(csb.STAY_TIME) AS stayTime
+            count(csb.ID)AS teachMaterialsNum
             FROM COURSE_STUDENT_BURIALPOINT csb
             LEFT JOIN COURSE_CLASSHOUR cch ON cch.ID=csb.HOUR_ID AND cch.DELETE_FLAG ='NOT_DELETE'
             LEFT JOIN COURSE_CHAPTER cc ON cc.ID=cch.CHAPTER_ID AND cc.DELETE_FLAG ='NOT_DELETE'
             LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID =cc.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
             WHERE csb.DELETE_FLAG ='NOT_DELETE'
-              AND csb.FUNC_TYPE='1'
+              AND csb.FUNC_TYPE='2'
               AND csb.TYPE='1'
             <if test="param.courseId!=null and param.courseId != ''">
                 and ci.COURSE_ID=#{param.courseId}
@@ -62,29 +95,33 @@
                 and csb.CREATE_TIME &lt;=#{param.endTime}
             </if>
             GROUP BY cc.COURSE_ID
-        )t3 ON ci.COURSE_ID =t3.courseId
-         LEFT JOIN (
+        )t4 ON ci.COURSE_ID =t4.courseId
+        LEFT JOIN (
             SELECT
-            cc.COURSE_ID AS courseId,
-            count(csb.ID)AS teachMaterialsNum
-            FROM COURSE_STUDENT_BURIALPOINT csb
-            LEFT JOIN COURSE_CLASSHOUR cch ON cch.ID=csb.HOUR_ID AND cch.DELETE_FLAG ='NOT_DELETE'
-            LEFT JOIN COURSE_CHAPTER cc ON cc.ID=cch.CHAPTER_ID AND cc.DELETE_FLAG ='NOT_DELETE'
+            --	tepa.id AS tepaId,
+            --	tep.id AS tepId,
+            --	cch.ID AS hourId,
+            --	ci.COURSE_ID AS courseId
+            ci.COURSE_ID AS courseId,
+            count(tepa.id) AS paperSubmitNum
+            FROM "t_exam_paper_answer" tepa
+            LEFT JOIN "t_exam_paper" tep ON tepa.exam_paper_id=tep.id AND tep.deleted='0'
+            LEFT JOIN COURSE_RELATE cr ON cr.RELATE_ID=CAST(tep.id AS VARCHAR) AND cr.DELETE_FLAG ='NOT_DELETE' AND cr.CHAPTERHOUR_TYPE='1' AND cr.INFO_TYPE='0' AND (cr.FUNC_TYPE='4' OR cr.FUNC_TYPE='5')
+            LEFT JOIN COURSE_CLASSHOUR cch ON cr.MAIN_ID=cch.ID AND cch.DELETE_FLAG ='NOT_DELETE'
+            LEFT JOIN COURSE_CHAPTER cc ON cch.CHAPTER_ID=cc.ID AND cc.DELETE_FLAG ='NOT_DELETE'
             LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID =cc.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
-            WHERE csb.DELETE_FLAG ='NOT_DELETE'
-              AND csb.FUNC_TYPE='2'
-              AND csb.TYPE='1'
+            WHERE (tep.id IS NOT NULL AND cch.ID IS NOT NULL AND ci.COURSE_ID IS NOT NULL)
             <if test="param.courseId!=null and param.courseId != ''">
                 and ci.COURSE_ID=#{param.courseId}
             </if>
             <if test="param.startTime!=null and param.startTime != ''">
-                and csb.CREATE_TIME &gt;=#{param.startTime}
+                and tepa.create_time &gt;=#{param.startTime}
             </if>
             <if test="param.endTime!=null and param.endTime != ''">
-                and csb.CREATE_TIME &lt;=#{param.endTime}
+                and tepa.create_time &lt;=#{param.endTime}
             </if>
-            GROUP BY cc.COURSE_ID
-        )t4 ON ci.COURSE_ID =t4.courseId
+            GROUP BY ci.COURSE_ID
+        )t5 ON ci.COURSE_ID =t5.courseId
         WHERE ci.DELETE_FLAG ='NOT_DELETE'
         <if test="param.courseId!=null and param.courseId != ''">
             and ci.COURSE_ID=#{param.courseId}
@@ -173,5 +210,42 @@
             and ci.COURSE_ID=#{courseId}
         </if>
     </select>
+    <select id="getInteractionNum" resultType="java.lang.String">
+        SELECT
+            --	t1.userId AS userId,
+            --	t1.chapterId AS chapterId,
+            --	t1.courseId AS courseId,
+            --	t2.replyId AS replyId
+            IFNULL(count(t2.replyId),0) postCount
+        from(
+            SELECT
+                stu.ID AS userId,
+                cc.ID AS chapterId,
+                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'
+            WHERE ci.DELETE_FLAG ='NOT_DELETE'
+            AND cc.ID IS NOT NULL
+            AND ci.COURSE_ID IS NOT NULL
+            AND stu.ID IS NOT NULL
+            <if test="courseId!=null and courseId != ''">
+                and ci.COURSE_ID=#{courseId}
+            </if>
+            GROUP BY stu.ID,cc.ID,ci.COURSE_ID
+        )t1
+        JOIN (
+            select
+            reply.REPLY_ID AS replyId,
+            reply.USER_ID AS userId,
+            chapter.DISCUSSION_ID AS discussionId,
+            chapter.CHAPTER_ID AS chapterId
+            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
+        WHERE 1=1
+    </select>
 
 </mapper>

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

@@ -221,7 +221,10 @@
     </select>
     <select id="getUserAllStayTime" resultType="java.lang.String">
         SELECT
-            LPAD(FLOOR(tt1.userAllStayTIme / 3600000), 5, '0') || '小时' ||
+            CASE
+            WHEN FLOOR(tt1.userAllStayTIme / 3600000) = 0 THEN '0'
+            ELSE REGEXP_REPLACE(LPAD(FLOOR(tt1.userAllStayTIme / 3600000), 5, '0'), '^0+', '')
+            END || '小时' ||
             LPAD(FLOOR((tt1.userAllStayTIme % 3600000) / 60000), 2, '0') || '分钟' AS userAllStayTime
         FROM(
             SELECT
@@ -271,7 +274,10 @@
     </select>
     <select id="getAvgStayTime" resultType="java.lang.String">
         SELECT
-            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') || '分钟' AS avgStayTime
         FROM(
             SELECT

+ 44 - 32
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/TeachingActivityMapper.xml

@@ -41,38 +41,50 @@
 
     <select id="documentJumpStatistic" resultType="map">
         SELECT
-        ifnull(ROUND(AVG(ctb.END_TIME)/1000, 2),0) AS jumpAvgTime,
-        COUNT(DISTINCT cch.ID) AS allHourCount,
-        CASE
-        WHEN COUNT(DISTINCT cch.ID) > 0 THEN
-        ROUND(
-        CAST(COUNT(DISTINCT ctb.HOUR_ID) AS FLOAT) / COUNT(DISTINCT cch.ID),
-        2
-        )
-        ELSE 0
-        END AS finishRate
-        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'
-        LEFT JOIN COURSE_STUDENT_BURIALPOINT ctb ON ctb.DELETE_FLAG ='NOT_DELETE' AND ctb.FUNC_TYPE='2' AND ctb.TYPE='1' AND cch.ID =ctb.HOUR_ID AND stu.ID=ctb.USER_ID
-        <where>
-            <if test="courseId != null and courseId != ''">
-                AND ci.COURSE_ID = #{courseId}
-            </if>
-            <if test="map.startTime != null">
-                AND ci.create_time &gt;= #{map.startTime}
-            </if>
-            <if test="map.endTime != null">
-                AND ci.create_time &lt;= #{map.endTime}
-            </if>
-            AND ci.DELETE_FLAG ='NOT_DELETE'
-            AND cch.ID IS NOT NULL
-            AND cc.ID IS NOT NULL
-            AND ci.COURSE_ID IS NOT NULL
-            AND stu.ID IS NOT NULL
-        </where>
+            CASE
+            when tt1.jumpAvgTime=0 or tt1.jumpAvgTime is NULL
+            then ''
+            else IFNULL(LPAD(FLOOR(tt1.jumpAvgTime / 3600000), 2, '0'),'00') || ':' ||
+            IFNULL(LPAD(FLOOR((tt1.jumpAvgTime % 3600000) / 60000), 2, '0'),'00') || ':' ||
+            IFNULL(LPAD(FLOOR((tt1.jumpAvgTime % 60000) / 1000), 2, '0'),'00')
+            END AS jumpAvgTime,
+            tt1.allHourCount,
+            tt1.finishRate
+        FROM(
+            SELECT
+            ifnull(ROUND(AVG(ctb.END_TIME)/1000, 2),0) AS jumpAvgTime,
+            COUNT(DISTINCT cch.ID) AS allHourCount,
+            CASE
+            WHEN COUNT(DISTINCT cch.ID) > 0 THEN
+            ROUND(
+            CAST(COUNT(DISTINCT ctb.HOUR_ID) AS FLOAT) / COUNT(DISTINCT cch.ID),
+            2
+            )
+            ELSE 0
+            END AS finishRate
+            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'
+            LEFT JOIN COURSE_STUDENT_BURIALPOINT ctb ON ctb.DELETE_FLAG ='NOT_DELETE' AND ctb.FUNC_TYPE='2' AND ctb.TYPE='1' AND cch.ID =ctb.HOUR_ID AND stu.ID=ctb.USER_ID
+            <where>
+                <if test="courseId != null and courseId != ''">
+                    AND ci.COURSE_ID = #{courseId}
+                </if>
+                <if test="map.startTime != null">
+                    AND ci.create_time &gt;= #{map.startTime}
+                </if>
+                <if test="map.endTime != null">
+                    AND ci.create_time &lt;= #{map.endTime}
+                </if>
+                AND ci.DELETE_FLAG ='NOT_DELETE'
+                AND cch.ID IS NOT NULL
+                AND cc.ID IS NOT NULL
+                AND ci.COURSE_ID IS NOT NULL
+                AND stu.ID IS NOT NULL
+            </where>
+        )tt1
     </select>
 
     <select id="courseOpenStatistic" resultType="map">

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

@@ -523,48 +523,62 @@
 
     <select id="getJumpAvgTime" resultType="java.lang.String">
         SELECT
-            --	t1.hourId AS hourId,
-            --	t1.chapterId AS chapterId,
-            --	t1.userId AS userId,
-            --	csb.ID AS csbId,
-            --    LPAD(FLOOR(csb1.END_TIME / 3600000), 2, '0') || ':' ||
-            --    LPAD(FLOOR((csb1.END_TIME % 3600000) / 60000), 2, '0') || ':' ||
-            --    LPAD(FLOOR((csb1.END_TIME % 60000) / 1000), 2, '0') AS jumpTime
-            ROUND(AVG(IFNULL(csb.END_TIME,0)), 2) AS jumpAvgTime
-        FROM (
+            CASE
+            when tt1.jumpAvgTime=0 or tt1.jumpAvgTime is NULL
+            then ''
+            else
+                CASE
+                WHEN FLOOR(tt1.jumpAvgTime / 3600000) = 0 THEN '00'
+                ELSE REGEXP_REPLACE(LPAD(FLOOR(tt1.jumpAvgTime / 3600000), 5, '0'), '^0+', '')
+                END || ':' ||
+                IFNULL(LPAD(FLOOR((tt1.jumpAvgTime % 3600000) / 60000), 2, '0'),'00') || ':' ||
+                IFNULL(LPAD(FLOOR((tt1.jumpAvgTime % 60000) / 1000), 2, '0'),'00')
+            END AS jumpAvgTime
+        FROM(
             SELECT
-                cop.ID AS copId,
-                stu.ID AS userId,
-                cch.ID AS hourId,
-                cc.ID AS chapterId,
-                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 cch.ID IS NOT NULL
-            AND cc.ID IS NOT NULL
-            AND ci.COURSE_ID IS NOT NULL
-            AND stu.ID IS NOT NULL
-            --		AND csb.USER_ID='1948586504800468993'
-            <if test="courseId !=null and courseId != ''">
-                and ci.COURSE_ID=#{courseId}
-            </if>
-        )t1
-        JOIN (
-            SELECT csb1.ID,csb1.USER_ID,csb1.HOUR_ID,csb1.END_TIME
-            FROM COURSE_STUDENT_BURIALPOINT csb1
-            WHERE csb1.DELETE_FLAG ='NOT_DELETE' AND csb1.FUNC_TYPE='1' AND csb1.TYPE='1' AND csb1.PROGRESS &lt; 100
-            <if test="startTime!=null and startTime != ''">
-                and csb1.CREATE_TIME &gt;=#{startTime}
-            </if>
-            <if test="endTime!=null and endTime != ''">
-                and csb1.CREATE_TIME &lt;=#{endTime}
-            </if>
-        ) csb ON csb.HOUR_ID =t1.hourId AND csb.USER_ID=t1.userId
-        WHERE 1=1
+                --	t1.hourId AS hourId,
+                --	t1.chapterId AS chapterId,
+                --	t1.userId AS userId,
+                --	csb.ID AS csbId,
+                --    LPAD(FLOOR(csb1.END_TIME / 3600000), 2, '0') || ':' ||
+                --    LPAD(FLOOR((csb1.END_TIME % 3600000) / 60000), 2, '0') || ':' ||
+                --    LPAD(FLOOR((csb1.END_TIME % 60000) / 1000), 2, '0') AS jumpTime
+                ROUND(AVG(IFNULL(csb.END_TIME,0)), 2) AS jumpAvgTime
+            FROM (
+                SELECT
+                    cop.ID AS copId,
+                    stu.ID AS userId,
+                    cch.ID AS hourId,
+                    cc.ID AS chapterId,
+                    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 cch.ID IS NOT NULL
+                AND cc.ID IS NOT NULL
+                AND ci.COURSE_ID IS NOT NULL
+                AND stu.ID IS NOT NULL
+                --		AND csb.USER_ID='1948586504800468993'
+                <if test="courseId !=null and courseId != ''">
+                    and ci.COURSE_ID=#{courseId}
+                </if>
+            )t1
+            JOIN (
+                SELECT csb1.ID,csb1.USER_ID,csb1.HOUR_ID,csb1.END_TIME
+                FROM COURSE_STUDENT_BURIALPOINT csb1
+                WHERE csb1.DELETE_FLAG ='NOT_DELETE' AND csb1.FUNC_TYPE='1' AND csb1.TYPE='1' AND csb1.PROGRESS &lt; 100
+                <if test="startTime!=null and startTime != ''">
+                    and csb1.CREATE_TIME &gt;=#{startTime}
+                </if>
+                <if test="endTime!=null and endTime != ''">
+                    and csb1.CREATE_TIME &lt;=#{endTime}
+                </if>
+            ) csb ON csb.HOUR_ID =t1.hourId AND csb.USER_ID=t1.userId
+            WHERE 1=1
+        )tt1
     </select>
     <select id="getNoteCount" resultType="java.lang.String">
         SELECT

+ 3 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/KeyWordAddParam.java

@@ -16,6 +16,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * key_word添加参数
  *
@@ -28,6 +30,7 @@ public class KeyWordAddParam {
 
     /** 名称 */
     @ApiModelProperty(value = "名称", position = 2)
+    @NotBlank(message = "关键词不能为空")
     private String wordName;
 
     /** 是否热门  1 热门 0不热门 */

+ 16 - 11
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/StatisticsLearningProgressServiceImpl.java

@@ -28,11 +28,11 @@ public class StatisticsLearningProgressServiceImpl implements StatisticsLearning
         String courseOpenStuNum=statisticsLearningProgressMapper.getCourseOpenStuNum(param);
         String courseViewNum=statisticsLearningProgressMapper.getCourseViewNum(param);
         String paperSubmitNum=statisticsLearningProgressMapper.getPaperSubmitNum(param);
-//        String interactionNum=statisticsLearningProgressMapper.getInteractionNum(param);
+        String interactionNum=statisticsLearningProgressMapper.getInteractionNum(param);
         result.put("courseOpenStuNum",courseOpenStuNum);
         result.put("courseViewNum",courseViewNum);
         result.put("paperSubmitNum",paperSubmitNum);
-//        result.put("interactionNum",interactionNum);
+        result.put("interactionNum",interactionNum);
         return result;
     }
 
@@ -43,7 +43,6 @@ public class StatisticsLearningProgressServiceImpl implements StatisticsLearning
     public List<Map<String,Object>> viewTendency(Map param)
     {
         List<Map<String,Object> > resultList=new ArrayList();
-        Map result=new HashMap();
         String courseId=null;
         if(ObjectUtil.isNotEmpty(param.get("courseId")))courseId=param.get("courseId").toString();
         String startTime="";
@@ -51,12 +50,14 @@ public class StatisticsLearningProgressServiceImpl implements StatisticsLearning
         String endTime="";
         if(ObjectUtil.isNotEmpty(param.get("endTime")))endTime=param.get("endTime").toString();
         List<String> months = getLastSevenMonths(startTime,endTime);
+        Collections.reverse(months);
         for(String  month:months)
         {
             Map viewTendencyParam =new HashMap();
             viewTendencyParam.put("month",month);
             viewTendencyParam.put("courseId",courseId);
             String viewTendencyNum=statisticsLearningProgressMapper.getViewTendencyNum(param);
+            Map result=new HashMap();
             result.put("month",month);
             result.put("viewTendencyNum",viewTendencyNum);
             resultList.add(result);
@@ -71,7 +72,6 @@ public class StatisticsLearningProgressServiceImpl implements StatisticsLearning
     public List<Map<String,Object>> paperSubmeitTendency(Map param)
     {
         List<Map<String,Object> > resultList=new ArrayList();
-        Map result=new HashMap();
         String courseId=null;
         if(ObjectUtil.isNotEmpty(param.get("courseId")))courseId=param.get("courseId").toString();
         String startTime="";
@@ -79,12 +79,14 @@ public class StatisticsLearningProgressServiceImpl implements StatisticsLearning
         String endTime="";
         if(ObjectUtil.isNotEmpty(param.get("endTime")))endTime=param.get("endTime").toString();
         List<String> months = getLastSevenMonths(startTime,endTime);
+        Collections.reverse(months);
         for(String  month:months)
         {
             Map viewTendencyParam =new HashMap();
             viewTendencyParam.put("month",month);
             viewTendencyParam.put("courseId",courseId);
             String SubmeitTendency=statisticsLearningProgressMapper.paperSubmeitTendency(param);
+            Map result=new HashMap();
             result.put("month",month);
             result.put("SubmeitTendency",SubmeitTendency);
             resultList.add(result);
@@ -135,13 +137,16 @@ public class StatisticsLearningProgressServiceImpl implements StatisticsLearning
             // 将Calendar调整到基准月份的第一天(避免日期溢出问题)
             calendar.set(Calendar.DAY_OF_MONTH, 1);
 
-            // 往前推7个月(共8个月)
-            for (int i = 1; i <= 7; i++) {
-                Calendar temp = (Calendar) calendar.clone();
-                temp.add(Calendar.MONTH, -i); // 往前减i个月
-                String calculateMonth=sdf.format(temp.getTime());
-                months.add(calculateMonth);
-                if(StringUtils.isNotEmpty(baseStartMonth))if(baseStartMonthStr.equals(calculateMonth))break;
+            if(!baseEndMonthStr.equals(baseStartMonthStr))
+            {
+                // 往前推7个月(共8个月)
+                for (int i = 1; i <= 7; i++) {
+                    Calendar temp = (Calendar) calendar.clone();
+                    temp.add(Calendar.MONTH, -i); // 往前减i个月
+                    String calculateMonth=sdf.format(temp.getTime());
+                    months.add(calculateMonth);
+                    if(StringUtils.isNotEmpty(baseStartMonth))if(baseStartMonthStr.equals(calculateMonth))break;
+                }
             }
 
         } catch (Exception e) {