Pārlūkot izejas kodu

feat:加油包关心包

Joburgess 4 gadi atpakaļ
vecāks
revīzija
2b61a89051

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

@@ -34,6 +34,7 @@ import java.util.stream.Collectors;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.util.collection.ListUtil;
@@ -50,17 +51,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
-import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
-import com.ym.mec.biz.dal.enums.TeachModeEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
-import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.ClassGroupQueryInfo;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
@@ -828,6 +818,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //获取学员购买的陪练课列表
         List<CourseListDto> practiceCourse = classGroupDao.queryStudentPracticeCourses(StringUtils.join(musicGroupIds, ","));
         Set<String> practiceGroupId = practiceCourse.stream().map(e -> e.getPracticeId()).collect(Collectors.toSet());
+
+        Map<Long, PracticeGroupType> practiceGroupTypeMap = new HashMap<>();
+        if(!CollectionUtils.isEmpty(practiceGroupId)){
+            List<PracticeCourseDto> practiceGroups = practiceGroupDao.getPracticeGroupByIds(practiceGroupId.stream().map(id->Long.valueOf(id)).collect(Collectors.toList()));
+            practiceGroupTypeMap = practiceGroups.stream().collect(Collectors.toMap(PracticeCourseDto::getId, PracticeCourseDto::getType));
+        }
+
         //获取陪练课学生名字
         Map<String, String> practiceStuNames = MapUtil.convertIntegerMap(classGroupDao.findVipStuNames(StringUtils.join(practiceGroupId, ","), "PRACTICE"));
         //获取有陪练报告的课程组
@@ -905,6 +902,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                         e.setStudyReportUrl(baseUrl + "/#/reportDetailNew?id=" + courseScheduleEvaluate.getId() + "&classGroupId=" + e.getClassGroupId());
                     }
                 }
+                if(practiceGroupTypeMap.containsKey(Long.valueOf(e.getMusicId()))){
+                    e.setPracticeType(PracticeGroupType.CARE_PACKAGE.equals(practiceGroupTypeMap.get(Long.valueOf(e.getMusicId())))?2:3);
+                }
             }
             if (ClassGroupTypeEnum.VIP == e.getType()) {
                 e.setStudentNames(vipStuNames.get(e.getVipId()));

+ 16 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EduPracticeGroupServiceImpl.java

@@ -572,15 +572,18 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
             courseStartDay=courseStartDay.plusDays(1);
             int dayOfWeek = courseStartDay.get(DateUtil.weekFields.dayOfWeek());
             for (PracticeDrillTimeDto drillTime : practiceGroupBuyParams.getDrillTimes()) {
+                if(practiceCourses.size()==courseTimes){
+                    break;
+                }
                 if(dayOfWeek==drillTime.getWeekNum()){
                     CourseSchedule courseSchedule=new CourseSchedule();
                     String courseStartDayStr = DateUtil.dateFormatter.format(courseStartDay);
                     String courseStartDateTimeStr = courseStartDayStr+" "+drillTime.getTimeStr();
                     LocalDateTime courseStartDateTime = LocalDateTime.parse(courseStartDateTimeStr,DateUtil.dateTimeFormatter);
                     LocalDateTime courseEndDateTime = courseStartDateTime.plusMinutes(practiceCourseMinutes);
-                    courseSchedule.setClassDate(Date.from(courseStartDay.atStartOfDay(DateUtil.zoneId).toInstant()));
                     courseSchedule.setStartClassTime(Date.from(courseStartDateTime.atZone(DateUtil.zoneId).toInstant()));
                     courseSchedule.setEndClassTime(Date.from(courseEndDateTime.atZone(DateUtil.zoneId).toInstant()));
+                    courseSchedule.setClassDate(courseSchedule.getStartClassTime());
                     courseSchedule.setName(practiceGroupBuyParams.getName());
                     courseSchedule.setTeacherId(practiceGroupBuyParams.getUserId());
                     courseSchedule.setActualTeacherId(practiceGroupBuyParams.getUserId());
@@ -595,8 +598,9 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
 
                     CourseSchedule courseSchedule1=new CourseSchedule();
                     BeanUtils.copyProperties(courseSchedule, courseSchedule1);
-                    courseSchedule1.setStartClassTime(courseSchedule1.getEndClassTime());
-                    courseSchedule1.setStartClassTime(Date.from(courseEndDateTime.plusMinutes(practiceCourseMinutes).atZone(DateUtil.zoneId).toInstant()));
+                    courseSchedule1.setStartClassTime(courseSchedule.getEndClassTime());
+                    courseSchedule1.setEndClassTime(Date.from(courseEndDateTime.plusMinutes(practiceCourseMinutes).atZone(DateUtil.zoneId).toInstant()));
+                    courseSchedule1.setClassDate(courseSchedule1.getStartClassTime());
                     practiceCourses.add(courseSchedule1);
                 }
             }
@@ -620,13 +624,13 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
 
         PracticeGroupSellPrice practiceGroupSellPrice = practiceGroupSellPriceDao.get(sysUser.getOrganId());
         if(Objects.isNull(practiceGroupSellPrice)){
-            throw new BizException("所在城市暂不参与此活动");
+            return BaseController.failed(HttpStatus.EXPECTATION_FAILED, "所在城市暂不参与此活动");
         }
 
-        BigDecimal unitPrice = PracticeGroupType.CARE_PACKAGE.equals(practiceGroupBuyParams.getType())?practiceGroupSellPrice.getCarePackagePrice():practiceGroupSellPrice.getComeOnPackagePrice();
-
-        BigDecimal originalAmount = unitPrice.multiply(new BigDecimal(courseTimes));
-        BigDecimal amount= unitPrice.multiply(new BigDecimal(courseTimes));
+        BigDecimal price = PracticeGroupType.CARE_PACKAGE.equals(practiceGroupBuyParams.getType())?practiceGroupSellPrice.getCarePackagePrice():practiceGroupSellPrice.getComeOnPackagePrice();
+        if(Objects.isNull(price)&&PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupBuyParams.getType())){
+            return BaseController.failed(HttpStatus.EXPECTATION_FAILED, "请设置加油包价格");
+        }
 
         practiceGroupBuyParams.setCoursesStartDate(practiceCourses.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get().getStartClassTime());
         practiceGroupBuyParams.setCoursesExpireDate(practiceCourses.stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get().getEndClassTime());
