Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
#	mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
#	mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
Joburgess 5 years ago
parent
commit
2c17e0d093

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupDao.java

@@ -111,5 +111,17 @@ public interface DemoGroupDao extends BaseDAO<Long, DemoGroup> {
      */
      */
     List<Map<Integer, Long>> countTeacherDemoGroupNum(String teacherIds);
     List<Map<Integer, Long>> countTeacherDemoGroupNum(String teacherIds);
 
 
-
+    /**
+     * 查询vip课程数
+     * @param organId
+     * @return
+     */
+    Map<String, Integer> queryDemoGroupNum(Integer organId);
+    
+    /**
+     * 
+     * @param organId
+     * @return
+     */
+    Integer queryCurrentMonthCoursesNum(Integer organId);
 }
 }

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

@@ -119,4 +119,11 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @return
      * @return
      */
      */
     Map<String,Integer> queryOrganMusicGroupNum(Integer ogranId);
     Map<String,Integer> queryOrganMusicGroupNum(Integer ogranId);
+    
+    /**
+     * 查询本月乐团课程数
+     * @param organId
+     * @return
+     */
+    Integer queryCurrentMonthCoursesNum(Integer organId);
 }
 }

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

@@ -135,4 +135,12 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
      * @return java.util.Date
      * @return java.util.Date
      */
      */
     Date findLatestSignInDate(Integer classGroupId);
     Date findLatestSignInDate(Integer classGroupId);
+
+    /**
+     * 根据签到状态和课程编号查询签到记录
+     * @param userId
+     * @param courseScheduleId
+     * @return
+     */
+    StudentAttendance findByStatusAndCourseScheduleId(@Param("userId") Integer userId, @Param("courseScheduleId") int courseScheduleId);
 }
 }

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

@@ -215,5 +215,5 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * 查询学生数
      * 查询学生数
      * @return
      * @return
      */
      */
-    Map<String,Integer> queryStudentNum();
+    Map<String,Integer> queryStudentNum(Integer organId);
 }
 }

+ 96 - 79
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -28,8 +28,9 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.VipGroup>
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.VipGroup>
 	 * @describe 根据部门获取
 	 * @describe 根据部门获取
 	 */
 	 */
-	List<VipGroup> findAllByOrgan(Map<String,Object> params);
-	int countVipGroupByOrgan(Map<String,Object> params);
+	List<VipGroup> findAllByOrgan(Map<String, Object> params);
+
+	int countVipGroupByOrgan(Map<String, Object> params);
 
 
 	/**
 	/**
 	 * @Author: Joburgess
 	 * @Author: Joburgess
@@ -38,8 +39,9 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.VipGroupStudentDto>
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.VipGroupStudentDto>
 	 * @describe 获取小课学员
 	 * @describe 获取小课学员
 	 */
 	 */
-	List<VipGroupStudentDto> findVipGroupStudents(Map<String,Object> params);
-	int countVipGroupStudents(Map<String,Object> params);
+	List<VipGroupStudentDto> findVipGroupStudents(Map<String, Object> params);
+
+	int countVipGroupStudents(Map<String, Object> params);
 
 
 	/**
 	/**
 	 * @Author: Joburgess
 	 * @Author: Joburgess
@@ -48,8 +50,9 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.VipGroupCourseSchduleRecordDto>
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.VipGroupCourseSchduleRecordDto>
 	 * @describe 获取vip课教学记录
 	 * @describe 获取vip课教学记录
 	 */
 	 */
-	List<VipGroupCourseSchduleRecordDto> findTeachingRecord(Map<String,Object> params);
-	int countTeachingRecord(Map<String,Object> params);
+	List<VipGroupCourseSchduleRecordDto> findTeachingRecord(Map<String, Object> params);
+
+	int countTeachingRecord(Map<String, Object> params);
 
 
 	/**
 	/**
 	 * @Author: Joburgess
 	 * @Author: Joburgess
@@ -94,7 +97,7 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.StudentVipGroupShowListDto>
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.StudentVipGroupShowListDto>
 	 * @describe 学生端获取vip课列表
 	 * @describe 学生端获取vip课列表
 	 */
 	 */
-	List<StudentVipGroupShowListDto> findVipGroups(Map<String,Object> params);
+	List<StudentVipGroupShowListDto> findVipGroups(Map<String, Object> params);
 
 
 	/**
 	/**
 	 * @Author: Joburgess
 	 * @Author: Joburgess
@@ -103,7 +106,7 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return int
 	 * @return int
 	 * @describe 统计vip数
 	 * @describe 统计vip数
 	 */
 	 */
