Browse Source

Merge remote-tracking branch 'origin/master'

三七 2 weeks ago
parent
commit
752967bb8d

+ 4 - 5
fs-company-app/src/main/java/com/fs/app/controller/CompanyUserController.java

@@ -1,12 +1,10 @@
 package com.fs.app.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.fs.app.annotation.Login;
 import com.fs.app.vo.CompanySubUserVO;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.bean.BeanUtils;
 import com.fs.company.domain.CompanyUser;
-import com.fs.company.param.BaseQueryParam;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.course.service.IFsCourseRedPacketLogService;
 import com.fs.course.service.IFsCourseWatchLogService;
@@ -38,9 +36,10 @@ public class CompanyUserController extends AppBaseController {
     @Login
     @ApiOperation("下级用户列表")
     @GetMapping("/getCompanyUserList")
-    public R getCompanyUserList(@RequestParam BaseQueryParam baseParam) {
-        log.debug("下级用户列表 param:{}", JSON.toJSONString(baseParam));
-        PageHelper.startPage(baseParam.getPageNum(), baseParam.getPageSize());
+    public R getCompanyUserList(@RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+        log.debug("下级用户列表 pageNum: {}, pageSize: {}", pageNum, pageSize);
+        PageHelper.startPage(pageNum, pageSize);
         List<CompanyUser> companyUsers = companyUserService.selectCompanySubUserList(Long.parseLong(getUserId()));
         PageInfo<CompanyUser> page = new PageInfo<>(companyUsers);
 

+ 0 - 18
fs-company-app/src/main/java/com/fs/app/controller/FsUserController.java

@@ -107,22 +107,4 @@ public class FsUserController extends AppBaseController {
         Boolean r = fsUserService.disabledUser(ids, true);
         return ResponseResult.ok(r);
     }
-
-    /**
-     * 统计经销商会员总数和群管总数
-     */
-    @Login
-    @ApiOperation("统计经销商会员总数和群管总数")
-    @PostMapping("/getCompanyUserAndUserCount")
-    public R getCompanyUserAndUserCount(@RequestBody CompanyQueryVo companyQueryVo)  {
-        ValidateUtil.validate(companyQueryVo.getStartTime(), companyQueryVo.getEndTime());
-        if (companyQueryVo.getType()==0){
-            companyQueryVo.setCompanyId(getCompanyId());
-        }else {
-            companyQueryVo.setCompanyUserId(Long.parseLong(getUserId()));
-        }
-        Map<String, Integer> companyUserAndUserCount = fsUserService.getCompanyUserAndUserCount(companyQueryVo);
-        return R.ok().put("data",companyUserAndUserCount);
-    }
-
 }

+ 24 - 0
fs-company-app/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java

@@ -1,10 +1,12 @@
 package com.fs.app.controller;
 
+import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.ResponseResult;
 import com.fs.course.param.newfs.FsUserCourseListParam;
 import com.fs.course.param.newfs.UserCourseVideoPageParam;
 import com.fs.course.service.IFsUserCourseService;
 import com.fs.course.service.IFsUserCourseVideoService;
+import com.fs.course.vo.FsCourseAnalysisVO;
 import com.fs.course.vo.FsUserCourseListPVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoDetailsVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoPageListVO;
@@ -16,7 +18,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 @Api("课程库相关接口")
@@ -55,4 +59,24 @@ public class FsUserCourseVideoController extends AppBaseController {
         PageInfo<FsUserCourseListPVO> pageInfo = new PageInfo<>(fsUserCourseList);
         return ResponseResult.ok(pageInfo);
     }
+
+    @ApiOperation("课程分析")
+    @GetMapping("/courseAnalysis")
+    public R courseAnalysis(@RequestParam(required = false) Long courseId,
+                            @RequestParam(required = false) Integer status,
+                            @RequestParam(required = false, value = "true") Boolean isToday,
+                            @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+                            @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+
+        Map<String,Object> params = new HashMap<>();
+        params.put("courseId", courseId);
+        params.put("companyId", getCompanyId());
+        params.put("isToday", isToday);
+        params.put("status", status);
+
+        // TODO: 查询课程
+        PageHelper.startPage(pageNum, pageSize);
+        List<FsCourseAnalysisVO> list = fsUserCourseVideoService.getCourseAnalysisByMap(params);
+        return R.ok().put("data", new PageInfo<>(list));
+    }
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -260,7 +260,7 @@ public interface CompanyUserMapper
      * 批量审核用户
      * @param userIds 用户ID集合
      */
-    void auditUsers(List<Long> userIds);
+    void auditUsers(@Param("userIds") List<Long> userIds);
 
     List<CompanyUser> getAllUserListLimit(@Param("companyId") Long companyId,
                                           @Param("keywords") String keywords);

+ 9 - 0
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseVideoMapper.java

@@ -1,10 +1,13 @@
 package com.fs.course.mapper;
 
 import java.util.List;
+import java.util.Map;
+
 import com.fs.course.domain.FsUserCourseVideo;
 import com.fs.course.param.FsUserCourseVideoListUParam;
 import com.fs.course.param.FsUserCourseVideoParam;
 import com.fs.course.param.newfs.UserCourseVideoPageParam;
+import com.fs.course.vo.FsCourseAnalysisVO;
 import com.fs.course.vo.FsUserCourseVideoListUVO;
 import com.fs.course.vo.FsUserCourseVideoVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoPageListVO;
@@ -164,4 +167,10 @@ public interface FsUserCourseVideoMapper
 
     List<FsUserCourseVideoPageListVO> selectFsUserCourseVideoPageList(UserCourseVideoPageParam param);
 
+    /**
+     * 获取课程分析数据
+     * @param params 参数
+     * @return list
+     */
+    List<FsCourseAnalysisVO> getCourseAnalysisByMap(@Param("params") Map<String, Object> params);
 }

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

@@ -1,6 +1,7 @@
 package com.fs.course.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.fs.common.core.domain.R;
 import com.fs.course.domain.FsUserCourse;

+ 8 - 0
fs-service-system/src/main/java/com/fs/course/service/IFsUserCourseVideoService.java

@@ -5,6 +5,7 @@ import com.fs.common.core.domain.ResponseResult;
 import com.fs.course.domain.FsUserCourseVideo;
 import com.fs.course.param.*;
 import com.fs.course.param.newfs.UserCourseVideoPageParam;
+import com.fs.course.vo.FsCourseAnalysisVO;
 import com.fs.course.vo.FsUserCourseVideoListUVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoDetailsVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoPageListVO;
@@ -12,6 +13,7 @@ import com.fs.course.vo.FsUserCourseVideoQVO;
 import com.fs.course.vo.FsUserCourseVideoVO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 课堂视频Service接口
@@ -104,4 +106,10 @@ public interface IFsUserCourseVideoService
      */
     ResponseResult<FsUserCourseVideoDetailsVO> getVideoDetails(Long videoId);
 
+    /**
+     * 获取课程分析数据
+     * @param params 参数
+     * @return list
+     */
+    List<FsCourseAnalysisVO> getCourseAnalysisByMap(Map<String, Object> params);
 }

