فهرست منبع

Merge remote-tracking branch 'origin/master'

周箭河 5 سال پیش
والد
کامیت
dd7a6e311f
27فایلهای تغییر یافته به همراه385 افزوده شده و 59 حذف شده
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java
  2. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java
  3. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAttendanceDto.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAttendanceViewDto.java
  5. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseScheduleQueryInfo.java
  6. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  7. 9 2
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentAttendanceService.java
  8. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  10. 29 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  11. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  12. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  13. 41 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  14. 23 22
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  15. 1 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  16. 39 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  17. 54 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  18. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  19. 1 1
      mec-biz/src/main/resources/config/mybatis/GroupMapper.xml
  20. 9 0
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  21. 6 6
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  22. 13 15
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  23. 4 2
      mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java
  24. 43 0
      mec-web/src/main/java/com/ym/mec/web/controller/StudentAttendanceController.java
  25. 10 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java
  26. 1 2
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java
  27. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceOldController.java

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -113,6 +113,15 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
     List<StudentAttendanceViewDto> findStudentByCourse(Long courseScheduleId);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.entity.StudentAttendance>
+     * @describe 分页获取点名列表
+     * @author Joburgess
+     * @date 2019/10/19
+     */
+    List<StudentAttendanceViewDto> findStudentByCourseWithPage(Map<String, Object> params);
+    int countStudentByCourseWithPage(Map<String, Object> params);
+
+    /**
      * 查找班级学生对应关系
      *
      * @param userId

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java

@@ -45,6 +45,17 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
     int deleteByCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
     /**
+     * @describe 根据课程和学生删除考情记录
+     * @author Joburgess
+     * @date 2020/1/17
+     * @param courseScheduleId:
+     * @param userIds:
+     * @return int
+     */
+    int deleteStudentAttendancesByCourseAndUsers(@Param("courseScheduleId") Long courseScheduleId,
+                                                 @Param("userIds") List<Integer> userIds);
+
+    /**
      * 统计学生各种状态人数
      * @param classId
      * @return

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

@@ -14,8 +14,18 @@ public class StudentAttendanceDto {
 
     private Integer update;
 
+    private Integer courseScheduleId;
+
     private List<StudentAttendance> studentAttendances;
 
+    public Integer getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Integer courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
     public Integer getUpdate() {
         return update;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAttendanceViewDto.java

@@ -31,12 +31,23 @@ public class StudentAttendanceViewDto {
     @ApiModelProperty(value = "学生姓名",required = false)
     private String userName;
 
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
     @ApiModelProperty(value = "学生头像")
     private String avatar;
 
     @ApiModelProperty(value = "学生在学状态",required = false)
     private StudentAttendanceStatusEnum status;
 
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
     public String getGroupType() {
         return groupType;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseScheduleQueryInfo.java

@@ -32,6 +32,17 @@ public class CourseScheduleQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "课程类型")
     private String type;
 
+    @ApiModelProperty(value = "课程编号")
+    private Integer courseScheduleId;
+
+    public Integer getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Integer courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
     public String getMusicGroupId() {
         return musicGroupId;
     }

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

@@ -239,6 +239,15 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
     List<StudentAttendanceViewDto> findAttendanceStudentByCourse(Long courseScheduleId);
 
     /**
+     * @describe 分页查询课程点名列表
+     * @author Joburgess
+     * @date 2020/1/17
+     * @param queryInfo:
+     * @return com.ym.mec.common.page.PageInfo
+     */
+    PageInfo findAttendanceStudentByCourseWithPage(CourseScheduleQueryInfo queryInfo);
+
+    /**
      * 班级调整(新增班级)
      * @param classGroup4MixDto
      * @return

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/StudentAttendanceService.java

@@ -10,8 +10,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
-import javax.validation.constraints.Max;
-import java.util.List;
 import java.util.Map;
 
 public interface StudentAttendanceService extends BaseService<Long, StudentAttendance> {
@@ -24,6 +22,15 @@ public interface StudentAttendanceService extends BaseService<Long, StudentAtten
 	void addStudentAttendances(StudentAttendanceDto studentAttendanceInfo);
 
 	/**
+	 * @describe 更新学生点名信息
+	 * @author Joburgess
+	 * @date 2020/1/17
+	 * @param studentAttendanceInfo:
+	 * @return void
+	 */
+	void updateStudentAttendances(StudentAttendanceDto studentAttendanceInfo);
+
+	/**
 	 * @describe 获取当前课程的学生
 	 * @author Joburgess
 	 * @date 2019/10/19

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

@@ -95,4 +95,13 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	 * @return
 	 */
 	TeacherAttendance getTeacherPersonalAttendance(Integer courseScheduleId);
