Browse Source

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

yonge 5 years ago
parent
commit
a1fe6f1cda
24 changed files with 244 additions and 67 deletions
  1. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/BasicUserDto.java
  2. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrderDetail.java
  3. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupStudentQueryInfo.java
  5. 6 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  6. 8 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  7. 2 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  8. 25 30
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java
  9. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  10. 66 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  11. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java
  12. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  13. 6 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  14. 2 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  15. 4 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  16. 20 3
      mec-biz/src/main/resources/config/mybatis/GroupMapper.xml
  17. 1 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  18. 18 4
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml
  19. 9 0
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  20. 11 4
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml
  21. 3 2
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  22. 2 2
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  23. 1 1
      mec-client-api/src/main/java/com/ym/mec/im/ImFeignService.java
  24. 8 2
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/BasicUserDto.java

@@ -16,6 +16,16 @@ public class BasicUserDto {
 
     private String musicGroupName;
 
+    private String userType;
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
     public String getMusicGroupId() {
         return musicGroupId;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrderDetail.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 
 import io.swagger.annotations.ApiModelProperty;
@@ -38,6 +39,9 @@ public class StudentPaymentOrderDetail {
 	@ApiModelProperty(value = "订单编号",required = true)
 	private Long paymentOrderId;
 
+	//购买方式
+	private KitGroupPurchaseTypeEnum kitGroupPurchaseType;
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -99,4 +103,11 @@ public class StudentPaymentOrderDetail {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+	public KitGroupPurchaseTypeEnum getKitGroupPurchaseType() {
+		return kitGroupPurchaseType;
+	}
+
+	public void setKitGroupPurchaseType(KitGroupPurchaseTypeEnum kitGroupPurchaseType) {
+		this.kitGroupPurchaseType = kitGroupPurchaseType;
+	}
 }

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

@@ -54,6 +54,17 @@ public class EndCourseScheduleQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "班级类型")
     private ClassGroupTypeEnum classGroupType;
 
+    @ApiModelProperty(value = "教学点编号")
+    private Integer schoolId;
+
+    public Integer getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Integer schoolId) {
+        this.schoolId = schoolId;
+    }
+
     public String getStudentName() {
         return studentName;
     }

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

@@ -14,6 +14,9 @@ public class MusicGroupStudentQueryInfo extends QueryInfo {
   @ApiModelProperty(value = "乐团编号")
   private String musicGroupId;
 
+  @ApiModelProperty(value = "班级编号")
+  private Integer classGroupId;
+
   @ApiModelProperty(value = "是否激活")
   private Boolean isActive;
 
@@ -26,6 +29,14 @@ public class MusicGroupStudentQueryInfo extends QueryInfo {
   @ApiModelProperty(value = "缴费状态  PAID_COMPLETED(完成缴费), NON_PAYMENT(未缴费), PROCESSING(缴费中)",required = false)
   private String paymentStatus;
 
+  public Integer getClassGroupId() {
+    return classGroupId;
+  }
+
+  public void setClassGroupId(Integer classGroupId) {
+    this.classGroupId = classGroupId;
+  }
+
   public Integer getIsLock() {
     return isLock;
   }

+ 6 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1228,7 +1228,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
                     Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
                     SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
-                    if(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime()){
+                    if(Objects.nonNull(teacher.getEntryDate())
+                            &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
                         settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
                     }
 
@@ -1466,7 +1467,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
                     Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
                     SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
-                    if(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime()){
+                    if(Objects.nonNull(teacher.getEntryDate())
+                            &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
                         settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
                     }
 
@@ -1726,7 +1728,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
                     Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
                     SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
-                    if(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime()){
+                    if(Objects.nonNull(teacher.getEntryDate())
+                            &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
                         settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
                     }
 

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -212,7 +212,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
                 Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
                 SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
-                if(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime()){
+                if(Objects.nonNull(teacher.getEntryDate())
+                        &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
                     settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
                 }
 
@@ -303,7 +304,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
                 Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
                 SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
-                if(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime()){
+                if(Objects.nonNull(teacher.getEntryDate())
+                        &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
                     settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
                 }
 
@@ -425,7 +427,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
             if (!courseSchedule.isBishopTeacherSalaryNotCreate()) {
                 Teacher teacher = teacherMap.get(courseSchedule.getActualTeacherId());
-                if(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime()){
+                if(Objects.nonNull(teacher.getEntryDate())
+                        &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
                     settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
                 }
 
@@ -451,7 +454,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                     return;
                 }
                 Teacher teacher = teacherMap.get(teacherId);
-                if(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime()){
+                if(Objects.nonNull(teacher.getEntryDate())
+                        &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
                     settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
                 }
                 TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryWithTeacherId = teacherDefaultMusicGroupSalariesGroupByTeacherId.get(teacherId);

+ 2 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -360,6 +360,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
+        params.put("musicGroupStatus", MusicGroupStatusEnum.PROGRESS);
+        params.put("vipGroupStatus", VipGroupStatusEnum.PROGRESS);
         List<Group> groups = groupDao.searchGroups(params);
         if(!CollectionUtils.isEmpty(groups)){
             params.put("groups", groups);
@@ -1809,11 +1811,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         courseScheduleComplaintsDao.update(courseScheduleComplaints);
     }
 
-    public static void main(String[] args) {
-        Date updateTime = DateUtil.stringToDate("19700101 000000",DateUtil.DATE_TIME_FORMAT);
-        System.out.println(updateTime);
-    }
-
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean updateCourseScheduleToOverStatus() {

+ 25 - 30
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -224,48 +224,43 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 	@Transactional(rollbackFor = Exception.class)
 	public void updateVipGiveCourse(Long vipGroupId) {
 		List<VipGroupGiveCourseSortDto> vipGroupSortCourseByGroup = courseScheduleStudentPaymentDao.findVipGroupSortCourseByGroup(vipGroupId.toString());
-		Map<BigDecimal, Long> expectPriceCountMap = vipGroupSortCourseByGroup.stream()
-				.collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getExpectPrice, Collectors.counting()));
-		BigDecimal zero = new BigDecimal("0.00");
-		Long zeroPriceNum = expectPriceCountMap.get(zero);
-		if(Objects.isNull(zeroPriceNum)||zeroPriceNum<=0){
-			return;
-		}
+		Map<Integer, List<VipGroupGiveCourseSortDto>> userCourseMap = vipGroupSortCourseByGroup.stream().collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getUserId));
 
 		List<CourseScheduleStudentPayment> needUpdatePayments=new ArrayList<>();
-
-		List<VipGroupGiveCourseSortDto> zeroExpectPricePayments = vipGroupSortCourseByGroup.stream()
-				.filter(vipGroupGiveCourseSortDto -> vipGroupGiveCourseSortDto.getExpectPrice().compareTo(zero)==0)
-				.collect(Collectors.toList());
-		Map<Long, List<VipGroupGiveCourseSortDto>> courseIdPaymentMap = zeroExpectPricePayments.stream()
-				.collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getId));
-		vipGroupSortCourseByGroup.sort(Comparator.comparing(VipGroupGiveCourseSortDto::getCourseStartTime).reversed());
-		for (int i=0;i<vipGroupSortCourseByGroup.size();i++) {
-			if(i>zeroExpectPricePayments.size()-1){
+		for (Map.Entry<Integer, List<VipGroupGiveCourseSortDto>> integerListEntry : userCourseMap.entrySet()) {
+			List<VipGroupGiveCourseSortDto> courses = integerListEntry.getValue();
+			Map<BigDecimal, Long> expectPriceCountMap = courses.stream()
+					.collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getExpectPrice, Collectors.counting()));
+			BigDecimal zero = new BigDecimal("0.00");
+			Long zeroPriceNum = expectPriceCountMap.get(zero);
+			if(Objects.isNull(zeroPriceNum)||zeroPriceNum<=0){
 				return;
 			}
 
-			VipGroupGiveCourseSortDto vipGroupGiveCourseSortDto=vipGroupSortCourseByGroup.get(i);
+			List<VipGroupGiveCourseSortDto> zeroExpectPricePayments = courses.stream()
+					.filter(vipGroupGiveCourseSortDto -> vipGroupGiveCourseSortDto.getExpectPrice().compareTo(zero)==0)
+					.collect(Collectors.toList());
 
-			int j=0;
-			for (Map.Entry<Long, List<VipGroupGiveCourseSortDto>> longListEntry : courseIdPaymentMap.entrySet()) {
-				if(j>i){
+			courses.sort(Comparator.comparing(VipGroupGiveCourseSortDto::getCourseStartTime).reversed());
+			for (int i=0;i<courses.size();i++) {
+				if(i>zeroExpectPricePayments.size()-1){
 					break;
 				}
-				j++;
 
-				for (VipGroupGiveCourseSortDto groupGiveCourseSortDto : longListEntry.getValue()) {
-					if(!vipGroupGiveCourseSortDto.getId().equals(groupGiveCourseSortDto.getId())
-							&&!vipGroupGiveCourseSortDto.getTeachMode().equals(groupGiveCourseSortDto.getTeachMode())){
-						throw new BizException("不支持将不同教学形式的课程调整的赠送课时后");
-					}
-					if(!vipGroupGiveCourseSortDto.getId().equals(groupGiveCourseSortDto.getId())){
-						needUpdatePayments.add(new CourseScheduleStudentPayment(vipGroupGiveCourseSortDto.getId(),groupGiveCourseSortDto.getCourseScheduleId()));
-						needUpdatePayments.add(new CourseScheduleStudentPayment(groupGiveCourseSortDto.getId(),vipGroupGiveCourseSortDto.getCourseScheduleId()));
-					}
+				VipGroupGiveCourseSortDto vipGroupGiveCourseSortDto=courses.get(i);
+
+				if(!vipGroupGiveCourseSortDto.getId().equals(zeroExpectPricePayments.get(i).getId())
+						&&!vipGroupGiveCourseSortDto.getTeachMode().equals(zeroExpectPricePayments.get(i).getTeachMode())){
+					throw new BizException("不支持将不同教学形式的课程调整的赠送课时后");
+				}
+
+				if(!vipGroupGiveCourseSortDto.getId().equals(zeroExpectPricePayments.get(i).getId())){
+					needUpdatePayments.add(new CourseScheduleStudentPayment(vipGroupGiveCourseSortDto.getId(),zeroExpectPricePayments.get(i).getCourseScheduleId()));
+					needUpdatePayments.add(new CourseScheduleStudentPayment(zeroExpectPricePayments.get(i).getId(),vipGroupGiveCourseSortDto.getCourseScheduleId()));
 				}
 			}
 		}
+
 		if(!CollectionUtils.isEmpty(needUpdatePayments)){
 			courseScheduleStudentPaymentDao.batchUpdate(needUpdatePayments);
 		}

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

@@ -461,7 +461,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
             Teacher teacher=teacherMap.get(courseScheduleTeacherSalary.getUserId());
             //如果当前教师是在指定日期之后入职的,则按照3.0的方式结算
-            if(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime()){
+            if(Objects.nonNull(teacher.getEntryDate())
+                    &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
                 settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
             }
 

+ 66 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -401,6 +401,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupSubjectGoodsGroup.setType(goodsType);
                 musicGroupSubjectGoodsGroup.setGoodsIdList(orderDetail.getGoodsIdList());
                 musicGroupSubjectGoodsGroup.setPrice(orderDetail.getPrice());
+                musicGroupSubjectGoodsGroup.setKitGroupPurchaseType(orderDetail.getKitGroupPurchaseType());
 
                 goodsGroups.add(musicGroupSubjectGoodsGroup);
                 if (musicGroupSubjectGoodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
@@ -446,6 +447,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     if(!groupType.containsKey("GROUP")){
                         throw new BizException("乐器提供方式不存在");
                     }
+                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.GROUP);
                     remitFee = new BigDecimal((String) groupType.get("GROUP"));
                 }
                 if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
@@ -613,6 +615,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         BigDecimal instrumentFee = BigDecimal.ZERO;
         BigDecimal accessoriesFee = BigDecimal.ZERO;
         BigDecimal otherFee = BigDecimal.ZERO;
+        BigDecimal remitFee = BigDecimal.ZERO;
 
 
         //乐器及打包辅件
@@ -666,6 +669,43 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     courseFee.subtract(goodsGroup.getRemissionCourseFee());
                 }
             }
+        } else if (registerPayDto.getGoodsGroups() != null && registerPayDto.getGoodsGroups().size() > 0) {
+            String goodsGroupIds = registerPayDto.getGoodsGroups().keySet().stream().map(Object::toString).collect(Collectors.joining(","));
+            goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(goodsGroupIds);
+            for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
+                Map groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), HashMap.class);
+                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("GROUP")) {
+                    if(!groupType.containsKey("GROUP")){
+                        throw new BizException("乐器提供方式不存在");
+                    }
+                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.GROUP);
+                    remitFee = new BigDecimal((String) groupType.get("GROUP"));
+                }
+                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
+                    if(!groupType.containsKey("LEASE")){
+                        throw new BizException("乐器提供方式不存在");
+                    }
+                    goodsGroup.setPrice(goodsGroup.getDepositFee());
+                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.LEASE);
+                    remitFee = new BigDecimal((String) groupType.get("LEASE"));
+                }
+                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("FREE")) {
+                    if(!groupType.containsKey("FREE")){
+                        throw new BizException("乐器提供方式不存在");
+                    }
+                    goodsGroup.setPrice(new BigDecimal(0));
+                    remitFee = new BigDecimal((String) groupType.get("FREE"));
+                }
+                if(goodsGroup.getType().equals(GoodsType.INSTRUMENT)){
+                    instrumentFee = instrumentFee.add(goodsGroup.getPrice());
+                }else if(goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
+                    accessoriesFee = accessoriesFee.add(goodsGroup.getPrice());
+                }else {
+                    otherFee = otherFee.add(goodsGroup.getPrice());
+                }
+                orderAmount = orderAmount.add(goodsGroup.getPrice());
+            }
+            orderAmount = orderAmount.subtract(remitFee);
         }
 
         //单独辅件
