| | |
| | | package com.ots.project.monitor.job.task; |
| | | |
| | | import com.ots.common.enums.TestMemberStatusEnum; |
| | | import com.ots.common.enums.TestPackageStatusEnum; |
| | | import com.ots.project.exam.domain.EntTestMember; |
| | |
| | | import com.ots.project.exam.service.impl.EntOperLogServiceImpl; |
| | | 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.OpertypeEnum.DIS_USER; |
| | | |
| | | /** |
| | | * 控制测试包状态 |
| | | * 到期后需要回收次数的独立程序 |
| | | */ |
| | | @Component("recoverTask") |
| | | public class RecoverTask { |
| | | |
| | | @Autowired |
| | | IEntTestPackageService entTestPackageService; |
| | | @Autowired |
| | | IEntTestMemberService entTestMemberService; |
| | | @Autowired |
| | | private EntOperLogServiceImpl entOperLogService; |
| | | |
| | | |
| | | /** |
| | | * 过期回收评测资格,变更 |
| | | */ |
| | | public void expiredRecyclingTestEligibility() { |
| | | Map paramMap = testPackageParams(); |
| | | |
| | | //过期测试包 |
| | | List<EntTestPackage> entTestPackages = entTestPackageService.selectEntTestPackageListByIdAndStatusIn(paramMap); |
| | | |
| | | |
| | | //需要根据企业用户分组,要登记日志和统计 |
| | | Map<Long, List<EntTestPackage>> collect = entTestPackages.stream().collect(Collectors.groupingBy(EntTestPackage::getUserId)); |
| | | |
| | | collect.forEach((userId, value) -> { |
| | | List<Long> testIds = entTestPackages.stream().map(p -> p.getId()).collect(Collectors.toList()); |
| | | Map map = testMemberParams(testIds); |
| | | List<EntTestMember> entTestMembers = entTestMemberService.selectEntTestMemberList(map); |
| | | |
| | | entTestMembers.stream().forEach(it -> { |
| | | it.setStatus(TestMemberStatusEnum.expiryRecovery.getCode()); |
| | | entTestMemberService.updateEntTestMember(it); |
| | | |
| | | //记录日志 |
| | | entOperLogService.saveLog(userId, "", DIS_USER, Long.valueOf(entTestMembers.size())); |
| | | }); |
| | | entTestPackages.stream().forEach(it -> { |
| | |
| | | entTestPackageService.updateEntTestPackage(it); |
| | | }); |
| | | }); |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 评测人员查询参数 |
| | | * |
| | | * @param testIds |
| | | * @return |
| | | */ |
| | | private Map testMemberParams(List<Long> testIds) { |
| | | Map map = new HashMap(); |
| | | map.put("testIds", testIds); |
| | |
| | | map.put("status", recyclingStatus); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 测试包查询参数 |
| | | * |
| | | * @return |
| | | */ |
| | | private Map testPackageParams() { |
| | | Map paramMap = new HashMap(); |
| | | List<String> status = Arrays.asList(TestPackageStatusEnum.enable.getCode(), TestPackageStatusEnum.pause.getCode()); |