Commit 3bb3308e authored by sunsongtao's avatar sunsongtao

1.修改百度AI模型接口;

2.修改学校导出问题;
3.新增学校导入接口(未完成)
parent bf731fbd
......@@ -77,6 +77,7 @@ public interface MallSchoolAcceptMapper
* @return 结果
*/
public int deleteMallSchoolAcceptBySchoolAcceptIds(Long[] schoolAcceptIds);
public int insertByList(List<MallSchoolAccept> schoolAcceptIds);
/**
* 专业查询近三年录取记录
......
package com.ruoyi.mall.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -14,6 +15,7 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.weixin.utils.WeiXinUtils;
import com.ruoyi.mall.domain.*;
import com.ruoyi.mall.domain.Bo.CheckingOutParamBo;
import com.ruoyi.mall.domain.Bo.MallSchoolExcelBo;
import com.ruoyi.mall.domain.Bo.MatchSchoolBO;
import com.ruoyi.mall.domain.Vo.*;
import com.ruoyi.mall.mapper.*;
......@@ -29,6 +31,8 @@ import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysUserService;
import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
......@@ -49,93 +53,65 @@ import java.util.stream.Stream;
*/
@Service
public class MallSchoolServiceImpl implements IMallSchoolService {
private static final Logger log = LoggerFactory.getLogger(MallSchoolServiceImpl.class);
@Resource
private MallSchoolMapper mallSchoolMapper;
@Resource
private MallFacultyInfoMapper mallFacultyInfoMapper;
@Resource
private MallMajorClassMapper mallMajorClassMapper;
@Resource
private MallSchoolIntroduceMapper mallSchoolIntroduceMapper;
@Resource
private MallSchoolSceneryMapper mallSchoolSceneryMapper;
@Resource
private MallSchoolTagMapper mallSchoolTagMapper;
@Resource
private MallSchoolAcceptRecordMapper mallSchoolAcceptRecordMapper;
@Resource
private MallSchoolAcceptMapper mallSchoolAcceptMapper;
@Resource
private MallSchoolAppraiseMapper mallSchoolAppraiseMapper;
@Resource
private MallSchoolAcceptRulesMapper mallSchoolAcceptRulesMapper;
@Resource
private MallAcceptPlanMapper mallAcceptPlanMapper;
@Resource
private MallLinkMajorSchoolMapper mallLinkMajorSchoolMapper;
@Resource
private MallBatchMapper mallBatchMapper;
@Resource
private MallConfigLevelMapper mallConfigLevelMapper;
@Resource
private MallCountMethodServiceImpl mallCountMethodService;
@Resource
private MallMemberUserMapper mallMemberUserMapper;
@Resource
private IMallMemberCollectSchoolService mallMemberCollectSchoolService;
@Resource
private MallAcceptRateSettingMapper mallAcceptRateSettingMapper;
@Resource
private MallMemberTargetSchoolMapper mallMemberTargetSchoolMapper;
@Resource
private IContrastRecordService contrastRecordService;
@Resource
private SetRegionMapper setRegionMapper;
@Resource
private MallConfigTypeMapper mallConfigTypeMapper;
@Resource
private ContrastRecordMapper contrastRecordMapper;
@Resource
private MallSchoolMasterRecordMapper mallSchoolMasterRecordMapper;
@Resource
private MallSchoolBatchLinkMapper mallSchoolBatchLinkMapper;
@Resource
private MallSchoolLevelMapper mallSchoolLevelMapper;
@Resource
private MallSubjectClassMapper mallSubjectClassMapper;
@Resource
private MallAcceptRuleMapper mallAcceptRuleMapper;
@Resource
private MallExamDataMapper mallExamDataMapper;
@Resource
private WeiXinUtils weiXinUtils;
@Resource
......@@ -143,6 +119,110 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
@Resource
private SysUserRoleMapper sysUserRoleMapper;
@Override
public String importTestSchoolRecord(List<MallSchoolExcelBo> list, boolean updateSupport) {
if (StringUtils.isNull(list) || list.size() == 0) {
throw new ServiceException("导入院校数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
Map<String, List<MallSchoolExcelBo>> collect = list.stream().collect(Collectors.groupingBy(MallSchoolExcelBo::getSchoolName));
List<MallSchool> mallSchools = mallSchoolMapper.selectAllSchoolNames(ListUtil.toList(collect.keySet()));
if (CollectionUtil.isNotEmpty(mallSchools)) {
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
Map<String, MallSchool> mallSchoolMap = mallSchools.stream().collect(Collectors.toMap(MallSchool::getSchoolName, e -> e));
List<BatchVO> batchVOS = mallBatchMapper.selectAllBatchList();
Map<String, Long> stringLongMap = batchVOS.stream().collect(Collectors.toMap(BatchVO::getBatchName, BatchVO::getBatchId));
List<MallMajorClass> mallMajorClasses = mallMajorClassMapper.selectAllMajorList();
Map<Long, List<MallMajorClass>> listMap = mallMajorClasses.stream().collect(Collectors.groupingBy(MallMajorClass::getParentId));
List<MallMajorClass> majorClasses = listMap.get(0);
List<MallLinkMajorSchool> mallLinkMajorSchools = mallLinkMajorSchoolMapper.selectAllList();
Map<Long, MallLinkMajorSchool> majorSchoolMap =
mallLinkMajorSchools.stream().collect(Collectors.toMap(MallLinkMajorSchool::getSchoolId, e -> e));
List<MallAcceptRule> mallAcceptRules = mallAcceptRuleMapper.selectMallAcceptRuleList(new MallAcceptRule());
Map<Integer, List<MallAcceptRule>> mallAcceptRuleMap =
mallAcceptRules.stream().collect(Collectors.groupingBy(MallAcceptRule::getRuleClass));
List<MallSchoolAcceptRecord> mallSchoolAcceptRecordList = new ArrayList<>();
List<MallAcceptPlan> mallAcceptPlans = new ArrayList<>();
List<MallSchoolAccept> mallSchoolAccepts = new ArrayList<>();
for (String s : collect.keySet()) {
MallSchool mallSchool = mallSchoolMap.get(s);
for (MallSchoolExcelBo mallSchoolExcelBo : collect.get(s)) {
try {
List<MallAcceptRule> mallAcceptRule = mallAcceptRuleMap.get(Integer.valueOf(mallSchoolExcelBo.getSubjectType()));
MallAcceptRule mallAcceptRule1 = mallAcceptRule.stream().filter(item ->
item.getRuleStr().equals(mallSchoolExcelBo.getRuleStr())).findFirst().orElse(null);
MallSchoolAcceptRecord mallSchoolAcceptRecord = new MallSchoolAcceptRecord();
mallSchoolAcceptRecord.setSchoolId(mallSchool.getSchoolId());
mallSchoolAcceptRecord.setBatchId(stringLongMap.get(mallSchoolExcelBo.getBatchName()));
mallSchoolAcceptRecord.setAcceptNum(Integer.valueOf(mallSchoolExcelBo.getAcceptNum()));
mallSchoolAcceptRecord.setAcceptYear(mallSchoolExcelBo.getAcceptYear());
mallSchoolAcceptRecord.setAcceptLowest(new BigDecimal(mallSchoolExcelBo.getAcceptLowest()));
mallSchoolAcceptRecord.setCultureLowest(new BigDecimal(mallSchoolExcelBo.getCultureLowest()));
mallSchoolAcceptRecord.setMajorLowest(new BigDecimal(mallSchoolExcelBo.getMajorLowest()));
mallSchoolAcceptRecord.setSubjectType(mallSchoolExcelBo.getSubjectType());
mallSchoolAcceptRecord.setAcceptRuleId(mallAcceptRule1.getAcceptRuleId());
mallSchoolAcceptRecord.setCreateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallSchoolAcceptRecord.setUpdateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallSchoolAcceptRecordList.add(mallSchoolAcceptRecord);
MallMajorClass mallMajorClass = majorClasses.stream().filter(item ->
item.getMajorName().equals(mallSchoolExcelBo.getMajorName1())).findFirst().orElse(null);
MallAcceptPlan mallAcceptPlan = new MallAcceptPlan();
mallAcceptPlan.setSchoolId(mallSchool.getSchoolId());
mallAcceptPlan.setBatchId(stringLongMap.get(mallSchoolExcelBo.getBatchName()));
mallAcceptPlan.setMajorId(mallMajorClass.getMajorId());
mallAcceptPlan.setPlanYear(mallSchoolExcelBo.getAcceptYear());
mallAcceptPlan.setAcceptRuleId(mallAcceptRule1.getAcceptRuleId());
mallAcceptPlan.setSubjectType(Integer.valueOf(mallSchoolExcelBo.getSubjectType()));
mallAcceptPlan.setAcceptNum(Integer.valueOf(mallSchoolExcelBo.getAcceptNum()));
mallAcceptPlan.setAcceptLowest(new BigDecimal(mallSchoolExcelBo.getAcceptLowest()));
mallAcceptPlan.setSchoolPrice(new BigDecimal(mallSchoolExcelBo.getSchoolPrice()));
mallAcceptPlan.setLinkId(majorSchoolMap.get(mallSchool.getSchoolId()).getLinkId());
mallAcceptPlan.setCreateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallAcceptPlan.setUpdateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallAcceptPlans.add(mallAcceptPlan);
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
mallSchoolAccept.setSchoolId(mallSchool.getSchoolId());
mallSchoolAccept.setBatchId(stringLongMap.get(mallSchoolExcelBo.getBatchName()));
mallSchoolAccept.setMajorId(mallMajorClass.getMajorId());
mallSchoolAccept.setAcceptRuleId(mallAcceptRule1.getAcceptRuleId());
mallSchoolAccept.setAcceptNum(Integer.valueOf(mallSchoolExcelBo.getAcceptNum()));
mallSchoolAccept.setAcceptLowest(new BigDecimal(mallSchoolExcelBo.getAcceptLowest()));
mallSchoolAccept.setAcceptYear(mallSchoolExcelBo.getAcceptYear());
mallSchoolAccept.setSubjectType(mallSchoolExcelBo.getSubjectType());
mallSchoolAccept.setLinkId(majorSchoolMap.get(mallSchool.getSchoolId()).getLinkId());
mallSchoolAccept.setReference(new BigDecimal(mallSchoolExcelBo.getReference()));
mallSchoolAccept.setIsReference(1);
mallSchoolAccept.setCreateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallSchoolAccept.setUpdateAt(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
mallSchoolAccepts.add(mallSchoolAccept);
successNum++;
successMsg.append("<br/>" + successNum + "学校数据:" + mallSchoolExcelBo.getSchoolName() + " 导入成功");
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "学校数据:" + mallSchoolExcelBo.getSchoolName() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
log.error(msg, e);
}
}
}
mallSchoolAcceptRecordMapper.insertByList(mallSchoolAcceptRecordList);
mallAcceptPlanMapper.insertByList(mallAcceptPlans);
mallSchoolAcceptMapper.insertByList(mallSchoolAccepts);
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
} else {
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
return "未查询到学校数据";
}
/**
* 查询学校
*
......@@ -153,7 +233,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
public MallSchool selectMallSchoolBySchoolId(Long schoolId) {
MallSchool mallSchool = mallSchoolMapper.selectMallSchoolBySchoolId(schoolId);
if (ObjectUtils.isNotEmpty(mallSchool)){
if (ObjectUtils.isNotEmpty(mallSchool)) {
// 学校批次查询
List<Long> list = mallSchoolBatchLinkMapper.selectMallSchoolBatchLinkBySchoolId(mallSchool.getSchoolId());
Long[] Longs = list.toArray(new Long[list.size()]);
......@@ -161,7 +241,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询层次
MallSchoolLevel mallSchoolLevel = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolId(schoolId);
if(ObjectUtils.isNotEmpty(mallSchoolLevel)){
if (ObjectUtils.isNotEmpty(mallSchoolLevel)) {
mallSchool.setConfigLevelId(mallSchoolLevel.getConfigLevelId());
mallSchool.setConfigLevelName(mallSchoolLevel.getConfigLevelName());
}
......@@ -250,7 +330,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 批次学校关联
Long[] batchList = mallSchool.getBatchList();
if (batchList.length > 0){
if (batchList.length > 0) {
for (Long l : batchList) {
// 批次查询
MallBatch mallBatch = mallBatchMapper.selectMallBatchByBatchId(l);
......@@ -309,12 +389,12 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 批次学校关联
Long[] batchList = mallSchool.getBatchList();
if (batchList.length > 0){
if (batchList.length > 0) {
// 删除不许要的批次
mallSchoolBatchLinkMapper.deleteSchoolBatchBySchoolId(mallSchool.getSchoolId());
for (Long l : batchList) {
MallSchoolBatchLink link = mallSchoolBatchLinkMapper.selectSchoolBatchLinkBySchoolIdAndBatchId(mallSchool.getSchoolId(), Long.valueOf(l));
if (ObjectUtils.isEmpty(link)){
if (ObjectUtils.isEmpty(link)) {
// 新增
MallBatch mallBatch = mallBatchMapper.selectMallBatchByBatchId(Long.valueOf(l));
MallSchoolBatchLink mallSchoolBatchLink = new MallSchoolBatchLink();
......@@ -332,7 +412,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Long configLevelId = mallSchool.getConfigLevelId();
MallSchoolLevel schoolLevel = mallSchoolLevelMapper.selectMallSchoolLevelBySchoolId(mallSchool.getSchoolId());
MallConfigLevel mallConfigLevel = mallConfigLevelMapper.selectMallConfigLevelByConfigLevelId(configLevelId);
if (ObjectUtils.isNotEmpty(schoolLevel)){
if (ObjectUtils.isNotEmpty(schoolLevel)) {
// 查询层次列表
schoolLevel.setConfigLevelId(configLevelId);
schoolLevel.setConfigLevelName(mallConfigLevel.getConfigLevelName());
......@@ -348,7 +428,6 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
}
MallConfigType mallConfigType = mallConfigTypeMapper.selectMallConfigTypeByConfigTypeId(mallSchool.getConfigTypeId());
mallSchool.setConfigTypeName(mallConfigType.getConfigTypeName());
return mallSchoolMapper.updateMallSchool(mallSchool);
......@@ -399,7 +478,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Integer pageNum,
Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolList(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId, null,null);
List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolList(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId, null, null);
if (schoolList.size() > 0) {
for (SchoolVO schoolVO : schoolList) {
......@@ -416,34 +495,35 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 大学对比学校列表
* @param schoolName 学校名称
* @param batchId 批次id
*
* @param schoolName 学校名称
* @param batchId 批次id
* @param configLevelId 层次id
* @param configTypeId 学校类型id
* @param provinceId 省份id
* @param cityId 城市id
* @param pageNum 页码
* @param pageSize 每页个数
* @param configTypeId 学校类型id
* @param provinceId 省份id
* @param cityId 城市id
* @param pageNum 页码
* @param pageSize 每页个数
* @return 结果
*/
@Override
public AjaxResult selectMatchSchoolList(String schoolName,
Long batchId,
Long configLevelId,
Long configTypeId,
Long provinceId,
Long cityId,
Long id,
Integer pageNum,
Integer pageSize) {
Long batchId,
Long configLevelId,
Long configTypeId,
Long provinceId,
Long cityId,
Long id,
Integer pageNum,
Integer pageSize) {
// 查询用户成绩
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (ObjectUtils.isEmpty(mallMemberUser.getMajorScore()) || ObjectUtils.isEmpty(mallMemberUser.getCultureScore())){
if (ObjectUtils.isEmpty(mallMemberUser.getMajorScore()) || ObjectUtils.isEmpty(mallMemberUser.getCultureScore())) {
return AjaxResult.error("请先录入成绩");
}
Integer majorScore = mallMemberUser.getMajorScore();
Integer cultureScore = mallMemberUser.getCultureScore();
//选科:0-文科,1-理科
// 选科:0-文科,1-理科
String subjectType = mallMemberUser.getSubjectType();
PageHelper.startPage(pageNum, pageSize);
......@@ -451,15 +531,15 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
if (schoolList.size() > 0) {
for (SchoolVO schoolVO : schoolList) {
//查询该学校 该批次 学生是否已添加
// 查询该学校 该批次 学生是否已添加
ContrastRecord contrastRecord = new ContrastRecord();
contrastRecord.setBatchId(batchId);
contrastRecord.setUserId(id);
contrastRecord.setSchoolId(schoolVO.getSchoolId());
List<ContrastRecord> contrastRecords = contrastRecordService.selectContrastRecordList(contrastRecord);
if(null != contrastRecords && contrastRecords.size()>0){//已添加
if (null != contrastRecords && contrastRecords.size() > 0) {// 已添加
schoolVO.setRecordType("1");
}else{//未添加
} else {// 未添加
schoolVO.setRecordType("0");
}
// 查询标签列表
......@@ -469,8 +549,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
}
//// 学校录取率
//Map<String, Object> result = mallCountMethodService.getAcceptRate(subjectType, schoolVO.getSchoolId(), batchId, cultureScore, majorScore);
//if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0 ){
// Map<String, Object> result = mallCountMethodService.getAcceptRate(subjectType, schoolVO.getSchoolId(), batchId, cultureScore, majorScore);
// if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0 ){
// schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
// schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
// schoolVO.setRateType((Integer)result.get("rateType"));
......@@ -485,8 +565,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
* 学校概述
*
* @param schoolId 学校id
* @param batchId 批次id
* @param id 用户id
* @param batchId 批次id
* @param id 用户id
* @return 结果
*/
@Override
......@@ -519,9 +599,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 是否加入对比
List<Long> longs = contrastRecordMapper.selectSchoolContrastStatus(id, schoolId, batchId);
if (longs.isEmpty()){
if (longs.isEmpty()) {
schoolVO.setRecordType("0");
}else{
} else {
schoolVO.setRecordType("1");
schoolVO.setRecordId(longs.get(0));
}
......@@ -557,16 +637,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 学校录取数据
* @param schoolId 学校id
* @param batchId 批次id
*
* @param schoolId 学校id
* @param batchId 批次id
* @return 结果
*/
@Override
public AjaxResult selectSchoolRecord( Long schoolId, Long batchId, Long id) {
public AjaxResult selectSchoolRecord(Long schoolId, Long batchId, Long id) {
// 查询用户信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){
if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善学科信息");
}
......@@ -575,32 +656,32 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
List<SchoolAcceptRecordVO> recordList = mallSchoolAcceptRecordMapper.selectAcceptRecordList(schoolId, batchId, subjectType);
// 专业录取数据
List<SchoolMajorAcceptRecordVO> majorRecordList = mallSchoolAcceptMapper.selectSchoolMajorRecordList(schoolId, batchId , subjectType);
List<SchoolMajorAcceptRecordVO> majorRecordList = mallSchoolAcceptMapper.selectSchoolMajorRecordList(schoolId, batchId, subjectType);
// 有参考分的计算录取率
for (SchoolMajorAcceptRecordVO schoolMajorAcceptRecordVO : majorRecordList) {
if (batchId == 4L){
if (batchId == 4L) {
// 专科
if (schoolMajorAcceptRecordVO.getAcceptLowest() != null ){
if ( mallMemberUser.getCultureScore() != null && mallMemberUser.getMajorScore() != null){
if (schoolMajorAcceptRecordVO.getAcceptLowest() != null) {
if (mallMemberUser.getCultureScore() != null && mallMemberUser.getMajorScore() != null) {
Map<String, Object> resultRate = mallCountMethodService.zhuankegetAcceptRateForReport(schoolMajorAcceptRecordVO.getAcceptLowest(), schoolMajorAcceptRecordVO.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
schoolMajorAcceptRecordVO.setAcceptRate(resultRate.get("acceptRate") + "%");
}else{
} else {
schoolMajorAcceptRecordVO.setAcceptRate("0");
}
}
}else{
} else {
// 本科
if (schoolMajorAcceptRecordVO.getIsReference() != null &&schoolMajorAcceptRecordVO.getIsReference().equals(1)){
if (schoolMajorAcceptRecordVO.getIsReference() != null && schoolMajorAcceptRecordVO.getIsReference().equals(1)) {
if ( mallMemberUser.getCultureScore() != null && mallMemberUser.getMajorScore() != null){
if (mallMemberUser.getCultureScore() != null && mallMemberUser.getMajorScore() != null) {
Map<String, Object> resultRate = mallCountMethodService.getAcceptRateForReport(schoolMajorAcceptRecordVO.getReference(), schoolMajorAcceptRecordVO.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
schoolMajorAcceptRecordVO.setAcceptRate(resultRate.get("acceptRate") + "%");
}else{
} else {
schoolMajorAcceptRecordVO.setAcceptRate("0");
}
......@@ -619,7 +700,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
for (String sortedYear : sortedYears) {
Integer isReference = 0;
List<SchoolMajorAcceptRecordVO> collect1 = majorRecordList.stream().filter(item -> item.getAcceptYear().equals(sortedYear)).collect(Collectors.toList());
if (collect1.get(0).getIsReference() != null && collect1.get(0).getIsReference() == 1 && sortedYears.indexOf(sortedYear) == 0){
if (collect1.get(0).getIsReference() != null && collect1.get(0).getIsReference() == 1 && sortedYears.indexOf(sortedYear) == 0) {
isReference = 1;
}
SchoolMajorAcceptGroupVO schoolMajorAcceptGroup = new SchoolMajorAcceptGroupVO();
......@@ -631,7 +712,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
.collect(Collectors.toList());
// 录取原则分组划前端横线
if (subList.size() > 0){
if (subList.size() > 0) {
List<List<SchoolMajorAcceptRecordVO>> list = new ArrayList<>();
Map<String, List<SchoolMajorAcceptRecordVO>> listMap = subList.stream().collect(Collectors.groupingBy(SchoolMajorAcceptRecordVO::getAcceptRuleStr));
for (String s : listMap.keySet()) {
......@@ -652,6 +733,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 我的综合分
*
* @param schoolId
* @param batchId
* @param id
......@@ -663,10 +745,10 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
BigDecimal totalScore = BigDecimal.ZERO;
// 专业录取数据
Long ruleId = mallSchoolAcceptMapper.selectNewAccept(schoolId, batchId , mallMemberUser.getSubjectType());
if (null != ruleId && null != mallMemberUser.getCultureScore() && null != mallMemberUser.getMajorScore()){
Long ruleId = mallSchoolAcceptMapper.selectNewAccept(schoolId, batchId, mallMemberUser.getSubjectType());
if (null != ruleId && null != mallMemberUser.getCultureScore() && null != mallMemberUser.getMajorScore()) {
// 计算综合分
totalScore = mallCountMethodService.getTotalScore(mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore(), ruleId);
totalScore = mallCountMethodService.getTotalScore(mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore(), ruleId);
}
Map<String, Object> map = new HashMap<>();
map.put("score", totalScore);
......@@ -675,6 +757,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 院校录取数据详情
*
* @param schoolAcceptRecordId 数据id
* @return 结果
*/
......@@ -685,6 +768,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 学校评估列表
*
* @param schoolId 学校id
* @return 结果
*/
......@@ -695,6 +779,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 学校招生简章
*
* @param schoolId 学校id
* @return 结果
*/
......@@ -710,7 +795,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 用户信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){
if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善用户学科信息");
}
String subjectType = mallMemberUser.getSubjectType();
......@@ -718,33 +803,33 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 招生计划
List<SchoolAcceptPlanVO> planList = mallAcceptPlanMapper.selectAcceptPlanList(schoolId, batchId, subjectType);
//for (SchoolAcceptPlanVO schoolAcceptPlanVO : planList) {
//// 投档公式
//Long acceptRuleId = schoolAcceptPlanVO.getAcceptRuleId();
//String countMethodStr = mallCountMethodService.getCountMethodStr(acceptRuleId);
//schoolAcceptPlanVO.setAcceptRuleStr(countMethodStr);
//// 专业名称处理
//Long majorId = schoolAcceptPlanVO.getMajorId();
//List<String> list = mallLinkMajorSchoolMapper.selectSchoolMajorByParentId(schoolId, majorId);
//if (list.size() > 0){
// StringBuilder sb = new StringBuilder();
// for (String s : list) {
// sb.append(s).append(",");
// }
// String str = sb.toString();
// String result = str.substring(0, str.length() - 1);
// schoolAcceptPlanVO.setMajorStr(schoolAcceptPlanVO.getMajorName() + "(" + result + ")");
//}else{
// schoolAcceptPlanVO.setMajorStr(schoolAcceptPlanVO.getMajorName());
//}
// for (SchoolAcceptPlanVO schoolAcceptPlanVO : planList) {
//// 投档公式
// Long acceptRuleId = schoolAcceptPlanVO.getAcceptRuleId();
// String countMethodStr = mallCountMethodService.getCountMethodStr(acceptRuleId);
// schoolAcceptPlanVO.setAcceptRuleStr(countMethodStr);
//// 专业名称处理
// Long majorId = schoolAcceptPlanVO.getMajorId();
// List<String> list = mallLinkMajorSchoolMapper.selectSchoolMajorByParentId(schoolId, majorId);
// if (list.size() > 0){
// StringBuilder sb = new StringBuilder();
// for (String s : list) {
// sb.append(s).append(",");
// }
// String str = sb.toString();
// String result = str.substring(0, str.length() - 1);
// schoolAcceptPlanVO.setMajorStr(schoolAcceptPlanVO.getMajorName() + "(" + result + ")");
//}else{
// schoolAcceptPlanVO.setMajorStr(schoolAcceptPlanVO.getMajorName());
//}
//}
List<SchoolAcceptPlanGroupVO> groupList = new ArrayList<>();
if (planList.size() > 0){
if (planList.size() > 0) {
Map<String, List<SchoolAcceptPlanVO>> collect = planList.stream().collect(Collectors.groupingBy(SchoolAcceptPlanVO::getPlanYear));
Set<String> planYears = collect.keySet();
......@@ -764,18 +849,18 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 更新时间
String updateRange = "";
Map<String, String> map = mallAcceptPlanMapper.selectUpdateTime(schoolId, batchId);
if (ObjectUtils.isNotEmpty(map)){
if (ObjectUtils.isNotEmpty(map)) {
String startTime = map.get("startTime");
String endTime = map.get("endTime");
String start = DateUtils.format(DateUtils.parseDate(startTime), "M-dd");
String end = DateUtils.format(DateUtils.parseDate(endTime), "M-dd");
if (start.equals(end)){
if (start.equals(end)) {
updateRange = start;
}else{
if (end == null){
} else {
if (end == null) {
updateRange = start;
}else{
} else {
updateRange = start + "~" + end;
}
......@@ -793,8 +878,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 3个层次院校列表
*
* @param configLevelId 层次id
* @param batchId 批次id
* @param batchId 批次id
* @return 结果
*/
@Override
......@@ -804,24 +890,24 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Long higherLevelId = null;
Long lowerLevelId = null;
if (!(allLevelList.size() > 0)){
if (!(allLevelList.size() > 0)) {
return AjaxResult.error("层次信息异常");
}
List<SchoolLevelVO> collect = allLevelList.stream().filter(item -> item.getConfigLevelId().equals(configLevelId)).collect(Collectors.toList());
if (!(collect.size() > 0)){
if (!(collect.size() > 0)) {
return AjaxResult.error("当前层次不存在");
}
SchoolLevelVO schoolLevelVO = collect.get(0);
int i = allLevelList.indexOf(schoolLevelVO);
if (allLevelList.size() > 1){
if (allLevelList.size() > 1) {
if (i == 0){
if (i == 0) {
lowerLevelId = allLevelList.get(i + 1).getConfigLevelId();
}else if (i == allLevelList.size()-1){
} else if (i == allLevelList.size() - 1) {
higherLevelId = allLevelList.get(i - 1).getConfigLevelId();
}else{
} else {
higherLevelId = allLevelList.get(i - 1).getConfigLevelId();
lowerLevelId = allLevelList.get(i + 1).getConfigLevelId();
}
......@@ -836,29 +922,29 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Map<String, Object> lowerMap = new HashMap<>();
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){
if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善学科信息");
}
String subjectType = mallMemberUser.getSubjectType();
// 高一层次
if (!ObjectUtils.isEmpty(higherLevelId)){
higherLevelList = this.selectLevelSchoolList(higherLevelId, batchId, schoolId, subjectType);
if (!ObjectUtils.isEmpty(higherLevelId)) {
higherLevelList = this.selectLevelSchoolList(higherLevelId, batchId, schoolId, subjectType);
higherMap.put("higherLevelId", higherLevelId);
higherMap.put("higherLevelList", higherLevelList);
}
// 同一层次
if (!ObjectUtils.isEmpty(configLevelId)){
sameLevelList = this.selectLevelSchoolList(configLevelId, batchId, schoolId, subjectType);
sameMap.put("sameLevelId", configLevelId);
sameMap.put("sameLevelList", sameLevelList);
if (!ObjectUtils.isEmpty(configLevelId)) {
sameLevelList = this.selectLevelSchoolList(configLevelId, batchId, schoolId, subjectType);
sameMap.put("sameLevelId", configLevelId);
sameMap.put("sameLevelList", sameLevelList);
}
// 低一层次
if (!ObjectUtils.isEmpty(lowerLevelId)){
lowerLevelList = this.selectLevelSchoolList(lowerLevelId, batchId, schoolId, subjectType);
lowerMap.put("lowerLevelId", lowerLevelId);
lowerMap.put("lowerLevelList", lowerLevelList);
if (!ObjectUtils.isEmpty(lowerLevelId)) {
lowerLevelList = this.selectLevelSchoolList(lowerLevelId, batchId, schoolId, subjectType);
lowerMap.put("lowerLevelId", lowerLevelId);
lowerMap.put("lowerLevelList", lowerLevelList);
}
Map<String, Object> result = new HashMap<>();
......@@ -872,16 +958,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 查询当前层次学校列表
*
* @param configLevelId 层次id
* @param batchId 批次id
* @param batchId 批次id
* @return
*/
public List<SchoolVO> selectLevelSchoolList(Long configLevelId, Long batchId, Long schoolId, String subjectType){
public List<SchoolVO> selectLevelSchoolList(Long configLevelId, Long batchId, Long schoolId, String subjectType) {
// 查询该层次下学校列表
PageHelper.startPage(1, 3);
List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolListByLevelId( batchId, configLevelId , schoolId, subjectType);
List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolListByLevelId(batchId, configLevelId, schoolId, subjectType);
if (schoolList.size() > 0){
if (schoolList.size() > 0) {
for (SchoolVO schoolVO : schoolList) {
if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表
......@@ -897,21 +984,23 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 层级院校列表
*
* @param configLevelId 层级id
* @param batchId 批次id
* @param pageNum 页码
* @param pageSize 每页个数
* @param batchId 批次id
* @param pageNum 页码
* @param pageSize 每页个数
* @return
*/
@Override
public PageInfo<SchoolVO> selectSchoolListByLevelId(Long configLevelId, Long batchId, Long schoolId, Long id, Integer pageNum, Integer pageSize) {
public PageInfo<SchoolVO> selectSchoolListByLevelId(Long configLevelId, Long batchId, Long schoolId, Long
id, Integer pageNum, Integer pageSize) {
// 查询用户信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
PageHelper.startPage(pageNum, pageSize);
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolListByLevelId(batchId, configLevelId, schoolId, mallMemberUser.getSubjectType() );
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolListByLevelId(batchId, configLevelId, schoolId, mallMemberUser.getSubjectType());
if (schoolVOS.size() > 0){
if (schoolVOS.size() > 0) {
for (SchoolVO schoolVO : schoolVOS) {
if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表
......@@ -925,19 +1014,21 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 联考成绩分析
*
* @param schoolId 学校id
* @param batchId 批次id
* @param id 用户id
* @param pageNum 页码
* @param batchId 批次id
* @param id 用户id
* @param pageNum 页码
* @param pageSize 每页个数
* @return 结果
*/
@Override
public AjaxResult selectUnionTestAnalysisList(Long schoolId, Long batchId, Long id, Integer pageNum, Integer pageSize) {
public AjaxResult selectUnionTestAnalysisList(Long schoolId, Long batchId, Long id, Integer pageNum, Integer
pageSize) {
// 查询用户成绩
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){
if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善用户学科信息");
}
......@@ -945,20 +1036,20 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
PageHelper.startPage(pageNum, pageSize);
List<UnionTestAnalysisVO> list = mallSchoolAcceptRecordMapper.selectUnionTestAnalysisList(schoolId, batchId, mallMemberUser.getSubjectType());
if (list.size() > 0){
if (list.size() > 0) {
for (UnionTestAnalysisVO unionTestAnalysisVO : list) {
// 计算所需文化分
Integer majorScore = mallMemberUser.getMajorScore();
BigDecimal acceptLowest = unionTestAnalysisVO.getAcceptLowest();
BigDecimal cultureLowest = unionTestAnalysisVO.getCultureLowest();
if (ObjectUtils.isNotEmpty(majorScore) && ObjectUtils.isNotEmpty(acceptLowest) ){
if (ObjectUtils.isNotEmpty(majorScore) && ObjectUtils.isNotEmpty(acceptLowest)) {
Long acceptRuleId = unionTestAnalysisVO.getAcceptRuleId();
MallAcceptRule mallAcceptRule = mallAcceptRuleMapper.selectMallAcceptRuleByAcceptRuleId(acceptRuleId);
BigDecimal needCultureScore = null;
// 如果录取原则没有文化分,则需要文化分为过线文化分
if (!mallAcceptRule.getRuleStr().contains("文化")){
if (!mallAcceptRule.getRuleStr().contains("文化")) {
needCultureScore = cultureLowest;
}else{
} else {
needCultureScore = mallCountMethodService.getNeedCultureScore(majorScore, acceptLowest, acceptRuleId);
}
unionTestAnalysisVO.setNeedCultureScore(needCultureScore);
......@@ -973,19 +1064,21 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 综合成绩分析
*
* @param schoolId 学校id
* @param batchId 批次id
* @param id 用户id
* @param pageNum 页码
* @param batchId 批次id
* @param id 用户id
* @param pageNum 页码
* @param pageSize 每页个数
* @return 结果
*/
@Override
public AjaxResult selectUserScoreAnalysisList(Long schoolId, Long batchId, Long id, Integer pageNum, Integer pageSize) {
public AjaxResult selectUserScoreAnalysisList(Long schoolId, Long batchId, Long id, Integer pageNum, Integer
pageSize) {
// 用户录取信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (StringUtils.isBlank(mallMemberUser.getSubjectType())){
if (StringUtils.isBlank(mallMemberUser.getSubjectType())) {
return AjaxResult.error("请先完善用户学科信息");
}
String subjectType = mallMemberUser.getSubjectType();
......@@ -993,9 +1086,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
PageHelper.startPage(pageNum, pageSize);
List<UserScoreAnalysisVO> list = mallSchoolAcceptRecordMapper.selectUserScoreAnalysisList(schoolId, batchId, subjectType);
if(ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())){
if (ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())) {
// 计算综合分
if (!list.isEmpty()){
if (!list.isEmpty()) {
for (UserScoreAnalysisVO userScoreAnalysisVO : list) {
BigDecimal totalScore = mallCountMethodService.getTotalScore(mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore(), userScoreAnalysisVO.getAcceptRuleId());
userScoreAnalysisVO.setMyScore(totalScore);
......@@ -1013,6 +1106,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 智能匹配大学
*
* @param matchSchoolBO 匹配参数
* @return 结果
*/
......@@ -1024,9 +1118,9 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Long subjectId = matchSchoolBO.getSubjectId();
// 查询学科
//MallSubjectClass mallSubjectClass = mallSubjectClassMapper.selectMallSubjectClassBySubjectId(subjectId);
//String subjectType = "文科".equals(mallSubjectClass.getSubjectName()) || "文".equals(mallSubjectClass.getSubjectName())? "0" : "1";
String subjectType = subjectId == 1L? "0" : "1";
// MallSubjectClass mallSubjectClass = mallSubjectClassMapper.selectMallSubjectClassBySubjectId(subjectId);
// String subjectType = "文科".equals(mallSubjectClass.getSubjectName()) || "文".equals(mallSubjectClass.getSubjectName())? "0" : "1";
String subjectType = subjectId == 1L ? "0" : "1";
// 查询批次大学列表
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(null, batchId, null, null, null, null, null, subjectType);
......@@ -1044,8 +1138,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
List<SchoolVO> list1 = new ArrayList<>();
List<SchoolVO> list2 = new ArrayList<>();
List<SchoolVO> list3 = new ArrayList<>();
if (!schoolVOS.isEmpty()){
//List<MallSchoolTag> allTag = mallSchoolTagMapper.selectTagList();
if (!schoolVOS.isEmpty()) {
// List<MallSchoolTag> allTag = mallSchoolTagMapper.selectTagList();
// 学校录取率计算
try {
CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size());
......@@ -1056,24 +1150,24 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
public void run() {
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
Map<String, Object> result = new HashMap<>();
if(batchId == 4L){
if (batchId == 4L) {
// 专科
System.out.println("========" + Thread.currentThread().getName() + schoolVO.getSchoolId());
mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
// 计算专科
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else {
if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
} else {
result.put("acceptRate", BigDecimal.ZERO);
result.put("rateType", -2);
}
}else{
} else {
// 本科
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
// 计算
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else {
if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
} else {
result.put("acceptRate", "0");
result.put("rateType", -2);
}
......@@ -1082,7 +1176,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
schoolVO.setRateType((Integer)result.get("rateType"));
schoolVO.setRateType((Integer) result.get("rateType"));
// 查询标签列表
if (StringUtils.isNotBlank(schoolVO.getTags())) {
......@@ -1091,14 +1185,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
schoolVO.setTagList(list);
}
Integer rateType = schoolVO.getRateType();
if ( ObjectUtils.isNotEmpty(rateType) ){
if (rateType == 0){
if (ObjectUtils.isNotEmpty(rateType)) {
if (rateType == 0) {
list0.add(schoolVO);
}else if (rateType == 1){
} else if (rateType == 1) {
list1.add(schoolVO);
}else if (rateType == 2){
} else if (rateType == 2) {
list2.add(schoolVO);
}else if (rateType == 3){
} else if (rateType == 3) {
list3.add(schoolVO);
}
}
......@@ -1108,30 +1202,30 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
}
countDownLatch.await();
}catch (Exception e){
} catch (Exception e) {
throw new ServiceException();
}
if (!list0.isEmpty()){
if (!list0.isEmpty()) {
list0.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed());
}
if (!list1.isEmpty()){
if (!list1.isEmpty()) {
list1.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed());
}
if (!list2.isEmpty()){
if (!list2.isEmpty()) {
Collections.sort(list2, (a,b)->{
return b.getAcceptRate().compareTo(a.getAcceptRate()) ;
Collections.sort(list2, (a, b) -> {
return b.getAcceptRate().compareTo(a.getAcceptRate());
});
}
if (!list3.isEmpty()){
Collections.sort(list3, (a,b)->{
if (a != null && b != null){
return a.getAcceptRate().compareTo(b.getAcceptRate()) ;
if (!list3.isEmpty()) {
Collections.sort(list3, (a, b) -> {
if (a != null && b != null) {
return a.getAcceptRate().compareTo(b.getAcceptRate());
}
return 0;
});
......@@ -1140,36 +1234,36 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 可冒险
result0.put("rateType", 0);
result0.put("num", list0.size());
if (list0.size() <= 3){
if (list0.size() <= 3) {
result0.put("list", list0);
}else {
result0.put("list", list0.subList(0,3));
} else {
result0.put("list", list0.subList(0, 3));
}
// 搏一搏
result1.put("rateType", 1);
result1.put("num", list1.size());
if (list1.size() <= 3){
if (list1.size() <= 3) {
result1.put("list", list1);
}else{
} else {
result1.put("list", list1.subList(0, 3));
}
// 较稳妥
result2.put("rateType", 2);
result2.put("num", list2.size());
if (list2.size() <= 3){
if (list2.size() <= 3) {
result2.put("list", list2);
}else{
} else {
result2.put("list", list2.subList(0, 3));
}
// 可保底
result3.put("rateType", 3);
result3.put("num", list3.size());
if (list3.size() <= 3){
if (list3.size() <= 3) {
result3.put("list", list3);
}else{
} else {
result3.put("list", list3.subList(0, 3));
}
......@@ -1177,7 +1271,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
resultList.add(result1);
resultList.add(result2);
resultList.add(result3);
if (result0.size() == 0 && result1.size() == 1 && result2.size() == 2 && result3.size() == 3){
if (result0.size() == 0 && result1.size() == 1 && result2.size() == 2 && result3.size() == 3) {
resultList = Arrays.asList();
}
}
......@@ -1186,46 +1280,47 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 根据录取概率分组标记查询学校列表
* @param rateType 类型(0-可冒险,1-搏一搏,2-较稳妥,3-可保底)
* @param id 用户id
* @param batchId 批次id
*
* @param rateType 类型(0-可冒险,1-搏一搏,2-较稳妥,3-可保底)
* @param id 用户id
* @param batchId 批次id
* @param cultureScore 文化分
* @param majorScore 文化分
* @param pageNum 页码
* @param pageSize 每页个数
* @param majorScore 文化分
* @param pageNum 页码
* @param pageSize 每页个数
* @return 结果
*/
@Override
public List<SchoolVO> matchSchoolListByType(Integer rateType,
Long id,
Long batchId,
Integer cultureScore,
Integer majorScore,
Integer pageNum,
Integer pageSize,
Integer subjectId) {
Long id,
Long batchId,
Integer cultureScore,
Integer majorScore,
Integer pageNum,
Integer pageSize,
Integer subjectId) {
// 查询录取率设定表
//List<MallAcceptRateSetting> rateSettings = mallAcceptRateSettingMapper.selectRateSettingList();
// List<MallAcceptRateSetting> rateSettings = mallAcceptRateSettingMapper.selectRateSettingList();
// 查询批次大学列表
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(null, batchId, null, null, null, null, null,null);
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(null, batchId, null, null, null, null, null, null);
List<Map<String, Object>> resultList = new ArrayList<>();
// 用户成绩查询
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
StringBuilder stringBuilder = new StringBuilder();
if (null != subjectId ){
stringBuilder.append(subjectId == 1? "0": "1");
}else{
if (null != subjectId) {
stringBuilder.append(subjectId == 1 ? "0" : "1");
} else {
stringBuilder.append(mallMemberUser.getSubjectType());
}
String subjectType = stringBuilder.toString();
List<SchoolVO> list = new ArrayList<>();
if (!schoolVOS.isEmpty()){
if (!schoolVOS.isEmpty()) {
// 学校录取率计算
try {
CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size());
......@@ -1237,33 +1332,32 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询学校最低专业录取分
Map<String, Object> result = new HashMap<>();
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
if(batchId == 4L){
if (batchId == 4L) {
// 专科
mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
// 计算专科
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else {
if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
} else {
result.put("acceptRate", BigDecimal.ZERO);
result.put("rateType", -2);
}
}else{
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
} else {
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else{
} else {
result.put("acceptRate", 0);
result.put("rateType", -2);
}
}
if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0 ){
if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0) {
schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
schoolVO.setRateType((Integer)result.get("rateType"));
schoolVO.setRateType((Integer) result.get("rateType"));
}
if (StringUtils.isNotBlank(schoolVO.getTags())) {
......@@ -1277,14 +1371,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
}
countDownLatch.await();
}catch (Exception e){
} catch (Exception e) {
throw new ServiceException();
}
// 选择类型
list = schoolVOS.stream().filter(item -> item.getRateType()!=null && item.getRateType().equals(rateType)).collect(Collectors.toList());
list = schoolVOS.stream().filter(item -> item.getRateType() != null && item.getRateType().equals(rateType)).collect(Collectors.toList());
if (!list.isEmpty()){
if (!list.isEmpty()) {
list.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed());
}
......@@ -1294,35 +1388,37 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 升学规划- 我的目标
* @param id 用户id
* @param batchId 批次id
*
* @param id 用户id
* @param batchId 批次id
* @param schoolName 学校名称
* @param majorId 专业id
* @param majorId 专业id
* @return 结果
*/
@Override
public PageInfo<SchoolVO> enterPlanTargetList(Long id, Long batchId, String schoolName, Long majorId, Integer pageNum, Integer pageSize) {
public PageInfo<SchoolVO> enterPlanTargetList(Long id, Long batchId, String schoolName, Long majorId, Integer
pageNum, Integer pageSize) {
// 用户信息
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
List<SchoolVO> schoolList = new ArrayList<>();
if (ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())){
if (ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())) {
String subjectType = mallMemberUser.getSubjectType();
// 录取率设定信息
//List<MallAcceptRateSetting> settingList = mallAcceptRateSettingMapper.selectRateSettingList();
// List<MallAcceptRateSetting> settingList = mallAcceptRateSettingMapper.selectRateSettingList();
// 我的目标学校
PageHelper.startPage(pageNum, pageSize);
// 专业名称
String twoClassName = "";
if (majorId != null){
if (majorId != null) {
MallMajorClass majorClass = mallMajorClassMapper.selectMallMajorClassByMajorId(majorId);
twoClassName = majorClass.getMajorName();
}
schoolList = mallMemberTargetSchoolMapper.selectTargetSchoolListByUserId(id, batchId, schoolName, twoClassName, subjectType);
if (!schoolList.isEmpty()){
if (!schoolList.isEmpty()) {
for (SchoolVO schoolVO : schoolList) {
// 目标学校状态
......@@ -1338,25 +1434,25 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询学校最低专业录取分
Map<String, Object> result = new HashMap<>();
MallSchoolAccept mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
}else{
if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference(), mallSchoolAccept.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
} else {
result.put("acceptRate", new BigDecimal("1"));
result.put("rateType", -2);
}
if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0 ){
if (!result.isEmpty() && new BigDecimal(result.get("acceptRate").toString()).compareTo(BigDecimal.ZERO) > 0) {
schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
schoolVO.setRateType((Integer)result.get("rateType"));
}else{//录取率为0
schoolVO.setRateType((Integer) result.get("rateType"));
} else {// 录取率为0
schoolVO.setAcceptRate(BigDecimal.ZERO);
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate().toPlainString() + "%");
schoolVO.setRateType((Integer)result.get("rateType"));
schoolVO.setRateType((Integer) result.get("rateType"));
}
if (schoolVO.getRateType() == 2 || schoolVO.getRateType() == 3){
if (schoolVO.getRateType() == 2 || schoolVO.getRateType() == 3) {
// 较安全
schoolVO.setWarnStatus(1);
}else{
} else {
schoolVO.setWarnStatus(0);
}
}
......@@ -1371,15 +1467,17 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 升学规划分类查询学校列表
*
* @param rateType 类型
* @param id 用户id
* @param batchId 批次id
* @param pageNum 页码
* @param id 用户id
* @param batchId 批次id
* @param pageNum 页码
* @param pageSize 每页个数
* @return 结果
*/
@Override
public AjaxResult enterPlanSchoolListByType(Integer rateType, Long id, Long batchId, String schoolName, Long majorId, Integer pageNum, Integer pageSize) {
public AjaxResult enterPlanSchoolListByType(Integer rateType, Long id, Long batchId, String schoolName, Long
majorId, Integer pageNum, Integer pageSize) {
// 选择类型
List<SchoolVO> collect = new ArrayList<>();
......@@ -1389,24 +1487,23 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询用户分
MallMemberUser mallMemberUser = mallMemberUserMapper.selectMallMemberUserById(id);
if (ObjectUtils.isEmpty(mallMemberUser)){
if (ObjectUtils.isEmpty(mallMemberUser)) {
return AjaxResult.error("用户信息异常");
}
if(ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())){
if (ObjectUtils.isNotEmpty(mallMemberUser.getCultureScore()) && ObjectUtils.isNotEmpty(mallMemberUser.getMajorScore())) {
// 文化分和专业分
Integer cultureScore = mallMemberUser.getCultureScore();
Integer majorScore = mallMemberUser.getMajorScore();
String subjectType = mallMemberUser.getSubjectType();
// 查询录取控制线
List<MallExamData> lineList = mallExamDataMapper.selectLineList();
// 查询二级分类
String twoClassName = "";
if (majorId != null){
if (majorId != null) {
MallMajorClass majorClass = mallMajorClassMapper.selectMallMajorClassByMajorId(majorId);
twoClassName = majorClass.getMajorName();
}
......@@ -1414,8 +1511,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
// 查询批次大学列表
List<SchoolVO> schoolVOS = mallSchoolMapper.selectSchoolList(schoolName, batchId, null, null, null, null, twoClassName, subjectType);
if (!schoolVOS.isEmpty()){
try{
if (!schoolVOS.isEmpty()) {
try {
CountDownLatch countDownLatch = new CountDownLatch(schoolVOS.size());
// 学校录取率计算
......@@ -1426,22 +1523,22 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Map<String, Object> result = new HashMap<>();
MallSchoolAccept mallSchoolAccept = new MallSchoolAccept();
// 学校录取专业最低分
if (batchId == 4L){
if (batchId == 4L) {
// 专科
mallSchoolAccept = mallSchoolAcceptMapper.selectZhuankeAcceptBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
// 计算专科
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
}else {
if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.zhuankegetAcceptRateForReport(mallSchoolAccept.getAcceptLowest(), mallSchoolAccept.getAcceptRuleId(), cultureScore, majorScore);
} else {
result.put("acceptRate", BigDecimal.ZERO);
result.put("rateType", -2);
}
}else{
} else {
// 本科
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
if (ObjectUtils.isNotEmpty(mallSchoolAccept)){
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference() != null?mallSchoolAccept.getReference() : new BigDecimal("500") , mallSchoolAccept.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
}else{
mallSchoolAccept = mallSchoolAcceptMapper.selectMinReferenceBySchoolId(schoolVO.getSchoolId(), batchId, subjectType);
if (ObjectUtils.isNotEmpty(mallSchoolAccept)) {
result = mallCountMethodService.getAcceptRateForReport(mallSchoolAccept.getReference() != null ? mallSchoolAccept.getReference() : new BigDecimal("500"), mallSchoolAccept.getAcceptRuleId(), mallMemberUser.getCultureScore(), mallMemberUser.getMajorScore());
} else {
result.put("acceptRate", BigDecimal.ZERO);
result.put("rateType", -2);
}
......@@ -1449,7 +1546,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
schoolVO.setAcceptRate(new BigDecimal(result.get("acceptRate").toString()));
schoolVO.setShowAcceptRate(schoolVO.getAcceptRate() + "%");
schoolVO.setRateType((Integer)result.get("rateType"));
schoolVO.setRateType((Integer) result.get("rateType"));
if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表
......@@ -1462,45 +1559,45 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
}
countDownLatch.await();
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException();
}
if(rateType == -1){
if (rateType == -1) {
collect = schoolVOS;
}else{
collect = schoolVOS.stream().filter(item -> item.getRateType()!=null && item.getRateType().equals(rateType)).collect(Collectors.toList());
} else {
collect = schoolVOS.stream().filter(item -> item.getRateType() != null && item.getRateType().equals(rateType)).collect(Collectors.toList());
}
// 排序并处理分页
if (!collect.isEmpty()){
if (!collect.isEmpty()) {
// 排序
if (rateType == 3){
collect.sort(Comparator.comparing(SchoolVO:: getAcceptRate));
if (rateType == 3) {
collect.sort(Comparator.comparing(SchoolVO::getAcceptRate));
}else if (rateType == -1){
collect.sort(Comparator.comparing(SchoolVO:: getSchoolId));
} else if (rateType == -1) {
collect.sort(Comparator.comparing(SchoolVO::getSchoolId));
}else{
collect.sort(Comparator.comparing(SchoolVO:: getAcceptRate).reversed());
} else {
collect.sort(Comparator.comparing(SchoolVO::getAcceptRate).reversed());
}
}
}
}
//java8 stream实现list分页
// java8 stream实现list分页
List<SchoolVO> pageList = collect.stream().sorted().skip((long) (pageNum - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());
PageInfo<SchoolVO> pageInfo = new PageInfo<SchoolVO>(pageList);
//获取PageInfo其他参数
// 获取PageInfo其他参数
pageInfo.setTotal(collect.size());
int endRow = pageInfo.getEndRow() == 0 ? 0 : (int)((pageNum - 1) * pageSize + pageInfo.getEndRow() + 1);
int endRow = pageInfo.getEndRow() == 0 ? 0 : (int) ((pageNum - 1) * pageSize + pageInfo.getEndRow() + 1);
pageInfo.setEndRow(endRow);
boolean hasNextPage = collect.size() <= pageSize * pageNum ? false : true;
pageInfo.setHasNextPage(hasNextPage);
......@@ -1527,13 +1624,18 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
pageInfo.setStartRow(starRow);
return AjaxResult.success(pageInfo);
}
/**志愿自主选择 筛选学校*/
/**
* 志愿自主选择 筛选学校
*/
@Override
public List<Long> getAstrictSchoolIds(CheckingOutParamBo bo) {
return mallSchoolMapper.selectSchoolByParams(bo);
}
/**志愿自主选择 获取学校信息*/
/**
* 志愿自主选择 获取学校信息
*/
@Override
public List<SchoolMajorVO> schoolListInfoForReport(List<Long> sIds) {
return mallSchoolMapper.schoolListInfoForReport(sIds);
......@@ -1541,22 +1643,24 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 保研率学校列表
* @param schoolName 学校名
* @param batchId 批次id
*
* @param schoolName 学校名
* @param batchId 批次id
* @param configLevelId 层次id
* @param configTypeId 办学类型id
* @param provinceId 省份
* @param cityId 城市
* @param pageNum 页码
* @param pageSize 每页个数
* @param configTypeId 办学类型id
* @param provinceId 省份
* @param cityId 城市
* @param pageNum 页码
* @param pageSize 每页个数
* @return 结果
*/
@Override
public PageInfo<SchoolVO> selectSchoolListForMaster(String schoolName, Long batchId, Long configLevelId, Long configTypeId, Long provinceId, Long cityId, Integer pageNum, Integer pageSize) {
public PageInfo<SchoolVO> selectSchoolListForMaster(String schoolName, Long batchId, Long configLevelId, Long
configTypeId, Long provinceId, Long cityId, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<SchoolVO> schoolList = mallSchoolMapper.selectSchoolListForMaster(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId);
if (!schoolList.isEmpty()){
if (!schoolList.isEmpty()) {
for (SchoolVO schoolVO : schoolList) {
if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表
......@@ -1575,13 +1679,14 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 专业开设学校
* @param schoolName 学校名称
* @param batchId 批次id
*
* @param schoolName 学校名称
* @param batchId 批次id
* @param configLevelId 层次id
* @param configTypeId 类型id
* @param provinceId 省份id
* @param cityId 城市id
* @param type 类型(0-强校,1-硕士点)
* @param configTypeId 类型id
* @param provinceId 省份id
* @param cityId 城市id
* @param type 类型(0-强校,1-硕士点)
* @return 结果
*/
@Override
......@@ -1597,7 +1702,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<SchoolVO> list = mallSchoolMapper.selectSchoolListByMajorId(schoolName, batchId, configLevelId, configTypeId, provinceId, cityId, type, majorId);
if (!list.isEmpty()){
if (!list.isEmpty()) {
for (SchoolVO schoolVO : list) {
if (StringUtils.isNotBlank(schoolVO.getTags())) {
// 查询标签列表
......@@ -1612,7 +1717,8 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
/**
* 修改学校重复数据
* @param schoolId 保留的学校ID
*
* @param schoolId 保留的学校ID
* @param deleteSchoolId 删除的学校ID
* @return 结果
*/
......@@ -1708,7 +1814,7 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
String qrCode = "";
// 小程序码
Long schoolId = mallSchool.getSchoolId();
String key = schoolId + ".png";
String key = schoolId + ".png";
qrCode = weiXinUtils.getSchoolQRCode(schoolId, key);
updateSchool.setQrCode(qrCode);
}
......@@ -1727,4 +1833,5 @@ public class MallSchoolServiceImpl implements IMallSchoolService {
public MallSchool selectMallSchoolBySysUserId(Long sysUserId) {
return mallSchoolMapper.selectMallSchoolBySysUserId(sysUserId);
}
}
......@@ -413,9 +413,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="insertByList" >
<if test="schoolId != null">school_id,</if>
INSERT INTO mall_accept_plan (
batch_id,batch_id,plan_year,major_id,subject_type,accept_num,
school_id,batch_id,plan_year,major_id,subject_type,accept_num,
school_price,accept_rule_id,little_score_limit,sort,
create_at,update_at,del_flag,link_id
) VALUES
......
......@@ -159,6 +159,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="linkId != null ">#{linkId},</if>
</trim>
</insert>
<insert id="insertByList">
insert into mall_school_accept(
school_id,
major_id,
batch_id,
accept_num,
accept_lowest,
accept_year,
accept_rule_id,
send_rule_id,
create_at,
update_at,
del_flag,
subject_type,
reference,
is_reference,
link_id
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.schoolId},
#{item.majorId},
#{item.batchId},
#{item.acceptNum},
#{item.acceptLowest},
#{item.acceptYear},
#{item.acceptRuleId},
#{item.sendRuleId},
#{item.createAt},
#{item.updateAt},
#{item.delFlag},
#{item.subjectType},
#{item.reference},
#{item.isReference},
#{item.linkId},
)
</foreach>
</insert>
<update id="updateMallSchoolAccept" parameterType="MallSchoolAccept">
update mall_school_accept
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment