|
@@ -309,11 +309,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
List<StudentPaymentOrder> studentPaymentOrderList = new ArrayList<StudentPaymentOrder>();
|
|
|
|
|
|
if (studentRegistration.getMusicGroupPaymentCalenderId() == null) {
|
|
|
- StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, SUCCESS);
|
|
|
- if (studentPaymentOrder != null) {
|
|
|
- studentPaymentOrderList.add(studentPaymentOrder);
|
|
|
- }
|
|
|
-
|
|
|
+ studentPaymentOrderList = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, SUCCESS);
|
|
|
} else {
|
|
|
studentPaymentOrderList = studentPaymentOrderService.queryByBatchNo(userId, studentRegistration.getMusicGroupPaymentCalenderId() + "",
|
|
|
DealStatusEnum.SUCCESS);
|
|
@@ -321,19 +317,31 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
|
|
|
List<Long> paymentOrderIdList = studentPaymentOrderList.stream().map(t -> t.getId()).collect(Collectors.toList());
|
|
|
|
|
|
- Long minPaymentOrderId = Collections.min(paymentOrderIdList);
|
|
|
-
|
|
|
- List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.getWithIds(paymentOrderIdList);
|
|
|
+ subjectChange = subjectChangeMap.get(studentRegistration.getUserId());
|
|
|
+
|
|
|
+ if((paymentOrderIdList == null || paymentOrderIdList.size() == 0) && subjectChange == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<StudentPaymentOrderDetail> orderDetailList = new ArrayList<StudentPaymentOrderDetail>();
|
|
|
+
|
|
|
+ if(paymentOrderIdList != null && paymentOrderIdList.size() > 0) {
|
|
|
+ orderDetailList = studentPaymentOrderDetailDao.getWithIds(paymentOrderIdList);
|
|
|
+ }
|
|
|
|
|
|
Map<OrderDetailTypeEnum,BigDecimal> userOrderTypeMap = new HashMap<OrderDetailTypeEnum, BigDecimal>();;
|
|
|
|
|
|
BigDecimal amount = BigDecimal.ZERO;
|
|
|
KitGroupPurchaseTypeEnum kitGroupPurchaseType = null;
|
|
|
- String goodsId = null ,accessoriesId = null ;
|
|
|
+ String musicalId = null;
|
|
|
+ StringBuffer accessoriesId = new StringBuffer();
|
|
|
BigDecimal orderTotalAmount = BigDecimal.ZERO;
|
|
|
- BigDecimal withoutMusicalTotalAmount = BigDecimal.ZERO;
|
|
|
|
|
|
- for(StudentPaymentOrderDetail spod : orderDetailList){
|
|
|
+ boolean isCalculatedOfAccessories = false;
|
|
|
+ boolean isChangeMusical = false;
|
|
|
+ boolean isChangeAccessories = false;
|
|
|
+
|
|
|
+ for(StudentPaymentOrderDetail spod : orderDetailList) {
|
|
|
|
|
|
if (spod.getType() == OrderDetailTypeEnum.COURSE || spod.getType() == OrderDetailTypeEnum.HIGH_ONLINE_COURSE
|
|
|
|| spod.getType() == OrderDetailTypeEnum.SINGLE || spod.getType() == OrderDetailTypeEnum.VIP
|
|
@@ -343,14 +351,37 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
|| spod.getType() == OrderDetailTypeEnum.TRAINING_MIX || spod.getType() == OrderDetailTypeEnum.HIGH_ONLINE
|
|
|
|| spod.getType() == OrderDetailTypeEnum.MUSIC_NETWORK || spod.getType() == OrderDetailTypeEnum.CLASSROOM || spod.getType() == OrderDetailTypeEnum.THEORY_COURSE) {
|
|
|
spod.setType(OrderDetailTypeEnum.COURSE);
|
|
|
- withoutMusicalTotalAmount = withoutMusicalTotalAmount.add(spod.getPrice().subtract(spod.getRemitFee()));
|
|
|
+ //courseAmount = courseAmount.add(spod.getPrice().subtract(spod.getRemitFee()));
|
|
|
}else if(spod.getType() == OrderDetailTypeEnum.MUSICAL){
|
|
|
- kitGroupPurchaseType = spod.getKitGroupPurchaseType();
|
|
|
- goodsId = spod.getGoodsIdList();
|
|
|
+ if(subjectChange != null && spod.getPaymentOrderId() <= subjectChange.getOriginalOrderId()) {
|
|
|
+ if(subjectChange.getChangeMusical() == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ kitGroupPurchaseType = subjectChange.getKitGroupPurchaseType();
|
|
|
+ musicalId = subjectChange.getChangeMusical() + "";
|
|
|
+ spod.setPrice(subjectChange.getChangeMusicalPrice());
|
|
|
+ spod.setRemitFee(BigDecimal.ZERO);
|
|
|
+ isChangeMusical = true;
|
|
|
+ } else {
|
|
|
+ kitGroupPurchaseType = spod.getKitGroupPurchaseType();
|
|
|
+ musicalId = spod.getGoodsIdList();
|
|
|
+ //musicalAmount = musicalAmount.add(spod.getPrice());
|
|
|
+ }
|
|
|
}else if(spod.getType() == OrderDetailTypeEnum.ACCESSORIES){
|
|
|
- accessoriesId = spod.getGoodsIdList();
|
|
|
- }else{
|
|
|
- withoutMusicalTotalAmount = withoutMusicalTotalAmount.add(spod.getPrice().subtract(spod.getRemitFee()));
|
|
|
+ if(subjectChange != null && (subjectChange.getOriginalOrderId() != null && spod.getPaymentOrderId() <= subjectChange.getOriginalOrderId())) {
|
|
|
+ if(StringUtils.isBlank(subjectChange.getChangeAccessories()) || isCalculatedOfAccessories == true){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ isCalculatedOfAccessories = true;
|
|
|
+ accessoriesId = accessoriesId.append(subjectChange.getChangeAccessories()).append(",");
|
|
|
+ //accessoriesAmount = accessoriesAmount.add(subjectChange.getChangeAccessoriesPrice());
|
|
|
+ spod.setPrice(subjectChange.getChangeAccessoriesPrice());
|
|
|
+ spod.setRemitFee(BigDecimal.ZERO);
|
|
|
+ isChangeAccessories = true;
|
|
|
+ }else{
|
|
|
+ accessoriesId = accessoriesId.append(spod.getGoodsIdList()).append(",");
|
|
|
+ //accessoriesAmount = accessoriesAmount.add(spod.getPrice());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
amount = userOrderTypeMap.get(spod.getType());
|
|
@@ -363,49 +394,71 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
|
|
|
orderTotalAmount = orderTotalAmount.add(spod.getPrice().subtract(spod.getRemitFee()));
|
|
|
}
|
|
|
+
|
|
|
+ if(orderDetailList.size() == 0) {
|
|
|
+ if(subjectChange != null){
|
|
|
+ if(subjectChange.getChangeMusical() != null){
|
|
|
+ kitGroupPurchaseType = subjectChange.getKitGroupPurchaseType();
|
|
|
+ musicalId = subjectChange.getChangeMusical() + "";
|
|
|
+ userOrderTypeMap.put(OrderDetailTypeEnum.MUSICAL, subjectChange.getChangeMusicalPrice());
|
|
|
+ orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeMusicalPrice());
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(subjectChange.getChangeAccessories())) {
|
|
|
+ accessoriesId = accessoriesId.append(subjectChange.getChangeAccessories()).append(",");
|
|
|
+ userOrderTypeMap.put(OrderDetailTypeEnum.ACCESSORIES, subjectChange.getChangeAccessoriesPrice());
|
|
|
+ orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeAccessoriesPrice());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(isChangeAccessories == false || isChangeMusical == false){
|
|
|
+ if(subjectChange != null){
|
|
|
+ if(subjectChange.getChangeMusical() != null && isChangeMusical == false){
|
|
|
+ kitGroupPurchaseType = subjectChange.getKitGroupPurchaseType();
|
|
|
+ musicalId = subjectChange.getChangeMusical() + "";
|
|
|
+ userOrderTypeMap.put(OrderDetailTypeEnum.MUSICAL, subjectChange.getChangeMusicalPrice());
|
|
|
+ orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeMusicalPrice());
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(subjectChange.getChangeAccessories()) && isChangeAccessories == false) {
|
|
|
+ accessoriesId = accessoriesId.append(subjectChange.getChangeAccessories()).append(",");
|
|
|
+ userOrderTypeMap.put(OrderDetailTypeEnum.ACCESSORIES, subjectChange.getChangeAccessoriesPrice());
|
|
|
+ orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeAccessoriesPrice());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- subjectChange = subjectChangeMap.get(studentRegistration.getUserId());
|
|
|
- if(subjectChange != null && minPaymentOrderId <= subjectChange.getOriginalOrderId()){
|
|
|
- dto.setAccessoriesAmount(subjectChange.getChangeAccessoriesPrice());
|
|
|
- if(subjectChange.getChangeAccessoriesGoods() != null){
|
|
|
- dto.setAccessoriesName(subjectChange.getChangeAccessoriesGoods().stream().map(Goods::getName).collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
-
|
|
|
- dto.setCourseAmount(userOrderTypeMap.get(OrderDetailTypeEnum.COURSE));
|
|
|
- //dto.setGoodsNames(goodsNames);
|
|
|
- dto.setKitGroupPurchaseTypeEnum(subjectChange.getKitGroupPurchaseType());
|
|
|
- dto.setMusicalAmount(subjectChange.getChangeMusicalPrice());
|
|
|
- if(subjectChange.getChangeMusicalGoods() != null){
|
|
|
- dto.setMusicalName(subjectChange.getChangeMusicalGoods().getName());
|
|
|
- }
|
|
|
- dto.setMusicGroupName(musicGroup.getName());
|
|
|
- dto.setOrganName(organization.getName());
|
|
|
- dto.setOrderAmount(withoutMusicalTotalAmount.add(subjectChange.getChangeMusicalPrice().add(subjectChange.getChangeAccessoriesPrice())));
|
|
|
- dto.setUserId(userId);
|
|
|
- dto.setSubjectName(userSubjectMap.get(userId));
|
|
|
- dto.setUsername(usernameMap.get(userId));
|
|
|
- }else{
|
|
|
-
|
|
|
- if(StringUtils.isNoneBlank(accessoriesId)){
|
|
|
- dto.setAccessoriesName(goodsService.findGoodsByIds(accessoriesId).stream().map(Goods::getName).collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
-
|
|
|
- dto.setAccessoriesAmount(userOrderTypeMap.get(OrderDetailTypeEnum.ACCESSORIES));
|
|
|
- dto.setCourseAmount(userOrderTypeMap.get(OrderDetailTypeEnum.COURSE));
|
|
|
- dto.setMusicalAmount(userOrderTypeMap.get(OrderDetailTypeEnum.MUSICAL));
|
|
|
+ dto.setAccessoriesAmount(userOrderTypeMap.get(OrderDetailTypeEnum.ACCESSORIES));
|
|
|
+ dto.setCourseAmount(userOrderTypeMap.get(OrderDetailTypeEnum.COURSE));
|
|
|
+ dto.setMusicalAmount(userOrderTypeMap.get(OrderDetailTypeEnum.MUSICAL));
|
|
|
+ dto.setMaintenanceAmount(userOrderTypeMap.get(OrderDetailTypeEnum.MAINTENANCE));
|
|
|
+ dto.setCloudTeacherAmount(userOrderTypeMap.get(OrderDetailTypeEnum.CLOUD_TEACHER) == null ? userOrderTypeMap
|
|
|
+ .get(OrderDetailTypeEnum.CLOUD_TEACHER_PLUS) : userOrderTypeMap.get(OrderDetailTypeEnum.CLOUD_TEACHER));
|
|
|
+
|
|
|
+ if (StringUtils.isNoneBlank(accessoriesId.toString())) {
|
|
|
+ String accessoriesIdList = StringUtils.removeEnd(accessoriesId.toString(), ",");
|
|
|
+ Map<Integer, Goods> goodsMap = goodsService.findGoodsByIds(accessoriesIdList).stream().collect(Collectors.toMap(Goods::getId, Goods -> Goods));
|
|
|
+
|
|
|
+ String[] accessoriesIds = StringUtils.split(accessoriesIdList, ',');
|
|
|
+
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ for (String s : accessoriesIds) {
|
|
|
+ if(StringUtils.isBlank(s)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ sb.append(goodsMap.get(Integer.parseInt(s)).getName()).append(",");
|
|
|
+ }
|
|
|
+ dto.setAccessoriesName(StringUtils.removeEnd(sb.toString(), ","));
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.isNoneBlank(musicalId)){
|
|
|
+ dto.setMusicalName(goodsService.findGoodsByIds(musicalId).stream().map(Goods::getName).collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
+ dto.setKitGroupPurchaseTypeEnum(kitGroupPurchaseType);
|
|
|
+ dto.setMusicGroupName(musicGroup.getName());
|
|
|
+ dto.setOrganName(organization.getName());
|
|
|
+ dto.setOrderAmount(orderTotalAmount);
|
|
|
+ dto.setUserId(userId);
|
|
|
+ dto.setSubjectName(userSubjectMap.get(userId));
|
|
|
+ dto.setUsername(usernameMap.get(userId));
|
|
|
|
|
|
- //dto.setGoodsNames(goodsNames);
|
|
|
- dto.setKitGroupPurchaseTypeEnum(kitGroupPurchaseType);
|
|
|
- if(StringUtils.isNoneBlank(goodsId)){
|
|
|
- dto.setMusicalName(goodsService.findGoodsByIds(goodsId).stream().map(Goods::getName).collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
- dto.setMusicGroupName(musicGroup.getName());
|
|
|
- dto.setOrganName(organization.getName());
|
|
|
- dto.setOrderAmount(orderTotalAmount);
|
|
|
- dto.setUserId(userId);
|
|
|
- dto.setSubjectName(userSubjectMap.get(userId));
|
|
|
- dto.setUsername(usernameMap.get(userId));
|
|
|
- }
|
|
|
musicalListDetailDtos.add(dto);
|
|
|
}
|
|
|
|