@@ -860,6 +900,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 throw new BizException("课酬未确认");
             }
         }
+        updateTeamTeacher(musicGroup,musicGroup);
         //生成学员费用表
         List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
         if (musicGroupStudentFees != null && musicGroupStudentFees.size() > 0) {
@@ -1766,6 +1807,30 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         return musicGroupPageInfo;
     }
 
+    private void updateTeamTeacher(MusicGroup oldMusicGroup,MusicGroup newMusicGroup){
+        List<ClassGroup> classGroups = classGroupDao.findClassGroupByMusicGroupIdAndType(newMusicGroup.getId(), null);
+        if(classGroups == null || classGroups.size() == 0){
+            return;
+        }
+        Integer teamTeacherId = newMusicGroup.getTeamTeacherId();
+        Integer educationalTeacherId = newMusicGroup.getEducationalTeacherId();
+        Integer directorUserId = newMusicGroup.getDirectorUserId();
+        ImGroupMember[] oldImGroupMembers1 = {new ImGroupMember(oldMusicGroup.getTeamTeacherId().toString())};
+        ImGroupMember[] nowImGroupMembers1 = {new ImGroupMember(teamTeacherId.toString())};
+        ImGroupMember[] oldImGroupMembers2 = {new ImGroupMember(oldMusicGroup.getEducationalTeacherId().toString())};
+        ImGroupMember[] nowImGroupMembers2 = {new ImGroupMember(educationalTeacherId.toString())};
+        ImGroupMember[] oldImGroupMembers3 = {new ImGroupMember(oldMusicGroup.getDirectorUserId().toString())};
+        ImGroupMember[] nowImGroupMembers3 = {new ImGroupMember(directorUserId.toString())};
+        classGroups.forEach(e->{
+            imFeignService.groupQuit(new ImGroupModel(e.getId().toString(), oldImGroupMembers1, e.getName()));
+            imFeignService.groupJoin(new ImGroupModel(e.getId().toString(), nowImGroupMembers1, e.getName()));
+            imFeignService.groupQuit(new ImGroupModel(e.getId().toString(), oldImGroupMembers2, e.getName()));
+            imFeignService.groupJoin(new ImGroupModel(e.getId().toString(), nowImGroupMembers2, e.getName()));
+            imFeignService.groupQuit(new ImGroupModel(e.getId().toString(), oldImGroupMembers3, e.getName()));
+            imFeignService.groupJoin(new ImGroupModel(e.getId().toString(), nowImGroupMembers3, e.getName()));
+        });
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
@@ -1782,6 +1847,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             //如果已生成课表,那么修改未上课时教学点
             courseScheduleDao.updateCourseScheduleSchool("MUSIC", musicGroupId, musicGroup.getSchoolId());
         }
