Przeglądaj źródła

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

zouxuan 5 lat temu
rodzic
commit
a4402f4968
20 zmienionych plików z 210 dodań i 33 usunięć
  1. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 12 9
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  3. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageDao.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java
  5. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceDto.java
  6. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java
  7. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  8. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  9. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java
  10. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  11. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  12. 26 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SmsCodeServiceImpl.java
  13. 10 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  14. 0 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  15. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  16. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  17. 35 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  18. 10 0
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  19. 6 0
      mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml
  20. 3 1
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

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

@@ -926,4 +926,14 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return int
      */
     int countClassGroupOverCourseNum(@Param("classGroupId") Integer classGroupId);
+
+    /**
+     * @describe 终极课表获取
+     * @author Joburgess
+     * @date 2019/12/27
+     * @param params:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleEndDto>
+     */
+    List<CourseScheduleEndDto> endFindCourseSchedules(Map<String, Object> params);
+    int endCountCourseSchedules(Map<String, Object> params);
 }

+ 12 - 9
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -1,22 +1,22 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
-import com.ym.mec.biz.dal.dto.UserGoodsDto;
 import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
+import com.ym.mec.biz.dal.dto.UserGoodsDto;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
-import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
 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;
-import java.util.Map;
 
 public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrder> {
 
@@ -29,6 +29,9 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      */
     List<Goods> queryApplyGoodsList(@Param("musicGroupId") String musicGroupId, @Param("type") OrderDetailTypeEnum type);
 
+	List<StudentPaymentOrder> queryByCondition(@Param("groupType") GroupType groupType, @Param("musicGroupId") String musicGroupId,
+			@Param("userId") Integer userId, @Param("status") DealStatusEnum status);
+
     /**
      * @Author: Joburgess
      * @Date: 2019/10/3

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageDao.java

@@ -11,6 +11,8 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface SysMessageDao extends BaseDAO<Long, SysMessage> {
 
+	public List<SysMessage> queryUserInRecentMinList(@Param("mobile") String mobile, @Param("recentMin") int recentMin, @Param("type") MessageSendMode type);
+
 	/**
 	 * 根据状态查询最近N分钟的记录
 	 * @param status 状态值

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java

@@ -0,0 +1,10 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/12/27
+ */
+public class CourseScheduleEndDto extends CourseSchedule {
+}

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceDto.java

@@ -83,6 +83,27 @@ public class TeacherAttendanceDto {
     @ApiModelProperty(value = "学生数量")
     private Integer studentNum;
 
+    @ApiModelProperty(value = "是否是第一次进行学生点名")
+    private int studentAttendanceIsFirstTime;
+
+    private Integer enableStudentAttendanceTimeRange;
+
+    public int getStudentAttendanceIsFirstTime() {
+        return studentAttendanceIsFirstTime;
+    }
+
+    public void setStudentAttendanceIsFirstTime(int studentAttendanceIsFirstTime) {
+        this.studentAttendanceIsFirstTime = studentAttendanceIsFirstTime;
+    }
+
+    public Integer getEnableStudentAttendanceTimeRange() {
+        return enableStudentAttendanceTimeRange;
+    }
+
+    public void setEnableStudentAttendanceTimeRange(Integer enableStudentAttendanceTimeRange) {
+        this.enableStudentAttendanceTimeRange = enableStudentAttendanceTimeRange;
+    }
+
     public Integer getStudentNum() {
         return studentNum;
     }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java

@@ -0,0 +1,10 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/12/27
+ */
+public class EndCourseScheduleQueryInfo extends QueryInfo {
+}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 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.common.page.PageInfo;
@@ -380,4 +381,13 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
 	 */
 	List<CourseSchedule> createCourses(CourseGenerateDto courseGenerateDto);
+
+	/**
+	 * @describe 终极课表获取接口
+	 * @author Joburgess
+	 * @date 2019/12/27
+	 * @param queryInfo: 查询条件
+	 * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleEndDto>
+	 */
+	List<CourseScheduleEndDto> endFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo);
 }

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

