Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 years ago
parent
commit
c854c7de65

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

@@ -7,12 +7,16 @@ import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.SysConfigService;
 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.service.impl.BaseServiceImpl;
+import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang.StringUtils;
@@ -38,6 +42,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     private TeacherDefaultMusicGroupSalaryDao teacherDefaultMusicGroupSalaryDao;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private ImFeignService imFeignService;
+    @Autowired
+    private ClassGroupService classGroupService;
 
     @Override
     public BaseDAO<Long, ClassGroupTeacherMapper> getDAO() {
@@ -49,6 +57,26 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     public int classGroupTeachersInsert(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) {
         //删除班级已经设置的老师
         classGroupTeacherMapperDao.delMusicGroupTeacherMapper(classGroupTeacherMapperList);
+
+        //老师加入群组
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+        String classGroupIds = "";
+        for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+            classGroupIds += classGroupTeacherMapper.getClassGroupId() + ",";
+        }
+        classGroupIds = classGroupIds.substring(0, classGroupIds.length() - 1);
+        List<ClassGroup> classGroups = classGroupService.findClassGroupByIds(classGroupIds);
+
+        for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+            for (ClassGroup classGroup : classGroups) {
+                if (!classGroup.getId().equals(classGroupTeacherMapper.getClassGroupId())) continue;
+                imGroupMemberList.add(new ImGroupMember(classGroupTeacherMapper.getUserId().toString()));
+                ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+                // 加入群组
+                imFeignService.groupJoin(new ImGroupModel(classGroupTeacherMapper.getClassGroupId().toString(), imGroupMembers, classGroup.getName()));
+            }
+        }
+
         return classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
     }
 
@@ -56,7 +84,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     @Override
     public List<ClassGroupTeacherMapper> findClassGroupTeachers(List<ClassGroupTeachersDto> ClassGroupList) {
         Set<Integer> collect = ClassGroupList.stream().map(ClassGroupTeachersDto::getId).collect(Collectors.toSet());
-        return classGroupTeacherMapperDao.findClassGroupTeachers(StringUtils.join(collect,","));
+        return classGroupTeacherMapperDao.findClassGroupTeachers(StringUtils.join(collect, ","));
     }
 
     public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
