package com.ots.project.exam.service.impl;
|
import com.ots.common.enums.TestMemberStatusEnum;
|
import com.ots.common.utils.DateUtils;
|
import com.ots.common.utils.StringUtils;
|
import com.ots.common.utils.security.ShiroUtils;
|
import com.ots.common.utils.text.Convert;
|
import com.ots.project.exam.domain.*;
|
import com.ots.project.exam.mapper.EntTestPackageMapper;
|
import com.ots.project.exam.service.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import java.util.*;
|
import static com.ots.common.enums.OpertypeEnum.DIS_USER;
|
import static com.ots.common.enums.ResponseCode.ERROR_RECOVER;
|
|
@Service
|
public class EntTestPackageServiceImpl implements IEntTestPackageService {
|
@Autowired
|
private EntTestPackageMapper entTestPackageMapper;
|
@Autowired
|
private IEntTestMemberService entTestMemberService;
|
@Autowired
|
private CountCalculateService calculate;
|
@Autowired
|
private IEntOperLogService entOperLogService;
|
@Autowired
|
private ITReportTemplateService reportTemplateService;
|
|
@Override
|
public EntTestPackage selectEntTestPackageById(Long id) {
|
return entTestPackageMapper.selectEntTestPackageById(id);
|
}
|
|
@Override
|
public List<EntTestPackage> selectEntTestPackageList(EntTestPackage entTestPackage) {
|
List<EntTestPackage> entTestPackages = entTestPackageMapper.selectEntTestPackageList(entTestPackage);
|
NumberOfUsersByCompany numberOfUsersByCompany = calculate.calculateProductPackagesMemberCount(entTestPackage);
|
entTestPackages.stream().forEach(p -> {
|
NumberOfUsersByPackage numberOfUsersByPackage = numberOfUsersByCompany.getTestPackageUsageTimesMap().get(p.getId());
|
p.setTestNum(numberOfUsersByPackage.getTestNum());
|
p.setFinishNum(numberOfUsersByPackage.getFinishNum());
|
p.setTestingNum(numberOfUsersByPackage.getTestingNum());
|
p.setUnTestNum(numberOfUsersByPackage.getUnTestNum());
|
String reportTemplateId = p.getReportTemplateId();
|
if (StringUtils.isNotBlank(reportTemplateId)) {
|
String[] split = reportTemplateId.split(",");
|
Arrays.stream(split).forEach(item -> {
|
TReportTemplate template = reportTemplateService.selectTReportTemplateById(Long.parseLong(item));
|
|
if (Objects.nonNull(template)) {
|
String reportTemplateShowValue = Objects.isNull(p.getReportTemplateShowValue()) ? "" : p.getReportTemplateShowValue();
|
p.setReportTemplateShowValue(template.getReportType() + "-" + template.getTemplateType() + "-" + template.getLangType() + ";" + reportTemplateShowValue);
|
}
|
});
|
}
|
});
|
return entTestPackages;
|
}
|
@Override
|
public List<EntTestPackage> selectEntTestPackageMainList(EntTestPackage entTestPackage) {
|
List<EntTestPackage> entTestPackages = entTestPackageMapper.selectEntTestPackageMainList(entTestPackage);
|
return entTestPackages;
|
}
|
|
@Override
|
public int insertEntTestPackage(EntTestPackage entTestPackage) {
|
|
if (Objects.isNull(entTestPackage.getUserId())) {
|
entTestPackage.setUserId(ShiroUtils.getSysUser().getUserId());
|
}
|
entTestPackage.setCreateTime(DateUtils.getNowDate());
|
return entTestPackageMapper.insertEntTestPackage(entTestPackage);
|
}
|
|
@Override
|
public int updateEntTestPackage(EntTestPackage entTestPackage) {
|
entTestPackage.setUpdateTime(DateUtils.getNowDate());
|
return entTestPackageMapper.updateEntTestPackage(entTestPackage);
|
}
|
|
@Override
|
public int deleteEntTestPackageByIds(String ids) {
|
return entTestPackageMapper.deleteEntTestPackageByIds(Convert.toStrArray(ids));
|
}
|
|
public int deleteEntTestPackageById(Long id) {
|
return entTestPackageMapper.deleteEntTestPackageById(id);
|
}
|
@Override
|
public List<EntTestPackage> selectEntTestPackageListByIdAndStatusIn(Long userId, List<String> status) {
|
if (Objects.isNull(userId) && Objects.isNull(status) && status.isEmpty()) {
|
return null;
|
}
|
Map paramMap = new HashMap();
|
if (Objects.nonNull(userId)) {
|
paramMap.put("userId", userId);
|
}
|
if (Objects.nonNull(status) && status.size() > 0) {
|
paramMap.put("status", status);
|
}
|
return selectEntTestPackageListByIdAndStatusIn(paramMap);
|
}
|
public List<EntTestPackage> selectEntTestPackageListByIdAndStatusIn(Map paramMap) {
|
return entTestPackageMapper.selectEntTestPackageListByIdAndStatusIn(paramMap);
|
}
|
@Override
|
public int recover(Long testId) {
|
EntTestMember member = new EntTestMember();
|
member.setTestId(testId);
|
member.setStatus(TestMemberStatusEnum.unprocessed.getCode());
|
List<EntTestMember> entTestMembers = entTestMemberService.selectEntTestMemberList(member);
|
ERROR_RECOVER.assertIsFalse(entTestMembers.size() == 0);
|
entTestMembers.stream().forEach(it -> entTestMemberService.updateTestMemberStatus(TestMemberStatusEnum.recover, it.getMemberId()));
|
EntTestPackage entTestPackage = entTestPackageMapper.selectEntTestPackageById(testId);
|
entOperLogService.saveLog(entTestPackage.getUserId(), String.valueOf(ShiroUtils.getSysUser().getUserId()), DIS_USER, Long.valueOf(entTestMembers.size()));
|
return 1;
|
}
|
}
|