@@ -80,6 +80,11 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      * 可更新学生签到状态时间限制,课程结束后{}分钟
      */
     String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE = "enable_student_attendance_time_range";
+    
+    /**
+     * 十分钟内最大可发送的短信次数
+     */
+    String SMS_MAX_TIMES = "sms_max_times";
 
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -117,5 +118,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * 修改单条消息状态
 	 */
 	public int updateOneStatus(Long id, int status);
+	
+	public List<SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type);
 
 }

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

@@ -11,6 +11,7 @@ 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.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.*;
@@ -119,6 +120,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				currentCourseDetail.getSchoolId().intValue());
 		currentCourseDetail.setOnlyNormal(yesOrNoEnum);
 		currentCourseDetail.setCurrentClassTimes(courseScheduleDao.countClassGroupOverCourseNum(currentCourseDetail.getClassId()));
+		SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE);
+		currentCourseDetail.setEnableStudentAttendanceTimeRange(sysConfig.getParanValue(Integer.class));
+		int studentNum = studentAttendanceDao.countByCourseSchedule(courseID);
+		if(Objects.nonNull(studentNum)){
+			currentCourseDetail.setStudentAttendanceIsFirstTime(studentNum>0?0:1);
+		}else{
+			currentCourseDetail.setStudentAttendanceIsFirstTime(1);
+		}
 
 		currentCourseDetail.setCurrentTime(new Date());
 		currentCourseDetail.setAdvanceSignInMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES)));
@@ -2044,4 +2053,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 		return courseSchedules;
 	}
+
+	@Override
+	public List<CourseScheduleEndDto> endFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo) {
+		PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		int count=courseScheduleDao.endCountCourseSchedules(params);
+//		if(count>0){
+//
+//		}
+		return null;
+	}
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1436,6 +1436,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (musicGroupStudentFee == null) {
             throw new BizException("个人信息不存在");
         }
+        //判断是否是续费
+		List<StudentPaymentOrder> orderList = studentPaymentOrderDao.queryByCondition(GroupType.MUSIC, musicGroupId, userId, DealStatusEnum.SUCCESS);
+		if (orderList == null || orderList.size() == 0) {
+			throw new BizException("请走报名缴费流程");
+		}
+        
         // 判断当前是否是续费状态
         if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
             throw new BizException("已缴费");

+ 26 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SmsCodeServiceImpl.java

@@ -1,15 +1,22 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.SmsCodeService;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
 
 @Service
 public class SmsCodeServiceImpl implements SmsCodeService {
@@ -18,24 +25,36 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 	private SysMessageService sysMessageService;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private SysConfigService sysConfigService;
 
 	@Override
 	public boolean verifyValidCode(String mobile, String authCode) {
 		String verifyCode = sysMessageService.getSendedVerificationCode(MessageTypeEnum.SMS_VERIFY_CODE_LOGIN, mobile);
-		if(StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode,authCode)){
+		if (StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode, authCode)) {
 			return true;
 		}
 		return false;
 	}
 
 	@Override