@@ -712,8 +716,8 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         if(teacherDefaultSalary == null){
             throw new BizException("请设置老师课酬");
         }
-        BigDecimal studentSingleCourseCost=amount.divide(new BigDecimal(practiceCourses.size()), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
-        BigDecimal studentSingleCourseOriginalCost=originalAmount.divide(new BigDecimal(practiceCourses.size()), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+        BigDecimal studentSingleCourseCost=price.divide(new BigDecimal(practiceCourses.size()), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+        BigDecimal studentSingleCourseOriginalCost=price.divide(new BigDecimal(practiceCourses.size()), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
         for (CourseSchedule courseSchedule : practiceCourses) {
             //课程与老师薪水表
             CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
@@ -781,7 +785,7 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         studentPaymentOrder.setStatus(DealStatusEnum.ING);
         studentPaymentOrder.setType(OrderTypeEnum.PRACTICE_GROUP_BUY);
 
-        studentPaymentOrder.setExpectAmount(amount);
+        studentPaymentOrder.setExpectAmount(price);
         studentPaymentOrder.setMusicGroupId(practiceGroupBuyParams.getId().toString());
         studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount());
         studentPaymentOrder.setClassGroupId(classGroup.getId());
@@ -815,7 +819,7 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
 
                 return BaseController.succeed(result);
             }else{
-                throw new BizException("账户余额不足,请完成账户充值");
+                throw new BizException("该学员尚未缴纳加油包费用");
             }
         }else{
             throw new BizException("当前购买方式暂时只支持用户余额购买");

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

@@ -605,7 +605,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				teacher.setFlowOrganRange(StringUtils.join(organNames,","));
 			}
 			if(teacher.getTeacherOrganId() != null){
-				teacher.setOrganName(organizationDao.get(teacher.getTeacherOrganId()).getName());
+				Organization organization = organizationDao.get(teacher.getTeacherOrganId());
+				teacher.setOrganName(Objects.nonNull(organization)?organization.getName():null);
 			}
 			//专业技能
 			if(StringUtils.isNotEmpty(teacher.getSubjectId())){

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/education/EduPracticeGroupController.java

@@ -118,7 +118,7 @@ public class EduPracticeGroupController extends BaseController {
                 while (iterator.hasNext()){
                     String timeStr = iterator.next();
                     if("23:30:00".equals(timeStr)){
-                        weekNumApplyTimesMapEntry.getValue().remove(timeStr);
+                        iterator.remove();
                         continue;
                     }
                     LocalTime time = LocalTime.parse(timeStr, dtf);
@@ -130,7 +130,7 @@ public class EduPracticeGroupController extends BaseController {
                     if(weekNumApplyTimesMapEntry.getValue().contains(preTime.format(DateUtil.timeFormatter))){
                         continue;
                     }
-                    weekNumApplyTimesMapEntry.getValue().remove(timeStr);
+                    iterator.remove();
                 }
             }
         }