浏览代码

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父节点
当前提交
66f214a955
共有 17 个文件被更改,包括 215 次插入64 次删除
  1. 19 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  2. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  3. 32 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupGiveCourseSortDto.java
  4. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleStudentPaymentService.java
  5. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  6. 25 23
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  7. 39 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java
  8. 5 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  9. 14 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  10. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  11. 19 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  12. 1 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  13. 3 2
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  14. 8 0
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  15. 2 3
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  16. 23 16
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  17. 6 0
      mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

+ 19 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -1,11 +1,11 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.StudentAttendanceStatisticsResponse;
+import com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
-
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -176,4 +176,22 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      */
     int checkStudentHaveCourse(@Param("courseScheduleId") Long courseScheduleId,
                                @Param("userId") Integer userId);
+
+    /**
+     * @describe 查询指定课程的学生缴费记录
+     * @author Joburgess
+     * @date 2020/1/10
+     * @param courseScheduleId: 课程编号
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment>
+     */
+    List<CourseScheduleStudentPayment> findByCourseSchedule(@Param("courseScheduleId") Long courseScheduleId);
+
+    /**
+     * @describe 获取小课需要调整的缴费记录
+     * @author Joburgess
+     * @date 2020/1/10
+     * @param groupId:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto>
+     */
+    List<VipGroupGiveCourseSortDto> findVipGroupSortCourseByGroup(@Param("groupId") String groupId);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -204,4 +204,11 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
     int countSporadicPage(Map<String, Object> params);
 
     List<OrderStatisDto> getLuckStatis();
+    
+    /**
+     * 统计收入信息
+     * @param organId
+     * @return
+     */
+    Map<String, Object> queryIncomeStatistics(String organId);
 }

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupGiveCourseSortDto.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/1/10
+ */
+public class VipGroupGiveCourseSortDto extends CourseScheduleStudentPayment {
+
+    private Date courseStartTime;
+
+    private Date courseEndTime;
+
+    public Date getCourseStartTime() {
+        return courseStartTime;
+    }
+
+    public void setCourseStartTime(Date courseStartTime) {
+        this.courseStartTime = courseStartTime;
+    }
+
+    public Date getCourseEndTime() {
+        return courseEndTime;
+    }
+
+    public void setCourseEndTime(Date courseEndTime) {
+        this.courseEndTime = courseEndTime;
+    }
+}

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleStudentPaymentService.java

@@ -45,4 +45,13 @@ public interface CourseScheduleStudentPaymentService extends BaseService<Long, C
 	 */
 	int batchInsert(List<CourseScheduleStudentPayment> courseScheduleStudentPayments);
 
+	/**
+	 * @describe 更新VIP课赠送课顺序
+	 * @author Joburgess
+	 * @date 2020/1/10
+	 * @param vipGroupId: 小课编号
+	 * @return void
+	 */
+	void updateVipGiveCourse(Long vipGroupId);
+
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -85,6 +85,8 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      * vip课程可更新学生签到状态时间限制,课程结束后{}分钟
      */
     String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP = "enable_student_attendance_time_range_vip";