-	public boolean sendValidCode(String mobile){
+	public boolean sendValidCode(String mobile) {
 		SysUser sysUser = sysUserFeignService.queryUserByMobile(mobile);
 		Integer userId = null;
-		if(sysUser != null){
+		if (sysUser != null) {
 			userId = sysUser.getId();
 		}
-		sysMessageService.sendSecurityCode(MessageSenderPluginContext.MessageSender.YIMEI,userId, MessageTypeEnum.SMS_VERIFY_CODE_LOGIN,mobile);
+		SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.SMS_MAX_TIMES);
+		int times = 3;
+		if (sysConfig != null) {
+			times = Integer.parseInt(sysConfig.getParanValue());
+		}
+		// 十分钟内只能发3条
+		List<SysMessage> list = sysMessageService.queryUserInRecentMinList(mobile, 10, MessageSendMode.SMS);
+		if (list != null && list.size() >= times) {
+			throw new BizException("对不起,您发送太频繁请稍后重试!");
+		}
+		sysMessageService.sendSecurityCode(MessageSenderPluginContext.MessageSender.YIMEI, userId, MessageTypeEnum.SMS_VERIFY_CODE_LOGIN, mobile);
 		return true;
 	}
 

+ 10 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -10,31 +10,34 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
-import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
-import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
-import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
-import com.ym.mec.biz.service.*;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.alibaba.fastjson.JSON;
 import com.huifu.adapay.model.payment.Payment;
 import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
+import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.SporadicChargeInfoService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.adapay.Pay;
 import com.ym.mec.thirdparty.yqpay.Msg;
 import com.ym.mec.thirdparty.yqpay.RsqMsg;
 import com.ym.mec.thirdparty.yqpay.YqPayFeignService;
 import com.ym.mec.thirdparty.yqpay.YqPayUtil;
+import com.ym.mec.util.collection.MapUtil;
 
 @Service
 public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, StudentPaymentOrder> implements StudentPaymentOrderService {

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

@@ -251,11 +251,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Override
     @Transactional(rollbackFor = Exception.class)
     public StudentRegistration addStudent(StudentRegistration studentRegistration) throws Exception {
-        String key = "_student_registration";
-        long threadId = Thread.currentThread().getId();
-        if (!redisCache.getLocked(key, threadId, 10)) {
-            throw new BizException("系统繁忙,请稍后再试");
-        }
         Date date = new Date();
         Integer userId = 0;
         SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone());
@@ -321,7 +316,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 MessageTypeEnum.SMS_APPLY_MESSAGE, map, null, 0, "",
                 studentRegistration.getParentsName(), subject.getName(), serverPhone);
 
-        redisCache.releaseLocked(key, threadId);
         return studentRegistration;
     }
 

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -18,6 +18,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.string.MessageFormatter;
+
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -375,4 +376,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	public int updateOneStatus(Long id, int status) {
 		return sysMessageDao.updateOneStatus(id, status);
 	}
+
+	@Override
+	public List<SysMessage> queryUserInRecentMinList(String mobile, int recentMin, MessageSendMode type) {
+		return sysMessageDao.queryUserInRecentMinList(mobile, recentMin, type);
+	}
 }

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

@@ -2153,6 +2153,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 
 		Date now=new Date();
+        List<ImGroupMember> imGroupMemberList = new ArrayList<>();
 
 		if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
 			List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroup.getCourseSchedulesJson(),CourseSchedule.class);
@@ -2168,11 +2169,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 						classGroupTeacherSalary.getOnlineClassesSalary(),
 						classGroupTeacherSalary.getSalary());
 			}
+            imGroupMemberList.add(new ImGroupMember(vipGroup.getUserId().toString()));
 		}
 
 		List<CourseSchedule> surplusCourses = courseScheduleDao.findByClassGroupAndStatus(classGroup.getId(), CourseStatusEnum.NOT_START.getCode());
 
-		List<ImGroupMember> imGroupMemberList = new ArrayList<>();
 		List<ClassGroupStudentMapper> classGroupStudentMappers=new ArrayList<>();
 
 		List<ClassGroupStudentMapper> classGroupStudentsList = classGroupStudentMapperDao.findByClassGroupAndStudent(classGroup.getId(), studentIds);

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

@@ -38,6 +38,11 @@
     	<result column="value_" property="value"/>
     </resultMap>
 
+    <resultMap id="CourseScheduleEndDto" type="com.ym.mec.biz.dal.dto.CourseScheduleEndDto" extends="CourseSchedule">
+        <result column="course_start_time_" property="startClassTime"/>
+        <result column="course_end_time_" property="endClassTime"/>
+    </resultMap>
+
     <resultMap type="com.ym.mec.biz.dal.dto.CourseScheduleDto" id="courseScheduleDto" extends="CourseSchedule">
         <result column="teacher_name_" property="teacherName"/>
         <result column="name_" property="classGroupName"/>
