Browse Source

feat:六一活动排课

Joburgess 4 years ago
parent
commit
3d8e5e195d

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.entity.VipGroupStudentCoursePrice;
+import com.ym.mec.biz.dal.enums.ActivityCourseType;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
@@ -43,6 +44,17 @@ public class VipGroupApplyBaseInfoDto extends VipGroup {
     @ApiModelProperty(value = "是否为赠送课程")
     private Boolean freeCourse=false;
 
+    @ApiModelProperty(value = "活动课程类型")
+    private ActivityCourseType activityCourseType;
+
+    public ActivityCourseType getActivityCourseType() {
+        return activityCourseType;
+    }
+
+    public void setActivityCourseType(ActivityCourseType activityCourseType) {
+        this.activityCourseType = activityCourseType;
+    }
+
     public Boolean getFreeCourse() {
         return freeCourse;
     }

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

@@ -8,7 +8,8 @@ import com.ym.mec.common.enums.BaseEnum;
  **/
 public enum ActivityCourseType implements BaseEnum<String, ComplaintsStatusEnum> {
     FREE_VIP("free_vip", "考级活动赠送课"),
-    VIP("free_vip", "考级活动VIP课"),
+    VIP1("vip1", "考级活动1v1VIP课"),
+    VIP2("vip2", "考级活动1v2VIP课"),
     MUSIC_THEORY("music_theory", "考级活动乐理课");
 
     private String code;

+ 21 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -517,6 +517,26 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 		List<Integer> studentIdList = Arrays.stream(studentIds.split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toList());
 
+		List<Student> studentDetail = studentDao.findByStudentIds(studentIdList);
+		List<SimpleUserDto> studentSimpleInfos = teacherDao.getUsersSimpleInfo(studentIdList);
+		if(studentDetail.size()!=studentSimpleInfos.size()){
+			throw new BizException("学员信息错误");
+		}
+		Map<Integer, SimpleUserDto> idUserInfoMap = studentSimpleInfos.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, s -> s, (s1, s2) -> s1));
+		for (Student student : studentDetail) {
+			if(StringUtils.isEmpty(student.getActivityCourseDetail())){
+				SimpleUserDto studentInfo = idUserInfoMap.get(student.getUserId());
+				throw new BizException("{}暂无排课资格", studentInfo.getNickName());
+			}
+			JSONObject courseDetail = JSON.parseObject(student.getActivityCourseDetail());
+			Integer surplusTimes = courseDetail.getInteger(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType().getCode());
+			if(surplusTimes<=0){
+				SimpleUserDto studentInfo = idUserInfoMap.get(student.getUserId());
+				throw new BizException("{}暂无排课资格", studentInfo.getNickName());
+			}
+			courseDetail.fluentPut(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType().getCode(), surplusTimes-1);
+		}
+
 		Date now=new Date();
 
 		VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto=vipGroup.getVipGroupApplyBaseInfo();
@@ -559,9 +579,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				}
 			}
 			if(errStudentIds.size()>0){
-				List<SimpleUserDto> students = teacherDao.getUsersSimpleInfo(errStudentIds);
 				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-				String studentNames = StringUtils.join(students.stream().map(SimpleUserDto::getNickName).collect(Collectors.toList()), "、");
+				String studentNames = StringUtils.join(studentSimpleInfos.stream().map(SimpleUserDto::getNickName).collect(Collectors.toList()), "、");
 				return BaseController.failed(HttpStatus.PARTIAL_CONTENT,"该活动"+studentNames+"学员创建及成课之和已达上限,是否继续创建该课程?");
 			}
 		}

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

@@ -54,7 +54,7 @@ public class EduVipGroupManageController extends BaseController {
             }
             vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(student.getOrganId());
         }
-        return vipGroupService.createVipGroup(vipGroupApplyDto);
+        return vipGroupService.createActivityVipGroup(vipGroupApplyDto);
     }
 
     @PostMapping("/exportActivityVipGroup")