-	int countVipGorups(Map<String,Object> params);
+	int countVipGorups(Map<String, Object> params);
 
 
 	/**
 	/**
 	 * @Author: Joburgess
 	 * @Author: Joburgess
@@ -139,61 +142,61 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
 	 * @describe 获取小课考勤记录
 	 * @describe 获取小课考勤记录
 	 */
 	 */
-    List<CourseSchedule> findVipGroupAttendances(Map<String,Object> params);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/3
-     * @params [params]
-     * @return int
-     * @describe 统计小课考勤记录数
-     */
-    int countVipGroupAttendance(Map<String,Object> params);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/3
-     * @params [vipGroupId]
-     * @return com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto
-     * @describe 获取vip课详情
-     */
-    StudentVipGroupDetailDto getVipGroupDetail(Long vipGroupId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/3
-     * @params [vipGroupId]
-     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Integer>>
-     * @describe 统计剩余课时数
-     */
-    List<Map<String,Integer>> countSurplusClassTimes(Long vipGroupId);
-
-    /**
-     * @describe 统计vip课已上课程数量
-     * @author Joburgess
-     * @date 2019/10/21
-     * @param vipGroupIds: vip课编号列表
-     * @return java.util.List<java.util.Map<java.lang.Long,java.lang.Integer>>
-     */
-    List<Map<Long,Integer>> countVipGroupOverCourse(List<Long> vipGroupIds);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/12
-     * @params [vipGroupId]
-     * @return java.math.BigDecimal
-     * @describe 统计学生vip课未上课时费用
-     */
-    List<Map<Integer,BigDecimal>> countSurplusCourseFee(Long vipGroupId);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/14
-     * @params [teacherId]
-     * @return int
-     * @describe 统计老师开启的vip课数
-     */
-    int countTeacherVipGroups(Long teacherId);
+	List<CourseSchedule> findVipGroupAttendances(Map<String, Object> params);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/3
+	 * @params [params]
+	 * @return int
+	 * @describe 统计小课考勤记录数
+	 */
+	int countVipGroupAttendance(Map<String, Object> params);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/3
+	 * @params [vipGroupId]
+	 * @return com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto
+	 * @describe 获取vip课详情
+	 */
+	StudentVipGroupDetailDto getVipGroupDetail(Long vipGroupId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/3
+	 * @params [vipGroupId]
+	 * @return java.util.List<java.util.Map<java.lang.String,java.lang.Integer>>
+	 * @describe 统计剩余课时数
+	 */
+	List<Map<String, Integer>> countSurplusClassTimes(Long vipGroupId);
+
+	/**
+	 * @describe 统计vip课已上课程数量
+	 * @author Joburgess
+	 * @date 2019/10/21
+	 * @param vipGroupIds: vip课编号列表
+	 * @return java.util.List<java.util.Map<java.lang.Long,java.lang.Integer>>
+	 */
+	List<Map<Long, Integer>> countVipGroupOverCourse(List<Long> vipGroupIds);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/12
+	 * @params [vipGroupId]
+	 * @return java.math.BigDecimal
+	 * @describe 统计学生vip课未上课时费用
+	 */
+	List<Map<Integer, BigDecimal>> countSurplusCourseFee(Long vipGroupId);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/14
+	 * @params [teacherId]
+	 * @return int
+	 * @describe 统计老师开启的vip课数
+	 */
+	int countTeacherVipGroups(Long teacherId);
 
 
 	/**
 	/**
 	 * 根据教师编号获取老师vip课数量
 	 * 根据教师编号获取老师vip课数量
@@ -208,20 +211,34 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return
 	 * @return
 	 */
 	 */
 	List<TeacherVipClassInfoDto> getTeacherVipClass(Map<String, Object> params);
 	List<TeacherVipClassInfoDto> getTeacherVipClass(Map<String, Object> params);
-    
-    /**
-     * 根据老师查询vip课教学点
-     * @param userId
-     * @return
-     */
-    List<School> querySchoolByUserId(Integer userId);
-
-    /**
-     * @describe 根据课程编号获取vip课
-     * @author Joburgess
-     * @date 2019/10/23
-     * @param courseScheduleId: 课程编号
-     * @return com.ym.mec.biz.dal.entity.VipGroup
-     */
-    VipGroup findByCourseSchedule(Integer courseScheduleId);
+
+	/**
+	 * 根据老师查询vip课教学点
+	 * @param userId
+	 * @return
+	 */
+	List<School> querySchoolByUserId(Integer userId);
+
+	/**
+	 * @describe 根据课程编号获取vip课
+	 * @author Joburgess
+	 * @date 2019/10/23
+	 * @param courseScheduleId: 课程编号
+	 * @return com.ym.mec.biz.dal.entity.VipGroup
+	 */
+	VipGroup findByCourseSchedule(Integer courseScheduleId);
+
+	/**
+	 * 查询vip课数目
+	 * @param organId
+	 * @return
+	 */
+	Map<String, Integer> queryVipGroupNum(Integer organId);
+	
+	/**
+	 * 查询当月vip课数量
+	 * @param organId
+	 * @return
+	 */
+	Integer queryCurrentMonthCoursesNum(Integer organId);
 }
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubFeeSettingDto.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 package com.ym.mec.biz.dal.dto;
 
 
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
 import java.util.List;
 import java.util.List;
@@ -28,6 +29,17 @@ public class SubFeeSettingDto {
     @ApiModelProperty(value = "乐团编号(修改时用)",required = false)
     @ApiModelProperty(value = "乐团编号(修改时用)",required = false)
     private String musicGroupId;
     private String musicGroupId;
 
 
+    @ApiModelProperty(value = "乐团状态(修改时用)",required = false)
+    private MusicGroupStatusEnum musicGroupStatus;
+
+    public MusicGroupStatusEnum getMusicGroupStatus() {
+        return musicGroupStatus;
+    }
+
+    public void setMusicGroupStatus(MusicGroupStatusEnum musicGroupStatus) {
+        this.musicGroupStatus = musicGroupStatus;
+    }
+
     public String getMusicGroupId() {
     public String getMusicGroupId() {
         return musicGroupId;
         return musicGroupId;
     }
     }

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

@@ -3,6 +3,8 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.CourseScheduleResponse;
 import com.ym.mec.biz.dal.dto.CourseScheduleResponse;
 import com.ym.mec.biz.dal.dto.StudentPersonalAttendanceDto;
 import com.ym.mec.biz.dal.dto.StudentPersonalAttendanceDto;
 import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.biz.dal.entity.StudentAttendance;
+import com.ym.mec.biz.dal.enums.SignStatusEnum;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.page.QueryInfo;
@@ -63,4 +65,11 @@ public interface StudentAttendanceService extends BaseService<Long, StudentAtten
 	 */
 	 */
 	CourseScheduleResponse getStatisticsInfo(Integer classGroupId);
 	CourseScheduleResponse getStatisticsInfo(Integer classGroupId);
 
 
+	/**
+	 * VIP课学生考勤
+	 * @param courseScheduleId
+	 * @param userId
+	 * @param statusEnum
+	 */
+	void addStudentAttendanceRecord(Integer courseScheduleId, Integer userId, StudentAttendanceStatusEnum statusEnum);
 }
 }

