Ver Fonte

Merge branch '20221010' of http://git.dayaedu.com/yonge/mec into 20221010

yonge há 2 anos atrás
pai
commit
93ce312d70

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupCalenderRefundPeriod.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
@@ -51,7 +52,11 @@ public class MusicGroupCalenderRefundPeriod {
 	}
 
 	public void setOrderNos(String orderNos) {
-		this.orderNos = orderNos;
+		if(StringUtils.isEmpty(orderNos)){
+			this.orderNos = orderNos;
+		}else {
+			this.orderNos = this.orderNos + "," + orderNos;
+		}
 	}
 
 	public BigDecimal getIncome() {

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupCalenderRefundPeriodService.java

@@ -34,5 +34,5 @@ public interface MusicGroupCalenderRefundPeriodService extends BaseService<Integ
     * @author zx
     * @date 2022/10/19 11:20
     */
-    Boolean calcRefundAmount(Long calenderId, BigDecimal amount);
+    Boolean calcRefundAmount(Long calenderId,String orderNo, BigDecimal amount);
 }

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupCalenderRefundPeriodServiceImpl.java

@@ -138,7 +138,7 @@ public class MusicGroupCalenderRefundPeriodServiceImpl extends BaseServiceImpl<I
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean calcRefundAmount(Long calenderId, BigDecimal amount) {
+    public Boolean calcRefundAmount(Long calenderId,String orderNo, BigDecimal amount) {
         //获取回款周期
         List<MusicGroupCalenderRefundPeriod> refundPeriods = musicGroupCalenderRefundPeriodDao.findByCalenderId(calenderId);
         Date date = new Date();
@@ -147,6 +147,7 @@ public class MusicGroupCalenderRefundPeriodServiceImpl extends BaseServiceImpl<I
             MusicGroupCalenderRefundPeriod refundPeriod = refundPeriods.get(i);
             if(i == refundPeriods.size() - 1 && refundPeriod.getRefundFlag()){
                 refundPeriod.setIncome(refundPeriod.getIncome().add(subAmount));
+                refundPeriod.setOrderNos(orderNo);
                 refundPeriod.setUpdateTime(date);
                 break;
             }
@@ -168,6 +169,7 @@ public class MusicGroupCalenderRefundPeriodServiceImpl extends BaseServiceImpl<I
                 refundPeriod.setSubRefundAmount(refundPeriod.getSubRefundAmount().subtract(subAmount));
                 subAmount = BigDecimal.ZERO;
             }
+            refundPeriod.setOrderNos(orderNo);
             refundPeriod.setUpdateTime(date);
         }
         musicGroupCalenderRefundPeriodDao.batchUpdate(refundPeriods);

+ 13 - 27
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -28,6 +28,7 @@ import java.math.BigDecimal;
 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.STUDENT;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
 import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
@@ -183,13 +184,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
         }
         MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderList.get(0);
         String musicGroupId = musicGroupPaymentCalender.getMusicGroupId();
