zouxuan 5 年之前
父節點
當前提交
125e83721d

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

@@ -518,4 +518,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
 	 */
 	List<CourseSchedule> findByClassGroups(@Param("classGroupIds") List<Integer> classGroupIds);
+
+	/**
+	 * 获取当前课程所有学员列表
+	 * @param courseScheduleId
+	 * @return
+	 */
+    List<Map<Integer, String>> findStudentMap(Integer courseScheduleId);
 }

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

@@ -4,6 +4,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.biz.dal.entity.StudentAttendance;
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.biz.dal.dto.Mapper;
@@ -87,4 +88,11 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
     int countTeacherAbnormalSignInClassTimes(@Param("organId") Integer organId,
                                              @Param("date") Date date,
                                              @Param("signInStatus") Integer signInStatus);
+
+    /**
+     * 封装未签到学员列表
+     * @param courseScheduleId
+     * @return
+     */
+    List<StudentAttendance> queryNoSignStudentRecord(Integer courseScheduleId);
 }

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

@@ -41,9 +41,7 @@ public class StudentManageServiceImpl implements StudentManageService {
 
     @Override
     public PageInfo findStudentsByOrganId(StudentManageQueryInfo queryInfo) {
-        SysUser user = sysUserFeignService.queryUserInfo();
         PageInfo<StudentManageListDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-        queryInfo.setOrganId(user.getOrganId());
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 

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

@@ -20,7 +20,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 com.ym.mec.util.string.MessageFormatter;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -194,7 +193,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         //增加报名学生数
 //        musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(),1);
         //报名成功后,发送短信
-        String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL + studentRegistration.getMusicGroupId());
+        String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + studentRegistration.getMusicGroupId();
         String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
         Subject subject = subjectDao.get(studentRegistration.getActualSubjectId());
         MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
@@ -203,7 +202,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         map.put(studentRegistration.getUserId(),studentRegistration.getParentsPhone());
         sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,
                 MessageTypeEnum.SMS_APPLY_MESSAGE,map,null,0,"",
-                studentRegistration.getParentsName(),subject.getName(),studentApplyUrl,musicGroup.getApplyExpireDate(),serverPhone);
+                studentRegistration.getParentsName(),subject.getName(),studentApplyUrl,
+                DateUtil.format(musicGroup.getApplyExpireDate(),DateUtil.DATE_FORMAT_MIN),serverPhone);
         return studentRegistration;
     }
 

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
@@ -208,9 +209,27 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(isAttendance){
 			if(SignStatusEnum.SIGN_OUT.equals(signStatus)){
 				teacherAttendanceDao.update(teacherAttendance);
+				//教师签退后,给未签到学员添加旷课记录
+				//封装未签到学员签到列表
+				List<StudentAttendance> studentAttendances = teacherAttendanceDao.queryNoSignStudentRecord(courseScheduleId);
+				studentAttendances.forEach(e->{
+					e.setTeacherId(userId);
+					e.setStatus(StudentAttendanceStatusEnum.TRUANT);
+					e.setRemark("学员未到,自动补旷课");
+				});
+				studentAttendanceDao.addStudentAttendances(studentAttendances);
 			}
 		}else{
 			teacherAttendanceDao.insert(teacherAttendance);
+			//教师到课推送
+			if(courseSchedule.getTeachMode() == TeachModeEnum.ONLINE){
+				//获取所有当前课程的学生列表
+				Map<Integer,String> userMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(courseScheduleDao.findStudentMap(courseScheduleId))),HashMap.class);
+				if(userMap != null && userMap.size() > 0){
+					sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.STUDENT_PUSH_ONLINE_COURSE_ACTION,userMap,
+							null,0,"",courseSchedule.getName());
+				}
+			}
 		}
 	}
 

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

@@ -1170,4 +1170,9 @@
             #{classGroupId}
         </foreach>
     </select>
+    <select id="findStudentMap" resultType="java.util.Map">
+        SELECT cs.user_id_ 'key',cs.user_id_ 'value' FROM course_schedule_student_payment cs
+        WHERE cs.course_schedule_id_ = #{courseScheduleId}
+        GROUP BY user_id_
+    </select>
 </mapper>

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

