ソースを参照

会员统计相关

xdd 1 ヶ月 前
コミット
8fd66f44bc

+ 7 - 2
fs-company/src/main/java/com/fs/course/controller/FsCourseAnswerLogsController.java

@@ -46,12 +46,17 @@ public class FsCourseAnswerLogsController extends BaseController
     @GetMapping("/list")
     public TableDataInfo list(FsCourseAnswerLogsParam param)
     {
-        startPage();
         if (param.getPhoneMk() != null && param.getPhoneMk() != "") {
             param.setPhone(param.getPhoneMk());
         }
         List<FsCourseAnswerLogsListVO> list = fsCourseAnswerLogsService.selectFsCourseAnswerLogsListVONew(param);
-        return getDataTable(list);
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        rspData.setTotal(fsCourseAnswerLogsService.selectFsCourseAnswerLogsListVONewCount(param));
+
+        return rspData;
     }
 
     /**

+ 14 - 5
fs-company/src/main/java/com/fs/course/controller/qw/QwFsCourseAnswerLogsController.java

@@ -1,6 +1,7 @@
 package com.fs.course.controller.qw;
 
 import com.fs.common.annotation.Log;
+import com.fs.common.constant.HttpStatus;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.page.TableDataInfo;
@@ -12,6 +13,7 @@ import com.fs.core.web.service.TokenService;
 import com.fs.course.param.FsCourseAnswerLogsParam;
 import com.fs.course.service.IFsCourseAnswerLogsService;
 import com.fs.course.vo.FsCourseAnswerLogsListVO;
+import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -44,13 +46,17 @@ public class QwFsCourseAnswerLogsController extends BaseController
     @GetMapping("/list")
     public TableDataInfo list(FsCourseAnswerLogsParam param)
     {
-        startPage();
         if (param.getPhoneMk() != null && param.getPhoneMk() != "") {
             param.setPhone(encryptPhone(param.getPhoneMk()));
         }
 
         List<FsCourseAnswerLogsListVO> list = fsCourseAnswerLogsService.selectFsCourseAnswerLogsListVO(param);
-        return getDataTable(list);
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        rspData.setTotal(fsCourseAnswerLogsService.selectFsCourseAnswerLogsListVOCount(param));
+        return rspData;
     }
 
     /**
@@ -60,8 +66,6 @@ public class QwFsCourseAnswerLogsController extends BaseController
     @GetMapping("/myList")
     public TableDataInfo myList(FsCourseAnswerLogsParam param)
     {
-        startPage();
-
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         param.setCompanyId( loginUser.getCompany().getCompanyId());
 
@@ -70,7 +74,12 @@ public class QwFsCourseAnswerLogsController extends BaseController
         }
 
         List<FsCourseAnswerLogsListVO> list = fsCourseAnswerLogsService.selectFsCourseAnswerLogsListVO(param);
-        return getDataTable(list);
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        rspData.setTotal(fsCourseAnswerLogsService.selectFsCourseAnswerLogsListVOCount(param));
+        return rspData;
     }
     /**
      * 导出答题日志列表

+ 2 - 36
fs-service-system/src/main/java/com/fs/course/mapper/FsCourseAnswerLogsMapper.java

@@ -32,43 +32,9 @@ public interface FsCourseAnswerLogsMapper
      */
     public List<FsCourseAnswerLogs> selectFsCourseAnswerLogsList(FsCourseAnswerLogs fsCourseAnswerLogs);
 
-    @Select("<script>" +
-            "SELECT\n" +
-            "\tfu.nick_name AS userName,\n" +
-            "\tfu.avatar AS fsAvatar,\n" +
-            "\tucv.title as videoName,\n" +
-            "\tucv.course_id as courseId,\n" +
-            "\tuc.course_name as courseName,\n" +
-            "\tcu.nick_name as companyUserName,\n" +
-            "\tqu.qw_user_name as qwUserName,\n" +
-            "\tc.company_name as companyName,\n" +
-            "\tcal.* \n" +
-            "FROM\n" +
-            "\tfs_course_answer_logs cal\n" +
-            "\tLEFT JOIN fs_user fu ON cal.user_id = fu.user_id\n" +
-            "\tLEFT JOIN fs_user_course_video ucv on cal.video_id=ucv.video_id\n" +
-            "\tLEFT JOIN fs_user_course uc on uc.course_id=ucv.course_id\n" +
-            "  LEFT JOIN company_user cu on cu.user_id = cal.company_user_id\n" +
-            "\tLEFT JOIN qw_user qu on qu.id=cal.qw_user_id\n" +
-            "\tLEFT JOIN company c on cal.company_id=c.company_id " +
-            "        <where>  \n" +
-            "            <if test=\"map.phone != null \"> and fu.phone = #{map.phone}</if>\n" +
-            "            <if test=\"map.courseId != null \"> and uc.course_id = #{map.courseId}</if>\n" +
-            "            <if test=\"map.videoId != null \"> and cal.video_id = #{map.videoId}</if>\n" +
-            "            <if test=\"map.watchLogId != null \"> and cal.watch_log_id = #{map.watchLogId}</if>\n" +
-            "            <if test=\"map.userId != null \"> and cal.user_id = #{map.userId}</if>\n" +
-            "            <if test=\"map.isRight != null \"> and cal.is_right = #{map.isRight}</if>\n" +
-            "            <if test=\"map.qwUserId != null \"> and cal.qw_user_id = #{map.qwUserId}</if>\n" +
-            "            <if test=\"map.companyUserName != null \"> and cu.nick_name  like concat('%', #{map.companyUserName}, '%') </if>\n" +
-            "            <if test=\"map.nickName != null \"> and fu.nick_name  like concat('%', #{map.nickName}, '%') </if>\n" +
-            "            <if test=\"map.companyId != null \"> and cal.company_id = #{map.companyId}</if>\n" +
-            "            <if test=\"map.createTime != null \"> and Date(cal.create_time) = #{map.createTime}</if>\n" +
-            "<if test=\"map.sTime != null \">  and DATE(cal.create_time) &gt;= DATE(#{map.sTime})</if>\n" +
-            "<if test=\"map.eTime != null \">  and DATE(cal.create_time) &lt;= DATE(#{map.eTime})</if>\n" +
-            "        </where>  " +
-            "order by cal.log_id desc  " +
-            " </script>")
+
     public List<FsCourseAnswerLogsListVO> selectFsCourseAnswerLogsListVO(@Param("map") FsCourseAnswerLogsParam param);
+    public Long selectFsCourseAnswerLogsListVOCount(@Param("map") FsCourseAnswerLogsParam param);
 
     /**
      * 新增答题日志

+ 1 - 0
fs-service-system/src/main/java/com/fs/course/service/IFsCourseAnswerLogsService.java

@@ -30,6 +30,7 @@ public interface IFsCourseAnswerLogsService
      */
     public List<FsCourseAnswerLogs> selectFsCourseAnswerLogsList(FsCourseAnswerLogs fsCourseAnswerLogs);
     public List<FsCourseAnswerLogsListVO> selectFsCourseAnswerLogsListVO(FsCourseAnswerLogsParam param);
+    public Long selectFsCourseAnswerLogsListVOCount(FsCourseAnswerLogsParam param);
     public List<FsCourseAnswerLogsListVO> selectFsCourseAnswerLogsListVONew(FsCourseAnswerLogsParam param);
     public Long selectFsCourseAnswerLogsListVONewCount(FsCourseAnswerLogsParam param);
 

+ 5 - 0
fs-service-system/src/main/java/com/fs/course/service/impl/FsCourseAnswerLogsServiceImpl.java

@@ -79,6 +79,11 @@ public class FsCourseAnswerLogsServiceImpl implements IFsCourseAnswerLogsService
         return fsCourseAnswerLogsMapper.selectFsCourseAnswerLogsListVO(param);
     }
 