+        updateTeamTeacher(musicGroup,group);
         List<Integer> months = subFeeSettingDto.getMonths();
 
         Date date = new Date();

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -182,6 +182,11 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
                 musicGroupSubjectGoodsGroup.setName("辅件");
                 musicGroupSubjectGoodsGroup.setType(GoodsType.ACCESSORIES);
             }
+            if(orderDetail.getKitGroupPurchaseType() != null){
+                String kitGroupPurchaseTypeJson = "{\""+orderDetail.getKitGroupPurchaseType().getCode()+"\":0}";
+                musicGroupSubjectGoodsGroup.setKitGroupPurchaseTypeJson(kitGroupPurchaseTypeJson);
+            }
+
             musicGroupSubjectGoodsGroup.setId(orderDetail.getId());
             musicGroupSubjectGoodsGroup.setGoodsIdList(orderDetail.getGoodsIdList());
             musicGroupSubjectGoodsGroup.setMusicGroupId(musicGroupId);

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -355,6 +355,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrderDetail4goodsGroup.setCreateTime(date);
                 studentPaymentOrderDetail4goodsGroup.setUpdateTime(date);
                 studentPaymentOrderDetail4goodsGroup.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetail4goodsGroup.setKitGroupPurchaseType(goodsGroup.getKitGroupPurchaseType());
                 studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goodsGroup);
             }
         }