@@ -142,6 +142,7 @@
         SELECT COUNT(DISTINCT sr.user_id_)
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_
+        <include refid="findStudentsByOrganIdSql"/>
     </select>
     <select id="findStudentBaseInfoByUserID" resultMap="studentManageListDto">
         SELECT su.real_name_,su.gender_,su.birthdate_,sr.parents_name_,su.id_ user_id_,

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

@@ -71,11 +71,6 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentPaymentOrder" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
         INSERT INTO student_payment_order
         (id_,user_id_,type_,expect_amount_,actual_amount_,trans_no_,status_,memo_,create_time_,update_time_,payment_channel_,payment_business_channel_,payment_account_no_,order_no_,music_group_id_,class_group_id_)
         VALUES(#{id},#{userId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{expectAmount},#{actualAmount},#{transNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{memo},now(),now(),#{paymentChannel},#{paymentBusinessChannel},#{paymentAccountNo},#{orderNo},#{musicGroupId},#{classGroupId})
@@ -160,10 +155,10 @@
     <sql id="queryPaymentOrder">
         <where>
             <if test="orderStartDate != null">
-                AND spo.create_time_ &gt;= #{orderStartDate}
+                AND DATE_FORMAT(spo.create_time_,'%Y-%m-%d') &gt;= #{orderStartDate}
             </if>
             <if test="orderEndDate != null">
-                AND spo.create_time_ &lt;= #{orderEndDate}
+                AND DATE_FORMAT(spo.create_time_,'%Y-%m-%d') &lt;= #{orderEndDate}
             </if>
             <if test="paymentType != null">
                 AND spo.type_ = #{paymentType}

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

@@ -235,4 +235,10 @@
     <select id="queryNoSignOutListByOverMinutes" resultMap="Mapper">
         SELECT ta.teacher_id_ key_,u.real_name_ value_ FROM course_schedule cs right join teacher_attendance ta on ta.course_schedule_id_ = cs.id_ left join sys_user u on ta.teacher_id_ = u.id_ WHERE ta.sign_out_status_ = 0 and date(cs.class_date_) = date(now()) and SUBTIME(cs.end_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()
     </select>
+    <select id="queryNoSignStudentRecord" resultMap="TeacherAttendance">
+        SELECT cg.music_group_id_,cg.id_ class_group_id_,cssp.course_schedule_id_,cssp.user_id_,cg.current_class_times_
+        FROM course_schedule_student_payment cssp LEFT JOIN class_group cg ON cg.id_ = cssp.class_group_id_
+        WHERE cssp.user_id_ NOT IN (SELECT DISTINCT sa.user_id_ FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId})
+        AND cssp.course_schedule_id_ = #{courseScheduleId}
+    </select>
 </mapper>

+ 8 - 9
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -202,12 +202,19 @@
         t.job_nature_,t.is_probation_period_,GROUP_CONCAT(s.name_) subject_name_
         FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
-        WHERE su.del_flag_ = 0
+        WHERE su.user_type_ LIKE '%TEACHER%' AND su.del_flag_ = 0
         <include refid="queryPageMap"/>
         GROUP BY t.id_
         ORDER BY t.update_time_ DESC
         <include refid="global.limit"/>
     </select>
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(DISTINCT t.id_)
+        FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
+        WHERE su.user_type_ LIKE '%TEACHER%' AND su.del_flag_ = 0
+        <include refid="queryPageMap"/>
+    </select>
 
     <sql id="queryPageMap">
         <if test="lockFlag != null">
@@ -227,14 +234,6 @@
         </if>
     </sql>
 
-    <!-- 查询当前表的总记录数 -->
-    <select id="queryCount" resultType="int">
-        SELECT COUNT(t.id_)
-        FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
-        WHERE su.user_type_ LIKE '%TEACHER%' AND su.del_flag_ = 0
-        <include refid="queryPageMap"/>
-    </select>
-
     <!-- 根据证件号查询老师 -->
     <select id="findByCertificateNum" resultMap="Teacher">
         SELECT * FROM teacher WHERE certificate_num_ = #{certificateNum}

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

@@ -1,7 +1,6 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.ClassGroupService;
@@ -40,11 +39,6 @@ public class TeacherController extends BaseController {
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('teacher/queryPage')")
     public Object queryPage(TeacherQueryInfo queryInfo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("用户信息获取失败");
-        }
-//        queryInfo.setOrganId(sysUser.getOrganId());
         return succeed(teacherService.queryPageDetail(queryInfo));
     }