@@ -118,18 +146,18 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     public void createCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules) {
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
 
-        BigDecimal teacherSalaryTimeUnit=new BigDecimal(sysConfigService.findByParamName(SysConfigService.TEACHER_SALARY_TIME_UNIT).getParanValue());
+        BigDecimal teacherSalaryTimeUnit = new BigDecimal(sysConfigService.findByParamName(SysConfigService.TEACHER_SALARY_TIME_UNIT).getParanValue());
 
         //课程编号列表
         List<Long> courseScheduleIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
         //主教老师列表
         List<Integer> allTeacherIds = courseSchedules.stream().map(courseSchedule -> courseSchedule.getActualTeacherId().intValue()).collect(Collectors.toList());
         //助教老师列表
-        List<Integer> teachingTeacherIds=new ArrayList<>();
+        List<Integer> teachingTeacherIds = new ArrayList<>();
         courseSchedules.forEach(courseSchedule -> teachingTeacherIds.addAll(courseSchedule.getTeachingTeacherIdList()));
         allTeacherIds.addAll(teachingTeacherIds);
         //所有老师列表
-        allTeacherIds=allTeacherIds.stream().distinct().collect(Collectors.toList());
+        allTeacherIds = allTeacherIds.stream().distinct().collect(Collectors.toList());
 
         //所有老师默认乐团课酬
         List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(allTeacherIds);
@@ -137,35 +165,35 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         //获取课程对应教学点补贴
         List<Map<Integer, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(courseScheduleIds);
-        Map<Integer,BigDecimal> courseSubsidyMap= MapUtil.convertMybatisMap(courseSubsidyByCourses);
+        Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertMybatisMap(courseSubsidyByCourses);
 
         //课程对应乐团结算方式集合
         List<Map<String, String>> musicGroupSettlementTypeByCourse = courseScheduleTeacherSalaryDao.findMusicGroupSettlementTypeByCourse(courseScheduleIds);
         Map<String, String> musicGroupSettlementsMap = MapUtil.convertMybatisMap(musicGroupSettlementTypeByCourse);
 
         courseSchedules.forEach(courseSchedule -> {
-            if(Objects.isNull(courseSchedule.getType())){
+            if (Objects.isNull(courseSchedule.getType())) {
                 throw new BizException("存在未指定课程类型的课程");
             }
 
             //获取结算方式
             String settlementType = musicGroupSettlementsMap.get(courseSchedule.getId());
-            if(StringUtils.isBlank(settlementType)){
+            if (StringUtils.isBlank(settlementType)) {
                 throw new BizException("存在未指定结算方式的课程");
             }
 
             //根据课程类型获取对应的默认课酬设置列表
             List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithCourseType = teacherDefaultMusicGroupSalariesGroupByCourseType.get(courseSchedule.getType());
-            if(CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithCourseType)){
+            if (CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithCourseType)) {
                 throw new BizException("存在未指定结算方式的课程类型");
             }
 
             //根据结算方式将对应课程类型下的默认课酬设置列表分组
-            Map<String, List<TeacherDefaultMusicGroupSalary>> teacherDefaultMusicGroupSalaryGroupBySettlementType = teacherDefaultMusicGroupSalariesWithCourseType.stream().collect(Collectors.groupingBy(teacherDefaultMusicGroupSalary->teacherDefaultMusicGroupSalary.getSettlementType().getCode()));
+            Map<String, List<TeacherDefaultMusicGroupSalary>> teacherDefaultMusicGroupSalaryGroupBySettlementType = teacherDefaultMusicGroupSalariesWithCourseType.stream().collect(Collectors.groupingBy(teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary.getSettlementType().getCode()));
 
             //获取对应结算方式下的默认课酬设置列表
             List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithSettlementType = teacherDefaultMusicGroupSalaryGroupBySettlementType.get(settlementType);
-            if(CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithSettlementType)){
+            if (CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithSettlementType)) {
                 throw new BizException("未找到结算方式对应的默认课酬");
             }
 
@@ -176,9 +204,9 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
             int duration = DateUtil.minutesBetween(courseSchedule.getEndClassTime(), courseSchedule.getStartClassTime());
 
             //课程时长与结算单位时长占比
-            BigDecimal classTimeDuty=new BigDecimal(duration).divide(teacherSalaryTimeUnit);
+            BigDecimal classTimeDuty = new BigDecimal(duration).divide(teacherSalaryTimeUnit);
 
-            if(!courseSchedule.isBishopTeacherSalaryNotCreate()){
+            if (!courseSchedule.isBishopTeacherSalaryNotCreate()) {
                 //根据课程获取主教的默认课酬设置列表
                 List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithTeacherId = teacherDefaultMusicGroupSalariesGroupByTeacherId.get(courseSchedule.getActualTeacherId());
                 courseScheduleTeacherSalaryList.add(countMusicGroupTeacherSalary(
@@ -195,10 +223,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
             //计算助教课程薪酬
             //助教编号列表
             List<Integer> teachingTeacherIdList = courseSchedule.getTeachingTeacherIdList();
-            if(CollectionUtils.isEmpty(teachingTeacherIdList)){
+            if (CollectionUtils.isEmpty(teachingTeacherIdList)) {
                 return;
             }
-            teachingTeacherIdList.forEach(teacherId->{
+            teachingTeacherIdList.forEach(teacherId -> {
                 List<TeacherDefaultMusicGroupSalary> teachingTeacherDefaultMusicGroupSalariesWithTeacherId = teacherDefaultMusicGroupSalariesGroupByTeacherId.get(teacherId);
                 courseScheduleTeacherSalaryList.add(countMusicGroupTeacherSalary(
                         courseSchedule,
@@ -215,9 +243,6 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     }
 
     /**
-     * @describe 计算教师课酬
-     * @author Joburgess
-     * @date 2019/10/24
      * @param courseSchedule:
      * @param teachType:
      * @param settlementType:
@@ -227,6 +252,9 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
      * @param teacherId:
      * @param teacherDefaultMusicGroupSalariesWithTeacherId:
      * @return com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary
+     * @describe 计算教师课酬
+     * @author Joburgess
+     * @date 2019/10/24
      */
     private CourseScheduleTeacherSalary countMusicGroupTeacherSalary(CourseSchedule courseSchedule,
                                                                      TeachTypeEnum teachType,
@@ -235,25 +263,25 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                                                                      BigDecimal subsidy,
                                                                      int duration,
                                                                      Integer teacherId,
-                                                                     List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithTeacherId){
-        if(CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithTeacherId)){
+                                                                     List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithTeacherId) {
+        if (CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithTeacherId)) {
             throw new BizException("存在未设置默认课酬的教师");
         }
         //教师课酬
-        BigDecimal teacherSalary=new BigDecimal(0);
+        BigDecimal teacherSalary = new BigDecimal(0);
 
         //如果结算方式是教师默认课酬
-        if(settlementType.equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)){
+        if (settlementType.equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
             TeacherDefaultMusicGroupSalary bishopTeacherDefaultMusicGroupSalary = teacherDefaultMusicGroupSalariesWithTeacherId.get(0);
-            if(Objects.isNull(bishopTeacherDefaultMusicGroupSalary)){
+            if (Objects.isNull(bishopTeacherDefaultMusicGroupSalary)) {
                 throw new BizException("存在未设置默认课酬的教师");
             }
-            BigDecimal bishopTeacherDefaultSalary = teachType==TeachTypeEnum.BISHOP?bishopTeacherDefaultMusicGroupSalary.getMainTeacherSalary():bishopTeacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
-            teacherSalary=bishopTeacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
-        }else if(settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)){
+            BigDecimal bishopTeacherDefaultSalary = teachType == TeachTypeEnum.BISHOP ? bishopTeacherDefaultMusicGroupSalary.getMainTeacherSalary() : bishopTeacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+            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();
+                if (duration >= teacherDefaultMusicGroupSalary.getDurationMin() && duration <= teacherDefaultMusicGroupSalary.getDurationMin()) {
+                    teacherSalary = teachType == TeachTypeEnum.BISHOP ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
                     break;
                 }
             }

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

@@ -256,7 +256,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         //增加缴费学生数
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
-        musicOneSubjectClassPlan.setApplyStudentNum(musicOneSubjectClassPlan.getApplyStudentNum()+1);
+        musicOneSubjectClassPlan.setPaidStudentNum(musicOneSubjectClassPlan.getPaidStudentNum()+1);
 
         return studentPaymentOrder;
     }

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -628,8 +628,8 @@
 
     <!-- 增加实际学生人数 -->
     <update id="addStudentNum" parameterType="com.ym.mec.biz.dal.entity.ClassGroup">
-        UPDATE class_group SET student_num_ = student_num_+1,update_time_=#{updateTime} WHERE id_ = #{id} AND
-        student_num_=#{studentNum}
+        UPDATE class_group SET student_num_ = student_num_+1,update_time_=#{classGroup.updateTime} WHERE id_ = #{classGroup.id} AND
+        student_num_=#{classGroup.studentNum}
     </update>
 
     <update id="batchIncreaseClassTimes" parameterType="java.util.List">