Explorar el Código

feat:六一活动排课

Joburgess hace 4 años
padre
commit
ff541dd5a8

+ 0 - 11
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupApplyBaseInfoDto.java

@@ -41,9 +41,6 @@ public class VipGroupApplyBaseInfoDto extends VipGroup {
     @ApiModelProperty(value = "第一个选择的学员")
     private Integer firstStudentId;
 
-    @ApiModelProperty(value = "是否为赠送课程")
-    private Boolean freeCourse=false;
-
     @ApiModelProperty(value = "活动课程类型")
     private ActivityCourseType activityCourseType;
 
@@ -55,14 +52,6 @@ public class VipGroupApplyBaseInfoDto extends VipGroup {
         this.activityCourseType = activityCourseType;
     }
 
-    public Boolean getFreeCourse() {
-        return freeCourse;
-    }
-
-    public void setFreeCourse(Boolean freeCourse) {
-        this.freeCourse = freeCourse;
-    }
-
     public Integer getFirstStudentId() {
         return firstStudentId;
     }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ActivityCourseType.java

@@ -23,7 +23,7 @@ public enum ActivityCourseType implements BaseEnum<String, ComplaintsStatusEnum>
 
     @Override
     public String getCode() {
-        return null;
+        return this.code;
     }
 
     public void setCode(String code) {

+ 18 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -496,6 +496,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("教学模式错误");
 		}
 
+		if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
+			List<VipGroupCategory> vipGroupCategories = vipGroupCategoryDao.findAllByOrgan(vipGroup.getVipGroupApplyBaseInfo().getOrganId().toString());
+			VipGroupCategory vipGroupCategory = vipGroupCategories.stream().filter(v -> v.getName().equals("1v2")).findFirst().get();
+			vipGroup.getVipGroupApplyBaseInfo().setVipGroupCategoryId(vipGroupCategory.getId());
+		}
+
 		if((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE))&&vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()!=0)
 				||(!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE))&&(courseScheduleGroup.get(TeachModeEnum.OFFLINE).size()<vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()))){
 			throw new BizException("线下课课时数量安排有误");
@@ -535,7 +541,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				throw new BizException("{}暂无排课资格", studentInfo.getNickName());
 			}
 			courseDetail.fluentPut(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType().getCode(), surplusTimes-1);
+			student.setActivityCourseDetail(courseDetail.toJSONString());
 		}
+		studentDao.batchUpdate(studentDetail);
 
 		Date now=new Date();
 
@@ -560,6 +568,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("开课时间不能小于当前时间");
 		}
 
+		vipGroupApplyBaseInfoDto.setRegistrationStartTime(now);
+		vipGroupApplyBaseInfoDto.setPaymentExpireDate(now);
+
 		if(vipGroupApplyBaseInfoDto.getRegistrationStartTime().after(vipGroupApplyBaseInfoDto.getPaymentExpireDate())){
 			throw new BizException("报名开始时间必须在报名截至时间之前");
 		}
@@ -622,7 +633,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//生成vip课信息
 		List<String> bySubIds = subjectDao.findBySubIds(vipGroupApplyBaseInfoDto.getSubjectIdList());
 		StringBuffer className=new StringBuffer();
-		if(vipGroupApplyBaseInfoDto.getFreeCourse()){
+		if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 			className.append("考前辅导课•");
 		}else if(Objects.isNull(vipGroupCategory.getMusicTheory())||!vipGroupCategory.getMusicTheory()){
 			className.append(StringUtils.join(bySubIds,","));
@@ -634,7 +645,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		vipGroupApplyBaseInfoDto.setName(className.toString());
 
 
-		if(!vipGroupApplyBaseInfoDto.getFreeCourse()){
+		if(!ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 			//计算课程相关费用信息
 			Map<String, BigDecimal> costInfo = countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
 					vipGroupApplyBaseInfoDto.getUserId(), null);
@@ -752,7 +763,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		List<CourseSchedule> courseSchedules = vipGroup.getCourseSchedules();
 		courseScheduleService.batchAddCourseSchedule(courseSchedules);
 		//创建老师单节课课酬信息
-		if(vipGroupApplyBaseInfoDto.getFreeCourse()){
+		if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 			List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<>();
 			BigDecimal teacherDefaultSalary = new BigDecimal("16.67");
 			SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
@@ -806,7 +817,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		userRoleMap.put(vipGroupApplyBaseInfoDto.getUserId(),"指导老师");
 		//生成学生单课缴费信息
 		for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
-			if(vipGroupApplyBaseInfoDto.getFreeCourse()){
+			if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 				List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
 				for (Integer studentId : studentIdList) {
 					for (CourseSchedule courseSchedule : courseSchedules) {
@@ -1029,7 +1040,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			vipGroupApplyBaseInfoDto.setOnlineClassesNum(onlineCourseNum);
 			vipGroupApplyBaseInfoDto.setOfflineClassesNum(offlineCourseNum);
 			vipGroupApplyBaseInfoDto.setVipGroupCategoryId(vipGroupCategory.getId());
-			vipGroupApplyBaseInfoDto.setFreeCourse(freeCourse);
+			if(freeCourse){
+				vipGroupApplyBaseInfoDto.setActivityCourseType(ActivityCourseType.FREE_VIP);
+			}
 			if(Objects.nonNull(vipGroupActivity)){
 				vipGroupApplyBaseInfoDto.setVipGroupActivityId(vipGroupActivity.getId());
 			}

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduSubjectController.java

@@ -3,8 +3,11 @@ package com.ym.mec.web.controller.education;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -24,4 +27,10 @@ public class EduSubjectController extends BaseController {
     public Object findSubSubjects(Integer tenantId){
         return succeed(subjectService.findSubSubjects(tenantId));
     }
+
+    @ApiOperation(value = "根据科目编号查询科目")
+    @GetMapping("/get")
+    public Object get(Integer id){
+        return succeed(subjectService.get(id));
+    }
 }

+ 5 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupManageController.java

@@ -4,10 +4,12 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,6 +56,9 @@ public class EduVipGroupManageController extends BaseController {
             }
             vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(student.getOrganId());
         }
+        for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
+            courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getSingleClassMinutes()));
+        }
         return vipGroupService.createActivityVipGroup(vipGroupApplyDto);
     }