Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
de898ca7cf

+ 2 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultMusicGroupSalaryDao.java

@@ -20,11 +20,10 @@ public interface TeacherDefaultMusicGroupSalaryDao extends BaseDAO<Long, Teacher
     List<TeacherDefaultMusicGroupSalary> getTeacherSalaryByUserIdAndType(@Param("userId") int userId, @Param("classGroupType") String classGroupType, @Param("settlementType") SalarySettlementTypeEnum settlementType);
 
     /**
-     * 根据教师编号和结算类型删除
+     * 根据教师编号删除
      * @param userId
-     * @param settlementType
      */
-    void delByTeacherId(@Param("userId")Integer userId, @Param("settlementType") String settlementType);
+    void delByTeacherId(@Param("userId")Integer userId);
 
     /**
      * 批量新增

+ 22 - 24
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -20,16 +20,14 @@ import java.util.Objects;
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class CourseSchedule {
 
-	private SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
-	private SimpleDateFormat simpleDateFormat1=new SimpleDateFormat("yyyy-MM-dd HH:mm");
+	private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+	private SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
 
 	public enum CourseScheduleType implements BaseEnum<String, CourseScheduleType> {
 
-		SINGLE("SINGLE", "单技课"), MIX("MIX", "合奏课"),
-		HIGH("HIGH", "小班课"), VIP("VIP", "vip课"),
-		DEMO("DEMO", "试听课"), COMPREHENSIVE("COMPREHENSIVE", "综合课"),
-		PRACTICE("PRACTICE", "练习课"), ENLIGHTENMENT("ENLIGHTENMENT", "启蒙课"),
-		TRAINING("TRAINING", "集训课"),CLASSROOM("CLASSROOM", "课堂课");
+		SINGLE("SINGLE", "单技课"), MIX("MIX", "合奏课"), HIGH("HIGH", "小班课"), VIP("VIP", "vip课"), DEMO("DEMO", "试听课"), COMPREHENSIVE("COMPREHENSIVE", "综合课"), PRACTICE(
+				"PRACTICE", "练习课"), ENLIGHTENMENT("ENLIGHTENMENT", "启蒙课"), TRAINING_SINGLE("TRAINING_SINGLE", "集训单技课"), TRAINING_MIX("TRAINING_MIX", "集训合奏课"), CLASSROOM(
+				"CLASSROOM", "课堂课");
 
 		private String code;
 
@@ -103,7 +101,7 @@ public class CourseSchedule {
 	private TeachModeEnum teachMode;
 
 	private CourseScheduleType type;
-	
+
 	private String name;
 
 	@ApiModelProperty(value = "实际上课人数")
@@ -111,7 +109,7 @@ public class CourseSchedule {
 
 	@ApiModelProperty(value = "请假人数")
 	private Integer leaveStudentNum;
-	
+
 	private Integer schoolId;
 
 	/** 主教是否不需要重新生成课酬 */