-        // 所有缴费项目已完成排课才能创建下一个缴费项目
-//        List<String> batchNoList = new ArrayList<>();
-//        batchNoList.add(batchNo);
-		/*String orignBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null,batchNoList);
-		if (StringUtils.isNoneBlank(orignBatchNo)) {
-			throw new BizException("当前乐团存在未排课的缴费项目,请先完成排课再操作");
-		}*/
         //获取欠费学员列表
         List<Integer> noPaymentUserIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(musicGroupId, new ArrayList<>(userIdList), null);
         if (noPaymentUserIds.size() > 0) {
@@ -221,28 +215,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 
         List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
 
-/*        if (courseSettingsList != null && courseSettingsList.size() > 0) {
-            List<StudentSubTotalCourseTimesDto> studentCourseTypeDtos = musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTimes(musicGroupId);
-
-            Set<String> courseTypes = new HashSet<String>();
-            for (StudentSubTotalCourseTimesDto dto : studentCourseTypeDtos) {
-                if (userIdList.contains(dto.getUserId())) {
-                    courseTypes.addAll(dto.getMapDtos().stream().filter(t -> t.getValue() > 0).map(t -> t.getKey()).collect(Collectors.toSet()));
-                }
-            }
-
-            for (MusicGroupPaymentCalenderCourseSettings mgpccs : courseSettingsList) {
-                if (courseTypes.contains(mgpccs.getCourseType().name())) {
-                    throw new BizException("操作失败:存在未排完的[{}]", mgpccs.getCourseType().getMsg());
-                }
-            }
-        }*/
-
         Date date = new Date();
         MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = null;
         Map<Integer, Long> userMap = new HashMap<>();
         Map<Integer, Integer> activityuserMap = new HashMap<>();
-        List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<MusicGroupPaymentCalenderDetail>();
+        List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<>();
         //创建缴费明细
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 
@@ -270,7 +247,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
             musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
             musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
             musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
-            if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0) {
+            if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0 || musicGroupPaymentCalender.getPayUserType() == SCHOOL) {
                 // 添加会员
                 if (calenderMember != null) {
                     CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
@@ -281,7 +258,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
                     cloudTeacherOrder.setLevel(calenderMember.getMemberRankSettingId());
                     cloudTeacherOrder.setTime(calenderMember.getNum().intValue());
                     cloudTeacherOrder.setStatus(1);
-                    cloudTeacherOrder.setRemark("缴费项目0元新增学员");
+                    if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
+                        cloudTeacherOrder.setRemark("学校缴费新增学员");
+                    }else {
+                        cloudTeacherOrder.setRemark("缴费项目0元新增学员");
+                    }
                     cloudTeacherOrder.setMusicGroupId(musicGroupId);
                     cloudTeacherOrderService.save(cloudTeacherOrder,calenderMember.getAutoActivationFlag());
                 }
@@ -297,6 +278,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
                         activityUserMapper.setUserId(studentId);
                         activityUserMapper.setTeacherId(student.getTeacherId());
                         activityUserMapper.setOrganId(musicGroup.getOrganId());
+                        if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
+                            activityUserMapper.setAddMemo("学校缴费新增学员");
+                        }else {
+                            activityUserMapper.setAddMemo("缴费项目0元新增学员");
+                        }
                         VipGroupActivity activity = collect.get(activityUserMapper.getActivityId());
                         activityUserMapperService.copyProperty(activityUserMapper,activity,false,true);
                         if ("网管课".equals(calenderActivity.getCategoryName())) {

+ 30 - 41
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -238,16 +238,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             throw new BizException("请登录");
         });
 
