|
@@ -45,6 +45,8 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
private StudentRegistrationDao studentRegistrationDao;
|
|
|
@Autowired
|
|
|
private SubjectDao subjectDao;
|
|
|
+ @Autowired
|
|
|
+ private SubjectChangeDao subjectChangeDao;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, StudentPaymentOrderDetail> getDAO() {
|
|
@@ -62,41 +64,106 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<Goods> getMusicalList(String musicGroupId) {
|
|
|
- List<StudentPaymentOrderDetail> applyOrder = findApplyOrderSuccess(musicGroupId, DealStatusEnum.SUCCESS);
|
|
|
- if (applyOrder == null || applyOrder.size() == 0) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- String goodsIdsStr = "";
|
|
|
- for (StudentPaymentOrderDetail studentPaymentOrderDetail : applyOrder) {
|
|
|
- if (studentPaymentOrderDetail.getGoodsIdList() != null && !studentPaymentOrderDetail.getGoodsIdList().isEmpty()) {
|
|
|
- goodsIdsStr += studentPaymentOrderDetail.getGoodsIdList() + ",";
|
|
|
- }
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(goodsIdsStr)) {
|
|
|
- goodsIdsStr = goodsIdsStr.substring(0, goodsIdsStr.length() - 1);
|
|
|
-
|
|
|
- String[] goodSIdArr = goodsIdsStr.split(",");
|
|
|
-
|
|
|
- List<Goods> goodies = goodsService.findGoodsByIds(goodsIdsStr);
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
- Organization organization = organizationDao.get(musicGroup.getOrganId());
|
|
|
- goodies.forEach(e->{
|
|
|
- e.setSellCount(0);
|
|
|
- //当作乐团名称字段处理
|
|
|
- e.setMemo(musicGroup.getName());
|
|
|
- //当作分部名称字段处理
|
|
|
- e.setBrief(organization.getName());
|
|
|
- for (String goodsIdStr : goodSIdArr) {
|
|
|
- if (e.getId().equals(Integer.parseInt(goodsIdStr))) {
|
|
|
- e.setSellCount(e.getSellCount() + 1);
|
|
|
+ public List<Goods> getMusicalList(String musicGroupId) {
|
|
|
+ List<StudentPaymentOrderDetail> applyOrder = findApplyOrderSuccess(musicGroupId, DealStatusEnum.SUCCESS);
|
|
|
+ if (applyOrder == null || applyOrder.size() == 0) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ String goodsIdsStr = "";
|
|
|
+ for (StudentPaymentOrderDetail studentPaymentOrderDetail : applyOrder) {
|
|
|
+ if (studentPaymentOrderDetail.getGoodsIdList() != null && !studentPaymentOrderDetail.getGoodsIdList().isEmpty()) {
|
|
|
+ goodsIdsStr += studentPaymentOrderDetail.getGoodsIdList() + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(goodsIdsStr)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ goodsIdsStr = goodsIdsStr.substring(0, goodsIdsStr.length() - 1);
|
|
|
+
|
|
|
+ String[] goodSIdArr = goodsIdsStr.split(",");
|
|
|
+
|
|
|
+ List<Goods> goodies = goodsService.findGoodsByIds(goodsIdsStr);
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+ Organization organization = organizationDao.get(musicGroup.getOrganId());
|
|
|
+ goodies.forEach(e -> {
|
|
|
+ e.setSellCount(0);
|
|
|
+ //当作乐团名称字段处理
|
|
|
+ e.setMemo(musicGroup.getName());
|
|
|
+ //当作分部名称字段处理
|
|
|
+ e.setBrief(organization.getName());
|
|
|
+ for (String goodsIdStr : goodSIdArr) {
|
|
|
+ if (e.getId().equals(Integer.parseInt(goodsIdStr))) {
|
|
|
+ e.setSellCount(e.getSellCount() + 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //乐器更换的
|
|
|
+ SubjectChange changeGoods = subjectChangeDao.getChangeGoods(musicGroupId);
|
|
|
+ String originalGoodsIds = "";
|
|
|
+ String changeGoodsIds = "";
|
|
|
+ if (changeGoods != null) {
|
|
|
+ if (StringUtils.isNotBlank(changeGoods.getMusicGroupName())) {
|
|
|
+ originalGoodsIds += StringUtils.isNotBlank(originalGoodsIds) ? "," + changeGoods.getMusicGroupName() : changeGoods.getMusicGroupName();
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(changeGoods.getOriginalAccessories())) {
|
|
|
+ originalGoodsIds += StringUtils.isNotBlank(originalGoodsIds) ? "," + changeGoods.getOriginalAccessories() : changeGoods.getOriginalAccessories();
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(changeGoods.getTransNo())) {
|
|
|
+ changeGoodsIds += StringUtils.isNotBlank(changeGoodsIds) ? "," + changeGoods.getTransNo() : changeGoods.getTransNo();
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(changeGoods.getChangeAccessories())) {
|
|
|
+ changeGoodsIds += StringUtils.isNotBlank(changeGoodsIds) ? "," + changeGoods.getChangeAccessories() : changeGoods.getChangeAccessories();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(changeGoodsIds)) {
|
|
|
+ String[] changGoodsIdsArr = changeGoodsIds.split(",");
|
|
|
+ List<Goods> addGoodies = new ArrayList<>();
|
|
|
+ for (String goodsId : changGoodsIdsArr) {
|
|
|
+ boolean has = false;
|
|
|
+ for (Goods goods : goodies) {
|
|
|
+ if (goodsId.equals(goods.getId().toString())) {
|
|
|
+ goods.setSellCount(goods.getSellCount() + 1);
|
|
|
+ has = true;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
- return goodies;
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
+
|
|
|
+ for (Goods addGoods : addGoodies) {
|
|
|
+ if (goodsId.equals(addGoods.getId().toString())) {
|
|
|
+ addGoods.setSellCount(addGoods.getSellCount() + 1);
|
|
|
+ has = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!has) {
|
|
|
+ Goods goods = goodsService.get(Integer.parseInt(goodsId));
|
|
|
+ goods.setSellCount(1);
|
|
|
+ goods.setMemo(musicGroup.getName());
|
|
|
+ //当作分部名称字段处理
|
|
|
+ goods.setBrief(organization.getName());
|
|
|
+ addGoodies.add(goods);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(originalGoodsIds)) {
|
|
|
+ String[] originalGoodsIdsArr = originalGoodsIds.split(",");
|
|
|
+ for (String goodsId : originalGoodsIdsArr) {
|
|
|
+ for (Goods goods : goodies) {
|
|
|
+ if (goodsId.equals(goods.getId().toString())) {
|
|
|
+ goods.setSellCount(goods.getSellCount() - 1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ while (goodies.iterator().hasNext()) {
|
|
|
+ if (goodies.iterator().next().getSellCount() <= 0) {
|
|
|
+ goodies.iterator().remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return goodies;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public Boolean verifyMusicalList(String musicGroupId) throws BizException {
|
|
@@ -146,7 +213,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
goodsIdsStr += studentPaymentOrderDetail.getGoodsIdList() + ",";
|
|
|
}
|
|
|
}
|
|
|
- if(goodsIdsStr.isEmpty()){
|
|
|
+ if (goodsIdsStr.isEmpty()) {
|
|
|
return null;
|
|
|
}
|
|
|
goodsIdsStr = goodsIdsStr.substring(0, goodsIdsStr.length() - 1);
|
|
@@ -174,21 +241,21 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
@Override
|
|
|
public List<MusicalListDetailDto> getMusicalListDetail(String musicGroupId) {
|
|
|
List<MusicalListDetailDto> musicalListDetailDtos = studentPaymentOrderDetailDao.getMusicalListDetail(musicGroupId);
|
|
|
- if(musicalListDetailDtos != null && musicalListDetailDtos.size() > 0){
|
|
|
+ if (musicalListDetailDtos != null && musicalListDetailDtos.size() > 0) {
|
|
|
List<Long> paymentOrderNo = musicalListDetailDtos.stream().map(MusicalListDetailDto::getPaymentOrderId).collect(Collectors.toList());
|
|
|
List<Integer> userIds = musicalListDetailDtos.stream().map(MusicalListDetailDto::getUserId).collect(Collectors.toList());
|
|
|
//商品名称
|
|
|
MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
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, 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> 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, 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(studentRegistrationDao.queryPurchaseTypeMap(musicGroupId));
|
|
|
Map<Integer, String> userSubjectMap = subjectDao.getRegisterSubject(musicGroupId, userIds).stream().collect(Collectors.toMap(StudentRegistration::getUserId, StudentRegistration::getSubjectName));
|
|
|
- musicalListDetailDtos.forEach(e->{
|
|
|
+ musicalListDetailDtos.forEach(e -> {
|
|
|
e.setGoodsNames(goodsNameMap.get(e.getPaymentOrderId()));
|
|
|
e.setMusicGroupName(musicGroup.getName());
|
|
|
e.setUsername(usernameMap.get(e.getUserId()));
|
|
@@ -199,7 +266,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
e.setCourseAmount(courseAmountMap.get(e.getPaymentOrderId()));
|
|
|
e.setSubjectName(userSubjectMap.get(e.getUserId()));
|
|
|
String s = purchaseTypeMap.get(e.getUserId().longValue());
|
|
|
- if(StringUtils.isNotEmpty(s)){
|
|
|
+ if (StringUtils.isNotEmpty(s)) {
|
|
|
e.setKitGroupPurchaseTypeEnum(KitGroupPurchaseTypeEnum.valueOf(purchaseTypeMap.get(e.getUserId().longValue())));
|
|
|
}
|
|
|
});
|