+ 2 - 3
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseServiceImpl.java

@@ -21,9 +21,8 @@ import com.fs.his.vo.OptionsVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
+
+import java.util.*;
 
 /**
  * 课程Service业务层处理

+ 12 - 0
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -16,6 +16,7 @@ import com.fs.course.mapper.*;
 import com.fs.course.param.*;
 import com.fs.course.param.newfs.UserCourseVideoPageParam;
 import com.fs.course.service.IFsUserCourseVideoService;
+import com.fs.course.vo.FsCourseAnalysisVO;
 import com.fs.course.vo.FsUserCourseVideoListUVO;
 import com.fs.course.vo.FsUserCourseVideoQVO;
 import com.fs.course.vo.FsUserCourseVideoVO;
@@ -52,6 +53,7 @@ import java.time.LocalDateTime;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -738,4 +740,14 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         fsUserCourseVideoDetailsVO.setQuestionBankList(questionList);
         return ResponseResult.ok(fsUserCourseVideoDetailsVO);
     }
+
+    /**
+     * 获取课程分析数据
+     * @param params 参数
+     * @return list
+     */
+    @Override
+    public List<FsCourseAnalysisVO> getCourseAnalysisByMap(Map<String, Object> params) {
+        return fsUserCourseVideoMapper.getCourseAnalysisByMap(params);
+    }
 }

+ 61 - 0
fs-service-system/src/main/java/com/fs/course/vo/FsCourseAnalysisVO.java

