Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
58fc390b16
18 changed files with 453 additions and 167 deletions
  1. 6 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleEvaluateDao.java
  3. 12 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultPracticeGroupSalaryDao.java
  4. 90 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleEvaluate.java
  5. 15 13
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherDefaultPracticeGroupSalary.java
  6. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleEvaluateService.java
  7. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherDefaultPracticeGroupSalaryService.java
  8. 2 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  9. 45 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleEvaluateServiceImpl.java
  10. 35 120
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  11. 61 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultPracticeGroupSalaryServiceImpl.java
  12. 3 2
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  13. 40 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleEvaluateMapper.xml
  14. 7 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  15. 17 1
      mec-biz/src/main/resources/config/mybatis/TeacherDefaultPracticeGroupSalaryMapper.xml
  16. 3 1
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  17. 30 3
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ClassGroupController.java
  18. 42 14
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherDefaultPracticeGroupSalaryController.java

+ 6 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -822,12 +822,6 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                   @Param("groupType") String groupType,
                                   @Param("schoolId") Integer schoolId);
 
-    /**
-     * 获取学员的课程列表
-     * @param params
-     * @return
-     */
-    PageInfo<CourseListDto> queryStudentCourse(Map<String, Object> params);
 
     int countVipGroupCourses(@Param("vipGroupId") Integer vipGroupId);
 
@@ -1190,4 +1184,10 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                               @Param("groupType") GroupType groupType,
                               @Param("isLock") Integer isLock);
 
+    /**
+     * 获取当前课程是第几课时
+     * @param courseScheduleId
+     * @return
+     */
+    int countCurrentCourseTime(Long courseScheduleId);
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleEvaluateDao.java

@@ -0,0 +1,14 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
+import com.ym.mec.biz.dal.entity.TeacherCourseStatistics;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+public interface CourseScheduleEvaluateDao extends BaseDAO<Long, CourseScheduleEvaluate> {
+
+}

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultPracticeGroupSalaryDao.java

@@ -1,9 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.util.List;
+
 import com.ym.mec.biz.dal.entity.TeacherDefaultPracticeGroupSalary;
 import com.ym.mec.common.dal.BaseDAO;
 
 public interface TeacherDefaultPracticeGroupSalaryDao extends BaseDAO<Long, TeacherDefaultPracticeGroupSalary> {
 
-	
+	/**
+	 * 查询指定老师的默认课酬
+	 * @param userId
+	 * @return
+	 */
+	List<TeacherDefaultPracticeGroupSalary> queryByUserId(Integer userId);
+
+    int deleteByUserId(Integer userId);
+    
+    int batchInsert(List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList);
 }

+ 90 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleEvaluate.java