+
+    String ENABLE_STUDENT_ATTENDANCE_BEFOR_COURSE_START_TIME_RANGE_VIP = "enable_student_attendance_befor_course_start_time_range_vip";
     
     /**
      * 十分钟内最大可发送的短信次数

+ 25 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1320,7 +1320,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             }
             int num = studentAttendanceDao.countStudentAttendenceNum(oldCourseSchedule.getId().intValue());
             if (num > 0) {
-                throw new BizException("{}[{}]{}-{}课程已点名",
+                throw new BizException("{}[{}] {}-{}课程已点名",
                         oldCourseSchedule.getName(),
                         oldCourseSchedule.getId(),
                         DateUtil.dateToString(oldCourseSchedule.getStartClassTime(),
@@ -1543,7 +1543,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if (!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)) {
             classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse, oldCourseSchedules);
         }
-        courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(needCreateStudentPaymentCourses);
+        if(!CollectionUtils.isEmpty(needCreateStudentPaymentCourses)){
+            courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(needCreateStudentPaymentCourses);
+        }
 
         try {
             //推送课时调整
@@ -1860,27 +1862,27 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             classGroupService.batchIncreaseClassTimes(classGroupIds);
 
             //查询班级信息
-            List<ClassGroup> classGroupList = classGroupService.findClassGroupByIds(classGroupIds.stream().map(e -> e.toString()).collect(Collectors.joining(",")));
-
-            List<String> vipGroupIdList = new ArrayList<String>();
-            for (ClassGroup classGroup : classGroupList) {
-                if (classGroup.getGroupType() == GroupType.VIP && classGroup.getCurrentClassTimes() == classGroup.getTotalClassTimes().intValue()) {
-                    if (!vipGroupIdList.contains(classGroup.getMusicGroupId())) {
-                        vipGroupIdList.add(classGroup.getMusicGroupId());
-                    }
-                }
-            }
-            if (vipGroupIdList.size() > 0) {
-                List<VipGroup> vipGroupList = vipGroupDao.queryByIds(vipGroupIdList.stream().collect(Collectors.joining(",")));
-                for (VipGroup vipGroup : vipGroupList) {
-                    if (!vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE)
-                            && !vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)) {
-                        vipGroup.setStatus(VipGroupStatusEnum.FINISHED);
-                    }
-                    vipGroup.setUpdateTime(date);
-                }
-                vipGroupDao.batchUpdate(vipGroupList);
-            }
+//            List<ClassGroup> classGroupList = classGroupService.findClassGroupByIds(classGroupIds.stream().map(e -> e.toString()).collect(Collectors.joining(",")));
+//
+//            List<String> vipGroupIdList = new ArrayList<String>();
+//            for (ClassGroup classGroup : classGroupList) {
+//                if (classGroup.getGroupType() == GroupType.VIP && classGroup.getCurrentClassTimes() == classGroup.getTotalClassTimes().intValue()) {
+//                    if (!vipGroupIdList.contains(classGroup.getMusicGroupId())) {
+//                        vipGroupIdList.add(classGroup.getMusicGroupId());
+//                    }
+//                }
+//            }
+//            if (vipGroupIdList.size() > 0) {
+//                List<VipGroup> vipGroupList = vipGroupDao.queryByIds(vipGroupIdList.stream().collect(Collectors.joining(",")));
+//                for (VipGroup vipGroup : vipGroupList) {
+//                    if (!vipGroup.getStatus().equals(VipGroupStatusEnum.PAUSE)
+//                            && !vipGroup.getStatus().equals(VipGroupStatusEnum.CANCEL)) {
+//                        vipGroup.setStatus(VipGroupStatusEnum.FINISHED);
+//                    }
+//                    vipGroup.setUpdateTime(date);
+//                }
+//                vipGroupDao.batchUpdate(vipGroupList);
+//            }
         }
 
         if (courseScheduleIdList.size() > 0) {

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

@@ -1,11 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.dal.enums.VipGroupActivityTypeEnum;
 import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
 import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -32,6 +35,8 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 	private CourseScheduleDao courseScheduleDao;
 	@Autowired
 	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
+	@Autowired
+	private SysUserCashAccountService sysUserCashAccountService;
 
 	@Override
 	public BaseDAO<Long, CourseScheduleStudentPayment> getDAO() {
@@ -165,13 +170,33 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 				return;
 			}
 			studentsWithClassGroup.forEach(classGroupStudent->{
+				VipGroup vipGroup=null;
+				if(classGroupStudent.getGroupType().equals(GroupType.VIP)){
+					vipGroup=vipGroupDao.get(Long.valueOf(classGroupStudent.getMusicGroupId()));
+				}
 				for (CourseSchedule courseSchedule : courseSchedulesByClassGroup) {
 					int i = courseScheduleStudentPaymentDao.checkStudentHaveCourse(courseSchedule.getId(), classGroupStudent.getUserId());
 					if(i>0){
 						continue;
 					}
 					if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.VIP)){
-
+						CourseScheduleStudentPayment courseScheduleStudentPayment=new CourseScheduleStudentPayment(
+								courseSchedule.getId(),
+								classGroupStudent.getUserId(),
+								courseSchedule.getTeachMode().equals(TeachModeEnum.ONLINE)?vipGroup.getOnlineClassesUnitPrice():vipGroup.getOfflineClassesUnitPrice(),
+								courseSchedule.getClassGroupId()
+						);
+						courseScheduleStudentPayment.setGroupType(classGroupStudent.getGroupType());
+						courseScheduleStudentPayment.setMusicGroupId(classGroupStudent.getMusicGroupId());
+						List<CourseScheduleStudentPayment> otherPayments = courseScheduleStudentPaymentDao.findByCourseSchedule(courseSchedule.getId());
+						if(!CollectionUtils.isEmpty(otherPayments)){
+							courseScheduleStudentPayment.setExpectPrice(otherPayments.get(0).getExpectPrice());
+						}
+						if(Objects.isNull(courseScheduleStudentPayment.getExpectPrice())){
+							courseScheduleStudentPayment.setExpectPrice(zeroPrice);
+						}
+						sysUserCashAccountService.appendCourseBalance(classGroupStudent.getUserId(), courseScheduleStudentPayment.getExpectPrice().negate());
+						courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 					}else{
 						CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment(
 								courseSchedule.getId(),
@@ -194,4 +219,17 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 	public int batchInsert(List<CourseScheduleStudentPayment> courseScheduleStudentPayments) {
 		return courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 	}
+
+	@Override
+	public void updateVipGiveCourse(Long vipGroupId) {
+		List<VipGroupGiveCourseSortDto> vipGroupSortCourseByGroup = courseScheduleStudentPaymentDao.findVipGroupSortCourseByGroup(vipGroupId.toString());
+		Map<BigDecimal, Long> expectPriceCountMap = vipGroupSortCourseByGroup.stream()
+				.collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getExpectPrice, Collectors.counting()));
+		BigDecimal zero = new BigDecimal(0);
+		int zeroPriceNum = expectPriceCountMap.get(zero).intValue();
+		if(zeroPriceNum<=0){
+			return;
+		}
+		
+	}
 }

+ 5 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -88,6 +88,11 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		if(courseSchedule.getGroupType().equals(GroupType.MUSIC)){
 			attendanceTimeRange = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE);
 		}else{
+			SysConfig beforeAttendanceTimeRange=sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_BEFOR_COURSE_START_TIME_RANGE_VIP);
+			int courseStartTime = DateUtil.minutesBetween(date, courseSchedule.getStartClassTime());
+			if(date.before(courseSchedule.getStartClassTime())&&courseStartTime>beforeAttendanceTimeRange.getParanValue(Integer.class)){
+				throw new BizException("VIP课开课前{}分钟禁止点名",beforeAttendanceTimeRange.getParanValue(Integer.class));
+			}
 			attendanceTimeRange = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP);
 		}
 		int courseEndTime = DateUtil.minutesBetween(courseSchedule.getEndClassTime(), date);
@@ -296,8 +301,6 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		if(Objects.isNull(classGroupStudentMapper)){
 			throw new BizException("您不在此课程对应班级上");
 		}
-		classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.LEAVE);
-		classGroupStudentMapperDao.update(classGroupStudentMapper);
 
 		Map<Integer,String> sendArgs=new HashMap<>();
 		sendArgs.put(courseSchedule.getActualTeacherId(),courseSchedule.getActualTeacherId() + "");

+ 14 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -252,11 +252,12 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			teacherAttendance.setClassGroupId(courseScheduleId);
 			teacherAttendance.setTeacherId(userId);
 			teacherAttendanceDao.insert(teacherAttendance);
+		}else {
+			teacherAttendance.setGroupType(courseSchedule.getGroupType());
+			teacherAttendance.setTeacherId(userId);
+			teacherAttendance.setClassGroupId(classGroup.getId());
+			teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
 		}
-		teacherAttendance.setGroupType(courseSchedule.getGroupType());
-		teacherAttendance.setTeacherId(userId);
-		teacherAttendance.setClassGroupId(classGroup.getId());
-		teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
 //		int advanceSignMinutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES));
 		Date date = new Date();
 		String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
@@ -317,15 +318,15 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			teacherAttendance.setSignOutTime(date);
 			teacherAttendanceDao.update(teacherAttendance);
 			//教师签退后,给未签到学员添加旷课记录
-			List<StudentAttendance> studentAttendances = studentAttendanceDao.queryNoSignStudentRecord(courseScheduleId);
-			if(studentAttendances != null && studentAttendances.size() > 0){
-				studentAttendances.forEach(e->{
-					e.setTeacherId(userId);
-					e.setStatus(StudentAttendanceStatusEnum.TRUANT);
-					e.setRemark("学员未到,自动补旷课");
-				});
-				studentAttendanceDao.addStudentAttendances(studentAttendances);
-			}
+//			List<StudentAttendance> studentAttendances = studentAttendanceDao.queryNoSignStudentRecord(courseScheduleId);
+//			if(studentAttendances != null && studentAttendances.size() > 0){
+//				studentAttendances.forEach(e->{
+//					e.setTeacherId(userId);
+//					e.setStatus(StudentAttendanceStatusEnum.TRUANT);
+//					e.setRemark("学员未到,自动补旷课");
+//				});
+//				studentAttendanceDao.addStudentAttendances(studentAttendances);
+//			}
 		}
 	}
 

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

@@ -454,7 +454,7 @@
             LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
             LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
             LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=cs.teacher_id_
-            LEFT JOIN school s ON mg.school_id_=s.id_
+            LEFT JOIN school s ON cs.schoole_id_=s.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         <if test="groups != null and organIdList!=null">

+ 19 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -229,8 +229,26 @@
     <select id="checkStudentHaveCourse" resultType="int">
 		SELECT COUNT(id_) FROM course_schedule_student_payment WHERE course_schedule_id_=#{courseScheduleId} AND user_id_=#{userId}
 	</select>
+	<select id="findByCourseSchedule" resultMap="CourseScheduleStudentPayment">
+		SELECT * FROM course_schedule_student_payment WHERE  course_schedule_id_ = #{courseScheduleId}
+	</select>
+
+	<resultMap id="VipGroupGiveCourseSortDto" type="com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto" extends="CourseScheduleStudentPayment">
+		<result property="courseStartTime" column="course_start_time_"/>
+		<result property="courseEndTime" column="course_end_time_"/>
+	</resultMap>
+	<select id="findVipGroupSortCourseByGroup" resultMap="VipGroupGiveCourseSortDto">
+		SELECT
+			 cssp.*,
+			 CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_
+			 CONCAT(cs.class_date_,' ',cs.end_class_time_) course_end_time_
+		FROM course_schedule_student_payment cssp
+			LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
+		WHERE cssp.music_group_id_=#{groupId} AND cssp.group_type_='VIP' AND course_start_time_ &gt; NOW()
+		ORDER BY course_start_time_
+	</select>
 
-    <delete id="deleteStudentCourseSchedule">
+	<delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN
 		<foreach collection="courseScheduleList" item="courseSchedule" index="index" open="(" close=")" separator=",">
 			#{courseSchedule.id}

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

@@ -337,7 +337,7 @@
     </select>
     
   	<select id="queryOrganMusicGroupNum" resultType="map">
-    	select count(*) total,sum(case when status_ = 'PROGRESS' then 1 else 0 end) progress_num_,sum(case when status_ = 'PAUSE' then 1 else 0 end) pause_num_ from music_group
+    	select count(*) total,sum(case when status_ = 'PREPARE' then 1 else 0 end) prepare_num_,sum(case when status_ = 'PROGRESS' then 1 else 0 end) progress_num_,sum(case when status_ = 'PAUSE' then 1 else 0 end) pause_num_ from music_group
     	<where>
     		<if test="organId != null">
     			FIND_IN_SET(organ_id_,#{organId})

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

@@ -360,7 +360,9 @@
         AND cssp.course_schedule_id_ = #{courseScheduleId}
     </select>
     <select id="countStudentAttendenceNum" resultType="int">
-        SELECT COUNT(*) FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId} AND status_='NORMAL'
+        SELECT COUNT(*) FROM student_attendance sa
+        WHERE course_schedule_id_ = #{courseScheduleId}
+        AND (update_time_!='1970-01-01 00:00:00' OR update_time_ IS NULL)
     </select>
     <select id="countStudentAttendancesByCourses" resultType="java.util.Map">
         SELECT
@@ -373,7 +375,6 @@
             <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
                 #{courseScheduleId}
             </foreach>
-            AND update_time_!='1970-01-01 00:00:00'
         GROUP BY
             course_schedule_id_
     </select>

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -500,4 +500,12 @@
         SELECT o.name_ organName, SUM(spo.actual_amount_) money ,COUNT(spo.id_) nums FROM student_payment_order spo LEFT JOIN organization o ON o.id_=spo.organ_id_
         WHERE spo.type_='LUCK' AND spo.status_='SUCCESS' GROUP BY spo.organ_id_ ORDER BY nums DESC;
     </select>
+    
+    <select id="queryIncomeStatistics" resultType="map">
+    	select count(*) total,sum(actual_amount_) total_num_ from student_payment_order
+    	where actual_amount_ &gt; 0
+   		<if test="organId != null">
+   			and FIND_IN_SET(organ_id_,#{organId})
+   		</if>
+  	</select>
 </mapper>

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

@@ -558,11 +558,10 @@
     <select id="queryOrganTeacherNum" resultType="map">
         select count(*) total,sum(case when job_nature_ = 'PART_TIME' then 1 else 0 end) part_time_num_,sum(case when
         job_nature_ = 'FULL_TIME' then 1 else 0 end) full_time_num_ from teacher
-        <where>
+        where demission_date_ is not null
             <if test="organId != null">
-                FIND_IN_SET(organ_id_,#{organId})
+                and FIND_IN_SET(organ_id_,#{organId})
             </if>
-        </where>
     </select>
     <select id="findByFlowOrganRange" resultMap="Teacher">
         SELECT id_,CONCAT(IF(flow_organ_range_ IS NULL OR flow_organ_range_ = '',0,flow_organ_range_),",",

+ 23 - 16
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -12,7 +12,9 @@ import com.ym.dao.WhiteboardDao;
 import com.ym.job.ScheduleManager;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
@@ -71,6 +73,9 @@ public class RoomServiceImpl implements RoomService {
     private TeacherDao teacherDao;
 
     @Autowired
+    private CourseScheduleDao courseScheduleDao;
+
+    @Autowired
     private TeacherAttendanceService teacherAttendanceService;
 
     @Autowired
@@ -92,11 +97,12 @@ public class RoomServiceImpl implements RoomService {
 
         String userId = sysUserFeignService.queryUserInfo().getId().toString();
         Teacher teacher = teacherDao.get(Integer.parseInt(userId));
+        CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
         try {
-            if(teacher == null){
-                studentAttendanceService.addStudentAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), StudentAttendanceStatusEnum.NORMAL);
-            }else {
+            if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
                 teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), SignStatusEnum.SIGN_IN,true);
+            }else {
+                studentAttendanceService.addStudentAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), StudentAttendanceStatusEnum.NORMAL);
             }
         }catch (Exception e){
             e.printStackTrace();
@@ -142,10 +148,10 @@ public class RoomServiceImpl implements RoomService {
             } else {
                 roleEnum = RoleEnum.RoleAudience;
             }*/
