|
@@ -23,12 +23,12 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Isolation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@@ -55,6 +55,9 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
@Autowired
|
|
|
private DegreeService degreeService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SubjectService subjectService;
|
|
|
+
|
|
|
@Override
|
|
|
public BaseDAO<Integer, DegreeRegistration> getDAO() {
|
|
|
return degreeRegistrationDao;
|
|
@@ -81,7 +84,6 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
}
|
|
|
Date nowDate = new Date();
|
|
|
String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
- degreeRegistration.setOrderNo(orderNo);
|
|
|
//获取收费项价格
|
|
|
BigDecimal money = BigDecimal.ZERO;
|
|
|
List<DegreeRegistrationDto> registrationDtos = degreeRegistration.getDegreeRegistrationDtos();
|
|
@@ -90,28 +92,35 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
DegreeRegistration degree = new DegreeRegistration();
|
|
|
BeanUtils.copyProperties(degreeRegistration,degree);
|
|
|
String level = registrationDto.getLevel();
|
|
|
+ degree.setOrderNo(orderNo);
|
|
|
degree.setLevel(level);
|
|
|
degree.setDegreeId(registrationDto.getDegreeId());
|
|
|
- degree.setMoney(registrationDto.getMoney());
|
|
|
degree.setTheoryCert(registrationDto.getTheoryCert());
|
|
|
degree.setType(registrationDto.getType());
|
|
|
degree.setStatus(1);
|
|
|
- DegreeLevelFeeNew one = degreeLevelFeeService.lambdaQuery()
|
|
|
- .eq(DegreeLevelFeeNew::getSubjectId, degreeRegistration.getSubjectId())
|
|
|
- .eq(DegreeLevelFeeNew::getDegreeType, degreeRegistration.getType())
|
|
|
- .eq(DegreeLevelFeeNew::getLevel, degreeRegistration.getLevel()).one();
|
|
|
+ DegreeLevelFeeNew one;
|
|
|
+ if(registrationDto.getType() == DegreeTypeEnum.THEORY){
|
|
|
+ one = degreeLevelFeeService.lambdaQuery()
|
|
|
+ .eq(DegreeLevelFeeNew::getDegreeType, registrationDto.getType())
|
|
|
+ .eq(DegreeLevelFeeNew::getLevel, registrationDto.getLevel()).one();
|
|
|
+ }else {
|
|
|
+ one = degreeLevelFeeService.lambdaQuery()
|
|
|
+ .eq(DegreeLevelFeeNew::getSubjectId, degreeRegistration.getSubjectId())
|
|
|
+ .eq(DegreeLevelFeeNew::getDegreeType, registrationDto.getType())
|
|
|
+ .eq(DegreeLevelFeeNew::getLevel, registrationDto.getLevel()).one();
|
|
|
+ }
|
|
|
if(Objects.isNull(one)){
|
|
|
throw new BizException("该级别已不可报名");
|
|
|
}
|
|
|
degree.setMoney(one.getFee());
|
|
|
+ money = money.add(one.getFee());
|
|
|
degreeRegistrationList.add(degree);
|
|
|
}
|
|
|
- degreeRegistrationDao.batchInsert(degreeRegistrationList);
|
|
|
-
|
|
|
if(money.compareTo(degreeRegistration.getPrice())!=0){
|
|
|
throw new BizException("商品价格不符");
|
|
|
}
|
|
|
-
|
|
|
+ degreeRegistrationDao.batchInsert(degreeRegistrationList);
|
|
|
+
|
|
|
Integer userId = degreeRegistration.getUserId();
|
|
|
String channelType = "";
|
|
|
StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
@@ -145,11 +154,7 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
studentPaymentOrder.setBalancePaymentAmount(BigDecimal.ZERO);
|
|
|
}
|
|
|
studentPaymentOrder.setStatus(DealStatusEnum.ING);
|
|
|
- studentPaymentOrder.setClassGroupId(degreeRegistration.getId());
|
|
|
- String collect = degreeRegistrationList.stream().map(e -> e.getDegreeId().toString()).collect(Collectors.joining(","));
|
|
|
- if(StringUtils.isNotEmpty(collect)){
|
|
|
- studentPaymentOrder.setMusicGroupId(collect);
|
|
|
- }
|
|
|
+ studentPaymentOrder.setMusicGroupId(degreeRegistration.getDegreeId().toString());
|
|
|
studentPaymentOrder.setOrganId(degreeRegistration.getOrganId());
|
|
|
studentPaymentOrder.setRoutingOrganId(degreeRegistration.getOrganId());
|
|
|
studentPaymentOrderService.insert(studentPaymentOrder);
|
|
@@ -262,6 +267,24 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
degreeRegistration.setVipTeacherName(vipTeacherMapper.get(degreeRegistration.getUserId()));
|
|
|
degreeRegistration.setNormalTeacherName(teacherMapper.get(degreeRegistration.getUserId()));
|
|
|
}
|
|
|
+ // 设置声部
|
|
|
+ Set<Integer> subjectIdSet = dataList.stream().map(o -> o.getSubjectId()).filter(Objects::nonNull).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ List<Subject> subjectList = subjectService.findBySubjectByIdList(new ArrayList<>(subjectIdSet));
|
|
|
+
|
|
|
+ // id 分组
|
|
|
+ Map<Integer, Subject> subjectMap = subjectList.stream().collect(Collectors.toMap(Subject::getId, Function.identity()));
|
|
|
+ for (DegreeRegistration degreeRegistration : dataList) {
|
|
|
+ if (degreeRegistration.getSubjectId() == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Subject subject = subjectMap.get(degreeRegistration.getSubjectId());
|
|
|
+ if (subject != null) {
|
|
|
+ degreeRegistration.setSubjectName(subject.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
DegreeRegistration degree = degreeRegistrationDao.getTotalAmount(params);
|
|
|
pageInfo.setApplyNum(degreeRegistrationDao.countApplyNum(params));
|
|
|
pageInfo.setTotalAmount(degree.getMoney());
|