Bladeren bron

company-app 参与记录查询调整

Long 2 dagen geleden
bovenliggende
commit
7440ec0454

+ 16 - 2
fs-company-app/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java

@@ -5,6 +5,8 @@ import com.fs.app.config.ImageStorageConfig;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.ResponseResult;
 import com.fs.common.utils.StringUtils;
+import com.fs.company.domain.CompanyUser;
+import com.fs.company.service.ICompanyUserService;
 import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.param.FsCourseLinkCreateParam;
 import com.fs.course.param.newfs.FsCourseSortLinkParam;
@@ -30,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.InputStream;
-import java.time.LocalDate;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -58,6 +59,8 @@ public class FsUserCourseVideoController extends AppBaseController {
 
     @Autowired
     private IFsUserCoursePeriodService fsUserCoursePeriodService;
+    @Autowired
+    private ICompanyUserService companyUserService;
 
     @Login
     @GetMapping("/pageList")
@@ -108,12 +111,23 @@ public class FsUserCourseVideoController extends AppBaseController {
                                                       @RequestParam(required = false) String keyword,
                                                       @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                       @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
-        log.debug("参与记录 keyword: {}, pageNum: {}, pageSize: {}", keyword, pageNum, pageSize);
+        log.debug("参与记录 videoId:{}, type:{}, keyword: {}, pageNum: {}, pageSize: {}", videoId, type, keyword, pageNum, pageSize);
         Map<String, Object> params = new HashMap<>();
         params.put("videoId", videoId);
         params.put("type", type);
         params.put("keyword", keyword);
 
+        // type 0 答题领奖记录----答题正确并且领取红包的
+        // type 1 完播----这堂课看完的人
+        // type 2 未完播---看课中断
+        // 管理员看整个公司 否则看自己的
+        CompanyUser companyUser = companyUserService.selectCompanyUserByUserId(Long.parseLong(getUserId()));
+        if (companyUser.isAdmin()) {
+            params.put("companyId", companyUser.getCompanyId());
+        } else {
+            params.put("companyUserId", companyUser.getUserId());
+        }
+
         PageHelper.startPage(pageNum, pageSize);
         List<FsUserCourseParticipationRecordVO> record = fsUserCourseService.getParticipationRecordByMap(params);
         return ResponseResult.ok(new PageInfo<>(record));

+ 15 - 7
fs-service-system/src/main/resources/mapper/course/FsUserCourseMapper.xml

@@ -267,6 +267,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         inner join fs_course_watch_log fcwl on fcwl.video_id = fucv.video_id
         inner join fs_user fu on fu.user_id = fcwl.user_id
         where fucv.video_id = #{params.videoId}
+        <if test="params.companyId != null">
+            and fcwl.company_id = #{params.companyId}
+        </if>
+        <if test="params.companyUserId != null">
+            and fcwl.company_user_id = #{params.companyUserId}
+        </if>
         <if test="params.keyword != null and params.keyword != ''">
             and (
                 fu.user_id = #{params.keyword}
@@ -278,20 +284,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <choose>
             <when test="params.type == 0">
                 and (
-                    select count(log_id) as count
-                    from fs_course_answer_logs
-                    where user_id = fu.user_id and fcwl.video_id = fucv.video_id and is_right = 1
+                    select count(log.log_id) as count
+                    from fs_course_answer_logs log
+                    where log.user_id = fu.user_id and log.video_id = fucv.video_id and log.is_right = 1
+                ) > 0
+                and (
+                    select count(log.log_id) as count
+                    from fs_course_red_packet_log log
+                    where log.user_id = fu.user_id and log.video_id = fucv.video_id and log.status = 1
                 ) > 0
             </when>
             <when test="params.type == 1">
                 and fcwl.log_type = 2
             </when>
             <when test="params.type == 2">
-                and fcwl.log_type in (1,4)
+                and fcwl.log_type = 4
             </when>
-            <otherwise>
-                and fcwl.log_type = 3
-            </otherwise>
         </choose>
         group by fu.user_id, fucv.video_id, fu.nickname, fu.username, fu.avatar, fu.phone, fu.create_time
     </select>