Browse Source

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

zouxuan 4 years ago
parent
commit
de9952325e

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentCalenderAuditDetailDto.java

@@ -20,6 +20,26 @@ public class MusicGroupPaymentCalenderAuditDetailDto {
     @ApiModelProperty(value = "学员缴费详情",required = false)
     private List<MusicGroupPaymentCalenderStudentDetail> musicGroupPaymentCalenderStudentDetails;
 
+    private String username;
+
+    private String phone;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
     public List<MusicGroupPaymentCalenderStudentDetail> getMusicGroupPaymentCalenderStudentDetails() {
         return musicGroupPaymentCalenderStudentDetails;
     }

+ 0 - 20
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalenderCourseSettings.java

@@ -41,26 +41,6 @@ public class MusicGroupPaymentCalenderCourseSettings {
 	/**  */
 	private java.util.Date updateTime;
 
-	private String username;
-
-	private String phone;
-
-	public String getUsername() {
-		return username;
-	}
-
-	public void setUsername(String username) {
-		this.username = username;
-	}
-
-	public String getPhone() {
-		return phone;
-	}
-
-	public void setPhone(String phone) {
-		this.phone = phone;
-	}
-
 	public void setStudentOptional(boolean studentOptional) {
 		isStudentOptional = studentOptional;
 	}

+ 59 - 1
mec-biz/src/main/java/com/ym/mec/biz/event/listener/GroupEventListener.java

@@ -38,7 +38,65 @@ public class GroupEventListener {
     @Async
     @EventListener
     public void musicGroupStudentChangeMonitor(MusicGroupStudentChangeEvent musicGroupStatusChangeEvent){
-
+        if(Objects.isNull(musicGroupStatusChangeEvent.getMusicGroupId())||Objects.isNull(musicGroupStatusChangeEvent.getStudentMusicGroupStatus())){
+            return;
+        }
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupStatusChangeEvent.getMusicGroupId());
+        if(Objects.isNull(musicGroup)){
+            return;
+        }
+        List<Integer> studentIds = musicGroupStatusChangeEvent.getStudentIds();
+        if(CollectionUtils.isEmpty(studentIds)) {
+            List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryStudentByMusicGroupId(musicGroupStatusChangeEvent.getMusicGroupId());
+            studentIds = studentRegistrations.stream().map(StudentRegistration::getUserId).collect(Collectors.toList());
+        }
+        if(CollectionUtils.isEmpty(studentIds)){
+            return;
+        }
+        List<StudentRegistration> studentNormalRegistration = studentRegistrationDao.getStudentNormalRegistration(new HashSet<>(studentIds));
+        Map<Integer, Set<String>> userGroupIdMap = studentNormalRegistration.stream().collect(Collectors.groupingBy(StudentRegistration::getUserId, Collectors.mapping(StudentRegistration::getMusicGroupId, Collectors.toSet())));
+        int updateNum = 0;
+        for (Integer studentId : studentIds) {
+            if(userGroupIdMap.containsKey(studentId)&&userGroupIdMap.get(studentId).size()>1){
+                continue;
+            }
+            if(userGroupIdMap.containsKey(studentId)&&!userGroupIdMap.get(studentId).contains(musicGroupStatusChangeEvent.getMusicGroupId())){
+                continue;
+            }
+            updateNum+=1;
+        }
+        LocalDate nowDate = LocalDate.now();
+        String dayStr = nowDate.plusDays(-1).toString();
+        IndexBaseMonthData indexBaseMonthData = null;
+        switch (musicGroupStatusChangeEvent.getStudentMusicGroupStatus()){
+            case NORMAL:
+                indexBaseMonthData = indexBaseMonthDataDao.getOrganDataWithDayAndDataType(musicGroup.getOrganId(), dayStr, IndexDataType.NEWLY_STUDENT_NUM);
+                break;
+            case QUIT:
+                indexBaseMonthData = indexBaseMonthDataDao.getOrganDataWithDayAndDataType(musicGroup.getOrganId(), dayStr, IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
+                break;
+            default:
+                return;
+        }
+        if(Objects.isNull(indexBaseMonthData)){
+            indexBaseMonthData = new IndexBaseMonthData();
+            Date date = DateUtil.stringToDate(dayStr, "yyyy-MM-dd");
+            BigDecimal zero = new BigDecimal(0);
+            indexBaseMonthData.setMonth(date);
+            indexBaseMonthData.setOrganId(musicGroup.getOrganId());
+            indexBaseMonthData.setDataType(StudentMusicGroupStatusEnum.NORMAL.equals(musicGroupStatusChangeEvent.getStudentMusicGroupStatus())?IndexDataType.NEWLY_STUDENT_NUM:IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
+            indexBaseMonthData.setTotalNum(zero);
+            indexBaseMonthData.setActivateNum(zero);
+            indexBaseMonthData.setPercent(zero);
+        }
+        indexBaseMonthData.setTotalNum(indexBaseMonthData.getTotalNum().add(new BigDecimal(updateNum)));
+        indexBaseMonthData.setActivateNum(indexBaseMonthData.getActivateNum().add(new BigDecimal(updateNum)));
+        indexBaseMonthData.setPercent(indexBaseMonthData.getPercent().add(new BigDecimal(updateNum)));
+        if(Objects.isNull(indexBaseMonthData.getId())){
+            indexBaseMonthDataDao.insert(indexBaseMonthData);
+        }else{
+            indexBaseMonthDataDao.update(indexBaseMonthData);
+        }
     }
 
 }

+ 12 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -995,26 +995,21 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		//获取缴费周期
 		List<MusicGroupPaymentCalender> groupPaymentCalenders = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
 		calenderAuditDetailDto.setMusicGroupPaymentCalenders(groupPaymentCalenders);
-		//获取收费标准
-		List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettingsByBatchNo(batchNo);
-		if(courseSettings != null && courseSettings.size() > 0){
-			MusicGroupPaymentCalender paymentCalender = groupPaymentCalenders.get(0);
-			if(paymentCalender.getPaymentType() == ADD_STUDENT){
-				try {
-					String studentIds = groupPaymentCalenders.get(0).getStudentIds();
-					if(StringUtils.isNotEmpty(studentIds)){
-						SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(studentIds));
-						courseSettings.forEach(e->{
-							e.setUsername(sysUser.getUsername());
-							e.setPhone(sysUser.getPhone());
-						});
-					}
-				}catch (Exception e){
-					e.printStackTrace();
+		MusicGroupPaymentCalender paymentCalender = groupPaymentCalenders.get(0);
+		if(paymentCalender.getPaymentType() == ADD_STUDENT){
+			try {
+				String studentIds = groupPaymentCalenders.get(0).getStudentIds();
+				if(StringUtils.isNotEmpty(studentIds)){
+					SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(studentIds));
+					calenderAuditDetailDto.setPhone(sysUser.getPhone());
+					calenderAuditDetailDto.setPhone(sysUser.getUsername());
 				}
+			}catch (Exception e){
+				e.printStackTrace();
 			}
 		}
-		calenderAuditDetailDto.setMusicGroupPaymentCalenderCourseSettings(courseSettings);
+		//获取收费标准
+		calenderAuditDetailDto.setMusicGroupPaymentCalenderCourseSettings(musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettingsByBatchNo(batchNo));
 		//获取跨团合班学员缴费详情
 		calenderAuditDetailDto.setMusicGroupPaymentCalenderStudentDetails(musicGroupPaymentCalenderStudentDetailDao.findByBatchNo(batchNo));
 		return calenderAuditDetailDto;