@@ -463,6 +464,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrderDetail4goodsGroup.setCreateTime(date);
                 studentPaymentOrderDetail4goodsGroup.setUpdateTime(date);
                 studentPaymentOrderDetail4goodsGroup.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetail4goodsGroup.setKitGroupPurchaseType(goodsGroup.getKitGroupPurchaseType());
                 studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goodsGroup);
             }
         }

+ 6 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -2464,13 +2464,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                     if(now.before(vipGroup.getRegistrationStartTime())){
                         vipGroup.setStatus(VipGroupStatusEnum.NOT_START);
                     }
-                    if(vipGroup.getRegistrationStartTime().before(now)&&vipGroup.getCoursesExpireDate().after(now)){
-                        if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
+                    if(vipGroup.getRegistrationStartTime().before(now)&&vipGroup.getPaymentExpireDate().after(now)){
+                        if(vipGroup.getStatus().equals(VipGroupStatusEnum.NOT_START)){
 							vipGroup.setStatus(VipGroupStatusEnum.APPLYING);
 						}
                     }
-                    if(vipGroup.getCoursesExpireDate().before(now)&&vipGroup.getCourseStartDate().after(now)){
-                        vipGroup.setStatus(VipGroupStatusEnum.APPLYING_END);
+                    if(vipGroup.getPaymentExpireDate().before(now)&&vipGroup.getCourseStartDate().after(now)){
+						if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)) {
+							vipGroup.setStatus(VipGroupStatusEnum.APPLYING_END);
+						}
                     }
                     if(vipGroup.getCourseStartDate().before(now)&&vipGroup.getCoursesExpireDate().after(now)){
 						if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING_END)){

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -147,7 +147,7 @@
         SELECT
             cssp.group_type_,
             cssp.music_group_id_,
-            su.id_ student_id_,
+            cssp.user_id_ student_id_,
             su.username_,
             su.avatar_,
             IF(sa.status_ IS NULL,'TRUANT',sa.status_) status_
@@ -158,6 +158,7 @@
             LEFT JOIN class_group_student_mapper cgsm ON cssp.user_id_=cgsm.user_id_ AND cssp.class_group_id_=cgsm.class_group_id_
         WHERE
             cssp.course_schedule_id_ =#{courseScheduleId}
+            AND su.id_ IS NOT NULL
             AND cgsm.status_!='QUIT'
     </select>
 

+ 4 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -449,7 +449,7 @@
             cs.leave_student_num_,
             cg.student_num_ total_student_num_,
             su.real_name_ teacher_name_,
-            ta.sign_in_status_ attendance_status_,
+            IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) attendance_status_,
             s.name_ school_name_
         FROM
             course_schedule cs