-            if(teacher == null){
-                roleEnum = RoleEnum.RoleStudent;
-            }else {
+            if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
                 roleEnum = RoleEnum.RoleTeacher;
+            }else {
+                roleEnum = RoleEnum.RoleStudent;
             }
             saveRoomMember(userId, userName, roomId, roleEnum.getValue(), !isDisableCamera, curTime);
             IMApiResultInfo resultInfo = imHelper.joinGroup(new String[]{userId}, roomId, roomId);
@@ -236,14 +242,14 @@ public class RoomServiceImpl implements RoomService {
         SysUser user = sysUserFeignService.queryUserInfo();
         String userId = user.getId().toString();
         Teacher teacher = teacherDao.get(user.getId());
-        if(teacher != null){
-            try {
+        CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId.substring(4)));
+        try {
+            if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
                 teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId.substring(4)),user.getId(), SignStatusEnum.SIGN_OUT,true);
-            }catch (Exception e){
-                e.printStackTrace();
             }
+        }catch (Exception e){
+            e.printStackTrace();
         }
-        
         CheckUtils.checkArgument(user != null, "user must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         List<Room> roomList = roomDao.findByRid(roomId);
@@ -1133,12 +1139,13 @@ public class RoomServiceImpl implements RoomService {
         if(byRidAndUid.size() > 0){
             SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(userId));
             Teacher teacher = teacherDao.get(sysUser.getId());
-            if(teacher != null){
-                try {
-                    teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId.substring(4)),sysUser.getId(), SignStatusEnum.SIGN_OUT,true);
-                }catch (Exception e){
-                    e.printStackTrace();
+            CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
+            try {
+                if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
+                    teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId.substring(4)),Integer.parseInt(userId), SignStatusEnum.SIGN_OUT,true);
                 }