@@ -0,0 +1,90 @@
+package com.ym.mec.biz.dal.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class CourseScheduleEvaluate {
+    private Long id;
+
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "班级id")
+    private Integer classGroupId;
+
+    private Long courseScheduleId;
+
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "评价选项,英文逗号分隔")
+    private String item;
+
+    @ApiModelProperty(value = "报告详情")
+    private String comment;
+
+    private Date createTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Integer getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getItem() {
+        return item;
+    }
+
+    public void setItem(String item) {
+        this.item = item;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 15 - 13
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherDefaultPracticeGroupSalary.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
+import java.math.BigDecimal;
+
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -17,10 +19,10 @@ public class TeacherDefaultPracticeGroupSalary {
 	private Integer minutes;
 	
 	/**  */
-	private long mainTeacherSalary;
+	private BigDecimal mainTeacherSalary;
 	
 	/**  */
-	private long assistantTeacherSalary;
+	private BigDecimal assistantTeacherSalary;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -52,22 +54,22 @@ public class TeacherDefaultPracticeGroupSalary {
 		return this.minutes;
 	}
 			
-	public void setMainTeacherSalary(long mainTeacherSalary){
+	public BigDecimal getMainTeacherSalary() {
+		return mainTeacherSalary;
+	}
+
+	public void setMainTeacherSalary(BigDecimal mainTeacherSalary) {
 		this.mainTeacherSalary = mainTeacherSalary;
 	}
-	
-	public long getMainTeacherSalary(){
-		return this.mainTeacherSalary;
+
+	public BigDecimal getAssistantTeacherSalary() {
+		return assistantTeacherSalary;
 	}
-			
-	public void setAssistantTeacherSalary(long assistantTeacherSalary){
+
+	public void setAssistantTeacherSalary(BigDecimal assistantTeacherSalary) {
 		this.assistantTeacherSalary = assistantTeacherSalary;
 	}
-	
-	public long getAssistantTeacherSalary(){
-		return this.assistantTeacherSalary;
-	}
-			
+
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 	}

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleEvaluateService.java

@@ -0,0 +1,14 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
+import com.ym.mec.biz.dal.entity.TeacherCourseStatistics;
+import com.ym.mec.biz.dal.page.TeacherCourseStatisticsQueryInfo;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.service.BaseService;
+
+
+public interface CourseScheduleEvaluateService extends BaseService<Long, CourseScheduleEvaluate> {
+
+    boolean addStudyReport(CourseScheduleEvaluate courseScheduleEvaluate);
+
+}

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherDefaultPracticeGroupSalaryService.java

@@ -1,8 +1,25 @@
 package com.ym.mec.biz.service;
 
+import java.util.Date;
+import java.util.List;
+
 import com.ym.mec.biz.dal.entity.TeacherDefaultPracticeGroupSalary;
 import com.ym.mec.common.service.BaseService;
 
 public interface TeacherDefaultPracticeGroupSalaryService extends BaseService<Long, TeacherDefaultPracticeGroupSalary> {
 
+	/**
+	 * 查询指定老师的默认课酬
+	 * @param userId
+	 * @return
+	 */
+	List<TeacherDefaultPracticeGroupSalary> queryByUserId(Integer userId);
+
+	/**
+	 * 批量设置课酬
+	 * @param teacherDefaultPracticeGroupSalaryList
+	 * @param startDate
+	 * @return
+	 */
+	boolean update(List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList, Date startDate);
 }

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

@@ -674,8 +674,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     public List<ImGroupModel> queryUserGroups(Integer userId, String search) {
-        //获取乐团群,vip群(进行中)
-        //获取学员乐团群
         List<ImGroupModel> imGroupModels = classGroupDao.queryUserMusicGroups(userId, search);
         imGroupModels.addAll(classGroupDao.queryUserVipGroups(userId, search));
         if (imGroupModels != null && imGroupModels.size() > 0) {
@@ -1011,8 +1009,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         TeacherClassHeadInfo teacherClassHeadInfo = new TeacherClassHeadInfo();
         teacherClassHeadInfo.setStudentNum(classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId()));
-        teacherClassHeadInfo.setCurrentClassTimes(classGroup.getCurrentClassTimes());
-        teacherClassHeadInfo.setTotalClassTimes(classGroup.getTotalClassTimes());
+        teacherClassHeadInfo.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(classGroup.getId(),new Date()));
+        teacherClassHeadInfo.setTotalClassTimes(courseScheduleDao.countClassGroupCourses(classGroup.getId()));
         ClassGroupTeacherMapper bishopTeacher = classGroupTeacherMapperDao.findByClassGroupAndRole(classGroupId, TeachTypeEnum.BISHOP);
         if (Objects.nonNull(bishopTeacher)) {
             teacherClassHeadInfo.setBishopTeacherId(bishopTeacher.getId());

+ 45 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleEvaluateServiceImpl.java

@@ -0,0 +1,45 @@
+package com.ym.mec.biz.service.impl;
+
+
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
+import com.ym.mec.biz.service.CourseScheduleEvaluateService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+@Service
+public class CourseScheduleEvaluateServiceImpl extends BaseServiceImpl<Long, CourseScheduleEvaluate> implements CourseScheduleEvaluateService {
+
+    @Autowired
+    private CourseScheduleEvaluateDao courseScheduleEvaluateDao;
+    @Autowired
+    private ClassGroupDao classGroupDao;
+
+    @Override
+    public BaseDAO<Long, CourseScheduleEvaluate> getDAO() {
+        return courseScheduleEvaluateDao;
+    }
+
+
+    @Override
+    public boolean addStudyReport(CourseScheduleEvaluate courseScheduleEvaluate) {
+        ClassGroup classGroup = classGroupDao.get(courseScheduleEvaluate.getClassGroupId());
+        if(classGroup==null){
+           throw new BizException("课程不存在!");
+        }
+        courseScheduleEvaluate.setMusicGroupId(classGroup.getMusicGroupId());
+        courseScheduleEvaluate.setCreateTime(new Date());
+        long num = courseScheduleEvaluateDao.insert(courseScheduleEvaluate);
+        if(num <= 0){
+            throw new BizException("报告添加失败,请重试");
+        }
+        return true;
+    }
+}

+ 35 - 120
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1,125 +1,20 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.commons.collections.ListUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
 import com.alibaba.fastjson.JSON;
 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.auth.api.entity.SysUserRole;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
-import com.ym.mec.biz.dal.dao.ClassGroupTeacherSalaryDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleComplaintsDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleModifyLogDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
-import com.ym.mec.biz.dal.dao.GroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.PracticeGroupDao;
-import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dao.TeacherDefaultMusicGroupSalaryDao;
-import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
-import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
-import com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto;
-import com.ym.mec.biz.dal.dto.CoursePostponeDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleEndDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleStudentDto;
-import com.ym.mec.biz.dal.dto.CourseTimeDto;
-import com.ym.mec.biz.dal.dto.CreateCourseScheduleDto;
-import com.ym.mec.biz.dal.dto.IntegerAndIntegerListDto;
-import com.ym.mec.biz.dal.dto.Mapper;
-import com.ym.mec.biz.dal.dto.StudentNameAndPhoneDto;
-import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
-import com.ym.mec.biz.dal.dto.TeacherBasicDto;
-import com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto;
-import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
-import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
-import com.ym.mec.biz.dal.dto.VipGroupCourseAdjustInfoDto;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
-import com.ym.mec.biz.dal.entity.CourseGenerateDto;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
+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.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
-import com.ym.mec.biz.dal.entity.CourseScheduleModifyLog;
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
-import com.ym.mec.biz.dal.entity.Group;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.PracticeGroup;
-import com.ym.mec.biz.dal.entity.StudentAttendance;
-import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
-import com.ym.mec.biz.dal.entity.SysConfig;
-import com.ym.mec.biz.dal.entity.Teacher;
-import com.ym.mec.biz.dal.entity.TeacherAttendance;
-import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
-import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
-import com.ym.mec.biz.dal.entity.VipGroup;
-import com.ym.mec.biz.dal.enums.AuditStatusEnum;
-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.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.ParamEnum;
-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.enums.*;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
-import com.ym.mec.biz.service.ClassGroupService;
-import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
-import com.ym.mec.biz.service.CourseHomeworkService;
-import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
-import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
-import com.ym.mec.biz.service.VipGroupService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -130,8 +25,23 @@ import com.ym.mec.util.collection.ListUtil;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
-
 import feign.codec.DecodeException;
+import org.apache.commons.collections.ListUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
 public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSchedule> implements CourseScheduleService {
@@ -152,6 +62,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     private StudentAttendanceDao studentAttendanceDao;
     @Autowired
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
+    
+    @Autowired
+    private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
+    
     @Autowired
     private SysMessageService sysMessageService;
     @Autowired
@@ -1959,7 +1873,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 							}
 						}
 					} else if (newCourseSchedule.getGroupType() == GroupType.PRACTICE) {
-						ts.setExpectSalary(new BigDecimal(30));
+						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
+						if (teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0) {
+							ts.setExpectSalary(teacherDefaultPracticeGroupSalaryList.get(0).getMainTeacherSalary());
+						} else {
+							ts.setExpectSalary(new BigDecimal(30));
+						}
 					}
 					insertCourseScheduleTeacherSalaryList.add(ts);
 				}
@@ -2626,14 +2545,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             } else {
                 dataList = courseScheduleDao.queryTeacherHistoryClassCourseSchedule(params);
             }
-            List<Integer> courseIds = dataList.stream().map(teacherClassCourseSchudeleDto -> teacherClassCourseSchudeleDto.getCourseScheduleId().intValue()).collect(Collectors.toList());
-            List<Map<Integer, Integer>> currentClassTimesByCourses = studentAttendanceDao.getCurrentClassTimesByCourses(courseIds);
-            if (!CollectionUtils.isEmpty(currentClassTimesByCourses)) {
-                Map<Integer, Integer> currentClassTimesWithCourse = MapUtil.convertIntegerMap(currentClassTimesByCourses);
-                dataList.forEach(e -> {
-                    e.setCurrentClassTimes(currentClassTimesWithCourse.get(e.getCourseScheduleId()));
-                });
-            }
+            dataList.forEach(e -> {
+                e.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(e.getClassGroupId().intValue(),new Date()));
+                e.setTotalClassTimes(courseScheduleDao.countCurrentCourseTime(e.getCourseScheduleId()));
+            });
         }
         if (count == 0) {
             dataList = new ArrayList<>();

+ 61 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultPracticeGroupSalaryServiceImpl.java

@@ -1,9 +1,19 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
 import com.ym.mec.biz.dal.dao.TeacherDefaultPracticeGroupSalaryDao;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.biz.dal.entity.TeacherDefaultPracticeGroupSalary;
 import com.ym.mec.biz.service.TeacherDefaultPracticeGroupSalaryService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -15,9 +25,60 @@ public class TeacherDefaultPracticeGroupSalaryServiceImpl extends BaseServiceImp
 	@Autowired
 	private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
 
+	@Autowired
+	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
+
 	@Override
 	public BaseDAO<Long, TeacherDefaultPracticeGroupSalary> getDAO() {
 		return teacherDefaultPracticeGroupSalaryDao;
 	}
+
+	@Override
+	public List<TeacherDefaultPracticeGroupSalary> queryByUserId(Integer userId) {
+		return teacherDefaultPracticeGroupSalaryDao.queryByUserId(userId);
+	}
+
+	@Override
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean update(List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList, Date startDate) {
+		
+		if(teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0){
+			Integer userId = teacherDefaultPracticeGroupSalaryList.get(0).getUserId();
+			BigDecimal salary = teacherDefaultPracticeGroupSalaryList.get(0).getMainTeacherSalary();
+			
+			//先清空
+			teacherDefaultPracticeGroupSalaryDao.deleteByUserId(userId);
+			//再批量新增
+			teacherDefaultPracticeGroupSalaryDao.batchInsert(teacherDefaultPracticeGroupSalaryList);
+			
+			if(startDate != null){
+				//更新课酬
+
+				String typeList = CourseScheduleType.PRACTICE.getCode();
+				// 查询所有需要修改的课酬
+				List<CourseScheduleTeacherSalary> updateTeacherSalaryList = courseScheduleTeacherSalaryDao.queryUserNoSettlementListByTypeAndStartClassDate(
+						userId, typeList, startDate);
+				
+				if (updateTeacherSalaryList != null && updateTeacherSalaryList.size() > 0) {
+					
+					Date date = new Date();
+
+					List<CourseScheduleTeacherSalary> list = new ArrayList<CourseScheduleTeacherSalary>();
+
+					for (CourseScheduleTeacherSalary ts : updateTeacherSalaryList) {
+						ts.setExpectSalary(salary);
+						ts.setUpdateTime(date);
+					}
+					if (list.size() > 0) {
+						courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalarys(list);
+					}
+				}
+			}
+			
+			return true;
+		}
+		
+		return false;
+	}
 	
 }

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