@@ -1933,6 +1933,9 @@
             <if test="courseType!=null">
                 AND cs.type_ = #{courseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
+            <if test="schoolId!=null">
+                AND cs.schoole_id_ = #{schoolId}
+            </if>
         </where>
     </sql>
 

+ 20 - 3
mec-biz/src/main/resources/config/mybatis/GroupMapper.xml

@@ -14,7 +14,7 @@
         <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
-    <sql id="searchGroupsCondition">
+    <sql id="searchMusicGroupsCondition">
         <where>
             <if test="search!=null">
                 AND g.id_ = #{search} OR g.name_ LIKE CONCAT( '%', #{search}, '%' )
@@ -22,6 +22,23 @@
             <if test="organIdList!=null">
                 AND FIND_IN_SET(g.organ_id_,#{organIdList})
             </if>
+            <if test="musicGroupStatus!=null">
+                AND g.status_=#{musicGroupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+        </where>
+    </sql>
+
+    <sql id="searchVipGroupsCondition">
+        <where>
+            <if test="search!=null">
+                AND g.id_ = #{search} OR g.name_ LIKE CONCAT( '%', #{search}, '%' )
+            </if>
+            <if test="organIdList!=null">
+                AND FIND_IN_SET(g.organ_id_,#{organIdList})
+            </if>
+            <if test="vipGroupStatus!=null">
+                AND g.status_=#{vipGroupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
         </where>
     </sql>
 
@@ -29,12 +46,12 @@
         ( SELECT o.id_ organ_id_,o.name_ organ_name_,g.id_, g.name_ group_name_, 'MUSIC' group_type_
         FROM music_group g
         LEFT JOIN organization o ON g.organ_id_ = o.id_
-        <include refid="searchGroupsCondition"/> )
+        <include refid="searchMusicGroupsCondition"/> )
         UNION
         ( SELECT o.id_ organ_id_,o.name_ organ_name_,g.id_, g.name_ group_name_, 'VIP' group_type_
         FROM vip_group g
         LEFT JOIN organization o ON g.organ_id_ = o.id_
-        <include refid="searchGroupsCondition"/> );
+        <include refid="searchVipGroupsCondition"/> );
     </select>
     <select id="findByGroupIds" resultMap="Group">
       ( SELECT o.id_ organ_id_,o.name_ organ_name_,g.id_, g.name_ group_name_, 'MUSIC' group_type_

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -240,6 +240,7 @@
 		<result column="head_url_" property="headUrl" />
 		<result column="gender_" property="gender"/>
 		<result column="music_group_id_" property="musicGroupId"/>
+		<result column="user_type_" property="userType"/>
 	</resultMap>
 
 	<select id="findTeachersByStuId" resultMap="BasicUserDto">

+ 18 - 4
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml

@@ -11,9 +11,13 @@
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="subject_id_" property="subjectId"/>
         <result column="goods_id_list_" property="goodsIdList"/>
+        <result column="kit_group_purchase_type_json_" property="kitGroupPurchaseTypeJson" />
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="price_" property="price"/>
+        <result column="deposit_fee_" property="depositFee"/>
+        <result column="remission_course_fee_" property="remissionCourseFee"/>
+        <result column="kit_group_purchase_type_json_" property="kitGroupPurchaseTypeJson"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -34,15 +38,16 @@
             parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup"
             useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO music_group_subject_goods_group
-        (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_)
-        VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price})
+        (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_,deposit_fee_,remission_course_fee_,kit_group_purchase_type_json_)
+        VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price},#{depositFee},#{remissionCourseFee},#{kitGroupPurchaseTypeJson})
     </insert>
 
     <insert id="batchInsert" parameterType="java.util.List">
         INSERT INTO music_group_subject_goods_group