@@ -0,0 +1,61 @@
+package com.fs.course.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class FsCourseAnalysisVO {
+    /**
+     * 课程ID
+     */
+    private Long courseId;
+    /**
+     * 课程名称
+     */
+    private String courseName;
+    /**
+     * 标题
+     */
+    private String title;
+    /**
+     * 封面
+     */
+    private String imgUrl;
+    /**
+     * 课程描述
+     */
+    private String description;
+    /**
+     * 观看人数
+     */
+    private Long viewUsers;
+    /**
+     * 完播人数
+     */
+    private Long finishUsers;
+    /**
+     * 完播率
+     */
+    private Long finishRate;
+    /**
+     * 答题红包数
+     */
+    private Long redPacketCount;
+    /**
+     * 答题红包金额
+     */
+    private BigDecimal redPacketAmount;
+    /**
+     * 答题人数
+     */
+    private Long answerUsers;
+    /**
+     * 正确人数
+     */
+    private Long correctUsers;
+    /**
+     * 正确率
+     */
+    private Long correctRate;
+}

+ 0 - 16
fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java

@@ -238,20 +238,4 @@ public interface FsUserMapper
     Long selectCusListPageCount(SelectCusListPageParam param);
 
     void transferCompanyUser(FsUserTransferParamDTO param);
-
-    /**
-     * 公司fsUser数
-     * @param companyId 公司ID
-     * @return count
-     */
-    @Select("select count(fu.user_id) from fs_user fu where fu.company_id = #{companyId}")
-    int selectCountByCompanyId(@Param("companyId") Long companyId);
-
-    /**
-     * 公司销售fsUser数
-     * @param companyUserId 销售ID
-     * @return count
-     */
-    @Select("select count(fu.user_id) from fs_user fu where fu.company_user_id = #{companyUserId}")
-    int selectCountByCompanyUserId(@Param("companyUserId") Long companyUserId);
 }

+ 0 - 1
fs-service-system/src/main/java/com/fs/store/service/IFsUserService.java

@@ -152,5 +152,4 @@ public interface IFsUserService
      */
     Map<String, Long> getUserVipCountByCompanyUserId(Long companyUserId);
 
-    Map<String, Integer> getCompanyUserAndUserCount(CompanyQueryVo companyQueryVo);
 }

+ 0 - 26
fs-service-system/src/main/java/com/fs/store/service/impl/FsUserServiceImpl.java

@@ -473,30 +473,4 @@ public class FsUserServiceImpl implements IFsUserService
     public Map<String, Long> getUserVipCountByCompanyUserId(Long companyUserId) {
         return fsUserMapper.getUserVipCountByCompanyUserId(companyUserId);
     }
-
-    @Override
-    public Map<String, Integer> getCompanyUserAndUserCount(CompanyQueryVo companyQueryVo) {
-        if (companyQueryVo.getCompanyId() == null && companyQueryVo.getCompanyUserId() == null) {
-            return Collections.emptyMap();
-        }
-
-        HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
-        if (companyQueryVo.getCompanyId() != null) {
-            Long companyId = companyQueryVo.getCompanyId();
-            //会员人数
-            int count = fsUserMapper.selectCountByCompanyId(companyId);
-            //群管人数
-            Integer companyCount = companyUserService.selectCompanyUserCountByCompanyId(companyId);
-            stringIntegerHashMap.put("companyUserUserCount", count);
-            stringIntegerHashMap.put("companyUserCount", companyCount);
-            return stringIntegerHashMap;
-        } else if (companyQueryVo.getCompanyUserId() != null) {
-            Long companyUserId = companyQueryVo.getCompanyUserId();
-            //会员人数
-            int count = fsUserMapper.selectCountByCompanyUserId(companyUserId);
-            stringIntegerHashMap.put("companyUserUserCount", count);
-            return stringIntegerHashMap;
-        }
-        return Collections.emptyMap();
-    }
 }

+ 1 - 1
fs-service-system/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -414,7 +414,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         update company_user
         set is_audit = 1
         where user_id in
-        <foreach collection="ids" open="(" close=")" separator="," item="id">
+        <foreach collection="userIds" open="(" close=")" separator="," item="id">
             #{id}
         </foreach>
     </update>

+ 12 - 0
fs-service-system/src/main/resources/mapper/course/FsUserCourseVideoMapper.xml

@@ -188,4 +188,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
         order by video.course_sort
     </select>
+
+    <!-- 获取课程分析数据 -->
+    <select id="getCourseAnalysisByMap" resultType="com.fs.course.vo.FsCourseAnalysisVO">
+        select
+            fuc.course_id,
+            fuc.course_name,
+            fucv.title,
+            fuc.img_url,
+            fucv.description
+        from fs_user_course_video fucv
+        left join fs_user_course fuc on fuc.course_id = fucv.course_id
+    </select>
 </mapper>