浏览代码

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

yonge 2 年之前
父节点
当前提交
da32ceab13

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

@@ -52,11 +52,7 @@ public class MusicGroupCalenderRefundPeriod {
 	}
 
 	public void setOrderNos(String orderNos) {
-		if(StringUtils.isEmpty(orderNos)){
-			this.orderNos = orderNos;
-		}else {
-			this.orderNos = this.orderNos + "," + orderNos;
-		}
+		this.orderNos = orderNos;
 	}
 
 	public BigDecimal getIncome() {

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java

@@ -24,6 +24,8 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
     ATTENDANCE_ERR_STUDENT_NUM("COURSE_TRUANT_STUDENT_NUM", "学员考勤异常"),
     COURSE_TRUANT_STUDENT_NUM("COURSE_TRUANT_STUDENT_NUM", "学员旷课"),
     COURSE_LEAVE_STUDENT_NUM("COURSE_LEAVE_STUDENT_NUM", "学员请假"),
+    COOPERATION_PAYMENT_ERROR("COOPERATION_PAYMENT_ERROR", "合作单位回款异常"),
+    COOPERATION_PAYMENT_ALERT("COOPERATION_PAYMENT_ALERT", "合作单位回款提醒"),
 
     TEACHER_INFO("TEACHER_INFO", "日常行政"),
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CooperationRefundQueryInfo.java

@@ -20,6 +20,17 @@ public class CooperationRefundQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "缴费结束时间",required = false)
     private String refundEndDate;
 
+    @ApiModelProperty(value = "异常类型,COOPERATION_PAYMENT_ERROR 回款异常,COOPERATION_PAYMENT_ALERT 回款提醒",required = false)
+    private String errorType;
+
+    public String getErrorType() {
+        return errorType;
+    }
+
+    public void setErrorType(String errorType) {
+        this.errorType = errorType;
+    }
+
     public Integer getCooperationId() {
         return cooperationId;
     }

+ 15 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -63,6 +63,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 	private StudentDao studentDao;
 	@Autowired
 	private SysEmployeePositionService employeePositionService;
+	@Autowired
+	private MusicGroupCalenderRefundPeriodDao musicGroupCalenderRefundPeriodDao;
 
 	private static ThreadLocal<Set<Integer>> organIds = new ThreadLocal<Set<Integer>>(){
 		@Override
@@ -732,16 +734,12 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			params.put("tenantId", tenantId);
 			twoChild.add(new IndexErrInfoDto(IndexErrorType.HAS_FREE_COURSE_TIMES, IndexErrorType.HAS_FREE_COURSE_TIMES.getMsg(), musicGroupDao.countHasFreeCourseTimes(params), null));
 
-			//乐团学员会员到期首页提醒
-//			List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(null,educationUserId,organIdsStr);
-//			IndexErrInfoDto noClassMusicGroupStudentInfo = new IndexErrInfoDto();
-//			Set<String> musicGroupIds = studentRegistrations.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
-//			Set<Integer> userIds = studentRegistrations.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
-//			noClassMusicGroupStudentInfo.setErrorType(IndexErrorType.NO_MEMBER_STUDENT_INFO);
-//			noClassMusicGroupStudentInfo.setNum(musicGroupIds.size());
-//			noClassMusicGroupStudentInfo.setNum2(userIds.size());
-//			noClassMusicGroupStudentInfo.setDesc(IndexErrorType.NO_MEMBER_STUDENT_INFO.getMsg());
-//			twoChild.add(noClassMusicGroupStudentInfo);
+			//合作单位回款异常
+			Map<String, Object> params1 = new HashMap<>();
+			params1.put("organId", organIdsStr);
+			params1.put("errorType", "COOPERATION_PAYMENT_ERROR");
+			twoChild.add(new IndexErrInfoDto(IndexErrorType.COOPERATION_PAYMENT_ERROR, IndexErrorType.COOPERATION_PAYMENT_ERROR.getMsg(), musicGroupCalenderRefundPeriodDao.countCoopRefund(params1), null));
+
 			two.setNum(twoChild.stream().mapToInt(IndexErrInfoDto::getNum).sum());
 			two.setResult(twoChild);
 			all.add(two);
@@ -1126,6 +1124,13 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		//乐团剩余时长未排课
 		List<String> musicGroupIds = musicGroupDao.queryHasSubCourseTimes(organIds,tenantId);
 		result.add(new IndexErrInfoDto(IndexErrorType.MUSIC_GROUP_HAS_COURSE_TIMES, IndexErrorType.MUSIC_GROUP_HAS_COURSE_TIMES.getMsg(),musicGroupIds.size(), null));
+
+		//合作单位回款提醒
+		Map<String, Object> params = new HashMap<>();
+		params.put("organId", organIds);
+		params.put("errorType", "COOPERATION_PAYMENT_ALERT");
+		result.add(new IndexErrInfoDto(IndexErrorType.COOPERATION_PAYMENT_ALERT, IndexErrorType.COOPERATION_PAYMENT_ALERT.getMsg(), musicGroupCalenderRefundPeriodDao.countCoopRefund(params), null));
+
 		return result;
 	}
 