+ 12 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -202,6 +202,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             if(musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT && musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT_FAILED){
             if(musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT && musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT_FAILED){
                 throw new Exception("当前乐团状态不支持此操作");
                 throw new Exception("当前乐团状态不支持此操作");
             }
             }
+            if(subFeeSettingDto.getMusicGroupStatus() == null){
+                throw new Exception("参数校验异常");
+            }
+            musicGroup.setStatus(subFeeSettingDto.getMusicGroupStatus());
+            musicGroup.setUpdateTime(new Date());
+            musicGroupDao.update(musicGroup);
             //记录日志信息
             //记录日志信息
             musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"修改乐团计划声部、乐器",sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
             musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"修改乐团计划声部、乐器",sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
             //删除原有的乐团声部规划
             //删除原有的乐团声部规划
@@ -369,11 +375,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroupId, null);
         List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroupId, null);
         Map<Integer,String> map = new HashMap<>(registrations.size());
         Map<Integer,String> map = new HashMap<>(registrations.size());
         registrations.forEach(e->{
         registrations.forEach(e->{
-            map.put(e.getUserId(),e.getParentsPhone());
+            map.put(e.getUserId(),e.getUserId() + "");
         });
         });
-        String content = sysMessageConfigDao.findContent(MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_CLOSE.getCode());
-        content = MessageFormatter.arrayFormat(content,sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
-        sysMessageService.batchSendMessage(MessageSender.JIGUANG,"",content,map,new Date(),0,"");
+        if(map.size() > 0){
+            String content = sysMessageConfigDao.findContent(MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_CLOSE.getCode());
+            content = MessageFormatter.arrayFormat(content,sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG,"",content,map,new Date(),0,"");
+        }
         //记录建团日志
         //记录建团日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"取消乐团",sysUser.getId(),""));
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"取消乐团",sysUser.getId(),""));
         return true;
         return true;