-        (name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_) VALUES
+        (name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_,deposit_fee_,remission_course_fee_,kit_group_purchase_type_json_) VALUES
         <foreach collection="lists" item="item" index="index" separator=",">
-            (#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{item.subjectId},#{item.goodsIdList},now(),now(),#{item.price})
+            (#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{musicGroupId},#{item.subjectId},#{item.goodsIdList},now(),now(),#{item.price},#{item.depositFee},#{item.remissionCourseFee},#{item.kitGroupPurchaseTypeJson})
         </foreach>
     </insert>
 
@@ -51,6 +56,15 @@
             parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup">
         UPDATE music_group_subject_goods_group
         <set>
+            <if test="depositFee != null">
+                deposit_fee_ = #{depositFee},
+            </if>
+            <if test="remissionCourseFee != null">
+                remission_course_fee_ = #{remissionCourseFee},
+            </if>
+            <if test="kitGroupPurchaseTypeJson != null">
+                kit_group_purchase_type_json_ = #{kitGroupPurchaseTypeJson},
+            </if>
             <if test="price != null">
                 price_ = #{price},
             </if>

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -374,6 +374,9 @@
             <if test="subjectId != null">
                 AND sr.actual_subject_id_ = #{subjectId}
             </if>
+            <if test="classGroupId != null">
+                AND cgsm.class_group_id_ = #{classGroupId} AND sr.user_id_ = cgsm.user_id_ AND cgsm.status_ != 'QUIT'
+            </if>
             <if test="studentStatus != null and studentStatus != ''">
                 AND sr.music_group_status_ = #{studentStatus}
             </if>
@@ -421,6 +424,9 @@
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
         LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
+        <if test="classGroupId != null">
+            LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = sr.music_group_id_
+        </if>
         LEFT JOIN music_group_student_fee_ mgsf ON mgsf.music_group_id_ = mg.id_ AND mgsf.user_id_ = su.id_
         <include refid="queryMusicGroupStudentSql"/>
         ORDER BY sr.id_ DESC
@@ -433,6 +439,9 @@
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
         LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
+        <if test="classGroupId != null">
+            LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = sr.music_group_id_
+        </if>
         LEFT JOIN music_group_student_fee_ mgsf ON mgsf.music_group_id_ = mg.id_ AND mgsf.user_id_ = su.id_
         <include refid="queryMusicGroupStudentSql"/>
     </select>

+ 11 - 4
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -14,6 +14,7 @@
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="payment_order_id_" property="paymentOrderId"/>
+        <result column="kit_group_purchase_type_" property="kitGroupPurchaseType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -37,8 +38,9 @@
         </selectKey>
         -->
         INSERT INTO student_payment_order_detail
-        (id_,type_,goods_id_list_,price_,create_time_,update_time_,payment_order_id_)
-        VALUES(#{id},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{goodsIdList},#{price},now(),now(),#{paymentOrderId})
+        (id_,type_,goods_id_list_,price_,create_time_,update_time_,payment_order_id_,kit_group_purchase_type_)
+        VALUES(#{id},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        #{goodsIdList},#{price},now(),now(),#{paymentOrderId},#{kitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -57,6 +59,9 @@
             <if test="paymentOrderId != null">
                 payment_order_id_ = #{paymentOrderId},
             </if>
+            <if test="kitGroupPurchaseType != null">
+                kit_group_purchase_type_ = #{kitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
             <if test="type != null">
                 type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
@@ -83,10 +88,12 @@
 
     <insert id="batchAdd" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
         INSERT INTO student_payment_order_detail
-        (id_,type_,goods_id_list_,price_,create_time_,update_time_,payment_order_id_)
+        (id_,type_,goods_id_list_,price_,create_time_,update_time_,payment_order_id_,kit_group_purchase_type_)
         VALUES
         <foreach collection="studentPaymentOrderDetailList" item="orderDetail" separator=",">
-            (#{orderDetail.id},#{orderDetail.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{orderDetail.goodsIdList},#{orderDetail.price},now(),now(),#{orderDetail.paymentOrderId})
+            (#{orderDetail.id},#{orderDetail.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{orderDetail.goodsIdList},#{orderDetail.price},now(),now(),#{orderDetail.paymentOrderId},
+            #{orderDetail.kitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
         </foreach>
     </insert>
 

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -424,6 +424,7 @@
             <result column="detail_id_" property="id"/>
             <result column="detail_type_" property="type"/>
             <result column="detail_price_" property="price"/>
+            <result column="detail_kit_group_purchase_type_" property="kitGroupPurchaseType"/>
         </collection>
         <collection property="goodsList" ofType="com.ym.mec.biz.dal.entity.Goods">
             <result column="goods_id" property="id"/>
@@ -433,8 +434,8 @@
 
     <!-- 分页查询 -->
     <select id="ExportQueryPage" resultMap="orderAndDetail" parameterType="map">
-        SELECT spo.*,u.username_,spod.id_ detail_id_,spod.type_ detail_type_,spod.price_ detail_price_,o.name_ organ_name,
-        sci.charge_type_,g.id_ goods_id, g.name_ goods_name FROM student_payment_order spo
+        SELECT spo.*,u.username_,spod.id_ detail_id_,spod.type_ detail_type_,spod.price_ detail_price_,spod.kit_group_purchase_type_ detail_kit_group_purchase_type_,
+        o.name_ organ_name,sci.charge_type_,g.id_ goods_id, g.name_ goods_name FROM student_payment_order spo
         LEFT JOIN sys_user u on spo.user_id_ = u.id_
         LEFT JOIN student_payment_order_detail spod on spo.id_ = spod.payment_order_id_
         LEFT JOIN organization o on spo.organ_id_ = o.id_

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -250,7 +250,7 @@
         SELECT * FROM teacher WHERE certificate_num_ = #{certificateNum} LIMIT 1
     </select>
     <select id="queryGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
-        SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,s.name_ subject_name_,sr.music_group_id_
+        SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,s.name_ subject_name_,sr.music_group_id_,su.user_type_
         FROM class_group_teacher_mapper cgtm
         LEFT JOIN class_group_student_mapper cgsm ON cgtm.class_group_id_ = cgsm.class_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
@@ -504,7 +504,7 @@
     </select>
 
     <select id="queryMusicGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
-        SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,GROUP_CONCAT(s.name_) subject_name_
+        SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,GROUP_CONCAT(s.name_) subject_name_,su.user_type_
         FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)

+ 1 - 1
mec-client-api/src/main/java/com/ym/mec/im/ImFeignService.java

@@ -81,7 +81,7 @@ public interface ImFeignService {
 	Object groupBatchDismiss(@RequestBody List<ImGroupModel> groupModels);
 
 	/**
-	 * 批量解散群组
+	 * 批量退出群组
 	 * @param groupModels
 	 * @return
 	 */

+ 8 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.dao.VipGroupDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
@@ -195,12 +196,15 @@ public class ExportController extends BaseController {
             BigDecimal musicalFee = BigDecimal.ZERO;
             BigDecimal teachingFee = BigDecimal.ZERO;
             BigDecimal courseFee = BigDecimal.ZERO;
+            BigDecimal leaseFee = BigDecimal.ZERO;
             String goodsName = "";
             if (row.getOrderDetailList() != null) {
                 for (StudentPaymentOrderDetail orderDetail : row.getOrderDetailList()) {
                     if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL)) {
-                        musicalFee = musicalFee.add(orderDetail.getPrice());
-
+                        musicalFee = orderDetail.getPrice();
+                        if(orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)){
+                            leaseFee = orderDetail.getPrice();
+                        }
                     } else if (orderDetail.getType().equals(OrderDetailTypeEnum.COURSE)) {
                         courseFee = courseFee.add(orderDetail.getPrice());
                     } else if (orderDetail.getType().equals(OrderDetailTypeEnum.ACCESSORIES) || orderDetail.getType().equals(OrderDetailTypeEnum.TEACHING) || orderDetail.getType().equals(OrderDetailTypeEnum.OTHER)) {
@@ -214,6 +218,7 @@ public class ExportController extends BaseController {
             row.setCourseFee(courseFee);
             row.setMusicalFee(musicalFee);
             row.setTeachingFee(teachingFee);
+            row.setLeaseFee(leaseFee);
             row.setMemo(goodsName);
             //专业
             if (row.getGroupType().equals(GroupType.MUSIC)) {
@@ -221,6 +226,7 @@ public class ExportController extends BaseController {
                 if (studentRegistration != null) {
                     row.setSubjectName(studentRegistration.getSubjectName());
                     row.setSchoolName(studentRegistration.getSchoolName());
+                    //更新数据后删除
                     if (row.getType().equals(OrderTypeEnum.APPLY) && studentRegistration.getKitType() != null && studentRegistration.getKitType().equals("LEASE")) {
                         row.setLeaseFee(musicalFee);
                         row.setMusicalFee(BigDecimal.ZERO);