@@ -568,7 +573,7 @@
             (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
             AND cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
             AND csts.user_id_ = #{teacherId} AND cg.del_flag_ = 0
-            AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ )&lt;NOW()
+            AND CONCAT( cs.class_date_, ' ', cs.end_class_time_ )&lt;NOW()
         ORDER BY start_class_time_
     </select>
 
@@ -1655,7 +1660,7 @@
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
         LEFT JOIN class_group cg ON cg.id_=cs.class_group_id_
         LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
-        WHERE CONCAT(cs.class_date_,' ',cs.end_class_time_) &lt;= now() AND sa.id_ IS NULL
+        WHERE CONCAT(cs.class_date_,' ',cs.end_class_time_) &lt;= DATE_ADD(NOW(),INTERVAL -1 HOUR) AND sa.id_ IS NULL
     </select>
     <select id="getNextCourseSchedule" resultMap="CourseSchedule">
         SELECT
@@ -1845,4 +1850,32 @@
     <select id="countClassGroupOverCourseNum" resultType="int">
         SELECT COUNT(*) FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ',end_class_time_)&lt;NOW()
     </select>
+
+    <sql id="endFindCourseSchedulesCondition">
+        <where>
+
+        </where>
+    </sql>
+
+    <select id="endFindCourseSchedules" resultMap="CourseScheduleEndDto">
+        SELECT
+            cs.id_,
+            cs.group_type_,
+            cs.music_group_id_,
+            cs.class_group_id_,
+            cs.status_,
+            cs.name_,
+            CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_,
+            CONCAT(cs.class_date_,' ',cs.end_class_time_) course_end_time_,
+            cs.actual_teacher_id_,
+            cs.teach_mode_,
+            cs.type_,
+            cs.schoole_id_
+        FROM
+          course_schedule cs
+          LEFT JOIN class_group cg ON cg.id_=cs.class_group_id_
+        <include refid="endFindCourseSchedulesCondition"/>
+          ORDER BY course_start_time_
+        <include refid="global.limit"/>
+    </select>
 </mapper>

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

@@ -238,6 +238,16 @@
                           and spod.type_ =
                               #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </select>
+    <select id="queryByCondition" resultMap="StudentPaymentOrder" parameterMap="map">
+        SELECT
+        spo.*
+        FROM
+        student_payment_order spo
+        WHERE spo.user_id_=#{userId}
+        AND spo.music_group_id_=#{musicGroupId}
+        AND spo.status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND spo.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+    </select>
     <select id="findByStudentVipGroup" resultMap="StudentPaymentOrder">
         SELECT
         spo.*

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml

@@ -178,4 +178,10 @@
 		</if>
 		group by group_
 	</select>
+
+	<select id="queryUserInRecentMinList" resultMap="message" parameterType="map">
+		select *
+		from sys_message where receiver_ = #{mobile} and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and <![CDATA[DATE_ADD(send_time_,
+		INTERVAL #{recentMin} MINUTE) >= now()]]>
+	</select>
 </mapper>

+ 3 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
 import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
@@ -209,12 +210,13 @@ public class ExportController extends BaseController {
                 if (studentRegistration != null) {
                     row.setSubjectName(studentRegistration.getSubjectName());
                     row.setSchoolName(studentRegistration.getSchoolName());
-                    if (studentRegistration.getKitType() != null && studentRegistration.getKitType().equals("LEASE")) {
+                    if (row.getType().equals(OrderTypeEnum.APPLY) && studentRegistration.getKitType() != null && studentRegistration.getKitType().equals("LEASE")) {
                         row.setLeaseFee(studentRegistration.getDepositFee());
                         row.setMusicalFee(BigDecimal.ZERO);
                     }
                 }
             } else if (row.getGroupType().equals(GroupType.VIP)) {
+                row.setCourseFee(row.getActualAmount());
                 VipGroup vipGroupInfo = vipGroupDao.findVipGroupInfo(Integer.parseInt(row.getMusicGroupId()), row.getClassGroupId());
                 if (vipGroupInfo != null) {
                     row.setSchoolName(vipGroupInfo.getSchoolName());