+ 24 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -5,10 +5,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.service.StudentAttendanceService;
 import com.ym.mec.biz.service.StudentAttendanceService;
@@ -302,4 +299,27 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		}
 		}
 		return courseScheduleResp;
 		return courseScheduleResp;
 	}
 	}
+
+	@Override
+	public void addStudentAttendanceRecord(Integer courseScheduleId, Integer userId, StudentAttendanceStatusEnum statusEnum) {
+		StudentAttendance studentAttendance = studentAttendanceDao.findByStatusAndCourseScheduleId(userId,courseScheduleId);
+		if(studentAttendance == null){
+			studentAttendance = new StudentAttendance();
+			ClassGroup classGroup = classGroupDao.findByCourseSchedule(courseScheduleId);
+			CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
+			if(classGroup != null && courseSchedule != null){
+				studentAttendance.setClassGroupId(classGroup.getId());
+				studentAttendance.setCourseScheduleId(courseScheduleId.longValue());
+				studentAttendance.setCurrentClassTimes(classGroup.getCurrentClassTimes());
+				studentAttendance.setMusicGroupId(classGroup.getMusicGroupId());
+				studentAttendance.setStatus(statusEnum);
+				studentAttendance.setUserId(userId);
+				studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
+				studentAttendance.setRemark(statusEnum==StudentAttendanceStatusEnum.NORMAL?"":"课程结束后学生未到");
+				studentAttendanceDao.insert(studentAttendance);
+			}else {
+				throw new BizException("学员签到数据异常");
+			}
+		}
+	}
 }
 }

+ 16 - 0
mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml

