|
@@ -2,21 +2,27 @@ package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import com.ym.mec.biz.dal.dao.MusicGroupCalenderRefundPeriodDao;
|
|
import com.ym.mec.biz.dal.dao.MusicGroupCalenderRefundPeriodDao;
|
|
import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
|
+import com.ym.mec.biz.dal.dto.CooperationCalenderRefundDto;
|
|
|
|
+import com.ym.mec.biz.dal.dto.CooperationRefundDto;
|
|
import com.ym.mec.biz.dal.dto.MusicGroupPaymentBaseCalender;
|
|
import com.ym.mec.biz.dal.dto.MusicGroupPaymentBaseCalender;
|
|
import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupCalenderRefundPeriod;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupCalenderRefundPeriod;
|
|
|
|
+import com.ym.mec.biz.dal.page.CooperationRefundQueryInfo;
|
|
import com.ym.mec.biz.service.MusicGroupCalenderRefundPeriodService;
|
|
import com.ym.mec.biz.service.MusicGroupCalenderRefundPeriodService;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
|
+import com.ym.mec.common.page.PageInfo;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
|
+import com.ym.mec.util.collection.MapUtil;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.Date;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.SCHOOL;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.SCHOOL;
|
|
|
|
|
|
@@ -27,6 +33,8 @@ public class MusicGroupCalenderRefundPeriodServiceImpl extends BaseServiceImpl<I
|
|
private MusicGroupCalenderRefundPeriodDao musicGroupCalenderRefundPeriodDao;
|
|
private MusicGroupCalenderRefundPeriodDao musicGroupCalenderRefundPeriodDao;
|
|
@Autowired
|
|
@Autowired
|
|
private MusicGroupDao musicGroupDao;
|
|
private MusicGroupDao musicGroupDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private TeacherDao teacherDao;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public BaseDAO<Integer, MusicGroupCalenderRefundPeriod> getDAO() {
|
|
public BaseDAO<Integer, MusicGroupCalenderRefundPeriod> getDAO() {
|
|
@@ -60,4 +68,65 @@ public class MusicGroupCalenderRefundPeriodServiceImpl extends BaseServiceImpl<I
|
|
public List<MusicGroupCalenderRefundPeriod> findByCalenderId(Long calenderId) {
|
|
public List<MusicGroupCalenderRefundPeriod> findByCalenderId(Long calenderId) {
|
|
return musicGroupCalenderRefundPeriodDao.findByCalenderId(calenderId);
|
|
return musicGroupCalenderRefundPeriodDao.findByCalenderId(calenderId);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public PageInfo<CooperationRefundDto> queryCoopRefund(CooperationRefundQueryInfo queryInfo) {
|
|
|
|
+ PageInfo<CooperationRefundDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
|
+
|
|
|
|
+ List<CooperationRefundDto> dataList = null;
|
|
|
|
+ int count = musicGroupCalenderRefundPeriodDao.countCoopRefund(params);
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ pageInfo.setTotal(count);
|
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
|
+ dataList = musicGroupCalenderRefundPeriodDao.queryCoopRefund(params);
|
|
|
|
+ List<Integer> organIds = dataList.stream().map(e -> e.getOrganId()).distinct().collect(Collectors.toList());
|
|
|
|
+ List<Integer> eduUserIds = dataList.stream().map(e -> e.getEducationUserId()).distinct().collect(Collectors.toList());
|
|
|
|
+ Map<Integer, String> maps = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(eduUserIds));
|
|
|
|
+ Map<Integer, String> userOrganNameMap = this.getMap("organization","id_","name_",organIds,queryInfo.getTenantId(),Integer.class,String.class);
|
|
|
|
+ dataList.forEach(e->{
|
|
|
|
+ e.setEducationUserName(maps.get(e.getEducationUserId()));
|
|
|
|
+ e.setOrganName(userOrganNameMap.get(e.getOrganId()));
|
|
|
|
+ e.setIncome(e.getReceivable().subtract(e.getPrepaidFee()));
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ if (count == 0) {
|
|
|
|
+ dataList = new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
|
+ return pageInfo;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public BigDecimal sumCoopRefund(CooperationRefundQueryInfo queryInfo) {
|
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
|
+ return musicGroupCalenderRefundPeriodDao.sumCoopRefund(params);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public PageInfo<CooperationCalenderRefundDto> queryCoopCalender(CooperationRefundQueryInfo queryInfo) {
|
|
|
|
+ PageInfo<CooperationCalenderRefundDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
|
+
|
|
|
|
+ List<CooperationCalenderRefundDto> dataList = null;
|
|
|
|
+ int count = musicGroupCalenderRefundPeriodDao.countCoopCalender(params);
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ pageInfo.setTotal(count);
|
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
|
+ dataList = musicGroupCalenderRefundPeriodDao.queryCoopCalender(params);
|
|
|
|
+ dataList.forEach(e->{
|
|
|
|
+ e.setIncome(e.getReceivable().subtract(e.getPrepaidFee()));
|
|
|
|
+ int compareTo = e.getPrepaidFee().compareTo(BigDecimal.ZERO);
|
|
|
|
+ e.setRefundStatus(compareTo > 0 ? "ING":"END");
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ if (count == 0) {
|
|
|
|
+ dataList = new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
|
+ return pageInfo;
|
|
|
|
+ }
|
|
}
|
|
}
|