-//        if (musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT) {
-//            throw new BizException("只有‘草稿’状态才能创建报名缴费");
-//        }
-        // 所有缴费项目已完成排课才能创建下一个缴费项目
-        /*String orignBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null, null);
-        if (!musicGroupPaymentBaseCalender.getConfirmCreate() && StringUtils.isNoneBlank(orignBatchNo)) {
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            return BaseController.failed(HttpStatus.MULTI_STATUS, "当前乐团存在未排课的缴费项目,请再次确认操作");
-        }*/
-
         // 不是进行中,只能创建一次缴费
         if (musicGroup.getStatus() != MusicGroupStatusEnum.PROGRESS) {
             List<MusicGroupPaymentCalender> list = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
@@ -290,30 +280,29 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         BigDecimal originalTotalAmount = courseOriginalAmount.add(memberOriginalAmount)
                 .add(activityOriginalAmount)
                 .add(repairOriginalAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
-        BigDecimal actualTotalAmount;
+
+        //计算缴费项目总金额(前端录入)
+        BigDecimal courseActualAmount = musicGroupPaymentCalenderCourseSettingsService.getActualAmount(musicGroupPaymentBaseCalender);
+        BigDecimal memberActualAmount = musicGroupPaymentCalenderMemberService.getActualAmount(musicGroupPaymentBaseCalender);
+        BigDecimal repairActualAmount = musicGroupPaymentCalenderRepairService.getActualAmount(musicGroupPaymentBaseCalender);
+        BigDecimal activityActualAmount = musicGroupPaymentCalenderActivityService.getActualAmount(musicGroupPaymentBaseCalender);
+
+        BigDecimal actualTotalAmount = courseActualAmount.add(memberActualAmount)
+                .add(repairActualAmount)
+                .add(activityActualAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
+        //标记是否云教练缴费
+        if(musicGroupPaymentCalender.getPayUserType() == STUDENT && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
+            if(musicGroupPaymentCalender.getPaymentType() == ADD_STUDENT){
+                musicGroupPaymentCalender.setCloudTeacherPaymentFlag(true);
+            }else if(memberActualAmount.compareTo(BigDecimal.ZERO) > 0 &&
+                    ((courseActualAmount.compareTo(BigDecimal.ZERO) == 0 && CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList()))
+                            || (activityActualAmount.compareTo(BigDecimal.ZERO) == 0 && CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getCalenderActivityList())))) {
+                musicGroupPaymentCalender.setCloudTeacherPaymentFlag(true);
+            }
+        }
 
         if(musicGroupPaymentBaseCalender.getPayUserType() == SCHOOL){
             actualTotalAmount = musicGroupPaymentBaseCalender.getCurrentTotalAmount();
-        }else {
-            //计算缴费项目总金额(前端录入)
-            BigDecimal courseActualAmount = musicGroupPaymentCalenderCourseSettingsService.getActualAmount(musicGroupPaymentBaseCalender);
-            BigDecimal memberActualAmount = musicGroupPaymentCalenderMemberService.getActualAmount(musicGroupPaymentBaseCalender);
-            BigDecimal repairActualAmount = musicGroupPaymentCalenderRepairService.getActualAmount(musicGroupPaymentBaseCalender);
-            BigDecimal activityActualAmount = musicGroupPaymentCalenderActivityService.getActualAmount(musicGroupPaymentBaseCalender);
-
-            actualTotalAmount = courseActualAmount.add(memberActualAmount)
-                    .add(repairActualAmount)
-                    .add(activityActualAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
-            //标记是否云教练缴费
-            if(musicGroupPaymentCalender.getPayUserType() == STUDENT && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
-                if(musicGroupPaymentCalender.getPaymentType() == ADD_STUDENT){
-                    musicGroupPaymentCalender.setCloudTeacherPaymentFlag(true);
-                }else if(memberActualAmount.compareTo(BigDecimal.ZERO) > 0 &&
-                        ((courseActualAmount.compareTo(BigDecimal.ZERO) == 0 && CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList()))
-                                || (activityActualAmount.compareTo(BigDecimal.ZERO) == 0 && CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getCalenderActivityList())))) {
-                    musicGroupPaymentCalender.setCloudTeacherPaymentFlag(true);
-                }
-            }
         }
 
         PaymentCalenderStatusEnum status;
@@ -990,16 +979,16 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 musicGroupPaymentCalender.setUpdateTime(date);
                 musicGroupPaymentCalender.setAuditMemo(auditMemo);
             }
-            MusicGroupPaymentCalender calender = musicGroupPaymentCalenders.get(0);
+//            MusicGroupPaymentCalender calender = musicGroupPaymentCalenders.get(0);
             //如果是报名,并且所有的报名都审核通过,需要修改乐团状态