+
+	/**
+	 * @describe 更新课程签到信息
+	 * @author Joburgess
+	 * @date 2020/1/17
+	 * @param teacherAttendance: 签到信息
+	 * @return void
+	 */
+	void updateTeacherAttendance(TeacherAttendance teacherAttendance);
 }

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

@@ -21,7 +21,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @param vipGroup: VIP课申请信息
      * @return void
      */
-    void createVipGroup(VipGroupApplyDto vipGroup);
+    String createVipGroup(VipGroupApplyDto vipGroup);
 
     /**
      * @describe 检测vip课程是否超过范围

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1050,6 +1050,35 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
+    public PageInfo findAttendanceStudentByCourseWithPage(CourseScheduleQueryInfo queryInfo) {
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+        List<StudentAttendanceViewDto> dataList=null;
+        int count=classGroupStudentMapperDao.countStudentByCourseWithPage(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = classGroupStudentMapperDao.findStudentByCourseWithPage(params);
+            List<StudentAttendanceViewDto> tempIds = dataList.stream()
+                    .filter(studentAttendanceViewDto -> studentAttendanceViewDto.getGroupType().equals("MUSIC"))
+                    .collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(tempIds)){
+                List<Map<Integer, String>> studentSubjectNameMaps = subjectDao.findStudentSubjectNameMaps(tempIds);
+                Map<Integer, String> studentSubjectNameMap = MapUtil.convertIntegerMap(studentSubjectNameMaps);
+                dataList.forEach(studentAttendanceViewDto -> {
+                    studentAttendanceViewDto.setSubjectName(studentSubjectNameMap.get(studentAttendanceViewDto.getStudentId().intValue()));
+                });
+            }
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public ClassGroup classGroupAdjust(ClassGroup4MixDto classGroup4MixDto) throws Exception {
         Date date = new Date();

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

@@ -2324,9 +2324,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 }
                 Long studentNum = studentNumCourseMap.get(result.getId());
                 if (Objects.nonNull(studentNum)) {
-                    result.setIsCallNames(studentNum > 0 ? 0 : 1);
+                    result.setIsCallNames(studentNum > 0 ? 1 : 0);
                 } else {
-                    result.setIsCallNames(1);
+                    result.setIsCallNames(0);
                 }
             });
         }

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -209,6 +209,32 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateStudentAttendances(StudentAttendanceDto studentAttendanceInfo) {
+		if(Objects.isNull(studentAttendanceInfo.getCourseScheduleId())){
+			throw new BizException("请指定课程编号");
+		}
+		List<StudentAttendance> studentAttendances=studentAttendanceInfo.getStudentAttendances();
+		if(CollectionUtils.isEmpty(studentAttendances)){
+			throw new BizException("无点名信息");
+		}
+		CourseSchedule courseSchedule = courseScheduleDao.get(studentAttendanceInfo.getCourseScheduleId().longValue());
+		if(Objects.isNull(courseSchedule)){
+			throw new BizException("课程不存在");
+		}
+		List<Integer> userIds = studentAttendances.stream().map(StudentAttendance::getUserId).collect(Collectors.toList());
+		studentAttendanceDao.deleteStudentAttendancesByCourseAndUsers(studentAttendanceInfo.getCourseScheduleId().longValue(),userIds);
+		for (StudentAttendance studentAttendance : studentAttendances) {
+			studentAttendance.setGroupType(courseSchedule.getGroupType());
+			studentAttendance.setMusicGroupId(courseSchedule.getMusicGroupId());
+			studentAttendance.setClassGroupId(courseSchedule.getClassGroupId());
+			studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
+			studentAttendance.setCourseScheduleId(courseSchedule.getId());
+		}
+		studentAttendanceDao.addStudentAttendances(studentAttendances);
+	}
+
+	@Override
 	public Map<String, Object> getCurrentCourseStudents(QueryInfo queryInfo) {
 		Map<String,Object> result=new HashMap<>();
 

+ 41 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -410,4 +410,45 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	public TeacherAttendance getTeacherPersonalAttendance(Integer courseScheduleId) {
 		return teacherAttendanceDao.getTeacherPersonalAttendance(courseScheduleId);
 	}
+
+	@Override
+	public void updateTeacherAttendance(TeacherAttendance teacherAttendanceInfo) {
+		if(Objects.isNull(teacherAttendanceInfo.getCourseScheduleId())){
+			throw new BizException("请指定课程");
+		}
+		if(Objects.isNull(teacherAttendanceInfo.getTeacherId())){
+			throw new BizException("请指定教师");
+		}
+		if(Objects.isNull(teacherAttendanceInfo.getSignInStatus())){
+			throw new BizException("请指定签到状态");
+		}
+		if(Objects.isNull(teacherAttendanceInfo.getSignOutStatus())){
+			throw new BizException("请指定签退状态");
+		}
+		TeacherAttendance teacherAttendance=teacherAttendanceDao.findByTeacherAttendanceInfo(teacherAttendanceInfo.getTeacherId().longValue(),teacherAttendanceInfo.getCourseScheduleId());
+
+		Date date = new Date();
+		if(Objects.isNull(teacherAttendance)){
+			teacherAttendance=new TeacherAttendance();
+			teacherAttendance.setTeacherId(teacherAttendanceInfo.getTeacherId());
+			teacherAttendance.setCreateTime(date);
+		}else if(teacherAttendance.getSignInTime() != null && teacherAttendance.getSignOutTime() != null){
+			throw new BizException("当前课程已签到");
+		}
+		teacherAttendance.setSignOutTime(date);
+		teacherAttendance.setSignInStatus(teacherAttendanceInfo.getSignInStatus());
+		teacherAttendance.setSignOutTime(date);
+		teacherAttendance.setSignOutStatus(teacherAttendanceInfo.getSignOutStatus());
+
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		StringBuilder remak=new StringBuilder(DateUtil.dateToString(date,DateUtil.ISO_EXPANDED_DATE_FORMAT));
+		remak.append(",补签到,").append(sysUser.getRealName());
+		teacherAttendance.setRemark(remak.toString());
+
+		if(Objects.isNull(teacherAttendance.getId())){
+			teacherAttendanceDao.insert(teacherAttendance);
+		}else{
+			teacherAttendanceDao.update(teacherAttendance);
+		}
+	}
 }

+ 23 - 22
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -24,7 +24,6 @@ import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -127,7 +126,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void createVipGroup(VipGroupApplyDto vipGroup) {
+	public String createVipGroup(VipGroupApplyDto vipGroup) {
 
 		if (Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getUserId())){
 			throw new BizException("请选择指导老师");
@@ -387,6 +386,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //		}else {
 		sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),teacher.getRealName());
 //		}
+		return vipGroupApplyBaseInfoDto.getAuditStatus().getCode();
 	}
 
     @Override
@@ -402,8 +402,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         Date groupCourseStartTime=courseScheduleDao.findGroupCourseStartTime(GroupType.VIP,vipGroupId.toString());
         Date groupCourseEndTime=courseScheduleDao.findGroupCourseEndTime(GroupType.VIP,vipGroupId.toString());
 
-		//获取活动信息
-		if(Objects.nonNull(vipGroup.getVipGroupActivityId())){
+        //获取活动信息
+        if(Objects.nonNull(vipGroup.getVipGroupActivityId())){
 			VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
 			if(Objects.nonNull(vipGroupActivity)&&(Objects.nonNull(vipGroupActivity.getCoursesEndTime())||Objects.nonNull(vipGroupActivity.getCoursesStartTime()))){
 				if(groupCourseEndTime.after(vipGroupActivity.getCoursesEndTime())
@@ -421,7 +421,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					}
 				}
 			}
-		}
+        }
     }
 
     @Override
@@ -976,12 +976,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	}
 
 	@Override
-	@Transactional(rollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void updateVipGroupStudentNumAndStatus(Long vipGroupId , ClassGroup classGroup, Integer num, boolean updateVipStatus) {
-//		VipGroup vipGroup = vipGroupDao.getLockVipGroup(vipGroupId);
-//		if(Objects.isNull(vipGroup)){
-//			throw new BizException("指定的vip课程不存在");
-//		}
+		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
+		if(Objects.isNull(vipGroup)){
+			throw new BizException("指定的vip课程不存在");
+		}
 		if(Objects.isNull(classGroup)){
 			throw new BizException("未找到关联班级");
 		}
@@ -1006,7 +1006,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	}
 
 	@Override
-	@Transactional(rollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void createVipGroupCourseScheInfo(Long vipGroupId,ClassGroup classGroup){
 		VipGroup vipGroupApplyBaseInfoDto = vipGroupDao.get(vipGroupId);
 		List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroupApplyBaseInfoDto.getCourseSchedulesJson(),CourseSchedule.class);
@@ -1051,7 +1051,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	}
 
 	@Override
-	@Transactional(rollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Map buyVipGroup(VipGroupBuyParamsDto vipGroupBuyParams) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if(user == null){
@@ -1066,7 +1066,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("课程信息错误");
 		}
 
-		VipGroup vipGroup = vipGroupDao.get(vipGroupBuyParams.getVipGroupId());
+        VipGroup vipGroup = vipGroupDao.get(vipGroupBuyParams.getVipGroupId());
 
 		if(vipGroup.getStatus()!=VipGroupStatusEnum.APPLYING){
 			throw new BizException("该课程已结束报名!");
@@ -1210,7 +1210,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	}
 
 	@Override
-	@Transactional(rollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void orderCallback(StudentPaymentOrder order) {
 		/*
 		根据回调信息调整订单状态及vip课程状态等相关信息
@@ -1219,7 +1219,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Integer userId = order.getUserId();
 		boolean isOk=order.getStatus().equals(DealStatusEnum.SUCCESS);
 
-		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.get(order.getId());
+        StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.get(order.getId());
 		if(studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)){
 			return;
 		}
@@ -1250,6 +1250,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
 
 		VipGroup vipGroup = vipGroupDao.get(vipGroupId);
+
 		//插入缴费明细
 		//收入
 		SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
@@ -1295,7 +1296,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(classGroup.getExpectStudentNum().equals(classGroup.getStudentNum())){
 			vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
 		}
-		update(vipGroup);
+		vipGroupDao.update(vipGroup);
 
 		try {
 			contractService.transferVipGroupCoursesContract(userId,vipGroupId);
@@ -2018,16 +2019,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	private void stopVipPush(Long vipGroupId,String vipGroupName){
 		String refundPeriod = sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD);
-		Map<Integer,String> map = MapUtil.convertMybatisMap(classGroupStudentMapperDao.queryStudentIdMap(vipGroupId));
-		if(map != null && map.size() > 0){
+		Map<Integer,String> map1 = MapUtil.convertMybatisMap(classGroupStudentMapperDao.queryStudentIdMap(vipGroupId));
+		if(map1 != null && map1.size() > 0){
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.PUSH_STUDENT_VIP_STOP,
-					map,null,0,null,"STUDENT",vipGroupName,refundPeriod);
+					map1,null,0,null,"STUDENT",vipGroupName,refundPeriod);
 		}
 //		老师推送消息
-		map = MapUtil.convertMybatisMap(classGroupStudentMapperDao.queryTeacherIdMap(vipGroupId));
-		if(map != null && map.size() > 0){
+		Map<Integer,String> map2 = MapUtil.convertMybatisMap(classGroupStudentMapperDao.queryTeacherIdMap(vipGroupId));
+		if(map2 != null && map2.size() > 0){
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.PUSH_TEACHER_VIP_STOP,
-					map,null,0,null,"TEACHER",vipGroupName);
+					map2,null,0,null,"TEACHER",vipGroupName);
 		}
 	}
 

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

@@ -474,7 +474,7 @@
             LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
             LEFT JOIN school s ON vg.teacher_school_id_ = s.id_
         WHERE
-            vg.user_id_ = #{teacherId} AND (vg.status_ = 2 OR vg.status_ = 5)
+            vg.user_id_ = #{teacherId} AND (vg.group_status_ = 2 OR vg.group_status_ = 5)
         GROUP BY
         vg.id_,cg.id_
     </select>

+ 39 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -162,6 +162,45 @@
             AND cgsm.status_!='QUIT'
     </select>
 
+    <select id="findStudentByCourseWithPage" resultMap="com.ym.mec.biz.dal.dao.StudentAttendanceDao.studentAttendanceViewUtilEntity">
+        SELECT
+            cssp.group_type_,
+            cssp.music_group_id_,
+            cssp.user_id_ student_id_,
+            su.username_,
+            su.phone_,
+            su.avatar_,
+            s.name_ subject_name_,
+            IF(sa.status_ IS NULL,'TRUANT',sa.status_) status_
+        FROM
+            course_schedule_student_payment cssp
+            LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
+            LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
+            LEFT JOIN class_group_student_mapper cgsm ON cssp.user_id_=cgsm.user_id_ AND cssp.class_group_id_=cgsm.class_group_id_
+            LEFT JOIN student_registration sr ON sr.user_id_=cssp.user_id_ AND cssp.music_group_id_=sr.music_group_id_
+            LEFT JOIN `subject` s ON sr.subject_id_=s.id_
+        WHERE
+            cssp.course_schedule_id_ =#{courseScheduleId}
+            AND su.id_ IS NOT NULL
+            AND cgsm.status_!='QUIT' AND cgsm.status_!='QUIT_SCHOOL'
+        ORDER BY cssp.user_id_
+        <include refid="global.limit"/>
+    </select>
+
+    <select id="countStudentByCourseWithPage" resultType="int">
+        SELECT
+            COUNT(cssp.user_id_)
+        FROM
+            course_schedule_student_payment cssp
+            LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
+            LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
+            LEFT JOIN class_group_student_mapper cgsm ON cssp.user_id_=cgsm.user_id_ AND cssp.class_group_id_=cgsm.class_group_id_
+        WHERE
+            cssp.course_schedule_id_ =#{courseScheduleId}
+            AND su.id_ IS NOT NULL
+            AND cgsm.status_!='QUIT' AND cgsm.status_!='QUIT_SCHOOL'
+    </select>
+
     <update id="deleteStudentByMusicGroupId" parameterType="map">
         update class_group_student_mapper set status_ = 'QUIT',update_time_ = NOW()
         where class_group_id_ in (select id_ from class_group where music_group_id_ = #{musicGroupId}) and user_id_ = #{userId}

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

@@ -1923,12 +1923,64 @@
 
     <sql id="endFindCourseSchedulesCondition">
         <where>
-            <if test="courseScheduleIds != null">
+            <if test="search != null">
+                AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_ = #{search}
+                  <if test="groups != null and groupId==null">
+                      OR cs.music_group_id_ IN
+                      <foreach collection="groups" item="group" open="(" close=")" separator=",">
+                          #{group.id}
+                      </foreach>
+                  </if>
+                  <if test="courseIds != null and groupId==null">
+                    OR cs.id_ IN
+                    <foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+                        #{courseId}
+                    </foreach>
+                  </if>
+                )
+            </if>
+            <if test="groups != null and groupId!=null">
+                AND cs.music_group_id_ IN
+                <foreach collection="groups" item="group" open="(" close=")" separator=",">
+                    #{group.id}
+                </foreach>
+            </if>
+            <if test="courseIds != null and groupId!=null">
                 AND cs.id_ IN
-                <foreach collection="courseScheduleIds" item="courseId" open="(" close=")" separator=",">
+                <foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
                     #{courseId}
                 </foreach>
             </if>
+            <if test="teacherIdList != null">
+                AND FIND_IN_SET(cs.actual_teacher_id_,#{teacherIdList})
+            </if>
+            <if test="groupType != null">
+                AND cs.group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="groupId != null">
+                AND cs.music_group_id_=#{groupId}
+            </if>
+            <if test="classGroupId != null">
+                AND cs.class_group_id_=#{classGroupId}
+            </if>
+            <if test="startTime!=null and endTime==null">
+                AND cs.class_date_ &gt; DATE_FORMAT(#{startTime},"%Y-%m-%d")
+            </if>
+            <if test="startTime==null and endTime!=null">
+                AND cs.class_date_ &lt; DATE_FORMAT(#{endTime},"%Y-%m-%d")
+            </if>
+            <if test="startTime!=null and endTime!=null">
+                AND cs.class_date_ BETWEEN DATE_FORMAT(#{startTime},"%Y-%m-%d") AND DATE_FORMAT(#{endTime},"%Y-%m-%d")
+            </if>
+            <if test="courseStatus!=null">
+                AND cs.status_ = #{courseStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="courseType!=null">
+                AND cs.type_ = #{courseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="schoolId!=null">
+                AND cs.schoole_id_ = #{schoolId}
+            </if>
         </where>
     </sql>
 

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

@@ -243,7 +243,7 @@
     <select id="queryVipStudentPer" resultType="java.lang.Integer">
 		SELECT cssp.user_id_ FROM course_schedule_student_payment cssp
 		LEFT JOIN vip_group vg ON cssp.music_group_id_ = vg.id_
-		WHERE vg.status_ IN (2,4) AND cssp.group_type_ = 'VIP'
+		WHERE vg.group_status_ IN (2,4) AND cssp.group_type_ = 'VIP'
 		GROUP BY cssp.user_id_
 	</select>
     <select id="countCourseStudentNum" resultType="java.util.Map">

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

@@ -37,7 +37,7 @@
                 AND FIND_IN_SET(g.organ_id_,#{organIdList})
             </if>
             <if test="vipGroupStatus!=null">
-                AND g.status_=#{vipGroupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+                AND g.group_status_=#{vipGroupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
         </where>
     </sql>

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -138,6 +138,13 @@
             #{courseScheduleId}
         </foreach>
     </delete>
+    <delete id="deleteStudentAttendancesByCourseAndUsers">
+        DELETE FROM student_attendance WHERE course_schedule_id_ = #{courseScheduleId}
+        AND user_id_ IN
+        <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+    </delete>
 
     <resultMap id="studentAttendanceViewUtilEntity" type="com.ym.mec.biz.dal.dto.StudentAttendanceViewDto">
         <result property="classGroupId" column="class_group_id_"/>
@@ -148,6 +155,7 @@
         <result property="subjectId" column="subject_id_"/>
         <result property="subjectName" column="subject_name_"/>
         <result property="avatar" column="avatar_"/>
+        <result property="phone" column="phone_"/>
         <result property="status" column="status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
@@ -390,6 +398,7 @@
             <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
                 #{courseScheduleId}
             </foreach>
+        AND (update_time_!='1970-01-01 00:00:00' OR update_time_ IS NULL)
         GROUP BY
             course_schedule_id_
     </select>

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

@@ -528,18 +528,18 @@
         <result property="totalClassTimes" column="total_class_times_"/>
     </resultMap>
     <select id="findStudentVipGroupClass" resultMap="StudentManageVipGroupClassDto">
-        SELECT vg.id_,vg.name_ vip_group_name_,vg.status_,vg.user_id_,cg.student_num_,
+        SELECT vg.id_,vg.name_ vip_group_name_,vg.group_status_ status_,vg.user_id_,cg.student_num_,
         vgc.name_,vg.courses_start_date,cg.current_class_times_,cg.total_class_times_
         FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         LEFT JOIN vip_group vg ON cg.music_group_id_ = vg.id_
         LEFT JOIN vip_group_activity vgc ON vgc.id_ = vg.vip_group_activity_id_
-        WHERE cg.group_type_ = 'VIP' AND cgsm.user_id_ = #{studentId} AND vg.status_ != 3
+        WHERE cg.group_type_ = 'VIP' AND cgsm.user_id_ = #{studentId} AND vg.group_status_ != 3
         <if test="vipGroupName != null">
             AND vg.name_ LIKE CONCAT('%',#{vipGroupName},'%')
         </if>
         <if test="vipGroupStatus != null">
-            AND vg.status_ = #{vipGroupStatus}
+            AND vg.group_status_ = #{vipGroupStatus}
         </if>
         ORDER BY vg.create_time_ DESC
         <include refid="global.limit"/>
@@ -549,12 +549,12 @@
         FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         LEFT JOIN vip_group vg ON cg.music_group_id_ = vg.id_
-        WHERE cg.group_type_ = 'VIP' AND cgsm.user_id_ = #{studentId} AND vg.status_ != 3
+        WHERE cg.group_type_ = 'VIP' AND cgsm.user_id_ = #{studentId} AND vg.group_status_ != 3
         <if test="vipGroupName != null">
             AND vg.name_ LIKE CONCAT('%',#{vipGroupName},'%')
         </if>
         <if test="vipGroupStatus != null">
-            AND vg.status_ = #{vipGroupStatus}
+            AND vg.group_status_ = #{vipGroupStatus}
         </if>
     </select>
     <sql id="queryHasCourseSql">
@@ -656,7 +656,7 @@
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
         WHERE cssp.id_ IS NOT NULL AND su.user_type_ LIKE '%STUDENT%' AND (sr.music_group_status_ != 'QUIT' OR sr.id_ IS NULL) AND su.password_ IS NULL
-        AND (mg.status_ = 'PROGRESS' OR vg.status_ IN (2,4))
+        AND (mg.status_ = 'PROGRESS' OR vg.group_status_ IN (2,4))
         <if test="organId != null and organId != ''">
             AND FIND_IN_SET(su.organ_id_,#{organId})
         </if>

+ 13 - 15
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -24,7 +24,7 @@
         <result column="organ_id_list_" property="organIdList"/>
         <result column="vip_group_activity_id_" property="vipGroupActivityId"/>
         <result column="vip_group_activity_name_" property="vipGroupActivityName"/>
-        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="group_status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="online_classes_unit_price_" property="onlineClassesUnitPrice"/>
         <result column="offline_classes_unit_price_" property="offlineClassesUnitPrice"/>
         <result column="total_price_" property="totalPrice"/>
@@ -164,7 +164,7 @@
                 AND vg.user_id_=#{teacherId}
             </if>
             <if test="status != null">
-                AND vg.status_ = #{status}
+                AND vg.group_status_ = #{status}
             </if>
             <if test="activityId!=null">
                 AND vg.vip_group_activity_id_=#{activityId}
@@ -206,7 +206,7 @@
         </selectKey>
         -->
         INSERT INTO vip_group
-        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,audit_status_,courses_start_date,course_schedules_json_,student_id_list_)
+        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,group_status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,audit_status_,courses_start_date,course_schedules_json_,student_id_list_)
         VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{organId},#{stopReason},#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseStartDate},#{courseSchedulesJson},#{studentIdList})
     </insert>
 
@@ -226,9 +226,7 @@
             <if test="onlineClassesNum != null">
                 online_classes_num_ = #{onlineClassesNum},
             </if>
-            <if test="updateTime != null">
-                update_time_ = NOW(),
-            </if>
+            update_time_ = NOW(),
             <if test="singleClassMinutes != null">
                 single_class_minutes_ = #{singleClassMinutes},
             </if>
@@ -251,7 +249,7 @@
                 vip_group_activity_id_ = #{vipGroupActivityId},
             </if>
             <if test="status != null">
-                status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                group_status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="onlineClassesUnitPrice != null">
                 online_classes_unit_price_ = #{onlineClassesUnitPrice},
@@ -304,7 +302,7 @@
     <sql id="studentVipGroupQueryCondition">
         <where>
             vg.audit_status_='PASS'
-            AND vg.status_=1
+            AND vg.group_status_=1
             AND vg.courses_expire_date_ &gt;= DATE_FORMAT(NOW(),'%Y%m%d')
             AND vg.registration_start_time_ &lt;= NOW()
             AND vg.courses_start_date &gt; NOW()
@@ -666,7 +664,7 @@
     </select>
     <select id="countTeacherVipGroups" resultType="int">
         SELECT COUNT(vg.id_) FROM vip_group vg
-        WHERE vg.user_id_ = #{teacherId} AND vg.status_!=3
+        WHERE vg.user_id_ = #{teacherId} AND vg.group_status_!=3
     </select>
 
     <select id="countTeacherVipClass" resultType="java.lang.Integer">
@@ -695,7 +693,7 @@
     </resultMap>
     
     <select id="getTeacherVipClass" resultMap="getTeacherVipClassMap">
-        SELECT vg.id_ vip_group_id_,vg.name_ vip_group_name_,vg.status_,vg.audit_status_,vg.create_time_,
+        SELECT vg.id_ vip_group_id_,vg.name_ vip_group_name_,vg.group_status_,vg.audit_status_,vg.create_time_,
         vg.payment_expire_date_,vg.courses_expire_date_,vg.online_classes_unit_price_,vg.offline_classes_unit_price_,
         cg.total_class_times_,cg.current_class_times_,cg.id_ class_group_id_,cg.student_num_,vg.vip_group_activity_id_
         FROM vip_group vg
@@ -735,7 +733,7 @@
     </select>
     
     <select id="queryVipGroupNum" resultType="map">
-    	select count(*) total,sum(case when status_ = 2 then 1 else 0 end) applying_num_,sum(case when status_ = 4 then 1 else 0 end) finished_num_ from vip_group 
+    	select count(*) total,sum(case when group_status_ = 2 then 1 else 0 end) applying_num_,sum(case when group_status_ = 4 then 1 else 0 end) finished_num_ from vip_group
     	<where>
     		<if test="organId != null">
                 FIND_IN_SET(organ_id_,#{organId})
@@ -759,7 +757,7 @@
         WHERE
           (payment_expire_date_ &lt; DATE_FORMAT(NOW( ),'%Y-%m-%d')
           OR courses_start_date &lt; NOW())
-          AND status_ =1
+          AND group_status_ =1
     </select>
 
     <select id="countStudentPaymentNum" resultType="int">
@@ -850,7 +848,7 @@
 	                vip_group_activity_id_ = #{item.vipGroupActivityId},
 	            </if>
 	            <if test="item.status != null">
-	                status_ = #{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+	                group_status_ = #{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 	            </if>
 	            <if test="item.onlineClassesUnitPrice != null">
 	                online_classes_unit_price_ = #{item.onlineClassesUnitPrice},
@@ -886,10 +884,10 @@
     
     <select id="queryRequiredOverList" resultMap="VipGroup">
     	select vg.* from vip_group vg left join class_group cg on vg.id_ = cg.music_group_id_
-    	where vg.status_ = 2 and cg.total_class_times_ = cg.current_class_times_ and cg.total_class_times_ &gt; 0
+    	where vg.group_status_ = 2 and cg.total_class_times_ = cg.current_class_times_ and cg.total_class_times_ &gt; 0
     </select>
     <select id="queryNormalStatusList" resultMap="VipGroup">
-        SELECT * FROM vip_group WHERE status_!=3 AND status_!=4
+        SELECT * FROM vip_group WHERE group_status_!=3 AND group_status_!=4
     </select>
 
     <select id="findVipGroupInfo" resultMap="VipGroup">

+ 4 - 2
mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java

@@ -2,6 +2,7 @@ package com.ym.mec.util.date;
 
 import org.apache.commons.lang3.StringUtils;
 
+import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -1118,13 +1119,14 @@ public class DateUtil {
 
 	public static void main(String[] args) throws ParseException {
 		// DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
-		// DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		// System.out.println(daysBetween(df.parse("2017-07-20 10:07:42"), df.parse(df.format(new Date()))));
+		DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//		 System.out.println(daysBetween(df.parse("2017-07-20 10:07:42"), df.parse(df.format(new Date()))));
 		System.out.println(getWeekMondayWithDate(new Date()));
 		System.out.println(getNextWeekMonday(new Date()));
 		System.out.println(getNextWeekSunday(new Date()));
 		System.out.println(dayEnd(new Date()));
 		System.out.println(format(getLastDayOfMonth(new Date()),CHINESE_DATA_FORMAT));
+		System.out.println(monthsBetween(df1.parse("2020-01-18 12:00:00"),df1.parse("2020-04-19 12:00:00")));
 
 	}
 }

+ 43 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentAttendanceController.java

@@ -0,0 +1,43 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.biz.dal.dto.StudentAttendanceDto;
+import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.StudentAttendanceService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/1/17
+ */
+@RequestMapping("studentAttendance")
+@Api(tags = "学生签到服务")
+@RestController
+public class StudentAttendanceController extends BaseController {
+
+    @Autowired
+    private ClassGroupService classGroupService;
+    @Autowired
+    private StudentAttendanceService studentAttendanceService;
+
+    @ApiOperation(value = "查询课程学生列表")
+    @GetMapping("/findAttendanceStudentByCourseWithPage")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/findAttendanceStudentByCourseWithPage')")
+    public Object findAttendanceStudentByCourseWithPage(CourseScheduleQueryInfo queryInfo){
+        return succeed(classGroupService.findAttendanceStudentByCourseWithPage(queryInfo));
+    }
+
+    @ApiOperation(value = "更新学生签到记录")
+    @PostMapping("/updateStudentAttendances")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/updateStudentAttendances')")
+    public Object updateStudentAttendances(@RequestBody StudentAttendanceDto studentAttendanceInfo){
+        studentAttendanceService.updateStudentAttendances(studentAttendanceInfo);
+        return succeed();
+    }
+
+}

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.service.TeacherAttendanceService;
 import com.ym.mec.common.controller.BaseController;