@@ -269,4 +269,20 @@
         WHERE FIND_IN_SET(dg.user_id_,#{teacherIds}) GROUP BY user_id_
         WHERE FIND_IN_SET(dg.user_id_,#{teacherIds}) GROUP BY user_id_
 	</select>
 	</select>
 
 
+	<select id="queryDemoGroupNum" resultType="map">
+		select sum(case when dgcp.status_ = 0 then 1 else 0 end) unbooked_num_,sum(case when dgcp.status_ = 1 then 1 else 0 end) booked_num_ from demo_group_courses_plan dgcp left join demo_group dg on dgcp.demo_group_id_ = dg.id_
+		<where>
+    		<if test="organId != null">
+    			FIND_IN_SET(#{organId},dg.organ_id_list_)
+    		</if>
+    	</where> 
+	</select>
+    
+    <select id="queryCurrentMonthCoursesNum" resultType="int">
+    	select count(cs.id_) from course_schedule cs left join demo_group_class_group_mapper vgcgm on cs.class_group_id_ = vgcgm.class_group_id_ left join demo_group vg on vgcgm.demo_group_id_ = vg.id_ where cs.type_ in ('DEMO')
+  		and DATE_FORMAT(cs.class_date_, '%Y%m' ) = DATE_FORMAT(CURDATE() , '%Y%m')
+   		<if test="organId != null">
+   			and find_in_set(#{organId},vg.organ_id_list_)
+   		</if>
+    </select>
 </mapper>
 </mapper>

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

@@ -321,4 +321,12 @@
     		</if>
     		</if>
     	</where>
     	</where>
   	</select>
   	</select>
+  	
+  	<select id="queryCurrentMonthCoursesNum" resultType="int">
+  		select count(cs.id_) from course_schedule cs left join class_group cg on cs.class_group_id_ = cg.id_ left join music_group mg on cg.music_group_id_ = mg.id_ where cs.type_ not in ('VIP','DEMO')
+  		and DATE_FORMAT(cs.class_date_, '%Y%m' ) = DATE_FORMAT(CURDATE() , '%Y%m')
+   		<if test="organId != null">
+   			and mg.organ_id_ = #{organId}
+   		</if>
+  	</select>
 </mapper>
 </mapper>

+ 5 - 7
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -32,14 +32,9 @@
     <!-- 向数据库增加一条记录 -->
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentAttendance" useGeneratedKeys="true"
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentAttendance" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
             keyColumn="id" keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
         INSERT INTO student_attendance
         INSERT INTO student_attendance
-        (id_,music_group_id_,class_group_id_,course_schedule_id_,user_id_,teacher_id_,status_,create_time_,remark_,current_class_times_)
-        VALUES(#{id},#{musicGroupId},#{classGroupId},#{courseScheduleId},#{userId},#{teacherId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),#{remark},#{currentClassTimes})
+        (music_group_id_,class_group_id_,course_schedule_id_,user_id_,teacher_id_,status_,create_time_,remark_,current_class_times_)
+        VALUES(#{musicGroupId},#{classGroupId},#{courseScheduleId},#{userId},#{teacherId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),#{remark},#{currentClassTimes})
     </insert>
     </insert>
 
 
     <insert id="addStudentAttendances" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
     <insert id="addStudentAttendances" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
@@ -299,4 +294,7 @@
             student_attendance
             student_attendance
             WHERE class_group_id_=#{classGroupId}
             WHERE class_group_id_=#{classGroupId}
     </select>
     </select>
+    <select id="findByStatusAndCourseScheduleId" resultMap="StudentAttendance">
+        SELECT * FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId} AND user_id_ = #{userId}
+    </select>
 </mapper>
 </mapper>

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

@@ -209,7 +209,7 @@
     </select>
     </select>
 
 
     <select id="queryByDealStatus" resultMap="StudentPaymentOrder" parameterType="map">
     <select id="queryByDealStatus" resultMap="StudentPaymentOrder" parameterType="map">
-        SELECT * FROM student_payment_order WHERE music_group_id_= #{musicGroupId} AND user_id_=#{userId} AND type_ =
+        SELECT * FROM student_payment_order WHERE music_group_id_= #{musicGroupId} AND type_ =
         #{type} AND status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         #{type} AND status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
     </select>
     </select>
 
 

+ 17 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -654,4 +654,21 @@
             LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
             LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
             WHERE cs.id_=#{courseScheduleId}
             WHERE cs.id_=#{courseScheduleId}
     </select>
     </select>
+    
+    <select id="queryVipGroupNum" resultType="map">
+    	select count(*) total,sum(case when status_ = 1 then 1 else 0 end) applying_num_,sum(case when status_ = 2 then 1 else 0 end) finished_num_ from vip_group 
+    	<where>
+    		<if test="organId != null">
+    			organ_id_ = #{organId}
+    		</if>
+    	</where>
+    </select>
+    
+    <select id="queryCurrentMonthCoursesNum" resultType="int">
+    	select count(cs.id_) from course_schedule cs left join vip_group_class_group_mapper vgcgm on cs.class_group_id_ = vgcgm.class_group_id_ left join vip_group vg on vgcgm.vip_group_id_ = vg.id_ where cs.type_ in ('VIP')
+  		and DATE_FORMAT(cs.class_date_, '%Y%m' ) = DATE_FORMAT(CURDATE() , '%Y%m')
+   		<if test="organId != null">
+   			and vg.organ_id_ = #{organId}
+   		</if>
+    </select>
 </mapper>
 </mapper>

+ 4 - 0
mec-im/pom.xml

@@ -84,6 +84,10 @@
       <version>2.8.1</version>
       <version>2.8.1</version>
     </dependency>
     </dependency>
     <dependency>
     <dependency>
+      <groupId>com.ym</groupId>
+      <artifactId>mec-biz</artifactId>
+    </dependency>
+    <dependency>
       <groupId>cn.rongcloud.im</groupId>
       <groupId>cn.rongcloud.im</groupId>
       <artifactId>server-sdk-java</artifactId>
       <artifactId>server-sdk-java</artifactId>
       <version>3.0.6</version>
       <version>3.0.6</version>

+ 22 - 4
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -9,11 +9,17 @@ import com.ym.dao.RoomDao;
 import com.ym.dao.RoomMemberDao;
 import com.ym.dao.RoomMemberDao;
 import com.ym.dao.UserDao;
 import com.ym.dao.UserDao;
 import com.ym.dao.WhiteboardDao;
 import com.ym.dao.WhiteboardDao;
-import com.ym.mec.im.IMHelper;
 import com.ym.job.ScheduleManager;
 import com.ym.job.ScheduleManager;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.enums.SignStatusEnum;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.biz.service.StudentAttendanceService;
+import com.ym.mec.biz.service.TeacherAttendanceService;
 import com.ym.mec.common.security.SecurityUtils;
 import com.ym.mec.common.security.SecurityUtils;
+import com.ym.mec.im.IMHelper;
 import com.ym.mec.im.message.*;
 import com.ym.mec.im.message.*;
 import com.ym.pojo.*;
 import com.ym.pojo.*;
 import com.ym.service.RoomService;
 import com.ym.service.RoomService;
@@ -62,6 +68,15 @@ public class RoomServiceImpl implements RoomService {
     private UserDao userDao;
     private UserDao userDao;
 
 
     @Autowired
     @Autowired
+    private TeacherDao teacherDao;
+
+    @Autowired
+    private TeacherAttendanceService teacherAttendanceService;
+
+    @Autowired
+    private StudentAttendanceService studentAttendanceService;
+
+    @Autowired
     private IMProperties imProperties;
     private IMProperties imProperties;
 
 
     @Autowired
     @Autowired
@@ -77,15 +92,18 @@ public class RoomServiceImpl implements RoomService {
     @Transactional
     @Transactional
     @Override
     @Override
     public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera) throws ApiException, Exception {
     public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera) throws ApiException, Exception {
-        String token = SecurityUtils.getAuthenticationValue();
-
         CheckUtils.checkArgument(userName != null, "userName must't be null");
         CheckUtils.checkArgument(userName != null, "userName must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
 
 
         log.info("joinRoom: roomId={}, userName={}, isAudience={}, isDisableCamera={}", roomId, userName, isAudience, isDisableCamera);
         log.info("joinRoom: roomId={}, userName={}, isAudience={}, isDisableCamera={}", roomId, userName, isAudience, isDisableCamera);
         roomId = "DAYA" + roomId;
         roomId = "DAYA" + roomId;
-//        String userId = getUser().getUserId().toString();
         String userId = sysUserFeignService.queryUserInfo().getId().toString();
         String userId = sysUserFeignService.queryUserInfo().getId().toString();
+        Teacher teacher = teacherDao.get(Integer.parseInt(userId));
+        if(teacher == null){
+            studentAttendanceService.addStudentAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), StudentAttendanceStatusEnum.NORMAL);
+        }else {
+            teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), SignStatusEnum.SIGN_IN,true);
+        }
 
 
         String display = "";
         String display = "";
         Date curTime = DateTimeUtils.currentUTC();
         Date curTime = DateTimeUtils.currentUTC();

+ 23 - 1
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -13,9 +13,11 @@ import org.springframework.web.bind.annotation.RestController;
 
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.DemoGroupDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.VipGroupDao;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
 
 
 @Api(tags = "首页")
 @Api(tags = "首页")
@@ -31,6 +33,12 @@ public class IndexController extends BaseController {
 	
 	
 	@Autowired
 	@Autowired
 	private StudentRegistrationDao studentRegistrationDao;
 	private StudentRegistrationDao studentRegistrationDao;
+	
+	@Autowired
+	private VipGroupDao vipGroupDao;
+	
+	@Autowired
+	private DemoGroupDao demoGroupDao;
 
 
 	@Autowired
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
 	private SysUserFeignService sysUserFeignService;
@@ -53,7 +61,21 @@ public class IndexController extends BaseController {
 		
 		
 		Map<String, Integer> teacherDatas = teacherDao.queryOrganTeacherNum(organId);
 		Map<String, Integer> teacherDatas = teacherDao.queryOrganTeacherNum(organId);
 		
 		
-		Map<String, Integer> studentDatas = studentRegistrationDao.queryStudentNum();
+		Map<String, Integer> studentDatas = studentRegistrationDao.queryStudentNum(organId);
+		
+		Map<String, Integer> vipDatas = vipGroupDao.queryVipGroupNum(organId);
+		
+		Map<String, Integer> demoDatas = demoGroupDao.queryDemoGroupNum(organId);
+		
+		Integer musicGroupNum = musicGroupDao.queryCurrentMonthCoursesNum(organId);
+		
+		Integer vipGroupNum = vipGroupDao.queryCurrentMonthCoursesNum(organId);
+		
+		Integer demoGroupNum = demoGroupDao.queryCurrentMonthCoursesNum(organId);
+		
+		//本月收入
+		
+		//本月支出
 
 
 		return succeed();
 		return succeed();
 	}
 	}