Browse Source

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

zouxuan 5 years ago
parent
commit
16733c258a

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

@@ -99,4 +99,11 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
      * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
      */
     List<TeacherAttendance> findTeacherIdByCourseSchedule(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+    
+	/**
+	 * 更新vip课的签退状态
+	 * @param courseScheduleIdList
+	 * @return
+	 */
+	int updateViPSignOutStatus(String courseScheduleIdList);
 }

+ 10 - 13
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -1,26 +1,23 @@
 package com.ym.mec.biz.dal.entity;
 
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.google.common.collect.Lists;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.TeachModeEnum;
-import com.ym.mec.common.enums.BaseEnum;
-
 import io.swagger.annotations.ApiModelProperty;
 
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import com.ym.mec.common.enums.BaseEnum;
+
 /**
  * 对应数据库表(course_schedule):
  */

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherAttendance.java

@@ -39,7 +39,6 @@ public class TeacherAttendance {
 	@ApiModelProperty(value = "签到时间",required = false)
 	private java.util.Date signInTime;
 	
-	/** 状态(正常签到,异常签到) */
 	@ApiModelProperty(value = "状态(0:签到,1:签退)",required = false)
 	private Integer status;
 

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -306,4 +306,8 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      */
     void addVipGroupStudents(Long vipGroupId,List<Integer> studentIds);
     
+	/**
+	 * 更新vipgroup至完成状态
+	 */
+	void updateVipGroupStatusToFinished();
 }

+ 86 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1,19 +1,83 @@
 package com.ym.mec.biz.service.impl;
 
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+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.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+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.auth.api.enums.SysUserType;
-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.enums.*;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleComplaintsDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+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.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.CourseScheduleDto;
+import com.ym.mec.biz.dal.dto.IntegerAndIntegerListDto;
+import com.ym.mec.biz.dal.dto.Mapper;
+import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
+import com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.entity.StudentAttendance;
+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.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.ParamEnum;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+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.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
-import com.ym.mec.biz.service.*;
+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.CourseScheduleStudentPaymentService;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -21,18 +85,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-import org.apache.commons.collections.ListUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-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 {
@@ -929,6 +981,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	public boolean updateCourseScheduleToOverStatus() {
 
 		Date date = new Date();
+		//课程已结束,更新“未签到”学生的状态未“旷课”
 		List<StudentAttendance> studentAttendanceList = courseScheduleDao.queryUnsignedStudentList();
 		for (StudentAttendance studentAttendance : studentAttendanceList) {
 			studentAttendance.setStatus(StudentAttendanceStatusEnum.TRUANT);
@@ -938,11 +991,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if (studentAttendanceList != null && studentAttendanceList.size() > 0) {
 			studentAttendanceDao.batchUpdate(studentAttendanceList);
 		}
-
+		
+		//自动更新课程状态至“已结束”
 		List<CourseSchedule> list = courseScheduleDao.queryFinishedWithNoUpdateStatus();
 
 		List<CourseSchedule> updateList = new ArrayList<CourseSchedule>();
 		List<Integer> classGroups = new ArrayList<Integer>();
+		List<Long> courseScheduleIdList = new ArrayList<Long>();
+		
 		for (CourseSchedule courseSchedule : list) {
 			courseSchedule.setStatus(CourseStatusEnum.OVER);
 			courseSchedule.setUpdateTime(date);
@@ -951,17 +1007,27 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			if (!classGroups.contains(courseSchedule.getClassGroupId())) {
 				classGroups.add(courseSchedule.getClassGroupId());
 			}
+			
+			if(courseSchedule.getGroupType() == GroupType.VIP){
+				courseScheduleIdList.add(courseSchedule.getId());
+			}
 		}
 
 		if (updateList.size() > 0) {
 			courseScheduleDao.batchUpdate(updateList);
 		}
 
-		// 更新班级课次
+		// 更新班级已上课次
 		if (classGroups.size() > 0) {
 			classGroupService.batchIncreaseClassTimes(classGroups);
+			
 		}
-
+		
+		if (courseScheduleIdList.size() > 0) {
+			// vip课自动签退
+			teacherAttendanceDao.updateViPSignOutStatus(courseScheduleIdList.stream().map(a -> a.toString()).collect(Collectors.joining(",")));
+		}
+		
 		return true;
 	}
 

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

@@ -552,16 +552,20 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
 
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
+            studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
+            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
+            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
+            studentRegistrationDao.update(studentRegistration);
+
+            //进行中乐团加入学生缴费
             if (studentRegistration.getTemporaryCourseFee() != null) {
-                //关闭订单
+                //关闭待支付订单
                 StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(studentRegistration.getUserId(), studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
                 waitPayOrder.setStatus(DealStatusEnum.CLOSE);
                 studentPaymentOrderService.update(waitPayOrder);
                 //添加学生
                 classGroupStudentMapperService.addStudents(waitPayOrder.getClassGroupId(), studentRegistration.getUserId().toString(), GroupType.MUSIC);
-            }
-
-            if (studentRegistration.getTemporaryCourseFee() == null) {
+            } else {
                 //获取当前月
                 Integer month = Integer.parseInt(DateUtil.getMonth(nowDate));
                 //获取下次缴费月份
@@ -589,11 +593,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 musicGroupStudentFeeDao.insert(musicGroupStudentFee);
             }
 
-            studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
-            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
-            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
-            studentRegistrationDao.update(studentRegistration);
-
             //插入交易明细
             SysUserCashAccount cashAccount = sysUserCashAccountService.get(studentRegistration.getUserId());
             BigDecimal amount = studentPaymentOrder.getActualAmount();
@@ -637,7 +636,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                     studentRegistration.getParentsName(), studentPaymentOrder.getActualAmount());
         }
 
-        //失败减去已收款金额
 
         //减去缴费人数
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAILED)) {

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

@@ -1547,4 +1547,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 		sysUserCashAccountDetailDao.batchInsert(userCashAccountDetails);
 	}
+
+	@Override
+	public void updateVipGroupStatusToFinished() {
+		
+	}
 }

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -274,4 +274,8 @@
             #{courseScheduleId}
         </foreach>
     </select>
+    
+    <update id="updateViPSignOutStatus" parameterType="string">
+    	update teacher_attendance set sign_out_status_ = 1,sign_out_time_= now() where course_schedule_id_ in (#{courseScheduleIdList}) and sign_in_status_ = 1
+    </update>
 </mapper>