@@ -138,10 +136,10 @@ public class CourseSchedule {
 	}
 
 	public void setStartClassTimeStr(String startClassTimeStr) throws ParseException {
-		if(Objects.nonNull(this.classDate)&&!StringUtils.isBlank(startClassTimeStr)){
+		if (Objects.nonNull(this.classDate) && !StringUtils.isBlank(startClassTimeStr)) {
 			String startTime = simpleDateFormat.format(this.classDate);
-			startTime=startTime+" "+startClassTimeStr;
-			this.startClassTime=simpleDateFormat1.parse(startTime);
+			startTime = startTime + " " + startClassTimeStr;
+			this.startClassTime = simpleDateFormat1.parse(startTime);
 		}
 		this.startClassTimeStr = startClassTimeStr;
 	}
@@ -151,10 +149,10 @@ public class CourseSchedule {
 	}
 
 	public void setEndClassTimeStr(String endClassTimeStr) throws ParseException {
-		if(Objects.nonNull(this.classDate)&&!StringUtils.isBlank(endClassTimeStr)){
+		if (Objects.nonNull(this.classDate) && !StringUtils.isBlank(endClassTimeStr)) {
 			String endTime = simpleDateFormat.format(this.classDate);
-			endTime=endTime+" "+endClassTimeStr;
-			this.endClassTime=simpleDateFormat1.parse(endTime);
+			endTime = endTime + " " + endClassTimeStr;
+			this.endClassTime = simpleDateFormat1.parse(endTime);
 		}
 		this.endClassTimeStr = endClassTimeStr;
 	}
@@ -207,23 +205,23 @@ public class CourseSchedule {
 		return this.subsidy;
 	}
 
-	public void setClassDate(java.util.Date classDate){
-		if(StringUtils.isNotEmpty(startClassTimeStr)){
+	public void setClassDate(java.util.Date classDate) {
+		if (StringUtils.isNotEmpty(startClassTimeStr)) {
 			String startTime = simpleDateFormat.format(classDate);
-			startTime=startTime+" "+startClassTimeStr;
+			startTime = startTime + " " + startClassTimeStr;
 			try {
-				this.startClassTime=simpleDateFormat1.parse(startTime);
+				this.startClassTime = simpleDateFormat1.parse(startTime);
 			} catch (ParseException e) {
-				this.startClassTime=null;
+				this.startClassTime = null;
 			}
 		}
-		if(StringUtils.isNotEmpty(endClassTimeStr)){
+		if (StringUtils.isNotEmpty(endClassTimeStr)) {
 			String endTime = simpleDateFormat.format(classDate);
-			endTime=endTime+" "+endClassTimeStr;
+			endTime = endTime + " " + endClassTimeStr;
 			try {
-				this.endClassTime=simpleDateFormat1.parse(endTime);
+				this.endClassTime = simpleDateFormat1.parse(endTime);
 			} catch (ParseException e) {
-				this.endClassTime=null;
+				this.endClassTime = null;
 			}
 		}
 		this.classDate = classDate;

+ 25 - 36
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherDefaultMusicGroupSalary.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.entity;
 
-import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
@@ -26,25 +25,21 @@ public class TeacherDefaultMusicGroupSalary {
 	@ApiModelProperty(value = "课程类型",required = false)
 	private CourseSchedule.CourseScheduleType courseScheduleType;
 
-
-	@ApiModelProperty(value = "结算方式",required = false)
-	private SalarySettlementTypeEnum settlementType;
-
 	/**  */
-	@ApiModelProperty(value = "最小课时长度",required = false)
-	private Integer durationMin;
+	@ApiModelProperty(value = "主教90分钟课酬",required = false)
+	private BigDecimal mainTeacher90MinSalary;
 
 	/**  */
-	@ApiModelProperty(value = "最大课时长度",required = false)
-	private Integer durationMax;
+	@ApiModelProperty(value = "助教90分钟课酬",required = false)
+	private BigDecimal assistantTeacher90MinSalary;
 	
 	/** 主教薪酬 */
-	@ApiModelProperty(value = "主教酬",required = false)
-	private BigDecimal mainTeacherSalary;
+	@ApiModelProperty(value = "主教30分钟课酬",required = false)
+	private BigDecimal mainTeacher30MinSalary;
 	
 	/** 助教薪酬 */
-	@ApiModelProperty(value = "助教酬",required = false)
-	private BigDecimal assistantTeacherSalary;
+	@ApiModelProperty(value = "助教30分钟课酬",required = false)
+	private BigDecimal assistantTeacher30MinSalary;
 
 	@ApiModelProperty(value = "是否删除该条数据",required = false)
 	private YesOrNoEnum delFlag;
@@ -87,20 +82,20 @@ public class TeacherDefaultMusicGroupSalary {
 		this.courseScheduleType = courseScheduleType;
 	}
 
-	public BigDecimal getMainTeacherSalary() {
-		return mainTeacherSalary;
+	public BigDecimal getMainTeacher30MinSalary() {
+		return assistantTeacher30MinSalary;
 	}
 
-	public void setMainTeacherSalary(BigDecimal mainTeacherSalary) {
-		this.mainTeacherSalary = mainTeacherSalary;
+	public void setMainTeacher30MinSalary(BigDecimal assistantTeacher30MinSalary) {
+		this.assistantTeacher30MinSalary = assistantTeacher30MinSalary;
 	}
 
-	public BigDecimal getAssistantTeacherSalary() {
-		return assistantTeacherSalary;
+	public BigDecimal getAssistantTeacher30MinSalary() {
+		return assistantTeacher30MinSalary;
 	}
 
-	public void setAssistantTeacherSalary(BigDecimal assistantTeacherSalary) {
-		this.assistantTeacherSalary = assistantTeacherSalary;
+	public void setAssistantTeacher30MinSalary(BigDecimal assistantTeacher30MinSalary) {
+		this.assistantTeacher30MinSalary = assistantTeacher30MinSalary;
 	}
 
 	public void setCreateTime(java.util.Date createTime){
@@ -118,29 +113,23 @@ public class TeacherDefaultMusicGroupSalary {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
-	public Integer getDurationMin() {
-		return durationMin;
-	}
-
-	public void setDurationMin(Integer durationMin) {
-		this.durationMin = durationMin;
+	
+	public BigDecimal getMainTeacher90MinSalary() {
+		return mainTeacher90MinSalary;
 	}
 
-	public Integer getDurationMax() {
-		return durationMax;
+	public void setMainTeacher90MinSalary(BigDecimal mainTeacher90MinSalary) {
+		this.mainTeacher90MinSalary = mainTeacher90MinSalary;
 	}
 
-	public void setDurationMax(Integer durationMax) {
-		this.durationMax = durationMax;
+	public BigDecimal getAssistantTeacher90MinSalary() {
+		return assistantTeacher90MinSalary;
 	}
 
-	public SalarySettlementTypeEnum getSettlementType() {
-		return settlementType;
+	public void setAssistantTeacher90MinSalary(BigDecimal assistantTeacher90MinSalary) {
+		this.assistantTeacher90MinSalary = assistantTeacher90MinSalary;
 	}
 
-	public void setSettlementType(SalarySettlementTypeEnum settlementType) {
-		this.settlementType = settlementType;
-	}
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -182,7 +182,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * 乐团确认成立
 	 * @param musicGroupId
 	 */
-    void musicGroupFound(String musicGroupId);
+    void musicGroupFound(String musicGroupId) throws Exception;
 
 	/**
 	 * 乐团修改,获取乐团声部信息数据
@@ -203,4 +203,10 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @return
 	 */
     int updateExpectedStudentNum(List<UpdateExpectedNumDto> updateExpectedNumDtos);
+
+	/**
+	 * 开启乐团(筹备中 -->  进行中)
+	 * @param musicGroupId
+	 */
+	void musicGroupAction(String musicGroupId) throws Exception;
 }

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

@@ -441,20 +441,20 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                         List<Map<String, String>> configs = JSONArray.parseObject(sysConfig.getParanValue(), List.class);
                         for (Map<String, String> config : configs) {
                             TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = new TeacherDefaultMusicGroupSalary();
-                            teacherDefaultMusicGroupSalary.setDurationMin(Integer.parseInt(config.get("min")));
-                            teacherDefaultMusicGroupSalary.setDurationMax(Integer.parseInt(config.get("max")));
-                            teacherDefaultMusicGroupSalary.setSettlementType(type);
+                            //teacherDefaultMusicGroupSalary.setDurationMin(Integer.parseInt(config.get("min")));
+                            //teacherDefaultMusicGroupSalary.setDurationMax(Integer.parseInt(config.get("max")));
+                            //teacherDefaultMusicGroupSalary.setSettlementType(type);
                             teacherDefaultMusicGroupSalary.setUserId(classGroupTeacherMapper.getUserId());
-                            teacherDefaultMusicGroupSalary.setAssistantTeacherSalary(zeroSalary);
-                            teacherDefaultMusicGroupSalary.setMainTeacherSalary(zeroSalary);
+                            teacherDefaultMusicGroupSalary.setAssistantTeacher30MinSalary(zeroSalary);
+                            teacherDefaultMusicGroupSalary.setMainTeacher30MinSalary(zeroSalary);
 
                             teacherSalaryByUserIdAndType.add(teacherDefaultMusicGroupSalary);
                         }
                     } else {
                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = new TeacherDefaultMusicGroupSalary();
-                        teacherDefaultMusicGroupSalary.setAssistantTeacherSalary(zeroSalary);
-                        teacherDefaultMusicGroupSalary.setMainTeacherSalary(zeroSalary);
-                        teacherDefaultMusicGroupSalary.setSettlementType(type);
+                        teacherDefaultMusicGroupSalary.setAssistantTeacher30MinSalary(zeroSalary);
+                        teacherDefaultMusicGroupSalary.setMainTeacher30MinSalary(zeroSalary);
+                        //teacherDefaultMusicGroupSalary.setSettlementType(type);
                         teacherDefaultMusicGroupSalary.setUserId(classGroupTeacherMapper.getUserId());
 
                         teacherSalaryByUserIdAndType.add(teacherDefaultMusicGroupSalary);
@@ -946,7 +946,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal salary = new BigDecimal("0");
                     for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) {
                         //对应基准课酬
-                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                         //基准课酬
                         if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
                             salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -1147,7 +1147,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal salary = new BigDecimal("0");
                     for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) {
                         //对应基准课酬
-                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                         //基准课酬
                         if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
                             salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -1350,7 +1350,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal salary = new BigDecimal("0");
                     for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherSalaryList) {
                         //对应基准课酬
-                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+                        BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                         //基准课酬
                         if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
                             salary = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP);

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -123,7 +123,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaryList = classGroupTeacherMapper.getTeacherDefaultMusicGroupSalaryList();
                 for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherDefaultMusicGroupSalaryList) {
                     //对应基准课酬
-                    BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+                    BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     //基准课酬
                     if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
                         salary = new BigDecimal(duration).divide(new BigDecimal(30),8,BigDecimal.ROUND_HALF_UP).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -287,12 +287,12 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
             if (Objects.isNull(bishopTeacherDefaultMusicGroupSalary)) {
                 throw new BizException("存在未设置默认课酬的教师");
             }
-            BigDecimal bishopTeacherDefaultSalary = teachType == TeachTypeEnum.BISHOP ? bishopTeacherDefaultMusicGroupSalary.getMainTeacherSalary() : bishopTeacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+            BigDecimal bishopTeacherDefaultSalary = teachType == TeachTypeEnum.BISHOP ? bishopTeacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : bishopTeacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
             teacherSalary = bishopTeacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
         } else if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
             for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherDefaultMusicGroupSalariesWithTeacherId) {
                 if (duration >= teacherDefaultMusicGroupSalary.getDurationMin() && duration <= teacherDefaultMusicGroupSalary.getDurationMin()) {
-                    teacherSalary = teachType == TeachTypeEnum.BISHOP ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+                    teacherSalary = teachType == TeachTypeEnum.BISHOP ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     break;
                 }
             }

+ 46 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -54,7 +54,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     private MusicGroupSubjectPlanDao musicGroupSubjectPlanDao;
     @Autowired
     private MusicGroupBuildLogDao musicGroupBuildLogDao;
-
+    @Autowired
+    private MusicGroupPurchaseListDao musicGroupPurchaseListDao;
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
 
@@ -206,13 +207,43 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
+    public void musicGroupAction(String musicGroupId) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new Exception("用户信息获取失败");
+        }
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        if(musicGroup == null){
+            throw new Exception("乐团信息不存在");
+        }
+        if(musicGroup.getStatus() != MusicGroupStatusEnum.PREPARE){
+            throw new Exception("乐团状态异常");
+        }
+        //乐器采购清单是否确认
+        Map<String,Object> param = new HashMap<>();
+        param.put("musicGroupId",musicGroupId);
+        int i = musicGroupPurchaseListDao.queryCount(param);
+        if(i <= 0){
+            throw new Exception("采购清单未确认");
+        }
+        //课酬是否确认
+//        courseScheduleTeacherSalaryDao.queryCount();
+        Date date = new Date();
+        //记录操作日志
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(筹备中 -> 进行中)",sysUser.getId(),""));
+        musicGroup.setStatus(MusicGroupStatusEnum.PROGRESS);
+        musicGroup.setUpdateTime(date);
+        musicGroupDao.update(musicGroup);
+    }
+
+    @Override
     public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
         List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
         Set<String> musicGroupIds = musicCardDtos.stream().map(MusicCardDto::getMusicGroupId).collect(Collectors.toSet());
         Map<String,String> paymentStatus = MapUtil.convertMybatisMap(musicGroupStudentFeeDao.queryUserPaymentStatus(userId,StringUtils.join(musicGroupIds,",")));
         // 获取学员在该乐团续费状态
         musicCardDtos.forEach(e -> {
-            e.setPaymentStatus(paymentStatus.get(e.getMusicGroupId()));
+            e.setPaymentStatus(paymentStatus.get(e.getMusicGroupId()) == null?"NON_PAYMENT":paymentStatus.get(e.getMusicGroupId()));
         });
         return musicCardDtos;
     }
@@ -761,9 +792,21 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void musicGroupFound(String musicGroupId) {
+    public void musicGroupFound(String musicGroupId) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new Exception("用户信息获取失败");
+        }
         Date date = new Date();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        if(musicGroup == null){
+            throw new Exception("乐团信息不存在");
+        }
+        if(musicGroup.getStatus() != MusicGroupStatusEnum.PAY){
+            throw new Exception("乐团状态异常");
+        }
+        //记录操作日志
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(缴费中 -> 筹备中)",sysUser.getId(),""));
         musicGroup.setStatus(MusicGroupStatusEnum.PREPARE);
         musicGroup.setUpdateTime(date);
         musicGroupDao.update(musicGroup);

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

@@ -32,7 +32,7 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 		if(salaries != null && salaries.size() > 0){
 			//删除当前教师所有的结算类型的数据
 			TeacherDefaultMusicGroupSalary salary = salaries.get(0);
-			teacherDefaultMusicGroupSalaryDao.delByTeacherId(salary.getUserId(),salary.getSettlementType().getCode());
+			teacherDefaultMusicGroupSalaryDao.delByTeacherId(salary.getUserId());
 			//批量新增
 			teacherDefaultMusicGroupSalaryDao.batchAdd(salaries);
 			/*Date date = new Date();

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

@@ -309,8 +309,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		if(Objects.isNull(musicGroupId)){
 			throw new BizException("请指定乐团");
 		}
-		List<BasicUserDto> teacherByMusicGroup = teacherDao.findTeacherByMusicGroup(musicGroupId);
-		return teacherByMusicGroup;
+		return teacherDao.findTeacherByMusicGroup(musicGroupId);
 	}
 
 	@Override

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -11,6 +11,8 @@ import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.ImGroupMember;
+import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -333,6 +335,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(auditStatus==AuditStatusEnum.REJECT&&StringUtils.isBlank(reason)){
 			throw new BizException("请填写拒绝原因");
 		}
+		if(vipGroup.getAuditStatus() == AuditStatusEnum.PASS){
+			ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(vipGroup.getUserId().toString())};
+			// 创建群组
+			imFeignService.groupCreate(new ImGroupModel(vipGroupId.toString(), imGroupMembers, vipGroup.getName()));
+		}
 		vipGroup.setAuditStatus(auditStatus);
 		vipGroup.setStopReason(reason);
 		vipGroupDao.update(vipGroup);
@@ -709,6 +716,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Override
 	public Map buyVipGroup(VipGroupBuyParamsDto vipGroupBuyParams) throws Exception {
 		SysUser user = sysUserFeignService.queryUserInfo();
+		if(user == null){
+			throw new BizException("用户信息获取失败");
+		}
 
 		VipGroup vipGroup = vipGroupDao.get(vipGroupBuyParams.getVipGroupId());
 
@@ -782,6 +792,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				"https://dyme.utools.club/paymentresult",
 				"vip课购买",
 				vipGroup.getName());
+		//将学员加入vip班级群组
+		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(user.getId().toString())};
+		imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 
 		return payMap;
 
@@ -872,6 +885,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
 		studentApplyRefunds.setUserId(studentId.intValue());
 		studentApplyRefundsDao.insert(studentApplyRefunds);
+		//学员退出班级群
+//		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentId.toString())};
+//		imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 	}
 
 	@Transactional(rollbackFor = Exception.class)

+ 3 - 3
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -202,9 +202,9 @@
 		WHERE sr.user_id_ = #{userId}
 	</select>
     <select id="countCourseByType" resultType="java.lang.Integer">
-		SELECT SUM(cg.total_class_times_) - SUM(cg.current_class_times_) FROM student_registration sr
-		LEFT JOIN class_group cg ON sr.class_group_id_ = cg.id_
-		WHERE sr.user_id_ = #{userId} AND cg.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+		SELECT SUM(cg.total_class_times_) - SUM(cg.current_class_times_) FROM class_group_student_mapper cgsm
+		LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
+		WHERE sr.user_id_ = #{userId} AND cg.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND cg.del_flag_ = 0
 	</select>
 
 	<resultMap type="com.ym.mec.biz.dal.dto.BasicUserDto" id="BasicUserDto">

+ 12 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPurchaseListMapper.xml

@@ -64,12 +64,23 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="MusicGroupPurchaseList" parameterType="map">
-        SELECT * FROM music_group_purchase_list ORDER BY id_
+        SELECT * FROM music_group_purchase_list
+        <where>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId}
+            </if>
+        </where>
+        ORDER BY id_
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM music_group_purchase_list
+        <where>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId}
+            </if>
+        </where>
 	</select>
 </mapper>

+ 21 - 29
mec-biz/src/main/resources/config/mybatis/TeacherDefaultMusicGroupSalaryMapper.xml

@@ -7,11 +7,10 @@
 		<result column="id_" property="id" />
 		<result column="user_id_" property="userId"/>
 		<result column="course_schedule_type_" property="courseScheduleType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-		<result column="settlement_type_" property="settlementType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-		<result column="duration_min_" property="durationMin" />
-		<result column="duration_max_" property="durationMax" />
-		<result column="main_teacher_salary_" property="mainTeacherSalary" />
-		<result column="assistant_teacher_salary_" property="assistantTeacherSalary" />
+		<result column="main_teacher_90min_salary_" property="mainTeacher90MinSalary" />
+		<result column="assistant_teacher_90min_salary_" property="assistantTeacher90MinSalary" />
+		<result column="main_teacher_30min_salary_" property="mainTeacher30MinSalary" />
+		<result column="assistant_teacher_30min_salary_" property="assistantTeacher30MinSalary" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
@@ -32,20 +31,20 @@
 		parameterType="com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary"
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO teacher_default_music_group_salary
-		(user_id_,course_schedule_type_,settlement_type_,duration_min_,duration_max_,main_teacher_salary_,
-		assistant_teacher_salary_,create_time_,update_time_)
+		(user_id_,course_schedule_type_,main_teacher_90min_salary_,assistant_teacher_90min_salary_,main_teacher_30min_salary_,
+		assistant_teacher_30min_salary_,create_time_,update_time_)
 		VALUES(#{userId},#{courseScheduleType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-		#{settlementType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{durationMin},#{durationMax},
-		#{mainTeacherSalary},#{assistantTeacherSalary},now(),now())
+		#{mainTeacher90MinSalary},#{assistantTeacher90MinSalary},
+		#{mainTeacher30MinSalary},#{assistantTeacher30MinSalary},now(),now())
 	</insert>
 	<insert id="batchAdd" parameterType="list">
 		INSERT INTO teacher_default_music_group_salary
-		(user_id_,course_schedule_type_,settlement_type_,duration_min_,duration_max_,main_teacher_salary_,
-		assistant_teacher_salary_,create_time_,update_time_)
+		(user_id_,course_schedule_type_,main_teacher_90min_salary_,assistant_teacher_90min_salary_,main_teacher_30min_salary_,
+		assistant_teacher_30min_salary_,create_time_,update_time_)
 		VALUES
 		<foreach collection="salaries" item="item" separator=",">
-			(#{item.userId},#{item.courseScheduleType.code},#{item.settlementType.code},#{item.durationMin},
-			#{item.durationMax},#{item.mainTeacherSalary},#{item.assistantTeacherSalary},now(),now())
+			(#{item.userId},#{item.courseScheduleType.code},#{item.mainTeacher90MinSalary},
+			#{item.assistantTeacher90MinSalary},#{item.mainTeacher30MinSalary},#{item.assistantTeacher30MinSalary},now(),now())
 		</foreach>
 	</insert>
 
@@ -63,20 +62,17 @@
 			<if test="courseScheduleType != null">
 				course_schedule_type_ = #{courseScheduleType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
-			<if test="settlementType != null">
-				settlement_type_ = #{settlementType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			<if test="main_teacher_90min_salary_ != null">
+				main_teacher_90min_salary_ = #{mainTeacher90MinSalary},
 			</if>
-			<if test="duration_min_ != null">
-				duration_min_ = #{durationMin},
+			<if test="assistant_teacher_90min_salary_ != null">
+				assistant_teacher_90min_salary_ = #{assistantTeacher90MinSalary},
 			</if>
-			<if test="duration_max_ != null">
-				duration_max_ = #{durationMax},
+			<if test="mainTeacher30MinSalary != null">
+				main_teacher_30min_salary_ = #{mainTeacher30MinSalary},
 			</if>
-			<if test="mainTeacherSalary != null">
-				main_teacher_salary_ = #{mainTeacherSalary},
-			</if>
-			<if test="assistantTeacherSalary != null">
-				assistant_teacher_salary_ = #{assistantTeacherSalary},
+			<if test="assistantTeacher30MinSalary != null">
+				assistant_teacher_30min_salary_ = #{assistantTeacher30MinSalary},
 			</if>
 		</set>
 		WHERE id_ = #{id}
@@ -87,7 +83,7 @@
 		DELETE FROM teacher_default_music_group_salary WHERE id_ = #{id}
 	</delete>
     <delete id="delByTeacherId">
-		DELETE FROM teacher_default_music_group_salary WHERE user_id_ = #{userId} AND settlement_type_ = #{settlementType}
+		DELETE FROM teacher_default_music_group_salary WHERE user_id_ = #{userId}
 	</delete>
 
     <!-- 分页查询 -->
@@ -102,9 +98,6 @@
 			<if test="teacherId != null">
 				AND tdmgs.user_id_ = #{teacherId}
 			</if>
-			<if test="settlementType != null">
-				AND tdmgs.settlement_type_ = #{settlementType}
-			</if>
 		</where>
 	</sql>
 
@@ -118,7 +111,6 @@
 	<select id="getTeacherSalaryByUserIdAndType" resultMap="TeacherDefaultMusicGroupSalary">
 		SELECT * FROM teacher_default_music_group_salary
 		WHERE user_id_=#{userId} AND course_schedule_type_ = #{classGroupType}
-		AND settlement_type_ = #{settlementType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	</select>
 
 	<select id="findByTeacher" resultMap="TeacherDefaultMusicGroupSalary">

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -310,6 +310,7 @@
             LEFT JOIN class_group cg ON cg.id_=cgtm.class_group_id_
             LEFT JOIN sys_user su ON cgtm.user_id_=su.id_
             WHERE cg.music_group_id_=#{musicGroupId}
+            GROUP BY su.id_
     </select>
     <resultMap id="MusicGroupTeachersDto" type="com.ym.mec.biz.dal.dto.MusicGroupTeachersDto">
         <result property="teacherName" column="real_name_"/>

+ 0 - 14
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -1,12 +1,9 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.biz.dal.dto.ClassGroup4MixDto;
-import com.ym.mec.biz.dal.dto.ClassGroupAdjustDto;
 import com.ym.mec.biz.dal.dto.HighClassGroupDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
@@ -14,23 +11,14 @@ import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.QueryInfo;
-
-import com.ym.mec.jiari.JiaRiFeignService;
 import io.swagger.annotations.*;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 @RequestMapping("classGroup")
 @Api(tags = "班级服务")
@@ -41,8 +29,6 @@ public class ClassGroupController extends BaseController {
     private ClassGroupService classGroupService;
     @Autowired
     private ClassGroupTeacherMapperService classGroupTeacherMapperService;
-    @Autowired
-    private JiaRiFeignService jiaRiFeignService;
 
     @ApiOperation(value = "新增单技班班级")
     @PostMapping("/add")

+ 22 - 19
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -1,30 +1,24 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
+import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
-
 import org.apache.commons.lang3.StringUtils;
 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.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.common.controller.BaseController;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
 
 @RequestMapping("musicGroup")
 @Api(tags = "乐团服务")
@@ -55,7 +49,7 @@ public class MusicGroupController extends BaseController {
 	}
 
 	@ApiOperation(value = "获取乐团调整--声部信息数据")
-	@PostMapping("/findMusicGroupSubjectInfo")
+	@GetMapping("/findMusicGroupSubjectInfo")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/findMusicGroupSubjectInfo')")
 	public Object findMusicGroupSubjectInfo(String musicGroupId) {
 		if (StringUtils.isEmpty(musicGroupId)) {
@@ -131,15 +125,24 @@ public class MusicGroupController extends BaseController {
 		return succeed(musicGroupService.openPay(musicGroupId, expireDate));
 	}
 
-	@ApiOperation(value = "乐团确认成立")
+	@ApiOperation(value = "确认开团(缴费中 -->  筹备中)")
 	@PostMapping("/found")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/found')")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
-	public Object found(String musicGroupId) {
+	public Object found(String musicGroupId) throws Exception {
 		musicGroupService.musicGroupFound(musicGroupId);
 		return succeed();
 	}
 
+	@ApiOperation(value = "开启乐团(筹备中 -->  进行中)")
+	@PostMapping("/action")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/action')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
+	public Object action(String musicGroupId) throws Exception {
+		musicGroupService.musicGroupAction(musicGroupId);
+		return succeed();
+	}
+
 	@ApiOperation(value = "取消乐团")
 	@PostMapping("/cancelMusicGroup")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/cancelMusicGroup')")