From 5e873863bc7324894c89b0a0fc77a6202c91cd64 Mon Sep 17 00:00:00 2001 From: wzp <516075396@qq.com> Date: 星期二, 06 四月 2021 10:35:42 +0800 Subject: [PATCH] 20210406 --- src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java | 25 ++++++++----------------- 1 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java b/src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java index 5250508..e05e973 100644 --- a/src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java +++ b/src/main/java/com/ots/project/exam/service/impl/CountCalculateServiceImpl.java @@ -1,5 +1,4 @@ package com.ots.project.exam.service.impl; - import com.ots.common.enums.TestMemberStatusEnum; import com.ots.project.exam.domain.*; import com.ots.project.exam.mapper.EntTestMemberMapper; @@ -8,29 +7,25 @@ import com.ots.project.exam.service.CountCalculateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; - import java.util.*; import java.util.stream.Collectors; +import static com.ots.common.enums.TestMemberStatusEnum.answering; +import static com.ots.common.enums.TestMemberStatusEnum.timeOut; -/** - * 娆℃暟璁$畻缁勪欢 - */ @Component public class CountCalculateServiceImpl implements CountCalculateService { - @Autowired private EntTestMemberMapper entTestMemberMapper; @Autowired private EntTestPackageMapper entTestPackageMapper; @Autowired private SysUserExtendMapper sysUserExtendMapper; - @Override public NumberOfUsersByCompany calculateProductPackagesMemberCount(EntTestPackage entTestPackage) { Long userId = entTestPackage.getUserId(); NumberOfUsersByCompany result = new NumberOfUsersByCompany(); if (Objects.nonNull(userId)) { - //1銆佹煡璇紒涓氱敤鎴锋墿灞曞弬鏁� + SysUserExtend sysUserExtend = sysUserExtendMapper.selectSysUserExtendById(userId); if (Objects.isNull(sysUserExtend)) { return result; @@ -42,17 +37,15 @@ result.setTestNum(testNum.intValue()); } List<EntTestPackage> entTestPackages = findEntTestPackages(entTestPackage); - //3銆佹煡璇㈠綋鍓嶆祴璇曞寘涓嬬殑鐢ㄦ埛 + if (Objects.nonNull(entTestPackages) && !entTestPackages.isEmpty()) { result = constructResult(userId, entTestPackages); } return result; } - private List<EntTestPackage> findEntTestPackages(EntTestPackage entTestPackage) { return entTestPackageMapper.selectEntTestPackageList(entTestPackage); } - private NumberOfUsersByCompany constructResult(Long userId, List<EntTestPackage> entTestPackages) { List<Long> collect = entTestPackages.stream().map(p -> p.getId()).collect(Collectors.toList()); List<EntTestMember> entTestMembers = findEntTestMembers(collect); @@ -63,7 +56,7 @@ if (Objects.nonNull(result.getTestNum())) { result.setUsedTimes(entTestMembers.size()); } - //4銆佹瘡涓祴璇曞寘鐨勪娇鐢ㄦ儏鍐� + Map<Long, List<EntTestMember>> testPackageUsageTimesMap = entTestMembers.stream().collect(Collectors.groupingBy(EntTestMember::getTestId)); entTestPackages.stream().forEach(p -> { NumberOfUsersByPackage numberOfUsersByPackage = new NumberOfUsersByPackage(); @@ -75,7 +68,7 @@ if (Objects.nonNull(testMembers)) { total = Long.valueOf(testMembers.size()); finishNum = testMembers.stream().filter(testMember -> TestMemberStatusEnum.completed.getCode().equals(testMember.getStatus())).mapToLong(x -> 1).sum(); - testIngNum = testMembers.stream().filter(testMember -> TestMemberStatusEnum.answering.getCode().equals(testMember.getStatus())).mapToLong(x -> 1).sum(); + testIngNum = testMembers.stream().filter(testMember -> answering.getCode().equals(testMember.getStatus())).mapToLong(x -> 1).sum(); unTestNum = total - testIngNum - finishNum; } numberOfUsersByPackage.setTestNum(total); @@ -89,14 +82,12 @@ }); return result; } - private List<EntTestMember> findEntTestMembers(List<Long> collect) { Map map = new HashMap(); map.put("testIds", collect); - //unprocessed("0", "鏈鐞�"),completed("1", "宸插畬鎴�"),answering("2", "绛旈涓�"), 涓夌鐘舵�佺畻宸茬粡浣跨敤浜嗘鏁� - List<String> recyclingStatus = Arrays.asList(TestMemberStatusEnum.unprocessed.getCode(), TestMemberStatusEnum.completed.getCode(), TestMemberStatusEnum.answering.getCode()); + + List<String> recyclingStatus = Arrays.asList(TestMemberStatusEnum.unprocessed.getCode(), TestMemberStatusEnum.completed.getCode(), answering.getCode(), timeOut.getCode()); map.put("status", recyclingStatus); return entTestMemberMapper.selectEntTestMemberListByMap(map); } - } -- Gitblit v1.9.1