+ 11 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupCalenderRefundPeriodServiceImpl.java

@@ -16,6 +16,7 @@ import com.ym.mec.common.page.PageInfo;
 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.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -147,7 +148,11 @@ 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);
+                if(StringUtils.isEmpty(refundPeriod.getOrderNos())){
+                    refundPeriod.setOrderNos(orderNo);
+                }else {
+                    refundPeriod.setOrderNos(refundPeriod.getOrderNos() + "," + orderNo);
+                }
                 refundPeriod.setUpdateTime(date);
                 break;
             }
@@ -169,7 +174,11 @@ public class MusicGroupCalenderRefundPeriodServiceImpl extends BaseServiceImpl<I
                 refundPeriod.setSubRefundAmount(refundPeriod.getSubRefundAmount().subtract(subAmount));
                 subAmount = BigDecimal.ZERO;
             }
-            refundPeriod.setOrderNos(orderNo);
+            if(StringUtils.isEmpty(refundPeriod.getOrderNos())){
+                refundPeriod.setOrderNos(orderNo);
+            }else {
+                refundPeriod.setOrderNos(refundPeriod.getOrderNos() + "," + orderNo);
+            }
             refundPeriod.setUpdateTime(date);
         }
         musicGroupCalenderRefundPeriodDao.batchUpdate(refundPeriods);

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -580,6 +580,10 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
                 musicGroupPaymentStudentCourseDetail.setCourseCurrentPrice(courseSetting.getCourseCurrentPrice());
                 musicGroupPaymentStudentCourseDetail.setSubCourseOriginalPrice(courseSetting.getCourseOriginalPrice());
                 musicGroupPaymentStudentCourseDetail.setSubCourseCurrentPrice(courseSetting.getCourseCurrentPrice());
+                if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
+                    musicGroupPaymentStudentCourseDetail.setCourseCurrentPrice(BigDecimal.ZERO);
+                    musicGroupPaymentStudentCourseDetail.setSubCourseCurrentPrice(BigDecimal.ZERO);
+                }
                 musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
                 musicGroupPaymentStudentCourseDetail.setCreateTime(nowDate);
                 musicGroupPaymentStudentCourseDetail.setUpdateTime(nowDate);

+ 27 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -528,7 +528,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if(musicGroup == null){
         	throw new BizException("乐团[{}]信息查询失败", studentRegistration.getMusicGroupId());
         }
-        
+        MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(studentPaymentOrder.getCalenderId());
+
         boolean isGiveAccessories = musicGroup.getIsGiveAccessories() == null ? false : musicGroup.getIsGiveAccessories();
         
         Date date = new Date();
@@ -654,13 +655,21 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
 
         //活动 todo  VIP 或 网管课