+    @Override
+    public Long selectFsCourseAnswerLogsListVOCount(FsCourseAnswerLogsParam param) {
+        return fsCourseAnswerLogsMapper.selectFsCourseAnswerLogsListVOCount(param);
+    }
+
     @Override
     public List<FsCourseAnswerLogsListVO> selectFsCourseAnswerLogsListVONew(FsCourseAnswerLogsParam param) {
         List<FsCourseAnswerLogsListVO> data = fsCourseAnswerLogsMapper.selectFsCourseAnswerLogsListVONew(param);

+ 96 - 9
fs-service-system/src/main/resources/mapper/course/FsCourseAnswerLogsMapper.xml

@@ -41,29 +41,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where log_id = #{logId}
     </select>
     <select id="selectFsCourseAnswerLogsListVONew" resultType="com.fs.course.vo.FsCourseAnswerLogsListVO">
-        select cal.*,uc.course_name as course_name,uc.project as project from fs_course_answer_logs cal
-        left join fs_user_course uc on cal.course_id=uc.course_id
+        SELECT
+        cal.*, uc.course_name AS course_name, uc.project AS project
+        FROM
+        fs_course_answer_logs cal
+        INNER JOIN (
+        SELECT
+        cal_inner.log_id
+        FROM
+        fs_course_answer_logs cal_inner
+        LEFT JOIN fs_user_course uc_inner ON cal_inner.course_id = uc_inner.course_id
         <where>
             <if test="courseId != null">
-                cal.course_id = #{courseId}
+                cal_inner.course_id = #{courseId}
             </if>
             <if test="companyUserId != null">
-                AND cal.company_user_id = #{companyUserId}
+                AND cal_inner.company_user_id = #{companyUserId}
             </if>
             <if test="companyId != null">
-                AND cal.company_id = #{companyId}
+                AND cal_inner.company_id = #{companyId}
             </if>
             <if test="isRight != null">
-                AND is_right = #{isRight}
+                AND cal_inner.is_right = #{isRight}
             </if>
             <if test="project != null">
-                AND uc.project = #{project}
+                AND uc_inner.project = #{project}
             </if>
             <if test="sTime != null and eTime != null">
-                AND cal.create_time BETWEEN #{sTime} AND #{eTime}
+                AND cal_inner.create_time BETWEEN #{sTime} AND #{eTime}
             </if>
-
         </where>
+        ORDER BY cal_inner.log_id DESC
+        LIMIT ${(pageNum-1)*pageSize}, ${pageSize}
+        ) AS paged_ids ON cal.log_id = paged_ids.log_id
+        LEFT JOIN fs_user_course uc ON cal.course_id = uc.course_id
+        ORDER BY
+        cal.log_id DESC
 
     </select>
     <select id="selectFsCourseAnswerLogsListVONewCount" resultType="java.lang.Long">
@@ -91,6 +104,80 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
         </where>
     </select>
+    <select id="selectFsCourseAnswerLogsListVO" resultType="com.fs.course.vo.FsCourseAnswerLogsListVO">
+        SELECT
+        fu.nick_name AS userName,
+        fu.avatar AS fsAvatar,
+        ucv.title as videoName,
+        ucv.course_id as courseId,
+        uc.course_name as courseName,
+        cu.nick_name as companyUserName,
+        qu.qw_user_name as qwUserName,
+        c.company_name as companyName,
+        cal.*
+        FROM
+        fs_course_answer_logs cal
+        INNER JOIN (
+        SELECT cal_inner.log_id
+        FROM fs_course_answer_logs cal_inner
+        LEFT JOIN fs_user fu_inner ON cal_inner.user_id = fu_inner.user_id
+        LEFT JOIN fs_user_course_video ucv_inner on cal_inner.video_id=ucv_inner.video_id
+        LEFT JOIN fs_user_course uc_inner on uc_inner.course_id=ucv_inner.course_id
+        LEFT JOIN company_user cu_inner on cu_inner.user_id = cal_inner.company_user_id
+        <where>
+            <if test='map.phone != null '> and fu_inner.phone = #{map.phone}</if>
+            <if test='map.courseId != null '> and uc_inner.course_id = #{map.courseId}</if>
+            <if test='map.videoId != null '> and cal_inner.video_id = #{map.videoId}</if>
+            <if test='map.watchLogId != null '> and cal_inner.watch_log_id = #{map.watchLogId}</if>
+            <if test='map.userId != null '> and cal_inner.user_id = #{map.userId}</if>
+            <if test='map.isRight != null '> and cal_inner.is_right = #{map.isRight}</if>
+            <if test='map.qwUserId != null '> and cal_inner.qw_user_id = #{map.qwUserId}</if>
+            <if test='map.companyUserName != null '> and cu_inner.nick_name  like concat(#{map.companyUserName}, '%') </if>
+            <if test='map.nickName != null '> and fu_inner.nick_name  like concat(#{map.nickName}, '%') </if>
+            <if test='map.companyId != null '> and cal_inner.company_id = #{map.companyId}</if>
+            <if test='map.createTime != null '> and Date(cal_inner.create_time) = #{map.createTime}</if>
+            <if test='map.sTime != null '>  and DATE(cal_inner.create_time) &gt;= DATE(#{map.sTime})</if>
+            <if test='map.eTime != null '>  and DATE(cal_inner.create_time) &lt;= DATE(#{map.eTime})</if>
+        </where>
+        ORDER BY cal_inner.log_id DESC
+        LIMIT ${(map.pageNum-1)*map.pageSize}, ${map.pageSize}
+        ) AS paged_ids ON cal.log_id = paged_ids.log_id
+        LEFT JOIN fs_user fu ON cal.user_id = fu.user_id
+        LEFT JOIN fs_user_course_video ucv on cal.video_id=ucv.video_id
+        LEFT JOIN fs_user_course uc on uc.course_id=ucv.course_id
+        LEFT JOIN company_user cu on cu.user_id = cal.company_user_id
+        LEFT JOIN qw_user qu on qu.id=cal.qw_user_id
+        LEFT JOIN company c on cal.company_id=c.company_id
+        ORDER BY
+        cal.log_id DESC
+    </select>
+    <select id="selectFsCourseAnswerLogsListVOCount" resultType="java.lang.Long">
+        SELECT
+        count(1)
+        FROM
+        fs_course_answer_logs cal
+        LEFT JOIN fs_user fu ON cal.user_id = fu.user_id
+        LEFT JOIN fs_user_course_video ucv on cal.video_id=ucv.video_id
+        LEFT JOIN fs_user_course uc on uc.course_id=ucv.course_id
+        LEFT JOIN company_user cu on cu.user_id = cal.company_user_id
+        LEFT JOIN qw_user qu on qu.id=cal.qw_user_id
+        LEFT JOIN company c on cal.company_id=c.company_id
+        <where>
+            <if test='map.phone != null '> and fu.phone = #{map.phone}</if>
+            <if test='map.courseId != null '> and uc.course_id = #{map.courseId}</if>
+            <if test='map.videoId != null '> and cal.video_id = #{map.videoId}</if>
+            <if test='map.watchLogId != null '> and cal.watch_log_id = #{map.watchLogId}</if>
+            <if test='map.userId != null '> and cal.user_id = #{map.userId}</if>
+            <if test='map.isRight != null '> and cal.is_right = #{map.isRight}</if>
+            <if test='map.qwUserId != null '> and cal.qw_user_id = #{map.qwUserId}</if>
+            <if test='map.companyUserName != null '> and cu.nick_name  like concat(#{map.companyUserName}, '%') </if>
+            <if test='map.nickName != null '> and fu.nick_name  like concat(#{map.nickName}, '%') </if>
+            <if test='map.companyId != null '> and cal.company_id = #{map.companyId}</if>
+            <if test='map.createTime != null '> and Date(cal.create_time) = #{map.createTime}</if>
+            <if test='map.sTime != null '>  and DATE(cal.create_time) &gt;= DATE(#{map.sTime})</if>
+            <if test='map.eTime != null '>  and DATE(cal.create_time) &lt;= DATE(#{map.eTime})</if>
+        </where>
+    </select>
 
     <insert id="insertFsCourseAnswerLogs" parameterType="FsCourseAnswerLogs" useGeneratedKeys="true" keyProperty="logId">
         insert into fs_course_answer_logs