@@ -8,6 +9,7 @@ import io.swagger.annotations.ApiOperation;
 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.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -32,4 +34,12 @@ public class TeacherAttendanceController extends BaseController {
     public Object getTeacherPersonalAttendances(Integer courseScheduleId){
         return succeed(teacherAttendanceService.getTeacherPersonalAttendance(courseScheduleId));
     }
+
+    @ApiOperation(value = "更新教师签到记录")
+    @PostMapping("/updateTeacherAttendance")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/updateTeacherAttendance')")
+    public Object updateTeacherAttendance(TeacherAttendance teacherAttendance){
+        teacherAttendanceService.updateTeacherAttendance(teacherAttendance);
+        return succeed();
+    }
 }

+ 1 - 2
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -76,8 +76,7 @@ public class VipGroupManageController extends BaseController {
         }else {
             vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(Integer.parseInt(employee.getOrganIdList()));
         }
-        vipGroupService.createVipGroup(vipGroupApplyDto);
-        return succeed();
+        return succeed(vipGroupService.createVipGroup(vipGroupApplyDto));
     }
 
     @ApiOperation(value = "全查询")

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceController.java → mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceOldController.java

@@ -11,10 +11,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-@RequestMapping("studentAttendance")
+@RequestMapping("studentAttendanceOld")
 @Api(tags = "学生考勤服务")
 @RestController
-public class StudentAttendanceController extends BaseController {
+public class StudentAttendanceOldController extends BaseController {
 
     @Autowired
     private StudentAttendanceService studentAttendanceService;