|
@@ -25,6 +25,7 @@ import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -3243,30 +3244,43 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<MusicGroupPaymentCalender> getDefaultPaymentCalender(List<Integer> classGroupIds) {
|
|
|
+ public Map<Integer,Map<String,MusicGroupOrganizationCourseSettingsDetail>> getDefaultPaymentCalender(List<Integer> classGroupIds) {
|
|
|
if(classGroupIds == null || classGroupIds.size() == 0){
|
|
|
throw new BizException("参数校验失败");
|
|
|
}
|
|
|
+ Map<Integer,Map<String,MusicGroupOrganizationCourseSettingsDetail>> resultMap = new HashMap<>();
|
|
|
+ //获取默认的排课时长
|
|
|
+ String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
|
|
|
+ JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
|
|
|
//获取所选班级最大剩余课时
|
|
|
- Map<String,Integer> map = MapUtil.convertIntegerMap(courseScheduleDao.findClassMaxCourseNumMap(classGroupIds));
|
|
|
+ Map<String,Long> map = MapUtil.convertIntegerMap(courseScheduleDao.findClassMaxCourseNumMap(classGroupIds));
|
|
|
//获取每个班级对应课程类型最后一节课
|
|
|
Set<String> courseTypes = map.keySet();
|
|
|
for (Integer classGroupId : classGroupIds) {
|
|
|
+ Map<String,MusicGroupOrganizationCourseSettingsDetail> courseMap = new HashMap<>();
|
|
|
//获取当前班级剩余课次
|
|
|
- Map<String,Integer> subCourseNumMap = MapUtil.convertIntegerMap(courseScheduleDao.querySubCourseNumMap(classGroupId));
|
|
|
+ Map<String,Long> subCourseNumMap = MapUtil.convertIntegerMap(courseScheduleDao.querySubCourseNumMap(classGroupId));
|
|
|
for (String courseType : courseTypes) {
|
|
|
- Integer currentNum = subCourseNumMap.get(courseType);
|
|
|
- Integer maxNum = map.get(courseType);
|
|
|
+ Long currentNum = subCourseNumMap.get(courseType);
|
|
|
+ if(currentNum == null){
|
|
|
+ throw new BizException("所选班级课程类型不一致,请重新选择");
|
|
|
+ }
|
|
|
+ Long maxNum = map.get(courseType);
|
|
|
//如果当前课程类型不需要新增缴费项目
|
|
|
- if(currentNum != null && currentNum >= maxNum){
|
|
|
+ if(currentNum >= maxNum){
|
|
|
continue;
|
|
|
}
|
|
|
+ Long subNum = maxNum - currentNum;
|
|
|
+ //生成缴费项目
|
|
|
MusicGroupOrganizationCourseSettingsDetail settingsDetail = musicGroupPaymentCalenderCourseSettingsService.getClassLastSetting(classGroupId,courseType);
|
|
|
settingsDetail.setCourseType(CourseScheduleType.valueOf(courseType));
|
|
|
+ settingsDetail.setCourseTotalMinuties(Integer.parseInt(jsonObject.get(courseType).toString()) * subNum.intValue());
|
|
|
+ settingsDetail.setCourseCurrentPrice(settingsDetail.getCourseCurrentPrice().multiply(new BigDecimal(subNum)));
|
|
|
+ settingsDetail.setCourseOriginalPrice(settingsDetail.getCourseOriginalPrice().multiply(new BigDecimal(subNum)));
|
|
|
+ courseMap.put(courseType,settingsDetail);
|
|
|
}
|
|
|
+ resultMap.put(classGroupId,courseMap);
|
|
|
}
|
|
|
- //获取最后一节课现价,原价
|
|
|
- //生成缴费项目
|
|
|
- return null;
|
|
|
+ return resultMap;
|
|
|
}
|
|
|
}
|