|
@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -247,12 +248,13 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
Organization organization = organizationDao.get(musicGroup.getOrganId());
|
|
|
Map<Long, String> goodsNameMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsNames(paymentOrderNo));
|
|
|
Map<Integer, String> usernameMap = MapUtil.convertIntegerMap(teacherDao.queryUsernameByIds(userIds));
|
|
|
- Map<Long, BigDecimal> actualAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDao.queryActualAmount(paymentOrderNo));
|
|
|
+ Map<Long, BigDecimal> expectAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDao.queryExpectAmount(paymentOrderNo));
|
|
|
Map<Long, BigDecimal> musicalAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, "MUSICAL"));
|
|
|
Map<Long, BigDecimal> accessoriesAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, "ACCESSORIES"));
|
|
|
Map<Long, BigDecimal> courseAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, "COURSE"));
|
|
|
Map<Long, String> purchaseTypeMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryPurchaseTypeMap(paymentOrderNo));
|
|
|
Map<Integer, String> userSubjectMap = subjectDao.getRegisterSubject(musicGroupId, userIds).stream().collect(Collectors.toMap(StudentRegistration::getUserId, StudentRegistration::getSubjectName));
|
|
|
+ List<StudentPaymentOrderDetail> details = studentPaymentOrderDetailDao.getOrderGoodies(paymentOrderNo);
|
|
|
|
|
|
musicalListDetailDtos.forEach(e -> {
|
|
|
e.setGoodsNames(goodsNameMap.get(e.getPaymentOrderId()));
|
|
@@ -261,34 +263,53 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
e.setOrganName(organization.getName());
|
|
|
e.setMusicalAmount(musicalAmountMap.get(e.getPaymentOrderId()));
|
|
|
e.setAccessoriesAmount(accessoriesAmountMap.get(e.getPaymentOrderId()));
|
|
|
- e.setOrderAmount(actualAmountMap.get(e.getPaymentOrderId()));
|
|
|
+ e.setOrderAmount(expectAmountMap.get(e.getPaymentOrderId()));
|
|
|
e.setCourseAmount(courseAmountMap.get(e.getPaymentOrderId()));
|
|
|
e.setSubjectName(userSubjectMap.get(e.getUserId()));
|
|
|
String s = purchaseTypeMap.get(e.getPaymentOrderId());
|
|
|
if (StringUtils.isNotEmpty(s)) {
|
|
|
e.setKitGroupPurchaseTypeEnum(KitGroupPurchaseTypeEnum.valueOf(purchaseTypeMap.get(e.getPaymentOrderId())));
|
|
|
}
|
|
|
+ List<Goods> accessories = new ArrayList<>();
|
|
|
+ for (StudentPaymentOrderDetail detail : details) {
|
|
|
+ if (!e.getPaymentOrderId().equals(detail.getPaymentOrderId())) continue;
|
|
|
+ if (detail.getType().equals(OrderDetailTypeEnum.MUSICAL)) {
|
|
|
+ e.setMusicalName(detail.getGoodsList().stream().map(Goods::getName).collect(Collectors.joining(",")));
|
|
|
+ } else {
|
|
|
+ accessories.addAll(detail.getGoodsList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ accessories.sort(Comparator.comparing(Goods::getId));
|
|
|
+ e.setAccessoriesName(accessories.stream().map(Goods::getName).collect(Collectors.joining(",")));
|
|
|
});
|
|
|
List<SubjectChange> studentGoodies = subjectChangeDao.getStudentGoods(musicGroupId);
|
|
|
if (studentGoodies.size() <= 0) {
|
|
|
return musicalListDetailDtos;
|
|
|
}
|
|
|
+ List<SubjectChange> margins = subjectChangeDao.getMargin(musicGroupId);
|
|
|
+
|
|
|
for (MusicalListDetailDto musicalListDetailDto : musicalListDetailDtos) {
|
|
|
for (SubjectChange studentGoods : studentGoodies) {
|
|
|
if (!musicalListDetailDto.getUserId().equals(studentGoods.getStudentId())) continue;
|
|
|
- String goodsNames = "";
|
|
|
+ musicalListDetailDto.setMusicalName("");
|
|
|
if (studentGoods.getChangeMusicalGoods() != null) {
|
|
|
- goodsNames += studentGoods.getChangeMusicalGoods().getName();
|
|
|
+ musicalListDetailDto.setMusicalName(studentGoods.getChangeMusicalGoods().getName());
|
|
|
}
|
|
|
+ musicalListDetailDto.setAccessoriesName("");
|
|
|
if (studentGoods.getChangeAccessoriesGoods() != null) {
|
|
|
- String accessoriesNames = studentGoods.getChangeAccessoriesGoods().stream().map(Goods::getName).collect(Collectors.joining(","));
|
|
|
- goodsNames += StringUtils.isNotBlank(goodsNames) ? "," + accessoriesNames : accessoriesNames;
|
|
|
+ List<Goods> changeAccessoriesGoods = studentGoods.getChangeAccessoriesGoods();
|
|
|
+ changeAccessoriesGoods.sort(Comparator.comparing(Goods::getId));
|
|
|
+ String accessoriesNames = changeAccessoriesGoods.stream().map(Goods::getName).collect(Collectors.joining(","));
|
|
|
+ musicalListDetailDto.setAccessoriesName(accessoriesNames);
|
|
|
}
|
|
|
- musicalListDetailDto.setGoodsNames(goodsNames);
|
|
|
musicalListDetailDto.setMusicalAmount(studentGoods.getChangeMusicalPrice());
|
|
|
musicalListDetailDto.setAccessoriesAmount(studentGoods.getChangeAccessoriesPrice());
|
|
|
musicalListDetailDto.setCourseAmount(studentGoods.getChangeCourseFee());
|
|
|
}
|
|
|
+ for (SubjectChange margin : margins) {
|
|
|
+ if (!musicalListDetailDto.getUserId().equals(margin.getStudentId())) continue;
|
|
|
+ musicalListDetailDto.setOrderAmount(musicalListDetailDto.getOrderAmount().add(margin.getGoodsMargin()));
|
|
|
+ }
|
|
|
}
|
|
|
return musicalListDetailDtos;
|
|
|
}
|