+        List<MusicGroupPaymentCalenderActivity> calenderActivities = null;
         List<Long> buyCalenderActivityId = registerPayDto.getBuyCalenderActivityId();
         if (CollectionUtils.isNotEmpty(buyCalenderActivityId)) {
-            List<MusicGroupPaymentCalenderActivity> calenderActivities = musicGroupPaymentCalenderActivityService.findByIds(buyCalenderActivityId);
+            calenderActivities = musicGroupPaymentCalenderActivityService.findByIds(buyCalenderActivityId);
+        }else if(Objects.nonNull(calender) && calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL){
+            calenderActivities = musicGroupPaymentCalenderActivityService.findByCalenderId(calender.getId());
+        }
+        if(CollectionUtils.isNotEmpty(calenderActivities)){
             for (MusicGroupPaymentCalenderActivity calenderActivity : calenderActivities) {
                 StudentPaymentOrderDetail maintenanceOrderDetail = new StudentPaymentOrderDetail();
                 maintenanceOrderDetail.setType("网管课".equals(calenderActivity.getCategoryName()) ? PRACTICE : VIP);
                 maintenanceOrderDetail.setPrice(calenderActivity.getActualAmount());
+                if(calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL){
+                    maintenanceOrderDetail.setPrice(BigDecimal.ZERO);
+                }
                 maintenanceOrderDetail.setRemitFee(BigDecimal.ZERO);
                 maintenanceOrderDetail.setCreateTime(date);
                 maintenanceOrderDetail.setUpdateTime(date);
@@ -672,18 +681,24 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             }
         }
 
+
         //云教练/云教练+  todo  团练宝
-        if (registerPayDto.getBuyCloudTeacher()) {
+        if (registerPayDto.getBuyCloudTeacher() || (Objects.nonNull(calender) && calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL)) {
             MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(studentPaymentOrder.getCalenderId());
-            StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
-            cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
-            cloudTeacherOrderDetail.setPrice(calenderMember.getActualAmount());
-            cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
-            cloudTeacherOrderDetail.setCreateTime(date);
-            cloudTeacherOrderDetail.setUpdateTime(date);
-            cloudTeacherOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
-            cloudTeacherOrderDetail.setIsRenew(0);
-            studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
+            if(Objects.nonNull(calenderMember)){
+                StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
+                cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
+                cloudTeacherOrderDetail.setPrice(calenderMember.getActualAmount());
+                if(calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL){
+                    cloudTeacherOrderDetail.setPrice(BigDecimal.ZERO);
+                }
+                cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
+                cloudTeacherOrderDetail.setCreateTime(date);
+                cloudTeacherOrderDetail.setUpdateTime(date);
+                cloudTeacherOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+                cloudTeacherOrderDetail.setIsRenew(0);
+                studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
+            }
         }
 
         //开始计算商品的优惠券

+ 9 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupCalenderRefundPeriodMapper.xml

@@ -105,8 +105,16 @@
 	</resultMap>
 	<sql id="queryCoopRefundSql">
 		<where>
+			<if test="errorType != null and errorType != ''">
+				<if test="errorType == 'COOPERATION_PAYMENT_ERROR'">
+					AND TIMESTAMPDIFF(DAY,crp.refund_date_,DATE_FORMAT(NOW(),'%Y-%m-%d')) >= 1
+				</if>
+				<if test="errorType == 'COOPERATION_PAYMENT_ALERT'">
+					AND TIMESTAMPDIFF(DAY,crp.refund_date_,DATE_FORMAT(NOW(),'%Y-%m-%d')) BETWEEN -2 AND 0
+				</if>
+			</if>
 			<if test="organId != null and organId != ''">
-				AND FIND_IN_SET(co.organ_id_,#{organId})
+				AND FIND_IN_SET(crp.organ_id_,#{organId})
 			</if>
 			<if test="search != null and search != ''">
 				AND (co.name_ LIKE CONCAT('%',#{search},'%') OR co.id_ = #{search})