+            }catch (Exception e){
+                e.printStackTrace();
             }
             List<Room> roomList = roomDao.findByRid(roomId);
             if (roomList.size() == 0) {

+ 6 - 0
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -47,6 +47,9 @@ public class IndexController extends BaseController {
 	
 	@Autowired
 	private SysUserCashAccountDetailDao sysUserCashAccountDetailDao;
+	
+	@Autowired
+	private StudentPaymentOrderDao studentPaymentOrderDao;
 
 	@ApiOperation(value = "获取首页数据")
 	@GetMapping("/index")
@@ -83,6 +86,8 @@ public class IndexController extends BaseController {
 		
 		Map<String, Object> incomeExpendMap = sysUserCashAccountDetailDao.queryStatistics(organId);
 		
+		Map<String, Object> incomeMap = studentPaymentOrderDao.queryIncomeStatistics(organId);
+		
 		ModelMap model = new ModelMap();
 		model.put("musicDatas", musicDatas);
 		model.put("teacherDatas", teacherDatas);
@@ -93,6 +98,7 @@ public class IndexController extends BaseController {
 		model.put("vipGroupNum", vipGroupNum);
 		model.put("demoGroupNum", demoGroupNum);
 		model.put("incomeExpendMap", incomeExpendMap);
+		model.put("incomeMap", incomeMap);
 
 		return succeed(model);
 	}