-            if (calender.getPaymentType() == MUSIC_APPLY) {
-                MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
-                musicGroup.setStatus(MusicGroupStatusEnum.PRE_BUILD_FEE);
-                musicGroup.setUpdateTime(date);
-                musicGroupDao.update(musicGroup);
+//            if (calender.getPaymentType() == MUSIC_APPLY) {
+//                MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
+//                musicGroup.setStatus(MusicGroupStatusEnum.PRE_BUILD_FEE);
+//                musicGroup.setUpdateTime(date);
+//                musicGroupDao.update(musicGroup);
                 //记录操作日志
-                musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroup.getId(), "报名缴费项目失败(费用审核中 -> 审核拒绝)", sysUser.getId(), ""));
-            }
+//                musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroup.getId(), "报名缴费项目失败(费用审核中 -> 审核拒绝)", sysUser.getId(), ""));
+//            }
             musicGroupPaymentCalenderDao.batchUpdate(musicGroupPaymentCalenders);
         }
     }
@@ -1046,11 +1035,11 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             if (e.getPaymentType() == MUSIC_APPLY) {
                 //如果是报名,并且所有的报名都审核通过,需要修改乐团状态
                 MusicGroup musicGroup = musicGroupDao.get(e.getMusicGroupId());
-                musicGroup.setStatus(MusicGroupStatusEnum.PRE_BUILD_FEE);
+                musicGroup.setStatus(MusicGroupStatusEnum.DRAFT);
                 musicGroup.setUpdateTime(date);
                 musicGroupDao.update(musicGroup);
                 //记录操作日志
-                musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroup.getId(), "报名缴费项目撤回(费用审核中 -> 撤回)", sysUser.getId(), ""));
+                musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroup.getId(), "报名缴费项目撤回(费用审核中 -> 草稿)", sysUser.getId(), ""));
             }
             e.setStatus(DRAFT);
         });

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentRouteOrderServiceImpl.java

@@ -306,7 +306,7 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
             //根据学校缴费项id,确定缴费状态
             BigDecimal amount = studentPaymentRouteOrderDao.sumAmountByCalenderId(studentPaymentRouteOrder.getCalenderId());
             //修改学员缴费回款周期
-            Boolean aBoolean = musicGroupCalenderRefundPeriodService.calcRefundAmount(studentPaymentRouteOrder.getCalenderId(), amount);
+            Boolean aBoolean = musicGroupCalenderRefundPeriodService.calcRefundAmount(studentPaymentRouteOrder.getCalenderId(),studentPaymentRouteOrder.getOrderNo(), amount);
 
             //是否已完成回款
             if(aBoolean){

+ 14 - 12
mec-biz/src/main/resources/config/mybatis/MusicGroupCalenderRefundPeriodMapper.xml

@@ -142,18 +142,20 @@
 		<result property="contractUrl" column="contract_url_"/>
 	</resultMap>
 	<sql id="queryCoopCalenderSql">
-		<if test="cooperationId != null">
-			AND crp.cooperation_organ_id_ = #{cooperationId}
-		</if>
-		<if test="calenderId != null">
-			AND crp.calender_id_ = #{calenderId}
-		</if>
-		<if test="refundStartDate != null and refundStartDate != ''">
-			AND crp.refund_date_ BETWEEN #{refundStartDate} AND #{refundEndDate}
-		</if>
-		<if test="search != '' and search != ''">
-			AND (mg.name_ LIKE CONCAT('%',#{search},'%') OR mg.id_ = #{search})
-		</if>
+		<where>
+			<if test="cooperationId != null">
+				AND crp.cooperation_organ_id_ = #{cooperationId}
+			</if>
+			<if test="calenderId != null">
+				AND crp.calender_id_ = #{calenderId}
+			</if>
+			<if test="refundStartDate != null and refundStartDate != ''">
+				AND crp.refund_date_ BETWEEN #{refundStartDate} AND #{refundEndDate}
+			</if>
+			<if test="search != null and search != ''">
+				AND (mg.name_ LIKE CONCAT('%',#{search},'%') OR mg.id_ = #{search})
+			</if>
+		</where>
 	</sql>
 	<sql id="queryCoopCalenderHavingSql">
 		<if test="refundStatus != null and refundStatus != ''">