@@ -267,9 +267,10 @@
         SELECT cg.id_,cg.name_,cg.student_num_,cg.img_,mg.name_ group_name_
         FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-        LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
+        LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_ AND cg.group_type_ = 'MUSIC'
+        LEFT JOIN vip_group vg ON vg.id_ = cg.music_group_id_ AND cg.group_type_ = 'VIP'
         <where>
-            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND mg.status_ = 'PROGRESS'
+            cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND (mg.status_ = 'PROGRESS' OR vg.group_status_ = 2)
             <if test="userId != null">
                 AND cgsm.user_id_ = #{userId}
             </if>

+ 40 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleEvaluateMapper.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace=" com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao">
+  <resultMap id="CourseScheduleEvaluate" type="com.ym.mec.biz.dal.entity.CourseScheduleEvaluate">
+    <id column="id_" jdbcType="BIGINT" property="id" />
+    <result column="music_group_id_" jdbcType="VARCHAR" property="musicGroupId" />
+    <result column="class_group_id_" jdbcType="INTEGER" property="classGroupId" />
+    <result column="course_schedule_id_" jdbcType="BIGINT" property="courseScheduleId" />
+    <result column="teacher_id_" jdbcType="INTEGER" property="teacherId" />
+    <result column="item_" jdbcType="VARCHAR" property="item" />
+    <result column="comment_" jdbcType="LONGVARCHAR" property="comment" />
+    <result column="create_time_" jdbcType="TIMESTAMP" property="createTime" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id_, music_group_id_, class_group_id_, course_schedule_id_, teacher_id_, item_, comment_, 
+    create_time_
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="CourseScheduleEvaluate">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from course_schedule_evaluate
+    where id_ = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from course_schedule_evaluate
+    where id_ = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleEvaluate" useGeneratedKeys="true">
+    <!--@mbg.generated-->
+    insert into course_schedule_evaluate (music_group_id_, class_group_id_, course_schedule_id_, 
+      teacher_id_, item_, comment_, 
+      create_time_)
+    values (#{musicGroupId,jdbcType=VARCHAR}, #{classGroupId,jdbcType=INTEGER}, #{courseScheduleId,jdbcType=BIGINT}, 
+      #{teacherId,jdbcType=INTEGER}, #{item,jdbcType=VARCHAR}, #{comment,jdbcType=LONGVARCHAR}, 
+      #{createTime,jdbcType=TIMESTAMP})
+  </insert>
+</mapper>

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

@@ -1766,10 +1766,10 @@
         LIMIT 1
     </select>
     <select id="countCurrentTimes" resultType="int">
-        SELECT COUNT(*) FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ',end_class_time_)&lt;#{currentCourseDate}
+        SELECT COUNT(*) FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ',end_class_time_)&lt;#{currentCourseDate} AND del_flag_ = 0
     </select>
     <select id="countCourseScheduleByMusicGroupId" resultType="java.lang.Integer">
-        SELECT count(cs.id_) FROM course_schedule cs WHERE cs.music_group_id_ = #{musicGroupId} and cs.group_type_ = 'MUSIC' and cs.status_ != 'OVER' LIMIT 1
+        SELECT count(cs.id_) FROM course_schedule cs WHERE cs.music_group_id_ = #{musicGroupId} and cs.group_type_ = 'MUSIC' and cs.status_ != 'OVER' AND del_flag_ = 0 LIMIT 1
     </select>
     <select id="findClassGroupCourseSchedules" resultMap="CourseSchedule">
         SELECT
@@ -2369,4 +2369,9 @@
             #{id}
         </foreach>
     </select>
+    <select id="countCurrentCourseTime" resultType="java.lang.Integer">
+        SELECT COUNT(1) + 1 FROM course_schedule cs,
+        (SELECT CONCAT(class_date_," ",start_class_time_) class_date_,class_group_id_ FROM course_schedule WHERE id_ = #{courseScheduleId} AND del_flag_ = 0) c
+        WHERE cs.class_group_id_ = c.class_group_id_ AND CONCAT(cs.class_date_," ",cs.start_class_time_) &lt;= c.class_date_ AND cs.del_flag_ = 0
+    </select>
 </mapper>

+ 17 - 1
mec-biz/src/main/resources/config/mybatis/TeacherDefaultPracticeGroupSalaryMapper.xml

@@ -35,6 +35,14 @@
 		(id_,user_id_,minutes_,main_teacher_salary_,assistant_teacher_salary_,create_time_,update_time_)
 		VALUES(#{id},#{userId},#{minutes},#{mainTeacherSalary},#{assistantTeacherSalary},#{createTime},#{updateTime})
 	</insert>
+	
+    <insert id="batchInsert">
+    	INSERT INTO teacher_default_practice_group_salary
+		(id_,user_id_,minutes_,main_teacher_salary_,assistant_teacher_salary_,create_time_,update_time_)
+		<foreach collection="list" item="item" separator=",">
+			VALUES(#{item.id},#{item.userId},#{item.minutes},#{item.mainTeacherSalary},#{item.assistantTeacherSalary},now(),now())
+		</foreach>
+    </insert>
 
 	<!-- 根据主键查询一条记录 -->
 	<update id="update"
@@ -69,9 +77,13 @@
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete">
 		DELETE FROM
-		teacher_default_practice_group_salary WHERE id_ = #{id}
+		teacher_default_practice_group_salary WHERE user_id_ = #{userId}
 	</delete>
 
+	<delete id="deleteByUserId">
+		DELETE FROM teacher_default_practice_group_salary WHERE id_ = #{id}
+	</delete>
+	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="TeacherDefaultPracticeGroupSalary"
 		parameterType="map">
@@ -84,4 +96,8 @@
 		SELECT COUNT(*) FROM
 		teacher_default_practice_group_salary
 	</select>
+
+	<select id="queryByTeacherId" resultMap="TeacherDefaultPracticeGroupSalary">
+		SELECT * FROM teacher_default_practice_group_salary where user_id_ = #{userId} ORDER BY id_
+	</select>
 </mapper>

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

@@ -798,7 +798,9 @@
         GROUP BY su.id_
     </select>
     <select id="queryTeacherImModel" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.ImUserModel">
-        SELECT su.id_,su.avatar_,su.username_ FROM sys_user su
+        SELECT su.id_,su.avatar_,
+        CASE WHEN su.username_ IS NULL THEN su.real_name_ ELSE su.username_ END username_
+        FROM sys_user su
         WHERE su.id_ IN
         <foreach collection="teacherIds" item="userId" open="(" close=")" separator=",">
             #{userId}

+ 30 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ClassGroupController.java

@@ -1,15 +1,21 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.CourseScheduleEvaluateService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 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.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
 
 /**
  * @Author Joburgess
@@ -22,6 +28,10 @@ public class ClassGroupController extends BaseController {
 
     @Autowired
     private ClassGroupService classGroupService;
+    @Autowired
+    private CourseScheduleEvaluateService courseScheduleEvaluateService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "教师关联班级获取")
     @GetMapping("/findTeacherClassGroups")
@@ -41,4 +51,21 @@ public class ClassGroupController extends BaseController {
         return succeed(classGroupService.findTeacherClassStudents(queryInfo));
     }
 
+    @ApiOperation(value = "提交陪练报告")
+    @PostMapping(value = "/addStudyReport")
+    public HttpResponseResult addStudyReport(@RequestBody CourseScheduleEvaluate courseScheduleEvaluate) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(Objects.isNull(sysUser)){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        if(courseScheduleEvaluate.getClassGroupId()==null || courseScheduleEvaluate.getClassGroupId()<0){
+            return failed(HttpStatus.BAD_REQUEST,"班级id必须大于0");
+        }
+        if(courseScheduleEvaluate.getItem()==null || courseScheduleEvaluate.getItem().isEmpty()){
+            return failed(HttpStatus.BAD_REQUEST,"课程评价选项不能为空");
+        }
+        courseScheduleEvaluate.setTeacherId(sysUser.getId());
+        return succeed(courseScheduleEvaluateService.addStudyReport(courseScheduleEvaluate));
+    }
+
 }

+ 42 - 14
mec-web/src/main/java/com/ym/mec/web/controller/TeacherDefaultPracticeGroupSalaryController.java

@@ -3,13 +3,18 @@ package com.ym.mec.web.controller;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
+import java.util.Date;
+import java.util.List;
+
 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 com.ym.mec.biz.dal.entity.TeacherDefaultPracticeGroupSalary;
 import com.ym.mec.biz.service.TeacherDefaultPracticeGroupSalaryService;
 import com.ym.mec.common.controller.BaseController;
 
@@ -18,21 +23,44 @@ import com.ym.mec.common.controller.BaseController;
 @RestController
 public class TeacherDefaultPracticeGroupSalaryController extends BaseController {
 
-    @Autowired
-    private TeacherDefaultPracticeGroupSalaryService teacherDefaultPracticeGroupSalaryService;
+	@Autowired
+	private TeacherDefaultPracticeGroupSalaryService teacherDefaultPracticeGroupSalaryService;
+
+	@ApiOperation(value = "获取教师的陪练课课酬列表")
+	@GetMapping("/queryPageByTeacherId")
+	@PreAuthorize("@pcs.hasPermissions('teacherDefaultPracticeGroupSalary/queryByTeacherId')")
+	public Object queryByTeacherId(Integer teacherId) {
+		return succeed(teacherDefaultPracticeGroupSalaryService.queryByUserId(teacherId));
+	}
+
+	@ApiOperation(value = "批量新增、修改教师陪练课课酬")
+	@PostMapping("/update")
+	@PreAuthorize("@pcs.hasPermissions('teacherDefaultPracticeGroupSalary/update')")
+	public Object update(@RequestBody TeacherDefaultPracticeGroupSalaryTemp teacherDefaultPracticeGroupSalaryTemp) {
+		return teacherDefaultPracticeGroupSalaryService.update(teacherDefaultPracticeGroupSalaryTemp.getTeacherDefaultPracticeGroupSalaries(),
+				teacherDefaultPracticeGroupSalaryTemp.getStartDate()) ? succeed() : failed();
+	}
+
+	class TeacherDefaultPracticeGroupSalaryTemp {
+
+		private List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries;
+
+		private Date startDate;
+
+		public List<TeacherDefaultPracticeGroupSalary> getTeacherDefaultPracticeGroupSalaries() {
+			return teacherDefaultPracticeGroupSalaries;
+		}
 
-    @ApiOperation(value = "获取教师的陪练课课酬列表")
-    @GetMapping("/queryPageByTeacherId")
-    @PreAuthorize("@pcs.hasPermissions('teacherDefaultPracticeGroupSalary/queryByTeacherId')")
-    public Object queryByTeacherId(Integer teacherId){
-        return succeed();
-    }
+		public void setTeacherDefaultPracticeGroupSalaries(List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries) {
+			this.teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaries;
+		}
 
-    @ApiOperation(value = "批量新增、修改教师vip课酬")
-    @PostMapping("/update")
-    @PreAuthorize("@pcs.hasPermissions('teacherDefaultPracticeGroupSalary/update')")
-    public Object setVipGroupSalary(){
-        return succeed();
-    }
+		public Date getStartDate() {
+			return startDate;
+		}
 
+		public void setStartDate(Date startDate) {
+			this.startDate = startDate;
+		}
+	}
 }