|
@@ -19,46 +19,26 @@ import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
+import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDetailDto;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderStudentDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
|
|
|
-import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
import com.ym.mec.biz.dal.dto.FeeStudentDto;
|
|
|
import com.ym.mec.biz.dal.dto.MusicArrearageStudentDto;
|
|
|
import com.ym.mec.biz.dal.dto.SimpleUserDto;
|
|
|
-import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderStudentDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
|
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentRegistration;
|
|
|
import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
|
|
|
import com.ym.mec.biz.dal.page.ArrearageStudentsQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.MusicCalenderDetailQueryInfo;
|
|
|
import com.ym.mec.biz.event.source.GroupEventSource;
|
|
|
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderActivityService;
|
|
|
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderDetailService;
|
|
|
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
|
|
|
-import com.ym.mec.biz.service.StudentService;
|
|
|
-import com.ym.mec.biz.service.SysConfigService;
|
|
|
-import com.ym.mec.biz.service.SysMessageService;
|
|
|
import com.ym.mec.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
@@ -96,7 +76,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
|
|
|
@Autowired
|
|
|
private GroupEventSource groupEventSource;
|
|
|
@Autowired
|
|
|
- private StudentService studentService;
|
|
|
+ private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
|
|
|
@Autowired
|
|
|
private CloudTeacherOrderDao cloudTeacherOrderDao;
|
|
|
@Autowired
|
|
@@ -691,4 +671,49 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_WAIT_RENEW_MESSAGE, studentMaps,
|
|
|
null, 0, memo, null, musicGroup.getName());
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageInfo<MusicGroupPaymentCalenderDetailDto> queryDetailPage(MusicCalenderDetailQueryInfo queryInfo) {
|
|
|
+ PageInfo<MusicGroupPaymentCalenderDetailDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+
|
|
|
+ List<MusicGroupPaymentCalenderDetailDto> dataList = null;
|
|
|
+ int count = musicGroupPaymentCalenderDetailDao.countDetailPage(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = musicGroupPaymentCalenderDetailDao.queryDetailPage(params);
|
|
|
+ List<Long> orderIds = dataList.stream().map(e -> e.getPaymentOrderId()).collect(Collectors.toList());
|
|
|
+ List<StudentPaymentOrderDetail> orderDetail = studentPaymentOrderDetailDao.getOrderDetailByOrderId(orderIds);
|
|
|
+ Map<Long, List<StudentPaymentOrderDetail>> orderDetailMap = orderDetail.stream().collect(Collectors.groupingBy(StudentPaymentOrderDetail::getPaymentOrderId));
|
|
|
+ for (MusicGroupPaymentCalenderDetailDto row : dataList) {
|
|
|
+ List<StudentPaymentOrderDetail> orderDetailList = orderDetailMap.get(row.getPaymentOrderId());
|
|
|
+ if(orderDetailList != null && orderDetailList.size() > 0){
|
|
|
+ BigDecimal totalAmount = orderDetailList.stream().map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //辅件
|
|
|
+ BigDecimal accessoriesAmount = orderDetailList.stream().filter(e -> e.getType() == OrderDetailTypeEnum.ACCESSORIES).map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ row.setAccessoriesAmount(accessoriesAmount);
|
|
|
+ //会员金额
|
|
|
+ BigDecimal cloudAmount = orderDetailList.stream().filter(e -> e.getType() == OrderDetailTypeEnum.CLOUD_TEACHER || e.getType() == OrderDetailTypeEnum.CLOUD_TEACHER_PLUS).map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ row.setCloudAmount(cloudAmount);
|
|
|
+ //乐器
|
|
|
+ BigDecimal musicalAmount = orderDetailList.stream().filter(e -> e.getType() == OrderDetailTypeEnum.MUSICAL).map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ row.setMusicalAmount(musicalAmount);
|
|
|
+ //乐保
|
|
|
+ BigDecimal maintenanceAmount = orderDetailList.stream().filter(e -> e.getType() == OrderDetailTypeEnum.MAINTENANCE).map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ row.setMaintenanceAmount(maintenanceAmount);
|
|
|
+ //活动
|
|
|
+ BigDecimal activityAmount = orderDetailList.stream().filter(e -> e.getType() == OrderDetailTypeEnum.PRACTICE || e.getType() == OrderDetailTypeEnum.VIP).map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ totalAmount = totalAmount.subtract(accessoriesAmount).subtract(cloudAmount).subtract(musicalAmount).subtract(maintenanceAmount).subtract(activityAmount);
|
|
|
+ row.setCourseAmount(totalAmount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
}
|