|
@@ -777,7 +777,8 @@ public class FsUserServiceImpl implements IFsUserService
|
|
|
|
|
|
@Override
|
|
|
public FsUserStatisticsVO userStatisticsDetails(UserStatisticsCommonParam param) {
|
|
|
- FsUserStatisticsVO userStatisticsVO = getUserStatistics(param);
|
|
|
+// FsUserStatisticsVO userStatisticsVO = getUserStatistics(param);
|
|
|
+ FsUserStatisticsVO userStatisticsVO = getUserStatistics2(param);
|
|
|
|
|
|
// 判断是否是管理员
|
|
|
CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getUserId());
|
|
@@ -794,6 +795,53 @@ public class FsUserServiceImpl implements IFsUserService
|
|
|
return userStatisticsVO;
|
|
|
}
|
|
|
|
|
|
+ private FsUserStatisticsVO getUserStatistics2(UserStatisticsCommonParam param) {
|
|
|
+ FsUserStatisticsVO fsUserStatisticsVO = new FsUserStatisticsVO();
|
|
|
+
|
|
|
+ // 判断是否是管理员
|
|
|
+ CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getUserId());
|
|
|
+ if (companyUser != null && companyUser.isAdmin()){
|
|
|
+ param.setUserId(0L);
|
|
|
+ param.setCompanyId(companyUser.getCompanyId());
|
|
|
+ }
|
|
|
+ // 获取课程统计
|
|
|
+ Map<String, Long> couserMap = fsUserMapper.countUserCourse2(param);
|
|
|
+ if (couserMap != null) {
|
|
|
+ //看课人数
|
|
|
+ fsUserStatisticsVO.setCourseWatchNum(couserMap.get("courseWatchNum").intValue()).setCourseCompleteNum(couserMap.get("courseCompleteNum").intValue());
|
|
|
+
|
|
|
+ if (couserMap.get("courseCompleteNum") != null && couserMap.get("courseWatchNum") > 0) {
|
|
|
+ int courseCompleteRate = BigDecimal.valueOf(couserMap.get("courseCompleteNum"))
|
|
|
+ .divide(BigDecimal.valueOf(couserMap.get("courseWatchNum")), 2, RoundingMode.HALF_UP)
|
|
|
+ .multiply(BigDecimal.valueOf(100))
|
|
|
+ .intValue();
|
|
|
+ fsUserStatisticsVO.setCourseCompleteRate(courseCompleteRate);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取答题统计
|
|
|
+ Map<String, Long> answerMap = fsUserMapper.countUserAnswer(param);
|
|
|
+ if (answerMap != null) {
|
|
|
+ fsUserStatisticsVO.setAnswerNum(answerMap.get("answerNum").intValue()).setAnswerRightNum(answerMap.get("answerRightNum").intValue());
|
|
|
+
|
|
|
+ if (answerMap.get("answerRightNum") != null && answerMap.get("answerNum") > 0) {
|
|
|
+ int answerCompleteRate = BigDecimal.valueOf(answerMap.get("answerRightNum"))
|
|
|
+ .divide(BigDecimal.valueOf(answerMap.get("answerNum")), 2, RoundingMode.HALF_UP)
|
|
|
+ .multiply(BigDecimal.valueOf(100))
|
|
|
+ .intValue();
|
|
|
+ fsUserStatisticsVO.setAnswerRightRate(answerCompleteRate);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取红包统计
|
|
|
+ Map<String, Object> redPacketMap = fsUserMapper.countUserRedPacket(param);
|
|
|
+ if(redPacketMap != null && redPacketMap.get("redPacketNum") != null && redPacketMap.get("redPacketAmount") != null) {
|
|
|
+ fsUserStatisticsVO.setRedPacketNum(Integer.parseInt(redPacketMap.get("redPacketNum").toString()))
|
|
|
+ .setRedPacketAmount(new BigDecimal(redPacketMap.get("redPacketAmount").toString()));
|
|
|
+ }
|
|
|
+ return fsUserStatisticsVO;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<FsUserRankingVO> userRanking(Long userId, String startTime, String endTime, String periodId, String videoId, String order, Integer type) {
|
|
|
List<FsUserRankingVO> listVO = Collections.emptyList();
|